20 #ifndef LIBMESH_EIGEN_SPARSE_LINEAR_SOLVER_H 21 #define LIBMESH_EIGEN_SPARSE_LINEAR_SOLVER_H 25 #ifdef LIBMESH_HAVE_EIGEN 64 virtual void clear ()
override;
69 virtual void init (
const char *
name=
nullptr)
override;
74 virtual std::pair<unsigned int, Real>
79 const unsigned int m_its)
override;
84 virtual std::pair<unsigned int, Real>
89 const unsigned int m_its)
override;
94 virtual std::pair<unsigned int, Real>
100 const unsigned int m_its)
override;
105 virtual std::pair<unsigned int, Real>
110 const unsigned int m_its)
override;
117 virtual std::pair<unsigned int, Real>
123 const unsigned int m_its)
override;
152 static std::map<Eigen::ComputationInfo, LinearConvergenceReason>
build_map()
154 std::map<Eigen::ComputationInfo, LinearConvergenceReason> ret;
168 template <
typename T>
169 std::map<Eigen::ComputationInfo, LinearConvergenceReason>
174 template <
typename T>
183 template <
typename T>
185 std::pair<unsigned int, Real>
193 libmesh_error_msg(
"ERROR: Eigen does not support a user-supplied preconditioner!");
195 std::pair<unsigned int, Real> p;
201 #endif // #ifdef LIBMESH_HAVE_EIGEN 202 #endif // LIBMESH_EIGEN_SPARSE_LINEAR_SOLVER_H std::string name(const ElemQuality q)
~EigenSparseLinearSolver()
virtual std::pair< unsigned int, Real > solve(SparseMatrix< T > &matrix, NumericVector< T > &solution, NumericVector< T > &rhs, const double tol, const unsigned int m_its) override
Eigen::ComputationInfo _comp_info
EigenSparseLinearSolver(const libMesh::Parallel::Communicator &comm_in)
virtual std::pair< unsigned int, Real > adjoint_solve(SparseMatrix< T > &matrix, NumericVector< T > &solution, NumericVector< T > &rhs, const double tol, const unsigned int m_its) override
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
virtual void init(const char *name=nullptr) override
static std::map< Eigen::ComputationInfo, LinearConvergenceReason > build_map()
virtual LinearConvergenceReason get_converged_reason() const override
static std::map< Eigen::ComputationInfo, LinearConvergenceReason > _convergence_reasons
virtual void clear() override
void set_eigen_preconditioner_type()