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

plb::MultiGridManagement3D Class Reference

#include <multiGridManagement3D.h>

Collaboration diagram for plb::MultiGridManagement3D:

List of all members.

Public Member Functions

 MultiGridManagement3D (plint coarseNx, plint coarseNy, plint coarseNz, plint numLevels, plint referenceLevel=0)
 MultiGridManagement3D (Box3D coarseBoundingBox, plint numLevels, plint referenceLevel=0)
 MultiGridManagement3D (MultiGridManagement3D const &rhs, Box3D coarsestDomain)
 MultiGridManagement3D (MultiGridManagement3D const &rhs)
 ~MultiGridManagement3D ()
void swap (MultiGridManagement3D &rhs)
std::vector< Box3D > const & getBulks (plint iLevel) const
 Retrieve the blocks for each level.
std::vector< std::vector
< Box3D > > const & 
getBulks () const
std::vector< Box3D > const & getUniqueBulks (plint iLevel) const
 Retrieve the unique blocks for each level.
std::vector< std::vector
< Box3D > > const & 
getUniqueBulks () const
Box3D getBoundingBox (plint level) const
 Retrieve the bounding box at any given level.
void refine (plint level, Box3D domain)
 Add a refinement in level at a given domain.
void coarsen (plint level, Box3D domain)
 Coarsen a given domain at certain level.
std::vector< std::vector
< plint > > const & 
getMpiProcesses () const
 Get the Ids of the parallelized regions.
std::vector< std::vector
< Box3D > > const & 
getCoarseInterface () const
std::vector< std::vector
< Box3D > > const & 
getFineInterface () const
void trimDomain (plint whichLevel, Box3D &domain, bool *touches) const
plint getNumLevels () const
plint getReferenceLevel () const
void parallelizeX (std::vector< plint > const &finePositions)
 Parallelize along x-axis.
void parallelizeY (std::vector< plint > const &finePositions)
 Parallelize along y-axis.
void parallelizeZ (std::vector< plint > const &finePositions)
 Parallelize along z-axis.
void parallelize (std::vector< Box3D > parallelRegions, std::vector< plint > const &regionIDs)
 Parallelize according to the indicated domains, measured in coordinates of the finest lattice.

Friends

MultiGridManagement3D extractManagement (MultiGridManagement3D management, Box3D coarsestDomain, bool crop)
 Extract a domain (in coarse coordinates) from a MultiGridManagement3D.

Constructor & Destructor Documentation

plb::MultiGridManagement3D::MultiGridManagement3D ( plint  coarseNx,
plint  coarseNy,
plint  coarseNz,
plint  numLevels,
plint  referenceLevel = 0 
)

References PLB_ASSERT.

plb::MultiGridManagement3D::MultiGridManagement3D ( Box3D  coarseBoundingBox,
plint  numLevels,
plint  referenceLevel = 0 
)

References PLB_ASSERT.

plb::MultiGridManagement3D::MultiGridManagement3D ( MultiGridManagement3D const &  rhs,
Box3D  coarsestDomain 
)
plb::MultiGridManagement3D::MultiGridManagement3D ( MultiGridManagement3D const &  rhs  ) 
plb::MultiGridManagement3D::~MultiGridManagement3D (  ) 

Member Function Documentation

void plb::MultiGridManagement3D::coarsen ( plint  level,
Box3D  domain 
)
Box3D plb::MultiGridManagement3D::getBoundingBox ( plint  level  )  const
std::vector< std::vector< Box3D > > const & plb::MultiGridManagement3D::getBulks (  )  const
std::vector< Box3D > const & plb::MultiGridManagement3D::getBulks ( plint  iLevel  )  const

Retrieve the blocks for each level.

References PLB_PRECONDITION.

Referenced by plb::generateLattices(), plb::generateScalarFields(), and plb::generateTensorFields().

std::vector< std::vector< Box3D > > const & plb::MultiGridManagement3D::getCoarseInterface (  )  const

Referenced by plb::createInterfaces().

std::vector< std::vector< Box3D > > const & plb::MultiGridManagement3D::getFineInterface (  )  const
std::vector< std::vector< plint > > const & plb::MultiGridManagement3D::getMpiProcesses (  )  const

Get the Ids of the parallelized regions.

Referenced by plb::generateLattices(), plb::generateScalarFields(), and plb::generateTensorFields().

plint plb::MultiGridManagement3D::getReferenceLevel (  )  const
std::vector< std::vector< Box3D > > const & plb::MultiGridManagement3D::getUniqueBulks (  )  const
std::vector< Box3D > const & plb::MultiGridManagement3D::getUniqueBulks ( plint  iLevel  )  const

Retrieve the unique blocks for each level.

References PLB_PRECONDITION.

Referenced by plb::generateLattices(), and plb::generateScalarFields().

void plb::MultiGridManagement3D::parallelize ( std::vector< Box3D parallelRegions,
std::vector< plint > const &  regionIDs 
)

Parallelize according to the indicated domains, measured in coordinates of the finest lattice.

Referenced by parallelizeX(), parallelizeY(), and parallelizeZ().

void plb::MultiGridManagement3D::parallelizeX ( std::vector< plint > const &  finePositions  ) 

Parallelize along x-axis.

References plb::copy(), and parallelize().

void plb::MultiGridManagement3D::parallelizeY ( std::vector< plint > const &  finePositions  ) 

Parallelize along y-axis.

References plb::copy(), and parallelize().

void plb::MultiGridManagement3D::parallelizeZ ( std::vector< plint > const &  finePositions  ) 

Parallelize along z-axis.

References plb::copy(), and parallelize().

void plb::MultiGridManagement3D::refine ( plint  level,
Box3D  domain 
)
void plb::MultiGridManagement3D::swap ( MultiGridManagement3D rhs  ) 

Referenced by plb::MultiGrid3D::swap().

void plb::MultiGridManagement3D::trimDomain ( plint  whichLevel,
Box3D domain,
bool *  touches 
) const

Friends And Related Function Documentation

MultiGridManagement3D extractManagement ( MultiGridManagement3D  management,
Box3D  coarsestDomain,
bool  crop 
) [friend]

Extract a domain (in coarse coordinates) from a MultiGridManagement3D.

This is achieved by taking all the geometric information of the MultiGridManagement3D and intersecting it with the so called coarsestDomain. All the intersecting parts are kept on the new MultiGridManagement3D.


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