DistributedBoxCollection< DIM > Class Template Reference

#include <DistributedBoxCollection.hpp>

Collaboration diagram for DistributedBoxCollection< DIM >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 DistributedBoxCollection (double boxWidth, c_vector< double, 2 *DIM > domainSize, bool isPeriodicInX=false, int localRows=PETSC_DECIDE)
 ~DistributedBoxCollection ()
void EmptyBoxes ()
void SetupHaloBoxes ()
void UpdateHaloBoxes ()
unsigned GetNumLocalRows () const
bool GetBoxOwnership (unsigned globalIndex)
bool IsInteriorBox (unsigned globalIndex)
bool GetHaloBoxOwnership (unsigned globalIndex)
unsigned CalculateGlobalIndex (c_vector< unsigned, DIM > coordinateIndices)
unsigned CalculateContainingBox (Node< DIM > *pNode)
unsigned CalculateContainingBox (c_vector< double, DIM > &rLocation)
c_vector< unsigned, DIM > CalculateCoordinateIndices (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
unsigned GetNumRowsOfBoxes () const
int LoadBalance (std::vector< int > localDistribution)
void SetupLocalBoxesHalfOnly ()
void SetupAllLocalBoxes ()
std::set< unsignedGetLocalBoxes (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, std::map< unsigned, std::set< unsigned > > &rNodeNeighbours)
void CalculateInteriorNodePairs (std::vector< Node< DIM > * > &rNodes, std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &rNodePairs, std::map< unsigned, std::set< unsigned > > &rNodeNeighbours)
void CalculateBoundaryNodePairs (std::vector< Node< DIM > * > &rNodes, std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &rNodePairs, std::map< unsigned, std::set< unsigned > > &rNodeNeighbours)
void AddPairsFromBox (unsigned boxIndex, std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &rNodePairs, std::map< unsigned, std::set< unsigned > > &rNodeNeighbours)
std::vector< int > CalculateNumberOfNodesInEachStrip ()

Private Member Functions

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, unsignedmBoxesMapping
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 
) [inline]
Parameters:
boxWidth the width of each box (cut-off length in NodeBasedCellPopulation simulations)
domainSize the size of the domain, in the form (xmin, xmax, ymin, ymax) (etc)
isPeriodicInX whether the domain is periodic in the x direction
localRows the 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(), PetscTools::GetNumProcs(), PetscTools::IsSequential(), DistributedBoxCollection< DIM >::mBoxes, DistributedBoxCollection< DIM >::mBoxesMapping, DistributedBoxCollection< DIM >::mBoxWidth, DistributedBoxCollection< DIM >::mDomainSize, DistributedBoxCollection< DIM >::mMaxBoxIndex, DistributedBoxCollection< DIM >::mMinBoxIndex, DistributedBoxCollection< DIM >::mNumBoxes, DistributedBoxCollection< DIM >::mNumBoxesEachDirection, DistributedBoxCollection< DIM >::mNumBoxesInAFace, DistributedBoxCollection< DIM >::mpDistributedBoxStackFactory, and DistributedBoxCollection< DIM >::msFudge.

template<unsigned DIM>
DistributedBoxCollection< DIM >::~DistributedBoxCollection (  )  [inline]

Destructor - frees memory allocated to distributed vector.

Definition at line 124 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mpDistributedBoxStackFactory.


Member Function Documentation

template<unsigned DIM>
void DistributedBoxCollection< DIM >::AddPairsFromBox ( unsigned  boxIndex,
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &  rNodePairs,
std::map< unsigned, std::set< unsigned > > &  rNodeNeighbours 
) [inline]
template<unsigned DIM>
void DistributedBoxCollection< DIM >::CalculateBoundaryNodePairs ( std::vector< Node< DIM > * > &  rNodes,
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &  rNodePairs,
std::map< unsigned, std::set< unsigned > > &  rNodeNeighbours 
) [inline]

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:
rNodes all the nodes to be consider
rNodePairs the return value, a set of pairs of nodes
rNodeNeighbours the other return value, the neighbours of each node.

Definition at line 1193 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::AddPairsFromBox(), DistributedBoxCollection< DIM >::IsInteriorBox(), and DistributedBoxCollection< DIM >::mBoxesMapping.

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

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::CalculateContainingBox ( c_vector< double, DIM > &  rLocation  )  [inline]
template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::CalculateContainingBox ( Node< DIM > *  pNode  )  [inline]
template<unsigned DIM>
c_vector< unsigned, DIM > DistributedBoxCollection< DIM >::CalculateCoordinateIndices ( unsigned  globalIndex  )  [inline]

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

Parameters:
globalIndex the global index of the box
Returns:
the co-ordinate indicies (boxes across, boxes up, boxes deep) of a box

Definition at line 306 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mNumBoxesEachDirection, and NEVER_REACHED.

Referenced by DistributedBoxCollection< DIM >::CalculateNumberOfNodesInEachStrip(), and DistributedBoxCollection< DIM >::SetupLocalBoxesHalfOnly().

template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::CalculateGlobalIndex ( c_vector< unsigned, DIM >  coordinateIndices  )  [inline]

