20 #ifndef LIBMESH_EIGEN_PRECONDITIONER_H 21 #define LIBMESH_EIGEN_PRECONDITIONER_H 23 #include "libmesh/libmesh_config.h" 25 #ifdef LIBMESH_HAVE_EIGEN 28 #include "libmesh/preconditioner.h" 34 template <
typename T>
class SparseMatrix;
35 template <
typename T>
class NumericVector;
62 virtual void clear ()
override {}
64 virtual void init ()
override;
89 #endif // #ifdef LIBMESH_HAVE_EIGEN 90 #endif // LIBMESH_EIGEN_PRECONDITIONER_H EigenPreconditioner(const libMesh::Parallel::Communicator &comm_in)
Constructor.
virtual void init() override
Initialize data structures if not done so already.
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
The libMesh namespace provides an interface to certain functionality in the library.
virtual void apply(const NumericVector< T > &x, NumericVector< T > &y) override
Computes the preconditioned vector y based on input vector x.
virtual ~EigenPreconditioner()
Destructor.
This class provides a uniform interface for preconditioners.
This class provides an interface to the suite of preconditioners available from Eigen.
Generic shell matrix, i.e.
virtual void clear() override
Release all memory and clear data structures.