Commit 62a3fcad authored by Timo Koch's avatar Timo Koch
Browse files

[istl][solver] Use subgroup Preconditioner

Backwards-compatible implementation. Legacy parameter names
e.g. PreconditionerIterations will still work but subgroup params
overwrite them, e.g. Preconditioner.Iterations.
parent fff202cd
......@@ -209,32 +209,40 @@ IstlSolverFactoryBackend<Matrix, Vector, Geometry>::dumuxToIstlSolverParams =
{"MaxOrthogonalizationVectors", "mmax"},
// preconditioner params
// we expect parameters in the subgroup "Preconditioner"
// there are some legacy param names that are still supported
// subgroup parameters overwrite legacy parameters
{"PreconditionerVerbosity", "preconditioner.verbosity"},
{"Preconditioner.Verbosity", "preconditioner.verbosity"},
{"PreconditionerType", "preconditioner.type"},
{"Preconditioner.Type", "preconditioner.type"},
{"PreconditionerIterations", "preconditioner.iterations"},
{"Preconditioner.Iterations", "preconditioner.iterations"},
{"PreconditionerRelaxation", "preconditioner.relaxation"},
{"ILUOrder", "preconditioner.n"},
{"ILUResort", "preconditioner.resort"},
{"AmgSmootherRelaxation", "preconditioner.smootherRelaxation"},
{"AmgSmootherIterations", "preconditioner.smootherIterations"},
{"AmgMaxLevel", "preconditioner.maxLevel"},
{"AmgCoarsenTarget", "preconditioner.coarsenTarget"},
{"MinCoarseningRate", "preconditioner.minCoarseningRate"},
{"AmgProlongationDampingFactor", "preconditioner.prolongationDampingFactor"},
{"AmgAlpha", "preconditioner.alpha"},
{"AmgBeta", "preconditioner.beta"},
{"AmgAdditive", "preconditioner.additive"},
{"AmgGamma", "preconditioner.gamma"},
{"AmgPreSmoothingSteps", "preconditioner.preSteps"},
{"AmgPostSmoothingSteps", "preconditioner.postSteps"},
{"AmgCriterionSymmetric", "preconditioner.criterionSymmetric"},
{"AmgStrengthMeasure", "preconditioner.strengthMeasure"},
{"AmgDiagonalRowIndex", "preconditioner.diagonalRowIndex"},
{"DefaultAggregationSizeMode", "preconditioner.defaultAggregationSizeMode"},
{"defaultAggregationDimension", "preconditioner.defaultAggregationDimension"},
{"MaxAggregateDistance", "preconditioner.maxAggregateDistance"},
{"MinAggregateSize", "preconditioner.minAggregateSize"},
{"MaxAggregateSize", "preconditioner.maxAggregateSize"}
{"Preconditioner.Relaxation", "preconditioner.relaxation"},
{"Preconditioner.ILUOrder", "preconditioner.n"},
{"Preconditioner.ILUResort", "preconditioner.resort"},
{"Preconditioner.AmgSmootherRelaxation", "preconditioner.smootherRelaxation"},
{"Preconditioner.AmgSmootherIterations", "preconditioner.smootherIterations"},
{"Preconditioner.AmgMaxLevel", "preconditioner.maxLevel"},
{"Preconditioner.AmgCoarsenTarget", "preconditioner.coarsenTarget"},
{"Preconditioner.AmgMinCoarseningRate", "preconditioner.minCoarseningRate"},
{"Preconditioner.AmgAccumulationMode", "preconditioner.accumulationMode"},
{"Preconditioner.AmgProlongationDampingFactor", "preconditioner.prolongationDampingFactor"},
{"Preconditioner.AmgAlpha", "preconditioner.alpha"},
{"Preconditioner.AmgBeta", "preconditioner.beta"},
{"Preconditioner.AmgAdditive", "preconditioner.additive"},
{"Preconditioner.AmgGamma", "preconditioner.gamma"},
{"Preconditioner.AmgPreSmoothingSteps", "preconditioner.preSteps"},
{"Preconditioner.AmgPostSmoothingSteps", "preconditioner.postSteps"},
{"Preconditioner.AmgCriterionSymmetric", "preconditioner.criterionSymmetric"},
{"Preconditioner.AmgStrengthMeasure", "preconditioner.strengthMeasure"},
{"Preconditioner.AmgDiagonalRowIndex", "preconditioner.diagonalRowIndex"},
{"Preconditioner.AmgDefaultAggregationSizeMode", "preconditioner.defaultAggregationSizeMode"},
{"Preconditioner.AmgDefaultAggregationDimension", "preconditioner.defaultAggregationDimension"},
{"Preconditioner.AmgMaxAggregateDistance", "preconditioner.maxAggregateDistance"},
{"Preconditioner.AmgMinAggregateSize", "preconditioner.minAggregateSize"},
{"Preconditioner.AmgMaxAggregateSize", "preconditioner.maxAggregateSize"}
};
} // end namespace Dumux
......
......@@ -19,9 +19,11 @@ EnableDynamicOutput = false
[LinearSolver]
Type = cgsolver
MaxIterations = 80
PreconditionerType = amg
PreconditionerVerbosity = 0
[LinearSolver.Preconditioner]
Type = amg
Verbosity = 0
AmgMaxLevel = 2
AmgPreSmoothingSteps = 1
AmgPostSmoothingSteps = 1
CriterionSymmetric = true
AmgCriterionSymmetric = true
......@@ -16,6 +16,8 @@ EnableChop = true # chop for better convergence
[LinearSolver]
Type = bicgstabsolver
PreconditionerType = amg
[LinearSolver.Preconditioner]
Type = amg
AmgMaxLevel = 2
AmgAccumulationMode = atOnce
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment