1#ifndef included_AMP_PetscVector
2#define included_AMP_PetscVector
4#include "AMP/vectors/Vector.h"
5#include "AMP/vectors/petsc/PetscHelpers.h"
PetscVector is a bridge between AMP::LinearAlgebra::Vector and the PETSc Vec data structure.
const Vec & getNativeVec() const
PetscVector()
Empty constructor.
const Vec & getVec() const
Obtain PETSc Vec for use in PETSc routines.
static std::shared_ptr< PetscVector > view(Vector::shared_ptr AmpVector)
If needed, create a PETSc wrapper for AmpVector. Otherwise, return AmpVector.
std::shared_ptr< const Vector > getManagedVec() const
std::shared_ptr< Vector > getManagedVec()
static std::shared_ptr< const PetscVector > constView(Vector::const_shared_ptr AmpVector)
If needed, create a PETSc wrapper for AmpVector. Otherwise, return AmpVector.
Vec & getVec()
Obtain PETSc Vec for use in PETSc routines.
std::shared_ptr< Vector > d_vector
PetscVector(std::shared_ptr< Vector > vec)
Default constructor.
virtual ~PetscVector()
Destructor.
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< const Vector > const_shared_ptr