diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc index 0b77d199495ef46a6d68395aa9933e7292aac1aa..14806f479687fc875ad143dc73b40127999c878c 100644 --- a/src/sand-wedge.cc +++ b/src/sand-wedge.cc @@ -488,16 +488,19 @@ int main(int argc, char *argv[]) { parset.get<double>("boundary.friction.V0")); auto const finalTime = parset.get<double>("problem.finalTime"); - auto const timeSteps = parset.get<size_t>("timeSteps.number"); - auto const relativeTau = 1.0 / timeSteps; - for (size_t timeStep = 1; timeStep <= timeSteps; ++timeStep) { - auto const relativeTime = double(timeStep) / double(timeSteps); + auto const relativeTau = 1.0 / parset.get<size_t>("timeSteps.number"); + double relativeTime = 0.0; + size_t timeStep = 1; + while (relativeTime < 1.0 - 1e-10) { + CoupledTimeStepper<NonlinearFactory, StateUpdater<ScalarVector, Vector>, TimeSteppingScheme<Vector, Matrix, Function, dims>> coupledTimeStepper(finalTime, factory, parset, myGlobalFriction, stateUpdater, velocityUpdater, computeExternalForces); coupledTimeStepper.step(relativeTime, relativeTau); + relativeTime += relativeTau; + Vector u, ur, vr; ScalarVector alpha; velocityUpdater->extractDisplacement(u); @@ -521,6 +524,7 @@ int main(int argc, char *argv[]) { body.getPoissonRatio(), u, stress); vtkWriter.write(timeStep, ur, vr, alpha, stress); } + timeStep++; } Python::stop(); }