ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Atom decomposition cell system. More...
#include <AtomDecomposition.hpp>
Public Member Functions | |
AtomDecomposition (BoxGeometry const &m_box) | |
AtomDecomposition (boost::mpi::communicator comm, BoxGeometry const &box_geo) | |
void | resort (bool global_flag, std::vector< ParticleChange > &diff) override |
GhostCommunicator const & | exchange_ghosts_comm () const override |
GhostCommunicator const & | collect_ghost_force_comm () const override |
std::span< Cell *const > | local_cells () const override |
std::span< Cell *const > | ghost_cells () const override |
auto const & | get_local_cells () const |
auto const & | get_ghost_cells () const |
Cell * | particle_to_cell (Particle const &p) override |
Determine which cell a particle id belongs to. | |
Cell const * | particle_to_cell (Particle const &p) const override |
Utils::Vector3d | max_cutoff () const override |
Utils::Vector3d | max_range () const override |
std::optional< BoxGeometry > | minimum_image_distance () const override |
BoxGeometry const & | box () const override |
Public Member Functions inherited from ParticleDecomposition | |
virtual | ~ParticleDecomposition ()=default |
Atom decomposition cell system.
This implements a distributed particle storage by just evenly distributing the particles over all part-taking nodes. Pairs are found by just considering all pairs independent of logical or physical location, it has therefore quadratic time complexity in the number of particles.
For a more detailed discussion please see [33].
Definition at line 53 of file AtomDecomposition.hpp.
AtomDecomposition::AtomDecomposition | ( | BoxGeometry const & | m_box | ) |
Definition at line 147 of file AtomDecomposition.cpp.
AtomDecomposition::AtomDecomposition | ( | boost::mpi::communicator | comm, |
BoxGeometry const & | box_geo | ||
) |
Definition at line 150 of file AtomDecomposition.cpp.
|
inlineoverridevirtual |
Implements ParticleDecomposition.
Definition at line 109 of file AtomDecomposition.hpp.
|
inlineoverridevirtual |
Implements ParticleDecomposition.
Definition at line 74 of file AtomDecomposition.hpp.
Referenced by HybridDecomposition::HybridDecomposition().
|
inlineoverridevirtual |
Implements ParticleDecomposition.
Definition at line 71 of file AtomDecomposition.hpp.
Referenced by HybridDecomposition::HybridDecomposition().
|
inline |
Definition at line 83 of file AtomDecomposition.hpp.
Referenced by HybridDecomposition::HybridDecomposition().
|
inline |
Definition at line 82 of file AtomDecomposition.hpp.
Referenced by HybridDecomposition::count_particles_in_n_square(), HybridDecomposition::HybridDecomposition(), and HybridDecomposition::resort().
|
inlineoverridevirtual |
Implements ParticleDecomposition.
Definition at line 79 of file AtomDecomposition.hpp.
|
inlineoverridevirtual |
Implements ParticleDecomposition.
Definition at line 78 of file AtomDecomposition.hpp.
Referenced by HybridDecomposition::resort().
|
overridevirtual |
Implements ParticleDecomposition.
Definition at line 161 of file AtomDecomposition.cpp.
References Utils::Vector< T, N >::broadcast().
Referenced by HybridDecomposition::max_cutoff(), and max_range().
|
overridevirtual |
Implements ParticleDecomposition.
Definition at line 165 of file AtomDecomposition.cpp.
References max_cutoff().
Referenced by HybridDecomposition::max_range().
|
inlineoverridevirtual |
Implements ParticleDecomposition.
Definition at line 105 of file AtomDecomposition.hpp.
Implements ParticleDecomposition.
Definition at line 96 of file AtomDecomposition.hpp.
References Particle::id().
Determine which cell a particle id belongs to.
Since there is only one local cell this is trivial.
p | Particle to find cell for. |
Implements ParticleDecomposition.
Definition at line 93 of file AtomDecomposition.hpp.
References Particle::id().
Referenced by HybridDecomposition::particle_to_cell(), and HybridDecomposition::particle_to_cell().
|
overridevirtual |
Implements ParticleDecomposition.
Definition at line 106 of file AtomDecomposition.cpp.
References BoxGeometry::fold_position(), RemovedParticle::id, and Cell::particles().
Referenced by HybridDecomposition::resort().