Forcing checkpoints in GROMACS

From Earlham CS Department
Revision as of 16:11, 21 June 2005 by Mccoyjo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

We have access to the param->ir data structure in md.c. If we place a function in the main loop that checks for messages from mother requesting information, we would have all of the following data at our disposal:

from gromacs-3.2.1/include/types/inputrec.h

typedef struct {

 int  eI;              /* Integration method                           */
 int  nsteps;          /* number of steps to be taken                  */
 int  init_step;       /* start at a stepcount >0 (used w. tpbconv)    */
 int  ns_type;         /* which ns method should we use?               */
 int  nstlist;         /* number of steps before pairlist is generated */
 int  ndelta;          /* number of cells per rlong                    */
 bool bDomDecomp;      /* Should we do domain decomposition?           */
 int  decomp_dir;      /* Direction of decomposition (may not be opt.) */
 int  nstcomm;         /* number of steps after which center of mass   */
                       /* motion is removed                            */
 int nstcheckpoint;    /* checkpointing frequency                      */
 int nstlog;           /* number of steps after which print to logfile */
 int nstxout;          /* number of steps after which X is output      */
 int nstvout;          /* id. for V                                    */
 int nstfout;          /* id. for F                                    */
 int nstenergy;        /* number of steps after which energies printed */
 int nstxtcout;        /* id. for compressed trj (.xtc)                */
 real init_t;          /* initial time (ps)                            */
 real delta_t;         /* time step (ps)                               */
 real xtcprec;         /* precision of xtc file                        */
 int  nkx,nky,nkz;     /* number of k vectors in each spatial dimension*/
                       /* for fourier methods for long range electrost.*/
 int  pme_order;       /* interpolation order for PME                  */
 real ewald_rtol;      /* Real space tolerance for Ewald, determines   */
                       /* the real/reciprocal space relative weight    */
 int  ewald_geometry;  /* normal/3d ewald, or pseudo-2d LR corrections */
 real epsilon_surface; /* Epsilon for PME dipole correction            */
 bool bOptFFT;         /* optimize the fft plan at start               */
 int  ePBC;            /* Type of periodic boundary conditions         */
 bool bUncStart;       /* Do not constrain the start configuration     */
 int  etc;             /* temperature coupling                         */
 int  epc;             /* pressure coupling                            */
 int  epct;            /* pressure coupling type                       */
 real tau_p;           /* pressure coupling time (ps)                  */
 tensor ref_p;         /* reference pressure (kJ/(mol nm^3))           */
 tensor compress;      /* compressability ((mol nm^3)/kJ)              */
 int  andersen_seed;   /* Random seed for Andersen thermostat.         */
 real rlist;           /* short range pairlist cut-off (nm)            */
 int  coulombtype;     /* Type of electrostatics treatment             */
 real rcoulomb_switch; /* Coulomb switch range start (nm)              */
 real rcoulomb;        /* Coulomb cutoff (nm)                          */
 real epsilon_r;       /* relative dielectric constant                 */ 
 int  gb_algorithm;    /* Algorithm to use for calculation Born radii  */
 int  nstgbradii;      /* Frequency of updating Generalized Born radii */
 real rgbradii;        /* Cutoff for GB radii calculation              */
 real gb_saltconc;     /* Salt concentration (M) for GBSA models       */
 int  vdwtype;         /* Type of Van der Waals treatment              */
 real rvdw_switch;     /* Van der Waals switch range start (nm)        */
 real rvdw;            /* Van der Waals cutoff (nm)                    */
 int  implicit_solvent;/* No (=explicit water), or GBSA solvent models */
 int  eDispCorr;       /* Perform Long range dispersion corrections    */
 real tabext;          /* Extension of the table beyond the cut-off,   *
                        * as well as the table length for 1-4 interac. */
 real shake_tol;       /* tolerance for shake                          */
 real fudgeQQ;         /* Id. for 1-4 coulomb interactions             */
 int  efep;            /* free energy interpolation no/yes             */
 real init_lambda;     /* initial value for perturbation variable      */
 real delta_lambda;    /* change of lambda per time step (1/dt)        */
 real sc_alpha;        /* free energy soft-core parameter              */
 real sc_sigma;        /* free energy soft-core sigma when c6 or c12=0 */
 real dr_fc;           /* force constant for ta_disre                  */
 int  eDisreWeighting; /* type of weighting of pairs in one restraints */
 bool bDisreMixed;     /* Use comb of time averaged and instan. viol's */
 int  nstdisreout;     /* frequency of writing pair distances to enx   */ 
 real dr_tau;          /* time constant for memory function in disres  */
 real orires_fc;       /* force constant for orientational restraints  */
 real orires_tau;      /* time constant for memory function in orires  */
 int  nstorireout;     /* frequency of writing tr(SD) to enx           */ 
 int  dihre_fc;        /* force constant for dihedral restraints       */
 int  nstdihreout;     /* frequency of writing dihedrals to enx        */
 real dr_tau;          /* time constant for memory function in disres  */
 real orires_fc;       /* force constant for orientational restraints  */
 real orires_tau;      /* time constant for memory function in orires  */
 int  nstorireout;     /* frequency of writing tr(SD) to enx           */ 
 int  dihre_fc;        /* force constant for dihedral restraints       */
 int  nstdihreout;     /* frequency of writing dihedrals to enx        */ 
 real dihre_tau;       /* time constant for memory function in dihres  */
 real em_stepsize;     /* The stepsize for updating                    */
 real em_tol;          /* The tolerance                                */
 int  niter;           /* Number of iterations for convergence of      */
                       /* steepest descent in relax_shells             */
 real fc_stepsize;     /* Stepsize for directional minimization        */
                       /* in relax_shells                              */
 int  nstcgsteep;      /* number of steps after which a steepest       */
                       /* descents step is done while doing cg         */
 int  nbfgscorr;       /* Number of corrections to the hessian to keep */
 int  eConstrAlg;      /* Type of constraint algorithm                 */
 int  nProjOrder;      /* Order of the LINCS Projection Algorithm      */
 real LincsWarnAngle;  /* If bond rotates more than %g degrees, warn   */
 int  nLincsIter;      /* Number of iterations in the final Lincs step */
 bool bShakeSOR;       /* Use successive overrelaxation for shake      */
 real bd_temp;         /* Temperature for Brownian Dynamics (BD)       */
 real bd_fric;         /* Friction coefficient for BD (amu / ps)       */
 int  ld_seed;         /* Random seed for SD and BD                    */
 real cos_accel;       /* Acceleration for viscosity calculation       */
 int  userint1;        /* User determined parameters                   */
 int  userint2;
 int  userint3;
 int  userint4;
 real userreal1;
 real userreal2;
 real userreal3;
 real userreal4;
 t_grpopts opts;       /* Group options                                */
 t_cosines ex[DIM];    /* Electric field stuff (spatial part)          */
 t_cosines et[DIM];    /* Electric field stuff (time part)             */

} t_inputrec;