Proto  3.2
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Proto::MBBoxPartition Class Reference

#include <Proto_MBBoxPartition.H>

Public Member Functions

 MBBoxPartition (const MBProblemDomain &a_domain)
 
 MBBoxPartition (const MBProblemDomain &a_domain, const std::vector< MBPoint > &a_patches)
 
void define (const MBProblemDomain &a_domain, const std::vector< MBPoint > &a_patches)
 
void define (const std::vector< MBPoint > &a_patches)
 
void loadBalance ()
 
bool compatible (const MBBoxPartition &a_rhs)
 
const MBProblemDomaindomain () const
 
unsigned int numProcs () const
 
unsigned int numBoxes () const
 
unsigned int numBoxes (unsigned int a_proc)
 
BlockIndex numBlocks () const
 
uint64_t procStartIndex (unsigned int a_proc) const
 
uint64_t procEndIndex (unsigned int a_proc) const
 
uint64_t localIndex (uint64_t a_globalIndex, unsigned int a_proc) const
 
uint64_t globalIndex (uint64_t a_localIndex, unsigned int a_proc) const
 
uint64_t find (Point a_patch, BlockIndex a_block) const
 
bool contains (Point a_patch, BlockIndex a_block) const
 
void validatePatch (const MBPoint &patch, std::string methodName) const
 
void validateIndex (uint64_t index, std::string methodName) const
 
Point connectivity (const MBPoint &src, const MBPoint &dst) const
 
unsigned int getProc (uint64_t globalIndex) const
 
MBPoint getPatch (uint64_t globalIndex) const
 
BlockIndex getBlock (uint64_t globalIndex) const
 
Point getPoint (uint64_t globalIndex) const
 
std::set< MBPointadjacentPatches (const MBPoint &patch) const
 
bool isBlockBoundary (MBPoint patch, Point dir) const
 
bool isBlockBoundary (MBPoint patch, Point dir, BlockIndex adjBlock) const
 
bool isDomainBoundary (MBPoint patch, Point dir) const
 
bool isInteriorBoundary (MBPoint patch, Point dir) const
 
bool isRefinementBoundary (MBPoint patch, Point dir) const
 
const MBPatchInfo & patchInfo (MBPoint patchID) const
 
const std::vector< std::pair< MBPoint, unsigned int > > & partition () const
 
std::shared_ptr< BoxPartitionblockPartition (BlockIndex a_block) const
 
void print ()
 

Private Member Functions

void assign (std::vector< Point > &a_patches, unsigned int a_globalIndex, int a_proc, unsigned int a_num)
 
void buildLocalMaps ()
 
void buildGlobalMaps ()
 
void findAdjacencies ()
 
void getBoundaryInfo (MBPatchInfo &patchInfo)
 
void updateRefinementBoundaries ()
 

Private Attributes

MBProblemDomain m_patchDomain
 
std::map< MBPoint, uint64_t > m_indexMap
 Maps local to global. More...
 
std::unordered_map< unsigned int, std::pair< uint64_t, uint64_t > > m_procMap
 Maps proc to global indices. More...
 
std::vector< std::shared_ptr< BoxPartition > > m_blockPartitions
 
std::vector< std::pair< MBPoint, unsigned int > > m_partition
 
std::unordered_map< MBPoint, MBPatchInfo, MBPoint::Hashm_patchAdjacencies
 

Constructor & Destructor Documentation

◆ MBBoxPartition() [1/2]

Proto::MBBoxPartition::MBBoxPartition ( const MBProblemDomain a_domain)
inline

◆ MBBoxPartition() [2/2]

Proto::MBBoxPartition::MBBoxPartition ( const MBProblemDomain a_domain,
const std::vector< MBPoint > &  a_patches 
)
inline

Member Function Documentation

◆ define() [1/2]

void Proto::MBBoxPartition::define ( const MBProblemDomain a_domain,
const std::vector< MBPoint > &  a_patches 
)
inline

◆ define() [2/2]

void Proto::MBBoxPartition::define ( const std::vector< MBPoint > &  a_patches)
inline

◆ loadBalance()

void Proto::MBBoxPartition::loadBalance ( )
inline

◆ compatible()

bool Proto::MBBoxPartition::compatible ( const MBBoxPartition a_rhs)
inline

◆ domain()

const MBProblemDomain& Proto::MBBoxPartition::domain ( ) const
inline

◆ numProcs()

unsigned int Proto::MBBoxPartition::numProcs ( ) const
inline

◆ numBoxes() [1/2]

unsigned int Proto::MBBoxPartition::numBoxes ( ) const
inline

◆ numBoxes() [2/2]

unsigned int Proto::MBBoxPartition::numBoxes ( unsigned int  a_proc)
inline

◆ numBlocks()

BlockIndex Proto::MBBoxPartition::numBlocks ( ) const
inline

◆ procStartIndex()

uint64_t Proto::MBBoxPartition::procStartIndex ( unsigned int  a_proc) const
inline

