Gromacs  2021-beta2-UNCHECKED
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
shake.h File Reference
#include "gromacs/math/vec.h"
#include "gromacs/topology/block.h"
#include "gromacs/utility/real.h"
+ Include dependency graph for shake.h:
+ This graph shows which files directly or indirectly include this file:


Declares interface to SHAKE code.

David van der Spoel
Berk Hess
Mark Abraham


class  gmx::ArrayRef< typename >
 STL-like interface to a C array of T (or part of a std container of T). More...
struct  gmx::shakedata
 Working data for the SHAKE algorithm. More...


void gmx::make_shake_sblock_serial (shakedata *shaked, InteractionDefinitions *idef, int numAtoms)
 Make SHAKE blocks when not using DD.
void gmx::make_shake_sblock_dd (shakedata *shaked, const InteractionList &ilcon)
 Make SHAKE blocks when using DD.
bool gmx::constrain_shake (FILE *log,shakedata *shaked,const real invmass[],const InteractionDefinitions &idef,const t_inputrec &ir,ArrayRef< const RVec > x_s,ArrayRef< RVec > xprime,ArrayRef< RVec > vprime,const t_pbc *pbc,t_nrnb *nrnb,real lambda,real *dvdlambda,real invdt,ArrayRef< 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, ArrayRef< const real > constraint_distance_squared, ArrayRef< RVec > positions, const t_pbc *pbc, ArrayRef< const RVec > initial_displacements, ArrayRef< const real > half_of_reduced_mass, real omega, const real invmass[], ArrayRef< const real > distance_squared_tolerance, ArrayRef< real > scaled_lagrange_multiplier, int *nerror)
 Inner kernel for SHAKE constraints. More...