provide access to the prestine linear solvers of dune-istl

... and use the restarted GMRES solver in conjunction with a ILU-2
preconditioner for the water-air unit test.

I do not really recommend using these solvers because BiCGSTAB tends
to be 20% to 30% slower than our home-brewn implementation (this is
because the dune-istl solvers cannot use custom convergence criteria),
but dune-istl offers more choices than just BiCGStab and this
functionallity could be helpful when debugging issues related to
solving the linear systems of equations.

Note that regardless of how pedantic the interpretation of DUNE's
license is, there are no licensing issues with this code because we do
not distribute any files derived from DUNE anymore.
This commit is contained in:
Andreas Lauser 2016-12-29 12:03:36 +01:00
parent d514667977
commit b1995f7dfb

View File

@ -29,6 +29,7 @@
#define EWOMS_WATER_AIR_PROBLEM_HH
#include <ewoms/models/pvs/pvsproperties.hh>
#include <ewoms/linear/parallelistlbackend.hh>
#include <opm/material/fluidsystems/H2OAirFluidSystem.hpp>
#include <opm/material/fluidstates/ImmiscibleFluidState.hpp>
@ -120,6 +121,14 @@ SET_SCALAR_PROP(WaterAirBaseProblem, InitialTimeStepSize, 250);
// The default DGF file to load
SET_STRING_PROP(WaterAirBaseProblem, GridFile, "./data/waterair.dgf");
// Use the restarted GMRES linear solver with the ILU-2 preconditioner from dune-istl
SET_TAG_PROP(WaterAirBaseProblem, LinearSolverSplice, ParallelIstlLinearSolver);
SET_TYPE_PROP(WaterAirBaseProblem, LinearSolverWrapper,
Ewoms::Linear::SolverWrapperRestartedGMRes<TypeTag>);
SET_TYPE_PROP(WaterAirBaseProblem, PreconditionerWrapper,
Ewoms::Linear::PreconditionerWrapperILUn<TypeTag>);
SET_INT_PROP(WaterAirBaseProblem, PreconditionerOrder, 2);
} // namespace Properties
} // namespace Ewoms