alexxy/gromacs.git
10 years agoallow compilation to optimize for CUDA compute cap. 3.5
Szilard Pall [Thu, 26 Sep 2013 10:45:55 +0000 (12:45 +0200)]
allow compilation to optimize for CUDA compute cap. 3.5

Enabling optimizations targeting compute capability 3.5 devices
(GK110) slightly improves performance of both PME and RF kernels.
This requires a hint for the compiler optimization indicating
the maximum number of threads/block and minimum number of
blocks/multiprocessor. This change allows nvcc >=5.0 to generate
code for CC 3.5 devices and switches to including PTX 3.5 code
(instead of 3.0) in the binary.

Change-Id: If7e14d31165bc05859250db7468bf6bd8c186264

10 years agoCorrected info text. -center --> -boxcenter
Jarvist Moore Frost [Thu, 22 Aug 2013 19:36:06 +0000 (20:36 +0100)]
Corrected info text. -center --> -boxcenter

Change-Id: I99901047fcde55f9714c81d3182a3778f290ebac

10 years agoFixed limitations in g_cluster
Manuel Luitz [Tue, 27 Aug 2013 16:08:29 +0000 (18:08 +0200)]
Fixed limitations in g_cluster

Old version produced wrong output for large trajectories with more
than 46340 frames. The reason was that the number of RMSD matrix
entries which is the square number of frames was stored as int which
caused a MAX_INT overflow. By changing it to gmx_large_int_t, g_cluster
is now able to handle trajectories with up to 3e9 frames.

Also freed leaking temporary buffers.

Change-Id: I8acfb0cedae9ddde207f39cb627ad2ea9fbbb9e6

10 years agologic fix for free energies with mdrun -rerun
Michael Shirts [Mon, 2 Sep 2013 01:24:22 +0000 (21:24 -0400)]
logic fix for free energies with mdrun -rerun

It was taking the wrong logical path when it checks whether
delta_lambda = 0 when doing mdrun -rerun

fixes #1330

Change-Id: I3dadbb546b4376fae72c1b00c0684450bf77396f

10 years agoDrop md5sum check for GMX_BUILD_OWN_FFTW
Christoph Junghans [Wed, 31 Jul 2013 19:52:40 +0000 (13:52 -0600)]
Drop md5sum check for GMX_BUILD_OWN_FFTW

The old version gave a confusing error message about a wrong md5sum if
the download failed.

The new version no longer checks an md5sum at all, which avoids the
need to test a CMake version. It also gives an explicit warning and
instructions on how to proceed safely.

CMake bug reported at http://www.cmake.org/Bug/view.php?id=14330
Noted TODO to revisit if that bug gets fixed.

Noted TODO in master branch to show this warning only the first time a
suitable cached variable is set.

Change-Id: I403896505b178251087d71f95362c3754cd4a2de

10 years agoFix bug in (long) neighborlist SIMD padding when adding to previous list
Erik Lindahl [Tue, 24 Sep 2013 22:28:29 +0000 (00:28 +0200)]
Fix bug in (long) neighborlist SIMD padding when adding to previous list

Gromacs-4.6 introduced SIMD padding in the neighborlists, which works
fine for normal simulations. However, when the neighborlist gets long
and we end up adding a second batch of particles we need to remove the
previous padding, which was not done until now. This will typically only
occur when the list per node is large, e.g. when using long cutoffs
(>2nm) with only a single core. Normal simulations should not have been
affected by it (which is also why we did not find it until now).

Fixes #1341.

Change-Id: Ie64ab6c0313a8dc0d3545a5e7d610f24adae4438

10 years agooptimized generic SIMD invsqrt
Berk Hess [Wed, 18 Sep 2013 15:39:00 +0000 (17:39 +0200)]
optimized generic SIMD invsqrt

The function gmx_invsqrt_pr now uses one instruction less when
FMA is not supported in hardware.
Fixes #1333

Change-Id: Idace7296b88a8ecc0331e22d5bb3088753c478de

10 years agofixed multiple distance restraints with OpenMP
Berk Hess [Wed, 7 Aug 2013 15:33:25 +0000 (17:33 +0200)]
fixed multiple distance restraints with OpenMP

Distance restraints with multiple pairs (the same label) are no
longer split over multiple OpenMP threads. Some (beneficial)
reorganization of the bonded thread division was required to do this,
most importantly: removed calc_one_bond_foreign.
Fixes #1316

Change-Id: I88d8eafede5cbc26c19026a9272639e652f7abd7

10 years agoDescribed another way g_tune_pme might reasonably fail
Mark Abraham [Sun, 25 Aug 2013 22:28:10 +0000 (00:28 +0200)]
Described another way g_tune_pme might reasonably fail

Change-Id: Ibb75f40a17b81934ae768a57d5e4fb11d07cdc2d

10 years agoFix total time measurement with separate PME nodes
Mark Abraham [Sun, 25 Aug 2013 16:06:16 +0000 (18:06 +0200)]
Fix total time measurement with separate PME nodes

The runtime counter needs to be passed to the PME code so that
PME-only nodes can have their time included in the statistics.

Fixes #1325

Change-Id: I13effaa185b1290e41bdd642c607ff75ab8db929

10 years agoFixed reading history_t from checkpoint
Mark Abraham [Tue, 30 Apr 2013 15:57:14 +0000 (17:57 +0200)]
Fixed reading history_t from checkpoint

The use of the wrong reading function prevented reading any checkpoint
file with distance restraints, (and probably any with orientation
restraints, too) because the stored lengths of the arrays could not be
read.

Additionally, the way a t_state is allocated on the stack and most of
the GROMACS code base assumes structures have been allocated on the
heap (and set to zero) by snew() makes the problem worse. Noted that
this is evil and must go away some time.

Fixes #1174

Change-Id: Ic8240f80c17272a1499421233689ed4b2c640ba3

10 years agoFixed g_tune_pme assumption that MPI is available
Mark Abraham [Fri, 9 Aug 2013 15:36:02 +0000 (17:36 +0200)]
Fixed g_tune_pme assumption that MPI is available

Refactored function with two distinct parts into two functions. This
makes it easy to call the part that checks that mdrun works only when
that check is necessary. Now g_tune_pme -np 512 -nobench works on
machines like BlueGene/Q where you might only be able to get the MPI
environment via the queuing system. g_tune_pme -nobench should work as
a stand-alone.

Fixes #1319

Change-Id: I7237800a1c67664c9253e5422a7b3f12f4ebd62f

