Gromacs

Versions 4.5.x

    Version as of 16:14, 22 Sep 2019

    to this version.

    Return to Version archive.

    View current version

    Release notes for 4.5.3

    • Double precision energy file reading
    • CHARMM and GB issues
    • Support for Altivec (PowerPC) with CMake
    • Running binaries within the CMake build tree is now possible
    • Various other fixes

    Release notes for 4.5.2

    • CHARMM force field now has single atom charge groups (pdb2gmx -nochargegrp no longer required).
    • Made pdb2gmx -chainsep option work.
    • Fixed possible inconvenient npme node choice with pme load between 0.33 and 0.50 which could lead to very slow mdrun performance.
    • Made Generalized Born sa_algorithm and sa_surface_tension active and added a separate non-polar solvation term to the output.
    • Fixed issues in Generalized Born code that could cause incorrect results with all-vs-all and double precision SSE inner-loops.
    • Fixed bug with pressure coupling with nstlist=-1 that resulted in extremely low densities.
    • Fixed test particle insertion dispersion correction and PME contribution for multi-atom insertion molecules.
    • Fixed corrupted energy and checkpoint file output with BAR free energy calculations.
    • Fixed normalization of g_density using only the last frame
    • Fixed several issues with CMake
    • Several minor fixes.

    Release notes for 4.5.1

    Several files needed for CMake builds were missing in the distributed gromacs-4.5.tar.gz package.

    Release notes for 4.5

    New features
    • Pencil decomposition of the reciprocal space PME grid to improve scaling. This reduces the amount of communication for high parallelization and improves load balancing with up to 40% overall performance improvement for large systems.
    • Memory usage is improved for very large systems, allowing simulations of >100 million atoms.
    • Running on a multi-core node now uses thread-based parallelization to automatically spawn the optimum number of threads in the default build. MPI is now only required for parallelization over the network.
    • Domain decomposition can now also be used without periodic boundary conditions
    • GPU acceleration support on NVIDIA cards. This first release with GPU support based on OpenMM provides up to an order of magnitude faster performance for implicit solvent simulations, but PME simulations are about as fast as on a high-end CPU.
    • Check-pointing is made more secure:MD5sum are used to verify that all files are correctly in-place before a simulation is appended. Output file appending at continuation is turned on by default.
    • Increased tolerance for networked file system failures and cluster node crashes: checkpoint handling is safer and mdrun forces file system cache flushes during checkpoints.
    • Full CMake support. After the 4.5 release we will be switching the default build tool from autoconf to cmake, and possibly deprecate autoconf in the future.
    • Full support for seven AMBER force fields in the standard distribution, with default Amber names. We also include the recent Amber99sb-ildn in the distribution.
    • Support for CHARMM27, including cmap for dihedrals
    • Efficient Generalized-Born implicit solvent support including the Still/HCT/OBC-models to compute the Born radii, a novel way of tabulating the generalized Born-interaction formula for greater speed, and optimized SSE-routines in both single and double precision.
    • Highly efficient all-vs-all assembly kernels for both vanilla and generalized born interactions, in both single and double precision.
    • Much better support for nucleic acid simulations, including automatic handling by pdb2gmx.
    • Support for Velocity-Verlet integrators for reversible T- and P-coupling; MTTK pressure control integrators; Nose-Hoover chains.
    • Symplectic Trotter Leap-Frog integrator for twin-range non-bonded interactions.
    • Support for Bennet acceptance ratio calculations through direct calculation of Hamiltonian differences during the simulation.
    • File formats: All GROMACS tools can now read any VMD supported trajectory format, without converting trajectory first. (VMD libraries are required).
    • pdb2gmx now retains the residue numbers from the input, mdrun and all tools use these original numbers.

    New tools
    • g_bar: Bennett acceptance ratio (BAR) free energy calculations, including automatic error estimates and phase space overlap measures.
    • g_rdf was a little bit enhanced that structure factors can be calculated for any system, by supplying the necessary data via sfactor.dat. Most of the common atomtypes are already contained, but everybody who needs more freedom can enhance the table
    • g_select: Library support for "dynamic index groups" based on textual selections (experimental feature). See the tool g_select, the included template.c, or Doxygen documentation for information on how to write analysis tools using the library. Existing tools have not (yet) been converted.
    • g_tune_pme: For a given number of processes or threads this tool systematically times mdrun with various numbers of PME-only nodes and determines which setting is fastest. It also checks whether performance can be enhanced by shifting load between the real and the reciprocal space part of the Ewald sum.
    • g_membed: a very convenient utility for rapidly embedding membrane proteins into equilibrated lipid bilayers
    • g_pme_error: estimates the error of the electrostatic forces if using the SPME algorithm. TO be incorporated in g_tune_pme

    Changes that might affect your results
    • grompp by default sets the new nstcalcenergy parameter equal to nstlist, this has no effect on the integration, only on the energy averages stored in ener.edr
    • grompp by default sets the new nsttcouple parameter equal to nstlist, this means T-coupling is done less frequently; grompp checks if tau_t is large enough
    • grompp by default sets the new nstpcouple parameter equal to nstlist, this means P-coupling is done less frequently; grompp checks if tau_p is large enough
    • mdrun results with old tpr files with twin-range non-bonded interactions will be different, because of the new symplectic integrator
    • for free-energy calculations sc-sigma now also sets the minimum soft-core sigma (old tpr files retain the old behavior, which can be enforced by setting the env.var. GMX_SCSIGMA_MIN to 0)

    Release notes for 4.5-beta4

    •       fixed bug that caused a segv when snew failed
    •       removed -merge from the pdb2gmx manual and clarified the new -chainsep option
    •       fixed incorrect pdb2gmx output with multiple (altloc) atom entries in specbonds
    •       made the pdb2gmx occupancy warning more obvious
    •       gmxcheck now prints rmsd's as %g iso %f
    •       fixed fatal error in mdrun file appending with -multi or -seppot
    •       fixed segv in mdrun with replica exchange
    •       fixed mdrun writes tpidist.xvg on all nodes
    •       added openmp pragma's for the fft5d transpose routines
    •       gmx_rmpbc gets natoms passed again, without natoms many tool could not parse trajectories of a part of the system. And added gmx_rmpbc_trxfr
    •       gmx_rmpbc now guesses ePBC again for each frame
    •       added function rescale_velocities
    •       added group comparison to gmxcheck and print groups names in gmxdump
    •       added some comment to group grompp assignment options
    •       removed the bNEMD boolean from the main MD loop and stored it in gmx_ekindata_t
    •       reduced the warning limit for Berendsen T-coupling tau_t/dt to 5 steps
    •       fixed segv's in g_anaeig
    •       added dt to energy file frames
    •       eneconv now copies the new delta_t entry
    •       increased tpx_generation which should have been done in the previous commit of tpxio.c: 0c288518
    •       disabled optimized IBM BlueGene converts2ints macro because of bugzilla 429
    •       fixed automated DD/PME grid decomposition choice which excluded the optimum in certain cases
    •       added function do_cpte_n_reals to checkpoint.c
    •       fixed mpi hang/crash with separate pme nodes and dd nodes without charges
    •       pdb2gmx now prints the force field dir before the selection and checks for multiple dirs with the same name
    •       removed the pdb2gmx -cwd option and updated the pdb2gmx description
    •       fixed pdb2gmx behavior for nearly matching residue names and made the matching much stricter
    •       updated gmx_membed.c for a VV update
    •       fixed bug in search_rtp introduced in previous commit
    •       fixed pdb2gmx using start name iso end name for C-terminus
    •       pdb2gmx now only allows a mismatch of a sign (iso any character) at the end of a residue and rtp name
    •       fixed bug that caused corrupted checkpoint file
    •       make cmake install a CMakeLists.txt for the template program
    •       split libs in Template.mak
    •       store custom GMX defines in pkgconfig files for autotools
    •       fixed some out of srcdir build issue with cmake and GMXRC
    •       store custom GMX defines in pkgconfig files for cmake
    •       port lib suffixes to cmake
    •       cmake: make demux.pl and xplor2gmx.pl being installed with the right permissions
    •       cmake: add so version to libs
    •       cmake: do not suffix scripts
    •       Fixed threads flags in pc files for autotools
    •       Fixes more misery in function skipstr, where pointers were incremented
    •       Fixed bug 417.
    •       Made genrestr -constr to produce constraints of type 2 that do not generate
    •       Renamed intel syntax assembly files to avoid double extensions
    •       Changes to make Cmake work under windows again
    •       Moved four more SSE assembly files to avoid double extensions with intel syntax
    •       Cmake and Nasm support for windows
    •       Fixed SSE kernels in double precision for Cmake, working in windows+osx, and fixed MSVC SSE intrinsics problems
    •       Removed extra TER records after chains we think are polymers - this easily
    •       Fixed checkpoint problem in 32 bits. We should always check for SIZEOF_GMX_OFF_T, since the implementation _might_ use long int instead of off_t on some hosts.
    •       Fixed compiler errors for MSVC inline intrinsics and added a test to detect incorrect CMake OS X configurations.
    •       Fixed a naming error introduced yesterday in 32bit SSE GB kernel 430
    •       Fixed typo to detect both x86_64->i386 and i386->x86_64 OS X architecture changes in cmake
    •       Renamed SSE2 x86-64 asm test file to be consistent with other archs
    •       Updated autoconf to work with renamed SSE2 x86-64 asm test file name too
    •       Added ia32 all-vs-all kernels
    •       Added double precision SSE2 generalized born kernels. Note that these now _compile_, but they are not yet tested for accuracy (coming next week)
    •       Fixed potential error in coulomb energy, and maybe segfaults for small molecules in all-vs-all kernels
    •       Copied all-vs-all change from x86-64 to ia32 kernels too
    •       Deprecated -ins option to g_hbond since nobody seems to support it.
    •       Worked around an internal compiler error for MSVC when double was used with SSE2
    •       Fixed 64-bit bug in SSE assembly (only visible with nasm)
    •       Fixed previous nasm-segv bug for intel-syntax SSE in the double precision SSE2 kernels too
    •       Enabled double precision all-vs-all kernels. Tested and appears to work for normal interactions, GB testing in progress.
    •       Fix to write GB and surface energy to separate terms, rather than putting everything in GB12
    •       Modified improper torsion atom order in Amber TRP residues to conform to original amber10
    •       Modified atom order in Amber nucleotide improper torsions to match amber 10
    •       Updated GB SSE2 kernels, testing in progress now...
    •       Double precision SSE2 kernels for Generalized Born fixed & validated
    •       Fixed a chain rule error in double prec. SSE2 GB for OBC algorithm
    •       Upgraded to latest autoconf platform detection scripts
    •       Fixed so Fortran kernels work again
    •       Dont write nonpolar surface energy to energy file if we dont use GB
    •       Fixed a minor bug that caused Fortran builds to fail. File mode for xdr3dfcoord() is now derived from the XDR struct.
    •       Fixed an uninitialized variable bug
    •       Fixed a bug for GB OBC born radius calculation in SSE2 double precision
    •       Fixed synchronization counter update for f77 kernels
    •       Added F77 kernel setup headers
    •       Amber force fields now pass validation. Beta status removed.
    •       Removed some unnecessary #ifdefs from string2.h; all our string routines should be prefixed with gmx_.
    •       Cleaned up all installed headers to remove strict dependence on config.h. Important settings are now detected directly from the compiler and environment, and non-important stuff has been removed or moved to source files.
    •       Fixed naming problems for double precision Fortran kernels
    •       Replaced testing of git version with testing for features
    •       Fixed stupid mistake where a statement was placed before declarations.
    •       Replaced all occurences of str(n)casecmp with gmx_str(n)casecmp.
    •       Copied SSE intrinsics kernels from x86-64 to ia32
    •       Fixed two more instances of strcasecmp->gmx_strcasecmp
    •       Fixed an unsigned/signed integer comparison
    •       Fixed uninitialized variable error in GB kernel with tabulated LJ
    •       Updated intel syntax x86-64 asm files to also support MS win64 call convention (ifdef, so they should still work for linux/mac too)
    •       Re-added openmm paper
    •       Made sure all source files have some copyright header and include config.h
    •       Added missing header include
    •       Changed bool to signed integer instead of unsigned char.
    •       Forgot to actually do the char->int change...
    •       Fixed include path in vmdio.h
    •       g_kinetics removed from automatically built programs since it is not functional in a default build without GSL.
    •       Removed useless g_logo and g_highway programs from default build
    •       Updated manpages for 4.5 release
    •       Updated scripts to produce 4.5 man pages
    •       Changed version to beta4
    •       Fix for warning in ngmx makefile
    •       Updated manual pages, now with correct version (4.5) as a bonus...
    •       Updated html documentation for release 4.5
    •       Made /usr/local/gromacs default installation path in cmake too
    •       Updated completions for 4.5 release
    •       Revert "Made pdb2gmx be slightly more helpful when using AMBER forcefields"
    •       true/false input settings should be called bool instead of gmx_bool
    •       Modified pdb2gmx to not accept extra hydrogen atoms at the N-terminus
    •       Added PBC checking patch to g_cluster from Alexey Shvetsov (Bugzilla 526)
    •       Fixed pointer typo in patch from Alexey Shvetsov
    •       Modified pdb2gmx to automatically pick the force field from the current directory
    •       Fixed first statemement occuring before variable declarations in gmx_pme_error()
    •       Dont write EOF warnings to stdout every time we checkpoint if the file size==0
    •       Add current path (./) to topol.top include when force field was local
    •       Fixed another uninitialized variable warning in gmx_energy.c
    •       Fixed gmxcpp to always use unix path separators in internal names (just like cpp)
    •       Two spelling fixes in comment and output
    •       Made pdb2gmx be slightly more helpful when using AMBER forcefields
    •       Fixed leak from unclosed directory handles when pdb2gmx was scanning
    •       Clarified documentation about when gen_vel generates velocities
    •       Fixed HTML documentation to use proper '&ge', not '&gt=', etc.
    •       Made the description of ld_seed and gen_seed seed generation more accurate and maintainable.
    •       Spelling fixes in pdb2gmx documentation
    •       Eliminated some commented out code.
    •       First pass at getting VV / v-rescale formula correct.
    •       Trying to get vscale working with vv.
    •       Changed the way energy conservation bookeeping is done.
    •       Proposed fix for v-rescale and berendsen for velocity verlet by rescaling at the time of coupling.
    •       Fixed bug with md-vv and with v-rescale
    •       Fix for readir.c so that nstpcouple and nsttcouple are the same when using MTTK for pressure.
    •       Additional changes for setting nsttcouple
    •       Additional fixes to the nsttcouple and nstpcouple working correctly for trotter decompositions.
    •       Added CT3 termini and minor edit in doc file.
    •       fixed spelling mistake introduced by 303d4543
    •       Fix two Windows futil bugs:
    •       Use always DIR_SEPARATOR
    •       Parenthesis around comparisons and no <= or >= for xlc
    •       Fix for CMake builds so that they don't fail even when version.c hasn't been generated.
    •       CMake builds now install GMXRC* files.
    •       Added a new file INSTALL.cmake  with installation instructions for using CMake.
    •       Fixed broken linking with single precision fftw3 in CMake.
    •       Updated the CMake scripts for finding CUDA, LibXml2 and MPI with the latest 2.8.2 modules.
    •       Warnings about using broken MPI implementations.
    •       Fixed a reverted version string in configure.ac
    •       OpenMM: added support for AmberFF proper/improper torsion potentials.
    •       Added support for improper dihedrals needed for CHARMM in OpenMM
    •       Removed the nb_kernel4xx_intel_syntax.c entries from the makefiles.
    •       Preserve the .pl extentions to scripts.
    •       Fixed the execution order in OpenMM so that the generated trajectory frames correspond to the CPU ones.
    •       Enable the Reference platform for OpenMM.
    •       Fixed a typo about non-existing macro in OpenMM
    •       Redefine the default boolean type to gmx_bool.
    •       Removed the unnecessary hacks from some boolean statements.
    •       Fixed hardcoded OpenMM library name.
    •       Added the g_pme_error tool from Florian Dommert. Thanks!
    •       Modified the OpenMM wrapper interface to support the strange CUDA platform implementation
    •       Cmake now honors CFLAGS/CXXFLAGS as much as it can.
    •       C++ type fixes in thread_mpi atomics.
    •       Fixed an issue with gmx_copy_file that would allow copies of empty files.
    •       Moved the OS-dependent part of gmx_fio_fsync() to futil.c
    •       Fixed xdr3dfcoord thread safety issues.
    •       fsync fix for FAH core.
    •       Fixed thread_mpi inline assembly issue and non-optimized compiles.
    •       Cmake tests for SIGUSR1
    •       Fixed get_libdir() PATH search.
    •       Added support for new mdp options controlling free energy perturbation output.
    •       Completely removed all occurrences of 'inline' for xlc on ppc in thread_mpi.
    •       More xlc ppc changes to thread_mpi
    •       Enabled gcc atomic intrinsics for gcc on ppc.
    •       Modified memory barrier on ppc/xlc.
    •       Another try with xlc/ppc atomics..
    •       Free energy writing to ener.edr and four new options work
    •       g_bar reads dhdl.xvg files without derivatives.
    •       derivative histograms are now written in both positive and negative directions.
    •       Free energy histogram bug fixes.
    •       gmx_bar now works with derivative histogram sets.
    •       More documentation for g_bar.
    •       Fixed begin and end times in g_bar
    •       Fixed non-interactive stdin selection parsing.
    •       Fixed CMake build with CMake 2.6.2.
    •       Cosmetic fixes for selection parsing.
    •       Fixed valgrind warnings and a segfault in pdb2gmx.
    •       fixed apme bug that caused slightly incorrect results when the grid was not divisible by the number of pme nodes in x or y
    •       reenabled the pdb2gmx force field sorting
    •       fixed too permissive check for pdb2gmx warning about unknown rtp names
    •       renamed oplsaa HISA to HISD and HISB to HISE in all files (before done only in the rtp file)
    •       added Amber terminal His rtp names to residuetypes.dat
    •       pdb2gmx can now rename terminal rtp entries with rtp iso gmx residue names when an env.var. is set
    •       fixed pdb2gmx not automatically changing termini rtp entries for Amber FF's
    •       turned on pdb2gmx Amber rtp renaming for pdb input with Amber residue names on by default

    Release notes for 4.5-beta3

    •       removed + from opls NA ion in ions.tip, overlooked in previous commit
    •       moved nstcalcenergy just before nstenergy in mdp, log and manual files
    •       added exclusion check for cg-cg innerloops
    •       env.var. GMX_NB_GENERIC no turns off solvent optimization as well
    •       corrected LJ on H of charmm tips3p
    •       made vrescale and Berendsen tcouple work with VV, although not perfect yet
    •       fixed PME communication range when first DD dim is not x
    •       added full precision option to g_traj and reformatted the source code
    •       grompp automatic nstcalcenergy setting now takes small nstenergy into acount
    •       fixed g_energy manual formatting issues
    •       gmxcheck now using the diagonal for relative tolerance of tensor elements and only compares terms with equal names, even when the number of terms differ
    •       removed commrec->nthreads from FAHCORE code
    •       gmxcheck now compares terms by name matching
    •       make_ndx now allows nearly all characters in atom and residue names, especially ' is useful for DNA and RNA
    •       sc_sigma now also sets the minimum value for the soft-core sigma, old tpr file will retain the old behavior
    •       fixed gmx_rmpbc undoing the shifting when x!=x_s
    •       readinp, used for e.g. mdp, no longer uses gmxcpp
    •       added -pbc option to g_traj
    •       corrected the (irrelevant) default ir->gb_dielectric_offset value when reading old tpr files
    •       made mdrun -seppot work with threads and -seppot now always append _node? to the log files
    •       removed pdb2gmx -cysh hidden option that should have been removed before
    •       removed CYS2 from the Amber rtp files
    •       fixed linking of inputrec.h
    •       make GMXRC.{bash,csh,zsh} export PKG_CONFIG_PATH
    •       Fixed documentation text according to bugzilla 486
    •       Fixed bug 487 according to provided patch.
    •       Fixed reuse of variable as temp variable before printing results.
    •       Fixed build issue for template program in double precision
    •       Modified TER record writing behaviour (only add after protein/DNA/RNA/polymers)
    •       Fixed accuracy issues in gmx_mm_log_ps(), and added lots of other transcendental functions in SSE.
    •       Added double precision SSE2 transcendental functions. Only Erf/Erfc missing now...
    •       Added out int-extraction macro to double precision SSE2 intrinsics header too.
    •       Fixed nonexistent return type on gmx_mm_sincos_pd
    •       Fixed a bug in index generation for non-adjacent protein chains
    •       Fixed incorrect #endif -> #else that caused the C all-vs-all GB to be called after the SSE one, which caused a segv.
    •       Copied CK-CB-N*-CT Amber improper to also list CK-CB-N*-CT (needed for DNA/RNA rtp files)
    •       Added NHE as an Amber aminoacid residue type
    •       Added NASM Cmake support
    •       cleanup: GMX_CG_INNERLOOP isn't used anymore
    •       Fixed configure.ac typo regrading qmmm-orca.
    •       Fix share/html/online/mdp_opt.html.
    •       Added missing NULL in chainsep enum in pdb2gmx.
    •       Fixed a typo in src/tools/CMakeLists.txt.
    •       Added an uninstall target to CMake builds.
    •       BAR calculations can now store energy histograms in .edr files.
    •       Now correctly checkpoints on dhdl histograms/lists that go to ener.edr.
    •       Small fix to deal with possible overflows in dh binning.
    •       minor addition to previus gcc 4.1.x disabling commit
    •       Fixes for PME-User-Switch.
    •       More PME-User-Switch fixes.
    •       Fixed compiler warnings in qm_orca.c.
    •       Fixed a segfault in selection code.
    Page last modified 21:11, 9 Nov 2010 by rossen