Regression tests of gromacs with PLUMED master
These tests are specific to gromacs: they check parts of its interface with PLUMED that the general tests do not cover. Each test checks a property that must hold for any version of PLUMED and of gromacs, such as a PLUMED bias that must act as the same bias applied by gromacs, or the same simulation that must give the same results in two ways of running it, so that no reference results are stored. A test is skipped when this version of gromacs does not have the feature it tests. The tests, and how to run them on your own computer, are in the directory of the code in the repository of the testcenter.
| Test | What it checks | Status | Result |
|---|---|---|---|
| energy | ENERGY equals the potential energy of GROMACS at every step, on 1 and 2 ranks | relative difference 1 ranks: 5e-10, 2 ranks: 4e-08 | |
| pull | a RESTRAINT on the distance of two water oxygens acts as the GROMACS pull code: same positions over 20 steps, forces at step 0, and virial every 5 steps (the virial is computed on those steps only) | PLUMED against pull code, 1 rank: max |dx| 1e-05 nm, |df|/max|f| at step 0 7.4e-09, |dvirial| at step 0 0 kJ/mol, max 0.156 kJ/mol | |
| pull-dd | as pull, on 2 ranks | PLUMED against pull code, 2 ranks: max |dx| 1e-05 nm, |df|/max|f| at step 0 7.4e-09, |dvirial| at step 0 0 kJ/mol, max 0.135 kJ/mol | |
| pull-energy | as pull, with ENERGY in the PLUMED input (PLUMED then runs when the energy is complete) | PLUMED against pull code, 1 rank: max |dx| 1e-05 nm, |df|/max|f| at step 0 7.4e-09, |dvirial| at step 0 0 kJ/mol, max 0.0918 kJ/mol | |
| pull-mts | as pull, with multiple time stepping and ENERGY needed on the slow steps | PLUMED against pull code, 1 rank: max |dx| 1e-05 nm, |df|/max|f| at step 0 7.4e-09, |dvirial| at step 0 0 kJ/mol, max 0.135 kJ/mol | |
| mts-fast-step | with multiple time stepping, mdrun stops with an error if PLUMED needs the energy on a fast step | stops with an error | |
| vsite | a RESTRAINT between two virtual sites (TIP4P M sites) acts the same with and without ENERGY in the PLUMED input (with ENERGY, PLUMED runs after GROMACS spread the forces on the virtual sites), on 1 and 2 ranks | with ENERGY against without, 1 rank: max |dx| 1e-05 nm, |df|/max|f| at step 0 7.4e-09, |dvirial| at step 0 0 kJ/mol, max 0.111 kJ/mol; with ENERGY against without, 2 ranks: max |dx| 1e-05 nm, |df|/max|f| at step 0 7.4e-09, |dvirial| at step 0 0.0078 kJ/mol, max 0.043 kJ/mol | |
| energy-bias | a bias s*ENERGY multiplies all the forces by 1+s, also with virtual sites | forces are 0.5 times the unbiased ones within 3e-06 of the largest force | |
| energy-bias-dd | with a bias on ENERGY, the virial is the same on 1, 2 and 3 ranks | same virial within 7e-05 kJ/mol | |
| em | energy minimization with a restraint: the same steps on 1 and 2 ranks, and with and without ENERGY (restraints between two oxygens and between two virtual sites) | oxygens: same 18 distances; vsites: same 19 distances | |
| data | PLUMED gets the positions, box, masses, charges and time of GROMACS | positions, box, time, masses and charges match | |
| checkpoint | PLUMED writes its state (OPES STATE_WFILE with STORE_STATES) at the steps where GROMACS writes a checkpoint, on 1 and 2 ranks | 1 ranks: 9 states at the 9 checkpoint steps; 2 ranks: 13 states at the 13 checkpoint steps | |
| committor | COMMITTOR stops mdrun soon after committing, with a final checkpoint, on 1 and 2 ranks | 1 ranks: committed at 250, stopped at 251 with a checkpoint; 2 ranks: committed at 250, stopped at 251 with a checkpoint | |
| committor-walkers | with two simulations (-multidir), all of them stop when one commits | both stopped at step 401 | |
| rerun | a rerun of a trajectory gives the CVs that PLUMED computed in the run, on 1 and 2 ranks; a stop request (COMMITTOR) ends the rerun | 1 ranks: same CVs; 2 ranks: same CVs; COMMITTOR stops it | |
| hrex | -hrex with two identical replicas: the PLUMED energy difference is 0 (1 and 2 ranks per replica), and PLUMED does not calculate again on the exchange steps (one COLVAR line per step, the expected hills) | -hrex is only in the legacy patches | |
| shells | shell (polarizable) particles: PLUMED is applied once per step, also in a rerun, and mdrun warns when PLUMED needs the energy, which is the one before the shells are relaxed (or mdrun refuses shells) | one PLUMED update per step, also in a rerun; a warning with ENERGY | |
| expanded | expanded ensemble: PLUMED’s lambda is the lambda state of GROMACS; with lmc-stats other than ‘no’, GROMACS still updates the weights | lambda dynamics with PLUMED is only in the legacy patches | |
| md-vv | md-vv runs with PLUMED (the legacy patches use the legacy simulator, which supports it) | runs | |
| replex-nex | replica exchange with -nex, which ignores the PLUMED bias, is refused | replica exchange with a PLUMED bias is only in the legacy patches | |
| replex-bias | temperature replica exchange with a PLUMED bias: the legacy patches add the bias to the exchange criterion; the native module refuses it with a clear error | refused with a clear error | |
| gpu-buffer-ops | with nonbonded and PME on the GPU, the restraint acts the same with GPU force buffer operations | not a CUDA build |
The text files of the runs (inputs, logs and output of PLUMED) are available in this zip archive.