10 years agomade free energy PME kernel 40% faster
Berk Hess [Thu, 29 Aug 2013 12:41:39 +0000 (14:41 +0200)]
made free energy PME kernel 40% faster

Also removed double assignments and unused variables.

Change-Id: Ia8202ee90f70da86474cc946707f016d8ad69286

10 years agoFixing manual for sc-coul description.
Michael Shirts [Fri, 6 Sep 2013 14:45:34 +0000 (10:45 -0400)]
Fixing manual for sc-coul description.

fixes #1331

Change-Id: I84a388bf8a9e289b37ff838a0d335d96d4393fb2

10 years agomdrun without OpenMP with thread-MPI now uses all cores
Berk Hess [Mon, 12 Aug 2013 11:13:47 +0000 (13:13 +0200)]
mdrun without OpenMP with thread-MPI now uses all cores

With the Verlet scheme, mdrun compiled without OpenMP would
often run on a single MPI-thread only.
Fixes #1317

Change-Id: I8fc43fe933ba23047f0ee9368ad9105cfc62eb4a

10 years agocorrected grompp constraint/DOF warning with vsites
Berk Hess [Tue, 20 Aug 2013 13:53:12 +0000 (15:53 +0200)]
corrected grompp constraint/DOF warning with vsites

grompp now counts constraints after removing the ones with vsites.
Fixes #1322

Change-Id: I1f2b129fa5f4c5f56fea384f2749af833c92eabc

10 years agoSet upper case of FFTW variable at the right place.
Magnus Lundborg [Sun, 1 Sep 2013 11:38:42 +0000 (13:38 +0200)]
Set upper case of FFTW variable at the right place.

Fixes #1327

Change-Id: Ie9ef1fffceefef7d46f1e7a5a8ca3ceb22a81854

10 years agoSplit up Verlet SIMD kernels for faster compilation
Mark Abraham [Mon, 25 Feb 2013 20:00:44 +0000 (21:00 +0100)]
Split up Verlet SIMD kernels for faster compilation

Each kernel is now defined in a seperate compilation unit, and the
files for the kernel functions, the kernel dispatcher function, and
their definitions are all generated by Python script. See its comments
for details. The generation is done by developers and the results
stored in the repo, to avoid CMake-time dependencies. The source for
the file generation is separated from the results of the generation.

On a 48-core AMD machine using GCC 4.7 for an SSE2 build (i.e. 4xN
Verlet kernels), the time for "make mdrun -j" went from 73 s to 34 s.

On a more recent 8-core Intel machine using GCC 4.6.4 for AVX_256
build (both 2xNN and 4xN), the time for "make mdrun -j" went from
81 s to 63 s.

On 16 cores of a POWER7 BlueGene/Q front-end node, time to compile
release-4-6 stays about the same (around 160s).

Also unwound some include file dependencies and removed repeated
definitions of some supporting structures and functions.

Change-Id: I0da1faf351defbe68d5ca43febcabddd93e21f0d

10 years agoFix detection and suggestion in gmx_cpuid for IBM QPX
Mark Abraham [Tue, 30 Jul 2013 14:12:37 +0000 (16:12 +0200)]
Fix detection and suggestion in gmx_cpuid for IBM QPX

Also made some variable names more descriptive.

Change-Id: I0eaac7ff6ce5cb0da82d9c54d10c555850a3dad1

10 years agointroduced nbnxn data structure for bounding boxes
Berk Hess [Mon, 22 Jul 2013 12:54:49 +0000 (14:54 +0200)]
introduced nbnxn data structure for bounding boxes

The nbnxn search code now uses a well organized bounding box data
structure instead of a complicated indexed plain float array
for the cluster bounding boxes.

Change-Id: Ia5adf2d33d495cff3178ca950e8c16aefcfef1fb

10 years agoFixes for Bluegene/Q
Mark Abraham [Fri, 26 Jul 2013 08:36:35 +0000 (10:36 +0200)]
Fixes for Bluegene/Q

* Moved suffixing code to after where gmxManageBlueGene sets
  GMX_MPI. Since nothing depends on the suffixing until the calls to
  add_subdirectory(), this is safe. There is a complication from the
  way that GMX_MPI means "real MPI" for most of CMake and "real or
  thread MPI" in the source code; that is managed by GMX_THREAD_MPI=ON
  causing GMX_MPI=ON at a certain point. To cope with this, we add the
  "_mpi" suffix in response to GMX_LIB_MPI=on, which is how things
  should have been done back when GMX_MPI was co-opted, except that
  the suffixing was probably being done too early... Altogether, this
  change means that real-MPI binaries are always built with the _mpi
  suffix, like users have come to expect.
* Added compiler suppression for a useless information message that
  is otherwise issued for almost every source file
* Made the C and CXX platform files identical; I'd originally
  thought they could be combined on the command line, but
  that is not true

Change-Id: I26cb782a1b47cf48f47b80ec8c8d0a53db338872

10 years agoConsolidated NBNxN SIMD kernel utility routines
Mark Abraham [Thu, 27 Jun 2013 17:11:00 +0000 (19:11 +0200)]
Consolidated NBNxN SIMD kernel utility routines

Hardware-, precision-, and j-width-specific routines used only by the
NBNxN kernels are now all defined in
nbnxn_kernel_simd_utils*.h. Hardware-specific details are contained in
files specific to that hardware.

A major feature contained in this patch is a refactored treatment of
NBNxN particle-particle exclusions. This hides the
x86-implementation-specific details of using integer- or real-valued
SIMD registers and operations. Both inner and outer NBNXN loops are
now more independent of hardware.

* Moved SIMD types, constants and functions for exclusions to the
  NBNxN kernel module, because that is the only place where they are
  used.
* Introduced gmx_exclfilter type to hide the implementation detail of
  whether the masking is handled in integer- or real-valued SIMD
  registers
* Consolidated gmx_checkbitmask* likewise, and renamed to reflect that
  it returns a gmx_mm_pb
* Eliminated the need for gmx_castsi_pr, gmx_set1_epi32, gmx_load_si
  by recasting the code as the composite operation of
  gmx_load1?_exclfilter
* Through the above, eliminated the need for CHECKBITMASK preprocessor
  defines and checks
* Converted code macros to static inline functions
* Converted FILTER_STRIDE and NBFP_STRIDE to a static const instead of
  macro, since neither are ever used as an array dimension in C. This
  works towards using the compiler where possible and the preprocessor
  only where necessary.
* Introduced functions for exclusion mask loading so that there will
  be a link seam for testing with in master branch

TODO: Respond to two questions addressed to Berk embedded in new
comments.

