Chaste  Release::2018.1
DistributedBoxCollection< DIM > Class Template Reference

#include <DistributedBoxCollection.hpp>

+ Inheritance diagram for DistributedBoxCollection< DIM >:
+ Collaboration diagram for DistributedBoxCollection< DIM >:

Public Member Functions

 DistributedBoxCollection (double boxWidth, c_vector< double, 2 *DIM > domainSize, bool isPeriodicInX=false, int localRows=PETSC_DECIDE)
 
 ~DistributedBoxCollection ()
 
void EmptyBoxes ()
 
void UpdateHaloBoxes ()
 
unsigned GetNumLocalRows () const
 
bool IsBoxOwned (unsigned globalIndex)
 
bool IsInteriorBox (unsigned globalIndex)
 
bool IsHaloBox (unsigned globalIndex)
 
unsigned CalculateGlobalIndex (c_vector< unsigned, DIM > gridIndices)
 
unsigned CalculateContainingBox (Node< DIM > *pNode)
 
unsigned CalculateContainingBox (c_vector< double, DIM > &rLocation)
 
c_vector< unsigned, DIM > CalculateGridIndices (unsigned globalIndex)
 
Box< DIM > & rGetBox (unsigned boxIndex)
 
Box< DIM > & rGetHaloBox (unsigned boxIndex)
 
unsigned GetNumBoxes ()
 
unsigned GetNumLocalBoxes ()
 
c_vector< double, 2 *DIM > rGetDomainSize () const
 
bool GetAreLocalBoxesSet () const
 
double GetBoxWidth () const
 
bool GetIsPeriodicInX () const
 
unsigned GetNumRowsOfBoxes () const
 
int LoadBalance (std::vector< int > localDistribution)
 
void SetupLocalBoxesHalfOnly ()
 
void SetupAllLocalBoxes ()
 
std::set< unsigned > & rGetLocalBoxes (unsigned boxIndex)
 
bool IsOwned (Node< DIM > *pNode)
 
bool IsOwned (c_vector< double, DIM > &location)
 
unsigned GetProcessOwningNode (Node< DIM > *pNode)
 
std::vector< unsigned > & rGetHaloNodesRight ()
 
std::vector< unsigned > & rGetHaloNodesLeft ()
 
void SetCalculateNodeNeighbours (bool calculateNodeNeighbours)
 
void CalculateNodePairs (std::vector< Node< DIM > * > &rNodes, std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &rNodePairs)
 
void CalculateInteriorNodePairs (std::vector< Node< DIM > * > &rNodes, std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &rNodePairs)
 
void CalculateBoundaryNodePairs (std::vector< Node< DIM > * > &rNodes, std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &rNodePairs)
 
void AddPairsFromBox (unsigned boxIndex, std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &rNodePairs)
 
std::vector< int > CalculateNumberOfNodesInEachStrip ()
 

Private Member Functions

void SetupHaloBoxes ()
 
template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 

Private Attributes

std::vector< Box< DIM > > mBoxes
 
std::vector< Box< DIM > > mHaloBoxes
 
std::vector< unsignedmHalosRight
 
std::vector< unsignedmHalosLeft
 
std::vector< unsignedmHaloNodesRight
 
std::vector< unsignedmHaloNodesLeft
 
std::map< unsigned, unsignedmHaloBoxesMapping
 
c_vector< double, 2 *DIM > mDomainSize
 
double mBoxWidth
 
unsigned mNumBoxes
 
c_vector< unsigned, DIM > mNumBoxesEachDirection
 
unsigned mNumBoxesInAFace
 
std::vector< std::set< unsigned > > mLocalBoxes
 
unsigned mMinBoxIndex
 
unsigned mMaxBoxIndex
 
bool mIsPeriodicInX
 
bool mAreLocalBoxesSet
 
DistributedVectorFactorympDistributedBoxStackFactory
 
bool mCalculateNodeNeighbours
 

Static Private Attributes

static const double msFudge = 5e-14
 

Friends

class TestDistributedBoxCollection
 
class boost::serialization::access
 

Detailed Description

template<unsigned DIM>
class DistributedBoxCollection< DIM >

A collection of 'boxes' partitioning the domain with information on which nodes are located in which box.

Definition at line 54 of file DistributedBoxCollection.hpp.

