|
Gromacs
2026.0-dev-20251109-f20ba35
|
#include <gromacs/ewald/pme_internal.h>
Collaboration diagram for PmeAtomComm:Data structure for coordinating transfers between PME ranks along one dimension.
Also used for passing coordinates, coefficients and forces to and from PME routines.
Public Member Functions | |
| PmeAtomComm (MPI_Comm PmeMpiCommunicator, int numThreads, int pmeOrder, int dimIndex, bool doSpread) | |
Constructor, PmeMpiCommunicator is the communicator for this dimension. | |
| void | setNumAtoms (int numAtoms) |
| Set the atom count and when necessary resizes atom buffers. | |
| int | numAtoms () const |
| Returns the atom count. | |
| gmx::ArrayRef< int > | sendCount () |
| Returns the number of atoms to send to each rank. | |
Public Attributes | |
| int | dimind = 0 |
| The index of the dimension, 0=x, 1=y. | |
| int | nslab = 1 |
| The number of slabs and ranks this dimension is decomposed over. | |
| int | slabIndex = 0 |
| Our slab index, our MPI rank is equal to this number. | |
| MPI_Comm | mpi_comm |
| Communicator for this dimension. | |
| std::vector< SlabCommSetup > | slabCommSetup |
| Communication setup for each slab, ordered as alternating forward/backward and increasing slab shift. | |
| int | maxshift = 0 |
| The maximum communication distance counted in MPI ranks. | |
| std::vector< int > | bufferIndices |
| Working buffer indices, indexed with the slab index. | |
| FastVector< int > | pd |
| The target slab index for each particle. | |
| std::vector< std::vector< int > > | count_thread |
| Target particle counts for each slab, for each thread. | |
| gmx::ArrayRef< const gmx::RVec > | x |
| The coordinates. | |
| gmx::ArrayRef< const real > | coefficient |
| The coefficient, charges or LJ C6. | |
| gmx::ArrayRef< gmx::RVec > | f |
| The forces. | |
| FastVector< gmx::RVec > | xBuffer |
| Coordinate buffer, used only with nslab > 1. | |
| FastVector< real > | coefficientBuffer |
| Coefficient buffer, used only with nslab > 1. | |
| FastVector< gmx::RVec > | fBuffer |
| Force buffer, used only with nslab > 1. | |
| bool | bSpread |
| Tells whether these coordinates are used for spreading. | |
| int | pme_order |
| The PME order. | |
| FastVector< gmx::IVec > | idx |
| The grid index per atom. | |
| FastVector< gmx::RVec > | fractx |
| Fractional atom coordinates relative to the lower cell boundary. | |
| int | nthread |
| The number of threads to use in PME. | |
| FastVector< int > | thread_idx |
| Thread index for each atom. | |
| std::vector< AtomToThreadMap > | threadMap |
| std::vector< splinedata_t > | spline |
1.8.5