diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc index 6f7dff09cb1482ad859ec6bfd3cb0de0da37bd66..0e71cefceca0dd43da071a46025412534eed4ee3 100644 --- a/src/sand-wedge.cc +++ b/src/sand-wedge.cc @@ -213,6 +213,9 @@ int main(int argc, char *argv[]) { auto const firstRestart = parset.get<size_t>("restarts.first"); auto const restartSpacing = parset.get<size_t>("restarts.spacing"); auto const restartTemplate = parset.get<std::string>("restarts.template"); + auto const restartDirectory = + boost::filesystem::path(restartTemplate).parent_path(); + if (firstRestart != 0) DataIO::loadData(programState, str(boost::format(restartTemplate) % firstRestart)); @@ -282,9 +285,12 @@ int main(int argc, char *argv[]) { specialVelocityWriter.write(velocity); specialDisplacementWriter.write(displacement); - if (programState.timeStep % restartSpacing == 0) + if (programState.timeStep % restartSpacing == 0) { + if (!boost::filesystem::is_directory(restartDirectory)) + boost::filesystem::create_directories(restartDirectory); DataIO::writeData(programState, str(boost::format(restartTemplate) % programState.timeStep)); + } if (parset.get<bool>("io.writeVTK")) { ScalarVector stress;