Merge branch release-5-1
authorMark Abraham <mark.j.abraham@gmail.com>
Fri, 24 Jul 2015 14:40:41 +0000 (16:40 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Fri, 24 Jul 2015 14:40:41 +0000 (16:40 +0200)
Conflicts:
src/gromacs/commandline/shellcompletions.cpp
Removed line no longer appropriate, now that zsh completion
is supported. Master had changed the previous line, which
git flags as a merge conflict.

Change-Id: Id9d37615b2bd121b1206ca0e6e8eac62fcf38f01

15 files changed:
docs/links.dat
docs/user-guide/cutoff-schemes.rst
docs/user-guide/environment-variables.rst
docs/user-guide/file-formats.rst
docs/user-guide/mdrun-features.rst
docs/user-guide/mdrun-performance.rst
scripts/GMXRC.bash.cmakein
src/gromacs/commandline/shellcompletions.cpp
src/gromacs/gmxpreprocess/grompp.cpp
src/gromacs/mdlib/compute_io.c
src/gromacs/mdlib/perf_est.c
src/gromacs/options/filenameoptionmanager.cpp
src/gromacs/options/tests/filenameoptionmanager.cpp
src/gromacs/trajectoryanalysis/modules/sasa.cpp
src/programs/mdrun/resource-division.cpp

index 01ee831cccefe0f468669db7165cbe30d930ec25..0c34fad9bbdeb7ac4d7d150d9c8d1bdc14436f2e 100644 (file)
@@ -2,7 +2,6 @@ cpt
 dat
 dlg
 edi
-edo
 edr
 ene
 eps
index 5cdfdfd6c0a2de20a405a1ac55e33d81434747ce..5c1bb6fb2009202ddf3a38792251514237c5e3e8 100644 (file)
@@ -7,7 +7,7 @@ on modern CPUs and accelerators, and support nearly all of the
 algorithms used in |Gromacs|.
 
 Before version 4.6, |Gromacs| always used pair-lists based on groups of
-particles. These groups of particles were orginally charge-groups, which were
+particles. These groups of particles were originally charge-groups, which were
 necessary with plain cut-off electrostatics. With the use of PME (or
 reaction-field with a buffer), charge groups are no longer necessary
 (and are ignored in the Verlet scheme). In |Gromacs| 4.6 and later, the
@@ -18,7 +18,7 @@ converted, and for the few cases where it may allow faster simulations
 with bio-molecular systems dominated by water.
 
 Without PME, the group cut-off scheme should generally be combined
-with a buffered pair-list to help avoid artefacts. However, the
+with a buffered pair-list to help avoid artifacts. However, the
 group-scheme kernels that can implement this are much slower than
 either the unbuffered group-scheme kernels, or the buffered
 Verlet-scheme kernels. Use of the Verlet scheme is strongly encouraged
@@ -53,7 +53,7 @@ unbuffered cut-off scheme             default      not by default
 exact cut-off                         shift/switch always
 potential-shift interactions          yes          yes
 potential-switch interactions         yes          yes
-force-switch interations              yes          yes
+force-switch interactions             yes          yes
 switched potential                    yes          yes
 switched forces                       yes          yes
 non-periodic systems                  yes          Z + walls
@@ -86,7 +86,7 @@ the cut-off length each time step. This makes simulations much
 slower. The performance of the Verlet scheme with the new non-bonded
 kernels is independent of system composition and is intended to always
 run with a buffered pair-list. Typically, buffer size is 0 to 10% of
-the cut-off, so you could win a bit of peformance by reducing or
+the cut-off, so you could win a bit of performance by reducing or
 removing the buffer, but this might not be a good trade-off of
 simulation quality.
 
index 419cbda50d5b4e63da94c9ed6937af1b27e01428..f84247a75192fa2c03e5f4fbf89543c9fe4fb8ac 100644 (file)
@@ -9,7 +9,7 @@ listed in the following sections. Most environment variables function
 by being set in your shell to any non-NULL value. Specific
 requirements are described below if other values need to be set. You
 should consult the documentation for your shell for instructions on
-how to set environment variables in the current shell, or in config
+how to set environment variables in the current shell, or in configuration
 files for future shells. Note that requirements for exporting
 environment variables to jobs run under batch control systems vary and
 you should consult your local documentation for details.
index bdadf4723885efd0863e76219f8878dea2d156af..e85910ab9a70d500bd92906cdc81f9e516e8cca2 100644 (file)
@@ -83,8 +83,6 @@ Other files
     generic, preferred for input
 :ref:`edi`
     essential dynamics constraints input for :ref:`gmx mdrun`
-:ref:`edo`
-    essential dynamics constraints output for :ref:`gmx mdrun`
 :ref:`eps`
     Encapsulated Postscript
 :ref:`log`
@@ -177,20 +175,6 @@ to run Molecular Dynamics with Essential Dynamics constraints.
    output from the programs in the <tt>ESSDYN</tt> menu of the
    <A HREF="http://www.sander.embl-heidelberg.de/whatif/">WHAT IF</A> program.
 
-.. _edo:
-
-edo
----
-
-Files with the edo file extension are generated by :ref:`gmx mdrun`
-if Molecular Dynamics is performed with Essential Dynamics
-constraints. Depending on the parameters set in the :ref:`edi`:
-file, edo files may contain projections of positions,
-velocities and forces onto selected eigenvectors during the run as well
-as RMSD values, or information about specific types of constraints.
-Specific results can be extracted from the edo files with standard Unix
-utilities like ``awk``.
-
 .. _edr:
 
 edr
@@ -210,7 +194,7 @@ The ene file extension stands for binary energy file. It holds the
 energies as generated during your :ref:`gmx mdrun`.
 
 The file can be transformed to a portable energy file (portable
-accross hardware platforms), the :ref:`edr` file using the program
+across hardware platforms), the :ref:`edr` file using the program
 :ref:`gmx eneconv`.
 
 See also :ref:`gmx energy`.