Change-Id: I2a74638b982bdbf5a88442b93736df0a2f0c14b0

10 years agoFix minor wallcycle output issues
Mark Abraham [Mon, 19 Aug 2013 15:22:56 +0000 (17:22 +0200)]
Fix minor wallcycle output issues

Document 19-character wcn name restriction better.

Enforce 19-character wcn name restriction better. The new behaviour
correctly truncates a wcn[] that is too long for the 19-printing
character field width of the wallcycle table.

Compress two names into one field for GMX_CYCLE_ALL correctly. The
previous version was buggy because the first call to snprintf()
resulted in 0 == buf[8], which suppressed output of the second name
completely. The previous version's second call to snprintf() was
probably wrong similarly.

Change-Id: I430ca6eb2bccfe3775e58bae4b6fc3326bcde706

10 years agoFixed GMX_DD_DUMP_GRID
Mark Abraham [Thu, 15 Aug 2013 07:31:15 +0000 (09:31 +0200)]
Fixed GMX_DD_DUMP_GRID

The pdb format string no longer matched the parameters it was given

Change-Id: I682154a0986fdbd73ae414264982a68fed164c87

10 years agofixed parallel normal modes with PME
Berk Hess [Mon, 12 Aug 2013 09:08:13 +0000 (11:08 +0200)]
fixed parallel normal modes with PME

When doing a normal mode calculation with PME and (thread-)MPI,
the PME forces were incorrect. Also fixed some EM/NM output layout.
Fixes #1308

Change-Id: Ia7862fa62e235336c546824afdcbe28f37b145c5

10 years agoReordered FFTW fatal error; avoids using unset variables
Mark Abraham [Fri, 9 Aug 2013 14:44:11 +0000 (16:44 +0200)]
Reordered FFTW fatal error; avoids using unset variables

Now variables that are set in FFTW detection are only used when the
variable that reports FFTW has been found is set (i.e. there has not
been a fatal error). Not sure why we haven't seen problems with this
so far, but we do see them on Power7 with cmake 2.8.8 when FFTWF is
not available.

Change-Id: I1a3e84002dda7f29f90eb532ab14ce51dfca6e5c

10 years agoFixed reference SIMD code to work with MSVC
Mark Abraham [Tue, 30 Jul 2013 15:18:08 +0000 (17:18 +0200)]
Fixed reference SIMD code to work with MSVC

Also noted minor issue with rounding to even. Using rint would be
preferable, but that's even harder to work around on MSVC.

Change-Id: I495cf2d43cf0b33cc0896958f15703ba8632c7e4

10 years agoFixing problem caused by overflow in expanded ensemble.
Michael Shirts [Fri, 2 Aug 2013 02:39:28 +0000 (22:39 -0400)]
Fixing problem caused by overflow in expanded ensemble.

Basic problem: logic was failing for single precision because of round off errors.
Solution: convert some of the intermediate arrays into double.

Fixes redmine #1314

Change-Id: Id7e3771d257bbeebeed2f340593b817015a0cd4c

10 years agoRefactored preparation of buffer for NBNxN table loads
Mark Abraham [Tue, 30 Jul 2013 16:18:03 +0000 (18:18 +0200)]
Refactored preparation of buffer for NBNxN table loads

The outer and inner kernels try to be hardware-agnostic, but some
architectures need a thread-local buffer for transferring computed
table indices to integer registers via memory. It is better to set up
this buffer using a helper function that is implemented in
hardware-specific files, because the compiler can help prevent some
bugs. In particular, you can no longer forget to make a function
definition on non-SSE2. This eliminates one of the special-case kernel

Change-Id: I1ebdd15afaf03ff4559365867970b88e9ce0ed5e

10 years agoProperly finalize MPI on mdrun -version. Fixes #1313
Carsten Kutzner [Wed, 31 Jul 2013 16:34:51 +0000 (18:34 +0200)]
Properly finalize MPI on mdrun -version. Fixes #1313

Change-Id: I1ae5f342da96980df322770d134555e2dc9fe712

10 years agocmake: Improve some error messages
Christoph Junghans [Tue, 30 Jul 2013 16:45:03 +0000 (10:45 -0600)]
cmake: Improve some error messages

Lessons learned from the Q-bio summer school

Change-Id: I521a08ba3a83566582137740a0d097c0637d7d3e

10 years agoUpdated dlist.c to recognize more atom names.
Justin Lemkul [Thu, 25 Jul 2013 20:43:13 +0000 (16:43 -0400)]
Updated dlist.c to recognize more atom names.

Previously, g_chi basically only worked correctly for OPLS-AA and
Gromos96 force fields, based on C-terminal atom names.  This commit
adds atom names for AMBER and CHARMM force fields so that g_chi
calculates dihedral properties for all residues.

Change-Id: I48517fb55bd46e7d49941f7902f4f6531e443e62

10 years agoFind mkl.h on more icc versions
Mark Abraham [Mon, 1 Jul 2013 15:01:09 +0000 (17:01 +0200)]
Find mkl.h on more icc versions

Refs #1110

Change-Id: I0b6bc2497fc2a504b6c29b0697ee9e354fe6cffd

10 years agoUpdate management of linear algebra libraries
Mark Abraham [Mon, 11 Mar 2013 12:30:59 +0000 (13:30 +0100)]
Update management of linear algebra libraries

Management of detection and/or linking to BLAS and LAPACK libraries is
re-organized. The code has migrated to its own module. This will
help future extension and maintenance. This version communicates
things that are newsworthy and stays out of the way when nothing
is changing.

We no longer over-write the values specified by the user for
GMX_EXTERNAL_(BLAS|LAPACK). Previously, this was used to signal
whether detection succeeded, but that does not really get the job
done. Instead, the user is notified that detection failed (repeatedly,
if they deliberately set such an option on).

Correct usage and expected behaviour in all cases is documented both
in the code and the install guide.

The user interface is pretty much unchanged. We still don't offer full
configurability (e.g. MKL for FFTs must use MKL for linear algebra
unless GMX_*_USER is used, and the only way to get MKL for linear
algebra is to use it for FFTs). The size of any performance difference
is probably very small, and if the user really needs mdrun with
certain FFT and tools with certain linear algebra library, they can do
two configurations. Note that mdrun never calls any linear algebra
routines (tested empirically)!

Expanded the solution of #771 by testing that the user supplied
libraries that actually work. If not, we emit a warning and try to use
them anyway.

We also now check that MKL really does provide linear algebra
routines, and fall back to the default treatment if it does not.

Refs #771,#1186

Change-Id: Ife5c59694e29a3ce73fc55975e26f6c083317d9b