Given the (i,j,k) co-ordniates of a box in the collection, calculate its global index.

Parameters:
coordinateIndices the co-ordinate indices of the box (across, up, deep)
Returns:
the global index of the box in the collection.

Definition at line 238 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mNumBoxesEachDirection.

template<unsigned DIM>
void DistributedBoxCollection< DIM >::CalculateInteriorNodePairs ( std::vector< Node< DIM > * > &  rNodes,
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &  rNodePairs,
std::map< unsigned, std::set< unsigned > > &  rNodeNeighbours 
) [inline]

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:
rNodes all the nodes to be consider
rNodePairs the return value, a set of pairs of nodes
rNodeNeighbours the other return value, the neighbours of each node.

Definition at line 1159 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::AddPairsFromBox(), DistributedBoxCollection< DIM >::CalculateContainingBox(), DistributedBoxCollection< DIM >::GetBoxOwnership(), DistributedBoxCollection< DIM >::IsInteriorBox(), and DistributedBoxCollection< DIM >::mBoxesMapping.

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

template<unsigned DIM>
void DistributedBoxCollection< DIM >::CalculateNodePairs ( std::vector< Node< DIM > * > &  rNodes,
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > &  rNodePairs,
std::map< unsigned, std::set< unsigned > > &  rNodeNeighbours 
) [inline]

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:
rNodes all the nodes to be consider
rNodePairs the return value, a set of pairs of nodes
rNodeNeighbours the other return value, the neighbours of each node.

Definition at line 1128 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::AddPairsFromBox(), DistributedBoxCollection< DIM >::CalculateContainingBox(), DistributedBoxCollection< DIM >::GetBoxOwnership(), and DistributedBoxCollection< DIM >::mBoxesMapping.

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

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 1286 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::CalculateCoordinateIndices(), DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), DistributedBoxCollection< DIM >::mBoxes, DistributedBoxCollection< DIM >::mBoxesMapping, and DistributedBoxCollection< DIM >::mpDistributedBoxStackFactory.

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

template<unsigned DIM>
void DistributedBoxCollection< DIM >::EmptyBoxes (  )  [inline]

Remove the list of nodes stored in each box.

Definition at line 130 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mBoxes, and DistributedBoxCollection< DIM >::mHaloBoxes.

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

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

Definition at line 379 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mAreLocalBoxesSet.

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::GetBoxOwnership ( unsigned  globalIndex  )  [inline]
template<unsigned DIM>
double DistributedBoxCollection< DIM >::GetBoxWidth (  )  const [inline]
template<unsigned DIM>
bool DistributedBoxCollection< DIM >::GetHaloBoxOwnership ( unsigned  globalIndex  )  [inline]
Parameters:
globalIndex the global index of the box.
Returns:
whether the box with global index globalIndex is a halo to this process.

Definition at line 221 of file DistributedBoxCollection.cpp.

References PetscTools::IsParallel(), DistributedBoxCollection< DIM >::mMaxBoxIndex, DistributedBoxCollection< DIM >::mMinBoxIndex, and DistributedBoxCollection< DIM >::mNumBoxesInAFace.

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

template<unsigned DIM>
std::set< unsigned > DistributedBoxCollection< DIM >::GetLocalBoxes ( unsigned  boxIndex  )  [inline]

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

Parameters:
boxIndex the index of the box
Returns:
the set containing the indices of boxes local to box boxIndex.

Definition at line 1068 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mLocalBoxes, DistributedBoxCollection< DIM >::mMaxBoxIndex, and DistributedBoxCollection< DIM >::mMinBoxIndex.

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

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

Definition at line 361 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mNumBoxes.

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

Definition at line 367 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mBoxes.

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

Definition at line 391 of file DistributedBoxCollection.cpp.

References DistributedVectorFactory::GetHigh(), DistributedVectorFactory::GetLow(), and DistributedBoxCollection< DIM >::mpDistributedBoxStackFactory.

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

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:
pNode the node to be tested
Returns:
the ID of the process that should own the node.

Definition at line 1092 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::CalculateContainingBox(), PetscTools::GetMyRank(), DistributedBoxCollection< DIM >::mMaxBoxIndex, and DistributedBoxCollection< DIM >::mMinBoxIndex.

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

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

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:
globalIndex the global index of the box to check.
Returns:
whether the box is interior or not.

Definition at line 230 of file DistributedBoxCollection.cpp.

References PetscTools::IsSequential(), DistributedBoxCollection< DIM >::mMaxBoxIndex, DistributedBoxCollection< DIM >::mMinBoxIndex, and DistributedBoxCollection< DIM >::mNumBoxesInAFace.

Referenced by DistributedBoxCollection< DIM >::CalculateBoundaryNodePairs(), and DistributedBoxCollection< DIM >::CalculateInteriorNodePairs().

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

Definition at line 1084 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::CalculateContainingBox(), and DistributedBoxCollection< DIM >::GetBoxOwnership().

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

Definition at line 1076 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::CalculateContainingBox(), and DistributedBoxCollection< DIM >::GetBoxOwnership().

