#include <preconditionerpetsc.hpp>
Petsc preconditioner class.
Public Member Functions | |
Constructors, destructor | |
PreconditionerPetsc (std::string const &name, WorldComm const &worldComm=Environment::worldComm()) | |
default constructor | |
PreconditionerPetsc (PreconditionerPetsc const &) | |
copy constructor | |
virtual | ~PreconditionerPetsc () |
destructor | |
virtual void | clear () |
virtual void | init () |
Operator overloads | |
PreconditionerPetsc & | operator= (PreconditionerPetsc const &o) |
copy operator | |
Accessors | |
PC | pc () |
Methods | |
virtual void | apply (const Vector< T > &x, Vector< T > &y) |
![]() | |
Preconditioner & | operator= (Preconditioner const &o) |
copy operator | |
void | operator() () |
bool | initialized () const |
WorldComm const & | worldComm () const |
void | apply (vector_ptrtype const &x, vector_ptrtype &y) |
PreconditionerType | type () const |
virtual std::string | name () const |
sparse_matrix_ptrtype const & | matrix () const |
virtual void | setName (std::string const &n) |
void | setMatrix (sparse_matrix_ptrtype mat) |
void | setType (const PreconditionerType pct) |
void | setMatSolverPackageType (const MatSolverPackageType mspt) |
void | setPrecMatrixStructure (MatrixStructure mstruct) |
Preconditioner (std::string const &name="", WorldComm const &worldComm=Environment::worldComm()) | |
default constructor | |
Preconditioner (Preconditioner const &o) | |
copy constructor | |
~Preconditioner () | |
destructor | |
Static Public Member Functions | |
static void | setPetscFieldSplitPreconditionerType (PC &pc, WorldComm const &worldComm=Environment::worldComm(), std::string const &prefix="") |
static void | setPetscMGCoarsePreconditionerType (PC &pc, WorldComm const &worldComm=Environment::worldComm(), std::string const &prefix="") |
static void | setPetscMGLevelsPreconditionerType (PC &pc, WorldComm const &worldComm=Environment::worldComm(), std::string const &prefix="") |
static void | setPetscSubpreconditionerType (PC &pc, WorldComm const &worldComm=Environment::worldComm(), std::string const &prefix="") |
Mutators | |
static void | setPetscPreconditionerType (const PreconditionerType &preconditioner_type, const MatSolverPackageType &matSolverPackage_type, PC &pc, WorldComm const &worldComm=Environment::worldComm(), std::string const &prefix="") |
![]() | |
static preconditioner_ptrtype | build (std::string const &name="", BackendType=BACKEND_PETSC, WorldComm const &worldComm=Environment::worldComm()) |
Public Attributes | |
Mat | M_mat |
PC | M_pc |
Additional Inherited Members | |
![]() | |
typedef Preconditioner< T > | preconditioner_type |
typedef boost::shared_ptr < Preconditioner< T > > | preconditioner_ptrtype |
typedef boost::shared_ptr < MatrixSparse< T > > | sparse_matrix_ptrtype |
typedef boost::shared_ptr < Vector< T > > | vector_ptrtype |
![]() | |
bool | M_is_initialized |
bool | M_mat_has_changed |
sparse_matrix_ptrtype | M_matrix |
MatSolverPackageType | M_matSolverPackage_type |
std::string | M_name |
MatrixStructure | M_prec_matrix_structure |
PreconditionerType | M_preconditioner_type |
WorldComm | M_worldComm |
|
virtual |
Computes the preconditioned vector "y" based on input "x". Usually by solving Py=x to get the action of P^-1 x.
Implements Feel::Preconditioner< T >.
|
virtual |
Release all memory and clear data structures.
Reimplemented from Feel::Preconditioner< T >.
|
virtual |
Initialize data structures if not done so already.
Reimplemented from Feel::Preconditioner< T >.
|
inline |
Returns the actual Petsc PC struct. Useful for more advanced purposes
References Feel::PreconditionerPetsc< T >::M_pc.
|
static |
Tells PETSC to use the user-specified preconditioner
Mat Feel::PreconditionerPetsc< T >::M_mat |
Petsc Matrix that's been pulled out of the _matrix object. This happens during init...
PC Feel::PreconditionerPetsc< T >::M_pc |
Preconditioner context