34 std::vector<ParticleSystem<T, PARTICLETYPE>*> _blockParticleSystems;
37 std::unordered_set<int> _neighbourRanks;
39 std::unordered_set<int> _extendedNeighbourRanks;
41 std::vector<std::unordered_set<int>> _cuboidNeighborhood;
42 std::size_t _currentGlobalID = 0;
43 const std::size_t _serialSize;
44 T _maximalCircumRadius = T{0.};
47 void updateCuboidNeighborhood();
55 template <
typename DYNAMICS,
typename ...Args>
65 template<
typename PCONDITION=conditions::all_particles>
66 constexpr std::size_t
size();
SuperParticleSystem(SuperStructure< T, PARTICLETYPE::d > &superStructure, T maximalCircumRadius=T{0.})
SuperStructure< T, PARTICLETYPE::d > & getSuperStructure()
Particle< T, PARTICLETYPE > get(std::size_t globalParticleID)
constexpr std::size_t size()
const std::unordered_set< int > & getNeighbourRanks()
void addDynamics(std::shared_ptr< dynamics::ParticleDynamics< T, PARTICLETYPE > > &dynamicsSPtr)
const std::vector< std::unordered_set< int > > & getCuboidNeighborhood()
void defineDynamics(Args &&...args)
void updateOffsetFromCircumRadius(T circumRadius)
std::vector< ParticleSystem< T, PARTICLETYPE > * > & getBlockParticleSystems()
const std::unordered_set< int > & getExtendedNeighbourRanks()
std::size_t getSerialSize() const
void reduceAndBcast(T &reductVal, MPI_Op op, int root=0, MPI_Comm comm=MPI_COMM_WORLD)
Reduction operation, followed by a broadcast.
std::conditional_t< PARTICLETYPE::template providesNested< descriptors::PARALLELIZATION >(), SuperParticleSystem< T, PARTICLETYPE >, ParticleSystem< T, PARTICLETYPE > > XParticleSystem
ParallelParticleLocator(int globiC_, std::size_t globalID_, std::size_t localID_)