diff -Nru gromacs-2016.2/cmake/gmxManageSimd.cmake gromacs-2016.3/cmake/gmxManageSimd.cmake --- gromacs-2016.2/cmake/gmxManageSimd.cmake 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/cmake/gmxManageSimd.cmake 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ # # This file is part of the GROMACS molecular simulation package. # -# Copyright (c) 2012,2013,2014,2015,2016, by the GROMACS development team, led by +# Copyright (c) 2012,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. @@ -74,6 +74,11 @@ message(FATAL_ERROR "Using VSX SIMD in double precision with GCC requires GCC-4.9 or later.") endif() endif() + if(${CMAKE_CXX_COMPILER_ID} MATCHES "XL" OR ${CMAKE_C_COMPILER_ID} MATCHES "XL") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "13.1.5" OR CMAKE_C_COMPILER_VERSION VERSION_LESS "13.1.5") + message(FATAL_ERROR "Using VSX SIMD requires XL compiler version 13.1.5 or later.") + endif() + endif() endmacro() # Issue a fatal error with an appropriate message, when the toolchain @@ -418,7 +423,12 @@ SIMD_${GMX_SIMD}_C_FLAGS SIMD_${GMX_SIMD}_CXX_FLAGS "-mvsx" "-maltivec -mabi=altivec" "-qarch=auto -qaltivec") - if(NOT SIMD_${GMX_SIMD}_C_FLAGS OR NOT SIMD_${GMX_SIMD}_CXX_FLAGS) + # Usually we check also for the C compiler here, but a C compiler + # is not required for SIMD support on this platform. cmake through + # at least version 3.7 cannot pass this check with the C compiler + # in the latest xlc 13.1.5, but the C++ compiler has different + # behaviour and is OK. See Redmine #2102. + if(NOT SIMD_${GMX_SIMD}_CXX_FLAGS) gmx_give_fatal_error_when_simd_support_not_found("IBM VSX" "disable SIMD support (slower)" "${SUGGEST_BINUTILS_UPDATE}") endif() @@ -476,11 +486,16 @@ # rather than actual vector data. For now we disable __vectorcall with clang # when using the reference build. # +# xlc 13.1.5 does not seem recognize any attribute, and warns about invalid ones +# so we avoid searching for any. +# if(NOT DEFINED GMX_SIMD_CALLING_CONVENTION) if(GMX_TARGET_BGQ) set(CALLCONV_LIST " ") elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND GMX_SIMD STREQUAL "REFERENCE") set(CALLCONV_LIST __regcall " ") + elseif(CMAKE_CXX_COMPILER_ID MATCHES "XL") + set(CALLCONV_LIST " ") else() set(CALLCONV_LIST __vectorcall __regcall " ") endif() diff -Nru gromacs-2016.2/cmake/gmxVersionInfo.cmake gromacs-2016.3/cmake/gmxVersionInfo.cmake --- gromacs-2016.2/cmake/gmxVersionInfo.cmake 2017-02-07 10:47:41.000000000 +0000 +++ gromacs-2016.3/cmake/gmxVersionInfo.cmake 2017-03-13 17:22:33.000000000 +0000 @@ -188,7 +188,7 @@ # The GROMACS convention is that these are the version number of the next # release that is going to be made from this branch. set(GMX_VERSION_MAJOR 2016) -set(GMX_VERSION_PATCH 2) +set(GMX_VERSION_PATCH 3) # The suffix, on the other hand, is used mainly for betas and release # candidates, where it signifies the most recent such release from # this branch; it will be empty before the first such release, as well @@ -205,7 +205,7 @@ # code being able to dynamically link with a version of libgromacs # that might not work. set(LIBRARY_SOVERSION_MAJOR 2) -set(LIBRARY_SOVERSION_MINOR 2) +set(LIBRARY_SOVERSION_MINOR 3) set(LIBRARY_VERSION ${LIBRARY_SOVERSION_MAJOR}.${LIBRARY_SOVERSION_MINOR}.0) ##################################################################### @@ -228,7 +228,7 @@ set(REGRESSIONTEST_VERSION "${GMX_VERSION_STRING}") set(REGRESSIONTEST_BRANCH "refs/heads/release-2016") -set(REGRESSIONTEST_MD5SUM "e4d24e3c5f28602c2429b3a389121de8" CACHE INTERNAL "MD5 sum of the regressiontests tarball") +set(REGRESSIONTEST_MD5SUM "bed92d1d9cdca66fbd2efa142b6e0dd3" CACHE INTERNAL "MD5 sum of the regressiontests tarball") math(EXPR GMX_VERSION_NUMERIC "${GMX_VERSION_MAJOR}*10000 + ${GMX_VERSION_PATCH}") diff -Nru gromacs-2016.2/debian/changelog gromacs-2016.3/debian/changelog --- gromacs-2016.2/debian/changelog 2017-02-09 01:58:11.000000000 +0000 +++ gromacs-2016.3/debian/changelog 2017-03-16 04:18:12.000000000 +0000 @@ -1,3 +1,9 @@ +gromacs (2016.3-1) experimental; urgency=medium + + * New upstream release. + + -- Nicholas Breen Wed, 15 Mar 2017 21:18:12 -0700 + gromacs (2016.2-1) experimental; urgency=medium * New upstream release. Uploaded to experimental during freeze. diff -Nru gromacs-2016.2/docs/CMakeLists.txt gromacs-2016.3/docs/CMakeLists.txt --- gromacs-2016.2/docs/CMakeLists.txt 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/docs/CMakeLists.txt 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ # # This file is part of the GROMACS molecular simulation package. # -# Copyright (c) 2014,2015,2016, by the GROMACS development team, led by +# Copyright (c) 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. @@ -120,6 +120,7 @@ user-guide/index.rst user-guide/getting-started.rst user-guide/flow.rst + user-guide/system-preparation.rst user-guide/cutoff-schemes.rst user-guide/mdrun-features.rst user-guide/mdrun-performance.rst diff -Nru gromacs-2016.2/docs/dev-manual/jenkins.rst gromacs-2016.3/docs/dev-manual/jenkins.rst --- gromacs-2016.2/docs/dev-manual/jenkins.rst 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/docs/dev-manual/jenkins.rst 2017-03-13 17:22:33.000000000 +0000 @@ -71,9 +71,18 @@ clang static analysis ^^^^^^^^^^^^^^^^^^^^^ -The exact build sequence and the CMake configuration used is in -:file:`admin/builds/clang-analysis.py`. This file also specifies the clang -version used for the analysis. +The file :file:`admin/builds/clang-analyzer.py` specifies the exact build +sequence and the CMake cache variables used for clang static analysis. This +file also specifies the clang version used for the analysis, as well as the C++ +compiler used (``clang-static-analyzer-``). + +To run the analysis outside Jenkins, you should run both ``cmake`` and ``make`` +under ``scan-build`` command using the same CMake cache variables as in the +build script. When you do the initial CMake configuration with ``scan-build``, +it sets the C++ compiler to the analyzer. Note that using ``scan-build`` like +this will also analyze C code, but Jenkins ignores C code for analysis. This +can result in extra warnings, which can be suppressed by manually setting +CMAKE_C_COMPILER to a value other than Clang static analyzer. cppcheck ^^^^^^^^ diff -Nru gromacs-2016.2/docs/install-guide/index.rst gromacs-2016.3/docs/install-guide/index.rst --- gromacs-2016.2/docs/install-guide/index.rst 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/docs/install-guide/index.rst 2017-03-13 17:22:33.000000000 +0000 @@ -101,10 +101,12 @@ You should strive to use the most recent version of your compiler. Minimum supported compiler versions are + * GNU (gcc) 4.6 * Intel (icc) 14 * LLVM (clang) 3.4 * Microsoft (MSVC) 2015 + Other compilers may work (Cray, Pathscale, older clang) but do not offer competitive performance. We recommend against PGI because the performance with C++ is very bad. diff -Nru gromacs-2016.2/docs/man/gmx.1 gromacs-2016.3/docs/man/gmx.1 --- gromacs-2016.2/docs/man/gmx.1 2017-02-07 10:53:50.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx.1 2017-03-13 17:31:00.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx \- molecular dynamics simulation suite . diff -Nru gromacs-2016.2/docs/man/gmx-anadock.1 gromacs-2016.3/docs/man/gmx-anadock.1 --- gromacs-2016.2/docs/man/gmx-anadock.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-anadock.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ANADOCK" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ANADOCK" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-anadock \- Cluster structures from Autodock runs . diff -Nru gromacs-2016.2/docs/man/gmx-anaeig.1 gromacs-2016.3/docs/man/gmx-anaeig.1 --- gromacs-2016.2/docs/man/gmx-anaeig.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-anaeig.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ANAEIG" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ANAEIG" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-anaeig \- Analyze eigenvectors/normal modes . diff -Nru gromacs-2016.2/docs/man/gmx-analyze.1 gromacs-2016.3/docs/man/gmx-analyze.1 --- gromacs-2016.2/docs/man/gmx-analyze.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-analyze.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ANALYZE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ANALYZE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-analyze \- Analyze data sets . diff -Nru gromacs-2016.2/docs/man/gmx-angle.1 gromacs-2016.3/docs/man/gmx-angle.1 --- gromacs-2016.2/docs/man/gmx-angle.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-angle.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ANGLE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ANGLE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-angle \- Calculate distributions and correlations for angles and dihedrals . diff -Nru gromacs-2016.2/docs/man/gmx-bar.1 gromacs-2016.3/docs/man/gmx-bar.1 --- gromacs-2016.2/docs/man/gmx-bar.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-bar.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-BAR" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-BAR" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-bar \- Calculate free energy difference estimates through Bennett's acceptance ratio . diff -Nru gromacs-2016.2/docs/man/gmx-bundle.1 gromacs-2016.3/docs/man/gmx-bundle.1 --- gromacs-2016.2/docs/man/gmx-bundle.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-bundle.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-BUNDLE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-BUNDLE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-bundle \- Analyze bundles of axes, e.g., helices . diff -Nru gromacs-2016.2/docs/man/gmx-check.1 gromacs-2016.3/docs/man/gmx-check.1 --- gromacs-2016.2/docs/man/gmx-check.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-check.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-CHECK" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-CHECK" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-check \- Check and compare files . diff -Nru gromacs-2016.2/docs/man/gmx-chi.1 gromacs-2016.3/docs/man/gmx-chi.1 --- gromacs-2016.2/docs/man/gmx-chi.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-chi.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-CHI" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-CHI" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-chi \- Calculate everything you want to know about chi and other dihedrals . diff -Nru gromacs-2016.2/docs/man/gmx-cluster.1 gromacs-2016.3/docs/man/gmx-cluster.1 --- gromacs-2016.2/docs/man/gmx-cluster.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-cluster.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-CLUSTER" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-CLUSTER" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-cluster \- Cluster structures . diff -Nru gromacs-2016.2/docs/man/gmx-clustsize.1 gromacs-2016.3/docs/man/gmx-clustsize.1 --- gromacs-2016.2/docs/man/gmx-clustsize.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-clustsize.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-CLUSTSIZE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-CLUSTSIZE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-clustsize \- Calculate size distributions of atomic clusters . diff -Nru gromacs-2016.2/docs/man/gmx-confrms.1 gromacs-2016.3/docs/man/gmx-confrms.1 --- gromacs-2016.2/docs/man/gmx-confrms.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-confrms.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-CONFRMS" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-CONFRMS" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-confrms \- Fit two structures and calculates the RMSD . diff -Nru gromacs-2016.2/docs/man/gmx-convert-tpr.1 gromacs-2016.3/docs/man/gmx-convert-tpr.1 --- gromacs-2016.2/docs/man/gmx-convert-tpr.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-convert-tpr.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-CONVERT-TPR" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-CONVERT-TPR" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-convert-tpr \- Make a modifed run-input file . diff -Nru gromacs-2016.2/docs/man/gmx-covar.1 gromacs-2016.3/docs/man/gmx-covar.1 --- gromacs-2016.2/docs/man/gmx-covar.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-covar.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-COVAR" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-COVAR" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-covar \- Calculate and diagonalize the covariance matrix . diff -Nru gromacs-2016.2/docs/man/gmx-current.1 gromacs-2016.3/docs/man/gmx-current.1 --- gromacs-2016.2/docs/man/gmx-current.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-current.1 2017-03-13 17:30:55.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-CURRENT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-CURRENT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-current \- Calculate dielectric constants and current autocorrelation function . diff -Nru gromacs-2016.2/docs/man/gmx-density.1 gromacs-2016.3/docs/man/gmx-density.1 --- gromacs-2016.2/docs/man/gmx-density.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-density.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DENSITY" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DENSITY" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-density \- Calculate the density of the system . diff -Nru gromacs-2016.2/docs/man/gmx-densmap.1 gromacs-2016.3/docs/man/gmx-densmap.1 --- gromacs-2016.2/docs/man/gmx-densmap.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-densmap.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DENSMAP" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DENSMAP" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-densmap \- Calculate 2D planar or axial-radial density maps . diff -Nru gromacs-2016.2/docs/man/gmx-densorder.1 gromacs-2016.3/docs/man/gmx-densorder.1 --- gromacs-2016.2/docs/man/gmx-densorder.1 2017-02-07 10:53:46.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-densorder.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DENSORDER" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DENSORDER" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-densorder \- Calculate surface fluctuations . diff -Nru gromacs-2016.2/docs/man/gmx-dielectric.1 gromacs-2016.3/docs/man/gmx-dielectric.1 --- gromacs-2016.2/docs/man/gmx-dielectric.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-dielectric.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DIELECTRIC" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DIELECTRIC" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-dielectric \- Calculate frequency dependent dielectric constants . diff -Nru gromacs-2016.2/docs/man/gmx-dipoles.1 gromacs-2016.3/docs/man/gmx-dipoles.1 --- gromacs-2016.2/docs/man/gmx-dipoles.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-dipoles.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DIPOLES" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DIPOLES" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-dipoles \- Compute the total dipole plus fluctuations . diff -Nru gromacs-2016.2/docs/man/gmx-disre.1 gromacs-2016.3/docs/man/gmx-disre.1 --- gromacs-2016.2/docs/man/gmx-disre.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-disre.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DISRE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DISRE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-disre \- Analyze distance restraints . diff -Nru gromacs-2016.2/docs/man/gmx-distance.1 gromacs-2016.3/docs/man/gmx-distance.1 --- gromacs-2016.2/docs/man/gmx-distance.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-distance.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DISTANCE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DISTANCE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-distance \- Calculate distances between pairs of positions . diff -Nru gromacs-2016.2/docs/man/gmx-do_dssp.1 gromacs-2016.3/docs/man/gmx-do_dssp.1 --- gromacs-2016.2/docs/man/gmx-do_dssp.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-do_dssp.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DO_DSSP" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DO_DSSP" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-do_dssp \- Assign secondary structure and calculate solvent accessible surface area . diff -Nru gromacs-2016.2/docs/man/gmx-dos.1 gromacs-2016.3/docs/man/gmx-dos.1 --- gromacs-2016.2/docs/man/gmx-dos.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-dos.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DOS" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DOS" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-dos \- Analyze density of states and properties based on that . diff -Nru gromacs-2016.2/docs/man/gmx-dump.1 gromacs-2016.3/docs/man/gmx-dump.1 --- gromacs-2016.2/docs/man/gmx-dump.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-dump.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DUMP" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DUMP" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-dump \- Make binary files human readable . diff -Nru gromacs-2016.2/docs/man/gmx-dyecoupl.1 gromacs-2016.3/docs/man/gmx-dyecoupl.1 --- gromacs-2016.2/docs/man/gmx-dyecoupl.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-dyecoupl.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DYECOUPL" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DYECOUPL" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-dyecoupl \- Extract dye dynamics from trajectories . diff -Nru gromacs-2016.2/docs/man/gmx-dyndom.1 gromacs-2016.3/docs/man/gmx-dyndom.1 --- gromacs-2016.2/docs/man/gmx-dyndom.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-dyndom.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-DYNDOM" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-DYNDOM" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-dyndom \- Interpolate and extrapolate structure rotations . diff -Nru gromacs-2016.2/docs/man/gmx-editconf.1 gromacs-2016.3/docs/man/gmx-editconf.1 --- gromacs-2016.2/docs/man/gmx-editconf.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-editconf.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-EDITCONF" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-EDITCONF" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-editconf \- Convert and manipulates structure files . diff -Nru gromacs-2016.2/docs/man/gmx-eneconv.1 gromacs-2016.3/docs/man/gmx-eneconv.1 --- gromacs-2016.2/docs/man/gmx-eneconv.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-eneconv.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ENECONV" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ENECONV" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-eneconv \- Convert energy files . diff -Nru gromacs-2016.2/docs/man/gmx-enemat.1 gromacs-2016.3/docs/man/gmx-enemat.1 --- gromacs-2016.2/docs/man/gmx-enemat.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-enemat.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ENEMAT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ENEMAT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-enemat \- Extract an energy matrix from an energy file . diff -Nru gromacs-2016.2/docs/man/gmx-energy.1 gromacs-2016.3/docs/man/gmx-energy.1 --- gromacs-2016.2/docs/man/gmx-energy.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-energy.1 2017-03-13 17:30:56.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ENERGY" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ENERGY" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-energy \- Writes energies to xvg files and display averages . diff -Nru gromacs-2016.2/docs/man/gmx-filter.1 gromacs-2016.3/docs/man/gmx-filter.1 --- gromacs-2016.2/docs/man/gmx-filter.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-filter.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-FILTER" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-FILTER" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-filter \- Frequency filter trajectories, useful for making smooth movies . diff -Nru gromacs-2016.2/docs/man/gmx-freevolume.1 gromacs-2016.3/docs/man/gmx-freevolume.1 --- gromacs-2016.2/docs/man/gmx-freevolume.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-freevolume.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-FREEVOLUME" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-FREEVOLUME" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-freevolume \- Calculate free volume . diff -Nru gromacs-2016.2/docs/man/gmx-gangle.1 gromacs-2016.3/docs/man/gmx-gangle.1 --- gromacs-2016.2/docs/man/gmx-gangle.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-gangle.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-GANGLE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-GANGLE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-gangle \- Calculate angles . diff -Nru gromacs-2016.2/docs/man/gmx-genconf.1 gromacs-2016.3/docs/man/gmx-genconf.1 --- gromacs-2016.2/docs/man/gmx-genconf.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-genconf.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-GENCONF" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-GENCONF" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-genconf \- Multiply a conformation in 'random' orientations . diff -Nru gromacs-2016.2/docs/man/gmx-genion.1 gromacs-2016.3/docs/man/gmx-genion.1 --- gromacs-2016.2/docs/man/gmx-genion.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-genion.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-GENION" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-GENION" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-genion \- Generate monoatomic ions on energetically favorable positions . diff -Nru gromacs-2016.2/docs/man/gmx-genrestr.1 gromacs-2016.3/docs/man/gmx-genrestr.1 --- gromacs-2016.2/docs/man/gmx-genrestr.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-genrestr.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-GENRESTR" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-GENRESTR" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-genrestr \- Generate position restraints or distance restraints for index groups . diff -Nru gromacs-2016.2/docs/man/gmx-grompp.1 gromacs-2016.3/docs/man/gmx-grompp.1 --- gromacs-2016.2/docs/man/gmx-grompp.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-grompp.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-GROMPP" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-GROMPP" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-grompp \- Make a run input file . diff -Nru gromacs-2016.2/docs/man/gmx-gyrate.1 gromacs-2016.3/docs/man/gmx-gyrate.1 --- gromacs-2016.2/docs/man/gmx-gyrate.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-gyrate.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-GYRATE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-GYRATE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-gyrate \- Calculate the radius of gyration . diff -Nru gromacs-2016.2/docs/man/gmx-h2order.1 gromacs-2016.3/docs/man/gmx-h2order.1 --- gromacs-2016.2/docs/man/gmx-h2order.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-h2order.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-H2ORDER" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-H2ORDER" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-h2order \- Compute the orientation of water molecules . diff -Nru gromacs-2016.2/docs/man/gmx-hbond.1 gromacs-2016.3/docs/man/gmx-hbond.1 --- gromacs-2016.2/docs/man/gmx-hbond.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-hbond.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-HBOND" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-HBOND" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-hbond \- Compute and analyze hydrogen bonds . diff -Nru gromacs-2016.2/docs/man/gmx-helix.1 gromacs-2016.3/docs/man/gmx-helix.1 --- gromacs-2016.2/docs/man/gmx-helix.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-helix.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-HELIX" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-HELIX" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-helix \- Calculate basic properties of alpha helices . diff -Nru gromacs-2016.2/docs/man/gmx-helixorient.1 gromacs-2016.3/docs/man/gmx-helixorient.1 --- gromacs-2016.2/docs/man/gmx-helixorient.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-helixorient.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-HELIXORIENT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-HELIXORIENT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-helixorient \- Calculate local pitch/bending/rotation/orientation inside helices . diff -Nru gromacs-2016.2/docs/man/gmx-help.1 gromacs-2016.3/docs/man/gmx-help.1 --- gromacs-2016.2/docs/man/gmx-help.1 2017-02-07 10:53:47.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-help.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-HELP" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-HELP" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-help \- Print help information . diff -Nru gromacs-2016.2/docs/man/gmx-hydorder.1 gromacs-2016.3/docs/man/gmx-hydorder.1 --- gromacs-2016.2/docs/man/gmx-hydorder.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-hydorder.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-HYDORDER" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-HYDORDER" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-hydorder \- Compute tetrahedrality parameters around a given atom . diff -Nru gromacs-2016.2/docs/man/gmx-insert-molecules.1 gromacs-2016.3/docs/man/gmx-insert-molecules.1 --- gromacs-2016.2/docs/man/gmx-insert-molecules.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-insert-molecules.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-INSERT-MOLECULES" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-INSERT-MOLECULES" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-insert-molecules \- Insert molecules into existing vacancies . @@ -71,7 +71,10 @@ inserted molecule is less than the sum based on the van der Waals radii of both atoms. A database (\fBvdwradii.dat\fP) of van der Waals radii is read by the program, and the resulting radii scaled -by \fB\-scale\fP\&. If radii are not found in the database, thoseatoms are assigned the (pre\-scaled) distance \fB\-radius\fP\&. +by \fB\-scale\fP\&. If radii are not found in the database, those +atoms are assigned the (pre\-scaled) distance \fB\-radius\fP\&. +Note that the usefulness of those radii depends on the atom names, +and thus varies widely with force field. .sp A total of \fB\-nmol\fP * \fB\-try\fP insertion attempts are made before giving up. Increase \fB\-try\fP if you have several small diff -Nru gromacs-2016.2/docs/man/gmx-lie.1 gromacs-2016.3/docs/man/gmx-lie.1 --- gromacs-2016.2/docs/man/gmx-lie.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-lie.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-LIE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-LIE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-lie \- Estimate free energy from linear combinations . diff -Nru gromacs-2016.2/docs/man/gmx-make_edi.1 gromacs-2016.3/docs/man/gmx-make_edi.1 --- gromacs-2016.2/docs/man/gmx-make_edi.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-make_edi.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-MAKE_EDI" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-MAKE_EDI" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-make_edi \- Generate input files for essential dynamics sampling . diff -Nru gromacs-2016.2/docs/man/gmx-make_ndx.1 gromacs-2016.3/docs/man/gmx-make_ndx.1 --- gromacs-2016.2/docs/man/gmx-make_ndx.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-make_ndx.1 2017-03-13 17:30:57.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-MAKE_NDX" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-MAKE_NDX" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-make_ndx \- Make index files . diff -Nru gromacs-2016.2/docs/man/gmx-mdmat.1 gromacs-2016.3/docs/man/gmx-mdmat.1 --- gromacs-2016.2/docs/man/gmx-mdmat.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-mdmat.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-MDMAT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-MDMAT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-mdmat \- Calculate residue contact maps . diff -Nru gromacs-2016.2/docs/man/gmx-mdrun.1 gromacs-2016.3/docs/man/gmx-mdrun.1 --- gromacs-2016.2/docs/man/gmx-mdrun.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-mdrun.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-MDRUN" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-MDRUN" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-mdrun \- Perform a simulation, do a normal mode analysis or an energy minimization . diff -Nru gromacs-2016.2/docs/man/gmx-mindist.1 gromacs-2016.3/docs/man/gmx-mindist.1 --- gromacs-2016.2/docs/man/gmx-mindist.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-mindist.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-MINDIST" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-MINDIST" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-mindist \- Calculate the minimum distance between two groups . diff -Nru gromacs-2016.2/docs/man/gmx-mk_angndx.1 gromacs-2016.3/docs/man/gmx-mk_angndx.1 --- gromacs-2016.2/docs/man/gmx-mk_angndx.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-mk_angndx.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-MK_ANGNDX" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-MK_ANGNDX" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-mk_angndx \- Generate index files for 'gmx angle' . diff -Nru gromacs-2016.2/docs/man/gmx-morph.1 gromacs-2016.3/docs/man/gmx-morph.1 --- gromacs-2016.2/docs/man/gmx-morph.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-morph.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-MORPH" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-MORPH" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-morph \- Interpolate linearly between conformations . diff -Nru gromacs-2016.2/docs/man/gmx-msd.1 gromacs-2016.3/docs/man/gmx-msd.1 --- gromacs-2016.2/docs/man/gmx-msd.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-msd.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-MSD" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-MSD" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-msd \- Calculates mean square displacements . diff -Nru gromacs-2016.2/docs/man/gmx-nmeig.1 gromacs-2016.3/docs/man/gmx-nmeig.1 --- gromacs-2016.2/docs/man/gmx-nmeig.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-nmeig.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-NMEIG" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-NMEIG" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-nmeig \- Diagonalize the Hessian for normal mode analysis . diff -Nru gromacs-2016.2/docs/man/gmx-nmens.1 gromacs-2016.3/docs/man/gmx-nmens.1 --- gromacs-2016.2/docs/man/gmx-nmens.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-nmens.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-NMENS" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-NMENS" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-nmens \- Generate an ensemble of structures from the normal modes . diff -Nru gromacs-2016.2/docs/man/gmx-nmtraj.1 gromacs-2016.3/docs/man/gmx-nmtraj.1 --- gromacs-2016.2/docs/man/gmx-nmtraj.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-nmtraj.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-NMTRAJ" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-NMTRAJ" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-nmtraj \- Generate a virtual oscillating trajectory from an eigenvector . diff -Nru gromacs-2016.2/docs/man/gmx-order.1 gromacs-2016.3/docs/man/gmx-order.1 --- gromacs-2016.2/docs/man/gmx-order.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-order.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ORDER" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ORDER" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-order \- Compute the order parameter per atom for carbon tails . diff -Nru gromacs-2016.2/docs/man/gmx-pairdist.1 gromacs-2016.3/docs/man/gmx-pairdist.1 --- gromacs-2016.2/docs/man/gmx-pairdist.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-pairdist.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-PAIRDIST" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-PAIRDIST" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-pairdist \- Calculate pairwise distances between groups of positions . diff -Nru gromacs-2016.2/docs/man/gmx-pdb2gmx.1 gromacs-2016.3/docs/man/gmx-pdb2gmx.1 --- gromacs-2016.2/docs/man/gmx-pdb2gmx.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-pdb2gmx.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-PDB2GMX" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-PDB2GMX" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-pdb2gmx \- Convert coordinate files to topology and FF-compliant coordinate files . diff -Nru gromacs-2016.2/docs/man/gmx-pme_error.1 gromacs-2016.3/docs/man/gmx-pme_error.1 --- gromacs-2016.2/docs/man/gmx-pme_error.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-pme_error.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-PME_ERROR" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-PME_ERROR" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-pme_error \- Estimate the error of using PME with a given input file . diff -Nru gromacs-2016.2/docs/man/gmx-polystat.1 gromacs-2016.3/docs/man/gmx-polystat.1 --- gromacs-2016.2/docs/man/gmx-polystat.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-polystat.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-POLYSTAT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-POLYSTAT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-polystat \- Calculate static properties of polymers . diff -Nru gromacs-2016.2/docs/man/gmx-potential.1 gromacs-2016.3/docs/man/gmx-potential.1 --- gromacs-2016.2/docs/man/gmx-potential.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-potential.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-POTENTIAL" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-POTENTIAL" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-potential \- Calculate the electrostatic potential across the box . diff -Nru gromacs-2016.2/docs/man/gmx-principal.1 gromacs-2016.3/docs/man/gmx-principal.1 --- gromacs-2016.2/docs/man/gmx-principal.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-principal.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-PRINCIPAL" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-PRINCIPAL" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-principal \- Calculate principal axes of inertia for a group of atoms . diff -Nru gromacs-2016.2/docs/man/gmx-rama.1 gromacs-2016.3/docs/man/gmx-rama.1 --- gromacs-2016.2/docs/man/gmx-rama.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-rama.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-RAMA" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-RAMA" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-rama \- Compute Ramachandran plots . diff -Nru gromacs-2016.2/docs/man/gmx-rdf.1 gromacs-2016.3/docs/man/gmx-rdf.1 --- gromacs-2016.2/docs/man/gmx-rdf.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-rdf.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-RDF" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-RDF" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-rdf \- Calculate radial distribution functions . diff -Nru gromacs-2016.2/docs/man/gmx-rms.1 gromacs-2016.3/docs/man/gmx-rms.1 --- gromacs-2016.2/docs/man/gmx-rms.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-rms.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-RMS" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-RMS" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-rms \- Calculate RMSDs with a reference structure and RMSD matrices . diff -Nru gromacs-2016.2/docs/man/gmx-rmsdist.1 gromacs-2016.3/docs/man/gmx-rmsdist.1 --- gromacs-2016.2/docs/man/gmx-rmsdist.1 2017-02-07 10:53:48.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-rmsdist.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-RMSDIST" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-RMSDIST" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-rmsdist \- Calculate atom pair distances averaged with power -2, -3 or -6 . diff -Nru gromacs-2016.2/docs/man/gmx-rmsf.1 gromacs-2016.3/docs/man/gmx-rmsf.1 --- gromacs-2016.2/docs/man/gmx-rmsf.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-rmsf.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-RMSF" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-RMSF" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-rmsf \- Calculate atomic fluctuations . diff -Nru gromacs-2016.2/docs/man/gmx-rotacf.1 gromacs-2016.3/docs/man/gmx-rotacf.1 --- gromacs-2016.2/docs/man/gmx-rotacf.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-rotacf.1 2017-03-13 17:30:58.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ROTACF" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ROTACF" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-rotacf \- Calculate the rotational correlation function for molecules . diff -Nru gromacs-2016.2/docs/man/gmx-rotmat.1 gromacs-2016.3/docs/man/gmx-rotmat.1 --- gromacs-2016.2/docs/man/gmx-rotmat.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-rotmat.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-ROTMAT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-ROTMAT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-rotmat \- Plot the rotation matrix for fitting to a reference structure . diff -Nru gromacs-2016.2/docs/man/gmx-saltbr.1 gromacs-2016.3/docs/man/gmx-saltbr.1 --- gromacs-2016.2/docs/man/gmx-saltbr.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-saltbr.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SALTBR" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SALTBR" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-saltbr \- Compute salt bridges . diff -Nru gromacs-2016.2/docs/man/gmx-sans.1 gromacs-2016.3/docs/man/gmx-sans.1 --- gromacs-2016.2/docs/man/gmx-sans.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-sans.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SANS" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SANS" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-sans \- Compute small angle neutron scattering spectra . diff -Nru gromacs-2016.2/docs/man/gmx-sasa.1 gromacs-2016.3/docs/man/gmx-sasa.1 --- gromacs-2016.2/docs/man/gmx-sasa.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-sasa.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SASA" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SASA" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-sasa \- Compute solvent accessible surface area . diff -Nru gromacs-2016.2/docs/man/gmx-saxs.1 gromacs-2016.3/docs/man/gmx-saxs.1 --- gromacs-2016.2/docs/man/gmx-saxs.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-saxs.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SAXS" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SAXS" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-saxs \- Compute small angle X-ray scattering spectra . diff -Nru gromacs-2016.2/docs/man/gmx-select.1 gromacs-2016.3/docs/man/gmx-select.1 --- gromacs-2016.2/docs/man/gmx-select.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-select.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SELECT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SELECT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-select \- Print general information about selections . diff -Nru gromacs-2016.2/docs/man/gmx-sham.1 gromacs-2016.3/docs/man/gmx-sham.1 --- gromacs-2016.2/docs/man/gmx-sham.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-sham.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SHAM" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SHAM" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-sham \- Compute free energies or other histograms from histograms . diff -Nru gromacs-2016.2/docs/man/gmx-sigeps.1 gromacs-2016.3/docs/man/gmx-sigeps.1 --- gromacs-2016.2/docs/man/gmx-sigeps.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-sigeps.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SIGEPS" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SIGEPS" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-sigeps \- Convert c6/12 or c6/cn combinations to and from sigma/epsilon . diff -Nru gromacs-2016.2/docs/man/gmx-solvate.1 gromacs-2016.3/docs/man/gmx-solvate.1 --- gromacs-2016.2/docs/man/gmx-solvate.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-solvate.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SOLVATE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SOLVATE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-solvate \- Solvate a system . @@ -64,7 +64,10 @@ the solvent molecule is less than the sum of the scaled van der Waals radii of both atoms. A database (\fBvdwradii.dat\fP) of van der Waals radii is read by the program, and the resulting radii scaled -by \fB\-scale\fP\&. If radii are not found in the database, thoseatoms are assigned the (pre\-scaled) distance \fB\-radius\fP\&. +by \fB\-scale\fP\&. If radii are not found in the database, those +atoms are assigned the (pre\-scaled) distance \fB\-radius\fP\&. +Note that the usefulness of those radii depends on the atom names, +and thus varies widely with force field. .sp The default solvent is Simple Point Charge water (SPC), with coordinates from \fB$GMXLIB/spc216.gro\fP\&. These coordinates can also be used diff -Nru gromacs-2016.2/docs/man/gmx-sorient.1 gromacs-2016.3/docs/man/gmx-sorient.1 --- gromacs-2016.2/docs/man/gmx-sorient.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-sorient.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SORIENT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SORIENT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-sorient \- Analyze solvent orientation around solutes . diff -Nru gromacs-2016.2/docs/man/gmx-spatial.1 gromacs-2016.3/docs/man/gmx-spatial.1 --- gromacs-2016.2/docs/man/gmx-spatial.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-spatial.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SPATIAL" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SPATIAL" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-spatial \- Calculate the spatial distribution function . diff -Nru gromacs-2016.2/docs/man/gmx-spol.1 gromacs-2016.3/docs/man/gmx-spol.1 --- gromacs-2016.2/docs/man/gmx-spol.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-spol.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-SPOL" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-SPOL" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-spol \- Analyze solvent dipole orientation and polarization around solutes . diff -Nru gromacs-2016.2/docs/man/gmx-tcaf.1 gromacs-2016.3/docs/man/gmx-tcaf.1 --- gromacs-2016.2/docs/man/gmx-tcaf.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-tcaf.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-TCAF" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-TCAF" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-tcaf \- Calculate viscosities of liquids . diff -Nru gromacs-2016.2/docs/man/gmx-traj.1 gromacs-2016.3/docs/man/gmx-traj.1 --- gromacs-2016.2/docs/man/gmx-traj.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-traj.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-TRAJ" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-TRAJ" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-traj \- Plot x, v, f, box, temperature and rotational energy from trajectories . diff -Nru gromacs-2016.2/docs/man/gmx-trjcat.1 gromacs-2016.3/docs/man/gmx-trjcat.1 --- gromacs-2016.2/docs/man/gmx-trjcat.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-trjcat.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-TRJCAT" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-TRJCAT" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-trjcat \- Concatenate trajectory files . diff -Nru gromacs-2016.2/docs/man/gmx-trjconv.1 gromacs-2016.3/docs/man/gmx-trjconv.1 --- gromacs-2016.2/docs/man/gmx-trjconv.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-trjconv.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-TRJCONV" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-TRJCONV" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-trjconv \- Convert and manipulates trajectory files . @@ -150,10 +150,6 @@ results if you in fact have a cluster. Luckily that can be checked afterwards using a trajectory viewer. Note also that if your molecules are broken this will not work either. -.sp -The separate option \fB\-clustercenter\fP can be used to specify an -approximate center for the cluster. This is useful e.g. if you have -two big vesicles, and you want to maintain their relative positions. .IP \(bu 2 \fBwhole\fP only makes broken molecules whole. .UNINDENT diff -Nru gromacs-2016.2/docs/man/gmx-trjorder.1 gromacs-2016.3/docs/man/gmx-trjorder.1 --- gromacs-2016.2/docs/man/gmx-trjorder.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-trjorder.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-TRJORDER" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-TRJORDER" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-trjorder \- Order molecules according to their distance to a group . diff -Nru gromacs-2016.2/docs/man/gmx-tune_pme.1 gromacs-2016.3/docs/man/gmx-tune_pme.1 --- gromacs-2016.2/docs/man/gmx-tune_pme.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-tune_pme.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-TUNE_PME" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-TUNE_PME" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-tune_pme \- Time mdrun as a function of PME ranks to optimize settings . diff -Nru gromacs-2016.2/docs/man/gmx-vanhove.1 gromacs-2016.3/docs/man/gmx-vanhove.1 --- gromacs-2016.2/docs/man/gmx-vanhove.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-vanhove.1 2017-03-13 17:30:59.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-VANHOVE" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-VANHOVE" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-vanhove \- Compute Van Hove displacement and correlation functions . diff -Nru gromacs-2016.2/docs/man/gmx-velacc.1 gromacs-2016.3/docs/man/gmx-velacc.1 --- gromacs-2016.2/docs/man/gmx-velacc.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-velacc.1 2017-03-13 17:31:00.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-VELACC" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-VELACC" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-velacc \- Calculate velocity autocorrelation functions . diff -Nru gromacs-2016.2/docs/man/gmx-view.1 gromacs-2016.3/docs/man/gmx-view.1 --- gromacs-2016.2/docs/man/gmx-view.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-view.1 2017-03-13 17:31:00.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-VIEW" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-VIEW" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-view \- View a trajectory on an X-Windows terminal . diff -Nru gromacs-2016.2/docs/man/gmx-wham.1 gromacs-2016.3/docs/man/gmx-wham.1 --- gromacs-2016.2/docs/man/gmx-wham.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-wham.1 2017-03-13 17:31:00.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-WHAM" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-WHAM" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-wham \- Perform weighted histogram analysis after umbrella sampling . diff -Nru gromacs-2016.2/docs/man/gmx-wheel.1 gromacs-2016.3/docs/man/gmx-wheel.1 --- gromacs-2016.2/docs/man/gmx-wheel.1 2017-02-07 10:53:49.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-wheel.1 2017-03-13 17:31:00.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-WHEEL" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-WHEEL" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-wheel \- Plot helical wheels . diff -Nru gromacs-2016.2/docs/man/gmx-x2top.1 gromacs-2016.3/docs/man/gmx-x2top.1 --- gromacs-2016.2/docs/man/gmx-x2top.1 2017-02-07 10:53:50.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-x2top.1 2017-03-13 17:31:00.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-X2TOP" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-X2TOP" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-x2top \- Generate a primitive topology from coordinates . diff -Nru gromacs-2016.2/docs/man/gmx-xpm2ps.1 gromacs-2016.3/docs/man/gmx-xpm2ps.1 --- gromacs-2016.2/docs/man/gmx-xpm2ps.1 2017-02-07 10:53:50.000000000 +0000 +++ gromacs-2016.3/docs/man/gmx-xpm2ps.1 2017-03-13 17:31:00.000000000 +0000 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "GMX-XPM2PS" "1" "Feb 07, 2017" "2016.2" "GROMACS" +.TH "GMX-XPM2PS" "1" "Mar 13, 2017" "2016.3" "GROMACS" .SH NAME gmx-xpm2ps \- Convert XPM (XPixelMap) matrices to postscript or XPM . diff -Nru gromacs-2016.2/docs/user-guide/index.rst gromacs-2016.3/docs/user-guide/index.rst --- gromacs-2016.2/docs/user-guide/index.rst 2016-07-09 00:55:38.000000000 +0000 +++ gromacs-2016.3/docs/user-guide/index.rst 2017-03-13 17:22:33.000000000 +0000 @@ -20,6 +20,7 @@ :maxdepth: 2 getting-started + system-preparation cutoff-schemes mdrun-features mdrun-performance diff -Nru gromacs-2016.2/docs/user-guide/mdrun-performance.rst gromacs-2016.3/docs/user-guide/mdrun-performance.rst --- gromacs-2016.2/docs/user-guide/mdrun-performance.rst 2016-10-28 18:24:31.000000000 +0000 +++ gromacs-2016.3/docs/user-guide/mdrun-performance.rst 2017-03-13 17:22:33.000000000 +0000 @@ -709,8 +709,12 @@ ----------------------------------- The current version works with GCN-based AMD GPUs, and NVIDIA CUDA -GPUs. Make sure that you have the latest drivers installed. The -minimum OpenCL version required is |REQUIRED_OPENCL_MIN_VERSION|. See +GPUs. Make sure that you have the latest drivers installed. For AMD GPUs, +Mesa version 17.0 or newer with LLVM 4.0 or newer is supported in addition +to the proprietary driver. For NVIDIA GPUs, using the proprietary driver is +required as the open source nouveau driver (available in Mesa) does not +provide the OpenCL support. +The minimum OpenCL version required is |REQUIRED_OPENCL_MIN_VERSION|. See also the :ref:`known limitations `. Devices from the AMD GCN architectures (all series) and NVIDIA Fermi diff -Nru gromacs-2016.2/docs/user-guide/system-preparation.rst gromacs-2016.3/docs/user-guide/system-preparation.rst --- gromacs-2016.2/docs/user-guide/system-preparation.rst 1970-01-01 00:00:00.000000000 +0000 +++ gromacs-2016.3/docs/user-guide/system-preparation.rst 2017-03-13 17:22:33.000000000 +0000 @@ -0,0 +1,130 @@ +System preparation +================== + +.. toctree:: + :hidden: + +There are many ways to prepare a simulation system to run with +|Gromacs|. These often vary with the kind of scientific question being +considered, or the model physics involved. A protein-ligand atomistic +free-energy simulation might need a multi-state topology, while a +coarse-grained simulation might need to manage defaults that suit +systems with higher density. + +Steps to consider +----------------- + +The following general guidance should help with planning successful +simulations. Some stages are optional for some kinds of simulations. + +1. Clearly identify the property or phenomena of interest to be + studied by performing the simulation. Do not continue further until + you are clear on this! Do not run your simulation and then seek to + work out how to use it to test your hypothesis, because it may be + unsuitable, or the required information was not saved. + +2. Select the appropriate tools to be able to perform the simulation + and observe the property or phenomena of interest. It is important + to read and familiarize yourself with publications by other + researchers on similar systems. Choices of tools include: + + - software with which to perform the simulation (consideration of + force field may influence this decision) + + - the force field, which describes how the particles within the + system interact with each other. Select one that is appropriate + for the system being studied and the property or phenomena of + interest. This is a very important and non-trivial step! Consider + now how you will analyze your simulation data to make your + observations. + +3. Obtain or generate the initial coordinate file for each molecule to + be placed within the system. Many different software packages are + able to build molecular structures and assemble them into suitable + configurations. + +4. Generate the raw starting structure for the system by placing the + molecules within the coordinate file as appropriate. Molecules may + be specifically placed or arranged randomly. Several non-|Gromacs| + tools are useful here; within |Gromacs| :ref:`gmx solvate`, + :ref:`gmx insert-molecules` and :ref:`gmx genconf` solve frequent + problems. + +5. Obtain or generate the topology file for the system, using (for + example) :ref:`gmx pdb2gmx`, :ref:`gmx x2top`, `SwissParam + `_ (for CHARMM forcefield), `PRODRG + `_ (for GROMOS96 + 43A1), `Automated Topology Builder + `_ (for GROMOS96 53A6), + `MKTOP `_ (for OPLS/AA) or your + favourite text editor in concert with chapter 5 of the |Gromacs| + `Reference Manual`_. For the AMBER force fields, `antechamber + `_ or + `acpype `_ might be + appropriate. + +6. Describe a simulation box (e.g. using :ref:`gmx editconf`) whose + size is appropriate for the eventual density you would like, fill + it with solvent (e.g. using :ref:`gmx solvate`), and add any + counter-ions needed to neutralize the system (e.g. using :ref:`gmx + grompp` and :ref:`gmx insert-molecules`). In these steps you may + need to edit your topology file to stay current with your + coordinate file. + +7. Run an energy minimization on the system (using :ref:`gmx grompp` + and :ref:`gmx mdrun`). This is required to sort out any bad + starting structures caused during generation of the system, which + may cause the production simulation to crash. It may be necessary + also to minimize your solute structure in vacuo before introducing + solvent molecules (or your lipid bilayer or whatever else). You + should consider using flexible water models and not using bond + constraints or frozen groups. The use of position restraints and/or + distance restraints should be evaluated carefully. + +8. Select the appropriate simulation parameters for the equilibration + simulation (defined in .mdp file). You need to choose simulation + parameters that are consistent with how force field was + derived. You may need to simulate at NVT with position restraints + on your solvent and/or solute to get the temperature almost right, + then relax to NPT to fix the density (which should be done with + Berendsen until after the density is stabilized, before a further + switch to a barostat that produces the correct ensemble), then move + further (if needed) to reach your production simulation ensemble + (e.g. NVT, NVE). If you have problems here with the system `blowing + up `_, + consider using the suggestions on that page, e.g. position + restraints on solutes, or not using bond constraints, or using + smaller integration timesteps, or several gentler heating stage(s). + +9. Run the equilibration simulation for sufficient time so that the + system relaxes sufficiently in the target ensemble to allow the + production run to be commenced (using :ref:`gmx grompp` and + :ref:`gmx mdrun`, then :ref:`gmx energy` and `trajectory + visualization tools + `_). + +10. Select the appropriate simulation parameters for the production + simulation (defined in .mdp file). In particular, be careful not + to re-generate the velocities. You still need to be consistent + with how the force field was derived and how to measure the + property or phenomena of interest. + +.. _Reference Manual: `gmx-manual`_ + +Tips and tricks +--------------- + +Database files +^^^^^^^^^^^^^^ + +The ``share/top`` directory of a |Gromacs| installation contains +numerous plain-text helper files with the ``.dat`` file extension. +Some of the command-line tools (see :doc:`cmdline`) refer to these, +and each tool documents which files it uses, and how they are used. + +If you need to modify these files (e.g. to introduce new atom types +with VDW radii into ``vdwradii.dat``), you can copy the file from your +installation directory into your working directory, and the |Gromacs| +tools will automatically load the copy from your working directory +rather than the standard one. To suppress all the standard +definitions, use an empty file in the working directory. diff -Nru gromacs-2016.2/INSTALL gromacs-2016.3/INSTALL --- gromacs-2016.2/INSTALL 2017-02-07 10:53:54.000000000 +0000 +++ gromacs-2016.3/INSTALL 2017-03-13 17:31:06.000000000 +0000 @@ -6,7 +6,7 @@ Introduction to building GROMACS ================================ -These instructions pertain to building GROMACS 2016.2. You might also +These instructions pertain to building GROMACS 2016.3. You might also want to check the up-to-date installation instructions. @@ -29,8 +29,8 @@ Or, as a sequence of commands to execute: - tar xfz gromacs-2016.2.tar.gz - cd gromacs-2016.2 + tar xfz gromacs-2016.3.tar.gz + cd gromacs-2016.3 mkdir build cd build cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON @@ -134,11 +134,19 @@ frequently provides the best performance. You should strive to use the most recent version of your compiler. -Minimum supported compiler versions are * GNU (gcc) 4.6 * Intel (icc) -14 * LLVM (clang) 3.4 * Microsoft (MSVC) 2015 Other compilers may work -(Cray, Pathscale, older clang) but do not offer competitive -performance. We recommend against PGI because the performance with C++ -is very bad. +Minimum supported compiler versions are + +* GNU (gcc) 4.6 + +* Intel (icc) 14 + +* LLVM (clang) 3.4 + +* Microsoft (MSVC) 2015 + +Other compilers may work (Cray, Pathscale, older clang) but do not +offer competitive performance. We recommend against PGI because the +performance with C++ is very bad. You may also need the most recent version of other compiler toolchain components beside the compiler itself (e.g. assembler or linker); @@ -395,8 +403,8 @@ code you want to build. For example, download the source tarball and use - tar xfz gromacs-2016.2.tgz - cd gromacs-2016.2 + tar xfz gromacs-2016.3.tgz + cd gromacs-2016.3 mkdir build-gromacs cd build-gromacs cmake .. @@ -930,7 +938,7 @@ "-DREGRESSIONTEST_DOWNLOAD", and run "make check". GROMACS will automatically download and run the tests for you. Alternatively, you can download and unpack the GROMACS regression test suite -http://gerrit.gromacs.org/download/regressiontests-2016.2.tar.gz +http://gerrit.gromacs.org/download/regressiontests-2016.3.tar.gz tarball yourself and use the advanced "cmake" option "REGRESSIONTEST_PATH" to specify the path to the unpacked tarball, which will then be used for testing. If the above does not work, then diff -Nru gromacs-2016.2/src/contrib/fftw/CMakeLists.txt gromacs-2016.3/src/contrib/fftw/CMakeLists.txt --- gromacs-2016.2/src/contrib/fftw/CMakeLists.txt 2016-10-25 09:50:19.000000000 +0000 +++ gromacs-2016.3/src/contrib/fftw/CMakeLists.txt 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ # # This file is part of the GROMACS molecular simulation package. # -# Copyright (c) 2012,2013,2014,2015,2016, by the GROMACS development team, led by +# Copyright (c) 2012,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. @@ -73,7 +73,12 @@ # Support for --enable-avx2 was only added in 3.3.5, but # configuring with it is at worst a warning, even on an earlier # version. +if((CMAKE_COMPILER_IS_GNUCC AND (C_COMPILER_VERSION VERSION_GREATER 4.9 OR CXX_COMPILER_VERSION VERSION_GREATER 4.9)) OR + (CMAKE_C_COMPILER_ID MATCHES "Clang" AND (C_COMPILER_VERSION VERSION_GREATER 3.9 OR CXX_COMPILER_VERSION VERSION_GREATER 3.9))) set(_fftw_simd_support_level --enable-sse2;--enable-avx;--enable-avx2;--enable-avx512) +elseif() + set(_fftw_simd_support_level --enable-sse2;--enable-avx;--enable-avx2) +endif() elseif(${GMX_SIMD} MATCHES "^(VSX)") set(_fftw_simd_support_level --enable-vsx) endif() diff -Nru gromacs-2016.2/src/gromacs/gmxana/gmx_do_dssp.cpp gromacs-2016.3/src/gromacs/gmxana/gmx_do_dssp.cpp --- gromacs-2016.2/src/gromacs/gmxana/gmx_do_dssp.cpp 2016-07-09 00:55:38.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxana/gmx_do_dssp.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -3,7 +3,7 @@ * * Copyright (c) 1991-2000, University of Groningen, The Netherlands. * Copyright (c) 2001-2004, The GROMACS development team. - * Copyright (c) 2012,2013,2014,2015, by the GROMACS development team, led by + * Copyright (c) 2012,2013,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. @@ -423,8 +423,8 @@ } fprintf(fp, "\n"); - /* now print percentages */ - fprintf(fp, "%-8s %5.2f", "# SS %", total_count / static_cast(mat->nx * mat->ny)); + /* now print probabilities */ + fprintf(fp, "%-8s %5.2f", "# SS pr.", total_count / static_cast(mat->nx * mat->ny)); for (s = 0; s < static_cast(mat->nmap); s++) { fprintf(fp, " %5.2f", total[s] / static_cast(mat->nx * mat->ny)); diff -Nru gromacs-2016.2/src/gromacs/gmxana/gmx_mindist.cpp gromacs-2016.3/src/gromacs/gmxana/gmx_mindist.cpp --- gromacs-2016.2/src/gromacs/gmxana/gmx_mindist.cpp 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxana/gmx_mindist.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -3,7 +3,7 @@ * * 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. @@ -413,15 +413,16 @@ sprintf(buf, "%simum Distance", bMin ? "Min" : "Max"); respertime = xvgropen(rfile, buf, output_env_get_time_label(oenv), "Distance (nm)", oenv); xvgr_legend(respertime, ng-1, (const char**)leg, oenv); - if (bPrintResName) + if (bPrintResName && output_env_get_print_xvgr_codes(oenv) ) { fprintf(respertime, "# "); + + for (j = 0; j < nres; j++) + { + fprintf(respertime, "%s%d ", *(atoms->resinfo[atoms->atom[index[0][residue[j]]].resind].name), atoms->atom[index[0][residue[j]]].resind); + } + fprintf(respertime, "\n"); } - for (j = 0; j < nres; j++) - { - fprintf(respertime, "%s%d ", *(atoms->resinfo[atoms->atom[index[0][residue[j]]].resind].name), atoms->atom[index[0][residue[j]]].resind); - } - fprintf(respertime, "\n"); } diff -Nru gromacs-2016.2/src/gromacs/gmxana/gmx_traj.cpp gromacs-2016.3/src/gromacs/gmxana/gmx_traj.cpp --- gromacs-2016.2/src/gromacs/gmxana/gmx_traj.cpp 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxana/gmx_traj.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -3,7 +3,7 @@ * * 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. @@ -461,7 +461,7 @@ svmul(scale, sum[index[i]], sum[index[i]]); } - fp = xvgropen(xname, title, "Atom", "", oenv); + fp = xvgropen(xname, title, "Atom", "Spatial component", oenv); for (i = 0; i < isize; i++) { fprintf(fp, "%-5d %10.3f %10.3f %10.3f\n", 1+i, diff -Nru gromacs-2016.2/src/gromacs/gmxana/gmx_trjconv.cpp gromacs-2016.3/src/gromacs/gmxana/gmx_trjconv.cpp --- gromacs-2016.2/src/gromacs/gmxana/gmx_trjconv.cpp 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxana/gmx_trjconv.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -3,7 +3,7 @@ * * 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. @@ -665,10 +665,6 @@ " results if you in fact have a cluster. Luckily that can be checked", " afterwards using a trajectory viewer. Note also that if your molecules", " are broken this will not work either.", - "", - " The separate option [TT]-clustercenter[tt] can be used to specify an", - " approximate center for the cluster. This is useful e.g. if you have", - " two big vesicles, and you want to maintain their relative positions.", " * [TT]whole[tt] only makes broken molecules whole.", "", diff -Nru gromacs-2016.2/src/gromacs/gmxana/gmx_tune_pme.cpp gromacs-2016.3/src/gromacs/gmxana/gmx_tune_pme.cpp --- gromacs-2016.2/src/gromacs/gmxana/gmx_tune_pme.cpp 2017-02-05 20:30:25.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxana/gmx_tune_pme.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -659,17 +659,17 @@ * gmx_print_version_info() in the GMX_MPI section */ const char match_mpi[] = "MPI library: MPI"; const char match_mdrun[] = "Executable: "; - const char match_gpu[] = "GPU support: enabled"; + const char match_nogpu[] = "GPU support: disabled"; gmx_bool bMdrun = FALSE; gmx_bool bMPI = FALSE; - gmx_bool bHaveGpuSupport = FALSE; + gmx_bool bHaveGpuSupport = TRUE; /* Run a small test to see whether mpirun + mdrun work */ fprintf(stdout, "Making sure that mdrun can be executed. "); if (bThreads) { snew(command, std::strlen(cmd_mdrun) + std::strlen(cmd_np) + std::strlen(filename) + 50); - sprintf(command, "%s%s-version -maxh 0.001 1> %s 2>&1", cmd_mdrun, cmd_np, filename); + sprintf(command, "%s%s -version -maxh 0.001 1> %s 2>&1", cmd_mdrun, cmd_np, filename); } else { @@ -702,9 +702,9 @@ { bMPI = TRUE; } - if (str_starts(line, match_gpu) ) + if (str_starts(line, match_nogpu) ) { - bHaveGpuSupport = TRUE; + bHaveGpuSupport = FALSE; } } } diff -Nru gromacs-2016.2/src/gromacs/gmxpreprocess/insert-molecules.cpp gromacs-2016.3/src/gromacs/gmxpreprocess/insert-molecules.cpp --- gromacs-2016.2/src/gromacs/gmxpreprocess/insert-molecules.cpp 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxpreprocess/insert-molecules.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -3,7 +3,7 @@ * * 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. @@ -409,8 +409,10 @@ "inserted molecule is less than the sum based on the van der Waals", "radii of both atoms. A database ([TT]vdwradii.dat[tt]) of van der", "Waals radii is read by the program, and the resulting radii scaled", - "by [TT]-scale[tt]. If radii are not found in the database, those" + "by [TT]-scale[tt]. If radii are not found in the database, those", "atoms are assigned the (pre-scaled) distance [TT]-radius[tt].", + "Note that the usefulness of those radii depends on the atom names,", + "and thus varies widely with force field.", "", "A total of [TT]-nmol[tt] * [TT]-try[tt] insertion attempts are made", "before giving up. Increase [TT]-try[tt] if you have several small", diff -Nru gromacs-2016.2/src/gromacs/gmxpreprocess/readir.cpp gromacs-2016.3/src/gromacs/gmxpreprocess/readir.cpp --- gromacs-2016.2/src/gromacs/gmxpreprocess/readir.cpp 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxpreprocess/readir.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -3,7 +3,7 @@ * * 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. @@ -811,7 +811,7 @@ if (expand->nstTij > 0) { sprintf(err_buf, "nstlog must be non-zero"); - CHECK(ir->nstlog != 0); + CHECK(ir->nstlog == 0); sprintf(err_buf, "nst-transition-matrix (%d) must be an integer multiple of nstlog (%d)", expand->nstTij, ir->nstlog); CHECK((expand->nstTij % ir->nstlog) != 0); diff -Nru gromacs-2016.2/src/gromacs/gmxpreprocess/solvate.cpp gromacs-2016.3/src/gromacs/gmxpreprocess/solvate.cpp --- gromacs-2016.2/src/gromacs/gmxpreprocess/solvate.cpp 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxpreprocess/solvate.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -3,7 +3,7 @@ * * 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. @@ -491,50 +491,86 @@ } /*! \brief - * Removes solvent molecules that overlap with the solute, and optionally also - * those that are outside a given shell radius from the solute. + * Remove all solvent molecules outside a give radius from the solute. * - * \param[in,out] atoms Solvent atoms. - * \param[in,out] x Solvent positions. - * \param[in,out] v Solvent velocities (can be empty). - * \param[in,out] r Solvent exclusion radii. - * \param[in] pbc PBC information. - * \param[in] x_solute Solute positions. - * \param[in] r_solute Solute exclusion radii. - * \param[in] rshell If >0, only keep solvent atoms within a shell of - * this size from the solute. + * \param[in,out] atoms Solvent atoms. + * \param[in,out] x_solvent Solvent positions. + * \param[in,out] v_solvent Solvent velocities. + * \param[in,out] r Atomic exclusion radii. + * \param[in] pbc PBC information. + * \param[in] x_solute Solute positions. + * \param[in] rshell The radius outside the solute molecule. */ -static void removeSoluteOverlap(t_atoms *atoms, std::vector *x, - std::vector *v, std::vector *r, - const t_pbc &pbc, - const std::vector &x_solute, - const std::vector &r_solute, - real rshell) +static void removeSolventOutsideShell(t_atoms *atoms, + std::vector *x_solvent, + std::vector *v_solvent, + std::vector *r, + const t_pbc &pbc, + const std::vector &x_solute, + real rshell) { - const real maxRadius1 - = *std::max_element(r->begin(), r->end()); - const real maxRadius2 - = *std::max_element(r_solute.begin(), r_solute.end()); - gmx::AtomsRemover remover(*atoms); - // If rshell is >0, the neighborhood search looks at all pairs - // within rshell, and unmarks those that are within the cutoff. - // This line marks everything, so that solvent outside rshell remains - // marked after the loop. - // Without rshell, the neighborhood search only marks the overlapping - // solvent atoms, and all others are left alone. - if (rshell > 0.0) + gmx::AnalysisNeighborhood nb; + nb.setCutoff(rshell); + gmx::AnalysisNeighborhoodPositions posSolute(x_solute); + gmx::AnalysisNeighborhoodSearch search = nb.initSearch(&pbc, posSolute); + gmx::AnalysisNeighborhoodPositions pos(*x_solvent); + gmx::AnalysisNeighborhoodPairSearch pairSearch = search.startPairSearch(pos); + gmx::AnalysisNeighborhoodPair pair; + + // Remove everything + remover.markAll(); + // Now put back those within the shell without checking for overlap + while (pairSearch.findNextPair(&pair)) + { + remover.markResidue(*atoms, pair.testIndex(), false); + pairSearch.skipRemainingPairsForTestPosition(); + } + remover.removeMarkedElements(x_solvent); + if (!v_solvent->empty()) { - remover.markAll(); + remover.removeMarkedElements(v_solvent); } + remover.removeMarkedElements(r); + const int originalAtomCount = atoms->nr; + remover.removeMarkedAtoms(atoms); + fprintf(stderr, "Removed %d solvent atoms more than %f nm from solute.\n", + originalAtomCount - atoms->nr, rshell); +} +/*! \brief + * Removes solvent molecules that overlap with the solute. + * + * \param[in,out] atoms Solvent atoms. + * \param[in,out] x Solvent positions. + * \param[in,out] v Solvent velocities (can be empty). + * \param[in,out] r Solvent exclusion radii. + * \param[in] pbc PBC information. + * \param[in] x_solute Solute positions. + * \param[in] r_solute Solute exclusion radii. + */ +static void removeSolventOverlappingWithSolute(t_atoms *atoms, + std::vector *x, + std::vector *v, + std::vector *r, + const t_pbc &pbc, + const std::vector &x_solute, + const std::vector &r_solute) +{ + gmx::AtomsRemover remover(*atoms); + const real maxRadius1 + = *std::max_element(r->begin(), r->end()); + const real maxRadius2 + = *std::max_element(r_solute.begin(), r_solute.end()); + + // Now check for overlap. gmx::AnalysisNeighborhood nb; - nb.setCutoff(std::max(maxRadius1 + maxRadius2, rshell)); + gmx::AnalysisNeighborhoodPair pair; + nb.setCutoff(maxRadius1 + maxRadius2); gmx::AnalysisNeighborhoodPositions posSolute(x_solute); gmx::AnalysisNeighborhoodSearch search = nb.initSearch(&pbc, posSolute); gmx::AnalysisNeighborhoodPositions pos(*x); gmx::AnalysisNeighborhoodPairSearch pairSearch = search.startPairSearch(pos); - gmx::AnalysisNeighborhoodPair pair; while (pairSearch.findNextPair(&pair)) { if (remover.isMarked(pair.testIndex())) @@ -647,8 +683,14 @@ } if (top->atoms.nr > 0) { - removeSoluteOverlap(atoms_solvt, &x_solvt, &v_solvt, &exclusionDistances_solvt, pbc, - *x, exclusionDistances, rshell); + if (rshell > 0.0) + { + removeSolventOutsideShell(atoms_solvt, &x_solvt, &v_solvt, + &exclusionDistances_solvt, pbc, *x, rshell); + } + removeSolventOverlappingWithSolute(atoms_solvt, &x_solvt, &v_solvt, + &exclusionDistances_solvt, pbc, *x, + exclusionDistances); } if (max_sol > 0 && atoms_solvt->nres > max_sol) @@ -827,9 +869,11 @@ "the solvent molecule is less than the sum of the scaled van der Waals", "radii of both atoms. A database ([TT]vdwradii.dat[tt]) of van der", "Waals radii is read by the program, and the resulting radii scaled", - "by [TT]-scale[tt]. If radii are not found in the database, those" - "atoms are assigned the (pre-scaled) distance [TT]-radius[tt].[PAR]", - + "by [TT]-scale[tt]. If radii are not found in the database, those", + "atoms are assigned the (pre-scaled) distance [TT]-radius[tt].", + "Note that the usefulness of those radii depends on the atom names,", + "and thus varies widely with force field.", + "", "The default solvent is Simple Point Charge water (SPC), with coordinates ", "from [TT]$GMXLIB/spc216.gro[tt]. These coordinates can also be used", "for other 3-site water models, since a short equibilibration will remove", diff -Nru gromacs-2016.2/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_box_Works.xml gromacs-2016.3/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_box_Works.xml --- gromacs-2016.2/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_box_Works.xml 1970-01-01 00:00:00.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_box_Works.xml 2017-03-13 17:22:33.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + + Generated by gmx solvate + 141 + + + + diff -Nru gromacs-2016.2/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_cp_p_Works.xml gromacs-2016.3/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_cp_p_Works.xml --- gromacs-2016.2/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_cp_p_Works.xml 1970-01-01 00:00:00.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_cp_p_Works.xml 2017-03-13 17:22:33.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + + Test system for solvate/insert-molecules + 2664 + + + + diff -Nru gromacs-2016.2/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_cp_Works.xml gromacs-2016.3/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_cp_Works.xml --- gromacs-2016.2/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_cp_Works.xml 1970-01-01 00:00:00.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_cs_cp_Works.xml 2017-03-13 17:22:33.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + + Test system for solvate/insert-molecules + 2664 + + + + diff -Nru gromacs-2016.2/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_shell_Works.xml gromacs-2016.3/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_shell_Works.xml --- gromacs-2016.2/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_shell_Works.xml 1970-01-01 00:00:00.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxpreprocess/tests/refdata/SolvateTest_shell_Works.xml 2017-03-13 17:22:33.000000000 +0000 @@ -0,0 +1,12 @@ + + + + + + + Test system for solvate/insert-molecules + 762 + + + + diff -Nru gromacs-2016.2/src/gromacs/gmxpreprocess/tests/solvate.cpp gromacs-2016.3/src/gromacs/gmxpreprocess/tests/solvate.cpp --- gromacs-2016.2/src/gromacs/gmxpreprocess/tests/solvate.cpp 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/gmxpreprocess/tests/solvate.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the GROMACS molecular simulation package. * - * Copyright (c) 2013,2014,2015, by the GROMACS development team, led by + * Copyright (c) 2013,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. @@ -45,8 +45,11 @@ #include "gromacs/gmxpreprocess/solvate.h" #include "gromacs/utility/futil.h" +#include "gromacs/utility/textreader.h" #include "testutils/cmdlinetest.h" +#include "testutils/conftest.h" +#include "testutils/refdata.h" #include "testutils/testfilemanager.h" #include "testutils/textblockmatchers.h" @@ -54,14 +57,14 @@ { using gmx::test::CommandLine; -using gmx::test::NoTextMatch; +using gmx::test::ConfMatch; class SolvateTest : public gmx::test::CommandLineTestBase { public: SolvateTest() { - setOutputFile("-o", "out.gro", NoTextMatch()); + setOutputFile("-o", "out.gro", ConfMatch()); } void runTest(const CommandLine &args) @@ -70,6 +73,7 @@ cmdline.merge(args); ASSERT_EQ(0, gmx_solvate(cmdline.argc(), cmdline.argv())); + checkOutputFiles(); } }; @@ -108,5 +112,17 @@ runTest(CommandLine(cmdline)); } + +TEST_F(SolvateTest, shell_Works) +{ + // use default solvent box (-cs without argument) + const char *const cmdline[] = { + "solvate", "-cs" + }; + setInputFile("-cp", "spc-and-methanol.gro"); + commandLine().addOption("-shell", 1.0); + + runTest(CommandLine(cmdline)); +} } // namespace diff -Nru gromacs-2016.2/src/gromacs/listed-forces/pairs.cpp gromacs-2016.3/src/gromacs/listed-forces/pairs.cpp --- gromacs-2016.2/src/gromacs/listed-forces/pairs.cpp 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/listed-forces/pairs.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the GROMACS molecular simulation package. * - * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by + * Copyright (c) 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. @@ -607,7 +607,7 @@ pbc_dx_aiuc(pbc, xi, xj, dr); T rsq = dr[XX]*dr[XX] + dr[YY]*dr[YY] + dr[ZZ]*dr[ZZ]; - T rinv = invsqrt(rsq); + T rinv = gmx::invsqrt(rsq); T rinv2 = rinv*rinv; T rinv6 = rinv2*rinv2*rinv2; diff -Nru gromacs-2016.2/src/gromacs/mdlib/sim_util.cpp gromacs-2016.3/src/gromacs/mdlib/sim_util.cpp --- gromacs-2016.2/src/gromacs/mdlib/sim_util.cpp 2017-02-05 20:30:25.000000000 +0000 +++ gromacs-2016.3/src/gromacs/mdlib/sim_util.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -2574,12 +2574,22 @@ elapsed_time_over_all_ranks, elapsed_time_over_all_threads, elapsed_time_over_all_threads_over_all_ranks; + /* Control whether it is valid to print a report. Only the + simulation master may print, but it should not do so if the run + terminated e.g. before a scheduled reset step. This is + complicated by the fact that PME ranks are unaware of the + reason why they were sent a pmerecvqxFINISH. To avoid + communication deadlocks, we always do the communication for the + report, even if we've decided not to write the report, because + how long it takes to finish the run is not important when we've + decided not to report on the simulation performance. */ + bool printReport = SIMMASTER(cr); if (!walltime_accounting_get_valid_finish(walltime_accounting)) { md_print_warn(cr, fplog, "Simulation ended prematurely, no performance report will be written."); - return; + printReport = false; } if (cr->nnodes > 1) @@ -2617,7 +2627,7 @@ } #endif - if (SIMMASTER(cr)) + if (printReport) { print_flop(fplog, nrnb_tot, &nbfs, &mflop); } @@ -2640,7 +2650,7 @@ wallcycle_scale_by_num_threads(wcycle, cr->duty == DUTY_PME, nthreads_pp, nthreads_pme); auto cycle_sum(wallcycle_sum(cr, wcycle)); - if (SIMMASTER(cr)) + if (printReport) { struct gmx_wallclock_gpu_t* gputimes = use_GPU(nbv) ? nbnxn_gpu_get_timings(nbv->gpu_nbv) : NULL; diff -Nru gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_general.h gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_general.h --- gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_general.h 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_general.h 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * 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. @@ -43,7 +43,7 @@ simdPrefetch(const void * m) { #if defined(__ibmxl__) || defined(__xlC__) - __dcbt(m); + __dcbt((void *)m); #elif defined __GNUC__ __builtin_prefetch(m); #endif diff -Nru gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd4_float.h gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd4_float.h --- gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd4_float.h 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd4_float.h 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * 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. @@ -105,25 +105,15 @@ static inline Simd4Float gmx_simdcall load4U(const float *m) { -#if defined(__ibmxl__) || defined(__xlC__) - return { - vec_xlw4(0, const_cast(m)) - } -#else return { *reinterpret_cast(m) }; -#endif } static inline void gmx_simdcall store4U(float *m, Simd4Float a) { -#if defined(__ibmxl__) || defined(__xlC__) - vec_xstw4(a.simdInternal_, 0, m); -#else *reinterpret_cast<__vector float *>(m) = a.simdInternal_; -#endif } static inline Simd4Float gmx_simdcall diff -Nru gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd_double.h gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd_double.h --- gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd_double.h 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd_double.h 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the GROMACS molecular simulation package. * - * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by + * Copyright (c) 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. @@ -99,19 +99,8 @@ __vector vsxBool int simdInternal_; }; -// The VSX load & store operations are a bit of a mess. The interface is different -// for xlc version 12, xlc version 13, and gcc. Long-term IBM recommends -// simply using pointer dereferencing both for aligned and unaligned loads. -// That's nice, but unfortunately xlc still bugs out when the pointer is -// not aligned. Sticking to vec_xl/vec_xst isn't a solution either, since -// that appears to be buggy for some _aligned_ loads :-) -// -// For now, we use pointer dereferencing for all aligned load/stores, and -// for unaligned ones with gcc. On xlc we use vec_xlw4/vec_xstw4 for -// unaligned memory operations. The latest docs recommend using the overloaded -// vec_xl/vec_xst, but that is not supported on xlc version 12. We'll -// revisit things once xlc is a bit more stable - for now you probably want -// to stick to gcc... +// Note that the interfaces we use here have been a mess in xlc; +// currently version 13.1.5 is required. static inline SimdDouble gmx_simdcall simdLoad(const double *m) @@ -130,25 +119,15 @@ static inline SimdDouble gmx_simdcall simdLoadU(const double *m) { -#if defined(__ibmxl__) || defined(__xlC__) - return { - vec_xlw4(0, const_cast(m)) - } -#else return { *reinterpret_cast(m) }; -#endif } static inline void gmx_simdcall storeU(double *m, SimdDouble a) { -#if defined(__ibmxl__) || defined(__xlC__) - vec_xstw4(a.simdInternal_, 0, m); -#else *reinterpret_cast<__vector double *>(m) = a.simdInternal_; -#endif } static inline SimdDouble gmx_simdcall diff -Nru gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd_float.h gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd_float.h --- gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd_float.h 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_simd_float.h 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the GROMACS molecular simulation package. * - * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by + * Copyright (c) 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. @@ -99,19 +99,8 @@ __vector vsxBool int simdInternal_; }; -// The VSX load & store operations are a bit of a mess. The interface is different -// for xlc version 12, xlc version 13, and gcc. Long-term IBM recommends -// simply using pointer dereferencing both for aligned and unaligned loads. -// That's nice, but unfortunately xlc still bugs out when the pointer is -// not aligned. Sticking to vec_xl/vec_xst isn't a solution either, since -// that appears to be buggy for some _aligned_ loads :-) -// -// For now, we use pointer dereferencing for all aligned load/stores, and -// for unaligned ones with gcc. On xlc we use vec_xlw4/vec_xstw4 for -// unaligned memory operations. The latest docs recommend using the overloaded -// vec_xl/vec_xst, but that is not supported on xlc version 12. We'll -// revisit things once xlc is a bit more stable - for now you probably want -// to stick to gcc... +// Note that the interfaces we use here have been a mess in xlc; +// currently version 13.1.5 is required. static inline SimdFloat gmx_simdcall simdLoad(const float *m) @@ -130,25 +119,15 @@ static inline SimdFloat gmx_simdcall simdLoadU(const float *m) { -#if defined(__ibmxl__) || defined(__xlC__) - return { - vec_xlw4(0, const_cast(m)) - } -#else return { *reinterpret_cast(m) }; -#endif } static inline void gmx_simdcall storeU(float *m, SimdFloat a) { -#if defined(__ibmxl__) || defined(__xlC__) - vec_xstw4(a.simdInternal_, 0, m); -#else *reinterpret_cast<__vector float *>(m) = a.simdInternal_; -#endif } static inline SimdFloat gmx_simdcall @@ -176,25 +155,15 @@ static inline SimdFInt32 gmx_simdcall simdLoadUFI(const std::int32_t *m) { -#if defined(__ibmxl__) || defined(__xlC__) - return { - vec_xlw4(0, const_cast(m)) - } -#else return { *reinterpret_cast(m) }; -#endif } static inline void gmx_simdcall storeU(std::int32_t * m, SimdFInt32 a) { -#if defined(__ibmxl__) || defined(__xlC__) - vec_xstw4(a.simdInternal_, 0, m); -#else *reinterpret_cast<__vector int *>(m) = a.simdInternal_; -#endif } static inline SimdFInt32 gmx_simdcall diff -Nru gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h --- gromacs-2016.2/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx_util_float.h 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file is part of the GROMACS molecular simulation package. * - * Copyright (c) 2014,2015,2016, by the GROMACS development team, led by + * Copyright (c) 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. @@ -55,15 +55,17 @@ SimdFloat * v2, SimdFloat * v3) { - *v0 = simdLoad( base + align * offset[0] ); - *v1 = simdLoad( base + align * offset[1] ); - *v2 = simdLoad( base + align * offset[2] ); - *v3 = simdLoad( base + align * offset[3] ); - - __vector float t0 = vec_mergeh(v0->simdInternal_, v2->simdInternal_); - __vector float t1 = vec_mergel(v0->simdInternal_, v2->simdInternal_); - __vector float t2 = vec_mergeh(v1->simdInternal_, v3->simdInternal_); - __vector float t3 = vec_mergel(v1->simdInternal_, v3->simdInternal_); + __vector float l0, l1, l2, l3; + + l0 = simdLoad( base + align * offset[0] ).simdInternal_; + l1 = simdLoad( base + align * offset[1] ).simdInternal_; + l2 = simdLoad( base + align * offset[2] ).simdInternal_; + l3 = simdLoad( base + align * offset[3] ).simdInternal_; + + __vector float t0 = vec_mergeh(l0, l2); + __vector float t1 = vec_mergel(l0, l2); + __vector float t2 = vec_mergeh(l1, l3); + __vector float t3 = vec_mergel(l1, l3); v0->simdInternal_ = vec_mergeh(t0, t2); v1->simdInternal_ = vec_mergel(t0, t2); v2->simdInternal_ = vec_mergeh(t1, t3); @@ -316,6 +318,9 @@ triplets2->simdInternal_ = vec_perm(scalar.simdInternal_, t1, perm2); } +/* TODO In debug mode, xlc 13.1.5 seems to overwrite v0 on the stack, + leading to segfaults. Possibly the calling convention doesn't + implement __vector int correctly. Release mode is OK. gcc is OK. */ template static inline void gmx_simdcall gatherLoadBySimdIntTranspose(const float * base, diff -Nru gromacs-2016.2/src/gromacs/simd/tests/simd_math.cpp gromacs-2016.3/src/gromacs/simd/tests/simd_math.cpp --- gromacs-2016.2/src/gromacs/simd/tests/simd_math.cpp 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/simd/tests/simd_math.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ /* * 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. @@ -439,8 +439,9 @@ GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(std::atan2(1.0, 0.0)), atan2(rSimd_1_2_3, setZero())); GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(std::atan2(0.0, -1.0)), atan2(setZero(), rSimd_m1_m2_m3)); GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(std::atan2(-1.0, 0.0)), atan2(rSimd_m1_m2_m3, setZero())); - // degenerate value (origin) should return 0.0 - GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(std::atan2(0.0, 0.0)), atan2(setSimdRealFrom3R(0.0, 0.0, 0.0), setZero())); + // degenerate value (origin) should return 0.0. At least IBM xlc 13.1.5 gets the reference + // value wrong (-nan) at -O3 optimization, so we compare to the correct value (0.0) instead. + GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(0.0), atan2(setSimdRealFrom3R(0.0, 0.0, 0.0), setZero())); } /*! \brief Evaluate reference version of PME force correction. */ @@ -691,8 +692,9 @@ GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(std::atan2(1.0, 0.0)), atan2SingleAccuracy(rSimd_1_2_3, setZero())); GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(std::atan2(0.0, -1.0)), atan2SingleAccuracy(setZero(), rSimd_m1_m2_m3)); GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(std::atan2(-1.0, 0.0)), atan2SingleAccuracy(rSimd_m1_m2_m3, setZero())); - // degenerate value (origin) should return 0.0 - GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(std::atan2(0.0, 0.0)), atan2SingleAccuracy(setSimdRealFrom3R(0.0, 0.0, 0.0), setZero())); + // degenerate value (origin) should return 0.0. At least IBM xlc 13.1.5 gets the reference + // value wrong (-nan) at -O3 optimization, so we compare to the correct value (0.0) instead. + GMX_EXPECT_SIMD_REAL_NEAR(setSimdRealFrom1R(0.0), atan2SingleAccuracy(setSimdRealFrom3R(0.0, 0.0, 0.0), setZero())); } TEST_F(SimdMathTest, pmeForceCorrectionSingleAccuracy) diff -Nru gromacs-2016.2/src/gromacs/utility/binaryinformation.cpp gromacs-2016.3/src/gromacs/utility/binaryinformation.cpp --- gromacs-2016.2/src/gromacs/utility/binaryinformation.cpp 2016-07-09 00:55:39.000000000 +0000 +++ gromacs-2016.3/src/gromacs/utility/binaryinformation.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -3,7 +3,7 @@ * * 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. @@ -135,7 +135,7 @@ }; static const char * const CopyrightText[] = { "Copyright (c) 1991-2000, University of Groningen, The Netherlands.", - "Copyright (c) 2001-2015, The GROMACS development team at", + "Copyright (c) 2001-2017, The GROMACS development team at", "Uppsala University, Stockholm University and", "the Royal Institute of Technology, Sweden.", "check out http://www.gromacs.org for more information." diff -Nru gromacs-2016.2/src/programs/mdrun/md.cpp gromacs-2016.3/src/programs/mdrun/md.cpp --- gromacs-2016.2/src/programs/mdrun/md.cpp 2017-02-05 20:30:25.000000000 +0000 +++ gromacs-2016.3/src/programs/mdrun/md.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -1193,8 +1193,15 @@ m_add(force_vir, shake_vir, total_vir); /* we need the un-dispersion corrected total vir here */ trotter_update(ir, step, ekind, enerd, state, total_vir, mdatoms, &MassQ, trotter_seq, ettTSEQ2); - copy_mat(shake_vir, state->svir_prev); - copy_mat(force_vir, state->fvir_prev); + /* TODO This is only needed when we're about to write + * a checkpoint, because we use it after the restart + * (in a kludge?). But what should we be doing if + * startingFromCheckpoint or bInitStep are true? */ + if (inputrecNptTrotter(ir) || inputrecNphTrotter(ir)) + { + copy_mat(shake_vir, state->svir_prev); + copy_mat(force_vir, state->fvir_prev); + } if (inputrecNvtTrotter(ir) && ir->eI == eiVV) { /* update temperature and kinetic energy now that step is over - this is the v(t+dt) point */ @@ -1272,7 +1279,7 @@ bIMDstep = do_IMD(ir->bIMD, step, cr, bNS, state->box, state->x, ir, t, wcycle); /* kludge -- virial is lost with restart for MTTK NPT control. Must reload (saved earlier). */ - if (startingFromCheckpoint && bTrotter) + if (startingFromCheckpoint && (inputrecNptTrotter(ir) || inputrecNphTrotter(ir))) { copy_mat(state->svir_prev, shake_vir); copy_mat(state->fvir_prev, force_vir); diff -Nru gromacs-2016.2/src/testutils/CMakeLists.txt gromacs-2016.3/src/testutils/CMakeLists.txt --- gromacs-2016.2/src/testutils/CMakeLists.txt 2016-12-06 18:53:27.000000000 +0000 +++ gromacs-2016.3/src/testutils/CMakeLists.txt 2017-03-13 17:22:33.000000000 +0000 @@ -1,7 +1,7 @@ # # This file is part of the GROMACS molecular simulation package. # -# Copyright (c) 2011,2012,2013,2014,2015,2016, by the GROMACS development team, led by +# Copyright (c) 2011,2012,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. @@ -35,6 +35,7 @@ include_directories(BEFORE SYSTEM ${GMOCK_INCLUDE_DIRS}) set(TESTUTILS_SOURCES cmdlinetest.cpp + conftest.cpp integrationtests.cpp interactivetest.cpp mpi-printer.cpp diff -Nru gromacs-2016.2/src/testutils/conftest.cpp gromacs-2016.3/src/testutils/conftest.cpp --- gromacs-2016.2/src/testutils/conftest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ gromacs-2016.3/src/testutils/conftest.cpp 2017-03-13 17:22:33.000000000 +0000 @@ -0,0 +1,106 @@ +/* + * 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 + * Implements routine to check the content of conf files. + * + * \author David van der Spoel + * \ingroup module_testutils + */ +#include "gmxpre.h" + +#include "conftest.h" + +#include +#include + +#include "gromacs/utility/gmxassert.h" +#include "gromacs/utility/stringutil.h" +#include "gromacs/utility/textstream.h" + +#include "testutils/refdata.h" +#include "testutils/testasserts.h" +#include "testutils/textblockmatchers.h" + +namespace gmx +{ + +namespace test +{ + +namespace +{ + +class ConfMatcher : public ITextBlockMatcher +{ + public: + explicit ConfMatcher(const ConfMatchSettings &settings) : settings_(settings) + { + } + + virtual void checkStream(TextInputStream *stream, + TestReferenceChecker *checker) + { + checkConfFile(stream, checker, settings_); + } + private: + ConfMatchSettings settings_; +}; + +} // namespace + +void checkConfFile(TextInputStream *input, + TestReferenceChecker *checker, + const ConfMatchSettings &) +{ + + TestReferenceChecker groChecker(checker->checkCompound("GroFile", "Header")); + // Just check the first two lines of the output file + std::string line; + EXPECT_TRUE(input->readLine(&line)); + line = stripSuffixIfPresent(line, "\n"); + groChecker.checkString(line, "Title"); + EXPECT_TRUE(input->readLine(&line)); + line = stripSuffixIfPresent(line, "\n"); + groChecker.checkInteger(std::atoi(line.c_str()), "Number of atoms"); +} + +TextBlockMatcherPointer ConfMatch::createMatcher() const +{ + return TextBlockMatcherPointer(new ConfMatcher(settings_)); +} + +} // namespace test +} // namespace gmx diff -Nru gromacs-2016.2/src/testutils/conftest.h gromacs-2016.3/src/testutils/conftest.h --- gromacs-2016.2/src/testutils/conftest.h 1970-01-01 00:00:00.000000000 +0000 +++ gromacs-2016.3/src/testutils/conftest.h 2017-03-13 17:22:33.000000000 +0000 @@ -0,0 +1,114 @@ +/* + * 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. + */ +/*! \libinternal \file + * \brief + * Declares function to add the content of a conf file to a checker. + * + * \author David van der Spoel + * \inlibraryapi + * \ingroup module_testutils + */ +#ifndef GMX_TESTUTILS_CONFTEST_H +#define GMX_TESTUTILS_CONFTEST_H + +#include + +#include "testutils/testasserts.h" +#include "testutils/textblockmatchers.h" + +namespace gmx +{ + +class TextInputStream; + +namespace test +{ + +class TestReferenceChecker; + +struct ConfMatchSettings +{ + ConfMatchSettings() : tolerance(defaultRealTolerance()) + { + } + + FloatingPointTolerance tolerance; +}; + +/*! \brief + * Adds content of a gro file to TestReferenceChecker object. + * + * \param[in] input Stream that provides the gro content. + * \param[in,out] checker Checker to use. + * \param[in] settings Settings to use for matching. + * + * Parses a gro file from the input stream, and checks the contents against + * reference data (only first two lines for now). + * + * \see ConfMatch + */ +void checkConfFile(TextInputStream *input, + TestReferenceChecker *checker, + const ConfMatchSettings &settings); + +/*! \libinternal \brief + * Match the contents as an gro file. + * + * \see checkGroFile() + * + * \inlibraryapi + * \ingroup module_testutils + */ +class ConfMatch : public ITextBlockMatcherSettings +{ + public: + //! Sets the tolerance for matching floating point values. + ConfMatch &tolerance(const FloatingPointTolerance &tolerance) + { + settings_.tolerance = tolerance; + return *this; + } + + virtual TextBlockMatcherPointer createMatcher() const; + + private: + ConfMatchSettings settings_; +}; + +} // namespace test + +} // namespace gmx + +#endif