23#ifdef USE_EIGEN_UNSUPPORTED
30 residualupdate =
false;
35 const std::string& solver_name)
37 if (solver_name ==
"CG")
41 if (solver_name ==
"LeastSquareCG")
45 if (solver_name ==
"BiCGSTAB")
49 if (solver_name ==
"BiCGSTABL")
53 if (solver_name ==
"IDRS")
57 if (solver_name ==
"IDRSTABL")
61 if (solver_name ==
"SparseLU")
65 if (solver_name ==
"PardisoLU")
69 if (solver_name ==
"GMRES")
74 OGS_FATAL(
"Unknown Eigen solver type `{:s}'", solver_name);
78 const std::string& precon_name)
80 if (precon_name ==
"NONE")
84 if (precon_name ==
"DIAGONAL")
88 if (precon_name ==
"LeastSquareDIAGONAL")
92 if (precon_name ==
"ILUT")
97 OGS_FATAL(
"Unknown Eigen preconditioner type `{:s}'", precon_name);
107 return "LeastSquareCG";
135 return "LeastSquareDIAGONAL";
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.