From 3f38838baea932ec0cb0cf3b8ac4dd97404bb4ad Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Sat, 14 Dec 2013 15:32:17 +0100 Subject: [PATCH] [Algorit] Use 0.5*(V0 + V1) in state computation --- src/one-body-sample.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index 678a7c8e..918f4994 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) -- GitLab