Gromacs
2025-dev-20241003-bd59e46
|
#include <gromacs/pulling/pull_internal.h>
Pull group data used during pulling.
Public Member Functions | |
pull_group_work_t (const t_pull_group ¶ms, gmx::LocalAtomSet atomSet, bool setPbcRefToPrevStepCOM, int maxNumThreads) | |
Constructor. More... | |
int | numThreads () const |
Returns the number of threads to use for local atom operations based on the local atom count. | |
Public Attributes | |
const t_pull_group | params_ |
The pull group parameters. | |
const int | epgrppbc |
The type of pbc for this pull group, see enum above. | |
const int | maxNumThreads_ |
The maximum number of threads to use for operations on x and f. | |
bool | needToCalcCom |
Do we need to calculate the COM? (Not for group 0 or if only used as cylinder group) | |
std::vector< real > | globalWeights |
Weights per atom set by the user and/or mass/friction coefficients, if empty all weights are equal. | |
gmx::LocalAtomSet | atomSet_ |
Global to local atom set mapper. | |
std::vector< real > | localWeights |
Weights for the local atoms. | |
std::unique_ptr < gmx::LocalAtomSet > | pbcAtomSet |
Keeps index of the pbc reference atom. More... | |
real | mwscale |
mass*weight scaling factor 1/sum w m | |
real | wscale |
scaling factor for the weights: sum w m/sum w w m | |
real | invtm |
inverse total mass of the group: 1/wscale sum w m | |
std::vector< gmx::BasicVector < double > > | mdw |
mass*gradient(weight) for atoms | |
std::vector< double > | dv |
distance to the other group(s) along vec | |
dvec | x |
COM before update. | |
dvec | xp |
COM after update before constraining. | |
dvec | x_prev_step |
center of mass of the previous step | |
pull_group_work_t::pull_group_work_t | ( | const t_pull_group & | params, |
gmx::LocalAtomSet | atomSet, | ||
bool | setPbcRefToPrevStepCOM, | ||
int | maxNumThreads | ||
) |
Constructor.
[in] | params | The group parameters set by the user |
[in] | atomSet | The global to local atom set manager |
[in] | setPbcRefToPrevStepCOM | Does this pull group use the COM from the previous step as reference position? |
[in] | maxNumThreads | Use either this number of threads of 1 for operations on x and f |
std::unique_ptr<gmx::LocalAtomSet> pull_group_work_t::pbcAtomSet |
Keeps index of the pbc reference atom.
The stored LocalAtomSet consists of exactly one atom when pbc reference atom is required. When no pbc refence atom is used, this pointer shall be null.