10 years agoFixes #1312 uninitialized error in g_enemat.
David van der Spoel [Wed, 24 Jul 2013 13:48:58 +0000 (09:48 -0400)]
Fixes #1312 uninitialized error in g_enemat.

Change-Id: Ia0ac6d095dd560f08576aad1b435c92b6de52b3b

10 years agoimplemented plain-C SIMD macros for reference
Berk Hess [Fri, 12 Apr 2013 17:11:09 +0000 (19:11 +0200)]
implemented plain-C SIMD macros for reference

This is mainly code reorganization.
Adds reference plain-C, slow, arbitrary width SIMD for testing.
Adds FMA for gmx_calc_rsq_pr.
Adds generic SIMD acceleration (also AVX or double) for pme solve.
Moved SIMD vector operations to gmx_simd_vec.h
The math functions invsqrt, inv, pmecorrF and pmecorrV have been
copied from the x86 specific single/double files to generic files
using the SIMD macros from gmx_simd_macros.h.
Moved all architecture specific nbnxn_kernel_simd_utils code to
separate files for each SIMD architecture and replaced all macros
by inline functions.
The SIMD reference nbnxn 2xnn kernels now support 16-wide SIMD.
Adds FMA for in nbnxn kernels for calc_rsq and Coulomb forces.

Refs #1173

Change-Id: Ieda78cc3bcb499e8c17ef8ef539c49cbc2d6d74d

10 years agoRemoved buggy -seppot output
Mark Abraham [Tue, 2 Jul 2013 12:00:15 +0000 (14:00 +0200)]
Removed buggy -seppot output

ns() no longer computes forces, so the comment needs correcting.

dvdlambda was changed to an array at some point, but the output code
did not change in sync. So, that output has been broken in at least
4.6, and is always zero anyway. So the output code can go away.

A patch in master branch removes the useless parameters in the
neighbour-search code. When merging this patch into master branch,
eliminate the useless dvdlambda variable.

Fixes #1294

Change-Id: Iba48f549ee07f0ee1877035a9e506780439c8002

10 years agoFixed pdb2gmx -vsite hydrogen -o conf.pdb
Mark Abraham [Tue, 2 Jul 2013 16:33:39 +0000 (18:33 +0200)]
Fixed pdb2gmx -vsite hydrogen -o conf.pdb

Generation of v-sites did not initialise the elem field of the t_atom
structs. Later when writing the output to PDB format, that elem is
used for the final column. Somehow, the memory in elem was
uninitialized at that point, despite the use of srenew. Oh for proper
constructors and copies!

I observed the problem with v-sites generated from a POPC lipid, but
presumably the underlying cause is common to all kinds of v-sites, so
I have filled the elem field for two other kinds of v-site
generation. I have no idea why not all of the aromatic v-site
generation schemes involve filling a new t_atom struct.

Change-Id: I69efee07d8fd51192808a85d5704d488a0d310be

10 years agoFixed possible dereference of null pointer
Mark Abraham [Thu, 11 Jul 2013 23:32:16 +0000 (00:32 +0100)]
Fixed possible dereference of null pointer

getpwuid() can return null. For example, Shun Sakuruba reported that
on Cray XE6 compute nodes have passwd.h, but users will not have
passwd entries.

Fixes #1301

Change-Id: I66e8064438fc02591629b0d381bc00afd06795c0

10 years agoFixed typos in #include guard #defines
Mark Abraham [Tue, 9 Jul 2013 10:15:25 +0000 (12:15 +0200)]
Fixed typos in #include guard #defines

Change-Id: Ifb366f7b10de3a23952ef427bd0e2cb7e282ccea

10 years agoFixed minor admin issues
Mark Abraham [Fri, 5 Jul 2013 16:41:09 +0000 (18:41 +0200)]
Fixed minor admin issues

- The installguide.xhtml file is intermediate output, and
  should not be versioned
- There is no need for HTML files to have date stamps to maintain
- Bumped some version numbers

Change-Id: I2783501f697ee1eae557fdbf365a7aaf5d640500

10 years agomore pkg-config fixes
Christoph Junghans [Sat, 6 Jul 2013 00:48:29 +0000 (18:48 -0600)]
more pkg-config fixes

* fixed a typo from I57897609b9bbc558db01c237d3e24d78aa25a5ca
* fixed name of libmd in libmd.pc

Change-Id: I6be35d8f1c0d53d4e4298967f0dc63de2205a663

10 years agoBump version after 4.6.3 release
Mark Abraham [Mon, 1 Jul 2013 18:25:08 +0000 (20:25 +0200)]
Bump version after 4.6.3 release

Change-Id: I1d99c36e090b25ae70d7476715e97b972ae2778c

10 years agoFixed some inconsistencies in pkg-config files
Christoph Junghans [Thu, 4 Jul 2013 19:20:23 +0000 (13:20 -0600)]
Fixed some inconsistencies in pkg-config files

Change-Id: I57897609b9bbc558db01c237d3e24d78aa25a5ca

10 years agoCorrected definition of EEL_USER
Mark Abraham [Tue, 25 Jun 2013 13:59:00 +0000 (15:59 +0200)]
Corrected definition of EEL_USER

Looks like a copy-paste typo occured at some point in the nbnxn
development. EEL_USER is only used in runner.c, and only to issue a
fatal error with user-supplied non-bonded potentials. That clearly
should be not applicable to eelPMESWITCH.

Fixes #1289

Change-Id: I4e987c81aec81a920779dd29d7c52e8b6d233b45

10 years agoComprehensive hwinfo structure concurrency fix.
Sander Pronk [Tue, 4 Jun 2013 20:31:08 +0000 (22:31 +0200)]
Comprehensive hwinfo structure concurrency fix.

The hwinfo structure and structures contained therein are inherently
global to any mdrun processes/ranks. This patch makes sure that
- The hwinfo structure is shared among all threads
- Only one thread creates a hwinfo structure
- The hwinfo structure is safe to read for all threads after they
    obtain it

In addition, it fixes the detection for pthread_setaffinity in thread_mpi.

This fixes concurrency issues with thread affinity settings with or
without MPI, and makes runner.c slightly easier to read because the
concurrency logic is pushed to gmx_detect_hardware.c

Fixes #1270, #1254

Note that #1254 issue 3 seems to be an OpenMPI bug.

Change-Id: I236e81923324d7873f3d8633889b91c7c02a7843

10 years agoMinor tweaks to qm_orca.c
Justin Lemkul [Wed, 19 Jun 2013 13:07:58 +0000 (09:07 -0400)]
Minor tweaks to qm_orca.c

Formatting fixes for readability and better screen output.  Also replaced
gmx_call() by gmx_fatal() for more sensible error reporting.

Change-Id: I7669fe2b1c83c6bf8fb5d24760d8acdb0919c46c

10 years agoFixes to config.h.cmakein to set GMX_QMMM_ORCA.
Justin Lemkul [Wed, 19 Jun 2013 11:47:30 +0000 (07:47 -0400)]
Fixes to config.h.cmakein to set GMX_QMMM_ORCA.

Installing using ORCA for QM calculations would proceed without
any issue, but the mdrun executable was nonfunctional because
GMX_QMMM_ORCA was never #defined, so the code was not correctly
compiled.

Fixes #1286

Change-Id: I230ded2d3cdbd9c5fc3e865d0b20049effb16766

10 years agoFixed -npstring command line argument in g_tune_pme
Carsten Kutzner [Fri, 14 Jun 2013 12:06:28 +0000 (14:06 +0200)]
Fixed -npstring command line argument in g_tune_pme

-npstring <str> is used to let g_tune_pme know how it should specify
the number of MPI processes to the mpirun command (with -np (default) or -n ).
You could provide it, but it actually -np was used in any case.

Change-Id: Ibb807b492dfb05c67628c18b7073092aa983f770

10 years agoFixed #include of header for atomics on K-computer
Mark Abraham [Sun, 23 Jun 2013 19:43:02 +0000 (21:43 +0200)]
Fixed #include of header for atomics on K-computer

Reported by Shun Sakuraba

Fixes #1274

Change-Id: Ia6369ba56b6978f79e9fbde3268f8a44ef44b6d8

10 years agoFix declaration that XLC rejected
Jeff Hammond [Sun, 16 Jun 2013 20:50:00 +0000 (20:50 +0000)]
Fix declaration that XLC rejected

Changed volatile void* volatile* declarator to volatile void* volatile.

Fixes #1284

Change-Id: I133f480b060ab4723988bd3059e5bd20ebc9df7a

10 years agoadded CUDA compiler flags to version header
Szilard Pall [Mon, 17 Jun 2013 22:48:30 +0000 (00:48 +0200)]
added CUDA compiler flags to version header

The nvcc compiler information, compared to CPU compiler info, was
lacking both the full path to the compiler binary as well as the full
list of flags used (including the host-compiler flags if these are
passed).

Change-Id: Ic80a512bc6d5a39b6594c360d2952e48b5d43ee0

10 years agofixed SD and BD integrator OpenMP performance
Berk Hess [Wed, 5 Jun 2013 22:09:37 +0000 (00:09 +0200)]
fixed SD and BD integrator OpenMP performance

SD and BD integrator always integrated single threaded.
Really fixes #1121

Change-Id: I2217c40e9c188c7cd57801e413750035c6488f56

10 years agoFixing a problem when dhdl and replex are not multiples
Michael Shirts [Wed, 19 Jun 2013 02:31:32 +0000 (22:31 -0400)]
Fixing a problem when dhdl and replex are not multiples

Problems is fixed by guaranteeing the free energy information
is now updated at a frequency that is the greatest common
denominator of the relevant internal variables.

An existing gcd function was taken from gmx_genion and put
in the include/maths.h file.

Change-Id: I7473185ab02c7c9a7557fbaa165bb20b63bafb7a

10 years agoflops table now reports CUDA analytical Ewald
Berk Hess [Thu, 23 May 2013 13:21:21 +0000 (15:21 +0200)]
flops table now reports CUDA analytical Ewald

Change-Id: I72dfdc3b3f1ecb651897922c2e7ffec784c3bf60

10 years agoDefine both C and C++ compilers in BGQ toolchains; use -O3
Jeff Hammond [Sun, 16 Jun 2013 19:59:47 +0000 (19:59 +0000)]
Define both C and C++ compilers in BGQ toolchains; use -O3

When using either the C or C++ toolchain, the complimentary compiler is
not properly identified, rather /usr/bin/g{cc,++} is, which may cause
configuration problems.  this patch fixes this issue.

ALCF strongly recommends the use of -O3 unless there is clear evidence
that higher optimization has a (positive) effect on the quality of the
code generation from XL.  we find that XL frequently generates no faster
and even slower code with -O4 and -O5 unless the code is specifically
designed to be optimized for BGQ.

Fixes #1283

Change-Id: If32a507c6394e23106555741bdefbc0d554c3765

10 years agoUse more obvious name of BGQ compiler MPI wrappers
Jeff Hammond [Sun, 16 Jun 2013 19:10:26 +0000 (19:10 +0000)]
Use more obvious name of BGQ compiler MPI wrappers

While it is true that mpicc points to the XL compilers when it is the
one found in xl.ndebug/bin, this is not generally true and thus the use
of mpicc as a wrapper for XL violates the principle of least surprise.
the mpixl* wrappers are unambiguous and equally valid.

Fixes #1282

Change-Id: I460e829e55a221d8be35a70932864555feb21a95

10 years agofix CMake bug related to TestQPX.c location
Jeff Hammond [Sun, 16 Jun 2013 19:08:40 +0000 (19:08 +0000)]
fix CMake bug related to TestQPX.c location

cmake/TestQPX.c was not found because it lacked the
appropriate relative path.

Fixes #1281

Change-Id: I5fcc8598c91e39a86c337f14497b6d5faff91116

10 years agofixed a typo (unclosed bracket) that cause CMake to fail
Jeff Hammond [Sun, 16 Jun 2013 18:59:21 +0000 (18:59 +0000)]
fixed a typo (unclosed bracket) that cause CMake to fail

Fixes #1280

Change-Id: I987c860052923602b0ce7e6837a6905ad81a9f22

10 years agofixed minor g_bar output issues
Berk Hess [Tue, 11 Jun 2013 10:56:05 +0000 (12:56 +0200)]
fixed minor g_bar output issues

Replaced one s_A by s_B in the help text.
Replaced %g by %f in all gmx_fatal calls.

Change-Id: I306703eace9c6b3251981d0b9f3a05bdc9c617ff

10 years agoRemove unused variables
Mark Abraham [Wed, 29 May 2013 12:24:05 +0000 (14:24 +0200)]
Remove unused variables

Change-Id: I8c6ce4e83474d720bb8565453c13247132289e22

10 years agoFixes syntax for FAHCORE in CMakeLists.txt.
Peter Kasson [Thu, 6 Jun 2013 15:39:45 +0000 (08:39 -0700)]
Fixes syntax for FAHCORE in CMakeLists.txt.