Constructor & Destructor Documentation

template<unsigned DIM>
DistributedBoxCollection< DIM >::DistributedBoxCollection ( double  boxWidth,
c_vector< double, 2 *DIM >  domainSize,
bool  isPeriodicInX = false,
int  localRows = PETSC_DECIDE 
)
Parameters
boxWidththe width of each box (cut-off length in NodeBasedCellPopulation simulations)
domainSizethe size of the domain, in the form (xmin, xmax, ymin, ymax) (etc)
isPeriodicInXwhether the domain is periodic in the x direction
localRowsthe number of local rows in a parallel DistributedBoxCollection.

Note that the domain size may be increased because each process should have at least one slice of boxes in the largest dimension. For example, if the box size is 1 and the domain is [(0,0,0), (3,3,3)] then, if there are more than 3 processes the domain will be swollen to [(0,0,0), (3,3,num_procs)]. The user is warned when this happens.

Definition at line 45 of file DistributedBoxCollection.cpp.

References DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), DistributedBoxCollection< DIM >::GetNumLocalRows(), PetscTools::GetNumProcs(), DistributedBoxCollection< DIM >::mBoxes, DistributedBoxCollection< DIM >::mBoxWidth, DistributedBoxCollection< DIM >::mDomainSize, DistributedBoxCollection< DIM >::mMaxBoxIndex, DistributedBoxCollection< DIM >::mMinBoxIndex, DistributedBoxCollection< DIM >::mNumBoxes, DistributedBoxCollection< DIM >::mNumBoxesEachDirection, DistributedBoxCollection< DIM >::mNumBoxesInAFace, DistributedBoxCollection< DIM >::mpDistributedBoxStackFactory, DistributedBoxCollection< DIM >::msFudge, and DistributedBoxCollection< DIM >::SetupHaloBoxes().

template<unsigned DIM>
DistributedBoxCollection< DIM >::~DistributedBoxCollection ( )

Destructor - frees memory allocated to distributed vector.

Definition at line 113 of file DistributedBoxCollection.cpp.

Member Function Documentation

template<unsigned DIM>
void DistributedBoxCollection< DIM >::AddPairsFromBox ( unsigned  boxIndex,
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &  rNodePairs 
)

A method pulled out of CalculateNodePairs methods that adds all pairs of nodes from neighbouring boxes of the box with index boxIndex.

Parameters
boxIndexthe box to add neighbours to.
rNodePairsthe return value, a set of pairs of nodes

Definition at line 1251 of file DistributedBoxCollection.cpp.

References Box< DIM >::rGetNodesContained().

template<unsigned DIM>
void DistributedBoxCollection< DIM >::CalculateBoundaryNodePairs ( std::vector< Node< DIM > * > &  rNodes,
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &  rNodePairs 
)

The same as CalculateNodePairs() only we only work on boxes that are ''not'' interior on this process. I.e. some of their local boxes are halo boxes.

Parameters
rNodesall the nodes to be consider
rNodePairsthe return value, a set of pairs of nodes

Definition at line 1223 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::CalculateContainingBox ( Node< DIM > *  pNode)
Parameters
pNodeaddress of the node
Returns
the global index of the box that contains pNode.

Definition at line 259 of file DistributedBoxCollection.cpp.

References Node< SPACE_DIM >::rGetLocation().

Referenced by FineCoarseMeshPair< DIM >::SetUpBoxes().

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::CalculateContainingBox ( c_vector< double, DIM > &  rLocation)
Parameters
rLocationThe point
Returns
the global index of the box that contains the rLocation.

Definition at line 267 of file DistributedBoxCollection.cpp.

References EXCEPTION.

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::CalculateGlobalIndex ( c_vector< unsigned, DIM >  gridIndices)

Given the (i,j,k) grid indices of a box in the collection, calculate its global index.

Parameters
gridIndicesthe (i,j,k) grid indices of the box
Returns
the global index of the box in the collection.
Todo:
#2308 etc. We need to make allowance for periodicity here...

Definition at line 225 of file DistributedBoxCollection.cpp.

References NEVER_REACHED.

template<unsigned DIM>
c_vector< unsigned, DIM > DistributedBoxCollection< DIM >::CalculateGridIndices ( unsigned  globalIndex)

Calculate x,y,z indices of box given its 'global' index.

Parameters
globalIndexthe global index of the box
Returns
the grid indices (boxes across, boxes up, boxes deep) of a box

Definition at line 309 of file DistributedBoxCollection.cpp.

References NEVER_REACHED.

template<unsigned DIM>
void DistributedBoxCollection< DIM >::CalculateInteriorNodePairs ( std::vector< Node< DIM > * > &  rNodes,
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &  rNodePairs 
)

The same as CalculateNodePairs() only we only work on boxes that are interior on this process. I.e. none of their local boxes are halo boxes.

Parameters
rNodesall the nodes to be consider
rNodePairsthe return value, a set of pairs of nodes

Definition at line 1179 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
void DistributedBoxCollection< DIM >::CalculateNodePairs ( std::vector< Node< DIM > * > &  rNodes,
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &  rNodePairs 
)

Compute all the pairs of (potentially) connected nodes for cell_based simulations, ie nodes which are in a local box to the box containing the first node. **Note: the user still has to check that the node pairs are less than the cut-off distance apart.** The pairs are checked so that index1 < index2, so each connected pair of nodes is only in the set once.

Parameters
rNodesall the nodes to be consider
rNodePairsthe return value, a set of pairs of nodes

Definition at line 1140 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
std::vector< int > DistributedBoxCollection< DIM >::CalculateNumberOfNodesInEachStrip ( )

Calculate how many cells lie in each strip / face of boxes, used in load balancing

Returns
A vector containing the number of nodes in each of the strips of boxes.

Definition at line 1316 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
void DistributedBoxCollection< DIM >::EmptyBoxes ( )

Remove the list of nodes stored in each box.

Definition at line 119 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::GetAreLocalBoxesSet ( ) const
Returns
Whether or not the local boxes have been set up.

Definition at line 387 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
double DistributedBoxCollection< DIM >::GetBoxWidth ( ) const
Returns
mBoxWidth

Definition at line 393 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::GetIsPeriodicInX ( ) const
Returns
Whether the domain is periodic in x

Definition at line 399 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::GetNumBoxes ( )
Returns
the total (global) number of boxes.

Definition at line 369 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::GetNumLocalBoxes ( )
Returns
the number of locally owned boxes. Not including halos.

Definition at line 375 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::GetNumLocalRows ( ) const
Returns
the number of local rows / faces (2d, 3d) of boxes owned.

Definition at line 196 of file DistributedBoxCollection.cpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::GetNumRowsOfBoxes ( ) const
Returns
the number of rows in the DIM-1th direction on this process.

Definition at line 405 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::GetProcessOwningNode ( Node< DIM > *  pNode)

Get the process that should own this node. Currently only returns +/-1 of this process so assumes nodes don't move too far. //\ todo this should be fixed.

Parameters
pNodethe node to be tested
Returns
the ID of the process that should own the node.

Definition at line 1104 of file DistributedBoxCollection.cpp.

References PetscTools::GetMyRank().

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::IsBoxOwned ( unsigned  globalIndex)
Parameters
globalIndexthe global index of the box.
Returns
whether the box with global index globalIndex is owned by this process.

Definition at line 202 of file DistributedBoxCollection.cpp.

Referenced by FineCoarseMeshPair< DIM >::SetUpBoxes().

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::IsHaloBox ( unsigned  globalIndex)
Parameters
globalIndexthe global index of the box.
Returns
whether the box with global index globalIndex is a halo to this process.

Definition at line 208 of file DistributedBoxCollection.cpp.

References PetscTools::IsParallel().

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::IsInteriorBox ( unsigned  globalIndex)

Get whether the box with global index globalIndex is interior on this process. A box is interior if it doesn't share any boundary (even of zero length) with a halo box.

Parameters
globalIndexthe global index of the box to check.
Returns
whether the box is interior or not.

Definition at line 217 of file DistributedBoxCollection.cpp.

References PetscTools::IsSequential().

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::IsOwned ( Node< DIM > *  pNode)
Parameters
pNodethe node to test.
Returns
whether the point at pNode->rGetLocation() is owned on this process.

Definition at line 1088 of file DistributedBoxCollection.cpp.

Referenced by FineCoarseMeshPair< DIM >::SetUpBoxes().

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::IsOwned ( c_vector< double, DIM > &  location)
Parameters
locationthe location to test.
Returns
whether the point at location is owned on this process.

Definition at line 1096 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
int DistributedBoxCollection< DIM >::LoadBalance ( std::vector< int >  localDistribution)

A helper function to work out the optimal number of rows to be owned by this process, to balance the number of nodes.

Parameters
localDistributiona vector containing the number of nodes in each row/face of boxes in 2d/3d
Returns
the updated number of rows, which will differ from current number by at most 2.

Shift information on distribution of nodes to the right, so processes can manage their left/bottom/back boundary (1d/2d/3d)

Calculate change in balance of loads by shifting the left/bottom boundary in either direction

Definition at line 411 of file DistributedBoxCollection.cpp.

References PetscTools::AmMaster(), PetscTools::AmTopMost(), and PetscTools::GetMyRank().

template<unsigned DIM>
Box< DIM > & DistributedBoxCollection< DIM >::rGetBox ( unsigned  boxIndex)

If this box is out-of-bounds to the local process then it will attempt to return a halo box (and trip an assertion is the box is completely out of scope.

Parameters
boxIndexthe index of the box to return
Returns
a reference to the box with global index boxIndex.

Definition at line 346 of file DistributedBoxCollection.cpp.

Referenced by FineCoarseMeshPair< DIM >::CollectElementsInContainingBox(), FineCoarseMeshPair< DIM >::CollectElementsInLocalBoxes(), and FineCoarseMeshPair< DIM >::SetUpBoxes().

template<unsigned DIM>
c_vector< double, 2 *DIM > DistributedBoxCollection< DIM >::rGetDomainSize ( ) const
Returns
mDomainSize

Definition at line 381 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
Box< DIM > & DistributedBoxCollection< DIM >::rGetHaloBox ( unsigned  boxIndex)

Get a halo box.

Parameters
boxIndexthe index of the box to return
Returns
a reference to the halo box with global index boxIndex.

Definition at line 359 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
std::vector< unsigned > & DistributedBoxCollection< DIM >::rGetHaloNodesLeft ( )
Returns
mHaloNodesRight the list of nodes that are close to the left boundary

Definition at line 1128 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
std::vector< unsigned > & DistributedBoxCollection< DIM >::rGetHaloNodesRight ( )
Returns
mHaloNodesRight the list of nodes that are close to the right boundary

Definition at line 1122 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
std::set< unsigned > & DistributedBoxCollection< DIM >::rGetLocalBoxes ( unsigned  boxIndex)

Get the set of all the local boxes, i.e. itself and its nearest-neighbours.

Parameters
boxIndexthe index of the box
Returns
the set containing the indices of boxes local to box boxIndex. i.e. the box boxIndex itself and its nearest-neighbours.

Definition at line 1080 of file DistributedBoxCollection.cpp.

Referenced by FineCoarseMeshPair< DIM >::CollectElementsInLocalBoxes().

template<unsigned DIM>
template<class Archive >
void DistributedBoxCollection< DIM >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Serialize the box collection. It is possible to save and load on a different # of processes.

Parameters
archivethe archive.
versionthe version number.

Definition at line 137 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
void DistributedBoxCollection< DIM >::SetCalculateNodeNeighbours ( bool  calculateNodeNeighbours)

Set whether to record node neighbour in the map rNodeNeighbours during CalculateNodePairs. Set to false for efficiency if not needed.

Parameters
calculateNodeNeighbourswhether to store the neighbours.

Definition at line 1134 of file DistributedBoxCollection.cpp.

template<unsigned DIM>
void DistributedBoxCollection< DIM >::SetupAllLocalBoxes ( )

Set up the local boxes (ie itself and its nearest-neighbours) for each of the boxes.

Definition at line 759 of file DistributedBoxCollection.cpp.

References NEVER_REACHED.

Referenced by FineCoarseMeshPair< DIM >::SetUpBoxes().

template<unsigned DIM>
void DistributedBoxCollection< DIM >::SetupHaloBoxes ( )
private

Setup the halo box structure on this process. (Private method since this is called as a helper method by the constructor.)

Sets up the containers mHaloBoxes, mHalosRight, mHalosLeft

Definition at line 132 of file DistributedBoxCollection.cpp.

References PetscTools::AmMaster(), and PetscTools::AmTopMost().

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
void DistributedBoxCollection< DIM >::SetupLocalBoxesHalfOnly ( )

Set up the local boxes (ie itself and its nearest-neighbours) for each of the boxes. This method just sets up half of the local boxes (for example, in 1D, local boxes for box0 = {1} local boxes for box1 = {2} not {0,2}, and so on. Similar to 2d, 3d.

Definition at line 499 of file DistributedBoxCollection.cpp.

References EXCEPTION, and NEVER_REACHED.

Referenced by NodesOnlyMesh< SPACE_DIM >::SetUpBoxCollection().

template<unsigned DIM>
void DistributedBoxCollection< DIM >::UpdateHaloBoxes ( )

Update the halo boxes on this process, by transferring the nodes to be sent into the lists mHaloNodesRight / Left.

Definition at line 169 of file DistributedBoxCollection.cpp.

Friends And Related Function Documentation

template<unsigned DIM>
friend class boost::serialization::access
friend

Needed for serialization

Definition at line 128 of file DistributedBoxCollection.hpp.

Member Data Documentation

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::mAreLocalBoxesSet
private

Whether the local boxes have been setup or not.

Definition at line 108 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
std::vector< Box<DIM> > DistributedBoxCollection< DIM >::mBoxes
private

A vector of boxes to store rough node/element positions.

Definition at line 60 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
double DistributedBoxCollection< DIM >::mBoxWidth
private

The width of each box.

Definition at line 84 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::mCalculateNodeNeighbours
private

A flag that can be set to not save rNodeNeighbours in CalculateNodePairs - for efficiency

Definition at line 117 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
c_vector<double, 2*DIM> DistributedBoxCollection< DIM >::mDomainSize
private

The domain being partitioned.

Definition at line 81 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
std::vector< Box<DIM> > DistributedBoxCollection< DIM >::mHaloBoxes
private

A vector of boxes owned on other processes sharing a boundary with this process

Definition at line 63 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
std::map<unsigned, unsigned> DistributedBoxCollection< DIM >::mHaloBoxesMapping
private

Map of global to local indices of halo boxes in mHaloBoxes.

Definition at line 78 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
std::vector<unsigned> DistributedBoxCollection< DIM >::mHaloNodesLeft
private

Set of Nodes that are halos of adjacent left process, but lie locally

Definition at line 75 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
std::vector<unsigned> DistributedBoxCollection< DIM >::mHaloNodesRight
private

Set of Nodes that are halos of adjacent right process, but lie locally

Definition at line 72 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
std::vector<unsigned> DistributedBoxCollection< DIM >::mHalosLeft
private

A vector of the global indices of boxes, owned by this process, but on a boundary with left process.

Definition at line 69 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
std::vector<unsigned> DistributedBoxCollection< DIM >::mHalosRight
private

A vector of the global indices of boxes, owned by this process, but on a boundary with right process.

Definition at line 66 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::mIsPeriodicInX
private

Whether the domain is periodic in the X dimension Note this currently only works for DIM=2.

Definition at line 105 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
std::vector< std::set<unsigned> > DistributedBoxCollection< DIM >::mLocalBoxes
private

The boxes local (itself and nearest neighbour) to a given box.

Definition at line 96 of file DistributedBoxCollection.hpp.

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::mMaxBoxIndex
private

The largest index of the boxes owned by this process.

Definition at line 102 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::mMinBoxIndex
private

The smallest index of the boxes owned by this process.

Definition at line 99 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::mNumBoxes
private

The total number of boxes across all processes

Definition at line 87 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
c_vector<unsigned, DIM> DistributedBoxCollection< DIM >::mNumBoxesEachDirection
private

Number of boxes in each direction.

Definition at line 90 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::mNumBoxesInAFace
private

Number of boxes in a face (1 in 1d, mNumBoxesEachDirection(0) in 2d, mNumBoxesEachDirection(0)*mNumBoxesEachDirection(1) in 3d

Definition at line 93 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
DistributedVectorFactory* DistributedBoxCollection< DIM >::mpDistributedBoxStackFactory
private

A distributed vector factory that governs ownership of rows of boxes

Definition at line 114 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().

template<unsigned DIM>
const double DistributedBoxCollection< DIM >::msFudge = 5e-14
staticprivate

A fudge (box swelling) factor to deal with 32-bit floating point issues.

Definition at line 111 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection().


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