@@ -334,7 +318,7 @@ were removed with ``-ignh``.
 itp
 ---
 
-The itp file extension stands for include toplogy. These files are included in
+The itp file extension stands for include topology. These files are included in
 topology files (with the :ref:`top` extension).
 
 .. _log:
@@ -435,222 +419,48 @@ The ordering of the items is not important, but if you enter the same
 thing twice, the **last** is used (:ref:`gmx grompp` gives you a note when
 overriding values). Dashes and underscores on the left hand side are ignored.
 
-The values of the options are reasonable values for a 1 nanosecond
+The values of the options are values for a 1 nanosecond
 MD run of a protein in a box of water.
 
+**Note:** The parameters chosen (*e.g.,* short-range cutoffs) depend on the
+force field being used.
+
 ::
 
-    title                    = Yo
-    cpp                      = /lib/cpp
-    include                  = -I../top
-    define                   =
     integrator               = md
     dt                       = 0.002
     nsteps                   = 500000
-    nstxout                  = 5000
-    nstvout                  = 5000
+
     nstlog                   = 5000
-    nstenergy                = 250
-    nstxout-compressed       = 250
-    compressed-x-grps        = Protein
-    energygrps               = Protein  SOL
-    nstlist                  = 10
-    ns-type                  = grid
-    rlist                    = 0.8
-    coulombtype              = cut-off
-    rcoulomb                 = 1.4
-    rvdw                     = 0.8
-    tcoupl                   = Berendsen
-    tc-grps                  = Protein      SOL
-    tau-t                    = 0.1  0.1
-    ref-t                    = 300  300
-    Pcoupl                   = Berendsen
-    tau-p                    = 1.0
-    compressibility          = 4.5e-5
-    ref-p                    = 1.0
-    gen-vel                  = yes
-    gen-temp                 = 300
-    gen-seed                 = 173529
+    nstenergy                = 5000
+    nstxout-compressed       = 5000
+
+    continuation             = yes
     constraints              = all-bonds
