OpenLB 1.7
|
Classes | |
struct | ParticleCommunicator |
Functions | |
template<typename T , typename PARTICLECONTACTTYPE , typename WALLCONTACTTYPE > | |
std::unordered_set< int > | evalDestRanks (contact::ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > &contactContainer, const std::size_t globalParticleID) |
evaluates ranks that need the new particle data | |
template<typename T , typename PARTICLETYPE > | |
void | communicateEquationsOfMotionResultsIntra (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const std::size_t &pID, const Vector< T, PARTICLETYPE::d > &position, const Vector< T, PARTICLETYPE::d > &velocity, const Vector< T, utilities::dimensions::convert< PARTICLETYPE::d >::rotation > &angle, const Vector< T, utilities::dimensions::convert< PARTICLETYPE::d >::rotation > &angVelocity) |
template<typename T , typename PARTICLETYPE , typename PARTICLECONTACTTYPE , typename WALLCONTACTTYPE > | |
std::size_t | evalEquationsOfMotionResults (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, contact::ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > &contactContainer, std::multimap< int, std::unique_ptr< std::uint8_t[]> > &dataMap) |
template<typename T , typename PARTICLETYPE > | |
void | receiveEquationsOfMotionResults (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, MPI_Comm equationsOfMotionComm, singleton::MpiNonBlockingHelper &mpiNbHelper) |
template<typename T , typename PARTICLETYPE , typename PARTICLECONTACTTYPE , typename WALLCONTACTTYPE > | |
void | communicateEquationsOfMotionResults (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, contact::ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > &contactContainer, MPI_Comm equationsOfMotionComm) |
template<typename T , typename PARTICLETYPE > | |
void | updateSurfacePtr (ParticleSystem< T, PARTICLETYPE > &particleSystem, std::size_t iP) |
template<typename T , typename PARTICLETYPE > | |
std::size_t | appendSerializedParticle (ParticleSystem< T, PARTICLETYPE > &particleSystem, std::uint8_t rawBuffer[]) |
template<typename T , typename PARTICLETYPE > | |
std::size_t | insertSerializedParticle (ParticleSystem< T, PARTICLETYPE > &particleSystem, std::size_t idxParticle, std::uint8_t rawBuffer[]) |
template<typename T , typename PARTICLETYPE > | |
std::size_t | attachSerializedParticle (ParticleSystem< T, PARTICLETYPE > &particleSystem, std::uint8_t *rawBuffer) |
template<typename T , typename PARTICLETYPE > | |
void | prepareRelocation (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, Particle< T, PARTICLETYPE > &particle, int globiC, int globiCdest, std::multimap< int, std::unique_ptr< std::uint8_t[]> > &rankDataMapRelocationInter, std::vector< std::unique_ptr< std::uint8_t[]> > &dataListRelocationIntra, std::size_t serialSize) |
template<typename T , typename PARTICLETYPE > | |
void | checkSurfaceRelocation (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T physDeltaX, Particle< T, PARTICLETYPE > &particle, int globiC, std::multimap< int, std::unique_ptr< std::uint8_t[]> > &rankDataMapRelocationInter, std::vector< std::unique_ptr< std::uint8_t[]> > &dataListRelocationIntra, std::size_t serialSize, const Vector< bool, PARTICLETYPE::d > &periodicity) |
template<typename T , typename PARTICLETYPE > | |
void | checkRelocation (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T physDeltaX, std::multimap< int, std::unique_ptr< std::uint8_t[]> > &rankDataMapRelocationInter, std::vector< std::unique_ptr< std::uint8_t[]> > &dataListRelocationIntra, std::size_t serialSize, const Vector< bool, PARTICLETYPE::d > &periodicity) |
void | fillSendBuffer (std::multimap< int, std::unique_ptr< std::uint8_t[]> > &rankDataMap, std::map< int, std::vector< std::uint8_t > > &rankDataMapSorted, std::size_t serialSize) |
void | sendMappedData (std::map< int, std::vector< std::uint8_t > > &rankDataMapSorted, const std::unordered_set< int > &availableRanks, const std::size_t serialSize, MPI_Comm Comm, singleton::MpiNonBlockingHelper &mpiNbHelper) |
template<typename T , typename PARTICLETYPE > | |
void | checkInvalidationOnReceival (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, std::vector< std::vector< std::size_t > > &receivedLocalIDs, const Vector< bool, PARTICLETYPE::d > &periodicity) |
template<typename T , typename PARTICLETYPE > | |
void | assignParticleToIC (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, std::vector< std::vector< std::size_t > > &receivedLocalIDs, int rankOrig, std::uint8_t *rawBuffer) |
template<typename F > | |
void | receiveAndExecuteForData (const std::unordered_set< int > &availableRanks, std::size_t serialSize, MPI_Comm Comm, singleton::MpiNonBlockingHelper &mpiNbHelper, F f) |
template<typename T , typename PARTICLETYPE > | |
void | receiveParticles (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, std::vector< std::unique_ptr< std::uint8_t[]> > &dataListRelocationIntra, std::size_t serialSize, MPI_Comm particleDistributionComm, singleton::MpiNonBlockingHelper &mpiNbHelper, const Vector< bool, PARTICLETYPE::d > &periodicity) |
template<typename T , typename PARTICLETYPE > | |
void | updateParticleCuboidDistribution (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T physDeltaX, MPI_Comm particleDistributionComm, const Vector< bool, PARTICLETYPE::d > &periodicity) |
template<typename DATA > | |
void | collectDataAndAppendVector (std::vector< DATA > &dataVector, std::unordered_set< int > &availableRanks, singleton::MpiNonBlockingHelper &mpiNbHelper, MPI_Comm commGroup=MPI_COMM_WORLD) |
template<typename T , typename PARTICLETYPE , unsigned forceDataSize> | |
void | communicateSurfaceForce (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, std::map< std::size_t, Vector< T, forceDataSize > > &globalIdDataMap, MPI_Comm surfaceForceComm) |
template<typename T , typename PARTICLETYPE , unsigned forceDataSize> | |
void | assignSurfaceForce (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, std::map< std::size_t, Vector< T, forceDataSize > > &globalIdDataMap) |
template<typename T , unsigned D, bool verbose = false> | |
std::vector< int > | getNeighborCuboids (CuboidGeometry< T, D > &cuboidGeometry, unsigned offset, int globiC) |
Get neighbour cuboids. | |
template<typename T , unsigned D, bool verbose = false> | |
std::unordered_set< int > | getNeighbourRanksFromCuboidNeighbourhood (SuperStructure< T, D > &superStructure, int rank, std::map< int, std::vector< int > > neighbourhood) |
Get neighbour ranks. | |
template<typename T , unsigned D, bool verbose = false> | |
std::unordered_set< int > | getNeighbourRanksFromCuboidNeighbourhood (SuperStructure< T, D > &superStructure, int rank, const std::vector< std::unordered_set< int > > &neighbourhood) |
Get neighbour ranks. | |
template<typename T , unsigned D, bool verbose = false> | |
std::unordered_set< int > | getNeighbourRanksFromCuboidNeighbourhood (SuperStructure< T, D > &superStructure, const std::vector< std::unordered_set< int > > &neighbourhood) |
Get neighbour ranks. | |
template<typename T , unsigned D, bool verbose = false> | |
std::unordered_set< int > | getNeighbourRanks (SuperStructure< T, D > &superStructure, unsigned offset, int rank) |
Get neighbour ranks. | |
template<typename T , unsigned D, bool verbose = false> | |
std::unordered_set< int > | getNeighbourRanks (SuperStructure< T, D > &superStructure, unsigned offset) |
Get neighbour ranks. | |
template<typename T , typename PARTICLETYPE > | |
std::size_t | serializeIcDest (int globiCdest, std::uint8_t *bufferiCandParticle) |
template<typename T , typename PARTICLETYPE > | |
void | serializeIcDestAndParticle (int globiCdest, Particle< T, PARTICLETYPE > &particle, std::uint8_t *bufferiCandParticle) |
template<typename T , typename PARTICLETYPE > | |
std::size_t | deserializeIcDest (int &globiCdest, std::uint8_t *bufferRaw) |
template<typename T , typename PARTICLETYPE > | |
void | deserializeIcDestAndParticle (int &globiCdest, Particle< T, PARTICLETYPE > &particle, std::uint8_t *bufferiCandParticle) |
template<typename T , typename PARTICLETYPE > | |
void | checkCuboidSizes (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem) |
template<typename T > | |
T | movePositionToStart (const T position, const T max, const T min) |
template<typename T > | |
T | movePositionToEnd (const T position, const T max, const T min) |
template<typename T > | |
T | applyPeriodicityToPosition (const bool isPeriodic, T position, const T max, const T min) |
template<typename T , unsigned D> | |
Vector< T, D > | getCuboidMin (const CuboidGeometry< T, D > &cuboidGeometry) |
Returns minimal coordinate of domain for periodic particle boundaries. | |
template<typename T , unsigned D> | |
Vector< T, D > | getCuboidMax (const CuboidGeometry< T, D > &cuboidGeometry, const PhysR< T, D > &min) |
Returns maximal coordinate of domain for periodic particle boundaries. | |
template<typename T , unsigned D> | |
Vector< T, D > | applyPeriodicityToPosition (const CuboidGeometry< T, D > &cuboidGeometry, const Vector< bool, D > &periodicity, PhysR< T, D > position) |
Updates a position if out of bounds and periodic setup is used. | |
template<typename T , unsigned D> | |
bool | getCuboid (const CuboidGeometry< T, D > &cuboidGeometry, const Vector< bool, D > &periodicity, const PhysR< T, D > &position, int &iC) |
Function returns true if cuboid was found and gives iC. | |
template<typename T , typename PARTICLETYPE , typename F > | |
void | forSystemsInSuperParticleSystem (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, F f) |
template<typename T , typename PARTICLETYPE , typename PCONDITION = conditions::valid_particles, typename F > | |
void | forParticlesInSuperParticleSystem (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, F f) |
template<typename T , typename PARTICLETYPE , typename F > | |
void | doForParticle (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, ParallelParticleLocator &locator, F f) |
template<typename T , typename PARTICLETYPE , typename PCONDITION = conditions::valid_particle_centres, bool sync = true> | |
bool | searchParticleGlobally (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, std::size_t globalIDrequested, std::size_t &localParticleID, int &globiC) |
Search particle in SuperParticleSystem by globalParticleID and return globiC if found. | |
template<typename T , unsigned D, typename F = std::function<void(int)>, bool domainWarning = false, bool checkDiscretePoints = false> | |
std::unordered_set< int > | getSurfaceTouchingICs (CuboidGeometry< T, D > &cuboidGeometry, Vector< T, D > position, T circumRadius, const Vector< bool, D > &periodicity, int globiC, F f=[](int){}) |
Get a set of surface touching iCs (that are not globiC) Allows to run an optional function per unique globiC. | |
template<typename T , typename PARTICLETYPE , typename F = std::function<void(int)>> | |
std::unordered_set< int > | getSurfaceTouchingICs (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, Vector< T, PARTICLETYPE::d > position, T circumRadius, const Vector< bool, PARTICLETYPE::d > &periodicity, int globiC, F f=[](int){}) |
template<typename T , unsigned D, typename F = std::function<void(int)>, bool domainWarning = false> | |
std::vector< int > | getVectorOfSurfaceTouchingICs (CuboidGeometry< T, D > &cuboidGeometry, Vector< T, D > position, T circumRadius, const Vector< bool, D > &periodicity, int globiC, F f=[](int){}) |
std::size_t olb::particles::communication::appendSerializedParticle | ( | ParticleSystem< T, PARTICLETYPE > & | particleSystem, |
std::uint8_t | rawBuffer[] ) |
Definition at line 63 of file relocation.h.
References deserializeIcDestAndParticle(), olb::particles::ParticleSystem< T, PARTICLETYPE >::get(), olb::particles::ParticleSystem< T, PARTICLETYPE >::size(), and updateSurfacePtr().
T olb::particles::communication::applyPeriodicityToPosition | ( | const bool | isPeriodic, |
T | position, | ||
const T | max, | ||
const T | min ) |
Definition at line 266 of file utilities.h.
References olb::particles::isPeriodic(), movePositionToEnd(), and movePositionToStart().
Vector< T, D > olb::particles::communication::applyPeriodicityToPosition | ( | const CuboidGeometry< T, D > & | cuboidGeometry, |
const Vector< bool, D > & | periodicity, | ||
PhysR< T, D > | position ) |
Updates a position if out of bounds and periodic setup is used.
Definition at line 302 of file utilities.h.
References applyPeriodicityToPosition().
void olb::particles::communication::assignParticleToIC | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
std::vector< std::vector< std::size_t > > & | receivedLocalIDs, | ||
int | rankOrig, | ||
std::uint8_t * | rawBuffer ) |
Definition at line 517 of file relocation.h.
References attachSerializedParticle(), forSystemsInSuperParticleSystem(), olb::particles::ParticleSystem< T, PARTICLETYPE >::get(), olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
void olb::particles::communication::assignSurfaceForce | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
std::map< std::size_t, Vector< T, forceDataSize > > & | globalIdDataMap ) |
Definition at line 185 of file surfaceForce.h.
References forSystemsInSuperParticleSystem(), olb::particles::ParticleSystem< T, PARTICLETYPE >::get(), olb::singleton::MpiManager::getRank(), olb::singleton::mpi(), olb::particles::ParticleSystem< T, PARTICLETYPE >::size(), and olb::particles::conditions::valid_particle_centres::value().
std::size_t olb::particles::communication::attachSerializedParticle | ( | ParticleSystem< T, PARTICLETYPE > & | particleSystem, |
std::uint8_t * | rawBuffer ) |
Definition at line 128 of file relocation.h.
References appendSerializedParticle(), deserializeIcDestAndParticle(), olb::particles::ParticleSystem< T, PARTICLETYPE >::get(), insertSerializedParticle(), and olb::particles::ParticleSystem< T, PARTICLETYPE >::size().
void olb::particles::communication::checkCuboidSizes | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem | ) |
Definition at line 213 of file utilities.h.
References olb::particles::contact::evalCircumRadius(), forParticlesInSuperParticleSystem(), olb::SuperStructure< T, D >::getCuboidGeometry(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure(), olb::util::max(), olb::util::min(), olb::singleton::mpi(), OLB_ASSERT, and olb::singleton::MpiManager::reduceAndBcast().
void olb::particles::communication::checkInvalidationOnReceival | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
std::vector< std::vector< std::size_t > > & | receivedLocalIDs, | ||
const Vector< bool, PARTICLETYPE::d > & | periodicity ) |
Definition at line 442 of file relocation.h.
References olb::particles::Particle< T, PARTICLETYPE >::getId(), olb::SuperStructure< T, D >::getLoadBalancer(), olb::singleton::MpiManager::getRank(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure(), and olb::singleton::mpi().
void olb::particles::communication::checkRelocation | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
const T | physDeltaX, | ||
std::multimap< int, std::unique_ptr< std::uint8_t[]> > & | rankDataMapRelocationInter, | ||
std::vector< std::unique_ptr< std::uint8_t[]> > & | dataListRelocationIntra, | ||
std::size_t | serialSize, | ||
const Vector< bool, PARTICLETYPE::d > & | periodicity ) |
Definition at line 252 of file relocation.h.
References applyPeriodicityToPosition(), checkSurfaceRelocation(), forParticlesInSuperParticleSystem(), olb::SuperStructure< T, D >::getCuboidGeometry(), olb::singleton::MpiManager::getRank(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure(), olb::singleton::mpi(), and prepareRelocation().
void olb::particles::communication::checkSurfaceRelocation | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
const T | physDeltaX, | ||
Particle< T, PARTICLETYPE > & | particle, | ||
int | globiC, | ||
std::multimap< int, std::unique_ptr< std::uint8_t[]> > & | rankDataMapRelocationInter, | ||
std::vector< std::unique_ptr< std::uint8_t[]> > & | dataListRelocationIntra, | ||
std::size_t | serialSize, | ||
const Vector< bool, PARTICLETYPE::d > & | periodicity ) |
Definition at line 225 of file relocation.h.
References olb::particles::contact::evalCircumRadius(), olb::particles::access::getPosition(), getSurfaceTouchingICs(), and prepareRelocation().
void olb::particles::communication::collectDataAndAppendVector | ( | std::vector< DATA > & | dataVector, |
std::unordered_set< int > & | availableRanks, | ||
singleton::MpiNonBlockingHelper & | mpiNbHelper, | ||
MPI_Comm | commGroup = MPI_COMM_WORLD ) |
Definition at line 734 of file relocation.h.
References receiveAndExecuteForData().
void olb::particles::communication::communicateEquationsOfMotionResults | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
contact::ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > & | contactContainer, | ||
MPI_Comm | equationsOfMotionComm ) |
Definition at line 304 of file equationsOfMotionResults.h.
References evalEquationsOfMotionResults(), fillSendBuffer(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getNeighbourRanks(), receiveEquationsOfMotionResults(), and sendMappedData().
void olb::particles::communication::communicateEquationsOfMotionResultsIntra | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
const std::size_t & | pID, | ||
const Vector< T, PARTICLETYPE::d > & | position, | ||
const Vector< T, PARTICLETYPE::d > & | velocity, | ||
const Vector< T, utilities::dimensions::convert< PARTICLETYPE::d >::rotation > & | angle, | ||
const Vector< T, utilities::dimensions::convert< PARTICLETYPE::d >::rotation > & | angVelocity ) |
Definition at line 71 of file equationsOfMotionResults.h.
References forParticlesInSuperParticleSystem().
void olb::particles::communication::communicateSurfaceForce | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
std::map< std::size_t, Vector< T, forceDataSize > > & | globalIdDataMap, | ||
MPI_Comm | surfaceForceComm ) |
Definition at line 43 of file surfaceForce.h.
References fillSendBuffer(), forParticlesInSuperParticleSystem(), olb::FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD >::getField(), olb::SuperStructure< T, D >::getLoadBalancer(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getNeighbourRanks(), olb::singleton::MpiManager::getRank(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure(), olb::singleton::mpi(), receiveAndExecuteForData(), sendMappedData(), and olb::FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD >::setField().
std::size_t olb::particles::communication::deserializeIcDest | ( | int & | globiCdest, |
std::uint8_t * | bufferRaw ) |
Definition at line 179 of file utilities.h.
References olb::FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD >::getField().
void olb::particles::communication::deserializeIcDestAndParticle | ( | int & | globiCdest, |
Particle< T, PARTICLETYPE > & | particle, | ||
std::uint8_t * | bufferiCandParticle ) |
Definition at line 195 of file utilities.h.
References olb::particles::Particle< T, PARTICLETYPE >::deserialize().
void olb::particles::communication::doForParticle | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
ParallelParticleLocator & | locator, | ||
F | f ) |
Definition at line 198 of file lambdaLoops.h.
References doForParticle(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getBlockParticleSystems(), olb::SuperStructure< T, D >::getLoadBalancer(), olb::singleton::MpiManager::getRank(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure(), olb::particles::ParallelParticleLocator::globiC, olb::particles::ParallelParticleLocator::localID, and olb::singleton::mpi().
std::unordered_set< int > olb::particles::communication::evalDestRanks | ( | contact::ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > & | contactContainer, |
const std::size_t | globalParticleID ) |
evaluates ranks that need the new particle data
contact.isEmpty() &&
contact.isEmpty() &&
Definition at line 44 of file equationsOfMotionResults.h.
std::size_t olb::particles::communication::evalEquationsOfMotionResults | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
contact::ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > & | contactContainer, | ||
std::multimap< int, std::unique_ptr< std::uint8_t[]> > & | dataMap ) |
Definition at line 106 of file equationsOfMotionResults.h.
References communicateEquationsOfMotionResultsIntra(), evalDestRanks(), forParticlesInSuperParticleSystem(), olb::particles::access::getAngle(), olb::particles::access::getAngularVelocity(), olb::FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD >::getField(), olb::particles::access::getPosition(), olb::singleton::MpiManager::getRank(), olb::particles::access::getVelocity(), olb::singleton::mpi(), and olb::FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD >::setField().
void olb::particles::communication::fillSendBuffer | ( | std::multimap< int, std::unique_ptr< std::uint8_t[]> > & | rankDataMap, |
std::map< int, std::vector< std::uint8_t > > & | rankDataMapSorted, | ||
std::size_t | serialSize ) |
Definition at line 387 of file relocation.h.
void olb::particles::communication::forParticlesInSuperParticleSystem | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
F | f ) |
Definition at line 173 of file lambdaLoops.h.
References forSystemsInSuperParticleSystem().
void olb::particles::communication::forSystemsInSuperParticleSystem | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
F | f ) |
Definition at line 154 of file lambdaLoops.h.
References olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getBlockParticleSystems(), olb::SuperStructure< T, D >::getLoadBalancer(), and olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure().
bool olb::particles::communication::getCuboid | ( | const CuboidGeometry< T, D > & | cuboidGeometry, |
const Vector< bool, D > & | periodicity, | ||
const PhysR< T, D > & | position, | ||
int & | iC ) |
Function returns true if cuboid was found and gives iC.
Definition at line 320 of file utilities.h.
References applyPeriodicityToPosition().
Vector< T, D > olb::particles::communication::getCuboidMax | ( | const CuboidGeometry< T, D > & | cuboidGeometry, |
const PhysR< T, D > & | min ) |
Returns maximal coordinate of domain for periodic particle boundaries.
Definition at line 293 of file utilities.h.
Vector< T, D > olb::particles::communication::getCuboidMin | ( | const CuboidGeometry< T, D > & | cuboidGeometry | ) |
Returns minimal coordinate of domain for periodic particle boundaries.
Definition at line 284 of file utilities.h.
std::vector< int > olb::particles::communication::getNeighborCuboids | ( | CuboidGeometry< T, D > & | cuboidGeometry, |
unsigned | offset, | ||
int | globiC ) |
Get neighbour cuboids.
Definition at line 39 of file utilities.h.
std::unordered_set< int > olb::particles::communication::getNeighbourRanks | ( | SuperStructure< T, D > & | superStructure, |
unsigned | offset ) |
Get neighbour ranks.
Definition at line 141 of file utilities.h.
References olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
std::unordered_set< int > olb::particles::communication::getNeighbourRanks | ( | SuperStructure< T, D > & | superStructure, |
unsigned | offset, | ||
int | rank ) |
Get neighbour ranks.
HOTFIX VERSION (according to #319)
Definition at line 113 of file utilities.h.
References olb::checkCuboidNeighbourhoodConsistency(), olb::evaluateCuboidGeometryNeighbourhood(), olb::SuperStructure< T, D >::getCuboidGeometry(), and olb::SuperStructure< T, D >::getLoadBalancer().
std::unordered_set< int > olb::particles::communication::getNeighbourRanksFromCuboidNeighbourhood | ( | SuperStructure< T, D > & | superStructure, |
const std::vector< std::unordered_set< int > > & | neighbourhood ) |
Get neighbour ranks.
Definition at line 102 of file utilities.h.
References olb::singleton::MpiManager::getRank(), and olb::singleton::mpi().
std::unordered_set< int > olb::particles::communication::getNeighbourRanksFromCuboidNeighbourhood | ( | SuperStructure< T, D > & | superStructure, |
int | rank, | ||
const std::vector< std::unordered_set< int > > & | neighbourhood ) |
Get neighbour ranks.
Definition at line 84 of file utilities.h.
std::unordered_set< int > olb::particles::communication::getNeighbourRanksFromCuboidNeighbourhood | ( | SuperStructure< T, D > & | superStructure, |
int | rank, | ||
std::map< int, std::vector< int > > | neighbourhood ) |
Get neighbour ranks.
Definition at line 55 of file utilities.h.
References olb::SuperStructure< T, D >::getLoadBalancer().
std::unordered_set< int > olb::particles::communication::getSurfaceTouchingICs | ( | CuboidGeometry< T, D > & | cuboidGeometry, |
Vector< T, D > | position, | ||
T | circumRadius, | ||
const Vector< bool, D > & | periodicity, | ||
int | globiC, | ||
F | f = [](int){} ) |
Get a set of surface touching iCs (that are not globiC) Allows to run an optional function per unique globiC.
Definition at line 299 of file particleUtilities.h.
References getSurfaceTouchingICs().
std::unordered_set< int > olb::particles::communication::getSurfaceTouchingICs | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
Vector< T, PARTICLETYPE::d > | position, | ||
T | circumRadius, | ||
const Vector< bool, PARTICLETYPE::d > & | periodicity, | ||
int | globiC, | ||
F | f = [](int){} ) |
Definition at line 350 of file particleUtilities.h.
References getSurfaceTouchingICs().
std::vector< int > olb::particles::communication::getVectorOfSurfaceTouchingICs | ( | CuboidGeometry< T, D > & | cuboidGeometry, |
Vector< T, D > | position, | ||
T | circumRadius, | ||
const Vector< bool, D > & | periodicity, | ||
int | globiC, | ||
F | f = [](int){} ) |
Definition at line 367 of file particleUtilities.h.
References getVectorOfSurfaceTouchingICs().
std::size_t olb::particles::communication::insertSerializedParticle | ( | ParticleSystem< T, PARTICLETYPE > & | particleSystem, |
std::size_t | idxParticle, | ||
std::uint8_t | rawBuffer[] ) |
Definition at line 85 of file relocation.h.
References deserializeIcDestAndParticle(), olb::particles::ParticleSystem< T, PARTICLETYPE >::get(), olb::singleton::MpiManager::getRank(), olb::singleton::mpi(), and updateSurfacePtr().
T olb::particles::communication::movePositionToEnd | ( | const T | position, |
const T | max, | ||
const T | min ) |
Definition at line 260 of file utilities.h.
T olb::particles::communication::movePositionToStart | ( | const T | position, |
const T | max, | ||
const T | min ) |
Definition at line 254 of file utilities.h.
void olb::particles::communication::prepareRelocation | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
Particle< T, PARTICLETYPE > & | particle, | ||
int | globiC, | ||
int | globiCdest, | ||
std::multimap< int, std::unique_ptr< std::uint8_t[]> > & | rankDataMapRelocationInter, | ||
std::vector< std::unique_ptr< std::uint8_t[]> > & | dataListRelocationIntra, | ||
std::size_t | serialSize ) |
Definition at line 182 of file relocation.h.
References olb::SuperStructure< T, D >::getLoadBalancer(), olb::singleton::MpiManager::getRank(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure(), olb::singleton::mpi(), and serializeIcDestAndParticle().
void olb::particles::communication::receiveAndExecuteForData | ( | const std::unordered_set< int > & | availableRanks, |
std::size_t | serialSize, | ||
MPI_Comm | Comm, | ||
singleton::MpiNonBlockingHelper & | mpiNbHelper, | ||
F | f ) |
Definition at line 572 of file relocation.h.
References olb::singleton::MpiNonBlockingHelper::free(), olb::singleton::MpiManager::getRank(), olb::singleton::mpi(), olb::singleton::MpiManager::probeReceiveSize(), olb::singleton::MpiManager::receive(), and olb::singleton::MpiManager::waitAll().
void olb::particles::communication::receiveEquationsOfMotionResults | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
MPI_Comm | equationsOfMotionComm, | ||
singleton::MpiNonBlockingHelper & | mpiNbHelper ) |
Definition at line 217 of file equationsOfMotionResults.h.
References forParticlesInSuperParticleSystem(), olb::FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD >::getField(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getNeighbourRanks(), and receiveAndExecuteForData().
void olb::particles::communication::receiveParticles | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
std::vector< std::unique_ptr< std::uint8_t[]> > & | dataListRelocationIntra, | ||
std::size_t | serialSize, | ||
MPI_Comm | particleDistributionComm, | ||
singleton::MpiNonBlockingHelper & | mpiNbHelper, | ||
const Vector< bool, PARTICLETYPE::d > & | periodicity ) |
Definition at line 621 of file relocation.h.
References assignParticleToIC(), checkInvalidationOnReceival(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getExtendedNeighbourRanks(), olb::SuperStructure< T, D >::getLoadBalancer(), olb::singleton::MpiManager::getRank(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure(), olb::singleton::mpi(), and receiveAndExecuteForData().
bool olb::particles::communication::searchParticleGlobally | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
std::size_t | globalIDrequested, | ||
std::size_t & | localParticleID, | ||
int & | globiC ) |
Search particle in SuperParticleSystem by globalParticleID and return globiC if found.
Definition at line 240 of file particleUtilities.h.
References olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getBlockParticleSystems(), olb::particles::Particle< T, PARTICLETYPE >::getId(), olb::SuperStructure< T, D >::getLoadBalancer(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSuperStructure(), and searchParticleGlobally().
void olb::particles::communication::sendMappedData | ( | std::map< int, std::vector< std::uint8_t > > & | rankDataMapSorted, |
const std::unordered_set< int > & | availableRanks, | ||
const std::size_t | serialSize, | ||
MPI_Comm | Comm, | ||
singleton::MpiNonBlockingHelper & | mpiNbHelper ) |
Definition at line 408 of file relocation.h.
References olb::singleton::MpiNonBlockingHelper::allocate(), olb::singleton::MpiNonBlockingHelper::get_mpiRequest(), olb::singleton::MpiManager::iSend(), and olb::singleton::mpi().
std::size_t olb::particles::communication::serializeIcDest | ( | int | globiCdest, |
std::uint8_t * | bufferiCandParticle ) |
Definition at line 151 of file utilities.h.
References olb::FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD >::setField().
void olb::particles::communication::serializeIcDestAndParticle | ( | int | globiCdest, |
Particle< T, PARTICLETYPE > & | particle, | ||
std::uint8_t * | bufferiCandParticle ) |
Definition at line 166 of file utilities.h.
References olb::particles::Particle< T, PARTICLETYPE >::serialize().
void olb::particles::communication::updateParticleCuboidDistribution | ( | SuperParticleSystem< T, PARTICLETYPE > & | sParticleSystem, |
const T | physDeltaX, | ||
MPI_Comm | particleDistributionComm, | ||
const Vector< bool, PARTICLETYPE::d > & | periodicity ) |
Definition at line 667 of file relocation.h.
References checkRelocation(), fillSendBuffer(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getExtendedNeighbourRanks(), olb::particles::SuperParticleSystem< T, PARTICLETYPE >::getSerialSize(), receiveParticles(), and sendMappedData().
void olb::particles::communication::updateSurfacePtr | ( | ParticleSystem< T, PARTICLETYPE > & | particleSystem, |
std::size_t | iP ) |
Definition at line 42 of file relocation.h.
References olb::particles::ParticleSystem< T, PARTICLETYPE >::get().