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;
111 using MatNullSpace = _p_MatNullSpace *;
130 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, array1d< 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.
Array< T, 1 > array1d
Alias for 1D array.
Set of parameters for a linear solver or preconditioner.