+    constraint-algorithm     = lincs
 
-With this input :ref:`gmx grompp` will produce
-an ``mdout.mdp`` with all the options and descriptions:
+    cutoff-scheme            = Verlet
 
-::
+    coulombtype              = PME
+    rcoulomb                 = 1.0
+    
+    vdwtype                  = Cut-off
+    rvdw                     = 1.0
+    DispCorr                 = EnerPres
 
-    ; VARIOUS PREPROCESSING OPTIONS =
-    title                    = Yo
-    cpp                      = /lib/cpp
-    include                  = -I../top
-    define                   =
+    tcoupl                   = V-rescale
+    tc-grps                  = Protein  SOL
+    tau-t                    = 0.1      0.1
+    ref-t                    = 300      300
 
-    ; RUN CONTROL PARAMETERS =
-    integrator               = md
-    ; start time and timestep in ps =
-    tinit                    = 0
-    dt                       = 0.002
-    nsteps                   = 500000
-    ; number of steps for center of mass motion removal =
-    nstcomm                  = 1
-    comm-grps                =
-
-    ; LANGEVIN DYNAMICS OPTIONS =
-    ; Temperature, friction coefficient (amu/ps) and random seed =
-    bd-temp                  = 300
-    bd-fric                  = 0
-    ld-seed                  = 1993
-
-    ; ENERGY MINIMIZATION OPTIONS =
-    ; Force tolerance and initial step-size =
-    emtol                    = 100
-    emstep                   = 0.01
-    ; Max number of iterations in relax-shells =
-    niter                    = 20
-    ; Frequency of steepest descents steps when doing CG =
-    nstcgsteep               = 1000
-
-    ; OUTPUT CONTROL OPTIONS =
-    ; Output frequency for coords (x), velocities (v) and forces (f) =
-    nstxout                  = 5000
-    nstvout                  = 5000
-    nstfout                  = 0
-    ; Output frequency for energies to log file and energy file =
-    nstlog                   = 5000
-    nstenergy                = 250
-    ; Output frequency and precision for xtc file =
-    nstxout-compressed       = 250
-    compressed-x-precision   = 1000
-    ; This selects the subset of atoms for the xtc file. You can =
-    ; select multiple groups. By default all atoms will be written. =
-    compressed-x-grps        = Protein
-    ; Selection of energy groups =
-    energygrps               = Protein  SOL
-
-    ; NEIGHBORSEARCHING PARAMETERS =
-    ; nblist update frequency =
-    nstlist                  = 10
-    ; ns algorithm (simple or grid) =
-    ns-type                  = grid
-    ; Periodic boundary conditions: xyz or none =
-    pbc                      = xyz
-    ; nblist cut-off         =
-    rlist                    = 0.8
-
-    ; OPTIONS FOR ELECTROSTATICS AND VDW =
-    ; Method for doing electrostatics =
-    coulombtype              = cut-off
-    rcoulomb-switch          = 0
-    rcoulomb                 = 1.4
-    ; Dielectric constant (DC) for cut-off or DC of reaction field =
-    epsilon-r                = 1
-    ; Method for doing Van der Waals =
-    vdw-type                 = Cut-off
-    ; cut-off lengths        =
-    rvdw-switch              = 0
-    rvdw                     = 0.8
-    ; Apply long range dispersion corrections for Energy and Pressure =
-    DispCorr                 = No
-    ; 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
-    epsilon-surface          = 0
-
-    ; OPTIONS FOR WEAK COUPLING ALGORITHMS =
-    ; Temperature coupling   =
-    tcoupl                   = Berendsen
-    ; Groups to couple separately =
-    tc-grps                  = Protein      SOL
-    ; Time constant (ps) and reference temperature (K) =
-    tau-t                    = 0.1  0.1
-    ref-t                    = 300  300
-    ; Pressure coupling      =
-    Pcoupl                   = Berendsen
-    Pcoupltype               = Isotropic
-    ; Time constant (ps), compressibility (1/bar) and reference P (bar) =
-    tau-p                    = 1.0
+    pcoupl                   = Parrinello-Rahman
+    tau-p                    = 2.0
     compressibility          = 4.5e-5
     ref-p                    = 1.0
 
-    ; SIMULATED ANNEALING CONTROL =
-    annealing                = no
-    ; Time at which temperature should be zero (ps) =
-    zero-temp-time           = 0
-
-    ; GENERATE VELOCITIES FOR STARTUP RUN =
-    gen-vel                  = yes
-    gen-temp                 = 300
-    gen-seed                 = 173529
-
-    ; OPTIONS FOR BONDS     =
-    constraints              = all-bonds
-    ; Type of constraint algorithm =
-    constraint-algorithm     = Lincs
-    ; Do not constrain the start configuration =
-    unconstrained-start      = no
-    ; Relative tolerance of shake =
-    shake-tol                = 0.0001
-    ; Highest order in the expansion of the constraint coupling matrix =
-    lincs-order              = 4
-    ; 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
-
-    ; NMR refinement stuff  =
-    ; Distance restraints type: No, Simple or Ensemble =
-    disre                    = No
-    ; Force weighting of pairs in one distance restraint: Equal or Conservative =
-    disre-weighting          = Equal
-    ; 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
-
-    ; Free energy control stuff =
-    free-energy              = no
-    init-lambda              = 0
-    delta-lambda             = 0
-    sc-alpha                 = 0
-    sc-sigma                 = 0.3
-
-    ; Non-equilibrium MD stuff =
-    acc-grps                 =
-    accelerate               =
-    freezegrps               =
-    freezedim                =
-    cos-acceleration         = 0
-    energygrp-excl           =
-
-    ; Electric fields       =
-    ; Format is number of terms (int) and for all terms an amplitude (real) =
-    ; and a phase angle (real) =
-    E-x                      =
-    E-xt                     =
-    E-y                      =
-    E-yt                     =
-    E-z                      =
-    E-zt                     =
-
-    ; User defined thingies =
-    user1-grps               =
-    user2-grps               =
-    userint1                 = 0
-    userint2                 = 0
-    userint3                 = 0
-    userint4                 = 0
-    userreal1                = 0
-    userreal2                = 0
-    userreal3                = 0
-    userreal4                = 0
+With this input :ref:`gmx grompp` will produce a commented file with the default name
+``mdout.mdp``. That file will contain the above options, as well as all other
+options not explicitly set, showing their default values.
 
 .. _mtx:
 
@@ -718,16 +528,16 @@ structure files in the protein databank file format.  The protein
 databank file format describes the positions of atoms in a molecular
 structure. Coordinates are read from the ATOM and HETATM records,
 until the file ends or an ENDMDL record is encountered.
-GROMACS programs can read and write a simlation box in the
+GROMACS programs can read and write a simulation box in the
 CRYST1 entry.
 The pdb format can also be used as a trajectory format:
-several structures, seperated by ENDMDL, can be read from
+several structures, separated by ENDMDL, can be read from
 or written to one file.
 
 Example
 +++++++
 
-An pdb file should look like this::
+A pdb file should look like this::
 
     ATOM      1  H1  LYS     1      14.260   6.590  34.480  1.00  0.00
     ATOM      2  H2  LYS     1      13.760   5.000  34.340  1.00  0.00
@@ -741,7 +551,7 @@ An pdb file should look like this::
 rtp
 ---
 
-The rtp file extension stands for residue toplogy.
+The rtp file extension stands for residue topology.
 Such a file is needed by :ref:`gmx pdb2gmx`
 to make a GROMACS topology for a protein contained in a :ref:`pdb`
 file. The file contains the default interaction type for the 4 bonded
@@ -767,10 +577,10 @@ It is possible to put more than one dihedral on a rotatable bond.
 :ref:`gmx pdb2gmx` sets the number exclusions to 3, which
 means that interactions between atoms connected by at most 3 bonds are
 excluded. Pair interactions are generated for all pairs of atoms which are
-seperated by 3 bonds (except pairs of hydrogens).
+separated by 3 bonds (except pairs of hydrogens).
 When more interactions need to be excluded, or some pair interactions should
 not be generated, an ``[exclusions]`` field can be added, followed by
-pairs of atom names on seperate lines. All non-bonded and pair interactions
+pairs of atom names on separate lines. All non-bonded and pair interactions
 between these atoms will be excluded.
 
 A sample is included below.
index e8724511c97483cb75600d8c7174accef5af4373..36fb27c26b52d643041c04509ce37b0bf6e9ad2d 100644 (file)
@@ -18,10 +18,10 @@ subsets of the molecular system (see :ref:`gmx convert-tpr` and
 :ref:`gmx trjconv`). It is easier to do a correct "single-point" energy
 evaluation with this feature than a 0-step simulation.
 
-Neighbour searching is normally performed for every frame in the
+Neighbor searching is normally performed for every frame in the
 trajectory, since :ref:`gmx mdrun` can no longer assume anything about how the
 structures were generated. If :mdp:`nstlist` is zero, then only one
-neighbour list will be constructed. Naturally, no update or constraint
+neighbor list will be constructed. Naturally, no update or constraint
 algorithms are ever used.
 
 Running a simulation in reproducible mode
@@ -129,7 +129,7 @@ Normally, the length of an MD simulation is best managed through the
 more control is useful. `mdrun -nsteps 100` overrides the [.mdp] file
 and executes 100 steps. `mdrun -maxh 2.5` will terminate the
 simulation shortly before 2.5 hours elapse, which can be useful when
-running under cluster queues (as long as the queueing system does not
+running under cluster queues (as long as the queuing system does not
 ever suspend the simulation).
 
 Running a membrane protein embedding simulation
@@ -143,7 +143,7 @@ long time in a previous simulation. In theory that could be accomplished
 with a procedure similar to genbox, but since lipids are much larger
 than water molecules it will lead to a large vacuum layer between the
 protein and membrane if we remove all molecules where any atom is
-overlapping. Instead, this module works by first artifically shrinking
+overlapping. Instead, this module works by first artificially shrinking
 the protein in the xy-plane, then it removes lipids that overlap with
 a much smaller core, after which we gradually push the protein atoms
 back to their initial positions, while using normal dynamics for the
@@ -152,7 +152,7 @@ rest of the system so lipids adapt to the protein.
 To use membrane embedding, start by building a lipid bilayer that is
 just-so-slightly larger in the xy-plane than what you expect to need
 in the end, and make sure you have enough water outside the membrane
-to accomodate globular domains. Place the protein in the same coordinate
+to accommodate globular domains. Place the protein in the same coordinate
 file (and topology) as your lipid bilayer, and make sure it is in the
 orientation and position you want right in the middle of the bilayer.
 
index c632ab5da5592eb457a717026742b99fc27103c0..07ecf55604abaac415ecd3e2e52073547bdd1091 100644 (file)
@@ -4,7 +4,7 @@ The GROMACS build system and the :ref:`gmx mdrun` tool has a lot of built-in
 and configurable intelligence to detect your hardware and make pretty
 effective use of that hardware. For a lot of casual and serious use of
 :ref:`gmx mdrun`, the automatic machinery works well enough. But to get the
-most from your hardware to maximise your scientific quality, read on!
+most from your hardware to maximize your scientific quality, read on!
 
 Hardware background information
 -------------------------------
@@ -152,7 +152,7 @@ log file, stdout and stderr are used to print diagnostics that
 inform the user about the choices made and possible consequences.
 
 A number of command-line parameters are available to vary the default
-behaviour.
+behavior.
 
 ``-nt``
     The total number of threads to use. The default, 0, will start as
@@ -168,7 +168,7 @@ behaviour.
 ``-ntomp``
     The total number of OpenMP threads per rank to start. The
     default, 0, will start one thread on each available core.
-    Alternatively, mdrun will honour the appropriate system
+    Alternatively, mdrun will honor the appropriate system
     environment variable (e.g. ``OMP_NUM_THREADS``) if set.
 
 ``-npme``
@@ -460,7 +460,7 @@ parallel hardware.
     comes for free with the non-bonded communication. Particles beyond
     the non-bonded cut-off are only communicated when they have
     missing bonded interactions; this means that the extra cost is
-    minor and nearly indepedent of the value of ``-rdd``. With dynamic
+    minor and nearly independent of the value of ``-rdd``. With dynamic
     load balancing, option ``-rdd`` also sets the lower limit for the
     domain decomposition cell sizes. By default ``-rdd`` is determined
     by :ref:`gmx mdrun` based on the initial coordinates. The chosen value will
index eed26cafe75135267189a786f84660e611175624..18457a637735b89544c46224aacf6a8f68b62f31 100644 (file)
@@ -74,6 +74,18 @@ unset old_IFS
 # and this shell supports extended globbing
 if test -n "${BASH_VERSION+set}" && (complete) > /dev/null 2>&1; then
   if (shopt -s extglob) > /dev/null 2>&1; then
+    shopt -s extglob
+    if [ -f $GMXBIN/gmx-completion.bash ]; then
+      source $GMXBIN/gmx-completion.bash
+      for cfile in $GMXBIN/gmx-completion-*.bash ; do
+        source $cfile
+      done
+    fi
+  fi
+elif test -n "${ZSH_VERSION+set}" > /dev/null 2>&1 ; then
+  autoload bashcompinit
+  if (bashcompinit) > /dev/null 2>&1; then
+    bashcompinit
     if [ -f $GMXBIN/gmx-completion.bash ]; then
       source $GMXBIN/gmx-completion.bash
       for cfile in $GMXBIN/gmx-completion-*.bash ; do
@@ -81,12 +93,4 @@ if test -n "${BASH_VERSION+set}" && (complete) > /dev/null 2>&1; then
       done
     fi
   fi
-# read zsh completions if understand how to use them
-# Currently disabled, since the completions don't work with the new
-# gmx binary with subcommands.
-# Contributions to get the functionality back are welcome.
-#elif test -n "${ZSH_VERSION+set}" && compctl >& /dev/null; then
-#  if [ -f $GMXBIN/gmx-completion.zsh ]; then
-#    source $GMXBIN/gmx-completion.zsh;
-#  fi
 fi
index a0ef63e4c607e8917d6adb61ca97bb34d0ec1164..520ff469092dfc79a25b7095c878ff35b6aaed9f 100644 (file)
@@ -218,7 +218,6 @@ TextOutputStream &ShellCompletionWriter::outputStream()
 void ShellCompletionWriter::startCompletions()
 {
     impl_->file_.reset(new TextWriter(impl_->binaryName_ + "-completion.bash"));
-    impl_->file_->writeLine("shopt -s extglob");
 }
 
 void ShellCompletionWriter::writeModuleCompletions(
index 8a6e43c666382223b157bbf261700cd739252faa..d8a6737091a6bc1bbee23613862035b37f925ce3 100644 (file)
@@ -1480,7 +1480,9 @@ int gmx_grompp(int argc, char *argv[])
         "with [TT]-cpi[tt]. If you wish to change the ensemble or things",
         "like output frequency, then supplying the checkpoint file to",
         "[THISMODULE] with [TT]-t[tt] along with a new [REF].mdp[ref] file",
-        "with [TT]-f[tt] is the recommended procedure.[PAR]",
+        "with [TT]-f[tt] is the recommended procedure. Actually preserving",
+        "the ensemble (if possible) still requires passing the checkpoint",
+        "file to [gmx-mdrun] [TT]-cpi[tt].[PAR]",
 
         "By default, all bonded interactions which have constant energy due to",
         "virtual site constructions will be removed. If this constant energy is",
index 7835ef41126aec39daa69bf081f3b42f52ae573f..825447dba8a4ab34d664c0e7444f14171200766d 100644 (file)
@@ -132,7 +132,7 @@ double compute_io(t_inputrec *ir, int natoms, gmx_groups_t *groups,
                     ndh_tot += 1;
                 }
                 /* as data blocks: 1 real per dH point */
-                cio += div_nsteps(nsteps, ir->fepvals->nstdhdl)*(ndh+ndhdl)*sizeof(real);
+                cio += div_nsteps(nsteps, ir->fepvals->nstdhdl)*ndh_tot*sizeof(real);
             }
             else
             {
index bdb8c28267bbcb09b2c1d67e9a63df1dd14f35a7..0951875dd3475965f04d473e4ae9362045d896f4 100644 (file)
@@ -178,6 +178,7 @@ static void pp_group_load(gmx_mtop_t *mtop, t_inputrec *ir, matrix box,
     nq                = 0;
     nlj               = 0;
     *bChargePerturbed = FALSE;
+    *bTypePerturbed   = FALSE;
     for (mb = 0; mb < mtop->nmolblock; mb++)
     {
         molt = &mtop->moltype[mtop->molblock[mb].type];
@@ -292,6 +293,7 @@ static void pp_verlet_load(gmx_mtop_t *mtop, t_inputrec *ir, matrix box,
     nqlj              = 0;
     nq                = 0;
     *bChargePerturbed = FALSE;
+    *bTypePerturbed   = FALSE;
     for (mb = 0; mb < mtop->nmolblock; mb++)
     {
         molt = &mtop->moltype[mtop->molblock[mb].type];
index 212c6a26a57be1b917a365ddcb2f60f8f118e6a7..1a627cd85c6d7f550f915cd71458928357855854 100644 (file)
@@ -268,15 +268,14 @@ std::string FileNameOptionManager::completeFileName(
 std::string FileNameOptionManager::completeDefaultFileName(
         const std::string &prefix, const FileNameOptionInfo &option)
 {
-    if (option.isDirectoryOption() || impl_->bInputCheckingDisabled_)
+    if (option.isDirectoryOption())
     {
         return std::string();
     }
     const bool        bInput = option.isInputFile() || option.isInputOutputFile();
     const std::string realPrefix
         = !impl_->defaultFileName_.empty() ? impl_->defaultFileName_ : prefix;
-    const bool        bAllowMissing = option.allowMissing();
-    if (bInput)
+    if (bInput && !impl_->bInputCheckingDisabled_)
     {
         const std::string completedName
             = findExistingExtension(realPrefix, option, impl_->redirector_);
@@ -284,7 +283,7 @@ std::string FileNameOptionManager::completeDefaultFileName(
         {
             return completedName;
         }
-        if (bAllowMissing)
+        if (option.allowMissing())
         {
             return realPrefix + option.defaultExtension();
         }
index 30b6697e2f5ac260b7d410ec622782718a040294..6a2118818528391e4274806ac03a0cc26e196e55 100644 (file)
@@ -358,4 +358,27 @@ TEST_F(FileNameOptionManagerTest,
     EXPECT_EQ("testfile.trr", value);
 }
 
+TEST_F(FileNameOptionManagerTest, DefaultNameOptionWorksWithoutInputChecking)
+{
+    std::string value;
+    ASSERT_NO_THROW_GMX(manager_.disableInputOptionChecking(true));
+    ASSERT_NO_THROW_GMX(options_.addOption(
+                                FileNameOption("f").store(&value).required()
+                                    .filetype(gmx::eftIndex).inputFile()
+                                    .defaultBasename("default")
+                                    .allowMissing()));
+    ASSERT_NO_THROW_GMX(manager_.addDefaultFileNameOption(&options_, "deffnm"));
+    EXPECT_EQ("default.ndx", value);
+
+    gmx::OptionsAssigner assigner(&options_);
+    EXPECT_NO_THROW_GMX(assigner.start());
+    EXPECT_NO_THROW_GMX(assigner.startOption("deffnm"));
+    EXPECT_NO_THROW_GMX(assigner.appendValue("missing"));
+    EXPECT_NO_THROW_GMX(assigner.finishOption());
+    EXPECT_NO_THROW_GMX(assigner.finish());
+    EXPECT_NO_THROW_GMX(options_.finish());
+
+    EXPECT_EQ("missing.ndx", value);
+}
+
 } // namespace
index 964910206941b4c7c53edf3f6c456aafd86455d5..edff30830f3311f17a373206b4b51f39ceddcca0 100644 (file)
@@ -655,7 +655,7 @@ Sasa::initAnalysis(const TrajectoryAnalysisSettings &settings,
                 AnalysisDataPlotModulePointer plotm(
                         new AnalysisDataPlotModule(settings.plotSettings()));
                 plotm->setFileName(fnAtomArea_);
-                plotm->setTitle("Area per residue over the trajectory");
+                plotm->setTitle("Area per atom over the trajectory");
                 plotm->setXLabel("Atom");
                 plotm->setXFormat(8, 0);
                 plotm->setYLabel("Area (nm\\S2\\N)");
@@ -667,11 +667,18 @@ Sasa::initAnalysis(const TrajectoryAnalysisSettings &settings,
         }
         {
             AnalysisDataAverageModulePointer avem(new AnalysisDataAverageModule);
+            int prevResind = -1;
+            int row        = 0;
             for (int i = 0; i < surfaceSel_.posCount(); ++i)
             {
                 const int atomIndex     = surfaceSel_.position(i).atomIndices()[0];
                 const int residueIndex  = atoms.atom[atomIndex].resind;
-                avem->setXAxisValue(i, atoms.resinfo[residueIndex].nr);
+                if (residueIndex != prevResind)
+                {
+                    avem->setXAxisValue(row, atoms.resinfo[residueIndex].nr);
+                    prevResind = residueIndex;
+                    ++row;
+                }
             }
             residueArea_.addModule(avem);
             if (!fnResidueArea_.empty())
@@ -679,7 +686,7 @@ Sasa::initAnalysis(const TrajectoryAnalysisSettings &settings,
                 AnalysisDataPlotModulePointer plotm(
                         new AnalysisDataPlotModule(settings.plotSettings()));
                 plotm->setFileName(fnResidueArea_);
-                plotm->setTitle("Area per atom over the trajectory");
+                plotm->setTitle("Area per residue over the trajectory");
                 plotm->setXLabel("Residue");
                 plotm->setXFormat(8, 0);
                 plotm->setYLabel("Area (nm\\S2\\N)");
index 9042aee8a9c860ac8a4399d3abf55c3357de6c8e..6f4e1587ef60204be849280c95c6ea83e792a854 100644 (file)
@@ -576,11 +576,18 @@ void check_resource_division_efficiency(const gmx_hw_info_t *hwinfo,
     /* Check if we have more than 1 physical core, if detected,
      * or more than 1 hardware thread if physical cores were not detected.
      */
+#if !(defined GMX_OPENMP) && !(defined GMX_MPI)
     if ((hwinfo->ncore > 1) ||
         (hwinfo->ncore == 0 && hwinfo->nthreads_hw_avail > 1))
     {
         md_print_warn(cr, fplog, "NOTE: GROMACS was compiled without OpenMP and (thread-)MPI support, can only use a single CPU core\n");
     }
+#else
+    GMX_UNUSED_VALUE(hwinfo);
+    GMX_UNUSED_VALUE(cr);
+    GMX_UNUSED_VALUE(fplog);
+#endif
+
 #endif /* GMX_OPENMP && GMX_MPI */
 }