$treeview $search $mathjax
Palabos  Version 1.1
$projectbrief
$projectbrief
$searchbox

plb::MultiBlockLattice3D< T, Descriptor > Class Template Reference

A complex LatticeBase, itself decomposed into smaller components. More...

#include <multiBlockLattice3D.h>

Inheritance diagram for plb::MultiBlockLattice3D< T, Descriptor >:
Collaboration diagram for plb::MultiBlockLattice3D< T, Descriptor >:

List of all members.

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)
BlockMapgetBlockLattices ()
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 ()

Detailed Description

template<typename T, template< typename U > class Descriptor>
class plb::MultiBlockLattice3D< T, Descriptor >

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.


Member Typedef Documentation

template<typename T, template< typename U > class Descriptor>
typedef std::map<plint,BlockLattice3D<T,Descriptor>*> plb::MultiBlockLattice3D< T, Descriptor >::BlockMap

Constructor & Destructor Documentation

template<typename T , template< typename U > class Descriptor>
plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D ( MultiBlockManagement3D const &  multiBlockManagement,
BlockCommunicator3D blockCommunicator_,
CombinedStatistics combinedStatistics_,
MultiCellAccess3D< T, Descriptor > *  multiCellAccess_,
Dynamics< T, Descriptor > *  backgroundDynamics_ 
) [inline]
template<typename T , template< typename U > class Descriptor>
plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D ( plint  nx,
plint  ny,
plint  nz,
Dynamics< T, Descriptor > *  backgroundDynamics_ 
) [inline]
template<typename T , template< typename U > class Descriptor>
plb::MultiBlockLattice3D< T, Descriptor >::~MultiBlockLattice3D (  )  [inline]
template<typename T , template< typename U > class Descriptor>
plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D ( MultiBlockLattice3D< T, Descriptor > const &  rhs  )  [inline]
template<typename T , template< typename U > class Descriptor>
plb::MultiBlockLattice3D< T, Descriptor >::MultiBlockLattice3D ( MultiBlock3D const &  rhs  )  [inline]
template<typename T , template< typename U > class Descriptor>
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.


Member Function Documentation

template<typename T , template< typename U > class Descriptor>
std::string plb::MultiBlockLattice3D< T, Descriptor >::basicType (  )  [inline, static]
template<typename T , template< typename U > class Descriptor>
std::string plb::MultiBlockLattice3D< T, Descriptor >::blockName (  )  [inline, static]
template<typename T , template< typename U > class Descriptor>
MultiBlockLattice3D< T, Descriptor > * plb::MultiBlockLattice3D< T, Descriptor >::clone (  )  const [inline, virtual]

Implements plb::MultiBlock3D.

template<typename T , template< typename U > class Descriptor>
void plb::MultiBlockLattice3D< T, Descriptor >::collide (  )  [inline, virtual]
template<typename T , template< typename U > class Descriptor>
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.

template<typename T , template< typename U > class Descriptor>
std::string plb::MultiBlockLattice3D< T, Descriptor >::descriptorType (  )  [inline, static]
template<typename T , template< typename U > class Descriptor>
Cell< T, Descriptor > const & plb::MultiBlockLattice3D< T, Descriptor >::get ( plint  iX,
plint  iY,
plint  iZ 
) const [inline, virtual]
template<typename T , template< typename U > class Descriptor>
Cell< T, Descriptor > & plb::MultiBlockLattice3D< T, Descriptor >::get ( plint  iX,
plint  iY,
plint  iZ 
) [inline, virtual]
template<typename T , template< typename U > class Descriptor>
Dynamics< T, Descriptor > const & plb::MultiBlockLattice3D< T, Descriptor >::getBackgroundDynamics (  )  const [inline]
template<typename T , template< typename U > class Descriptor>
std::map< plint, BlockLattice3D< T, Descriptor > * > const & plb::MultiBlockLattice3D< T, Descriptor >::getBlockLattices (  )  const [inline]
template<typename T , template< typename U > class Descriptor>
std::map< plint, BlockLattice3D< T, Descriptor > * > & plb::MultiBlockLattice3D< T, Descriptor >::getBlockLattices (  )  [inline]
template<typename T , template< typename U > class Descriptor>
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.

template<typename T , template< typename U > class Descriptor>
plint plb::MultiBlockLattice3D< T, Descriptor >::getCellDim (  )  const [inline, virtual]

Implements plb::MultiBlock3D.

template<typename T , template< typename U > class Descriptor>
BlockLattice3D< T, Descriptor > const & plb::MultiBlockLattice3D< T, Descriptor >::getComponent ( plint  blockId  )  const [inline, virtual]

Implements plb::MultiBlock3D.

References PLB_ASSERT.

template<typename T , template< typename U > class Descriptor>
BlockLattice3D< T, Descriptor > & plb::MultiBlockLattice3D< T, Descriptor >::getComponent ( plint  blockId  )  [inline, virtual]
template<typename T , template< typename U > class Descriptor>
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().

template<typename T , template< typename U > class Descriptor>
int plb::MultiBlockLattice3D< T, Descriptor >::getStaticId (  )  const [inline, virtual]

Implements plb::MultiBlock3D.

template<typename T , template< typename U > class Descriptor>
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().

template<typename T , template< typename U > class Descriptor>
void plb::MultiBlockLattice3D< T, Descriptor >::incrementTime (  )  [inline, virtual]
template<typename T , template< typename U > class Descriptor>
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().

template<typename T , template< typename U > class Descriptor>
void plb::MultiBlockLattice3D< T, Descriptor >::resetTime ( pluint  value  )  [inline, virtual]
template<typename T , template< typename U > class Descriptor>
plint plb::MultiBlockLattice3D< T, Descriptor >::sizeOfCell (  )  const [inline, virtual]

Implements plb::MultiBlock3D.

template<typename T , template< typename U > class Descriptor>
void plb::MultiBlockLattice3D< T, Descriptor >::specifyStatisticsStatus ( Box3D  domain,
bool  status 
) [inline, virtual]
template<typename T , template< typename U > class Descriptor>
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=().


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