Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
AMP::LinearAlgebra::EpetraVector Class Referencefinal

A class that manages an Epetra_Vector. More...

#include <EpetraVector.h>

Public Member Functions

Epetra_Vector & getEpetra_Vector ()
 Obtain Epetra_Vector for use in Trilinos routines.
 
const Epetra_Vector & getEpetra_Vector () const
 Obtain Epetra_Vector for use in Trilinos routines.
 
std::shared_ptr< VectorgetManagedVec ()
 
std::shared_ptr< const VectorgetManagedVec () const
 
Epetra_Vector & getNativeVec ()
 
const Epetra_Vector & getNativeVec () const
 
 ~EpetraVector ()
 Destructor.
 

Static Public Member Functions

static std::shared_ptr< const EpetraVectorconstView (Vector::const_shared_ptr vec)
 Obtain a view of a vector with an Epetra_Vector wrapper.
 
static std::shared_ptr< EpetraVectorview (Vector::shared_ptr vec)
 Obtain a view of a vector with an Epetra_Vector wrapper.
 

Private Member Functions

 EpetraVector ()=delete
 
 EpetraVector (std::shared_ptr< Vector >)
 

Private Attributes

std::shared_ptr< Vectord_AMP
 
std::shared_ptr< Epetra_Vector > d_epetra
 

Detailed Description

A class that manages an Epetra_Vector.

See also
PetscVector
SundialsVector

An EpetraVector presents an Epetra_Vector class. Given an AMP::LinearAlgebra::Vector, this class can create an Epetra view without copying the data. As such, this class serves three purposes:

  1. Provides an Epetra_Vector for derived classes to use, fill, manage, etc.
  2. Provides an interface for accessing this Epetra_Vector independent of base or derived classes
  3. Provides a static method for creating an Epetra_Vector view of an AMP Vector.

Definition at line 29 of file EpetraVector.h.

Constructor & Destructor Documentation

◆ ~EpetraVector()

AMP::LinearAlgebra::EpetraVector::~EpetraVector ( )

Destructor.

◆ EpetraVector() [1/2]

AMP::LinearAlgebra::EpetraVector::EpetraVector ( )
privatedelete

◆ EpetraVector() [2/2]

AMP::LinearAlgebra::EpetraVector::EpetraVector ( std::shared_ptr< Vector )
explicitprivate

Member Function Documentation

◆ constView()

static std::shared_ptr< const EpetraVector > AMP::LinearAlgebra::EpetraVector::constView ( Vector::const_shared_ptr  vec)
static

Obtain a view of a vector with an Epetra_Vector wrapper.

Parameters
[in]vecThe vector to get an Epetra_Vector view of.
Returns
A Vector::shared_ptr guaranteed to have an Epetra_Vector wrapper available through the getEpetra_Vector() interface.
See also
getEpetra_Vector()

If the vector has an Epetra_Vector wrapper already created, it is returned. Otherwise, it will try to create an Epetra_Vector wrapper around the Vector. If it fails, an exception is thrown.

◆ getEpetra_Vector() [1/2]

Epetra_Vector & AMP::LinearAlgebra::EpetraVector::getEpetra_Vector ( )
inline

Obtain Epetra_Vector for use in Trilinos routines.

This function is used to get a Epetra vector. The following idiom should be used since it fails gracefully. In this function, a view may be created before the Vec is extracted

See also
view()
Returns
Epetra_Vector wrapper for this vector
double DoEpetraMax( Vector::shared_ptr &in )
{
// Create an Epetra_Vector, if necessary
auto view = EpetraVector::view( in );
// Extract the Epetra_Vector
Epetra_Vector &in_vec = view->getEpetra_Vector();
// Perform an Epetra_Vector operation
retrun in_vec.MaxValue ( &abs );
}
static std::shared_ptr< EpetraVector > view(Vector::shared_ptr vec)
Obtain a view of a vector with an Epetra_Vector wrapper.
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
Definition Vector.h:60

Definition at line 56 of file EpetraVector.h.

References d_epetra.

◆ getEpetra_Vector() [2/2]

const Epetra_Vector & AMP::LinearAlgebra::EpetraVector::getEpetra_Vector ( ) const
inline

Obtain Epetra_Vector for use in Trilinos routines.

See also
view()
Returns
Epetra_Vector wrapper for this vector

This function is used to get a Epetra vector. The following idiom should be used since it fails gracefully. In this function, a view may be created before the Epetra_Vector is extracted

double DoEpetraMax( Vector::shared_ptr &in )
{
// Create an Epetra_Vector, if necessary
auto view = EpetraVector::view( in );
// Extract the Epetra_Vector
Epetra_Vector &in_vec = view->getEpetra_Vector();
// Perform an Epetra_Vector operation
retrun in_vec.MaxValue ( &abs );
}

Definition at line 78 of file EpetraVector.h.

References d_epetra.

◆ getManagedVec() [1/2]

std::shared_ptr< Vector > AMP::LinearAlgebra::EpetraVector::getManagedVec ( )
inline

Definition at line 109 of file EpetraVector.h.

References d_AMP.

◆ getManagedVec() [2/2]

std::shared_ptr< const Vector > AMP::LinearAlgebra::EpetraVector::getManagedVec ( ) const
inline

Definition at line 110 of file EpetraVector.h.

References d_AMP.

◆ getNativeVec() [1/2]

Epetra_Vector & AMP::LinearAlgebra::EpetraVector::getNativeVec ( )
inline

Definition at line 107 of file EpetraVector.h.

References d_epetra.

◆ getNativeVec() [2/2]

const Epetra_Vector & AMP::LinearAlgebra::EpetraVector::getNativeVec ( ) const
inline

Definition at line 108 of file EpetraVector.h.

References d_epetra.

◆ view()

static std::shared_ptr< EpetraVector > AMP::LinearAlgebra::EpetraVector::view ( Vector::shared_ptr  vec)
static

Obtain a view of a vector with an Epetra_Vector wrapper.

Parameters
[in]vecThe vector to get an Epetra_Vector view of.
Returns
A Vector::shared_ptr guaranteed to have an Epetra_Vector wrapper available through the getEpetra_Vector() interface.
See also
getEpetra_Vector()

If the vector has an Epetra_Vector wrapper already created, it is returned. Otherwise, it will try to create an Epetra_Vector wrapper around the Vector. If it fails, an exception is thrown.

Member Data Documentation

◆ d_AMP

std::shared_ptr<Vector> AMP::LinearAlgebra::EpetraVector::d_AMP
private

Definition at line 118 of file EpetraVector.h.

Referenced by getManagedVec(), and getManagedVec().

◆ d_epetra

std::shared_ptr<Epetra_Vector> AMP::LinearAlgebra::EpetraVector::d_epetra
private

Definition at line 117 of file EpetraVector.h.

Referenced by getEpetra_Vector(), getEpetra_Vector(), getNativeVec(), and getNativeVec().


The documentation for this class was generated from the following file:



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:42.
Comments on this page