Peano
Loading...
Searching...
No Matches
ParticleSetIterators.h File Reference
Include dependency graph for ParticleSetIterators.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  swift2
 This file is part of the SWIFT 2 project.
 
namespace  swift2::kernels
 
namespace  swift2::kernels::internal
 

Concepts

concept  swift2::kernels::ParticleUnaryOperatorOnVertex
 Definition of particle update (unary operation)
 
concept  swift2::kernels::ParticleUnaryOperatorOnCell
 
concept  swift2::kernels::ParticleBinaryOperator
 Definition of particle-particle interaction.
 

Typedefs

template<typename ParticleContainer >
using swift2::kernels::PCParticle = typename std::remove_pointer<typename ParticleContainer::value_type>::type
 

Functions

template<typename ParticleContainer >
void swift2::kernels::forAllParticles (const peano4::datamanagement::VertexMarker &marker, ParticleContainer &assignedParticles, int numberOfCoalescedAssignedParticles, ParticleUnaryOperatorOnVertex< typename ParticleContainer::DoFType > auto f, UpdateParticleAssignedToVertexPredicate< typename ParticleContainer::DoFType > predicate)
 Run over all particles and update them independent of each other.
 
template<typename ParticleContainer >
void swift2::kernels::forAllParticles (const peano4::datamanagement::CellMarker &marker, ParticleContainer &localParticles, const std::vector< int > &numberOfCoalescedLocalParticlesPerVertex, ParticleUnaryOperatorOnCell< PCParticle< ParticleContainer > > auto f, UpdateParticleAssignedToCellPredicate< PCParticle< ParticleContainer > > predicate)
 Loop over all particles within a cell.
 
template<typename LocalParticleContainer , typename ActiveParticleContainer >
void swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, LocalParticleContainer &localParticles, ActiveParticleContainer &activeParticles, ParticleBinaryOperator< PCParticle< LocalParticleContainer >, PCParticle< ActiveParticleContainer > > auto f, UpdateParticleAssignedToCellPredicate< PCParticle< LocalParticleContainer > > localParticlePredicate=::swift2::kernels::localParticleCanBeUpdatedInCellKernel< PCParticle< LocalParticleContainer > >, UpdateParticlePairWithinCellPredicate< PCParticle< LocalParticleContainer > > particlePairPredicate=::swift2::kernels::localParticleCanBeUpdatedInCellKernelFromAnyOtherParticle< PCParticle< LocalParticleContainer > >)
 Run over all local particle-active particle combinations.
 
template<int SubChunkSize, typename LocalParticle , typename ActiveParticle >
std::pair< std::bitset< SubChunkSize >, std::bitset< SubChunkSize > > swift2::kernels::internal::identifyInteractingParticles (const peano4::datamanagement::CellMarker &marker, LocalParticle *localParticle, ActiveParticle *firstActiveParticle, int thisSubchunkSize, UpdateParticlePairWithinCellPredicate< LocalParticle > particlePairPredicate)
 Identify interacting particles.
 

Variables

tarch::multicore::BooleanSemaphore swift2::kernels::internal::_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.