GMX_FAHCORE triggered a set_property() call that was missing
a PROPERTY identifier and thus triggered a cmake error message.
Syntax at
http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:set_property

Change-Id: I95108ba3332e6ce5c15a4dc4bfa165c3a8e3ac8f

10 years agoAdd a GMX_NO_CREDITS variable to not show credits
Pedro Lacerda [Fri, 31 May 2013 06:11:08 +0000 (03:11 -0300)]
Add a GMX_NO_CREDITS variable to not show credits

It's annoying to get output loaded of credits messages, especially when
running scripts. This commit add GMX_NO_CREDITS environment variable,
when set no copyright is shown.

Related to #1267.

Change-Id: Ia8482a73bde733b08cb37680ecceb713560872f5

10 years agoVarious fixes for genion
Pedro Lacerda [Fri, 31 May 2013 02:02:15 +0000 (23:02 -0300)]
Various fixes for genion

Remove genion non-random insertion of ions, by side effect it stops
writting useless log file. This commit also warns user about -conc
option overriding -nn or -np.

Fixes #1236, #615, and #1208

Change-Id: Icb7e411cda10abb3a7fea4137534f253b0777def

10 years agofixed DD internal state corruption with energy minimization
Berk Hess [Mon, 3 Jun 2013 18:56:19 +0000 (20:56 +0200)]
fixed DD internal state corruption with energy minimization

With energy minimization we need to reload old DD states after
steps are rejected. There were two bookkeeping issues in the reload.
This could lead to all kinds of, but no silent, errors.
Fixes #1272

Change-Id: Ia44c3bad27f3efdee76fa93dd281690e44dde700

10 years agoFixed inconsistent locality_order array for thread affinity.
Sander Pronk [Wed, 29 May 2013 12:17:06 +0000 (14:17 +0200)]
Fixed inconsistent locality_order array for thread affinity.

The locality_order array from gmx_cpuid (determining which threads
map onto which processors) is inconsistent if run with valgrind. This
patch checks the consistency and creates a fallback linear ordering if
that happens.

Change-Id: I59c0cef487134f9cb4115faf364dcfdad7f0d0e6

10 years agoFixed deadlock on Mac OS X during thread affinity check.
Sander Pronk [Mon, 3 Jun 2013 11:15:04 +0000 (13:15 +0200)]
Fixed deadlock on Mac OS X during thread affinity check.

During thread affinity setting, an erroneous #ifndef APPLE caused the Mac OS X
binary to enter the code path that assumes thread affinity support to exist,
leading to a deadlock later on. This is fixed, by making the printing of a
warning platform-specific, but not the rest of the code path, as presumably
originally intended.

Change-Id: I95bd808552869ece45efd1b818c1b5e1be03ed94

10 years agoSplit cmake thread detection into core thread and thread_mpi.
Teemu Murtola [Sun, 26 May 2013 09:45:47 +0000 (12:45 +0300)]
Split cmake thread detection into core thread and thread_mpi.

This makes it possible to use core threading facilities
(mutex/cond-var/affinity, etc) on builds that don't use thread_mpi.

Change-Id: I0f0f43e86da642c4645fd7ac3c4796098cf9cd5e

10 years agofixed deadlock with replica exchange and -maxh
Berk Hess [Mon, 3 Jun 2013 19:42:21 +0000 (21:42 +0200)]
fixed deadlock with replica exchange and -maxh

Fixes #1273

Change-Id: Ib93cce59adf60afe0971944ef41df3a7d9883edc

11 years agoNew patch release 4.6.2
Mark Abraham [Thu, 30 May 2013 14:00:03 +0000 (16:00 +0200)]
New patch release 4.6.2

Added details of Pronk, et al 2013 paper to README

Bumped version to 4.6.3-dev. The v4.6.2 tag points to the actual
version that built the tarball, which was patch set 1.

Change-Id: I9b17cd80f34e2d175dbed0d87677a0611254b7c7

11 years agofix unnecessary switch to polling GPU wait
Szilárd Páll [Thu, 7 Mar 2013 02:50:47 +0000 (03:50 +0100)]
fix unnecessary switch to polling GPU wait

Commit 84597ae introduced an incorrect condition for testing
whether mdrun should and can switch to polling GPU wait.
This minor bug results in swithching to polling wait even when this
is unnecessary (i.e. when the driver in use is >=v5.0), This is
rather harmless, but the polling wait is fragile, so we should use
it only when really necessary.

This commit fixes the switching as well as reorganizes the conditionals
to make it more clear that switching is needed when ECC is on and the
NVIDIA GPU driver is older than v5.0.

Change-Id: I9106cb34c9a8fde2f9b54045d9b03ee5f5d50d8b

11 years agofix thread-safety issue in affinity layout detection
Szilard Pall [Mon, 27 May 2013 17:23:00 +0000 (19:23 +0200)]
fix thread-safety issue in affinity layout detection

The pinning stride variable is shared by thread_mpi ranks and its
value is changed only when its initial value is 0. This posed a
thread-safety issue and in some cases the selected pinning stride was
only reported in the log if rank 0 happened to arrive first to the
affinity layout detection.

Refs #1254

Change-Id: Id32af8cbeacea2205fd15c30b46320ec7dd35e5e

11 years agoadd workaround for clang on AMD with FMA
Szilard Pall [Mon, 29 Apr 2013 16:56:48 +0000 (18:56 +0200)]
add workaround for clang on AMD with FMA

The clang bug which causes incorrect code to be generated on AMD
with FMA (Piledriver and Bulldozer) is in fact caused by an assembler
bug and can be worked around by switching to an external assembler.
This commit implements such the workaround for clang 3.1 and 3.2.
The bug was fix in clang version 3.2-svn-r173176:
http://llvm.org/bugs/show_bug.cgi?id=15040
Hence, no workaround is needed for clang 3.3 with AVX_128_FMA
acceleration.

This workaround is ineffective on Mac OS because there is no suitable
external assembler, but distinguishing between vanilla and Apple clang
requires more code than what's worth adding to cover the case of
AMD-based Hackintoshes (all Mac-s are Intel-based).

It is appropriate to amend only C and not C++ compilation for
release-4-6 branch, but when merging this to master branch, reconsider
the detail of the implementation.

Refs #1099

Change-Id: I835e0f2436ee33507514d3bc3980fcc227e2e36f

11 years agoAdded GROMOS96 54A7 force field files.
Justin Lemkul [Wed, 22 May 2013 12:24:55 +0000 (08:24 -0400)]
Added GROMOS96 54A7 force field files.

Files are taken from ATB, which is hosted by Alan Mark, who
was an author on the GROMACS96 54A7 paper, which is cited in
forcefields.doc. So these files are effectively equivalent to
the reference implementation.

Fixes #773.

Change-Id: I800da3d3535a09cd5beb7f2b4d1b42422cc4329f

11 years agofix thread offset + stride check
Szilard Pall [Mon, 27 May 2013 17:07:30 +0000 (19:07 +0200)]
fix thread offset + stride check

This commit fixes the check which makes sure that the combination of
thread offset and stride does not cause pinning beyond the last hardware
thread.

Additionally, also improved pinning-related warnings and notes.

Change-Id: Ia33610cacb7526dca2ff69491aac2973c7333022

11 years agoFixing the constraint dhdl term in shake
Michael Shirts [Sun, 26 May 2013 14:22:09 +0000 (10:22 -0400)]
Fixing the constraint dhdl term in shake

Addresses and corrects new issues with #1255,
with additional comments explaining what else
may need to be done in the future to make sure
that the theory of the changes are completely
correctly founded.  See the redmine entry #1255
to see the numerical validation of the current choices.
Also adds possible missing constraint dHdl contribution.
Fixes #1268

Change-Id: Ibe3980c2e265cced49b03b966e02143c5cf9f07c

11 years agoFixes #1194 error reading 4.5.5 tpr files with dihres
David van der Spoel [Wed, 1 May 2013 13:08:29 +0000 (15:08 +0200)]
Fixes #1194 error reading 4.5.5 tpr files with dihres

Somehow the tpx_version produced by 4.5.5 was higher (73)
than expected, making the the tpx reading incorrectly
assuming this was using the new file format.
Now set to the version before the
first official 4.6 tpx format, 82 to match the tpr files
in the regression tests. Duh!

Change-Id: I40d8ffa0d350cf3b690f8dfb071fc191f027d02f

11 years agoWork around for correct treatment of all-vs-all
Mark Abraham [Fri, 24 May 2013 14:50:37 +0000 (16:50 +0200)]
Work around for correct treatment of all-vs-all

Neither C or accelerated all-vs-all kernels work in 4.6. The group
SIMD kernels do not work either. The non-accelerated kernel is OK,
though.

Fixes #1249 (for certain values of "fixes"), refs #1095

Change-Id: Id52c0ba110aa915e77859585c2cbfd4d529fe3ca

11 years agoFixed calculation of slab buffer size for flexible potentials.
Carsten Kutzner [Tue, 21 May 2013 14:31:46 +0000 (16:31 +0200)]
Fixed calculation of slab buffer size for flexible potentials.

The slab buffer size is difference in slabs between the reference and
the current positions of the rotation group. This was originally
calculated once in the init_rot_group() routine. However, it needs
to be calculated at every step since it changes when the rotation group
expands or contracts along the rotation vector.

Change-Id: I3b1fac41f88744e14e712454ae546c94f9b26750

11 years agoFix an error in selection online help.
Teemu Murtola [Fri, 24 May 2013 03:56:59 +0000 (06:56 +0300)]
Fix an error in selection online help.

Fixes #1262.

Change-Id: Ia9144690327b852dfab58e833cc2fdc20579b277

11 years agoFix for a rare condition in flexible rotation potentials.
Carsten Kutzner [Thu, 23 May 2013 16:23:41 +0000 (18:23 +0200)]
Fix for a rare condition in flexible rotation potentials.

Change-Id: Icc6c7fceaba3fa53f3f2d627c3c205469fc9d710

11 years agominor function argument cleanup
Szilard Pall [Mon, 27 May 2013 17:37:18 +0000 (19:37 +0200)]
minor function argument cleanup

Removed an unused function argument and changed anoehter one to not pass
the entire nonbonded verlet data structure to the nbnxn_cuda module, but
only what's needed from it.

Change-Id: I89699548f69245eba6d8451683ba6dc36af75dc2

11 years agoCode cleanup in enforced rotation module, remove warnings.
Carsten Kutzner [Wed, 22 May 2013 13:47:47 +0000 (15:47 +0200)]
Code cleanup in enforced rotation module, remove warnings.

Change-Id: Iceb458b06f2c003c6325c77c3258edb112e449f6

11 years agoFix of memory leak
Michael Shirts [Sun, 26 May 2013 15:52:52 +0000 (11:52 -0400)]
Fix of memory leak

Fixes #1265 (probably)

freeing data in expanded ensemble code that should have been freed all along.

Change-Id: I115ee068c56e4edab8fcea828e60ee1386f00716

11 years agoMake FFT detection quieter when nothing is changing
Mark Abraham [Sun, 14 Apr 2013 16:01:45 +0000 (18:01 +0200)]
Make FFT detection quieter when nothing is changing

Change-Id: I58ae8571de21eb81998a6dbce5883c1343552eeb

11 years agoFixed a potential race condition in tMPI_Thread_create()
Sander Pronk [Tue, 21 May 2013 13:33:18 +0000 (15:33 +0200)]
Fixed a potential race condition in tMPI_Thread_create()

The pthreads version of tMPI_Thread_create contained a potential race
condition where the tMPI_Thread_t structure may not be fully populated
as the child thread starts.

Refs #1254

Change-Id: I86e8faaa3d27b88269257be8d7df66ef728dbb0d

11 years agoClarify g_gyrate -h
Mark Abraham [Wed, 22 May 2013 10:06:38 +0000 (12:06 +0200)]
Clarify g_gyrate -h

The description could be better still, but since I don't know
exactly what g_gyrate does, I will leave it alone.

Partial fix for #934

Change-Id: If797ed87f07d119ef5d778e341735e2c1d48ff9e

11 years agoFix g_chi -omega
Mark Abraham [Mon, 29 Apr 2013 22:48:24 +0000 (00:48 +0200)]
Fix g_chi -omega

Per IUPAC, we should calculate peptide omega angles from
Calpha-C-N-Calpha, and there are only n-1 such angles defined for a
polypeptide of n amino acid residues.

There are some other IUPAC violations in make_chi_ind(), but solving
those is deferred to 5.0, not least because there will be a
behavioural change when we conform to IUPAC.

The problem that led to the report had several causes. The hard-coding
of the string names for hydrogen bound to peptide nitrogen (which in
CHARMM27 is "HN") meant that an H atom was not found. has_dihedral()
then checked whether a Calpha was found, which was true. Then
make_chi_ind() computed the angle based on H without doing any further
check. So some garbage coordinate was looked up when computing the
angle.

A proper fix for this kind of stuff for 5.0 requires finding all the
places we try to guess what atoms are from their names and using
properly implemented selections.

Also removed orphaned header file.

Fixes #953, details and links there

Change-Id: I63257a1d6d8ed46d251b8bc0cb308dfbd2864a97

11 years agoFix genion -nq and -pq when using -neutral
Pedro Lacerda [Mon, 20 May 2013 05:11:16 +0000 (02:11 -0300)]
Fix genion -nq and -pq when using -neutral

Currently genion can't neutralize (-neutral) systems when -nq/-pq
differs from -1/+1. This commit fixes the problem.

Change-Id: If2a82ace079555d8a684ea876daa947677d5e442

11 years agoUpdated grompp cut-off and PME-Switch checks
Mark Abraham [Thu, 25 Apr 2013 14:34:23 +0000 (16:34 +0200)]
Updated grompp cut-off and PME-Switch checks

Added a warning with PME-Switch when switching over more than 5%.
Charge-group size rlist notes/warnings now also appear when
potential modifiers are used.
Documented effect of potential-modifiers on the group scheme cut-off
treatment in mdp_opt.html.

Fixes #1179

Change-Id: Ide00caf5ae378104f99611bf197e896d1b53d7d7

11 years agoFix -neutral option in genion
P S Lacerda [Fri, 17 May 2013 06:14:41 +0000 (03:14 -0300)]
Fix -neutral option in genion

The help for -neutral says that it "will add enough ions to neutralize
the system", but this option can only be used in combination with -conc.
This commit makes -neutral independent.

Change-Id: I08b019b05cf3d8511757c4665c24dcaa37968ceb

11 years agoFixed problem with bond constraint dhdl being left out
Michael Shirts [Fri, 17 May 2013 18:44:00 +0000 (14:44 -0400)]
Fixed problem with bond constraint dhdl being left out

At some point, the dhdl from the holonomic bond constraints got left out,
because the term got zeroed before being added to the bonded energy.

Also, I made some of the variable names involved more descriptive to
clarify the logic.

Removed velocity constraint calls, as don't contribute to dhdl.

Fixes redmine #1255

Change-Id: I2eebf357d1a922b7636dc015b09f286827283dd0

11 years agoFujitsu Sparc64 acceleration and general fixes for non-x86 builds
Erik Lindahl [Sun, 6 Jan 2013 13:50:23 +0000 (14:50 +0100)]
Fujitsu Sparc64 acceleration and general fixes for non-x86 builds

Fixes configurations not to assume x86 and avoid warnings, in
particular if a non-x86 acceleration is used.
The cpu detection code has been extended to parse /proc/cpuinfo on
Linux in cases where the x86 CPUID instruction (or the inline
assembly to execute it) is not available.
Finally, there are new group kernels accelerated for use on the
K computer, which uses the Sparc64 HPC-ACE instruction set. These
kernels are roughly ~35% faster than the compiled C version, which
means Gromacs-4.6 is now ~70% faster on K than Gromacs-4.5.

Change-Id: I92559f0ac6159b504f100447a41a03e4b33fec19

11 years agoNew version of thread_mpi with many minor enhancements
Sander Pronk [Fri, 26 Apr 2013 11:59:19 +0000 (13:59 +0200)]
New version of thread_mpi with many minor enhancements

- Fixed issues with collective calls with 1 thread
- Fixed deadlocks with copy buffer turned on
- Turned off copy buffers by default for Gromacs
- Fixed error handling on low-level calls
- Low-level errors are now propagated correctly through MPI
- Simplified the atomics
- Compiles for platforms for which atomics are not supported.
- Added Fujitsu Sparc64 support

Change-Id: I3553906d6630cea8b1efe59fca293fe3c066c8d9

11 years agoHack compiler flags to silence warnings on gcc 4.8
Mark Abraham [Mon, 20 May 2013 22:13:38 +0000 (00:13 +0200)]
Hack compiler flags to silence warnings on gcc 4.8

GCC changed its default behaviour when reporting a number of different
kinds of warnings. We don't want to fix these in the bugfix branch
because even where it is possible it looks too invasive. We plan to
address these issues in a less heavy-handed manner in master branch.

Note when merging to master, do not include this patch.

Change-Id: I14f00357195424dd538aca4b319e5c2c120c691d

11 years agoIntroduce fatal error for GB with FE
Mark Abraham [Wed, 1 May 2013 15:06:56 +0000 (17:06 +0200)]
Introduce fatal error for GB with FE

Old code silently computed zeroes for Coulomb(SR) when using
Generalized Born and the free energy kernel, because of the
inappropriate use of a default branch of a switch statement.

Fixed the default branch for icoul and ivdw switch statements to issue
gmx_incons (similar to usage in the Verlet kernel code). Now we invoke
explicit code paths for all legal values of icoul and ivdw. Added
gmx_fatal for un-implemented GB case (similar to the gmx_fatal for
Buckingham with this free energy kernel).

Partial fix for #1237

Change-Id: I30684aed9fba9beac9b1b87eb99e2cbc7e7e374d

11 years agoFixed g_sgangle legends.
Justin Lemkul [Wed, 15 May 2013 14:28:58 +0000 (10:28 -0400)]
Fixed g_sgangle legends.

There were no legends previously, and questions are often asked
about the interpretation of the data.  This commit adds proper
s0 and s1 legends in XmGrace format.

Change-Id: I7bdcb57167eb3a0cef90a9b9dba9d04b86ba7cbd

11 years agoChoose the PBC image of each rotation group atom depending
Carsten Kutzner [Tue, 30 Apr 2013 15:32:04 +0000 (17:32 +0200)]
Choose the PBC image of each rotation group atom depending
on the current position of it reference atom. Therefore,
1) in choose_pbc_image() the correctly rotated reference position
has to be used (the addition of the pivot vector was missing)
2) in init_rot_group(), the reference positions have to be
correctly determined for restarts. In these cases, the initial
angle of the reference group is different from zero.

Change-Id: I57f886c507317385619e42bf387e407479b0c08d

11 years agoMerge "fixed incorrect scaling of cos-acceleration viscosity" into release-4-6
Christoph Junghans [Wed, 15 May 2013 19:53:56 +0000 (21:53 +0200)]
Merge "fixed incorrect scaling of cos-acceleration viscosity" into release-4-6

11 years agoMerge "Fixing handling of perturbation mass changes." into release-4-6
Sander Pronk [Fri, 10 May 2013 13:17:11 +0000 (15:17 +0200)]
Merge "Fixing handling of perturbation mass changes." into release-4-6