9 template <
typename Particle>
12 const Particle& localParticle,
13 const Particle& activeParticle
16 template <
typename Particle>
19 const bool& localParticleIsContainedInCell,
20 const Particle& localParticle
23 template <
typename Particle>
26 const Particle& localParticle
39 template <
typename Particle>
42 const Particle& localParticle
54 template <
typename Particle>
57 const bool& localParticleIsContainedInCell,
58 const Particle& localParticle
70 template <
typename ParticleA,
typename ParticleB = ParticleA>
73 const ParticleA& localParticle,
74 const ParticleB& activeParticle
90 template <
typename Particle>
93 const Particle& localParticle
95 return localParticle.getParallelState() == Particle::ParallelState::Local;
112 template <
typename Particle>
115 const Particle& localParticle
118 (localParticle.getMoveState() == Particle::MoveState::NotMovedYet)
187 template <
typename ParticleA,
typename ParticleB = ParticleA>
190 const ParticleA& localParticle,
191 const ParticleB& activeParticle
193 return (
void*)(&localParticle) != (
void*)(&activeParticle)
194 and not localParticle.getCellHasUpdatedParticle()
195 and marker.isContained(
196 localParticle.getX(),
201 and localParticle.getParallelState(
202 ) == ParticleA::ParallelState::Local;
205 template <
typename ParticleA,
typename ParticleB = ParticleA>
209 return (
void*)(&localParticle) != (
void*)(&activeParticle);
212 template <
typename ParticleA,
typename ParticleB = ParticleA>
215 const ParticleA& localParticle,
216 const ParticleB& activeParticle
218 return (
void*)(&localParticle) != (
void*)(&activeParticle)
219 and not localParticle.getCellHasUpdatedParticle()
220 and marker.isContained(
221 localParticle.getX(),
226 and localParticle.getParallelState(
227 ) == ParticleA::ParallelState::Local;
231 template <
typename Particle>
234 const bool& localParticleIsContainedInCell,
235 const Particle& localParticle
238 localParticleIsContainedInCell,
240 localParticle.getX(),
242 relativeGrabOwnershipSpatialSortingTolerance(marker)
246 localParticle.toString()
249 return not localParticle.getCellHasUpdatedParticle()
250 and localParticleIsContainedInCell
251 and localParticle.getParallelState(
252 ) == Particle::ParallelState::Local;
269 template <
typename Particle>
272 const Particle& localParticle
#define assertionEquals2(lhs, rhs, a, b)
std::function< bool( const peano4::datamanagement::CellMarker &marker, const bool & localParticleIsContainedInCell, const Particle & localParticle)> UpdateParticleAssignedToCellPredicate
bool localParticleCanBeUpdatedInVertexKernel(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Can we do work on this particle during a vertex kernel sweep stage?
bool alwaysUpdateParticlePairs(const peano4::datamanagement::CellMarker &marker, const ParticleA &localParticle, const ParticleB &activeParticle)
Degenerated update in cell predicate.
bool particleIsLocal(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Is a particle local.
bool alwaysUpdateInCellKernel(const peano4::datamanagement::CellMarker &marker, const bool &localParticleIsContainedInCell, const Particle &localParticle)
Degenerated update in cell predicate.
bool updateFromAnyOtherParticle(const peano4::datamanagement::CellMarker &marker, const ParticleA &localParticle, const ParticleB &activeParticle)
bool alwaysUpdateInVertexKernel(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Degenerated predicate which always allows for an update.
std::function< bool( const peano4::datamanagement::CellMarker &marker, const Particle & localParticle, const Particle & activeParticle)> UpdateParticlePairWithinCellPredicate
bool localParticleCanBeUpdatedInCellKernelFromAnyOtherParticle(const peano4::datamanagement::CellMarker &marker, const ParticleA &localParticle, const ParticleB &activeParticle)
Can we do work on this particle during a cell kernel sweep stage?
bool localParticleCanBeUpdatedAndMovedInVertexKernel(const peano4::datamanagement::VertexMarker &marker, const Particle &localParticle)
Can we move (drift) this particle?
std::function< bool( const peano4::datamanagement::VertexMarker &marker, const Particle & localParticle)> UpdateParticleAssignedToVertexPredicate
bool localParticleCanBeUpdatedInCellKernel(const peano4::datamanagement::CellMarker &marker, const bool &localParticleIsContainedInCell, const Particle &localParticle)
bool localParticleCanBeUpdatedInCellKernelFromAnyOtherParticleWithinIterationRange(const peano4::datamanagement::CellMarker &marker, const ParticleA &localParticle, const ParticleB &activeParticle)
This file is part of the SWIFT 2 project.
constexpr double NUMERICAL_ZERO_DIFFERENCE
double relativeGrabOwnershipSpatialSortingTolerance(const ::peano4::datamanagement::VertexMarker &marker)
Vertex marker to provide information about selected vertex.