◆ procEndIndex()

uint64_t Proto::MBBoxPartition::procEndIndex ( unsigned int  a_proc) const
inline

◆ localIndex()

uint64_t Proto::MBBoxPartition::localIndex ( uint64_t  a_globalIndex,
unsigned int  a_proc 
) const
inline

◆ globalIndex()

uint64_t Proto::MBBoxPartition::globalIndex ( uint64_t  a_localIndex,
unsigned int  a_proc 
) const
inline

◆ find()

uint64_t Proto::MBBoxPartition::find ( Point  a_patch,
BlockIndex  a_block 
) const
inline

◆ contains()

bool Proto::MBBoxPartition::contains ( Point  a_patch,
BlockIndex  a_block 
) const
inline

◆ validatePatch()

void Proto::MBBoxPartition::validatePatch ( const MBPoint patch,
std::string  methodName 
) const
inline

◆ validateIndex()

void Proto::MBBoxPartition::validateIndex ( uint64_t  index,
std::string  methodName 
) const
inline

◆ connectivity()

Point Proto::MBBoxPartition::connectivity ( const MBPoint src,
const MBPoint dst 
) const
inline

◆ getProc()

unsigned int Proto::MBBoxPartition::getProc ( uint64_t  globalIndex) const

◆ getPatch()

MBPoint Proto::MBBoxPartition::getPatch ( uint64_t  globalIndex) const
inline

◆ getBlock()

BlockIndex Proto::MBBoxPartition::getBlock ( uint64_t  globalIndex) const
inline

◆ getPoint()

Point Proto::MBBoxPartition::getPoint ( uint64_t  globalIndex) const
inline

◆ adjacentPatches()

std::set< MBPoint > Proto::MBBoxPartition::adjacentPatches ( const MBPoint patch) const
inline

◆ isBlockBoundary() [1/2]

bool Proto::MBBoxPartition::isBlockBoundary ( MBPoint  patch,
Point  dir 
) const
inline

◆ isBlockBoundary() [2/2]

bool Proto::MBBoxPartition::isBlockBoundary ( MBPoint  patch,
Point  dir,
BlockIndex  adjBlock 
) const
inline

◆ isDomainBoundary()

bool Proto::MBBoxPartition::isDomainBoundary ( MBPoint  patch,
Point  dir 
) const
inline

◆ isInteriorBoundary()

bool Proto::MBBoxPartition::isInteriorBoundary ( MBPoint  patch,
Point  dir 
) const
inline

◆ isRefinementBoundary()

bool Proto::MBBoxPartition::isRefinementBoundary ( MBPoint  patch,
Point  dir 
) const
inline

◆ patchInfo()

const MBPatchInfo& Proto::MBBoxPartition::patchInfo ( MBPoint  patchID) const
inline

◆ partition()

const std::vector<std::pair<MBPoint, unsigned int> >& Proto::MBBoxPartition::partition ( ) const
inline

◆ blockPartition()

std::shared_ptr< BoxPartition > Proto::MBBoxPartition::blockPartition ( BlockIndex  a_block) const
inline

◆ print()

void Proto::MBBoxPartition::print ( )
inline

◆ assign()

void Proto::MBBoxPartition::assign ( std::vector< Point > &  a_patches,
unsigned int  a_globalIndex,
int  a_proc,
unsigned int  a_num 
)
inlineprivate

◆ buildLocalMaps()

void Proto::MBBoxPartition::buildLocalMaps ( )
inlineprivate

◆ buildGlobalMaps()

void Proto::MBBoxPartition::buildGlobalMaps ( )
inlineprivate

References boundaries, and dir.

◆ findAdjacencies()

void Proto::MBBoxPartition::findAdjacencies ( )
inlineprivate

◆ getBoundaryInfo()

void Proto::MBBoxPartition::getBoundaryInfo ( MBPatchInfo &  patchInfo)
inlineprivate

◆ updateRefinementBoundaries()

void Proto::MBBoxPartition::updateRefinementBoundaries ( )
inlineprivate

Member Data Documentation

◆ m_patchDomain

MBProblemDomain Proto::MBBoxPartition::m_patchDomain
private

◆ m_indexMap

std::map<MBPoint, uint64_t> Proto::MBBoxPartition::m_indexMap
mutableprivate

Maps local to global.

◆ m_procMap

std::unordered_map<unsigned int, std::pair<uint64_t, uint64_t> > Proto::MBBoxPartition::m_procMap
mutableprivate

Maps proc to global indices.

◆ m_blockPartitions

std::vector<std::shared_ptr<BoxPartition> > Proto::MBBoxPartition::m_blockPartitions
private

◆ m_partition

std::vector<std::pair<MBPoint, unsigned int> > Proto::MBBoxPartition::m_partition
private

◆ m_patchAdjacencies

std::unordered_map<MBPoint, MBPatchInfo, MBPoint::Hash> Proto::MBBoxPartition::m_patchAdjacencies
mutableprivate

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