Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes
TSFExtended::EpetraMultiVector Class Reference

TSF extension of Thyra::EpetraMultiVector, implementing the LoadableMultiVector interface allowing an application to access elements. More...

Inheritance diagram for TSFExtended::EpetraMultiVector:
Sundance::Handleable< MultiVectorBase< double > > TSFExtended::IndexableVector< double > TSFExtended::RawDataAccessibleVector< double > Sundance::Printable TSFExtended::LoadableVector< double > TSFExtended::AccessibleVector< double >

List of all members.

Public Member Functions

const RCP< Epetra_Vector > & epetraVec () const
RCP< Epetra_Vector > & epetraVec ()
Handleable interface
 EpetraMultiVector (const RCP< const VectorSpaceBase< double > > &vs)
 Construct with a smart pointer to an Epetra vector space.
 EpetraMultiVector (const RCP< const VectorSpaceBase< double > > &vs, const RCP< Epetra_MultiVector > &vec)
 Construct with smart pointers to an Epetra vector space and an existing Epetra vector.
IndexableVector interface
virtual const double & operator[] (OrdType globalIndex) const
 read the element at the given global index
virtual double & operator[] (OrdType globalIndex)
 writable access to the element at the given global index
Raw data access interface
virtual const double * dataPtr () const
virtual double * dataPtr ()
LoadableVector interface
void setElement (OrdType globalIndex, const double &value)
 set a single element
void addToElement (OrdType globalIndex, const double &value)
 add to a single element
void setElements (int numElems, const OrdType *globalIndices, const double *values)
 set a group of elements
void addToElements (int numElems, const OrdType *globalIndices, const double *values)
 add to a group of elements
void finalizeAssembly ()
 Do whatever finalization steps are needed by the implementation, for instance, synchronizing border elements.
AccessibleVector interface
const double & getElement (OrdType globalIndex) const
 get the element at the given global index
void getElements (const OrdType *globalIndices, int numElems, vector< double > &elems) const
Printable interface
void print (std::ostream &os) const
 Write to a stream.

Static Public Member Functions

static const Epetra_Vector & getConcrete (const TSFExtended::Vector< double > &tsfVec)
 Get a read-only Epetra_Vector.
static Epetra_Vector & getConcrete (TSFExtended::Vector< double > &tsfVec)
 Get a read-write Epetra_Vector.
static Epetra_Vector * getConcretePtr (TSFExtended::Vector< double > &tsfVec)
 Get a read-write Epetra_Vector pointer.

Protected Member Functions

const RCP< const Epetra_Map > & epetraMap () const

Private Attributes

RCP< Epetra_Vector > epetraVec_
RCP< const MPIVectorSpaceBase
< double > > 
mpiVecSpace_
RCP< const Epetra_Map > epetraMap_

Detailed Description

TSF extension of Thyra::EpetraMultiVector, implementing the LoadableMultiVector interface allowing an application to access elements.

This class derives from Thyra::EpetraVector, so it can be used seamlessly in any Thyra-based code.

Definition at line 56 of file TSFEpetraMultiVector.hpp.


Constructor & Destructor Documentation

TSFExtended::EpetraMultiVector::EpetraMultiVector ( const RCP< const VectorSpaceBase< double > > &  vs)

Construct with a smart pointer to an Epetra vector space.

TSFExtended::EpetraMultiVector::EpetraMultiVector ( const RCP< const VectorSpaceBase< double > > &  vs,
const RCP< Epetra_MultiVector > &  vec 
)

Construct with smart pointers to an Epetra vector space and an existing Epetra vector.


Member Function Documentation

void TSFExtended::EpetraMultiVector::addToElement ( OrdType  globalIndex,
const double &  value 
) [virtual]

add to a single element

Reimplemented from TSFExtended::IndexableVector< double >.

void TSFExtended::EpetraMultiVector::addToElements ( int  numElems,
const OrdType globalIndices,
const double *  values 
)

add to a group of elements

virtual double* TSFExtended::EpetraMultiVector::dataPtr ( ) [inline, virtual]
virtual const double* TSFExtended::EpetraMultiVector::dataPtr ( ) const [inline, virtual]
const RCP<const Epetra_Map>& TSFExtended::EpetraMultiVector::epetraMap ( ) const [inline, protected]

Definition at line 150 of file TSFEpetraMultiVector.hpp.

RCP<Epetra_Vector>& TSFExtended::EpetraMultiVector::epetraVec ( ) [inline]

Definition at line 146 of file TSFEpetraMultiVector.hpp.

const RCP<Epetra_Vector>& TSFExtended::EpetraMultiVector::epetraVec ( ) const [inline]

Definition at line 143 of file TSFEpetraMultiVector.hpp.

void TSFExtended::EpetraMultiVector::finalizeAssembly ( ) [virtual]

Do whatever finalization steps are needed by the implementation, for instance, synchronizing border elements.

The default implementation is a no-op.

Reimplemented from TSFExtended::LoadableVector< double >.

static const Epetra_Vector& TSFExtended::EpetraMultiVector::getConcrete ( const TSFExtended::Vector< double > &  tsfVec) [static]

Get a read-only Epetra_Vector.

static Epetra_Vector& TSFExtended::EpetraMultiVector::getConcrete ( TSFExtended::Vector< double > &  tsfVec) [static]

Get a read-write Epetra_Vector.

static Epetra_Vector* TSFExtended::EpetraMultiVector::getConcretePtr ( TSFExtended::Vector< double > &  tsfVec) [static]

Get a read-write Epetra_Vector pointer.

const double& TSFExtended::EpetraMultiVector::getElement ( OrdType  globalIndex) const [virtual]

get the element at the given global index

Reimplemented from TSFExtended::IndexableVector< double >.

void TSFExtended::EpetraMultiVector::getElements ( const OrdType globalIndices,
int  numElems,
vector< double > &  elems 
) const
virtual const double& TSFExtended::EpetraMultiVector::operator[] ( OrdType  globalIndex) const [inline, virtual]

read the element at the given global index

Implements TSFExtended::IndexableVector< double >.

Definition at line 76 of file TSFEpetraMultiVector.hpp.

virtual double& TSFExtended::EpetraMultiVector::operator[] ( OrdType  globalIndex) [virtual]

writable access to the element at the given global index

Implements TSFExtended::IndexableVector< double >.

void TSFExtended::EpetraMultiVector::print ( std::ostream &  os) const [inline, virtual]

Write to a stream.

Implements Sundance::Printable.

Definition at line 126 of file TSFEpetraMultiVector.hpp.

void TSFExtended::EpetraMultiVector::setElement ( OrdType  globalIndex,
const double &  value 
) [virtual]

set a single element

Reimplemented from TSFExtended::IndexableVector< double >.

void TSFExtended::EpetraMultiVector::setElements ( int  numElems,
const OrdType globalIndices,
const double *  values 
)

set a group of elements


Member Data Documentation

RCP<const Epetra_Map> TSFExtended::EpetraMultiVector::epetraMap_ [private]

Definition at line 158 of file TSFEpetraMultiVector.hpp.

RCP<Epetra_Vector> TSFExtended::EpetraMultiVector::epetraVec_ [private]

Definition at line 154 of file TSFEpetraMultiVector.hpp.

RCP<const MPIVectorSpaceBase<double> > TSFExtended::EpetraMultiVector::mpiVecSpace_ [private]

Definition at line 156 of file TSFEpetraMultiVector.hpp.

Site Contact