32 template <
typename Iterator>
33 Iterator
particleIsDuplicate(
const typename Iterator::value_type& particle, Iterator begin,
const Iterator& end);
42 template <
typename Particle>
57 template <
typename Particle,
typename ParticleSet>
60 const std::vector<Particle*>& newParticles,
94 template <
typename Particle,
typename ParticleSet>
std::bitset< Dimensions > periodicBC
tarch::la::Vector< Dimensions, double > mirrorParticleAlongPeriodicDomains(const tarch::la::Vector< Dimensions, double > &x, const peano4::datamanagement::VertexMarker &marker, const tarch::la::Vector< Dimensions, double > domainOffset, const tarch::la::Vector< Dimensions, double > domainSize, const std::bitset< Dimensions > periodicBC)
Mirror a particle along the periodic domain boundaries.
constexpr double SpatialDuplicateTolerance
Default tolerance to decide when two particles are the same.
void insertParticleIntoCell(const peano4::datamanagement::CellMarker &marker, Particle *newParticles, peano4::datamanagement::VertexEnumerator< ParticleSet > &fineGridVertices, int spacetreeId)
Insert particle into cell.
Iterator particleIsDuplicate(const typename Iterator::value_type &particle, Iterator begin, const Iterator &end)
Check if there's already a particle at p's position in the set.
bool particleAssignedToVertexWillBeLocal(const tarch::la::Vector< Dimensions, double > &x, const peano4::datamanagement::VertexMarker &marker)
void insertParticlesIntoCell(const peano4::datamanagement::CellMarker &marker, const std::vector< Particle * > &newParticles, peano4::datamanagement::VertexEnumerator< ParticleSet > &fineGridVertices, int spacetreeId)
Insert particle into a cell.
bool particleWillStayWithinComputationalDomain(const Particle &particle, const tarch::la::Vector< Dimensions, double > &domainOffset, const tarch::la::Vector< Dimensions, double > &domainWidth)
Return true if and only if.
Vertex enumerator within array.
Vertex marker to provide information about selected vertex.