diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index 564b7f5d0744435331c3dc5bd14b49c08a187fe6..c90898532b7c431b7b06355d5afc9ed3cbb3fcc5 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 5f332639c961eec1fd55e01a26279f9053334ea5..323666675ae987ff304a175046e56dbe60c8531b 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