Gromacs  2019
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Typedefs | Functions
#include "gromacs/math/vectypes.h"
#include "gromacs/topology/ifunc.h"
#include "gromacs/utility/basedefinitions.h"
+ Include dependency graph for listed-forces.h:

Description

This file contains declarations of high-level functions used by mdrun to compute energies and forces for listed interactions.

Clients of libgromacs that want to evaluate listed interactions should call functions declared here.

Author
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Typedefs

using BondedFunction = real(*)(int nbonds, const t_iatom iatoms[], const t_iparams iparams[], const rvec x[], rvec4 f[], rvec fshift[], const t_pbc *pbc, const t_graph *g, real lambda, real *dvdlambda, const t_mdatoms *md, t_fcdata *fcd, int *ddgatindex)
 Type of CPU function to compute a bonded interaction.
 

Functions

BondedFunction bondedFunction (int ftype)
 Getter for finding a callable CPU function to compute an ftype interaction.
 
void calc_listed (const t_commrec *cr, const gmx_multisim_t *ms, struct gmx_wallcycle *wcycle, const t_idef *idef, const rvec x[], history_t *hist, rvec f[], gmx::ForceWithVirial *forceWithVirial, const t_forcerec *fr, const struct t_pbc *pbc, const struct t_pbc *pbc_full, const struct t_graph *g, gmx_enerdata_t *enerd, t_nrnb *nrnb, const real *lambda, const t_mdatoms *md, struct t_fcdata *fcd, int *ddgatindex, int force_flags)
 Calculates all listed force interactions. More...
 
void calc_listed_lambda (const t_idef *idef, const rvec x[], const t_forcerec *fr, const struct t_pbc *pbc, const struct t_graph *g, gmx_grppairener_t *grpp, real *epot, t_nrnb *nrnb, const real *lambda, const t_mdatoms *md, struct t_fcdata *fcd, int *global_atom_index)
 As calc_listed(), but only determines the potential energy for the perturbed interactions. More...
 
void do_force_listed (struct gmx_wallcycle *wcycle, matrix box, const t_lambda *fepvals, const t_commrec *cr, const gmx_multisim_t *ms, const t_idef *idef, const rvec x[], history_t *hist, rvec *forceForUseWithShiftForces, gmx::ForceWithVirial *forceWithVirial, const t_forcerec *fr, const struct t_pbc *pbc, const struct t_graph *graph, gmx_enerdata_t *enerd, t_nrnb *nrnb, const real *lambda, const t_mdatoms *md, struct t_fcdata *fcd, int *global_atom_index, int flags)
 Do all aspects of energy and force calculations for mdrun on the set of listed interactions.
 

Function Documentation

void calc_listed ( const t_commrec *  cr,
const gmx_multisim_t *  ms,
struct gmx_wallcycle *  wcycle,
const t_idef *  idef,
const rvec  x[],
history_t hist,
rvec  f[],
gmx::ForceWithVirial forceWithVirial,
const t_forcerec *  fr,
const struct t_pbc pbc,
const struct t_pbc pbc_full,
const struct t_graph *  g,
gmx_enerdata_t *  enerd,
t_nrnb *  nrnb,
const real lambda,
const t_mdatoms md,
struct t_fcdata *  fcd,
int *  ddgatindex,
int  force_flags 
)

Calculates all listed force interactions.

Note that pbc_full is used only for position restraints, and is not initialized if there are none.

void calc_listed_lambda ( const t_idef *  idef,
const rvec  x[],
const t_forcerec *  fr,
const struct t_pbc pbc,
const struct t_graph *  g,
gmx_grppairener_t *  grpp,
real epot,
t_nrnb *  nrnb,
const real lambda,
const t_mdatoms md,
struct t_fcdata *  fcd,
int *  global_atom_index 
)

As calc_listed(), but only determines the potential energy for the perturbed interactions.

The shift forces in fr are not affected.