diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index 678a7c8e300e42cc9f8d7ebf352c38cb6ef45b24..918f4994e51c955a3f3a9959b21e75b521de8b15 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -318,6 +318,7 @@ int main(int argc, char *argv[]) { parset.get<double>("boundary.friction.L")); Vector v = v_initial; + Vector v_m(fineVertexCount); ScalarVector alpha(fineVertexCount); auto const timeSteps = parset.get<size_t>("timeSteps.number"), @@ -378,7 +379,11 @@ int main(int argc, char *argv[]) { ScalarVector alpha_saved; double lastStateCorrection; for (size_t stateFPI = 1; stateFPI <= maximumStateFPI; ++stateFPI) { - stateUpdater->solve(v); + timeSteppingScheme->extractOldVelocity(v_m); + v_m *= 0.5; + Arithmetic::addProduct(v_m, 0.5, v); + + stateUpdater->solve(v_m); stateUpdater->extractLogState(alpha); if (stateFPI == 1)