![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Reusable particle packing/unpacking for ghost communications. More...
#include "particle_packing.hpp"#include "BoxGeometry.hpp"#include "Particle.hpp"#include "ghosts.hpp"#include <utils/serialization/memcpy_archive.hpp>#include <boost/archive/binary_iarchive.hpp>#include <boost/archive/binary_oarchive.hpp>#include <boost/iostreams/device/array.hpp>#include <boost/iostreams/device/back_inserter.hpp>#include <boost/iostreams/stream.hpp>#include <boost/serialization/vector.hpp>#include <algorithm>#include <cassert>#include <cstddef>#include <iterator>#include <limits>#include <numeric>#include <span>#include <vector>
Include dependency graph for particle_packing.cpp:Go to the source code of this file.
Classes | |
| class | GhostComm::SerializationSizeCalculator |
| Pseudo-archive to calculate the size of the serialization buffer. More... | |
Namespaces | |
| namespace | GhostComm |
Enumerations | |
| enum class | GhostComm::ReductionPolicy { GhostComm::MOVE , GhostComm::UPDATE } |
| Type of reduction to carry out during serialization. More... | |
| enum class | GhostComm::SerializationDirection { GhostComm::SAVE , GhostComm::LOAD } |
| Whether to save the state to or load the state from the archive. More... | |
Functions | |
| template<class Archive > | |
| static void | GhostComm::serialize_and_reduce (Archive &ar, Particle &p, unsigned int data_parts, ReductionPolicy policy, SerializationDirection direction, BoxGeometry const &box_geo, Utils::Vector3d const *ghost_shift) |
| Serialize particle data, possibly with reduction. | |
| static void | GhostComm::prepare_ghost_cell (ParticleList *cell, std::size_t size) |
| std::size_t | GhostComm::calc_transmit_size (BoxGeometry const &box_geo, unsigned data_parts) |
| Calculate the per-particle transmit size for the given data parts. | |
| std::size_t | GhostComm::calc_transmit_size (std::span< ParticleList *const > cells, BoxGeometry const &box_geo, unsigned data_parts) |
| Calculate the total transmit size for a list of cells and data parts. | |
| void | GhostComm::pack_cells (CommBuf &buf, std::span< ParticleList *const > cells, Utils::Vector3d const &shift, BoxGeometry const &box_geo, unsigned data_parts) |
| Pack particle data from cells into a communication buffer. | |
| void | GhostComm::unpack_cells (CommBuf &buf, std::span< ParticleList *const > cells, BoxGeometry const &box_geo, unsigned data_parts) |
| Unpack particle data from a communication buffer into cells. | |
| void | GhostComm::add_forces (CommBuf &buf, std::span< ParticleList *const > cells, unsigned data_parts) |
| Add forces (and optionally torques) from a communication buffer to particles in cells. | |
| void | GhostComm::add_rattle (CommBuf &buf, std::span< ParticleList *const > cells) |
| Add rattle corrections from a communication buffer to particles. | |
| void | GhostComm::add_dip_fld (CommBuf &buf, std::span< ParticleList *const > cells) |
| Add dipole fields from a communication buffer to particles. | |
| void | GhostComm::local_cell_copy (ParticleList &src, ParticleList &dst, Utils::Vector3d const &shift, BoxGeometry const &box_geo, unsigned data_parts) |
| Copy particle data from src to dst applying a ghost shift. | |
Reusable particle packing/unpacking for ghost communications.
Definition in file particle_packing.cpp.