17#ifdef USE_EIGEN_UNSUPPORTED
24 residualupdate =
false;
29 const std::string& solver_name)
31 if (solver_name ==
"CG")
35 if (solver_name ==
"LeastSquareCG")
39 if (solver_name ==
"BiCGSTAB")
43 if (solver_name ==
"BiCGSTABL")
47 if (solver_name ==
"IDRS")
51 if (solver_name ==
"IDRSTABL")
55 if (solver_name ==
"SparseLU")
59 if (solver_name ==
"PardisoLU")
63 if (solver_name ==
"GMRES")
68 OGS_FATAL(
"Unknown Eigen solver type `{:s}'", solver_name);
72 const std::string& precon_name)
74 if (precon_name ==
"NONE")
78 if (precon_name ==
"DIAGONAL")
82 if (precon_name ==
"LeastSquareDIAGONAL")
86 if (precon_name ==
"ILUT")
91 OGS_FATAL(
"Unknown Eigen preconditioner type `{:s}'", precon_name);
95 const std::string& triangular_matrix_name)
97 if (triangular_matrix_name ==
"Lower")
101 if (triangular_matrix_name ==
"Upper")
105 if (triangular_matrix_name ==
"LowerUpper")
110 OGS_FATAL(
"Unknown triangular matrix type `{:s}'", triangular_matrix_name);
120 return "LeastSquareCG";
148 return "LeastSquareDIAGONAL";
TriangularMatrixType
triangular matrix type
static TriangularMatrixType getTriangularMatrixType(const std::string &triangular_matrix_name)
PreconType precon_type
Preconditioner type.
static std::string getSolverName(SolverType const solver_type)
return a linear solver name from the solver type
TriangularMatrixType triangular_matrix_type
Triangular Matrix Type.
PreconType
Preconditioner type.
static std::string getTriangularMatrixName(TriangularMatrixType const triangular_matrix_type)
return a triangular matrix name from the 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.