ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
A distributed particle decomposition. More...
#include <ParticleDecomposition.hpp>
Public Member Functions | |
virtual void | resort (bool global_flag, std::vector< ParticleChange > &diff)=0 |
Resort particles. | |
virtual GhostCommunicator const & | exchange_ghosts_comm () const =0 |
Communicator for updating ghosts from the real particles. | |
virtual GhostCommunicator const & | collect_ghost_force_comm () const =0 |
Communicator for force reduction. | |
virtual std::span< Cell *const > | local_cells () const =0 |
Get pointer to local cells. | |
virtual std::span< Cell *const > | ghost_cells () const =0 |
Get pointer to local cells. | |
virtual Cell * | particle_to_cell (Particle const &p)=0 |
Determine which cell a particle id belongs to. | |
virtual Cell const * | particle_to_cell (Particle const &p) const =0 |
virtual Utils::Vector3d | max_cutoff () const =0 |
Maximum supported cutoff. | |
virtual Utils::Vector3d | max_range () const =0 |
Range in which calculations are performed. | |
virtual std::optional< BoxGeometry > | minimum_image_distance () const =0 |
Return the box geometry needed for distance calculation if minimum image convention should be used needed for distance calculation. | |
virtual BoxGeometry const & | box () const =0 |
virtual | ~ParticleDecomposition ()=default |
A distributed particle decomposition.
An implementation of this class organizes particles into cells. It owns the particles, and provides a way of restoring the order when it is disturbed, and provides a description of the neighborhood relations between the cells, by which pair interactions with particles near-by can be calculated. Related to this it provides descriptions of the ghost communications by which particles can be synchronized that are not owned locally, but interact with local particles.
Definition at line 59 of file ParticleDecomposition.hpp.
|
virtualdefault |
|
pure virtual |
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
Referenced by CellStructure::run_on_particle_short_range_neighbors().
|
pure virtual |
Communicator for force reduction.
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
|
pure virtual |
Communicator for updating ghosts from the real particles.
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
|
pure virtual |
Get pointer to local cells.
Ghost cells are cells that contain particles that are owned by different nodes but interact with particles on this node.
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
|
pure virtual |
Get pointer to local cells.
Local cells are cells that contain particles that are owned by this node.
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
Referenced by CellStructure::add_particle(), CellStructure::check_particle_sorting(), CellStructure::remove_all_particles(), and CellStructure::remove_particle().
|
pure virtual |
Maximum supported cutoff.
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
Referenced by CellStructure::max_cutoff().
|
pure virtual |
Range in which calculations are performed.
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
Referenced by CellStructure::max_range().
|
pure virtual |
Return the box geometry needed for distance calculation if minimum image convention should be used needed for distance calculation.
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
Referenced by CellStructure::run_on_particle_short_range_neighbors().
|
pure virtual |
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
Determine which cell a particle id belongs to.
p | Particle to find cell for. |
Implemented in AtomDecomposition, HybridDecomposition, and RegularDecomposition.
|
pure virtual |
Resort particles.
After calling this function, every particle is in its home cell. The output parameter is filled with the changes to the local particle content, which allows e.g. to keep particles indices in an efficient way.
This is a collective call.
[in] | global_flag | Expect particles to be displaced by more than a local box size. |
[out] | diff | Cells that have been touched. |
Implemented in HybridDecomposition, RegularDecomposition, and AtomDecomposition.