IBAMR  IBAMR version 0.19.
Static Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
IBTK::PETScSAMRAIVectorReal Class Reference

Class PETScSAMRAIVectorReal is a class for wrapping SAMRAI::solv::SAMRAIVectorReal objects so that they may be used with the PETSc solver package. More...

#include <ibtk/PETScSAMRAIVectorReal.h>

Static Public Member Functions

static Vec createPETScVector (SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > samrai_vec, MPI_Comm comm=PETSC_COMM_WORLD)
 
static void destroyPETScVector (Vec petsc_vec)
 
static void getSAMRAIVector (Vec petsc_vec, SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > *samrai_vec)
 
static void restoreSAMRAIVector (Vec petsc_vec, SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > *samrai_vec)
 
static void getSAMRAIVectorRead (Vec petsc_vec, SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > *samrai_vec)
 
static void restoreSAMRAIVectorRead (Vec petsc_vec, SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > *samrai_vec)
 
static void replaceSAMRAIVector (Vec petsc_vec, SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > samrai_vec)
 

Protected Member Functions

 PETScSAMRAIVectorReal (SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > samrai_vector, bool vector_created_via_duplicate, MPI_Comm comm)
 
 ~PETScSAMRAIVectorReal ()
 

Private Member Functions

 PETScSAMRAIVectorReal ()=delete
 Default constructor. More...
 
 PETScSAMRAIVectorReal (const PETScSAMRAIVectorReal &from)=delete
 Copy constructor. More...
 
PETScSAMRAIVectorRealoperator= (const PETScSAMRAIVectorReal &that)=delete
 Assignment operator. More...
 

Static Private Member Functions

static PetscErrorCode VecDuplicate_SAMRAI (Vec v, Vec *newv)
 
static PetscErrorCode VecDestroy_SAMRAI (Vec v)
 
static PetscErrorCode VecDuplicateVecs_SAMRAI (Vec v, PetscInt m, Vec *V[])
 
static PetscErrorCode VecDestroyVecs_SAMRAI (PetscInt m, Vec vv[])
 
static PetscErrorCode VecDot_SAMRAI (Vec x, Vec y, PetscScalar *val)
 
static PetscErrorCode VecMDot_SAMRAI (Vec x, PetscInt nv, const Vec *y, PetscScalar *val)
 
static PetscErrorCode VecNorm_SAMRAI (Vec x, NormType type, PetscScalar *val)
 
static PetscErrorCode VecTDot_SAMRAI (Vec x, Vec y, PetscScalar *val)
 
static PetscErrorCode VecMTDot_SAMRAI (Vec x, PetscInt nv, const Vec *y, PetscScalar *val)
 
static PetscErrorCode VecScale_SAMRAI (Vec x, PetscScalar alpha)
 
static PetscErrorCode VecCopy_SAMRAI (Vec x, Vec y)
 
static PetscErrorCode VecSet_SAMRAI (Vec x, PetscScalar alpha)
 
static PetscErrorCode VecSwap_SAMRAI (Vec x, Vec y)
 
static PetscErrorCode VecAXPY_SAMRAI (Vec y, PetscScalar alpha, Vec x)
 
static PetscErrorCode VecAXPBY_SAMRAI (Vec y, PetscScalar alpha, PetscScalar beta, Vec x)
 
static PetscErrorCode VecMAXPY_SAMRAI (Vec y, PetscInt nv, const PetscScalar *alpha, Vec *x)
 
static PetscErrorCode VecAYPX_SAMRAI (Vec y, const PetscScalar alpha, Vec x)
 
static PetscErrorCode VecWAXPY_SAMRAI (Vec w, PetscScalar alpha, Vec x, Vec y)
 
static PetscErrorCode VecAXPBYPCZ_SAMRAI (Vec z, PetscScalar alpha, PetscScalar beta, PetscScalar gamma, Vec x, Vec y)
 
static PetscErrorCode VecPointwiseMult_SAMRAI (Vec w, Vec x, Vec y)
 
static PetscErrorCode VecPointwiseDivide_SAMRAI (Vec w, Vec x, Vec y)
 
static PetscErrorCode VecGetSize_SAMRAI (Vec v, PetscInt *size)
 
static PetscErrorCode VecGetLocalSize_SAMRAI (Vec v, PetscInt *size)
 
static PetscErrorCode VecMax_SAMRAI (Vec x, PetscInt *p, PetscScalar *val)
 
static PetscErrorCode VecMin_SAMRAI (Vec x, PetscInt *p, PetscScalar *val)
 
static PetscErrorCode VecSetRandom_SAMRAI (Vec x, PetscRandom rctx)
 
static PetscErrorCode VecDot_local_SAMRAI (Vec x, Vec y, PetscScalar *val)
 
static PetscErrorCode VecTDot_local_SAMRAI (Vec x, Vec y, PetscScalar *val)
 
static PetscErrorCode VecNorm_local_SAMRAI (Vec x, NormType type, PetscScalar *val)
 
static PetscErrorCode VecMDot_local_SAMRAI (Vec x, PetscInt nv, const Vec *y, PetscScalar *val)
 
static PetscErrorCode VecMTDot_local_SAMRAI (Vec x, PetscInt nv, const Vec *y, PetscScalar *val)
 
static PetscErrorCode VecMaxPointwiseDivide_SAMRAI (Vec x, Vec y, PetscScalar *max)
 
static PetscErrorCode VecDotNorm2_SAMRAI (Vec s, Vec t, PetscScalar *dp, PetscScalar *nm)
 

Private Attributes

SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > d_samrai_vector
 
Vec d_petsc_vector
 
bool d_vector_created_via_duplicate
 
bool d_vector_checked_out_read_write = false
 
bool d_vector_checked_out_read = false
 

Detailed Description

Class PETScSAMRAIVectorReal wraps a real-valued SAMRAI vector (see SAMRAI::solv::SAMRAIVectorReal class) object so that it may be used with the PETSc solver package. A SAMRAI vector is defined as a collection of patch data components and associated operations living on some subset of levels in a structured AMR mesh hierarchy.

Observe that there are only three public member functions in this class. They are used to create and destroy PETSc vectors (i.e., Vec objects) and to obtain the SAMRAI vector associated with the PETSc vector. In particular, note that the constructor and destructor of this class are protected members. The construction and destruction of instances of this class may occur only through the static member functions that create and destroy PETSc vector objects.

Finally, we remark that PETSc allows vectors with complex-valued entries. This class and the class SAMRAI::solv::SAMRAIVectorReal assume real-values vectors, i.e., data of type double or float. The (currently unimplemented) class PETScSAMRAIVectorComplex must be used for complex data.

See also
SAMRAI::solv::SAMRAIVectorReal

Constructor & Destructor Documentation

◆ PETScSAMRAIVectorReal() [1/3]

IBTK::PETScSAMRAIVectorReal::PETScSAMRAIVectorReal ( SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > >  samrai_vector,
bool  vector_created_via_duplicate,
MPI_Comm  comm 
)
protected

◆ ~PETScSAMRAIVectorReal()

IBTK::PETScSAMRAIVectorReal::~PETScSAMRAIVectorReal ( )
protected

◆ PETScSAMRAIVectorReal() [2/3]

IBTK::PETScSAMRAIVectorReal::PETScSAMRAIVectorReal ( )
privatedelete
Note
This constructor is not implemented and should not be used.

◆ PETScSAMRAIVectorReal() [3/3]

IBTK::PETScSAMRAIVectorReal::PETScSAMRAIVectorReal ( const PETScSAMRAIVectorReal from)
privatedelete
Note
This constructor is not implemented and should not be used.
Parameters
fromThe value to copy to this object.

Member Function Documentation

◆ createPETScVector()

Vec IBTK::PETScSAMRAIVectorReal::createPETScVector ( SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > >  samrai_vec,
MPI_Comm  comm = PETSC_COMM_WORLD 
)
inlinestatic

Create and return a new PETSc vector object that wraps the SAMRAI vector object, so that the SAMRAI vector may be manipulated by PETSc routines. It is important to note that this function does not allocate storage for the vector data. Data must be allocated through the SAMRAI vector object directly.

Note
Each call to createPETScVector() should be matched with a corresponding call to destroyPETScVector().

