From 08f1abb93a294e11e9b22ff0c9d298cf04e04c0c Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Sun, 11 Mar 2012 18:38:07 +0100
Subject: [PATCH] Remove unused solvers

---
 src/one-body-sample.cc     | 92 +++++---------------------------------
 src/one-body-sample.parset | 12 -----
 2 files changed, 12 insertions(+), 92 deletions(-)

diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 4e520f28..616a5d56 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -196,24 +196,18 @@ int main(int argc, char *argv[]) {
     GenericNonlinearGS<MyBlockProblemType> nonlinearGSStep;
     nonlinearGSStep.ignoreNodes_ = &ignoreNodes;
 
-    VectorType u1(finestSize);
-    u1 = 0.0; // Has to be zero!
-    VectorType u2 = u1;
-    VectorType u3 = u1;
-    VectorType u4 = u1;
-    VectorType u5 = u1;
+    VectorType u4(finestSize);
+    u4 = 0.0; // Has to be zero!
+    VectorType u5 = u4;
 
     SingletonVectorType s4_old(finestSize);
     SingletonVectorType s5_old(finestSize);
     s4_old = parset.get<double>("boundary.friction.state.initial");
     s5_old = s4_old;
 
-    VectorType u1_diff(finestSize);
-    u1_diff = 0.0; // Has to be zero!
-    VectorType u2_diff = u1_diff;
-    VectorType u3_diff = u1_diff;
-    VectorType u4_diff = u1_diff;
-    VectorType u5_diff = u1_diff;
+    VectorType u4_diff(finestSize);
+    u4_diff = 0.0; // Has to be zero!
+    VectorType u5_diff = u4_diff;
 
     auto s4_new = Dune::make_shared<SingletonVectorType>(finestSize);
     auto s5_new = Dune::make_shared<SingletonVectorType>(finestSize);
@@ -222,9 +216,6 @@ int main(int argc, char *argv[]) {
 
     SingletonVectorType vonMisesStress;
 
-    VectorType b1;
-    VectorType b2;
-    VectorType b3;
     VectorType b4;
     VectorType b5;
 
@@ -286,42 +277,14 @@ int main(int argc, char *argv[]) {
 
       // b = neumann
       assemble_neumann<GridType, GridView, SmallVector, P1Basis>(
-          leafView, p1Basis, neumannNodes, b1, functions.get("sampleFunction"),
+          leafView, p1Basis, neumannNodes, b4, functions.get("sampleFunction"),
           h * run);
-      b2 = b1;
-      b3 = b1;
-      b4 = b1;
-      b5 = b1;
+      b5 = b4;
 
       // b -= linear update
-      stiffnessMatrix.mmv(u1, b1);
-      stiffnessMatrix.mmv(u2, b2);
-      stiffnessMatrix.mmv(u3, b3);
       stiffnessMatrix.mmv(u4, b4);
       stiffnessMatrix.mmv(u5, b5);
 
-      if (parset.get<bool>("solver.nonlineargs.use")) {
-        auto state =
-            Dune::make_shared<Dune::BlockVector<Dune::FieldVector<double, 1>>>(
-                finestSize);
-        *state = 0.0;
-        auto myGlobalNonlinearity =
-            assemble_nonlinearity<VectorType, OperatorType>(
-                finestSize, parset, nodalIntegrals, state, h);
-        MyConvexProblemType const myConvexProblem(stiffnessMatrix,
-                                                  *myGlobalNonlinearity, b1);
-        MyBlockProblemType myBlockProblem(parset, myConvexProblem);
-        nonlinearGSStep.setProblem(u1_diff, myBlockProblem);
-
-        LoopSolver<VectorType> solver(
-            &nonlinearGSStep,
-            parset.get<size_t>("solver.nonlineargs.maxiterations"),
-            solver_tolerance, &energyNorm, verbosity);
-        solver.solve();
-      }
-
-      u1 += u1_diff;
-
       if (parset.get<bool>("solver.tnnmg.use")) {
         for (int state_fpi = 0;
              state_fpi < parset.get<int>("solver.tnnmg.fixed_point_iterations");
@@ -428,35 +391,6 @@ int main(int argc, char *argv[]) {
             p1Basis, u4, *s4_new, p0Basis, vonMisesStress, leafView,
             (boost::format("obs%d") % run).str());
       }
-
-      if (parset.get<bool>("solver.gs.use")) {
-        BlockGSStep<OperatorType, VectorType> blockGSStep(stiffnessMatrix,
-                                                          u2_diff, b2);
-        blockGSStep.ignoreNodes_ = &ignoreNodes;
-
-        LoopSolver<VectorType> solver(
-            &blockGSStep, parset.get<size_t>("solver.gs.maxiterations"),
-            solver_tolerance, &energyNorm, verbosity);
-        solver.solve();
-      }
-
-      u2 += u2_diff;
-
-      // Use a linear solver for comparison; should return roughly the
-      // same results if phi vanishes (e.g. because the normalstress is zero)
-      if (parset.get<bool>("solver.truncatedgs.use")) {
-        TruncatedBlockGSStep<OperatorType, VectorType> blockGSStep(
-            stiffnessMatrix, u3_diff, b3);
-        blockGSStep.ignoreNodes_ = &ignoreNodes;
-
-        LoopSolver<VectorType> solver(
-            &blockGSStep,
-            parset.get<size_t>("solver.truncatedgs.maxiterations"),
-            solver_tolerance, &energyNorm, verbosity);
-        solver.solve();
-      }
-
-      u3 += u3_diff;
     }
     std::cout << std::endl;
     std::cout << "Making " << timesteps << " time steps took "
@@ -470,14 +404,12 @@ int main(int argc, char *argv[]) {
 
     if (parset.get<bool>("printFrictionalBoundary")) {
       // Print displacement on frictional boundary
-      boost::format const formatter("u1[%02d] = %+3e, "
-                                    "%|40t|u2[%02d] = %+3e, "
-                                    "%|80t|u3[%02d] = %+3e, "
-                                    "%|120t|u4[%02d] = %+3e");
+      boost::format const formatter("u4[%02d] = %+3e, "
+                                    "%|40t|u5[%02d] = %+3e");
       for (size_t i = 0; i < frictionalNodes.size(); ++i)
         if (frictionalNodes[i][0])
-          std::cout << boost::format(formatter) % i % u1[i] % i % u2[i] % i %
-                           u3[i] % i % u4[i] << std::endl;
+          std::cout << boost::format(formatter) % i % u4[i] % i % u5[i]
+                    << std::endl;
     }
     Python::stop();
   }
diff --git a/src/one-body-sample.parset b/src/one-body-sample.parset
index aefd27eb..ede9a29e 100644
--- a/src/one-body-sample.parset
+++ b/src/one-body-sample.parset
@@ -26,18 +26,6 @@ nu = 0.3 # Needs to be strictly below 0.5; the closer we get, the
 [solver]
 tolerance = 1e-12
 
-[solver.nonlineargs]
-use = false
-maxiterations = 1000000
-
-[solver.gs]
-use = false
-maxiterations = 1000000
-
-[solver.truncatedgs]
-use = false
-maxiterations = 1000000
-
 [solver.tnnmg]
 use = true
 maxiterations = 1000000
-- 
GitLab