diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index b60eb5061730edfaf9bb13b8835c76fd5426cf52..afeea73e19dc8b08b632a76ae9ab8cd32d993e64 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);