OpenLB 1.7
Loading...
Searching...
No Matches
Namespaces | Functions
particleContactCommunicationFunctions.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  olb
 Top level namespace for all of OpenLB.
 
namespace  olb::particles
 
namespace  olb::particles::contact
 

Functions

template<typename T , typename PARTICLECONTACTTYPE , typename WALLCONTACTTYPE >
void olb::particles::contact::communicateContacts (ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > &contactContainer)
 
template<typename T , typename PARTICLETYPE , typename PARTICLECONTACTTYPE , typename WALLCONTACTTYPE , typename F >
void olb::particles::contact::accountForPeriodicParticleBoundary (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, contact::ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > &contactContainer, const SuperGeometry< T, PARTICLETYPE::d > &sGeometry, F getSetupPeriodicity)
 update positions in contact to account for periodic boundaries
 
template<typename T , typename PARTICLETYPE , bool CONVEX>
std::unordered_set< int > olb::particles::contact::evalDestRanksForDetectionCommunication (ParticleContactArbitraryFromOverlapVolume< T, PARTICLETYPE::d, CONVEX > &contact, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T deltaX, const Vector< bool, PARTICLETYPE::d > &periodicity)
 evaluate responsible ranks for particle-particle contact
 
template<typename T , typename PARTICLETYPE , bool CONVEX>
std::unordered_set< int > olb::particles::contact::evalDestRanksForDetectionCommunication (WallContactArbitraryFromOverlapVolume< T, PARTICLETYPE::d, CONVEX > &contact, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T deltaX, const Vector< bool, PARTICLETYPE::d > &periodicity)
 evaluate responsible rank for solid boundary contact
 
template<typename T , typename PARTICLETYPE , bool CONVEX>
std::unordered_set< int > olb::particles::contact::evalDestRanksForPostContactTreatmentCommunication (ParticleContactArbitraryFromOverlapVolume< T, PARTICLETYPE::d, CONVEX > &contact, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T deltaX, const Vector< bool, PARTICLETYPE::d > &periodicity)
 evaluate ranks that touch both particles of a particle-particle contact
 
template<typename T , typename PARTICLETYPE , bool CONVEX>
std::unordered_set< int > olb::particles::contact::evalDestRanksForPostContactTreatmentCommunication (WallContactArbitraryFromOverlapVolume< T, PARTICLETYPE::d, CONVEX > &contact, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T deltaX, const Vector< bool, PARTICLETYPE::d > &periodicity)
 evaluate ranks that touch the particle of a particle-wall contact
 
template<typename T , typename PARTICLETYPE , typename CONTACTTYPE , bool CONVEX, bool SANITYCHECK = false>
void olb::particles::contact::receiveContact (ParticleContactArbitraryFromOverlapVolume< T, PARTICLETYPE::d, CONVEX > &newcontact, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, std::vector< CONTACTTYPE > &contacts, int rankOrig)
 
template<typename T , typename PARTICLETYPE , typename CONTACTTYPE , bool CONVEX, bool SANITYCHECK = false>
void olb::particles::contact::receiveContact (WallContactArbitraryFromOverlapVolume< T, PARTICLETYPE::d, CONVEX > &newcontact, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, std::vector< CONTACTTYPE > &contacts, int rankOrig)
 
template<typename T , typename PARTICLETYPE , typename CONTACTTYPE >
void olb::particles::contact::communicateParallelContacts (std::vector< CONTACTTYPE > &contacts, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T deltaX, MPI_Comm contactDetectionComm, const Vector< bool, PARTICLETYPE::d > &periodicity)
 
template<typename T , typename PARTICLETYPE , typename PARTICLECONTACTTYPE , typename WALLCONTACTTYPE >
void olb::particles::contact::communicateContactsParallel (ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > &contactContainer, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T deltaX, MPI_Comm particleContactDetectionComm, MPI_Comm wallContactDetectionComm, const Vector< bool, PARTICLETYPE::d > &periodicity)
 
template<typename T , typename PARTICLETYPE , typename CONTACTTYPE >
void olb::particles::contact::communicatePostContactTreatmentContacts (std::vector< CONTACTTYPE > &contacts, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T deltaX, MPI_Comm postContactTreatmentComm, const Vector< bool, PARTICLETYPE::d > &periodicity)
 
template<typename T , typename PARTICLETYPE , typename PARTICLECONTACTTYPE , typename WALLCONTACTTYPE >
void olb::particles::contact::communicatePostContactTreatmentContacts (ContactContainer< T, PARTICLECONTACTTYPE, WALLCONTACTTYPE > &contactContainer, SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, const T deltaX, MPI_Comm particlePostContactTreatmentComm, MPI_Comm wallPostContactTreatmentComm, const Vector< bool, PARTICLETYPE::d > &periodicity)
 It is necessary to communicate contacts so that no information is lost.
 
template<typename T , unsigned D>
int olb::particles::contact::getContactTreatmentResultsSerialSize ()
 
template<typename T , unsigned D>
void olb::particles::contact::extendContactTreatmentResultsDataMap (const std::size_t &globalParticleID, Vector< T, D > &force, Vector< T, utilities::dimensions::convert< D >::rotation > &torque, const int destRank, std::multimap< int, std::unique_ptr< std::uint8_t[]> > &dataMap)
 
template<typename T , typename PARTICLETYPE >
void olb::particles::contact::receiveContactTreatmentResults (SuperParticleSystem< T, PARTICLETYPE > &sParticleSystem, MPI_Comm contactTreatmentComm, singleton::MpiNonBlockingHelper &mpiNbHelper)
 
template<typename T , typename PARTICLETYPE >
void olb::particles::contact::communicateContactTreatmentResults (SuperParticleSystem< T, PARTICLETYPE > &particleSystem, std::multimap< int, std::unique_ptr< std::uint8_t[]> > &dataMap, MPI_Comm contactTreatmentComm)