Chaste  Release::2017.1
ReplicatableVector Class Reference

#include <ReplicatableVector.hpp>

+ Collaboration diagram for ReplicatableVector:

Public Member Functions

 ReplicatableVector ()
 
 ReplicatableVector (Vec vec)
 
 ReplicatableVector (unsigned size)
 
 ~ReplicatableVector ()
 
unsigned GetSize ()
 
void Resize (unsigned size)
 
doubleoperator[] (unsigned index)
 
void Replicate (unsigned lo, unsigned hi)
 
void ReplicatePetscVector (Vec vec)
 

Private Member Functions

void RemovePetscContext ()
 

Private Attributes

doublempData
 
unsigned mSize
 
VecScatter mToAll
 
Vec mReplicated
 

Detailed Description

Helper class for replicating a PETSc vector.

Definition at line 45 of file ReplicatableVector.hpp.

Constructor & Destructor Documentation

ReplicatableVector::ReplicatableVector ( )

Default constructor. Note that the vector will need to be resized before it can be used.

Definition at line 68 of file ReplicatableVector.cpp.

ReplicatableVector::ReplicatableVector ( Vec  vec)

Constructor taking in PETSc vector, which is immediately replicated into the internal data

Parameters
veca PETSc vector

Definition at line 76 of file ReplicatableVector.cpp.

References ReplicatePetscVector().

ReplicatableVector::ReplicatableVector ( unsigned  size)

Constructor to make a vector of given size.

Parameters
sizethe size of the vector

Definition at line 85 of file ReplicatableVector.cpp.

References Resize().

ReplicatableVector::~ReplicatableVector ( )

Default destructor. Remove PETSc context.

Definition at line 94 of file ReplicatableVector.cpp.

References RemovePetscContext().

Member Function Documentation

double & ReplicatableVector::operator[] ( unsigned  index)

Access the vector.

Parameters
indexthe index of the vector to return
Returns
reference to component of the vector

Definition at line 129 of file ReplicatableVector.cpp.

References mpData, and mSize.

void ReplicatableVector::RemovePetscContext ( )
private

Clear data. Used in resize method and destructor.

Definition at line 45 of file ReplicatableVector.cpp.

References PetscTools::Destroy(), mpData, mReplicated, mToAll, and PETSC_DESTROY_PARAM.

Referenced by Resize(), and ~ReplicatableVector().

void ReplicatableVector::Replicate ( unsigned  lo,
unsigned  hi 
)

Replicate this vector over all processes.

Each process knows its local part of the vector. This method shares that knowledge across all the processes.

Parameters
loThe start of our ownership range
hiOne past the end of our ownership range

Definition at line 137 of file ReplicatableVector.cpp.

References PetscTools::Destroy(), GetSize(), mpData, and ReplicatePetscVector().

Referenced by ExtendedBidomainTissue< SPACE_DIM >::ReplicateAdditionalCaches(), and AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::ReplicateCaches().

void ReplicatableVector::ReplicatePetscVector ( Vec  vec)

Replicate the given PETSc vector over all processes.

Each process knows its local part of the vector. This method shares that knowledge across all the processes, storing it in this object.

Our data vector will automatically be resized to fit the whole PETSc vector.

Parameters
vecThe PETSc vector to replicate.

Definition at line 160 of file ReplicatableVector.cpp.

References GetSize(), mpData, mReplicated, mToAll, and Resize().

Referenced by AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Calculate(), Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), ReplicatableVector(), Replicate(), AbstractFeAssemblerCommon< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::SetCurrentSolution(), and Hdf5ToMeshalyzerConverter< ELEMENT_DIM, SPACE_DIM >::Write().

Member Data Documentation

double* ReplicatableVector::mpData
private

The wrapped PeTSc vector.

Definition at line 49 of file ReplicatableVector.hpp.

Referenced by operator[](), RemovePetscContext(), Replicate(), ReplicatePetscVector(), and Resize().

Vec ReplicatableVector::mReplicated
private

Vector to hold concentrated copy of replicated vector.

Definition at line 52 of file ReplicatableVector.hpp.

Referenced by RemovePetscContext(), and ReplicatePetscVector().

unsigned ReplicatableVector::mSize
private

The length of the vector.

Definition at line 50 of file ReplicatableVector.hpp.

Referenced by GetSize(), operator[](), and Resize().

VecScatter ReplicatableVector::mToAll
private

Variable holding information for replicating a PETSc vector.

Definition at line 51 of file ReplicatableVector.hpp.

Referenced by RemovePetscContext(), and ReplicatePetscVector().


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