Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
shake.h File Reference
#include "gromacs/topology/block.h"
#include "gromacs/topology/idef.h"

Description

Declares interface to SHAKE code.

Author
David van der Spoel david.nosp@m..van.nosp@m.dersp.nosp@m.oel@.nosp@m.icm.u.nosp@m.u.se
Berk Hess hess@.nosp@m.kth..nosp@m.se
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Functions

shakedata * gmx::shake_init ()
 Initializes and return the SHAKE data structure.
 
void gmx::done_shake (shakedata *d)
 Destroy SHAKE. Needed to solve memory leaks.
 
void gmx::make_shake_sblock_serial (shakedata *shaked, const t_idef *idef, const t_mdatoms &md)
 Make SHAKE blocks when not using DD.
 
void gmx::make_shake_sblock_dd (shakedata *shaked, const t_ilist *ilcon, const gmx_domdec_t *dd)
 Make SHAKE blocks when using DD.
 
bool gmx::constrain_shake (FILE *log,shakedata *shaked,const real invmass[],const t_idef &idef,const t_inputrec &ir,const rvec x_s[],rvec xprime[],rvec vprime[],t_nrnb *nrnb,real lambda,real *dvdlambda,real invdt,rvec *v,bool bCalcVir,tensor vir_r_m_dr,bool bDumpOnError,ConstraintVariable econq)
 Shake all the atoms blockwise. It is assumed that all the constraints in the idef->shakes field are sorted, to ascending block nr. The sblock array points into the idef->shakes.iatoms field, with block 0 starting at sblock[0] and running to ( < ) sblock[1], block n running from sblock[n] to sblock[n+1]. Array sblock should be large enough. Return TRUE when OK, FALSE when shake-error.
 
void gmx::cshake (const int iatom[], int ncon, int *nnit, int maxnit, const real constraint_distance_squared[], real positions[], const real initial_displacements[], const real half_of_reduced_mass[], real omega, const real invmass[], const real distance_squared_tolerance[], real scaled_lagrange_multiplier[], int *nerror)
 Inner kernel for SHAKE constraints. More...