Gromacs  2025-dev-20240710-afbd73d
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Enumerations | Functions
#include <cstdio>
#include "gromacs/topology/ifunc.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/gmxmpi.h"
+ Include dependency graph for disre.h:
+ This graph shows which files directly or indirectly include this file:


Declares functions for handling distance restraints.


class  gmx::ArrayRef< typename >
 STL-like interface to a C array of T (or part of a std container of T). More...


enum  DisResRunMode { MDRun, AnalysisTool }
 Whether distance restraints are called from mdrun or from an analysis tool.


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, const 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, gmx::ArrayRef< const real > charge, t_fcdata gmx_unused *fcd, t_disresdata *disresdata, t_oriresdata gmx_unused *oriresdata, 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.

Function Documentation

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.