◆ destroyPETScVector()

void IBTK::PETScSAMRAIVectorReal::destroyPETScVector ( Vec  petsc_vec)
inlinestatic

Destroy a given PETSc vector object. It is important to note that this function does not deallocate storage for the vector data. Vector data must be deallocated through the SAMRAI vector object.

Note
Each call to createPETScVector() should be matched with a corresponding call to destroyPETScVector().

◆ getSAMRAIVector()

void IBTK::PETScSAMRAIVectorReal::getSAMRAIVector ( Vec  petsc_vec,
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > *  samrai_vec 
)
inlinestatic

Get a pointer to the SAMRAI vector object associated with the given PETSc vector object.

Note
The SAMRAI vector must be restored by calling restoreSAMRAIVector().

◆ restoreSAMRAIVector()

void IBTK::PETScSAMRAIVectorReal::restoreSAMRAIVector ( Vec  petsc_vec,
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > *  samrai_vec 
)
inlinestatic

Restore the SAMRAI vector object associated with the given PETSc vector object.

◆ getSAMRAIVectorRead()

void IBTK::PETScSAMRAIVectorReal::getSAMRAIVectorRead ( Vec  petsc_vec,
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > *  samrai_vec 
)
inlinestatic

Get a pointer to the SAMRAI vector object associated with the given PETSc vector object. This vector must be treated as read only.

Note
The SAMRAI vector must be restored by calling restoreSAMRAIVectorRead().

◆ restoreSAMRAIVectorRead()

void IBTK::PETScSAMRAIVectorReal::restoreSAMRAIVectorRead ( Vec  petsc_vec,
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > > *  samrai_vec 
)
inlinestatic

Restore the SAMRAI vector object associated with the given PETSc vector object.

◆ replaceSAMRAIVector()

void IBTK::PETScSAMRAIVectorReal::replaceSAMRAIVector ( Vec  petsc_vec,
SAMRAI::tbox::Pointer< SAMRAI::solv::SAMRAIVectorReal< NDIM, PetscScalar > >  samrai_vec 
)
inlinestatic

Replace the SAMRAI vector object associated with the given PETSc vector object.

◆ operator=()

PETScSAMRAIVectorReal& IBTK::PETScSAMRAIVectorReal::operator= ( const PETScSAMRAIVectorReal that)
privatedelete
Note
This operator is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

◆ VecDuplicate_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecDuplicate_SAMRAI ( Vec  v,
Vec *  newv 
)
staticprivate

◆ VecDestroy_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecDestroy_SAMRAI ( Vec  v)
staticprivate

◆ VecDuplicateVecs_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecDuplicateVecs_SAMRAI ( Vec  v,
PetscInt  m,
Vec *  V[] 
)
staticprivate

◆ VecDestroyVecs_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecDestroyVecs_SAMRAI ( PetscInt  m,
Vec  vv[] 
)
staticprivate

◆ VecDot_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecDot_SAMRAI ( Vec  x,
Vec  y,
PetscScalar *  val 
)
staticprivate

◆ VecMDot_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecMDot_SAMRAI ( Vec  x,
PetscInt  nv,
const Vec *  y,
PetscScalar *  val 
)
staticprivate

◆ VecNorm_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecNorm_SAMRAI ( Vec  x,
NormType  type,
PetscScalar *  val 
)
staticprivate

◆ VecTDot_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecTDot_SAMRAI ( Vec  x,
Vec  y,
PetscScalar *  val 
)
staticprivate

◆ VecMTDot_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecMTDot_SAMRAI ( Vec  x,
PetscInt  nv,
const Vec *  y,
PetscScalar *  val 
)
staticprivate

◆ VecScale_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecScale_SAMRAI ( Vec  x,
PetscScalar  alpha 
)
staticprivate

◆ VecCopy_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecCopy_SAMRAI ( Vec  x,
Vec  y 
)
staticprivate

◆ VecSet_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecSet_SAMRAI ( Vec  x,
PetscScalar  alpha 
)
staticprivate

◆ VecSwap_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecSwap_SAMRAI ( Vec  x,
Vec  y 
)
staticprivate

