Namespaces | |
internal | |
Classes | |
class | AlwaysInitializeBlockDataHandling |
class | BlockCounter |
Class/functor for counting the blocks stored in parallel on all processes in a structured block storage. More... | |
struct | BlockDataCreator |
class | BlockDataHandling |
class | BlockDataID |
class | BlockStorage |
Base class for block storage data structures (the entire simulation space is partitioned into blocks [see class 'IBlock'], and block storage data structures manage these blocks) More... | |
class | BlockSweepWrapper |
Takes an existing block 'sweep' functor and wrapps it into a void-void functor. More... | |
class | ConstBlockDataID |
class | IBlock |
Base class for blocks (blocks are used to partition the simulation space: blocks are rectangular parts of the simulation space that manage all the data that is assigned to their part of the simulation space) More... | |
class | IBlockID |
Interface/base class for block IDs (unique identifiers for blocks) More... | |
struct | StructuredBlockDataCreator |
class | StructuredBlockStorage |
Base class for structured block storages (the entire simulation space is partitioned into blocks [see class 'IBlock'], the blocks are partitioned into cells, and structured block storages manage those blocks) More... | |
Functions | |
std::ostream & | operator<< (std::ostream &os, const IBlockID &id) |
template<class T , typename... Args> | |
std::function< T *(const IBlock *const block) > | makeBlockDataInitFunction (Args &&... args) |
void | mapPointToPeriodicDomain (const std::array< bool, 3 > &periodic, const AABB &domain, real_t &x, real_t &y, real_t &z) |
This function can be used to transform any point in 3D space into the periodic simulation space. More... | |
void | mapPointToPeriodicDomain (const std::array< bool, 3 > &periodic, const AABB &domain, Vector3< real_t > &p) |
see documentation of 'void mapPointToPeriodicDomain( const std::array< bool, 3 > & periodic, const AABB & domain, real_t & x, real_t & y, real_t & z )' More... | |
Vector3< real_t > | mapPointToPeriodicDomain (const std::array< bool, 3 > &periodic, const AABB &domain, const Vector3< real_t > &p) |
see documentation of 'void mapPointToPeriodicDomain( const std::array< bool, 3 > & periodic, const AABB & domain, real_t & x, real_t & y, real_t & z )' More... | |
bool | periodicIntersect (const std::array< bool, 3 > &periodic, const math::AABB &domain, const math::AABB &box1, const math::AABB &box2) |
bool | periodicIntersect (const std::array< bool, 3 > &periodic, const math::AABB &domain, const math::AABB &box1, const math::AABB &box2, const real_t dx) |
real_t | periodicIntersectionVolume (const std::array< bool, 3 > &periodic, const math::AABB &domain, const math::AABB &box1, const math::AABB &box2) |
real_t | periodicIntersectionVolume (const std::array< bool, 3 > &periodic, const math::AABB &domain, const math::AABB &box1, const math::AABB &box2, const real_t dx) |
template<typename T > | |
internal::SharedSweep< T > | makeSharedSweep (const shared_ptr< T > &sweepPtr) |
void | transformGlobalToBlockLocal (CellVector &local, const StructuredBlockStorage &blockStorage, const IBlock &block, const CellVector &global) |
global cells are transformed to the block local cell space and added to vector 'local' via calling push_back ! More... | |
void | transformGlobalToBlockLocal (CellVector &cells, const StructuredBlockStorage &blockStorage, const IBlock &block) |
cells in vector 'cells' are transformed in place (from the global to the block local cell space) More... | |
void | transformBlockLocalToGlobal (CellVector &global, const StructuredBlockStorage &blockStorage, const IBlock &block, const CellVector &local) |
block local cells are transformed to the global cell space and added to vector 'global' via calling push_back ! More... | |
void | transformBlockLocalToGlobal (CellVector &cells, const StructuredBlockStorage &blockStorage, const IBlock &block) |
cells in vector 'cells' are transformed in place (from the block local to the global cell space) More... | |
void | transformGlobalToBlockLocal (CellSet &local, const StructuredBlockStorage &blockStorage, const IBlock &block, const CellSet &global) |
global cells are transformed to the block local cell space and added to set 'local' via calling insert ! [-> O(N*logN)] More... | |
void | transformGlobalToBlockLocal (CellSet &cells, const StructuredBlockStorage &blockStorage, const IBlock &block) |
cells in set 'cells' are transformed in place (from the global to the block local cell space) [cells are possibly reordered -> O(N*logN)] More... | |
void | transformBlockLocalToGlobal (CellSet &global, const StructuredBlockStorage &blockStorage, const IBlock &block, const CellSet &local) |
block local cells are transformed to the global cell space and added to set 'global' via calling insert ! [-> O(N*logN)] More... | |
void | transformBlockLocalToGlobal (CellSet &cells, const StructuredBlockStorage &blockStorage, const IBlock &block) |
cells in set 'cells' are transformed in place (from the block local to the global cell space) [cells are possibly reordered -> O(N*logN)] More... | |
std::function< T* ( const IBlock* const block ) > walberla::domain_decomposition::makeBlockDataInitFunction | ( | Args &&... | args | ) |
internal::SharedSweep<T> walberla::domain_decomposition::makeSharedSweep | ( | const shared_ptr< T > & | sweepPtr | ) |
void walberla::domain_decomposition::mapPointToPeriodicDomain | ( | const std::array< bool, 3 > & | periodic, |
const AABB & | domain, | ||
real_t & | x, | ||
real_t & | y, | ||
real_t & | z | ||
) |
This function can be used to transform any point in 3D space into the periodic simulation space.
For example, if the simulation is periodic in x direction and the simulation domain spans from x = 0 to x = 10, then a point located at x = 38 is mapped to x = 8, and a point located at x = -13 is mapped to x = 7. The min points of the domain are included in the simulation space, the max points are excluded!
|
inline |
bool walberla::domain_decomposition::periodicIntersect | ( | const std::array< bool, 3 > & | periodic, |
const math::AABB & | domain, | ||
const math::AABB & | box1, | ||
const math::AABB & | box2 | ||
) |
bool walberla::domain_decomposition::periodicIntersect | ( | const std::array< bool, 3 > & | periodic, |
const math::AABB & | domain, | ||
const math::AABB & | box1, | ||
const math::AABB & | box2, | ||
const real_t | dx | ||
) |
real_t walberla::domain_decomposition::periodicIntersectionVolume | ( | const std::array< bool, 3 > & | periodic, |
const math::AABB & | domain, | ||
const math::AABB & | box1, | ||
const math::AABB & | box2 | ||
) |
real_t walberla::domain_decomposition::periodicIntersectionVolume | ( | const std::array< bool, 3 > & | periodic, |
const math::AABB & | domain, | ||
const math::AABB & | box1, | ||
const math::AABB & | box2, | ||
const real_t | dx | ||
) |
|
inline |
cells in set 'cells' are transformed in place (from the block local to the global cell space) [cells are possibly reordered -> O(N*logN)]
|
inline |
block local cells are transformed to the global cell space and added to set 'global' via calling insert ! [-> O(N*logN)]
|
inline |
cells in vector 'cells' are transformed in place (from the block local to the global cell space)
|
inline |
block local cells are transformed to the global cell space and added to vector 'global' via calling push_back !
|
inline |
cells in set 'cells' are transformed in place (from the global to the block local cell space) [cells are possibly reordered -> O(N*logN)]
|
inline |
global cells are transformed to the block local cell space and added to set 'local' via calling insert ! [-> O(N*logN)]
|
inline |
cells in vector 'cells' are transformed in place (from the global to the block local cell space)
|
inline |
global cells are transformed to the block local cell space and added to vector 'local' via calling push_back !