20 #ifndef LIBMESH_PETSC_PRECONDITIONER_H 21 #define LIBMESH_PETSC_PRECONDITIONER_H 25 #ifdef LIBMESH_HAVE_PETSC 34 #ifdef LIBMESH_FORWARD_DECLARE_ENUMS 50 template <
typename T>
class SparseMatrix;
51 template <
typename T>
class NumericVector;
52 template <
typename T>
class ShellMatrix;
79 virtual void clear ()
override;
81 virtual void init ()
override;
114 #if PETSC_VERSION_LESS_THAN(3,0,0) 127 template <
typename T>
137 template <
typename T>
146 #endif // #ifdef LIBMESH_HAVE_PETSC 147 #endif // LIBMESH_PETSC_PRECONDITIONER_H
virtual ~PetscPreconditioner()
virtual void init() override
PreconditionerType type() const
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
virtual void apply(const NumericVector< T > &x, NumericVector< T > &y) override
static void set_petsc_subpreconditioner_type(PCType type, PC &pc)
PetscPreconditioner(const libMesh::Parallel::Communicator &comm_in)
virtual void clear() override
static void set_petsc_preconditioner_type(const PreconditionerType &preconditioner_type, PC &pc)