Referenced by NodesOnlyMesh< SPACE_DIM >::ConstructNodesWithoutMesh(), and NodesOnlyMesh< SPACE_DIM >::IsOwned().

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

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

Parameters:
localDistribution a 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 397 of file DistributedBoxCollection.cpp.

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

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

template<unsigned DIM>
Box< DIM > & DistributedBoxCollection< DIM >::rGetBox ( unsigned  boxIndex  )  [inline]
template<unsigned DIM>
c_vector< double, 2 *DIM > DistributedBoxCollection< DIM >::rGetDomainSize (  )  const [inline]
template<unsigned DIM>
Box< DIM > & DistributedBoxCollection< DIM >::rGetHaloBox ( unsigned  boxIndex  )  [inline]

Get a halo box.

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

Definition at line 351 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::GetHaloBoxOwnership(), DistributedBoxCollection< DIM >::mHaloBoxes, and DistributedBoxCollection< DIM >::mHaloBoxesMapping.

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

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

Definition at line 1116 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mHaloNodesLeft.

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

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

Definition at line 1110 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mHaloNodesRight.

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

template<unsigned DIM>
template<class Archive >
void DistributedBoxCollection< DIM >::serialize ( Archive &  archive,
const unsigned int  version 
) [inline, private]

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

Parameters:
archive the archive.
version the version number.

Definition at line 132 of file DistributedBoxCollection.hpp.

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

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

Parameters:
calculateNodeNeighbours whether to store the neighbours.

Definition at line 1122 of file DistributedBoxCollection.cpp.

References DistributedBoxCollection< DIM >::mCalculateNodeNeighbours.

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

template<unsigned DIM>
void DistributedBoxCollection< DIM >::SetupAllLocalBoxes (  )  [inline]
template<unsigned DIM>
void DistributedBoxCollection< DIM >::SetupHaloBoxes (  )  [inline]
template<unsigned DIM>
void DistributedBoxCollection< DIM >::SetupLocalBoxesHalfOnly (  )  [inline]
template<unsigned DIM>
void DistributedBoxCollection< DIM >::UpdateHaloBoxes (  )  [inline]

Friends And Related Function Documentation

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

Needed for serialization

Definition at line 123 of file DistributedBoxCollection.hpp.


Member Data Documentation

template<unsigned DIM>
bool DistributedBoxCollection< DIM >::mAreLocalBoxesSet [private]
template<unsigned DIM>
std::vector< Box<DIM> > DistributedBoxCollection< DIM >::mBoxes [private]
template<unsigned DIM>
std::map<unsigned, unsigned> DistributedBoxCollection< DIM >::mBoxesMapping [private]
template<unsigned DIM>
double DistributedBoxCollection< DIM >::mBoxWidth [private]
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 120 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::AddPairsFromBox(), and DistributedBoxCollection< DIM >::SetCalculateNodeNeighbours().

template<unsigned DIM>
c_vector<double, 2*DIM> DistributedBoxCollection< DIM >::mDomainSize [private]
template<unsigned DIM>
std::vector< Box<DIM> > DistributedBoxCollection< DIM >::mHaloBoxes [private]
template<unsigned DIM>
std::map<unsigned, unsigned> DistributedBoxCollection< DIM >::mHaloBoxesMapping [private]
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.

Referenced by DistributedBoxCollection< DIM >::rGetHaloNodesLeft(), and DistributedBoxCollection< DIM >::UpdateHaloBoxes().

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.

Referenced by DistributedBoxCollection< DIM >::rGetHaloNodesRight(), and DistributedBoxCollection< DIM >::UpdateHaloBoxes().

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.

Referenced by DistributedBoxCollection< DIM >::SetupHaloBoxes(), and DistributedBoxCollection< DIM >::UpdateHaloBoxes().

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.

Referenced by DistributedBoxCollection< DIM >::SetupHaloBoxes(), and DistributedBoxCollection< DIM >::UpdateHaloBoxes().

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 108 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::SetupAllLocalBoxes(), and DistributedBoxCollection< DIM >::SetupLocalBoxesHalfOnly().

template<unsigned DIM>
std::vector< std::set<unsigned> > DistributedBoxCollection< DIM >::mLocalBoxes [private]
template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::mMaxBoxIndex [private]
template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::mMinBoxIndex [private]
template<unsigned DIM>
unsigned DistributedBoxCollection< DIM >::mNumBoxes [private]
template<unsigned DIM>
c_vector<unsigned, DIM> DistributedBoxCollection< DIM >::mNumBoxesEachDirection [private]
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 96 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::DistributedBoxCollection(), DistributedBoxCollection< DIM >::GetHaloBoxOwnership(), DistributedBoxCollection< DIM >::IsInteriorBox(), and DistributedBoxCollection< DIM >::SetupHaloBoxes().

template<unsigned DIM>
const double DistributedBoxCollection< DIM >::msFudge = 5e-14 [inline, static, private]

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

Definition at line 114 of file DistributedBoxCollection.hpp.

Referenced by DistributedBoxCollection< DIM >::CalculateContainingBox(), and DistributedBoxCollection< DIM >::DistributedBoxCollection().


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

Generated by  doxygen 1.6.2