Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Feel::PreconditionerPetsc< T > Class Template Reference

#include <preconditionerpetsc.hpp>

Detailed Description

template<typename T>
class Feel::PreconditionerPetsc< T >

Petsc preconditioner class.

Author
Christophe Prud'homme
See Also
+ Inheritance diagram for Feel::PreconditionerPetsc< T >:

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
PreconditionerPetscoperator= (PreconditionerPetsc const &o)
 copy operator
 
Accessors
PC pc ()
 
Methods
virtual void apply (const Vector< T > &x, Vector< T > &y)
 
- Public Member Functions inherited from Feel::Preconditioner< T >
Preconditioneroperator= (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 Public Member Functions inherited from Feel::Preconditioner< T >
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

- Public Types inherited from Feel::Preconditioner< T >
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
 
- Protected Attributes inherited from Feel::Preconditioner< T >
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
 

Member Function Documentation

template<typename T >
void Feel::PreconditionerPetsc< T >::apply ( const Vector< T > &  x,
Vector< T > &  y 
)
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 >.

template<typename T >
void Feel::PreconditionerPetsc< T >::clear ( )
virtual

Release all memory and clear data structures.

Reimplemented from Feel::Preconditioner< T >.

template<typename T >
void Feel::PreconditionerPetsc< T >::init ( )
virtual

Initialize data structures if not done so already.

Reimplemented from Feel::Preconditioner< T >.

template<typename T >
PC Feel::PreconditionerPetsc< T >::pc ( )
inline

Returns the actual Petsc PC struct. Useful for more advanced purposes

References Feel::PreconditionerPetsc< T >::M_pc.

template<typename T >
void Feel::PreconditionerPetsc< T >::setPetscPreconditionerType ( const PreconditionerType preconditioner_type,
const MatSolverPackageType &  matSolverPackage_type,
PC &  pc,
WorldComm const &  worldComm = Environment::worldComm(),
std::string const &  prefix = "" 
)
static

Tells PETSC to use the user-specified preconditioner

Member Data Documentation

template<typename T >
Mat Feel::PreconditionerPetsc< T >::M_mat

Petsc Matrix that's been pulled out of the _matrix object. This happens during init...

template<typename T >
PC Feel::PreconditionerPetsc< T >::M_pc

Preconditioner context


The documentation for this class was generated from the following files:

Generated on Sun Dec 22 2013 13:11:21 for Feel++ by doxygen 1.8.5