walberla::mesa_pd::domain::InfiniteDomain Class Reference

#include <InfiniteDomain.h>

+ Inheritance diagram for walberla::mesa_pd::domain::InfiniteDomain:

Public Member Functions

bool isContainedInProcessSubdomain (const uint_t, const Vec3 &) const override
 Is the point pt located inside the subdomain of the process with rank rank? More...
 
int findContainingProcessRank (const Vec3 &) const override
 Find the process rank which is responsible for pt. More...
 
void periodicallyMapToDomain (Vec3 &) const override
 Map the point pt periodically into the global domain. More...
 
std::vector< uint_tgetNeighborProcesses () const override
 Returns a vector of ranks from all neighboring processes. More...
 
bool intersectsWithProcessSubdomain (const uint_t rank, const Vec3 &, const real_t &) const override
 Does the sphere defined by pt and radius intersect with the subdomain of process rank? More...
 
void correctParticlePosition (Vec3 &) const override
 Correct the particle position in regard to the local subdomain. More...
 
- Public Member Functions inherited from walberla::mesa_pd::domain::IDomain
virtual ~IDomain ()=default
 
virtual bool isContainedInLocalSubdomain (const Vec3 &, const real_t &) const
 Is the sphere located inside the local subdomain? More...
 

Member Function Documentation

void walberla::mesa_pd::domain::InfiniteDomain::correctParticlePosition ( Vec3 pt) const
inlineoverridevirtual

Correct the particle position in regard to the local subdomain.

Implements walberla::mesa_pd::domain::IDomain.

int walberla::mesa_pd::domain::InfiniteDomain::findContainingProcessRank ( const Vec3 pt) const
inlineoverridevirtual

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.

std::vector<uint_t> walberla::mesa_pd::domain::InfiniteDomain::getNeighborProcesses ( ) const
inlineoverridevirtual

Returns a vector of ranks from all neighboring processes.

Implements walberla::mesa_pd::domain::IDomain.

bool walberla::mesa_pd::domain::InfiniteDomain::intersectsWithProcessSubdomain ( const uint_t  rank,
const Vec3 pt,
const real_t radius 
) const
inlineoverridevirtual

Does the sphere defined by pt and radius intersect with the subdomain of process rank?

Parameters
ptcenter of the sphere
radiusradius of the sphere
Returns
If you have no information about the specified process return false.

Implements walberla::mesa_pd::domain::IDomain.

bool walberla::mesa_pd::domain::InfiniteDomain::isContainedInProcessSubdomain ( const uint_t  rank,
const Vec3 pt 
) const
inlineoverridevirtual

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.

void walberla::mesa_pd::domain::InfiniteDomain::periodicallyMapToDomain ( Vec3 pt) const
inlineoverridevirtual

Map the point pt periodically into the global domain.

Postcondition
pt has to be located inside the global domain

Implements walberla::mesa_pd::domain::IDomain.


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