From 5487cac39999c6784c13880a7539a91f763728fd Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Wed, 14 Dec 2011 00:17:11 +0100
Subject: [PATCH] Control smoothing steps through parset

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

diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 564b7f5d..c9089853 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -327,7 +327,10 @@ int main(int argc, char *argv[]) {
         MultigridStep<OperatorType, VectorType> *linearIterationStep =
             new MultigridStep<OperatorType, VectorType>;
         linearIterationStep->setNumberOfLevels(levels);
-        linearIterationStep->setMGType(1, 3, 3); // 1/3/3 (mu/nu1/nu2)
+        linearIterationStep->setMGType(
+            parset.get<int>("solver.tnnmg.linear.mu"),
+            parset.get<int>("solver.tnnmg.linear.nu1"),
+            parset.get<int>("solver.tnnmg.linear.nu2"));
         linearIterationStep->basesolver_ = linearBaseSolver;
         linearIterationStep->setSmoother(linearPresmoother, linearPostsmoother);
 
@@ -353,7 +356,10 @@ int main(int argc, char *argv[]) {
         auto multigridStep =
             new TNNMGStepType(*linearIterationStep, *nonlinearSmoother);
         multigridStep->setProblem(u4_diff_new, *tnnmgProblem);
-        multigridStep->setSmoothingSteps(3, 1, 3); // 3/1/3 (pre/linear/post)
+        multigridStep->setSmoothingSteps(
+            parset.get<int>("solver.tnnmg.main.nu1"),
+            parset.get<int>("solver.tnnmg.main.mu"),
+            parset.get<int>("solver.tnnmg.main.nu2"));
         multigridStep->ignoreNodes_ = &ignoreNodes;
 
         auto energyNorm =
diff --git a/src/one-body-sample.parset b/src/one-body-sample.parset
index 5f332639..32366667 100644
--- a/src/one-body-sample.parset
+++ b/src/one-body-sample.parset
@@ -22,6 +22,16 @@ nu = 0.3
 maxiterations = 1000000
 tolerance = 1e-12
 
+[solver.tnnmg.linear]
+nu1 = 3
+mu = 1
+nu2 = 3
+
+[solver.tnnmg.main]
+nu1 = 3
+mu = 1
+nu2 = 3
+
 [localsolver]
 steps = 1
 
-- 
GitLab