1#ifndef included_AMP_ThyraVector
2#define included_AMP_ThyraVector
5#include "AMP/vectors/Vector.h"
9#include "Thyra_VectorDefaultBase_decl.hpp"
ThyraVector is a bridge between AMP::LinearAlgebra::Vector and the Thyra::VectorDefaultBase data stru...
virtual std::shared_ptr< Vector > getManagedVec()=0
virtual Teuchos::RCP< const Thyra::VectorBase< double > > getVec() const
Obtain Thyra Vector for use in Thyra routines.
virtual Teuchos::RCP< Thyra::VectorBase< double > > getVec()
Obtain Thyra Vector for use in Thyra routines.
auto getNativeVec() const
virtual std::shared_ptr< const Vector > getManagedVec() const =0
ThyraVector()
Construct a ThyraVector.
static std::shared_ptr< const ThyraVector > constView(Vector::const_shared_ptr AmpVector)
If needed, create a Thyra wrapper for AmpVector. Otherwise, return AmpVector.
virtual ~ThyraVector()
Destructor.
static std::shared_ptr< ThyraVector > view(Vector::shared_ptr AmpVector)
If needed, create a Thyra wrapper for AmpVector. Otherwise, return AmpVector.
Teuchos::RCP< Thyra::VectorBase< double > > d_thyraVec
Thyra Vector holding data in the vector.
static AMP::LinearAlgebra::Vector::shared_ptr view(Thyra::VectorBase< double > *vec)
Return an AMP Vector from the Thyra::VectorBase.
static AMP::LinearAlgebra::Vector::const_shared_ptr constView(const Thyra::VectorBase< double > *vec)
Return an AMP Vector from the Thyra::VectorBase.
void swapThyraVec(ThyraVector &rhs)
Swap the underlying PETSc Vec with another AMP::LinearAlgebra::Vector.
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< const Vector > const_shared_ptr
#define DISABLE_WARNINGS
Re-enable warnings.
#define ENABLE_WARNINGS
Suppress all warnings.