1#ifndef included_AMP_PetscMatrixShellOperator
2#define included_AMP_PetscMatrixShellOperator
4#include "AMP/operators/LinearOperator.h"
5#include "AMP/utils/AMP_MPI.h"
8#ifdef MPICH_SKIP_MPICXX
9 #define _FIX_FOR_PETSC_MPI_CXX
10 #undef MPICH_SKIP_MPICXX
13#ifdef OMPI_SKIP_MPICXX
14 #define _FIX_FOR_PETSC_OMPI_CXX
15 #undef OMPI_SKIP_MPICXX
20#ifdef _FIX_FOR_PETSC_MPI_CXX
21 #ifndef MPICH_SKIP_MPICXX
22 #define MPICH_SKIP_MPICXX
26#ifdef _FIX_FOR_PETSC_OMPI_CXX
27 #ifndef OMPI_SKIP_MPICXX
28 #define OMPI_SKIP_MPICXX
56 void reset( std::shared_ptr<const OperatorParameters> params )
override;
Provides C++ wrapper around MPI routines.
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< const Vector > const_shared_ptr
std::shared_ptr< AMP::Operator::Operator > shared_ptr
void reset(std::shared_ptr< const OperatorParameters > params) override
static PetscErrorCode mult(Mat, Vec, Vec)
std::shared_ptr< Operator > d_operator
PetscMatrixShellOperator(std::shared_ptr< const OperatorParameters > params)
void setMatLocalColumnSize(int val)
void setMatLocalRowSize(int val)
void setComm(const AMP_MPI &comm)
int d_iMatLocalColumnSize
virtual ~PetscMatrixShellOperator()
std::shared_ptr< AMP::LinearAlgebra::Variable > getOutputVariable() const override
Return the output variable.
std::shared_ptr< AMP::LinearAlgebra::Variable > getInputVariable() const override
Return the input variable.
void setOperator(std::shared_ptr< Operator > op)
void apply(AMP::LinearAlgebra::Vector::const_shared_ptr u, AMP::LinearAlgebra::Vector::shared_ptr f) override