24#ifdef USE_EIGEN_UNSUPPORTED
31 residualupdate =
false;
36 const std::string& solver_name)
38 if (solver_name ==
"CG")
42 if (solver_name ==
"LeastSquareCG")
46 if (solver_name ==
"BiCGSTAB")
50 if (solver_name ==
"BiCGSTABL")
54 if (solver_name ==
"IDRS")
58 if (solver_name ==
"IDRSTABL")
62 if (solver_name ==
"SparseLU")
66 if (solver_name ==
"PardisoLU")
70 if (solver_name ==
"GMRES")
75 OGS_FATAL(
"Unknown Eigen solver type `{:s}'", solver_name);
79 const std::string& precon_name)
81 if (precon_name ==
"NONE")
85 if (precon_name ==
"DIAGONAL")
89 if (precon_name ==
"LeastSquareDIAGONAL")
93 if (precon_name ==
"ILUT")
98 OGS_FATAL(
"Unknown Eigen preconditioner type `{:s}'", precon_name);
102 const std::string& triangular_matrix_name)
104 if (triangular_matrix_name ==
"Lower")
108 if (triangular_matrix_name ==
"Upper")
112 if (triangular_matrix_name ==
"LowerUpper")
117 OGS_FATAL(
"Unknown triangular matrix type `{:s}'", triangular_matrix_name);
127 return "LeastSquareCG";
155 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.