}
void write_inpfile(const char *fn, int ninp, t_inpfile inp[], gmx_bool bHaltOnUnknown,
+ WriteMdpHeader writeHeader,
warninp_t wi)
{
FILE *out;
sort_inp(ninp, inp);
out = gmx_fio_fopen(fn, "w");
- nice_header(out, fn);
- try
+ if (writeHeader == WriteMdpHeader::yes)
{
- gmx::BinaryInformationSettings settings;
- settings.generatedByHeader(true);
- settings.linePrefix(";\t");
- gmx::printBinaryInformation(out, gmx::getProgramContext(), settings);
+ nice_header(out, fn);
+ try
+ {
+ gmx::BinaryInformationSettings settings;
+ settings.generatedByHeader(true);
+ settings.linePrefix(";\t");
+ gmx::printBinaryInformation(out, gmx::getProgramContext(), settings);
+ }
+ GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
}
- GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
-
for (i = 0; (i < ninp); i++)
{
if (inp[i].bSet)
srenew(*inp, (*ninp));
(*inp)[i].name = gmx_strdup(name);
(*inp)[i].bSet = TRUE;
+ if (i == 0)
+ {
+ (*inp)[i].inp_count = 1;
+ }
}
(*inp)[i].count = (*inp)[0].inp_count++;
(*inp)[i].bSet = TRUE;
*
* Copyright (c) 1991-2000, University of Groningen, The Netherlands.
* Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2016, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016,2017, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
gmx::KeyValueTreeObject flatKeyValueTreeFromInpFile(int ninp, t_inpfile inp[]);
+enum class WriteMdpHeader
+{
+ no, yes
+};
+
void write_inpfile(const char *fn, int ninp, t_inpfile inp[],
gmx_bool bHaltOnUnknown,
+ WriteMdpHeader writeHeader,
warninp_t wi);
+/* Write inp to fn, warning (and perhaps halting) if any fields are
+ * unknown. The helpful header contains irreproducible content, so
+ * its writing can be suppressed to make testing more useful. */
void replace_inp_entry(int ninp, t_inpfile *inp,
const char *old_entry, const char *new_entry);
if (mpout != nullptr)
{
- write_inpfile(mpout, ninp, inp, TRUE, wi);
+ write_inpfile(mpout, ninp, inp, TRUE, WriteMdpHeader::yes, wi);
}
done_warning(wi, FARGS);
set_warning_line(wi, mdparin, -1);
t_inputrec irInstance;
t_inputrec *ir = &irInstance;
- get_ir(mdparin, opt2fn("-po", NFILE, fnm), &mdModules, ir, opts, wi);
+ get_ir(mdparin, opt2fn("-po", NFILE, fnm), &mdModules, ir, opts, WriteMdpHeader::yes, wi);
if (bVerbose)
{
void get_ir(const char *mdparin, const char *mdparout,
gmx::MDModules *mdModules, t_inputrec *ir, t_gromppopts *opts,
- warninp_t wi)
+ WriteMdpHeader writeMdpHeader, warninp_t wi)
{
char *dumstr[2];
double dumdub[2][6];
RTYPE ("userreal4", ir->userreal4, 0);
#undef CTYPE
- write_inpfile(mdparout, ninp, inp, FALSE, wi);
+ write_inpfile(mdparout, ninp, inp, FALSE, writeMdpHeader, wi);
for (i = 0; (i < ninp); i++)
{
sfree(inp[i].name);
#ifndef GMX_GMXPREPROCESS_READIR_H
#define GMX_GMXPREPROCESS_READIR_H
+#include "gromacs/fileio/readinp.h"
#include "gromacs/gmxpreprocess/grompp-impl.h"
namespace gmx
void get_ir(const char *mdparin, const char *mdparout,
gmx::MDModules *mdModules, t_inputrec *ir, t_gromppopts *opts,
- warninp_t wi);
+ WriteMdpHeader writeMdpHeader, warninp_t wi);
/* Read the input file, and retrieve data for inputrec.
* More data are read, but the are only evaluated when the next
* function is called. Also prints the input file back to mdparout.
#
# This file is part of the GROMACS molecular simulation package.
#
-# Copyright (c) 2014,2015, by the GROMACS development team, led by
+# Copyright (c) 2014,2015,2017, by the GROMACS development team, led by
# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
# and including many others, as listed in the AUTHORS file in the
# top-level source directory and at http://www.gromacs.org.
gmx_add_unit_test(GmxPreprocessTests gmxpreprocess-test
genconf.cpp
insert-molecules.cpp
+ readir.cpp
solvate.cpp
)
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2017, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
+ *
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the research papers on the package. Check out http://www.gromacs.org.
+ */
+/*! \internal \file
+ * \brief
+ * Test routines that parse mdp fields from grompp input and writes
+ * mdp back out.
+ *
+ * In particular these will provide test coverage as we refactor to
+ * use a new Options-based key-value-style mdp implementation to
+ * support a more modular mdrun.
+ *
+ * \author Mark Abraham <mark.j.abraham@gmail.com>
+ */
+#include "gmxpre.h"
+
+#include "gromacs/gmxpreprocess/readir.h"
+
+#include <string>
+
+#include <gtest/gtest.h>
+
+#include "gromacs/fileio/warninp.h"
+#include "gromacs/mdrunutility/mdmodules.h"
+#include "gromacs/mdtypes/inputrec.h"
+#include "gromacs/utility/cstringutil.h"
+#include "gromacs/utility/stringutil.h"
+#include "gromacs/utility/textreader.h"
+#include "gromacs/utility/textwriter.h"
+#include "gromacs/utility/unique_cptr.h"
+
+#include "testutils/refdata.h"
+#include "testutils/testfilemanager.h"
+
+namespace gmx
+{
+namespace test
+{
+
+class GetIrTest : public ::testing::Test
+{
+ public:
+ GetIrTest() : fileManager_(), data_(), checker_(data_.rootChecker()),
+ ir_(), mdModules_(), opts_(),
+ wi_(init_warning(FALSE, 0)), wiGuard_(wi_)
+
+ {
+ snew(opts_.include, STRLEN);
+ snew(opts_.define, STRLEN);
+ }
+ ~GetIrTest()
+ {
+ done_inputrec_strings();
+ sfree(opts_.include);
+ sfree(opts_.define);
+ }
+ /*! \brief Test mdp reading and writing
+ *
+ * \todo Modernize read_inp and write_inp to use streams,
+ * which will make these tests run faster, because they don't
+ * use disk files. */
+ void runTest(const std::string &inputMdpFileContents)
+ {
+ auto inputMdpFilename = fileManager_.getTemporaryFilePath("input.mdp");
+ auto outputMdpFilename = fileManager_.getTemporaryFilePath("output.mdp");
+
+ TextWriter::writeFileFromString(inputMdpFilename, inputMdpFileContents);
+
+ get_ir(inputMdpFilename.c_str(), outputMdpFilename.c_str(),
+ &mdModules_, &ir_, &opts_, WriteMdpHeader::no, wi_);
+ bool failure = warning_errors_exist(wi_);
+ checker_.checkBoolean(failure, "Error parsing mdp file");
+ warning_reset(wi_);
+
+ auto outputMdpContents = TextReader::readFileToString(outputMdpFilename);
+ checker_.checkString(outputMdpContents, "OutputMdpFile");
+ }
+
+ TestFileManager fileManager_;
+ TestReferenceData data_;
+ TestReferenceChecker checker_;
+ t_inputrec ir_;
+ MDModules mdModules_;
+ t_gromppopts opts_;
+ warninp_t wi_;
+ unique_cptr<warninp, free_warning> wiGuard_;
+};
+
+TEST_F(GetIrTest, HandlesDifferentKindsOfMdpLines)
+{
+ const char *inputMdpFile[] = {
+ "; File to run my simulation",
+ "title = simulation",
+ ";",
+ "xtc_grps = System ; was Protein",
+ "include = -I/home/me/stuff",
+ "",
+ "tau-t = 0.1 0.3",
+ "tinit = 0.3",
+ "init_step = 0",
+ "nstcomm = 100",
+ "integrator = steep"
+ };
+ runTest(joinStrings(inputMdpFile, "\n"));
+}
+
+// This case is used often by SimulationRunner::useEmptyMdpFile (see
+// comments there for explanation). When we remove the group scheme,
+// that usage will have to disappear, and so can this test.
+TEST_F(GetIrTest, HandlesOnlyCutoffScheme)
+{
+ const char *inputMdpFile = "cutoff-scheme = Group\n";
+ runTest(inputMdpFile);
+}
+
+// TODO Stop accepting any of these
+TEST_F(GetIrTest, UserErrorsSilentlyTolerated)
+{
+ const char *inputMdpFile[] = {
+ "title simulation",
+ "xtc_grps = ",
+ "= -I/home/me/stuff",
+ "="
+ };
+ runTest(joinStrings(inputMdpFile, "\n"));
+}
+
+TEST_F(GetIrTest, EmptyInputWorks)
+{
+ const char *inputMdpFile = "";
+ runTest(inputMdpFile);
+}
+
+// This test observes how the electric-field keys behave, since they
+// are currently the only ones using the new Options-style handling.
+TEST_F(GetIrTest, ProducesOutputFromElectricField)
+{
+ const char *inputMdpFile = "E-x = 1 1.2 -1";
+ runTest(inputMdpFile);
+}
+
+} // namespace
+} // namespace
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <Bool Name="Error parsing mdp file">false</Bool>
+ <String Name="OutputMdpFile">
+; VARIOUS PREPROCESSING OPTIONS
+; Preprocessor information: use cpp syntax.
+; e.g.: -I/home/joe/doe -I/home/mary/roe
+include =
+; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
+define =
+
+; RUN CONTROL PARAMETERS
+integrator = md
+; Start time and timestep in ps
+tinit = 0
+dt = 0.001
+nsteps = 0
+; For exact run continuation or redoing part of a run
+init-step = 0
+; Part index is updated automatically on checkpointing (keeps files separate)
+simulation-part = 1
+; mode for center of mass motion removal
+comm-mode = Linear
+; number of steps for center of mass motion removal
+nstcomm = 100
+; group(s) for center of mass motion removal
+comm-grps =
+
+; LANGEVIN DYNAMICS OPTIONS
+; Friction coefficient (amu/ps) and random seed
+bd-fric = 0
+ld-seed = -1
+
+; ENERGY MINIMIZATION OPTIONS
+; Force tolerance and initial step-size
+emtol = 10
+emstep = 0.01
+; Max number of iterations in relax-shells
+niter = 20
+; Step size (ps^2) for minimization of flexible constraints
+fcstep = 0
+; Frequency of steepest descents steps when doing CG
+nstcgsteep = 1000
+nbfgscorr = 10
+
+; TEST PARTICLE INSERTION OPTIONS
+rtpi = 0.05
+
+; OUTPUT CONTROL OPTIONS
+; Output frequency for coords (x), velocities (v) and forces (f)
+nstxout = 0
+nstvout = 0
+nstfout = 0
+; Output frequency for energies to log file and energy file
+nstlog = 1000
+nstcalcenergy = 100
+nstenergy = 1000
+; Output frequency and precision for .xtc file
+nstxout-compressed = 0
+compressed-x-precision = 1000
+; This selects the subset of atoms for the compressed
+; trajectory file. You can select multiple groups. By
+; default, all atoms will be written.
+compressed-x-grps =
+; Selection of energy groups
+energygrps =
+
+; NEIGHBORSEARCHING PARAMETERS
+; cut-off scheme (Verlet: particle based cut-offs, group: using charge groups)
+cutoff-scheme = Verlet
+; nblist update frequency
+nstlist = 10
+; ns algorithm (simple or grid)
+ns-type = Grid
+; Periodic boundary conditions: xyz, no, xy
+pbc = xyz
+periodic-molecules = no
+; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
+; a value of -1 means: use rlist
+verlet-buffer-tolerance = 0.005
+; nblist cut-off
+rlist = 1
+; long-range cut-off for switched potentials
+
+; OPTIONS FOR ELECTROSTATICS AND VDW
+; Method for doing electrostatics
+coulombtype = Cut-off
+coulomb-modifier = Potential-shift-Verlet
+rcoulomb-switch = 0
+rcoulomb = 1
+; Relative dielectric constant for the medium and the reaction field
+epsilon-r = 1
+epsilon-rf = 0
+; Method for doing Van der Waals
+vdw-type = Cut-off
+vdw-modifier = Potential-shift-Verlet
+; cut-off lengths
+rvdw-switch = 0
+rvdw = 1
+; Apply long range dispersion corrections for Energy and Pressure
+DispCorr = No
+; Extension of the potential lookup tables beyond the cut-off
+table-extension = 1
+; Separate tables between energy group pairs
+energygrp-table =
+; Spacing for the PME/PPPM FFT grid
+fourierspacing = 0.12
+; FFT grid size, when a value is 0 fourierspacing will be used
+fourier-nx = 0
+fourier-ny = 0
+fourier-nz = 0
+; EWALD/PME/PPPM parameters
+pme-order = 4
+ewald-rtol = 1e-05
+ewald-rtol-lj = 0.001
+lj-pme-comb-rule = Geometric
+ewald-geometry = 3d
+epsilon-surface = 0
+
+; IMPLICIT SOLVENT ALGORITHM
+implicit-solvent = No
+
+; GENERALIZED BORN ELECTROSTATICS
+; Algorithm for calculating Born radii
+gb-algorithm = Still
+; Frequency of calculating the Born radii inside rlist
+nstgbradii = 1
+; Cutoff for Born radii calculation; the contribution from atoms
+; between rlist and rgbradii is updated every nstlist steps
+rgbradii = 1
+; Dielectric coefficient of the implicit solvent
+gb-epsilon-solvent = 80
+; Salt concentration in M for Generalized Born models
+gb-saltconc = 0
+; Scaling factors used in the OBC GB model. Default values are OBC(II)
+gb-obc-alpha = 1
+gb-obc-beta = 0.8
+gb-obc-gamma = 4.85
+gb-dielectric-offset = 0.009
+sa-algorithm = Ace-approximation
+; Surface tension (kJ/mol/nm^2) for the SA (nonpolar surface) part of GBSA
+; The value -1 will set default value for Still/HCT/OBC GB-models.
+sa-surface-tension = -1
+
+; OPTIONS FOR WEAK COUPLING ALGORITHMS
+; Temperature coupling
+tcoupl = No
+nsttcouple = -1
+nh-chain-length = 10
+print-nose-hoover-chain-variables = no
+; Groups to couple separately
+tc-grps =
+; Time constant (ps) and reference temperature (K)
+tau-t =
+ref-t =
+; pressure coupling
+pcoupl = No
+pcoupltype = Isotropic
+nstpcouple = -1
+; Time constant (ps), compressibility (1/bar) and reference P (bar)
+tau-p = 1
+compressibility =
+ref-p =
+; Scaling of reference coordinates, No, All or COM
+refcoord-scaling = No
+
+; OPTIONS FOR QMMM calculations
+QMMM = no
+; Groups treated Quantum Mechanically
+QMMM-grps =
+; QM method
+QMmethod =
+; QMMM scheme
+QMMMscheme = normal
+; QM basisset
+QMbasis =
+; QM charge
+QMcharge =
+; QM multiplicity
+QMmult =
+; Surface Hopping
+SH =
+; CAS space options
+CASorbitals =
+CASelectrons =
+SAon =
+SAoff =
+SAsteps =
+; Scale factor for MM charges
+MMChargeScaleFactor = 1
+; Optimization of QM subsystem
+bOPT =
+bTS =
+
+; SIMULATED ANNEALING
+; Type of annealing for each temperature group (no/single/periodic)
+annealing =
+; Number of time points to use for specifying annealing in each group
+annealing-npoints =
+; List of times at the annealing points for each group
+annealing-time =
+; Temp. at each annealing point, for each group.
+annealing-temp =
+
+; GENERATE VELOCITIES FOR STARTUP RUN
+gen-vel = no
+gen-temp = 300
+gen-seed = -1
+
+; OPTIONS FOR BONDS
+constraints = none
+; Type of constraint algorithm
+constraint-algorithm = Lincs
+; Do not constrain the start configuration
+continuation = no
+; Use successive overrelaxation to reduce the number of shake iterations
+Shake-SOR = no
+; Relative tolerance of shake
+shake-tol = 0.0001
+; Highest order in the expansion of the constraint coupling matrix
+lincs-order = 4
+; Number of iterations in the final step of LINCS. 1 is fine for
+; normal simulations, but use 2 to conserve energy in NVE runs.
+; For energy minimization with constraints it should be 4 to 8.
+lincs-iter = 1
+; Lincs will write a warning to the stderr if in one step a bond
+; rotates over more degrees than
+lincs-warnangle = 30
+; Convert harmonic bonds to morse potentials
+morse = no
+
+; ENERGY GROUP EXCLUSIONS
+; Pairs of energy groups for which all non-bonded interactions are excluded
+energygrp-excl =
+
+; WALLS
+; Number of walls, type, atom types, densities and box-z scale factor for Ewald
+nwall = 0
+wall-type = 9-3
+wall-r-linpot = -1
+wall-atomtype =
+wall-density =
+wall-ewald-zfac = 3
+
+; COM PULLING
+pull = no
+
+; ENFORCED ROTATION
+; Enforced rotation: No or Yes
+rotation = no
+
+; Group to display and/or manipulate in interactive MD session
+IMD-group =
+
+; NMR refinement stuff
+; Distance restraints type: No, Simple or Ensemble
+disre = No
+; Force weighting of pairs in one distance restraint: Conservative or Equal
+disre-weighting = Conservative
+; Use sqrt of the time averaged times the instantaneous violation
+disre-mixed = no
+disre-fc = 1000
+disre-tau = 0
+; Output frequency for pair distances to energy file
+nstdisreout = 100
+; Orientation restraints: No or Yes
+orire = no
+; Orientation restraints force constant and tau for time averaging
+orire-fc = 0
+orire-tau = 0
+orire-fitgrp =
+; Output frequency for trace(SD) and S to energy file
+nstorireout = 100
+
+; Free energy variables
+free-energy = no
+couple-moltype =
+couple-lambda0 = vdw-q
+couple-lambda1 = vdw-q
+couple-intramol = no
+init-lambda = -1
+init-lambda-state = -1
+delta-lambda = 0
+nstdhdl = 50
+fep-lambdas =
+mass-lambdas =
+coul-lambdas =
+vdw-lambdas =
+bonded-lambdas =
+restraint-lambdas =
+temperature-lambdas =
+calc-lambda-neighbors = 1
+init-lambda-weights =
+dhdl-print-energy = no
+sc-alpha = 0
+sc-power = 1
+sc-r-power = 6
+sc-sigma = 0.3
+sc-coul = no
+separate-dhdl-file = yes
+dhdl-derivatives = yes
+dh_hist_size = 0
+dh_hist_spacing = 0.1
+
+; Non-equilibrium MD stuff
+acc-grps =
+accelerate =
+freezegrps =
+freezedim =
+cos-acceleration = 0
+deform =
+
+; simulated tempering variables
+simulated-tempering = no
+simulated-tempering-scaling = geometric
+sim-temp-low = 300
+sim-temp-high = 300
+
+; Ion/water position swapping for computational electrophysiology setups
+; Swap positions along direction: no, X, Y, Z
+swapcoords = no
+adress = no
+
+; User defined thingies
+user1-grps =
+user2-grps =
+userint1 = 0
+userint2 = 0
+userint3 = 0
+userint4 = 0
+userreal1 = 0
+userreal2 = 0
+userreal3 = 0
+userreal4 = 0
+</String>
+</ReferenceData>
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <Bool Name="Error parsing mdp file">false</Bool>
+ <String Name="OutputMdpFile">
+; VARIOUS PREPROCESSING OPTIONS
+; Preprocessor information: use cpp syntax.
+; e.g.: -I/home/joe/doe -I/home/mary/roe
+include = -I/home/me/stuff
+; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
+define =
+
+; RUN CONTROL PARAMETERS
+integrator = steep
+; Start time and timestep in ps
+tinit = 0.3
+dt = 0.001
+nsteps = 0
+; For exact run continuation or redoing part of a run
+init_step = 0
+; Part index is updated automatically on checkpointing (keeps files separate)
+simulation-part = 1
+; mode for center of mass motion removal
+comm-mode = Linear
+; number of steps for center of mass motion removal
+nstcomm = 100
+; group(s) for center of mass motion removal
+comm-grps =
+
+; LANGEVIN DYNAMICS OPTIONS
+; Friction coefficient (amu/ps) and random seed
+bd-fric = 0
+ld-seed = -1
+
+; ENERGY MINIMIZATION OPTIONS
+; Force tolerance and initial step-size
+emtol = 10
+emstep = 0.01
+; Max number of iterations in relax-shells
+niter = 20
+; Step size (ps^2) for minimization of flexible constraints
+fcstep = 0
+; Frequency of steepest descents steps when doing CG
+nstcgsteep = 1000
+nbfgscorr = 10
+
+; TEST PARTICLE INSERTION OPTIONS
+rtpi = 0.05
+
+; OUTPUT CONTROL OPTIONS
+; Output frequency for coords (x), velocities (v) and forces (f)
+nstxout = 0
+nstvout = 0
+nstfout = 0
+; Output frequency for energies to log file and energy file
+nstlog = 1000
+nstcalcenergy = 100
+nstenergy = 1000
+; Output frequency and precision for .xtc file
+nstxout-compressed = 0
+compressed-x-precision = 1000
+; This selects the subset of atoms for the compressed
+; trajectory file. You can select multiple groups. By
+; default, all atoms will be written.
+compressed-x-grps = System
+; Selection of energy groups
+energygrps =
+
+; NEIGHBORSEARCHING PARAMETERS
+; cut-off scheme (Verlet: particle based cut-offs, group: using charge groups)
+cutoff-scheme = Verlet
+; nblist update frequency
+nstlist = 10
+; ns algorithm (simple or grid)
+ns-type = Grid
+; Periodic boundary conditions: xyz, no, xy
+pbc = xyz
+periodic-molecules = no
+; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
+; a value of -1 means: use rlist
+verlet-buffer-tolerance = 0.005
+; nblist cut-off
+rlist = 1
+; long-range cut-off for switched potentials
+
+; OPTIONS FOR ELECTROSTATICS AND VDW
+; Method for doing electrostatics
+coulombtype = Cut-off
+coulomb-modifier = Potential-shift-Verlet
+rcoulomb-switch = 0
+rcoulomb = 1
+; Relative dielectric constant for the medium and the reaction field
+epsilon-r = 1
+epsilon-rf = 0
+; Method for doing Van der Waals
+vdw-type = Cut-off
+vdw-modifier = Potential-shift-Verlet
+; cut-off lengths
+rvdw-switch = 0
+rvdw = 1
+; Apply long range dispersion corrections for Energy and Pressure
+DispCorr = No
+; Extension of the potential lookup tables beyond the cut-off
+table-extension = 1
+; Separate tables between energy group pairs
+energygrp-table =
+; Spacing for the PME/PPPM FFT grid
+fourierspacing = 0.12
+; FFT grid size, when a value is 0 fourierspacing will be used
+fourier-nx = 0
+fourier-ny = 0
+fourier-nz = 0
+; EWALD/PME/PPPM parameters
+pme-order = 4
+ewald-rtol = 1e-05
+ewald-rtol-lj = 0.001
+lj-pme-comb-rule = Geometric
+ewald-geometry = 3d
+epsilon-surface = 0
+
+; IMPLICIT SOLVENT ALGORITHM
+implicit-solvent = No
+
+; GENERALIZED BORN ELECTROSTATICS
+; Algorithm for calculating Born radii
+gb-algorithm = Still
+; Frequency of calculating the Born radii inside rlist
+nstgbradii = 1
+; Cutoff for Born radii calculation; the contribution from atoms
+; between rlist and rgbradii is updated every nstlist steps
+rgbradii = 1
+; Dielectric coefficient of the implicit solvent
+gb-epsilon-solvent = 80
+; Salt concentration in M for Generalized Born models
+gb-saltconc = 0
+; Scaling factors used in the OBC GB model. Default values are OBC(II)
+gb-obc-alpha = 1
+gb-obc-beta = 0.8
+gb-obc-gamma = 4.85
+gb-dielectric-offset = 0.009
+sa-algorithm = Ace-approximation
+; Surface tension (kJ/mol/nm^2) for the SA (nonpolar surface) part of GBSA
+; The value -1 will set default value for Still/HCT/OBC GB-models.
+sa-surface-tension = -1
+
+; OPTIONS FOR WEAK COUPLING ALGORITHMS
+; Temperature coupling
+tcoupl = No
+nsttcouple = -1
+nh-chain-length = 10
+print-nose-hoover-chain-variables = no
+; Groups to couple separately
+tc-grps =
+; Time constant (ps) and reference temperature (K)
+tau-t = 0.1 0.3
+ref-t =
+; pressure coupling
+pcoupl = No
+pcoupltype = Isotropic
+nstpcouple = -1
+; Time constant (ps), compressibility (1/bar) and reference P (bar)
+tau-p = 1
+compressibility =
+ref-p =
+; Scaling of reference coordinates, No, All or COM
+refcoord-scaling = No
+
+; OPTIONS FOR QMMM calculations
+QMMM = no
+; Groups treated Quantum Mechanically
+QMMM-grps =
+; QM method
+QMmethod =
+; QMMM scheme
+QMMMscheme = normal
+; QM basisset
+QMbasis =
+; QM charge
+QMcharge =
+; QM multiplicity
+QMmult =
+; Surface Hopping
+SH =
+; CAS space options
+CASorbitals =
+CASelectrons =
+SAon =
+SAoff =
+SAsteps =
+; Scale factor for MM charges
+MMChargeScaleFactor = 1
+; Optimization of QM subsystem
+bOPT =
+bTS =
+
+; SIMULATED ANNEALING
+; Type of annealing for each temperature group (no/single/periodic)
+annealing =
+; Number of time points to use for specifying annealing in each group
+annealing-npoints =
+; List of times at the annealing points for each group
+annealing-time =
+; Temp. at each annealing point, for each group.
+annealing-temp =
+
+; GENERATE VELOCITIES FOR STARTUP RUN
+gen-vel = no
+gen-temp = 300
+gen-seed = -1
+
+; OPTIONS FOR BONDS
+constraints = none
+; Type of constraint algorithm
+constraint-algorithm = Lincs
+; Do not constrain the start configuration
+continuation = no
+; Use successive overrelaxation to reduce the number of shake iterations
+Shake-SOR = no
+; Relative tolerance of shake
+shake-tol = 0.0001
+; Highest order in the expansion of the constraint coupling matrix
+lincs-order = 4
+; Number of iterations in the final step of LINCS. 1 is fine for
+; normal simulations, but use 2 to conserve energy in NVE runs.
+; For energy minimization with constraints it should be 4 to 8.
+lincs-iter = 1
+; Lincs will write a warning to the stderr if in one step a bond
+; rotates over more degrees than
+lincs-warnangle = 30
+; Convert harmonic bonds to morse potentials
+morse = no
+
+; ENERGY GROUP EXCLUSIONS
+; Pairs of energy groups for which all non-bonded interactions are excluded
+energygrp-excl =
+
+; WALLS
+; Number of walls, type, atom types, densities and box-z scale factor for Ewald
+nwall = 0
+wall-type = 9-3
+wall-r-linpot = -1
+wall-atomtype =
+wall-density =
+wall-ewald-zfac = 3
+
+; COM PULLING
+pull = no
+
+; ENFORCED ROTATION
+; Enforced rotation: No or Yes
+rotation = no
+
+; Group to display and/or manipulate in interactive MD session
+IMD-group =
+
+; NMR refinement stuff
+; Distance restraints type: No, Simple or Ensemble
+disre = No
+; Force weighting of pairs in one distance restraint: Conservative or Equal
+disre-weighting = Conservative
+; Use sqrt of the time averaged times the instantaneous violation
+disre-mixed = no
+disre-fc = 1000
+disre-tau = 0
+; Output frequency for pair distances to energy file
+nstdisreout = 100
+; Orientation restraints: No or Yes
+orire = no
+; Orientation restraints force constant and tau for time averaging
+orire-fc = 0
+orire-tau = 0
+orire-fitgrp =
+; Output frequency for trace(SD) and S to energy file
+nstorireout = 100
+
+; Free energy variables
+free-energy = no
+couple-moltype =
+couple-lambda0 = vdw-q
+couple-lambda1 = vdw-q
+couple-intramol = no
+init-lambda = -1
+init-lambda-state = -1
+delta-lambda = 0
+nstdhdl = 50
+fep-lambdas =
+mass-lambdas =
+coul-lambdas =
+vdw-lambdas =
+bonded-lambdas =
+restraint-lambdas =
+temperature-lambdas =
+calc-lambda-neighbors = 1
+init-lambda-weights =
+dhdl-print-energy = no
+sc-alpha = 0
+sc-power = 1
+sc-r-power = 6
+sc-sigma = 0.3
+sc-coul = no
+separate-dhdl-file = yes
+dhdl-derivatives = yes
+dh_hist_size = 0
+dh_hist_spacing = 0.1
+
+; Non-equilibrium MD stuff
+acc-grps =
+accelerate =
+freezegrps =
+freezedim =
+cos-acceleration = 0
+deform =
+
+; simulated tempering variables
+simulated-tempering = no
+simulated-tempering-scaling = geometric
+sim-temp-low = 300
+sim-temp-high = 300
+
+; Ion/water position swapping for computational electrophysiology setups
+; Swap positions along direction: no, X, Y, Z
+swapcoords = no
+adress = no
+
+; User defined thingies
+user1-grps =
+user2-grps =
+userint1 = 0
+userint2 = 0
+userint3 = 0
+userint4 = 0
+userreal1 = 0
+userreal2 = 0
+userreal3 = 0
+userreal4 = 0
+</String>
+</ReferenceData>
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <Bool Name="Error parsing mdp file">false</Bool>
+ <String Name="OutputMdpFile">
+; VARIOUS PREPROCESSING OPTIONS
+; Preprocessor information: use cpp syntax.
+; e.g.: -I/home/joe/doe -I/home/mary/roe
+include =
+; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
+define =
+
+; RUN CONTROL PARAMETERS
+integrator = md
+; Start time and timestep in ps
+tinit = 0
+dt = 0.001
+nsteps = 0
+; For exact run continuation or redoing part of a run
+init-step = 0
+; Part index is updated automatically on checkpointing (keeps files separate)
+simulation-part = 1
+; mode for center of mass motion removal
+comm-mode = Linear
+; number of steps for center of mass motion removal
+nstcomm = 100
+; group(s) for center of mass motion removal
+comm-grps =
+
+; LANGEVIN DYNAMICS OPTIONS
+; Friction coefficient (amu/ps) and random seed
+bd-fric = 0
+ld-seed = -1
+
+; ENERGY MINIMIZATION OPTIONS
+; Force tolerance and initial step-size
+emtol = 10
+emstep = 0.01
+; Max number of iterations in relax-shells
+niter = 20
+; Step size (ps^2) for minimization of flexible constraints
+fcstep = 0
+; Frequency of steepest descents steps when doing CG
+nstcgsteep = 1000
+nbfgscorr = 10
+
+; TEST PARTICLE INSERTION OPTIONS
+rtpi = 0.05
+
+; OUTPUT CONTROL OPTIONS
+; Output frequency for coords (x), velocities (v) and forces (f)
+nstxout = 0
+nstvout = 0
+nstfout = 0
+; Output frequency for energies to log file and energy file
+nstlog = 1000
+nstcalcenergy = 100
+nstenergy = 1000
+; Output frequency and precision for .xtc file
+nstxout-compressed = 0
+compressed-x-precision = 1000
+; This selects the subset of atoms for the compressed
+; trajectory file. You can select multiple groups. By
+; default, all atoms will be written.
+compressed-x-grps =
+; Selection of energy groups
+energygrps =
+
+; NEIGHBORSEARCHING PARAMETERS
+; cut-off scheme (Verlet: particle based cut-offs, group: using charge groups)
+cutoff-scheme = Group
+; nblist update frequency
+nstlist = 10
+; ns algorithm (simple or grid)
+ns-type = Grid
+; Periodic boundary conditions: xyz, no, xy
+pbc = xyz
+periodic-molecules = no
+; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
+; a value of -1 means: use rlist
+verlet-buffer-tolerance = 0.005
+; nblist cut-off
+rlist = 1
+; long-range cut-off for switched potentials
+
+; OPTIONS FOR ELECTROSTATICS AND VDW
+; Method for doing electrostatics
+coulombtype = Cut-off
+coulomb-modifier = Potential-shift-Verlet
+rcoulomb-switch = 0
+rcoulomb = 1
+; Relative dielectric constant for the medium and the reaction field
+epsilon-r = 1
+epsilon-rf = 0
+; Method for doing Van der Waals
+vdw-type = Cut-off
+vdw-modifier = Potential-shift-Verlet
+; cut-off lengths
+rvdw-switch = 0
+rvdw = 1
+; Apply long range dispersion corrections for Energy and Pressure
+DispCorr = No
+; Extension of the potential lookup tables beyond the cut-off
+table-extension = 1
+; Separate tables between energy group pairs
+energygrp-table =
+; Spacing for the PME/PPPM FFT grid
+fourierspacing = 0.12
+; FFT grid size, when a value is 0 fourierspacing will be used
+fourier-nx = 0
+fourier-ny = 0
+fourier-nz = 0
+; EWALD/PME/PPPM parameters
+pme-order = 4
+ewald-rtol = 1e-05
+ewald-rtol-lj = 0.001
+lj-pme-comb-rule = Geometric
+ewald-geometry = 3d
+epsilon-surface = 0
+
+; IMPLICIT SOLVENT ALGORITHM
+implicit-solvent = No
+
+; GENERALIZED BORN ELECTROSTATICS
+; Algorithm for calculating Born radii
+gb-algorithm = Still
+; Frequency of calculating the Born radii inside rlist
+nstgbradii = 1
+; Cutoff for Born radii calculation; the contribution from atoms
+; between rlist and rgbradii is updated every nstlist steps
+rgbradii = 1
+; Dielectric coefficient of the implicit solvent
+gb-epsilon-solvent = 80
+; Salt concentration in M for Generalized Born models
+gb-saltconc = 0
+; Scaling factors used in the OBC GB model. Default values are OBC(II)
+gb-obc-alpha = 1
+gb-obc-beta = 0.8
+gb-obc-gamma = 4.85
+gb-dielectric-offset = 0.009
+sa-algorithm = Ace-approximation
+; Surface tension (kJ/mol/nm^2) for the SA (nonpolar surface) part of GBSA
+; The value -1 will set default value for Still/HCT/OBC GB-models.
+sa-surface-tension = -1
+
+; OPTIONS FOR WEAK COUPLING ALGORITHMS
+; Temperature coupling
+tcoupl = No
+nsttcouple = -1
+nh-chain-length = 10
+print-nose-hoover-chain-variables = no
+; Groups to couple separately
+tc-grps =
+; Time constant (ps) and reference temperature (K)
+tau-t =
+ref-t =
+; pressure coupling
+pcoupl = No
+pcoupltype = Isotropic
+nstpcouple = -1
+; Time constant (ps), compressibility (1/bar) and reference P (bar)
+tau-p = 1
+compressibility =
+ref-p =
+; Scaling of reference coordinates, No, All or COM
+refcoord-scaling = No
+
+; OPTIONS FOR QMMM calculations
+QMMM = no
+; Groups treated Quantum Mechanically
+QMMM-grps =
+; QM method
+QMmethod =
+; QMMM scheme
+QMMMscheme = normal
+; QM basisset
+QMbasis =
+; QM charge
+QMcharge =
+; QM multiplicity
+QMmult =
+; Surface Hopping
+SH =
+; CAS space options
+CASorbitals =
+CASelectrons =
+SAon =
+SAoff =
+SAsteps =
+; Scale factor for MM charges
+MMChargeScaleFactor = 1
+; Optimization of QM subsystem
+bOPT =
+bTS =
+
+; SIMULATED ANNEALING
+; Type of annealing for each temperature group (no/single/periodic)
+annealing =
+; Number of time points to use for specifying annealing in each group
+annealing-npoints =
+; List of times at the annealing points for each group
+annealing-time =
+; Temp. at each annealing point, for each group.
+annealing-temp =
+
+; GENERATE VELOCITIES FOR STARTUP RUN
+gen-vel = no
+gen-temp = 300
+gen-seed = -1
+
+; OPTIONS FOR BONDS
+constraints = none
+; Type of constraint algorithm
+constraint-algorithm = Lincs
+; Do not constrain the start configuration
+continuation = no
+; Use successive overrelaxation to reduce the number of shake iterations
+Shake-SOR = no
+; Relative tolerance of shake
+shake-tol = 0.0001
+; Highest order in the expansion of the constraint coupling matrix
+lincs-order = 4
+; Number of iterations in the final step of LINCS. 1 is fine for
+; normal simulations, but use 2 to conserve energy in NVE runs.
+; For energy minimization with constraints it should be 4 to 8.
+lincs-iter = 1
+; Lincs will write a warning to the stderr if in one step a bond
+; rotates over more degrees than
+lincs-warnangle = 30
+; Convert harmonic bonds to morse potentials
+morse = no
+
+; ENERGY GROUP EXCLUSIONS
+; Pairs of energy groups for which all non-bonded interactions are excluded
+energygrp-excl =
+
+; WALLS
+; Number of walls, type, atom types, densities and box-z scale factor for Ewald
+nwall = 0
+wall-type = 9-3
+wall-r-linpot = -1
+wall-atomtype =
+wall-density =
+wall-ewald-zfac = 3
+
+; COM PULLING
+pull = no
+
+; ENFORCED ROTATION
+; Enforced rotation: No or Yes
+rotation = no
+
+; Group to display and/or manipulate in interactive MD session
+IMD-group =
+
+; NMR refinement stuff
+; Distance restraints type: No, Simple or Ensemble
+disre = No
+; Force weighting of pairs in one distance restraint: Conservative or Equal
+disre-weighting = Conservative
+; Use sqrt of the time averaged times the instantaneous violation
+disre-mixed = no
+disre-fc = 1000
+disre-tau = 0
+; Output frequency for pair distances to energy file
+nstdisreout = 100
+; Orientation restraints: No or Yes
+orire = no
+; Orientation restraints force constant and tau for time averaging
+orire-fc = 0
+orire-tau = 0
+orire-fitgrp =
+; Output frequency for trace(SD) and S to energy file
+nstorireout = 100
+
+; Free energy variables
+free-energy = no
+couple-moltype =
+couple-lambda0 = vdw-q
+couple-lambda1 = vdw-q
+couple-intramol = no
+init-lambda = -1
+init-lambda-state = -1
+delta-lambda = 0
+nstdhdl = 50
+fep-lambdas =
+mass-lambdas =
+coul-lambdas =
+vdw-lambdas =
+bonded-lambdas =
+restraint-lambdas =
+temperature-lambdas =
+calc-lambda-neighbors = 1
+init-lambda-weights =
+dhdl-print-energy = no
+sc-alpha = 0
+sc-power = 1
+sc-r-power = 6
+sc-sigma = 0.3
+sc-coul = no
+separate-dhdl-file = yes
+dhdl-derivatives = yes
+dh_hist_size = 0
+dh_hist_spacing = 0.1
+
+; Non-equilibrium MD stuff
+acc-grps =
+accelerate =
+freezegrps =
+freezedim =
+cos-acceleration = 0
+deform =
+
+; simulated tempering variables
+simulated-tempering = no
+simulated-tempering-scaling = geometric
+sim-temp-low = 300
+sim-temp-high = 300
+
+; Ion/water position swapping for computational electrophysiology setups
+; Swap positions along direction: no, X, Y, Z
+swapcoords = no
+adress = no
+
+; User defined thingies
+user1-grps =
+user2-grps =
+userint1 = 0
+userint2 = 0
+userint3 = 0
+userint4 = 0
+userreal1 = 0
+userreal2 = 0
+userreal3 = 0
+userreal4 = 0
+</String>
+</ReferenceData>
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <Bool Name="Error parsing mdp file">false</Bool>
+ <String Name="OutputMdpFile">
+; VARIOUS PREPROCESSING OPTIONS
+; Preprocessor information: use cpp syntax.
+; e.g.: -I/home/joe/doe -I/home/mary/roe
+include =
+; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
+define =
+
+; RUN CONTROL PARAMETERS
+integrator = md
+; Start time and timestep in ps
+tinit = 0
+dt = 0.001
+nsteps = 0
+; For exact run continuation or redoing part of a run
+init-step = 0
+; Part index is updated automatically on checkpointing (keeps files separate)
+simulation-part = 1
+; mode for center of mass motion removal
+comm-mode = Linear
+; number of steps for center of mass motion removal
+nstcomm = 100
+; group(s) for center of mass motion removal
+comm-grps =
+
+; LANGEVIN DYNAMICS OPTIONS
+; Friction coefficient (amu/ps) and random seed
+bd-fric = 0
+ld-seed = -1
+
+; ENERGY MINIMIZATION OPTIONS
+; Force tolerance and initial step-size
+emtol = 10
+emstep = 0.01
+; Max number of iterations in relax-shells
+niter = 20
+; Step size (ps^2) for minimization of flexible constraints
+fcstep = 0
+; Frequency of steepest descents steps when doing CG
+nstcgsteep = 1000
+nbfgscorr = 10
+
+; TEST PARTICLE INSERTION OPTIONS
+rtpi = 0.05
+
+; OUTPUT CONTROL OPTIONS
+; Output frequency for coords (x), velocities (v) and forces (f)
+nstxout = 0
+nstvout = 0
+nstfout = 0
+; Output frequency for energies to log file and energy file
+nstlog = 1000
+nstcalcenergy = 100
+nstenergy = 1000
+; Output frequency and precision for .xtc file
+nstxout-compressed = 0
+compressed-x-precision = 1000
+; This selects the subset of atoms for the compressed
+; trajectory file. You can select multiple groups. By
+; default, all atoms will be written.
+compressed-x-grps =
+; Selection of energy groups
+energygrps =
+
+; NEIGHBORSEARCHING PARAMETERS
+; cut-off scheme (Verlet: particle based cut-offs, group: using charge groups)
+cutoff-scheme = Verlet
+; nblist update frequency
+nstlist = 10
+; ns algorithm (simple or grid)
+ns-type = Grid
+; Periodic boundary conditions: xyz, no, xy
+pbc = xyz
+periodic-molecules = no
+; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
+; a value of -1 means: use rlist
+verlet-buffer-tolerance = 0.005
+; nblist cut-off
+rlist = 1
+; long-range cut-off for switched potentials
+
+; OPTIONS FOR ELECTROSTATICS AND VDW
+; Method for doing electrostatics
+coulombtype = Cut-off
+coulomb-modifier = Potential-shift-Verlet
+rcoulomb-switch = 0
+rcoulomb = 1
+; Relative dielectric constant for the medium and the reaction field
+epsilon-r = 1
+epsilon-rf = 0
+; Method for doing Van der Waals
+vdw-type = Cut-off
+vdw-modifier = Potential-shift-Verlet
+; cut-off lengths
+rvdw-switch = 0
+rvdw = 1
+; Apply long range dispersion corrections for Energy and Pressure
+DispCorr = No
+; Extension of the potential lookup tables beyond the cut-off
+table-extension = 1
+; Separate tables between energy group pairs
+energygrp-table =
+; Spacing for the PME/PPPM FFT grid
+fourierspacing = 0.12
+; FFT grid size, when a value is 0 fourierspacing will be used
+fourier-nx = 0
+fourier-ny = 0
+fourier-nz = 0
+; EWALD/PME/PPPM parameters
+pme-order = 4
+ewald-rtol = 1e-05
+ewald-rtol-lj = 0.001
+lj-pme-comb-rule = Geometric
+ewald-geometry = 3d
+epsilon-surface = 0
+
+; IMPLICIT SOLVENT ALGORITHM
+implicit-solvent = No
+
+; GENERALIZED BORN ELECTROSTATICS
+; Algorithm for calculating Born radii
+gb-algorithm = Still
+; Frequency of calculating the Born radii inside rlist
+nstgbradii = 1
+; Cutoff for Born radii calculation; the contribution from atoms
+; between rlist and rgbradii is updated every nstlist steps
+rgbradii = 1
+; Dielectric coefficient of the implicit solvent
+gb-epsilon-solvent = 80
+; Salt concentration in M for Generalized Born models
+gb-saltconc = 0
+; Scaling factors used in the OBC GB model. Default values are OBC(II)
+gb-obc-alpha = 1
+gb-obc-beta = 0.8
+gb-obc-gamma = 4.85
+gb-dielectric-offset = 0.009
+sa-algorithm = Ace-approximation
+; Surface tension (kJ/mol/nm^2) for the SA (nonpolar surface) part of GBSA
+; The value -1 will set default value for Still/HCT/OBC GB-models.
+sa-surface-tension = -1
+
+; OPTIONS FOR WEAK COUPLING ALGORITHMS
+; Temperature coupling
+tcoupl = No
+nsttcouple = -1
+nh-chain-length = 10
+print-nose-hoover-chain-variables = no
+; Groups to couple separately
+tc-grps =
+; Time constant (ps) and reference temperature (K)
+tau-t =
+ref-t =
+; pressure coupling
+pcoupl = No
+pcoupltype = Isotropic
+nstpcouple = -1
+; Time constant (ps), compressibility (1/bar) and reference P (bar)
+tau-p = 1
+compressibility =
+ref-p =
+; Scaling of reference coordinates, No, All or COM
+refcoord-scaling = No
+
+; OPTIONS FOR QMMM calculations
+QMMM = no
+; Groups treated Quantum Mechanically
+QMMM-grps =
+; QM method
+QMmethod =
+; QMMM scheme
+QMMMscheme = normal
+; QM basisset
+QMbasis =
+; QM charge
+QMcharge =
+; QM multiplicity
+QMmult =
+; Surface Hopping
+SH =
+; CAS space options
+CASorbitals =
+CASelectrons =
+SAon =
+SAoff =
+SAsteps =
+; Scale factor for MM charges
+MMChargeScaleFactor = 1
+; Optimization of QM subsystem
+bOPT =
+bTS =
+
+; SIMULATED ANNEALING
+; Type of annealing for each temperature group (no/single/periodic)
+annealing =
+; Number of time points to use for specifying annealing in each group
+annealing-npoints =
+; List of times at the annealing points for each group
+annealing-time =
+; Temp. at each annealing point, for each group.
+annealing-temp =
+
+; GENERATE VELOCITIES FOR STARTUP RUN
+gen-vel = no
+gen-temp = 300
+gen-seed = -1
+
+; OPTIONS FOR BONDS
+constraints = none
+; Type of constraint algorithm
+constraint-algorithm = Lincs
+; Do not constrain the start configuration
+continuation = no
+; Use successive overrelaxation to reduce the number of shake iterations
+Shake-SOR = no
+; Relative tolerance of shake
+shake-tol = 0.0001
+; Highest order in the expansion of the constraint coupling matrix
+lincs-order = 4
+; Number of iterations in the final step of LINCS. 1 is fine for
+; normal simulations, but use 2 to conserve energy in NVE runs.
+; For energy minimization with constraints it should be 4 to 8.
+lincs-iter = 1
+; Lincs will write a warning to the stderr if in one step a bond
+; rotates over more degrees than
+lincs-warnangle = 30
+; Convert harmonic bonds to morse potentials
+morse = no
+
+; ENERGY GROUP EXCLUSIONS
+; Pairs of energy groups for which all non-bonded interactions are excluded
+energygrp-excl =
+
+; WALLS
+; Number of walls, type, atom types, densities and box-z scale factor for Ewald
+nwall = 0
+wall-type = 9-3
+wall-r-linpot = -1
+wall-atomtype =
+wall-density =
+wall-ewald-zfac = 3
+
+; COM PULLING
+pull = no
+
+; ENFORCED ROTATION
+; Enforced rotation: No or Yes
+rotation = no
+
+; Group to display and/or manipulate in interactive MD session
+IMD-group =
+
+; NMR refinement stuff
+; Distance restraints type: No, Simple or Ensemble
+disre = No
+; Force weighting of pairs in one distance restraint: Conservative or Equal
+disre-weighting = Conservative
+; Use sqrt of the time averaged times the instantaneous violation
+disre-mixed = no
+disre-fc = 1000
+disre-tau = 0
+; Output frequency for pair distances to energy file
+nstdisreout = 100
+; Orientation restraints: No or Yes
+orire = no
+; Orientation restraints force constant and tau for time averaging
+orire-fc = 0
+orire-tau = 0
+orire-fitgrp =
+; Output frequency for trace(SD) and S to energy file
+nstorireout = 100
+
+; Free energy variables
+free-energy = no
+couple-moltype =
+couple-lambda0 = vdw-q
+couple-lambda1 = vdw-q
+couple-intramol = no
+init-lambda = -1
+init-lambda-state = -1
+delta-lambda = 0
+nstdhdl = 50
+fep-lambdas =
+mass-lambdas =
+coul-lambdas =
+vdw-lambdas =
+bonded-lambdas =
+restraint-lambdas =
+temperature-lambdas =
+calc-lambda-neighbors = 1
+init-lambda-weights =
+dhdl-print-energy = no
+sc-alpha = 0
+sc-power = 1
+sc-r-power = 6
+sc-sigma = 0.3
+sc-coul = no
+separate-dhdl-file = yes
+dhdl-derivatives = yes
+dh_hist_size = 0
+dh_hist_spacing = 0.1
+
+; Non-equilibrium MD stuff
+acc-grps =
+accelerate =
+freezegrps =
+freezedim =
+cos-acceleration = 0
+deform =
+
+; simulated tempering variables
+simulated-tempering = no
+simulated-tempering-scaling = geometric
+sim-temp-low = 300
+sim-temp-high = 300
+E-x = 1 1.2 -1
+
+; Ion/water position swapping for computational electrophysiology setups
+; Swap positions along direction: no, X, Y, Z
+swapcoords = no
+adress = no
+
+; User defined thingies
+user1-grps =
+user2-grps =
+userint1 = 0
+userint2 = 0
+userint3 = 0
+userint4 = 0
+userreal1 = 0
+userreal2 = 0
+userreal3 = 0
+userreal4 = 0
+</String>
+</ReferenceData>
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <Bool Name="Error parsing mdp file">false</Bool>
+ <String Name="OutputMdpFile">
+; VARIOUS PREPROCESSING OPTIONS
+; Preprocessor information: use cpp syntax.
+; e.g.: -I/home/joe/doe -I/home/mary/roe
+include =
+; e.g.: -DPOSRES -DFLEXIBLE (note these variable names are case sensitive)
+define =
+
+; RUN CONTROL PARAMETERS
+integrator = md
+; Start time and timestep in ps
+tinit = 0
+dt = 0.001
+nsteps = 0
+; For exact run continuation or redoing part of a run
+init-step = 0
+; Part index is updated automatically on checkpointing (keeps files separate)
+simulation-part = 1
+; mode for center of mass motion removal
+comm-mode = Linear
+; number of steps for center of mass motion removal
+nstcomm = 100
+; group(s) for center of mass motion removal
+comm-grps =
+
+; LANGEVIN DYNAMICS OPTIONS
+; Friction coefficient (amu/ps) and random seed
+bd-fric = 0
+ld-seed = -1
+
+; ENERGY MINIMIZATION OPTIONS
+; Force tolerance and initial step-size
+emtol = 10
+emstep = 0.01
+; Max number of iterations in relax-shells
+niter = 20
+; Step size (ps^2) for minimization of flexible constraints
+fcstep = 0
+; Frequency of steepest descents steps when doing CG
+nstcgsteep = 1000
+nbfgscorr = 10
+
+; TEST PARTICLE INSERTION OPTIONS
+rtpi = 0.05
+
+; OUTPUT CONTROL OPTIONS
+; Output frequency for coords (x), velocities (v) and forces (f)
+nstxout = 0
+nstvout = 0
+nstfout = 0
+; Output frequency for energies to log file and energy file
+nstlog = 1000
+nstcalcenergy = 100
+nstenergy = 1000
+; Output frequency and precision for .xtc file
+nstxout-compressed = 0
+compressed-x-precision = 1000
+; This selects the subset of atoms for the compressed
+; trajectory file. You can select multiple groups. By
+; default, all atoms will be written.
+compressed-x-grps =
+; Selection of energy groups
+energygrps =
+
+; NEIGHBORSEARCHING PARAMETERS
+; cut-off scheme (Verlet: particle based cut-offs, group: using charge groups)
+cutoff-scheme = Verlet
+; nblist update frequency
+nstlist = 10
+; ns algorithm (simple or grid)
+ns-type = Grid
+; Periodic boundary conditions: xyz, no, xy
+pbc = xyz
+periodic-molecules = no
+; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
+; a value of -1 means: use rlist
+verlet-buffer-tolerance = 0.005
+; nblist cut-off
+rlist = 1
+; long-range cut-off for switched potentials
+
+; OPTIONS FOR ELECTROSTATICS AND VDW
+; Method for doing electrostatics
+coulombtype = Cut-off
+coulomb-modifier = Potential-shift-Verlet
+rcoulomb-switch = 0
+rcoulomb = 1
+; Relative dielectric constant for the medium and the reaction field
+epsilon-r = 1
+epsilon-rf = 0
+; Method for doing Van der Waals
+vdw-type = Cut-off
+vdw-modifier = Potential-shift-Verlet
+; cut-off lengths
+rvdw-switch = 0
+rvdw = 1
+; Apply long range dispersion corrections for Energy and Pressure
+DispCorr = No
+; Extension of the potential lookup tables beyond the cut-off
+table-extension = 1
+; Separate tables between energy group pairs
+energygrp-table =
+; Spacing for the PME/PPPM FFT grid
+fourierspacing = 0.12
+; FFT grid size, when a value is 0 fourierspacing will be used
+fourier-nx = 0
+fourier-ny = 0
+fourier-nz = 0
+; EWALD/PME/PPPM parameters
+pme-order = 4
+ewald-rtol = 1e-05
+ewald-rtol-lj = 0.001
+lj-pme-comb-rule = Geometric
+ewald-geometry = 3d
+epsilon-surface = 0
+
+; IMPLICIT SOLVENT ALGORITHM
+implicit-solvent = No
+
+; GENERALIZED BORN ELECTROSTATICS
+; Algorithm for calculating Born radii
+gb-algorithm = Still
+; Frequency of calculating the Born radii inside rlist
+nstgbradii = 1
+; Cutoff for Born radii calculation; the contribution from atoms
+; between rlist and rgbradii is updated every nstlist steps
+rgbradii = 1
+; Dielectric coefficient of the implicit solvent
+gb-epsilon-solvent = 80
+; Salt concentration in M for Generalized Born models
+gb-saltconc = 0
+; Scaling factors used in the OBC GB model. Default values are OBC(II)
+gb-obc-alpha = 1
+gb-obc-beta = 0.8
+gb-obc-gamma = 4.85
+gb-dielectric-offset = 0.009
+sa-algorithm = Ace-approximation
+; Surface tension (kJ/mol/nm^2) for the SA (nonpolar surface) part of GBSA
+; The value -1 will set default value for Still/HCT/OBC GB-models.
+sa-surface-tension = -1
+
+; OPTIONS FOR WEAK COUPLING ALGORITHMS
+; Temperature coupling
+tcoupl = No
+nsttcouple = -1
+nh-chain-length = 10
+print-nose-hoover-chain-variables = no
+; Groups to couple separately
+tc-grps =
+; Time constant (ps) and reference temperature (K)
+tau-t =
+ref-t =
+; pressure coupling
+pcoupl = No
+pcoupltype = Isotropic
+nstpcouple = -1
+; Time constant (ps), compressibility (1/bar) and reference P (bar)
+tau-p = 1
+compressibility =
+ref-p =
+; Scaling of reference coordinates, No, All or COM
+refcoord-scaling = No
+
+; OPTIONS FOR QMMM calculations
+QMMM = no
+; Groups treated Quantum Mechanically
+QMMM-grps =
+; QM method
+QMmethod =
+; QMMM scheme
+QMMMscheme = normal
+; QM basisset
+QMbasis =
+; QM charge
+QMcharge =
+; QM multiplicity
+QMmult =
+; Surface Hopping
+SH =
+; CAS space options
+CASorbitals =
+CASelectrons =
+SAon =
+SAoff =
+SAsteps =
+; Scale factor for MM charges
+MMChargeScaleFactor = 1
+; Optimization of QM subsystem
+bOPT =
+bTS =
+
+; SIMULATED ANNEALING
+; Type of annealing for each temperature group (no/single/periodic)
+annealing =
+; Number of time points to use for specifying annealing in each group
+annealing-npoints =
+; List of times at the annealing points for each group
+annealing-time =
+; Temp. at each annealing point, for each group.
+annealing-temp =
+
+; GENERATE VELOCITIES FOR STARTUP RUN
+gen-vel = no
+gen-temp = 300
+gen-seed = -1
+
+; OPTIONS FOR BONDS
+constraints = none
+; Type of constraint algorithm
+constraint-algorithm = Lincs
+; Do not constrain the start configuration
+continuation = no
+; Use successive overrelaxation to reduce the number of shake iterations
+Shake-SOR = no
+; Relative tolerance of shake
+shake-tol = 0.0001
+; Highest order in the expansion of the constraint coupling matrix
+lincs-order = 4
+; Number of iterations in the final step of LINCS. 1 is fine for
+; normal simulations, but use 2 to conserve energy in NVE runs.
+; For energy minimization with constraints it should be 4 to 8.
+lincs-iter = 1
+; Lincs will write a warning to the stderr if in one step a bond
+; rotates over more degrees than
+lincs-warnangle = 30
+; Convert harmonic bonds to morse potentials
+morse = no
+
+; ENERGY GROUP EXCLUSIONS
+; Pairs of energy groups for which all non-bonded interactions are excluded
+energygrp-excl =
+
+; WALLS
+; Number of walls, type, atom types, densities and box-z scale factor for Ewald
+nwall = 0
+wall-type = 9-3
+wall-r-linpot = -1
+wall-atomtype =
+wall-density =
+wall-ewald-zfac = 3
+
+; COM PULLING
+pull = no
+
+; ENFORCED ROTATION
+; Enforced rotation: No or Yes
+rotation = no
+
+; Group to display and/or manipulate in interactive MD session
+IMD-group =
+
+; NMR refinement stuff
+; Distance restraints type: No, Simple or Ensemble
+disre = No
+; Force weighting of pairs in one distance restraint: Conservative or Equal
+disre-weighting = Conservative
+; Use sqrt of the time averaged times the instantaneous violation
+disre-mixed = no
+disre-fc = 1000
+disre-tau = 0
+; Output frequency for pair distances to energy file
+nstdisreout = 100
+; Orientation restraints: No or Yes
+orire = no
+; Orientation restraints force constant and tau for time averaging
+orire-fc = 0
+orire-tau = 0
+orire-fitgrp =
+; Output frequency for trace(SD) and S to energy file
+nstorireout = 100
+
+; Free energy variables
+free-energy = no
+couple-moltype =
+couple-lambda0 = vdw-q
+couple-lambda1 = vdw-q
+couple-intramol = no
+init-lambda = -1
+init-lambda-state = -1
+delta-lambda = 0
+nstdhdl = 50
+fep-lambdas =
+mass-lambdas =
+coul-lambdas =
+vdw-lambdas =
+bonded-lambdas =
+restraint-lambdas =
+temperature-lambdas =
+calc-lambda-neighbors = 1
+init-lambda-weights =
+dhdl-print-energy = no
+sc-alpha = 0
+sc-power = 1
+sc-r-power = 6
+sc-sigma = 0.3
+sc-coul = no
+separate-dhdl-file = yes
+dhdl-derivatives = yes
+dh_hist_size = 0
+dh_hist_spacing = 0.1
+
+; Non-equilibrium MD stuff
+acc-grps =
+accelerate =
+freezegrps =
+freezedim =
+cos-acceleration = 0
+deform =
+
+; simulated tempering variables
+simulated-tempering = no
+simulated-tempering-scaling = geometric
+sim-temp-low = 300
+sim-temp-high = 300
+
+; Ion/water position swapping for computational electrophysiology setups
+; Swap positions along direction: no, X, Y, Z
+swapcoords = no
+adress = no
+
+; User defined thingies
+user1-grps =
+user2-grps =
+userint1 = 0
+userint2 = 0
+userint3 = 0
+userint4 = 0
+userreal1 = 0
+userreal2 = 0
+userreal3 = 0
+userreal4 = 0
+</String>
+</ReferenceData>
ITYPE ("pieces", *pieces, 1);
EETYPE("asymmetry", *bALLOW_ASYMMETRY, yesno_names);
check_warning_error(wi, FARGS);
- write_inpfile(membed_input, ninp, inp, FALSE, wi);
+ write_inpfile(membed_input, ninp, inp, FALSE, WriteMdpHeader::yes, wi);
done_warning(wi, FARGS);
}
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2013,2014,2015,2016, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2016,2017, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
// and verlet-buffer-tolerance = -1 gives a grompp error. If we keep
// things that way, this function should be renamed. For now,
// force the use of the group scheme.
+// TODO There is possible outstanding unexplained behaviour of mdp
+// input parsing e.g. Redmine 2074, so this particular set of mdp
+// contents is also tested with GetIrTest in gmxpreprocess-test.
void
SimulationRunner::useEmptyMdpFile()
{