20 #ifndef LIBMESH_LASPACK_LINEAR_SOLVER_H 21 #define LIBMESH_LASPACK_LINEAR_SOLVER_H 25 #if defined(LIBMESH_HAVE_LASPACK) 66 virtual void clear ()
override;
71 virtual void init (
const char *
name =
nullptr)
override;
76 virtual std::pair<unsigned int, Real>
81 const unsigned int m_its)
override;
86 virtual std::pair<unsigned int, Real>
91 const unsigned int m_its)
override;
96 virtual std::pair<unsigned int, Real>
102 const unsigned int m_its)
override;
107 virtual std::pair<unsigned int, Real>
112 const unsigned int m_its)
override;
119 virtual std::pair<unsigned int, Real>
125 const unsigned int m_its)
override;
154 template <
typename T>
158 _precond_type (ILUPrecond)
164 template <
typename T>
173 template <
typename T>
175 std::pair<unsigned int, Real>
183 libmesh_error_msg(
"ERROR: LASPACK does not support a user-supplied preconditioner!");
185 std::pair<unsigned int, Real> p;
191 #endif // #ifdef LIBMESH_HAVE_LASPACK 192 #endif // LIBMESH_LASPACK_LINEAR_SOLVER_H std::string name(const ElemQuality q)
virtual void print_converged_reason() const override
void set_laspack_preconditioner_type()
virtual void init(const char *name=nullptr) override
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
const Parallel::Communicator & comm() const
LaspackLinearSolver(const libMesh::Parallel::Communicator &comm)
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
PrecondProcType _precond_type
virtual void clear() override
virtual LinearConvergenceReason get_converged_reason() const override
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