Definition at line 19 of file EigenLinearSolver.h.
#include <EigenLinearSolver.h>
◆ EigenLinearSolver()
| MathLib::EigenLinearSolver::EigenLinearSolver |
( |
std::string const & | solver_name, |
|
|
EigenOption const & | option ) |
|
explicit |
Constructor
- Parameters
-
| solver_name | A name used as a prefix for command line options if there are such options available. |
| option | Eigen linear solver options. |
Definition at line 496 of file EigenLinearSolver.cpp.
499{
501
503 {
505 {
506 using SolverType =
507 Eigen::SparseLU<Matrix, Eigen::COLAMDOrdering<int>>;
509 details::EigenDirectLinearSolver<SolverType>>();
511 return;
512 }
522 option_.triangular_matrix_type);
524 return;
529 option_.triangular_matrix_type);
531 return;
533 {
534#ifdef USE_MKL
535 using SolverType = Eigen::PardisoLU<EigenMatrix::RawMatrixType>;
536 solver_.reset(
new details::EigenDirectLinearSolver<SolverType>);
538 return;
539#else
541 "The code is not compiled with Intel MKL. Linear solver type "
542 "PardisoLU is not available.");
543#endif
544 }
545 }
546
547 OGS_FATAL(
"Invalid Eigen linear solver type. Aborting.");
548}
bool can_solve_rectangular_
std::unique_ptr< EigenLinearSolverBase > solver_
Eigen::SparseMatrix< double, Eigen::RowMajor > RawMatrixType
std::unique_ptr< EigenLinearSolverBase > createIterativeSolver()
References MathLib::EigenOption::BiCGSTAB, MathLib::EigenOption::BiCGSTABL, can_solve_rectangular_, MathLib::EigenOption::CG, MathLib::details::createIterativeSolver(), MathLib::EigenOption::GMRES, MathLib::EigenOption::IDRS, MathLib::EigenOption::IDRSTABL, MathLib::EigenOption::LeastSquareCG, option_, MathLib::EigenOption::PardisoLU, and solver_.
◆ ~EigenLinearSolver()
| MathLib::EigenLinearSolver::~EigenLinearSolver |
( |
| ) |
|
|
default |
◆ canSolveRectangular()
| bool MathLib::EigenLinearSolver::canSolveRectangular |
( |
| ) |
const |
|
inline |
◆ compute()
◆ getOption()
| EigenOption & MathLib::EigenLinearSolver::getOption |
( |
| ) |
|
|
inline |
◆ setAngle()
| void MathLib::EigenLinearSolver::setAngle |
( |
| ) |
|
|
protected |
◆ setL()
| void MathLib::EigenLinearSolver::setL |
( |
| ) |
|
|
protected |
◆ setOption()
| void MathLib::EigenLinearSolver::setOption |
( |
const EigenOption & | option | ) |
|
|
inline |
◆ setResidualUpdate()
| void MathLib::EigenLinearSolver::setResidualUpdate |
( |
| ) |
|
|
protected |
◆ setRestart()
| void MathLib::EigenLinearSolver::setRestart |
( |
| ) |
|
|
protected |
◆ setS()
| void MathLib::EigenLinearSolver::setS |
( |
| ) |
|
|
protected |
◆ setSmoothing()
| void MathLib::EigenLinearSolver::setSmoothing |
( |
| ) |
|
|
protected |
◆ solve() [1/2]
◆ solve() [2/2]
◆ willCompute()
◆ can_solve_rectangular_
| bool MathLib::EigenLinearSolver::can_solve_rectangular_ = false |
|
protected |
◆ option_
◆ solver_
The documentation for this class was generated from the following files: