Inherits gmx::test::MdrunTestFixture.
Declares abstract base text fixture class for integration tests of mdrun functionality that will compare multiple calls to mdrun.
An internal database of several kinds of simulation useful for such comparisons is available.
Any method in this class may throw std::bad_alloc if out of memory.
|
virtual | ~MdrunComparisonFixture () |
| Destructor.
|
|
MdpFieldValues | prepareMdpFieldValues (const char *simulationName) |
| Prepare .mdp values to do a simulation. More...
|
|
void | prepareMdpFile (const MdpFieldValues &mdpFieldValues, const char *integrator, const char *tcoupl, const char *pcoupl) |
| Set up an .mdp file that permits a highly reproducible simulation. More...
|
|
virtual void | runTest (const CommandLine &gromppCallerRef, const char *simulationName, const char *integrator, const char *tcoupl, const char *pcoupl, FloatingPointTolerance tolerance)=0 |
| Run mdrun two ways in a test. Subclasses must override this method. More...
|
|
virtual void | runTest (const char *simulationName, const char *integrator, const char *tcoupl, const char *pcoupl, FloatingPointTolerance tolerance) |
| Convenience overload of runTest() for cases that don't need to customize the command line for grompp.
|
|
Prepare .mdp values to do a simulation.
A database of several kinds of simulation useful for different kinds of tests is available.
- argon12
- argon5832
- spc5
- spc216
- alanine_vsite_vacuo
- alanine_vsite_solvated
- nonanol
Some of these systems are pretty minimal, because having few atoms means few interactions, highly reproducible forces, and allows tests to focus on the correctness of the implementation of high-level mdrun features. The boxes are of a reasonable size so that domain decomposition is possible. The pressure-coupling parameters are isotropic, and set up so that there will not be dramatic collapse of volume over the handful of MD steps that will be run. A single temperature-coupling group is used.
This is separate from prepareMdpFile, so that derived classes can react to the .mdp settings, e.g. by stopping a run after half the steps.
- Exceptions
-
std::bad_alloc | if out of memory std::out_of_range if simulationName is not in the database |