19 #ifndef GEOSX_LINEARALGEBRA_SOLVERS_SEPARATECOMPONENTPRECONDITIONER_HPP_ 20 #define GEOSX_LINEARALGEBRA_SOLVERS_SEPARATECOMPONENTPRECONDITIONER_HPP_ 22 #include "PreconditionerBase.hpp" 33 template<
typename LAI >
73 virtual void clear()
override;
102 std::unique_ptr< PreconditionerBase< LAI > > m_precond;
107 #endif //GEOSX_LINEARALGEBRA_SOLVERS_SEPARATECOMPONENTPRECONDITIONER_HPP_ Common interface for preconditioning operators.
virtual void compute(Matrix const &mat, DofManager const &dofManager) override
Compute the preconditioner from a matrix.
virtual ~SeparateComponentPreconditioner() override
Destructor.
Separate component filter implemented as a compound preconditioner.
SeparateComponentPreconditioner(localIndex const numComp, std::unique_ptr< PreconditionerBase< LAI > > precond)
Constructor.
The DoFManager is responsible for allocating global dofs, constructing sparsity patterns, and generally simplifying the interaction between PhysicsSolvers and linear algebra operations.
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
virtual void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector.
PreconditionerBase< LAI > const & getNestedPrecond() const
Access to the nested preconditioner.
std::ptrdiff_t localIndex
Local index type (for indexing objects within an MPI partition).
virtual void clear() override
Clean up the preconditioner setup.
Matrix const & getPrecondMatrix() const
Access the preconditioning matrix.
Abstract base class for linear operators.
typename Base::Vector Vector
Alias for vector type.