From 24dbe3e1d9dc82b75fc18f73bad8ed3bc0b33b95 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Wed, 30 Jan 2013 18:02:30 +0100
Subject: [PATCH] Solve the state problem first

---
 src/one-body-sample.cc | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index adbfeaeb..b60eb506 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -342,13 +342,12 @@ int main(int argc, char *argv[]) {
       _ell += gravityFunctional;
     };
 
+    VectorType ud = ud_initial;
     auto const state_fpi_max =
         parset.get<size_t>("solver.tnnmg.fixed_point_iterations");
     for (size_t run = 1; run <= timesteps; ++run) {
       VectorType u;
-      VectorType ud;
       SingletonVectorType alpha;
-      stateUpdater->extractState(alpha);
 
       stateUpdater->nextTimeStep();
       timeSteppingScheme->nextTimeStep();
@@ -394,15 +393,14 @@ int main(int argc, char *argv[]) {
       double const fixedPointTolerance =
           parset.get<double>("solver.tnnmg.fixed_point_tolerance");
       for (size_t state_fpi = 1; state_fpi <= state_fpi_max; ++state_fpi) {
-        solveDisplacementProblem(problem_iterate, alpha);
+        stateUpdater->solve(ud);
+        stateUpdater->extractState(alpha);
 
+        solveDisplacementProblem(problem_iterate, alpha);
         timeSteppingScheme->postProcess(problem_iterate);
         timeSteppingScheme->extractDisplacement(u);
         timeSteppingScheme->extractVelocity(ud);
 
-        stateUpdater->solve(ud);
-        stateUpdater->extractState(alpha);
-
         iteration_writer << iterationCounter << " ";
         if (parset.get<bool>("printProgress")) {
           std::cerr << '.';
-- 
GitLab