Improvements to GROMACS tools

Supported replacing solvent in gmx insert-molecules

Make it possible to specify the solvent (or other set of atoms) with -replace (as a selection) for gmx insert-molecules, and make the tool replace residues from this set with the inserted molecules, instead of not inserting there. It is assumed that the solvent consists of single-residue molecules, since molecule information would require a tpr input, which might not be commonly available when preparing the system.

Default random seeds have changed for some analysis tools

See individual tools documentation for their functionality. In some cases, the magic value to obtain a generated seed has changed (or is now documented.)

Made gmx solvate and gmx insert-molecules work better with PDB inputs

When both -f and -o were .pdb files, the pdbinfo struct got out-of-sync when the atoms were added/removed.

Issue 1887

Tools in the new analysis framework can read trajectory files with subsets

Make tools written for the new C++ analysis framework support analyzing trajectories that contain an arbitrary subset of atoms.

Issue 1861

Made moleculetype name case sensitive

This is useful in case you have more than 36 chains in your system with chain IDs set. PDB allows using both uppercase letters, lowercase letters and numbers for chain identifiers. Now we can use the maximum of 62 chains.

Added number density normalization option for gmx rdf

Add an option to gmx rdf that allows selecting a radial number density as the normalization for the output (in addition to current raw neighbor counts and the actual RDF).

Simplified gmx genconf by removing -block, -sort and -shuffle

Option -block isn’t useful since particle decomposition was removed. Options -sort and -shuffle were undocumented and don’t seem very useful - these days they would be somebody’s simple python script.

Used macros for units and conversions in gmx wham

Also Issue 1841

Improved gmx sasa error message

Print more information when an output group is not part of the group selected for calculation, which should help the user diagnosing the issue.

Made gmx vanhove work without PBC

Fix gmx hbond group overlap check

gmx hbond does not support partially overlapping analysis groups. The check in the code was broken and never caught this, resulting incorrect output that might OK at first sight. Also corrected bitmasks = enums that (intentionally?) seemed to give correct results by not using non power of 2 enum index entries.

Made gmx dos work again.

Due to an error in the index handling gmx dos always stopped with a fatal error.

Issue 1996

Add checks for too much memory in gmx nmeig

gmx nmeig could request storage for eigenvector output and matrices for more than INT_MAX elements, but nearly all loop variables are int. Now a fatal error is produced in this case. This also avoids the confusing error message when too much memory is requested; the allocation routine will get the correct size, but gmx_fatal prints it as a smaller integer. Added support for -first > 1 with sparse matrices.