20 #ifndef GEOS_LINEARALGEBRA_INTERFACES_PETSCPRECONDITIONER_HPP_
21 #define GEOS_LINEARALGEBRA_INTERFACES_PETSCPRECONDITIONER_HPP_
23 #include "common/PreconditionerBase.hpp"
36 extern "C" struct _p_PC;
37 extern "C" struct _p_MatNullSpace;
112 using MatNullSpace = _p_MatNullSpace *;
131 MatNullSpace m_nullsp;
This class creates and provides basic support for the Mat matrix object type used in PETSc.
Wrapper around PETSc-based preconditioners.
virtual void clear() override
Clean up the preconditioner setup.
typename Base::Matrix Matrix
Alias for matrix type.
typename Base::Vector Vector
Alias for vector type.
PC const & unwrapped() const
Access the underlying implementation.
PetscPreconditioner(LinearSolverParameters params)
Constructor.
virtual void setup(Matrix const &mat) override
Compute the preconditioner from a matrix.
PetscPreconditioner(LinearSolverParameters params, arrayView1d< Vector const > nearNullKernel)
Constructor.
virtual ~PetscPreconditioner() override
Destructor.
virtual void apply(Vector const &src, Vector &dst) const override
Apply operator to a vector.
Common interface for preconditioning operators.
typename Base::Vector Vector
Alias for vector type.
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
ArrayView< T, 1 > arrayView1d
Alias for 1D array view.
Set of parameters for a linear solver or preconditioner.