23#ifdef USE_EIGEN_UNSUPPORTED
30 residualupdate =
false;
35 const std::string& solver_name)
37 if (solver_name ==
"CG")
41 if (solver_name ==
"BiCGSTAB")
45 if (solver_name ==
"BiCGSTABL")
49 if (solver_name ==
"IDRS")
53 if (solver_name ==
"IDRSTABL")
57 if (solver_name ==
"SparseLU")
61 if (solver_name ==
"PardisoLU")
65 if (solver_name ==
"GMRES")
70 OGS_FATAL(
"Unknown Eigen solver type `{:s}'", solver_name);
74 const std::string& precon_name)
76 if (precon_name ==
"NONE")
80 if (precon_name ==
"DIAGONAL")
84 if (precon_name ==
"ILUT")
89 OGS_FATAL(
"Unknown Eigen preconditioner type `{:s}'", precon_name);
PreconType precon_type
Preconditioner type.
static std::string getSolverName(SolverType const solver_type)
return a linear solver name from the solver type
PreconType
Preconditioner type.
static PreconType getPreconType(const std::string &precon_name)
SolverType solver_type
Linear solver type.
double error_tolerance
Error tolerance.
static SolverType getSolverType(const std::string &solver_name)
static std::string getPreconName(PreconType const precon_type)
return a preconditioner name from the preconditioner type
int max_iterations
Maximum iteration count.