◆ VecAXPY_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecAXPY_SAMRAI ( Vec  y,
PetscScalar  alpha,
Vec  x 
)
staticprivate

◆ VecAXPBY_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecAXPBY_SAMRAI ( Vec  y,
PetscScalar  alpha,
PetscScalar  beta,
Vec  x 
)
staticprivate

◆ VecMAXPY_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecMAXPY_SAMRAI ( Vec  y,
PetscInt  nv,
const PetscScalar *  alpha,
Vec *  x 
)
staticprivate

◆ VecAYPX_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecAYPX_SAMRAI ( Vec  y,
const PetscScalar  alpha,
Vec  x 
)
staticprivate

◆ VecWAXPY_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecWAXPY_SAMRAI ( Vec  w,
PetscScalar  alpha,
Vec  x,
Vec  y 
)
staticprivate

◆ VecAXPBYPCZ_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecAXPBYPCZ_SAMRAI ( Vec  z,
PetscScalar  alpha,
PetscScalar  beta,
PetscScalar  gamma,
Vec  x,
Vec  y 
)
staticprivate

◆ VecPointwiseMult_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecPointwiseMult_SAMRAI ( Vec  w,
Vec  x,
Vec  y 
)
staticprivate

◆ VecPointwiseDivide_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecPointwiseDivide_SAMRAI ( Vec  w,
Vec  x,
Vec  y 
)
staticprivate

◆ VecGetSize_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecGetSize_SAMRAI ( Vec  v,
PetscInt *  size 
)
staticprivate

◆ VecGetLocalSize_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecGetLocalSize_SAMRAI ( Vec  v,
PetscInt *  size 
)
staticprivate

◆ VecMax_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecMax_SAMRAI ( Vec  x,
PetscInt *  p,
PetscScalar *  val 
)
staticprivate

◆ VecMin_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecMin_SAMRAI ( Vec  x,
PetscInt *  p,
PetscScalar *  val 
)
staticprivate

◆ VecSetRandom_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecSetRandom_SAMRAI ( Vec  x,
PetscRandom  rctx 
)
staticprivate

◆ VecDot_local_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecDot_local_SAMRAI ( Vec  x,
Vec  y,
PetscScalar *  val 
)
staticprivate

◆ VecTDot_local_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecTDot_local_SAMRAI ( Vec  x,
Vec  y,
PetscScalar *  val 
)
staticprivate

◆ VecNorm_local_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecNorm_local_SAMRAI ( Vec  x,
NormType  type,
PetscScalar *  val 
)
staticprivate

◆ VecMDot_local_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecMDot_local_SAMRAI ( Vec  x,
PetscInt  nv,
const Vec *  y,
PetscScalar *  val 
)
staticprivate

◆ VecMTDot_local_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecMTDot_local_SAMRAI ( Vec  x,
PetscInt  nv,
const Vec *  y,
PetscScalar *  val 
)
staticprivate

◆ VecMaxPointwiseDivide_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecMaxPointwiseDivide_SAMRAI ( Vec  x,
Vec  y,
PetscScalar *  max 
)
staticprivate

◆ VecDotNorm2_SAMRAI()

static PetscErrorCode IBTK::PETScSAMRAIVectorReal::VecDotNorm2_SAMRAI ( Vec  s,
Vec  t,
PetscScalar *  dp,
PetscScalar *  nm 
)
staticprivate

Member Data Documentation

◆ d_samrai_vector

SAMRAI::tbox::Pointer<SAMRAI::solv::SAMRAIVectorReal<NDIM, PetscScalar> > IBTK::PETScSAMRAIVectorReal::d_samrai_vector
private

◆ d_petsc_vector

Vec IBTK::PETScSAMRAIVectorReal::d_petsc_vector
private

◆ d_vector_created_via_duplicate

bool IBTK::PETScSAMRAIVectorReal::d_vector_created_via_duplicate
private

◆ d_vector_checked_out_read_write

bool IBTK::PETScSAMRAIVectorReal::d_vector_checked_out_read_write = false
private

◆ d_vector_checked_out_read

bool IBTK::PETScSAMRAIVectorReal::d_vector_checked_out_read = false
private

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