Gromacs
2021-beta3-UNCHECKED
|
#include <cstdio>
#include "gromacs/topology/ifunc.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/gmxmpi.h"
Declares functions for handling distance restraints.
Enumerations | |
enum | DisResRunMode { MDRun, AnalysisTool } |
Whether distance restraints are called from mdrun or from an analysis tool. | |
Functions | |
void | init_disres (FILE *fplog, const gmx_mtop_t *mtop, t_inputrec *ir, DisResRunMode disResRunMode, DDRole ddRole, NumRanks numRanks, MPI_Comm communicator, const gmx_multisim_t *ms, t_disresdata *disresdata, t_state *state, gmx_bool bIsREMD) |
Initiates *disresdata. More... | |
void | calc_disres_R_6 (const t_commrec *cr, const gmx_multisim_t *ms, int nfa, const t_iatom *fa, const rvec *x, const t_pbc *pbc, t_disresdata *disresdata, history_t *hist) |
Calculates r and r^-3 (inst. and time averaged) for all pairs and the ensemble averaged r^-6 (inst. and time averaged) for all restraints. | |
real | ta_disres (int nfa, const t_iatom forceatoms[], const t_iparams ip[], const rvec x[], rvec4 f[], rvec fshift[], const t_pbc *pbc, real lambda, real *dvdlambda, const t_mdatoms *md, t_fcdata *fcdata, int *global_atom_index) |
Calculates the distance restraint forces, return the potential. | |
void | update_disres_history (const t_disresdata &disresdata, history_t *hist) |
Copies the new time averages that have been calculated in calc_disres_R_6. | |
void init_disres | ( | FILE * | fplog, |
const gmx_mtop_t * | mtop, | ||
t_inputrec * | ir, | ||
DisResRunMode | disResRunMode, | ||
DDRole | ddRole, | ||
NumRanks | numRanks, | ||
MPI_Comm | communicator, | ||
const gmx_multisim_t * | ms, | ||
t_disresdata * | disresdata, | ||
t_state * | state, | ||
gmx_bool | bIsREMD | ||
) |
Initiates *disresdata.
Must be called once, nbonds is the number of iatoms in the ilist of the idef struct. When time averaging is used, the history is initialized in state, unless it was read before from a checkpoint file. The implementation of distance restraints with -multidir must differ according to whether REMD is active.