$treeview $search $mathjax
|
Palabos
Version 1.1
$projectbrief
|
$projectbrief
|
$searchbox |
A complex LatticeBase, itself decomposed into smaller components. More...
#include <multiBlockLattice3D.h>


Public Types | |
| typedef std::map< plint, BlockLattice3D< T, Descriptor > * > | BlockMap |
Public Member Functions | |
| MultiBlockLattice3D (MultiBlockManagement3D const &multiBlockManagement, BlockCommunicator3D *blockCommunicator_, CombinedStatistics *combinedStatistics_, MultiCellAccess3D< T, Descriptor > *multiCellAccess_, Dynamics< T, Descriptor > *backgroundDynamics_) | |
| MultiBlockLattice3D (plint nx, plint ny, plint nz, Dynamics< T, Descriptor > *backgroundDynamics_) | |
| ~MultiBlockLattice3D () | |
| MultiBlockLattice3D (MultiBlockLattice3D< T, Descriptor > const &rhs) | |
| MultiBlockLattice3D (MultiBlock3D const &rhs) | |
| MultiBlockLattice3D< T, Descriptor > * | clone () const |
| MultiBlockLattice3D< T, Descriptor > * | clone (MultiBlockManagement3D const &newManagement) const |
| MultiBlockLattice3D (MultiBlock3D const &rhs, Box3D subDomain, bool crop=true) | |
| void | swap (MultiBlockLattice3D &rhs) |
| MultiBlockLattice3D< T, Descriptor > & | operator= (MultiBlockLattice3D< T, Descriptor > const &rhs) |
| Dynamics< T, Descriptor > const & | getBackgroundDynamics () const |
| virtual Cell< T, Descriptor > & | get (plint iX, plint iY, plint iZ) |
| virtual Cell< T, Descriptor > const & | get (plint iX, plint iY, plint iZ) const |
| virtual void | specifyStatisticsStatus (Box3D domain, bool status) |
| virtual void | collide (Box3D domain) |
| virtual void | collide () |
| virtual void | stream (Box3D domain) |
| virtual void | stream () |
| virtual void | collideAndStream (Box3D domain) |
| virtual void | collideAndStream () |
| virtual void | incrementTime () |
| virtual void | resetTime (pluint value) |
| virtual BlockLattice3D< T, Descriptor > & | getComponent (plint blockId) |
| virtual BlockLattice3D< T, Descriptor > const & | getComponent (plint blockId) const |
| virtual plint | sizeOfCell () const |
| virtual plint | getCellDim () const |
| virtual int | getStaticId () const |
| virtual void | copyReceive (MultiBlock3D const &fromBlock, Box3D const &fromDomain, Box3D const &toDomain, modif::ModifT whichData=modif::dataStructure) |
| BlockMap & | getBlockLattices () |
| BlockMap const & | getBlockLattices () const |
| virtual void | getDynamicsDict (Box3D domain, std::map< std::string, int > &dict) |
| Return a unique map for the IDs of dynamics objects present in the multi-block, if any. | |
| std::string | getBlockName () const |
| Get a string identifier for the type of block. E.g. "lattice3d". | |
| std::vector< std::string > | getTypeInfo () const |
Static Public Member Functions | |
| static std::string | blockName () |
| static std::string | basicType () |
| static std::string | descriptorType () |
A complex LatticeBase, itself decomposed into smaller components.
This extensible class can be used for example for cache-optimized lattices, irregular domains (no memory allocation in areas exterior to the domain) and parallel lattices. The actual behavior of the lattice is parametrizable by a multiBlockHandler instance, which is given to the constructor.
The MultiBlockLattice does not itself possess LatticeProcessors. The Lattice- Processors are delegated to the respective LatticeBases.
| typedef std::map<plint,BlockLattice3D<T,Descriptor>*> plb::MultiBlockLattice3D< T, Descriptor >::BlockMap |
| plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D | ( | MultiBlockManagement3D const & | multiBlockManagement, | |
| BlockCommunicator3D * | blockCommunicator_, | |||
| CombinedStatistics * | combinedStatistics_, | |||
| MultiCellAccess3D< T, Descriptor > * | multiCellAccess_, | |||
| Dynamics< T, Descriptor > * | backgroundDynamics_ | |||
| ) | [inline] |
References plb::MultiBlock3D::evaluateStatistics().
| plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D | ( | plint | nx, | |
| plint | ny, | |||
| plint | nz, | |||
| Dynamics< T, Descriptor > * | backgroundDynamics_ | |||
| ) | [inline] |
References plb::MultiBlock3D::evaluateStatistics().
| plb::MultiBlockLattice3D< T, Descriptor >::~MultiBlockLattice3D | ( | ) | [inline] |
| plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D | ( | MultiBlockLattice3D< T, Descriptor > const & | rhs | ) | [inline] |
| plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D | ( | MultiBlock3D const & | rhs | ) | [inline] |
| plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D | ( | MultiBlock3D const & | rhs, | |
| Box3D | subDomain, | |||
| bool | crop = true | |||
| ) | [inline] |
Extract sub-domain from rhs and construct a multi-block-lattice with the same data distribution and policy-classes; but the data itself and the data-processors are not copied. MultiCellAccess takes default value.
| std::string plb::MultiBlockLattice3D< T, Descriptor >::basicType | ( | ) | [inline, static] |
Referenced by plb::MultiBlockLattice3D< T, Descriptor >::getTypeInfo().
| std::string plb::MultiBlockLattice3D< T, Descriptor >::blockName | ( | ) | [inline, static] |
| MultiBlockLattice3D< T, Descriptor > * plb::MultiBlockLattice3D< T, Descriptor >::clone | ( | MultiBlockManagement3D const & | newManagement | ) | const [inline, virtual] |
Implements plb::MultiBlock3D.
References plb::CombinedStatistics::clone(), plb::BlockCommunicator3D::clone(), plb::copy(), plb::modif::dataStructure, plb::MultiBlockLattice3D< T, Descriptor >::getBackgroundDynamics(), plb::MultiBlock3D::getBlockCommunicator(), plb::MultiBlock3D::getBoundingBox(), and plb::MultiBlock3D::getCombinedStatistics().
| MultiBlockLattice3D< T, Descriptor > * plb::MultiBlockLattice3D< T, Descriptor >::clone | ( | ) | const [inline, virtual] |
Implements plb::MultiBlock3D.
| void plb::MultiBlockLattice3D< T, Descriptor >::collide | ( | ) | [inline, virtual] |
Implements plb::BlockLatticeBase3D< T, Descriptor >.
Referenced by plb::MultiBlockLattice3D< T, Descriptor >::collide().
| void plb::MultiBlockLattice3D< T, Descriptor >::collide | ( | Box3D | domain | ) | [inline, virtual] |
| void plb::MultiBlockLattice3D< T, Descriptor >::collideAndStream | ( | ) | [inline, virtual] |
Implements plb::BlockLatticeBase3D< T, Descriptor >.
References plb::BlockDomain::bulk, plb::SmartBulk3D::computeNonPeriodicEnvelope(), plb::MultiBlock3D::evaluateStatistics(), plb::MultiBlock3D::executeInternalProcessors(), plb::ThreadAttribution::getCoProcessorHandle(), plb::MultiBlockManagement3D::getEnvelopeWidth(), plb::MultiBlock3D::getMultiBlockManagement(), plb::MultiBlockManagement3D::getThreadAttribution(), plb::ThreadAttribution::hasCoProcessors(), plb::MultiBlockLattice3D< T, Descriptor >::incrementTime(), plb::global::profiler(), and plb::SmartBulk3D::toLocal().
Referenced by plb::MultiBlockLattice3D< T, Descriptor >::collideAndStream().
| void plb::MultiBlockLattice3D< T, Descriptor >::collideAndStream | ( | Box3D | domain | ) | [inline, virtual] |
| void plb::MultiBlockLattice3D< T, Descriptor >::copyReceive | ( | MultiBlock3D const & | fromBlock, | |
| Box3D const & | fromDomain, | |||
| Box3D const & | toDomain, | |||
| modif::ModifT | whichData = modif::dataStructure | |||
| ) | [inline, virtual] |
Implements plb::MultiBlock3D.
References plb::copy(), and PLB_ASSERT.
| std::string plb::MultiBlockLattice3D< T, Descriptor >::descriptorType | ( | ) | [inline, static] |
Referenced by plb::MultiBlockLattice3D< T, Descriptor >::getTypeInfo().
| Cell< T, Descriptor > const & plb::MultiBlockLattice3D< T, Descriptor >::get | ( | plint | iX, | |
| plint | iY, | |||
| plint | iZ | |||
| ) | const [inline, virtual] |
Implements plb::BlockLatticeBase3D< T, Descriptor >.
References plb::MultiBlock3D::getMultiBlockManagement().
| Cell< T, Descriptor > & plb::MultiBlockLattice3D< T, Descriptor >::get | ( | plint | iX, | |
| plint | iY, | |||
| plint | iZ | |||
| ) | [inline, virtual] |
Implements plb::BlockLatticeBase3D< T, Descriptor >.
References plb::MultiBlock3D::getMultiBlockManagement().
| Dynamics< T, Descriptor > const & plb::MultiBlockLattice3D< T, Descriptor >::getBackgroundDynamics | ( | ) | const [inline] |
| std::map< plint, BlockLattice3D< T, Descriptor > * > const & plb::MultiBlockLattice3D< T, Descriptor >::getBlockLattices | ( | ) | const [inline] |
| std::map< plint, BlockLattice3D< T, Descriptor > * > & plb::MultiBlockLattice3D< T, Descriptor >::getBlockLattices | ( | ) | [inline] |
| std::string plb::MultiBlockLattice3D< T, Descriptor >::getBlockName | ( | ) | const [inline, virtual] |
Get a string identifier for the type of block. E.g. "lattice3d".
Implements plb::MultiBlock3D.
| plint plb::MultiBlockLattice3D< T, Descriptor >::getCellDim | ( | ) | const [inline, virtual] |
Implements plb::MultiBlock3D.
| BlockLattice3D< T, Descriptor > const & plb::MultiBlockLattice3D< T, Descriptor >::getComponent | ( | plint | blockId | ) | const [inline, virtual] |
Implements plb::MultiBlock3D.
References PLB_ASSERT.
| BlockLattice3D< T, Descriptor > & plb::MultiBlockLattice3D< T, Descriptor >::getComponent | ( | plint | blockId | ) | [inline, virtual] |
Implements plb::MultiBlock3D.
References PLB_ASSERT.
Referenced by plb::transferFromCoProcessors(), and plb::transferToCoProcessors().
| void plb::MultiBlockLattice3D< T, Descriptor >::getDynamicsDict | ( | Box3D | domain, | |
| std::map< std::string, int > & | dict | |||
| ) | [inline, virtual] |
Return a unique map for the IDs of dynamics objects present in the multi-block, if any.
Reimplemented from plb::MultiBlock3D.
References plb::uniqueDynamicsIds().
| int plb::MultiBlockLattice3D< T, Descriptor >::getStaticId | ( | ) | const [inline, virtual] |
Implements plb::MultiBlock3D.
| std::vector< std::string > plb::MultiBlockLattice3D< T, Descriptor >::getTypeInfo | ( | ) | const [inline, virtual] |
Get one or two string identifiers for the template parameters of the block. E.g. "double" and "d3q19"
Implements plb::MultiBlock3D.
References plb::MultiBlockLattice3D< T, Descriptor >::basicType(), and plb::MultiBlockLattice3D< T, Descriptor >::descriptorType().
| void plb::MultiBlockLattice3D< T, Descriptor >::incrementTime | ( | ) | [inline, virtual] |
| MultiBlockLattice3D< T, Descriptor > & plb::MultiBlockLattice3D< T, Descriptor >::operator= | ( | MultiBlockLattice3D< T, Descriptor > const & | rhs | ) | [inline] |
Attention: data-processors of rhs, which were pointing at rhs, will continue pointing to rhs, and not to *this.
References plb::MultiBlockLattice3D< T, Descriptor >::swap().
| void plb::MultiBlockLattice3D< T, Descriptor >::resetTime | ( | pluint | value | ) | [inline, virtual] |
| plint plb::MultiBlockLattice3D< T, Descriptor >::sizeOfCell | ( | ) | const [inline, virtual] |
Implements plb::MultiBlock3D.
| void plb::MultiBlockLattice3D< T, Descriptor >::specifyStatisticsStatus | ( | Box3D | domain, | |
| bool | status | |||
| ) | [inline, virtual] |
| void plb::MultiBlockLattice3D< T, Descriptor >::stream | ( | ) | [inline, virtual] |
Implements plb::BlockLatticeBase3D< T, Descriptor >.
References plb::BlockDomain::bulk, plb::SmartBulk3D::computeNonPeriodicEnvelope(), plb::MultiBlock3D::evaluateStatistics(), plb::MultiBlock3D::executeInternalProcessors(), plb::MultiBlockManagement3D::getEnvelopeWidth(), plb::MultiBlock3D::getMultiBlockManagement(), plb::MultiBlockLattice3D< T, Descriptor >::incrementTime(), and plb::SmartBulk3D::toLocal().
Referenced by plb::MultiBlockLattice3D< T, Descriptor >::stream().
| void plb::MultiBlockLattice3D< T, Descriptor >::stream | ( | Box3D | domain | ) | [inline, virtual] |
| void plb::MultiBlockLattice3D< T, Descriptor >::swap | ( | MultiBlockLattice3D< T, Descriptor > & | rhs | ) | [inline] |
Attention: data-processors of rhs, which were pointing at rhs, will continue pointing to rhs, and not to *this.
Referenced by plb::MultiBlockLattice3D< T, Descriptor >::operator=().
1.6.3
1.6.3