Palabos  nightly
Palabos: open source lattice Boltzmann library
plb::MultiGridLattice3D< T, Descriptor > Class Template Reference
Inheritance diagram for plb::MultiGridLattice3D< T, Descriptor >:
plb::BlockLatticeBase3D< T, Descriptor > plb::MultiGrid3D plb::Block3D

Public Member Functions

 MultiGridLattice3D (MultiGridManagement3D management, std::vector< BlockCommunicator3D * > communicators_, std::vector< CombinedStatistics * > combinedStatistics_, Dynamics< T, Descriptor > *backgroundDynamics, plint behaviorLevel=0)
 
 MultiGridLattice3D (MultiGridManagement3D management, Dynamics< T, Descriptor > *backgroundDynamics, plint behaviorLevel=0)
 
 MultiGridLattice3D (MultiGridLattice3D< T, Descriptor > const &rhs)
 Copy constructor for the whole multi grid.
 
 MultiGridLattice3D (MultiGridLattice3D< T, Descriptor > const &rhs, Box3D subDomain, bool crop=true)
 Copy constructor for a subdomain of the multi grid.
 
 MultiGridLattice3D (MultiGrid3D const &rhs)
 
 MultiGridLattice3D (MultiGrid3D const &rhs, Box3D subDomain, bool crop=true)
 
MultiGridLattice3D< T, Descriptor > & operator= (MultiGridLattice3D< T, Descriptor > const &rhs)
 
 ~MultiGridLattice3D ()
 Get rid properly of all the pointers in the class.
 
void initialize ()
 Create the couplings between lattices. More...
 
void createInterfaces ()
 
std::unique_ptr< MultiBlockLattice3D< T, Descriptor > > convertToLevel (plint level) const
 Create a single multiBlock that represents the multiGrid. More...
 
int getBlockId () const
 
MultiBlockLattice3D< T, Descriptor > & getComponent (plint iBlock)
 Retrieve the lattices representing each a refinement level.
 
const MultiBlockLattice3D< T, Descriptor > & getComponent (plint iBlock) const
 Retrieving the components of the multigrid.
 
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)
 One iteration of the multigrid over a given domain (this domain reffers to the reference level)
 
virtual void collideAndStream ()
 One iteration of the entire multigrid.
 
virtual void incrementTime ()
 
TimeCountergetTimeCounter ()
 
TimeCounter const & getTimeCounter () const
 
- Public Member Functions inherited from plb::BlockLatticeBase3D< T, Descriptor >
void swap (BlockLatticeBase3D< T, Descriptor > &rhs)
 
TimeCountergetTimeCounter ()
 
TimeCounter const & getTimeCounter () const
 
- Public Member Functions inherited from plb::MultiGrid3D
 MultiGrid3D (MultiGridManagement3D management, plint behaviorLevel_)
 
 MultiGrid3D (const MultiGrid3D &rhs)
 Copy constructor.
 
 MultiGrid3D (MultiGrid3D const &rhs, Box3D subDomain, bool crop)
 
void swap (MultiGrid3D &rhs)
 
MultiGridManagement3D const & getMultiGridManagement () const
 Retrieving the MultiGridManagement3D.
 
MultiGridManagement3DgetMultiGridManagement ()
 
plint getNx () const
 "Sizes" of the multigrid, according to a definition made by the end-user class.
 
plint getNy () const
 
plint getNz () const
 
virtual Box3D getBoundingBox () const
 Retrieve the bounding box of the domain according to a definition made by user.
 
plint getReferenceLevel () const
 Retrieve the multigrid informations (for the implementing classes) More...
 
plint getNumLevels () const
 
plint getBehaviorLevel () const
 
void setBehaviorLevel (plint behaviorLevel_)
 
void initialize ()
 Execute all processors one.
 
void executeInternalProcessors ()
 Execute data processors.
 
void executeInternalProcessors (plint level)
 Execute data processors at a certain level.
 
void subscribeProcessor (plint level)
 Subscription of a Data Processor.
 
BlockStatisticsgetInternalStatistics ()
 Retrieve the multigrid statistics (this contains all the statistics rescaled) More...
 
BlockStatistics const & getInternalStatistics () const
 
void reduceStatistics ()
 statistics related manipulations like evaluation More...
 
void evaluateStatistics ()
 
void toggleInternalStatistics (bool statisticsOn_)
 
bool isInternalStatisticsOn () const
 
MultiGridPeriodicitySwitch3D const & periodicity () const
 Periodicity control. More...
 
MultiGridPeriodicitySwitch3Dperiodicity ()
 Periodicity control. More...
 
void signalPeriodicity ()
 
MultiGridStatSubscriber3DinternalStatSubscription ()
 Retrieve the stats subscriber.
 
MultiScaleManager const & getScaleManager () const
 Retrieve the scale manager.
 
virtual DataSerializergetBlockSerializer (Box3D const &domain, IndexOrdering::OrderingT ordering) const
 I/O.
 
virtual DataUnSerializergetBlockUnSerializer (Box3D const &domain, IndexOrdering::OrderingT ordering)
 

Member Function Documentation

◆ convertToLevel()

template<typename T , template< typename U > class Descriptor>
std::unique_ptr< MultiBlockLattice3D< T, Descriptor > > plb::MultiGridLattice3D< T, Descriptor >::convertToLevel ( plint  level) const

Create a single multiBlock that represents the multiGrid.

Interpolate and decimate the multi blocks that form the MultiGridLattice3D in order to have several multi blocks of the same level. Then join them by performing a union of multi blocks.

◆ incrementTime()

template<typename T , template< typename U > class Descriptor>
void plb::MultiGridLattice3D< T, Descriptor >::incrementTime
virtual

This function does not have a sense in the multigrid case. It is therefore void but implemented to comply with the BlockLatticeBase3D interface

Implements plb::BlockLatticeBase3D< T, Descriptor >.

◆ initialize()

template<typename T , template< typename U > class Descriptor>
void plb::MultiGridLattice3D< T, Descriptor >::initialize

Create the couplings between lattices.

This method should be called to create the coupling among the internal multi-blocks of the multi-grid and initialize the different lattices and data processors.


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