|
| template<auto ParticleOp, auto PredicateOp> |
| void | swift2::kernels::forAllParticles (const peano4::datamanagement::VertexMarker &marker, auto &assignedParticles, int numberOfCoalescedAssignedParticles, ::swift2::kernels::kernelrealisation::GenericRealisation realisation) |
| | Run over all particles and update them independent of each other.
|
| |
| template<auto ParticleOp, auto PredicateOp> |
| void | swift2::kernels::forAllParticles (const peano4::datamanagement::VertexMarker &marker, auto &assignedParticles, int numberOfCoalescedAssignedParticles, ::swift2::kernels::kernelrealisation::GenericOffloadRealisation) |
| | Exactly the same version as the generic variant, but we use the offload attribute.
|
| |
| template<auto PairOperator, auto LocalPredicate, auto PairPredicate> |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::GenericRealisation realisation) |
| | Run over all local particle-active particle combinations.
|
| |
| template<auto PairOperator, auto LocalPredicate, auto PairPredicate> |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::GenericOffloadRealisation) |
| | Exactly the same version as the generic variant, but with an additional offload annotation.
|
| |
| template<auto ParticleOp, auto PredicateOp> |
| void | swift2::kernels::forAllParticles (const peano4::datamanagement::VertexMarker &marker, auto &assignedParticles, int numberOfAssignedParticles, ::swift2::kernels::kernelrealisation::CoalescedMemoryRealisation realisation) |
| |
| template<auto ParticleOp, auto PredicateOp> |
| void | swift2::kernels::forAllParticles (const peano4::datamanagement::CellMarker &marker, auto &localParticles, const std::vector< int > &numberOfLocalParticles, ::swift2::kernels::kernelrealisation::CoalescedMemoryRealisation realisation) |
| |
| template<auto ParticleOp, auto PredicateOp> |
| void | swift2::kernels::forAllParticles (const peano4::datamanagement::VertexMarker &marker, auto &assignedParticles, int numberOfAssignedParticles, ::swift2::kernels::kernelrealisation::CoalescedMemoryOffloadRealisation realisation) |
| |
| template<auto ParticleOp, auto PredicateOp> |
| void | swift2::kernels::forAllParticles (const peano4::datamanagement::CellMarker &marker, auto &localParticles, const std::vector< int > &numberOfLocalParticles, ::swift2::kernels::kernelrealisation::CoalescedMemoryOffloadRealisation realisation) |
| |
| template<auto PairOperator, auto LocalPredicate, auto PairPredicate> |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::CoalescedMemoryActiveLocalRealisation realisation) |
| | Alternative implementation of CoalescedMemoryActiveLocalRealisation.
|
| |
| template<auto PairOperator, auto LocalPredicate, auto PairPredicate> |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::CoalescedMemoryActiveLocalOffloadRealisation realisation) |
| |
| template<auto PairOperator, auto LocalPredicate, auto PairPredicate> |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::EvaluatePredicateInPrologueActiveLocalRealisation realisation) |
| |
| template<auto PairOperator, auto LocalPredicate, auto PairPredicate> |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::EvaluatePredicateInPrologueLocalActiveRealisation realisation) |
| |
| template<auto ParticlePairOp, auto LocalPredicateOp, auto ParticlePairPredicateOp> |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::CoalescedMemoryLocalActiveRealisation realisation) |
| |
| template<auto ParticlePairOp, auto LocalPredicateOp, auto ParticlePairPredicateOp> |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::CoalescedMemoryLocalActiveOffloadRealisation realisation) |
| |
| template<auto ParticleOp, auto PredicateOp> |
| void | swift2::kernels::forAllParticles (const peano4::datamanagement::VertexMarker &marker, auto &assignedParticles, int numberOfCoalescedAssignedParticles, ::swift2::kernels::kernelrealisation::EvaluatePredicateInPrologueRealisation) |
| | We split up the loop into two loops: The first one runs over the predicates and collects all the results in one large bit field.
|
| |
| template<auto ParticleOp, auto PredicateOp> |
| void | swift2::kernels::forAllParticles (const peano4::datamanagement::CellMarker &marker, auto &localParticles, const std::vector< int > &numberOfCoalescedLocalParticles, ::swift2::kernels::kernelrealisation::EvaluatePredicateInPrologueRealisation) |
| |
| template<typename LocalParticleContainer , typename ActiveParticleContainer > |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::EvaluatePredicateInPrologueActiveLocalRealisation realisation) |
| | Move all the predicate evaluations into dedicated prologue.
|
| |
| template<typename LocalParticleContainer , typename ActiveParticleContainer > |
| void | swift2::kernels::forAllParticlePairs (const swift2::CellMetaData &cellMetaData, auto &localParticles, auto &activeParticles, ::swift2::kernels::kernelrealisation::EvaluatePredicateInPrologueLocalActiveRealisation realisation) |
| |
| template<int SubChunkSize, typename LocalParticle , typename ActiveParticle > |
| std::pair< std::bitset< SubChunkSize >, std::bitset< SubChunkSize > > | swift2::kernels::internal::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 > > | swift2::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.
|
| |