Feel++  0.91.4
Static Public Member Functions | Public Attributes | List of all members
Feel::PreconditionerPetsc< T > Class Template Reference

Petsc preconditioner class. More...

#include <preconditionerpetsc.hpp>

Inheritance diagram for Feel::PreconditionerPetsc< T >:
Feel::Preconditioner< T >

Public Member Functions

Constructors, destructor
 PreconditionerPetsc ()
 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
 
bool initialized () const
 
void apply (vector_ptrtype const &x, vector_ptrtype &y)
 
PreconditionerType type () const
 
void setMatrix (sparse_matrix_ptrtype mat)
 
void setType (const PreconditionerType pct)
 
 Preconditioner ()
 default constructor
 
 Preconditioner (Preconditioner const &o)
 copy constructor
 
 ~Preconditioner ()
 destructor
 

Static Public Member Functions

static void setPetscSubpreconditionerType (const PCType type, PC &pc)
 
Mutators
static void setPetscPreconditionerType (const PreconditionerType &preconditioner_type, PC &pc)
 
- Static Public Member Functions inherited from Feel::Preconditioner< T >
static preconditioner_ptrtype build (BackendType=BACKEND_PETSC)
 

Public Attributes

PC M_pc
 
Mat M_mat
 

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 >
sparse_matrix_ptrtype M_matrix
 
PreconditionerType M_preconditioner_type
 
bool M_is_initialized
 
mpi::communicator M_comm
 

Detailed Description

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

Petsc preconditioner class.

Author
Christophe Prud'homme
See Also

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 >
virtual void Feel::PreconditionerPetsc< T >::clear ( )
inlinevirtual

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,
PC &  pc 
)
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...

Referenced by Feel::PreconditionerPetsc< T >::operator=().

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