GEOSX
Public Types | Public Member Functions | List of all members
geosx::PreconditionerBlockJacobi< LAI > Class Template Reference

Common interface for identity preconditioning operator. More...

#include <PreconditionerBlockJacobi.hpp>

Inheritance diagram for geosx::PreconditionerBlockJacobi< LAI >:
Inheritance graph
[legend]

Public Types

using Base = PreconditionerBase< LAI >
 Alias for base type.
 
using Vector = typename Base::Vector
 Alias for vector type.
 
using Matrix = typename Base::Matrix
 Alias for matrix type.
 
- Public Types inherited from geosx::PreconditionerBase< LAI >
using Base = LinearOperator< typename LAI::ParallelVector >
 Alias for base type.
 
using Vector = typename Base::Vector
 Alias for vector type.
 
using Matrix = typename LAI::ParallelMatrix
 Alias for matrix type.
 
- Public Types inherited from geosx::LinearOperator< LAI::ParallelVector >
using Vector = LAI::ParallelVector
 Alias for template parameter.
 

Public Member Functions

 PreconditionerBlockJacobi (localIndex const &blockSize=0)
 Constructor. More...
 
virtual void compute (Matrix const &mat) override
 Compute the preconditioner from a matrix. More...
 
virtual void compute (Matrix const &mat, DofManager const &dofManager) override
 Compute the preconditioner from a matrix. More...
 
virtual void clear () override
 Clean up the preconditioner setup. More...
 
virtual void apply (Vector const &src, Vector &dst) const override
 Apply operator to a vector. More...
 
virtual bool hasPreconditionerMatrix () const override
 Whether the preconditioner is available in matrix form. More...
 
virtual Matrix const & preconditionerMatrix () const override
 Access the preconditioner in matrix form. More...
 
- Public Member Functions inherited from geosx::PreconditionerBase< LAI >
virtual globalIndex numGlobalRows () const override
 Get the number of global rows. More...
 
virtual globalIndex numGlobalCols () const override
 Get the number of global columns. More...
 
bool ready () const
 Chech if preconditioner is ready to use. More...
 
Matrix const & matrix () const
 Access the matrix the preconditioner was computed from. More...
 
- Public Member Functions inherited from geosx::LinearOperator< LAI::ParallelVector >
 LinearOperator ()=default
 Constructor.
 
virtual ~LinearOperator ()=default
 Destructor.
 
virtual void apply (Vector const &src, Vector &dst) const=0
 Apply operator to a vector. More...
 
virtual void residual (Vector const &x, Vector const &b, Vector &r) const
 Compute residual r = Ax - b. More...
 

Detailed Description

template<typename LAI>
class geosx::PreconditionerBlockJacobi< LAI >

Common interface for identity preconditioning operator.

Template Parameters
LAIlinear algebra interface providing vectors, matrices and solvers

Definition at line 30 of file PreconditionerBlockJacobi.hpp.

Constructor & Destructor Documentation

◆ PreconditionerBlockJacobi()

template<typename LAI >
geosx::PreconditionerBlockJacobi< LAI >::PreconditionerBlockJacobi ( localIndex const &  blockSize = 0)
inline

Constructor.

Parameters
blockSizethe size of block diagonal matrices.

Definition at line 47 of file PreconditionerBlockJacobi.hpp.

Member Function Documentation

◆ apply()

template<typename LAI >
virtual void geosx::PreconditionerBlockJacobi< LAI >::apply ( Vector const &  src,
Vector dst 
) const
inlineoverridevirtual

Apply operator to a vector.

Parameters
srcInput vector (src).
dstOutput vector (dst).

Definition at line 134 of file PreconditionerBlockJacobi.hpp.

◆ clear()

template<typename LAI >
virtual void geosx::PreconditionerBlockJacobi< LAI >::clear ( )
inlineoverridevirtual

Clean up the preconditioner setup.

Releases memory used and allows the matrix to be deleted cleanly. This method should be called before the matrix used to compute the preconditioner goes out of scope or is re-created. Some implementations require the matrix to outlive the preconditioner (for example, Trilinos/ML may crash the program if deleted after the matrix).

Note
Should be properly overridden in derived classes, which may call this method.

Reimplemented from geosx::PreconditionerBase< LAI >.

Definition at line 123 of file PreconditionerBlockJacobi.hpp.

◆ compute() [1/2]

template<typename LAI >
virtual void geosx::PreconditionerBlockJacobi< LAI >::compute ( Matrix const &  mat)
inlineoverridevirtual

Compute the preconditioner from a matrix.

Parameters
matthe matrix to precondition.

Reimplemented from geosx::PreconditionerBase< LAI >.

Definition at line 57 of file PreconditionerBlockJacobi.hpp.

◆ compute() [2/2]

template<typename LAI >
virtual void geosx::PreconditionerBlockJacobi< LAI >::compute ( Matrix const &  mat,
DofManager const &  dofManager 
)
inlineoverridevirtual

Compute the preconditioner from a matrix.

Parameters
matthe matrix to precondition
dofManagerthe Degree-of-Freedom manager associated with matrix

Reimplemented from geosx::PreconditionerBase< LAI >.

Definition at line 105 of file PreconditionerBlockJacobi.hpp.

◆ hasPreconditionerMatrix()

template<typename LAI >
virtual bool geosx::PreconditionerBlockJacobi< LAI >::hasPreconditionerMatrix ( ) const
inlineoverridevirtual

Whether the preconditioner is available in matrix form.

Returns
true: explicit form is available

Reimplemented from geosx::PreconditionerBase< LAI >.

Definition at line 148 of file PreconditionerBlockJacobi.hpp.

◆ preconditionerMatrix()

template<typename LAI >
virtual Matrix const& geosx::PreconditionerBlockJacobi< LAI >::preconditionerMatrix ( ) const
inlineoverridevirtual

Access the preconditioner in matrix form.

Returns
reference to the preconditioner matrix

Reimplemented from geosx::PreconditionerBase< LAI >.

Definition at line 158 of file PreconditionerBlockJacobi.hpp.


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