diff --git a/Documentation/ProjectFile/prj/linear_solvers/linear_solver/eigen/t_restart.md b/Documentation/ProjectFile/prj/linear_solvers/linear_solver/eigen/t_restart.md new file mode 100644 index 0000000000000000000000000000000000000000..1bed86bb5fac093bb2d22f7eba7458017ed7a240 --- /dev/null +++ b/Documentation/ProjectFile/prj/linear_solvers/linear_solver/eigen/t_restart.md @@ -0,0 +1,7 @@ +Sets the number of iterations after which a restart of the GMRES method is performed. +Default value is 30. +This option is only available for the GMRES solver which is part of the unsupported Eigen modules that are available +through OGS_USE_EIGEN_UNSUPPORTED cmake option. + +See following links for detail description: + - "Detailed Description" in https://eigen.tuxfamily.org/dox/unsupported/classEigen_1_1GMRES.html diff --git a/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp b/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp index a2a9bb3ac5d97b7d2fd9182a0e04daa6158e66a6..3e930861d295e8a74c82e48d95824ed6384bc0db 100644 --- a/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp +++ b/MathLib/LinAlg/Eigen/EigenLinearSolver.cpp @@ -124,6 +124,7 @@ private: } }; +/// Specialization for (all) three preconditioners separately template <> void EigenIterativeLinearSolver< Eigen::GMRES<EigenMatrix::RawMatrixType, diff --git a/MathLib/LinAlg/Eigen/EigenOption.h b/MathLib/LinAlg/Eigen/EigenOption.h index c40b6e89ed9ccc33c60c78227c26b8ccd12fb360..786c7d4f0c5a7e90b3c5276bcc8e7639177b767c 100644 --- a/MathLib/LinAlg/Eigen/EigenOption.h +++ b/MathLib/LinAlg/Eigen/EigenOption.h @@ -47,6 +47,7 @@ struct EigenOption final #ifdef USE_EIGEN_UNSUPPORTED /// Scaling the coefficient matrix and the RHS bector bool scaling; + /// Restart value for the GMRES solver int restart; #endif