Peano
Loading...
Searching...
No Matches
exaparty::kernels::internal Namespace Reference

Functions

template<int SubChunkSize, typename LocalParticle , typename ActiveParticle >
std::pair< std::bitset< SubChunkSize >, std::bitset< SubChunkSize > > identifyInteractingParticlesFixedLocalParticle (const peano4::datamanagement::CellMarker &marker, LocalParticle *localParticle, ActiveParticle *firstActiveParticleInSubchunk, int thisSubchunkSize, UpdateParticlePairWithinCellPredicate< LocalParticle > particlePairPredicate)
 Identify interacting particles.
 
template<int SubChunkSize, typename LocalParticle , typename ActiveParticle >
std::pair< std::bitset< SubChunkSize >, std::bitset< SubChunkSize > > identifyInteractingParticlesFixedActiveParticle (const peano4::datamanagement::CellMarker &marker, LocalParticle *firstLocalParticleInSubchunk, int thisSubchunkSize, ActiveParticle *activeParticle, UpdateParticlePairWithinCellPredicate< LocalParticle > particlePairPredicate)
 Counterpart to other operations, but this time we loop over the local particle and keep the active one fixed.
 

Variables

tarch::multicore::BooleanSemaphore _multiscaleInteractionSemaphore
 If particles on multiple levels interact, we have to be very careful and ensure that multiple subcells (if mapped onto tasks) do not write to the same coarse grid particles concurrently.
 

Function Documentation

◆ identifyInteractingParticlesFixedActiveParticle()

template<int SubChunkSize, typename LocalParticle , typename ActiveParticle >
std::pair< std::bitset< SubChunkSize >, std::bitset< SubChunkSize > > exaparty::kernels::internal::identifyInteractingParticlesFixedActiveParticle ( const peano4::datamanagement::CellMarker &  marker,
LocalParticle *  firstLocalParticleInSubchunk,
int  thisSubchunkSize,
ActiveParticle *  activeParticle,
UpdateParticlePairWithinCellPredicate< LocalParticle >  particlePairPredicate 
)

Counterpart to other operations, but this time we loop over the local particle and keep the active one fixed.

◆ identifyInteractingParticlesFixedLocalParticle()

template<int SubChunkSize, typename LocalParticle , typename ActiveParticle >
std::pair< std::bitset< SubChunkSize >, std::bitset< SubChunkSize > > exaparty::kernels::internal::identifyInteractingParticlesFixedLocalParticle ( const peano4::datamanagement::CellMarker &  marker,
LocalParticle *  localParticle,
ActiveParticle *  firstActiveParticleInSubchunk,
int  thisSubchunkSize,
UpdateParticlePairWithinCellPredicate< LocalParticle >  particlePairPredicate 
)

Identify interacting particles.

In several situations, we have a continuous chunk of particles and want to identify which of these interact with each other due to the particlePairPredicate. Besides a boolset that identifies those that do interact, we also return a bitfield which identifies where we would have to identify multiscale interactions.

Variable Documentation

◆ _multiscaleInteractionSemaphore

tarch::multicore::BooleanSemaphore exaparty::kernels::internal::_multiscaleInteractionSemaphore
extern

If particles on multiple levels interact, we have to be very careful and ensure that multiple subcells (if mapped onto tasks) do not write to the same coarse grid particles concurrently.