|
Gromacs
2025.3
|
#include "config.h"#include <memory>#include <vector>#include "gromacs/domdec/localatomset.h"#include "gromacs/mdtypes/pull_params.h"#include "gromacs/utility/gmxmpi.h"#include "pullcoordexpressionparser.h"
Include dependency graph for pull_internal.h:
This graph shows which files directly or indirectly include this file:This file contains datatypes and function declarations for internal use in the pull code.
Classes | |
| struct | pull_group_work_t |
| Pull group data used during pulling. More... | |
| struct | pull_coord_work_t |
| Struct with parameters and force evaluation local data for a pull coordinate. More... | |
Enumerations | |
| enum | { epgrppbcNONE, epgrppbcREFAT, epgrppbcCOS, epgrppbcPREVSTEPCOM } |
Functions | |
| void | setPrevStepPullComFromState (struct pull_t *pull, const t_state *state) |
| Copies the pull group COM of the previous step from the checkpoint state to the pull state. More... | |
| void | allocStatePrevStepPullCom (t_state *state, const pull_t *pull) |
| Resizes the vector, in the state container, containing the COMs from the previous step. More... | |
Variables | |
| static const int | c_pullMaxNumLocalAtomsSingleThreaded = 1 |
| Determines up to what local atom count a pull group gets processed single-threaded. More... | |
| static constexpr int | c_comBufferStride = 3 |
| The normal COM buffer needs 3 elements per group. | |
| static constexpr int | c_cylinderBufferStride = 9 |
| The cylinder buffer needs 9 elements per group. | |
| void allocStatePrevStepPullCom | ( | t_state * | state, |
| const pull_t * | pull | ||
| ) |
Resizes the vector, in the state container, containing the COMs from the previous step.
| [in] | state | The global state container |
| [in] | pull | The COM pull force calculation data structure |
| void setPrevStepPullComFromState | ( | struct pull_t * | pull, |
| const t_state * | state | ||
| ) |
Copies the pull group COM of the previous step from the checkpoint state to the pull state.
| [in] | pull | The COM pull force calculation data structure |
| [in] | state | The global state container |
|
static |
Determines up to what local atom count a pull group gets processed single-threaded.
We set this limit to 1 with debug to catch bugs. On Haswell with GCC 5 the cross-over point is around 400 atoms, independent of thread count and hyper-threading.
1.8.5