From f152ade04088beedc24fae711d6cd2ae3d2d7cce Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Wed, 30 Jan 2013 18:17:15 +0100 Subject: [PATCH] Implement damping --- src/one-body-sample.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index b60eb506..afeea73e 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -394,7 +394,15 @@ int main(int argc, char *argv[]) { parset.get<double>("solver.tnnmg.fixed_point_tolerance"); for (size_t state_fpi = 1; state_fpi <= state_fpi_max; ++state_fpi) { stateUpdater->solve(ud); - stateUpdater->extractState(alpha); + if (state_fpi == 1) + stateUpdater->extractState(alpha); + else { + SingletonVectorType computed_state; + stateUpdater->extractState(computed_state); + double const damping = 0.5; + alpha *= damping; + alpha.axpy(1.0 - damping, computed_state); + } solveDisplacementProblem(problem_iterate, alpha); timeSteppingScheme->postProcess(problem_iterate); -- GitLab