Skip to content
Snippets Groups Projects
Commit c25e7794 authored by Elias Pipping's avatar Elias Pipping Committed by Elias Pipping
Browse files

[Cleanup] Take tolerance for the linear solvers from the parset

parent 006831ca
No related branches found
No related tags found
No related merge requests found
......@@ -360,8 +360,8 @@ int main(int argc, char *argv[]) {
u_initial = 0.0;
{
LinearFactoryType displacementFactory(parset.sub("solver.tnnmg"), // FIXME
refinements, 1e-12, // FIXME,
*grid, displacementDirichletNodes);
refinements, *grid,
displacementDirichletNodes);
auto multigridStep = displacementFactory.getSolver();
auto const verbosity = parset.get<Solver::VerbosityMode>("io.verbosity");
......@@ -411,9 +411,9 @@ int main(int argc, char *argv[]) {
// instead of multiplying M by (1.0 - wc), we divide the RHS
accelerationRHS *= -1.0 / (1.0 - wc);
}
LinearFactoryType accelerationFactory(parset.sub("solver.tnnmg"), // FIXME
refinements, 1e-12, // FIXME,
*grid, accelerationDirichletNodes);
LinearFactoryType accelerationFactory(parset.sub("solver.tnnmg"),
refinements, *grid,
accelerationDirichletNodes);
auto multigridStep = accelerationFactory.getSolver();
auto const verbosity = parset.get<Solver::VerbosityMode>("io.verbosity");
......@@ -441,8 +441,7 @@ int main(int argc, char *argv[]) {
MyBlockProblem<ConvexProblem<
Dune::GlobalNonlinearity<MatrixType, VectorType>, MatrixType>>,
GridType>;
NonlinearFactoryType factory(parset.sub("solver.tnnmg"), refinements,
solverTolerance, *grid,
NonlinearFactoryType factory(parset.sub("solver.tnnmg"), refinements, *grid,
velocityDirichletNodes);
auto multigridStep = factory.getSolver();
auto const verbosity = parset.get<Solver::VerbosityMode>("io.verbosity");
......
......@@ -44,6 +44,7 @@ fixed_point_tolerance = 1e-10
[solver.tnnmg.linear]
maxiterations = 1000000
tolerance = 1e-10
pre = 3
cycle = 1 # 1 = V, 2 = W, etc.
post = 3
......
......@@ -13,12 +13,13 @@
template <int dim, class BlockProblemType, class GridType>
SolverFactory<dim, BlockProblemType, GridType>::SolverFactory(
Dune::ParameterTree const &parset, int refinements, double tolerance,
GridType const &grid, Dune::BitSetVector<dim> const &ignoreNodes)
Dune::ParameterTree const &parset, int refinements, GridType const &grid,
Dune::BitSetVector<dim> const &ignoreNodes)
: baseEnergyNorm(linearBaseSolverStep),
linearBaseSolver(&linearBaseSolverStep,
parset.get<int>("linear.maxiterations"), tolerance,
&baseEnergyNorm, Solver::QUIET),
parset.get<int>("linear.maxiterations"),
parset.get<double>("linear.tolerance"), &baseEnergyNorm,
Solver::QUIET),
transferOperators(refinements),
multigridStep(new SolverType(linearIterationStep, nonlinearSmoother)) {
// linear iteration step
......
......@@ -27,7 +27,7 @@ class SolverFactory {
public:
SolverFactory(Dune::ParameterTree const &parset, int refinements,
double tolerance, GridType const &grid,
GridType const &grid,
Dune::BitSetVector<dim> const &ignoreNodes);
~SolverFactory();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment