#include <BlockForestDomain.h>
◆ BlockForestDomain()
walberla::mesa_pd::domain::BlockForestDomain::BlockForestDomain |
( |
const std::shared_ptr< blockforest::BlockForest > & |
blockForest | ) |
|
- Postcondition
- neighborSubdomains_ is sorted by rank
◆ correctParticlePosition()
void walberla::mesa_pd::domain::BlockForestDomain::correctParticlePosition |
( |
Vec3 & |
pt | ) |
const |
|
overridevirtual |
◆ findContainingProcessRank()
int walberla::mesa_pd::domain::BlockForestDomain::findContainingProcessRank |
( |
const Vec3 & |
pt | ) |
const |
|
overridevirtual |
Find the process rank which is responsible for pt
.
- Attention
- No global information is required, just check local process and adjacent processes (periodicity!).
- Precondition
pt
will be always inside the global domain.
- Returns
- Returns the process rank or -1 if cannot be found within next neighbors.
Implements walberla::mesa_pd::domain::IDomain.
◆ getNeighborProcesses()
std::vector< uint_t > walberla::mesa_pd::domain::BlockForestDomain::getNeighborProcesses |
( |
| ) |
const |
|
overridevirtual |
◆ getNumLocalAABBs()
size_t walberla::mesa_pd::domain::BlockForestDomain::getNumLocalAABBs |
( |
| ) |
const |
|
inline |
◆ getNumNeighborProcesses()
size_t walberla::mesa_pd::domain::BlockForestDomain::getNumNeighborProcesses |
( |
| ) |
const |
|
inline |
◆ getNumNeighborSubdomains()
size_t walberla::mesa_pd::domain::BlockForestDomain::getNumNeighborSubdomains |
( |
| ) |
const |
|
inline |
◆ getUnionOfLocalAABBs()
const math::AABB& walberla::mesa_pd::domain::BlockForestDomain::getUnionOfLocalAABBs |
( |
| ) |
const |
|
inline |
◆ intersectsWithProcessSubdomain()
bool walberla::mesa_pd::domain::BlockForestDomain::intersectsWithProcessSubdomain |
( |
const uint_t |
rank, |
|
|
const Vec3 & |
pt, |
|
|
const real_t & |
radius |
|
) |
| const |
|
overridevirtual |
Does the sphere defined by pt
and radius
intersect with the subdomain of process rank
?
- Parameters
-
pt | center of the sphere |
radius | radius of the sphere |
- Returns
- If you have no information about the specified process return false.
Implements walberla::mesa_pd::domain::IDomain.
◆ isContainedInLocalSubdomain()
bool walberla::mesa_pd::domain::BlockForestDomain::isContainedInLocalSubdomain |
( |
const Vec3 & |
, |
|
|
const real_t & |
|
|
) |
| const |
|
overridevirtual |
Is the sphere located inside the local subdomain?
- Attention
- This function is used for an early out. Therefore returning true has to be correct, returning false can also be wrong.
Reimplemented from walberla::mesa_pd::domain::IDomain.
◆ isContainedInProcessSubdomain() [1/2]
bool walberla::mesa_pd::domain::BlockForestDomain::isContainedInProcessSubdomain |
( |
const uint_t |
rank, |
|
|
const Vec3 & |
pt |
|
) |
| const |
|
overridevirtual |
Is the point pt
located inside the subdomain of the process with rank rank
?
- Attention
- This function is supposed to check the local subdomain and next neighbor subdomains (periodicity). No global check is required!
- Returns
- If you have no information about the specified process return false.
Implements walberla::mesa_pd::domain::IDomain.
◆ isContainedInProcessSubdomain() [2/2]
bool walberla::mesa_pd::domain::BlockForestDomain::isContainedInProcessSubdomain |
( |
const Vec3 & |
pt, |
|
|
const real_t & |
radius |
|
) |
| const |
Is the sphere defined by pt
and radius
completely inside the local subdomain?
- Attention
- Also take into account periodicity!
- Parameters
-
pt | center of the sphere |
radius | radius of the sphere |
◆ isInsideGlobalDomain()
bool walberla::mesa_pd::domain::BlockForestDomain::isInsideGlobalDomain |
( |
const Vec3 & |
pt, |
|
|
const real_t & |
radius |
|
) |
| const |
|
private |
◆ periodicallyMapToDomain()
void walberla::mesa_pd::domain::BlockForestDomain::periodicallyMapToDomain |
( |
Vec3 & |
pt | ) |
const |
|
overridevirtual |
◆ refresh()
void walberla::mesa_pd::domain::BlockForestDomain::refresh |
( |
| ) |
|
If the BlockForest is changed this function has to be called in order to update all internal caches!
Updates the local caches for local and neighbor AABBs.
- Postcondition
- neighborSubdomains_ is sorted by rank
◆ blockForest_
◆ localAABBs_
std::vector<math::AABB> walberla::mesa_pd::domain::BlockForestDomain::localAABBs_ |
|
private |
◆ neighborProcesses_
std::vector<uint_t> walberla::mesa_pd::domain::BlockForestDomain::neighborProcesses_ |
|
private |
◆ neighborSubdomains_
std::vector<Subdomain> walberla::mesa_pd::domain::BlockForestDomain::neighborSubdomains_ |
|
private |
◆ ownRank_
int walberla::mesa_pd::domain::BlockForestDomain::ownRank_ = -1 |
|
private |
◆ periodic_
std::array< bool, 3 > walberla::mesa_pd::domain::BlockForestDomain::periodic_ |
|
private |
◆ unionOfLocalAABBs_
math::AABB walberla::mesa_pd::domain::BlockForestDomain::unionOfLocalAABBs_ |
|
private |
The documentation for this class was generated from the following files: