From 8de3b497233ff265b1f3291342a67c1f18c79f44 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Tue, 30 Oct 2012 14:32:08 +0100
Subject: [PATCH] Externalise some more

---
 src/one-body-sample.org | 37 ++++++++++++++++++++++---------------
 1 file changed, 22 insertions(+), 15 deletions(-)

diff --git a/src/one-body-sample.org b/src/one-body-sample.org
index ac3d6581..ab8164bf 100644
--- a/src/one-body-sample.org
+++ b/src/one-body-sample.org
@@ -176,6 +176,27 @@
     std::cerr << std::endl;
 #+end_src
 
+#+name: setupAndSolveProblem
+#+begin_src c++
+  {
+    auto myGlobalNonlinearity
+      = assemble_nonlinearity<MatrixType, VectorType>
+      (parset.sub("boundary.friction"), *nodalIntegrals, alpha,
+       surfaceNormalStress);
+  
+    MyConvexProblemType const myConvexProblem
+      (problem_A, *myGlobalNonlinearity, problem_rhs);
+    MyBlockProblemType myBlockProblem(parset, myConvexProblem);
+    auto multigridStep = mySolver.getSolver();
+    multigridStep->setProblem(problem_iterate, myBlockProblem);
+  
+    LoopSolver<VectorType> overallSolver
+      (multigridStep, parset.get<size_t>("solver.tnnmg.maxiterations"),
+       solver_tolerance, &energyNorm, verbosity, false); // absolute error
+    overallSolver.solve();
+  }
+#+end_src
+
 * Main
 #+begin_src c++ :tangle one-body-sample.cc :noweb yes
   #ifdef HAVE_CONFIG_H
@@ -484,21 +505,7 @@
   
           VectorType u_saved;
           for (size_t state_fpi = 1; state_fpi <= state_fpi_max; ++state_fpi) {
-            auto myGlobalNonlinearity
-              = assemble_nonlinearity<MatrixType, VectorType>
-              (parset.sub("boundary.friction"), *nodalIntegrals, alpha,
-               surfaceNormalStress);
-  
-            MyConvexProblemType const myConvexProblem
-              (problem_A, *myGlobalNonlinearity, problem_rhs);
-            MyBlockProblemType myBlockProblem(parset, myConvexProblem);
-            auto multigridStep = mySolver.getSolver();
-            multigridStep->setProblem(problem_iterate, myBlockProblem);
-  
-            LoopSolver<VectorType> overallSolver
-              (multigridStep, parset.get<size_t>("solver.tnnmg.maxiterations"),
-               solver_tolerance, &energyNorm, verbosity, false); // absolute error
-            overallSolver.solve();
+            <<setupAndSolveProblem>>;
   
             timeSteppingScheme->postProcess(problem_iterate);
             timeSteppingScheme->extractDisplacement(u);
-- 
GitLab