20 #ifndef GEOS_LINEARALGEBRA_SOLVERS_SEPARATECOMPONENTPRECONDITIONER_HPP_ 
   21 #define GEOS_LINEARALGEBRA_SOLVERS_SEPARATECOMPONENTPRECONDITIONER_HPP_ 
   23 #include "linearAlgebra/common/PreconditionerBase.hpp" 
   34 template< 
typename LAI >
 
   76     return m_precond->hasPreconditionerMatrix();
 
   81     return m_precond->preconditionerMatrix();
 
  111   std::unique_ptr< PreconditionerBase< LAI > > m_precond;
 
Abstract base class for linear operators.
 
Common interface for preconditioning operators.
 
bool ready() const
Chech if preconditioner is ready to use.
 
typename Base::Vector Vector
Alias for vector type.
 
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
 
Separate component filter implemented as a compound preconditioner.
 
virtual Matrix const  & preconditionerMatrix() const override
Access the preconditioner in matrix form (whenever available). It must be overridden by the specific ...
 
SeparateComponentPreconditioner(localIndex const numComp, std::unique_ptr< PreconditionerBase< LAI > > precond)
Constructor.
 
typename Base::Matrix Matrix
Alias for matrix type.
 
virtual void clear() override
Clean up the preconditioner setup.
 
virtual void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector.
 
virtual bool hasPreconditionerMatrix() const override
Check whether the preconditioner is available in matrix (explicit) form.
 
virtual void setup(Matrix const &mat) override
Compute the preconditioner from a matrix.
 
virtual ~SeparateComponentPreconditioner() override
Destructor.
 
Matrix const  & separateComponentMatrix() const
 
PreconditionerBase< LAI > const  & innerPrecond() const
Access to the nested preconditioner.
 
#define GEOS_LAI_ASSERT(expr)
 
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).