2 days agoUpdate Colvars to version 2019-07-19 15/5215/1 master
Giacomo Fiorin [Fri, 19 Jul 2019 20:13:23 +0000 (16:13 -0400)]
Update Colvars to version 2019-07-19

This relatively large update includes both fixes and new features.
Descriptions and authorship information can be accessed from the pull requests
listed below.

Ensemble-biased metadynamics documentation

Fix bug on multiple walkers metadynamics, pmf included twice

Implementation of the geometric path collective variables (C++11-only feature)

Fix inconsistency in the sign of the free-energy gradient in writeTISamples documentation

Fix forces and missing output of runtime histogram for histogramRestraint

Provide accessor to center-of-mass gradient of scalar variables

Use 64-bit integers to store simulation step numbers

Write the head of a pmf file

Resolve issue #227 by moving deps functions to derived classes

Allow parsing a keyword repeatedly

Fix #226 by unregistering named atom groups

Added stochastic velcocity rescaling and Lowe Anderson thermostats to NAMD proxy

Fix missing initialization of the CVC base object

Extended-Lagrangian fix

Compiler fixes

Fix ignored anisotropic cutoff3 for groupCoordNum bug

Do not integrate extended colvars outside MD

Allow dependency resolution when base's and derivative's features conflict

Change-Id: Ic4c20da614e38418dd92f59d3dca822cddd51fc6

13 days agoMerge profiling from devel branch 10/5210/2
David [Wed, 3 Jul 2019 22:52:49 +0000 (17:52 -0500)]
Merge profiling from devel branch

Includes NVIDIA NVTX, Charm++ Projections tracing user events, and
detailed in-house timer collections with optional histogramming.
The profiling here is toward understanding the CPU performance of the
numerical integration parts of the code in Sequencer and HomePatch.

To build with NVIDIA NVTX:
- define NAMD_NVTX_ENABLED (compiler flag -DNAMD_NVTX_ENABLED)
- link to libnvToolsExt (Make.config use "EXTRALINKLIBS = -lnvToolsExt")

The Charm++ tracing user events requires verion 6.9.0 of Charm++.
To build with Charm++ Projections tracing user events:
- build Charm++ with "--with-production --enable-tracing"
- define CMK_TRACE_ENABLED (compiler flag -DCMK_TRACE_ENABLED)
- build NAMD using "projections" target, e.g. "make projections"

To build with timer collections:
- optionally define TIMER_HISTOGRAM (compiler flag -DTIMER_HISTOGRAM)

Change-Id: Ia77ba9d4a6ca4ae81deb65103a8ee67ba74d485a

2 weeks agoRemove assert from pragma simd 06/5206/1
David [Tue, 2 Jul 2019 19:22:53 +0000 (14:22 -0500)]
Remove assert from pragma simd

Preparing for transition to OpenMP pragma omp simd, which does not
support assert.

Change-Id: I9f45e21b37160ebca113ed85f176ffc9af40c99e

3 weeks agoExperimental code for serial expanded ensemble in pH space 05/5205/1
radakb [Fri, 28 Jun 2019 16:55:47 +0000 (12:55 -0400)]
Experimental code for serial expanded ensemble in pH space

pH replica exchange is a well-established technique in the literature, but
is difficult to implement efficiencly in the inherently asynchronous paradigm
of neMD/MC constant-pH. This code implements some well-know serial variants of
pH replica exchange and creates a simple interface for trying other versions.
They have been tested and are theoretically correct, but require considerable
calibration and expert knowledge to produce meaningful results. Thus they
ought to be considered experimental.

The code changes do not actually plug in to the main cphRun function and thus
do not actually provide new features to namdcph. They are being added so that
newer developers can try new ideas in the future.

Change-Id: Ie5fff39caa401563c5ad7392a1d88fbd6ef0159e

3 weeks agoRemove simd assert pragma from Settle 04/5204/2
David [Tue, 25 Jun 2019 16:09:21 +0000 (11:09 -0500)]
Remove simd assert pragma from Settle

This assert can make the Intel compiler fail for veclen=1,
depending on how flags are set.

Change-Id: I6eee0d57d5ed8ab0314de07a57f2de0550b94578

3 weeks agoUpdate Lepton to version 2019-06-02 02/5202/2
Jérôme Hénin [Thu, 20 Jun 2019 11:10:01 +0000 (13:10 +0200)]
Update Lepton to version 2019-06-02

Fixes and optimizations, added atan2() function.

Change-Id: Iec8d73f974fb57fd48e58206dcac9a6d1afa0094

4 weeks agoDocumentation for new WCA implementation 03/5203/1
radakb [Thu, 20 Jun 2019 21:40:34 +0000 (17:40 -0400)]
Documentation for new WCA implementation

All new keywords are now documented and described, although little theoretical
background is given aside from a citation for the original Deng and Roux paper
describing the original implementation in CHARMM.

- The old fep.bib file was apparently not used and has been removed (I
  somewhat frustratingly found myself adding info to it only to find that it
  was not being compiled).

- NAMD now dies with a warning when TI is used, as the implementation is not
  complete. A detailed note is left as to why this is so.

- NAMD now dies with a warning when using WCA and CUDA, since this is not

Change-Id: Ia59e0fa71b5cd3b77866c5041469261239091bf6

5 weeks agoUpdate MOPAC output 96/5196/2
Mariano Spivak [Wed, 5 Jun 2019 22:38:39 +0000 (17:38 -0500)]
Update MOPAC output

Change-Id: I70f4f851aaff54abf282dd7065ab66641a8d6b90

7 weeks agoFix section headings for AMBER and GROMACS 94/5194/1
David [Thu, 30 May 2019 22:31:26 +0000 (17:31 -0500)]
Fix section headings for AMBER and GROMACS

Change to "file support" since GROMACS is not a force field.

Change-Id: If65f4015e0a5401d632f7be38980688b78d9ce5c

7 weeks agoFixed bug when overwriting Drude bond parameter 93/5193/1
David [Thu, 30 May 2019 22:11:37 +0000 (17:11 -0500)]
Fixed bug when overwriting Drude bond parameter

Change-Id: Ic0418852a0970c7f4b6dbeb6b2d148ad218444e7

7 weeks agoUpdate to lonepair and Drude particle bond behavior 55/5155/6
radakb [Wed, 1 May 2019 20:09:06 +0000 (16:09 -0400)]
Update to lonepair and Drude particle bond behavior

The CHARMM RTF/PSF standard for lonepairs no longer includes explicit bonds in
the BOND section. This would break NAMD, which needs explicit bond connectivity
to build inherited exclusions (and migration groups?). The development version
of Psfgen that builds equivalent PSFs also only writes Drude bonds as an option.

This update yields the following behavior:

1) When reading a PSF, Ignore all explicit BOND declarations that include
  lonepairs or Drude particles (flagged by a mass heuristic). This is a little
  dicey, but not actually that bad because NAMD then checks lonepair
  assignments against the lphost entries and Drude particles against non-zero
  polarizability -- a mismatch causes the program to stop.

2) If no wildecard DRUD-X bond is defined in the parameter files then, if
  CHARMM format Drude is on, a default bond is allocated (force constant of 500
  -- a global constant in Psfgen and all extant Drude RTFs).

3) Lonepair bonds are not "real" and now get assigned dummy parameters. This
  happens regardless of any definitions in the prm file (which usually don't
  exist and thus we never check for them).

4) After reading the lphost section, allocate new bonds between lonepairs and
  their primary host with dummy parameters. This fixes the missing connectivity
  problem used to build exclusions.

5) After reading a PSF, allocate new bonds between Drude particles and their
  preceding atom (which is already required to be their parent).

This has been extensively tested against Drude/lonepair containing systems
built with explicit bonds -- the old code and new code (w/o explicit bonds)
yield identical energies.

Possible issues/TODO:

1) Verify that MEMOPT builds are not effected.

Change-Id: I83467807a8cb71cb87fcd32c6a0ba3d09876f7e6

7 weeks agoFix more bugs fetching from texture memory 91/5191/1
David [Wed, 29 May 2019 22:20:19 +0000 (17:20 -0500)]
Fix more bugs fetching from texture memory

The previous bug showed up three times in the CUDA bond code.

Change-Id: I74a205c4de3654990e4358110bd500294d2e83fe

8 weeks agoFix bug fetching from texture memory 86/5186/2
David [Thu, 23 May 2019 18:45:20 +0000 (13:45 -0500)]
Fix bug fetching from texture memory

Texture memory fetching for van der Waals coefficients had been broken
for running on Kepler with compute capability less than 3.5.

Change-Id: Ic031f28a1ada8287cc16505fce31f78511c9a475

2 months agoMake parameter assignment args const char* and reduce strcpy 63/5163/1
Jim Phillips [Fri, 3 May 2019 20:43:37 +0000 (15:43 -0500)]
Make parameter assignment args const char* and reduce strcpy

Parameter assignment routines were potentially modifying
the atom type strings passed in, which were being copied
into temporary strings.  Now pass const char* around.

Change-Id: I0a9af22b3310ab881eed4cf844deae452a94411c

3 months agofix illegal memory access in CUDA tile sort key building 09/5109/1
Jim Phillips [Fri, 19 Apr 2019 21:54:06 +0000 (16:54 -0500)]
fix illegal memory access in CUDA tile sort key building

Catch out of range min and max in fillSortKeys kernel in cases
where patches are empty and hence min and max are not updated
from their initialized values of maxTileListLen+1 and 0.

Change-Id: I4b8d9e0cd75e81e456d764029a99b7c8c9100152

3 months agoUpdate toppar files and examples for constant-pH MD 67/5067/4
radakb [Tue, 9 Apr 2019 19:01:43 +0000 (15:01 -0400)]
Update toppar files and examples for constant-pH MD

-- NAMD specific force field files for constant-pH MD are now given
   in the lib/namdcph/toppar directory. This includes .prm, .rtf. and
   .json files that contain ONLY new parameters.

-- The (old syntax) examples have been updated and simplified.
   The acetic acid example has been pared down in the number of files
   and the omtky3 protein example has been replaced with the bbl
   protein example from the tutorial (this one is slightly simpler).

-- A limited number of force field files from the MacKerell group have
   been included so that these example can run "out of the box".
   These have been heavily disclaimed and print a warning to the user
   that the parameters are good for no other purpose but to make the
   examples run -- the MacKerell group agrees that this is an
   acceptable middle ground between flat out redistributing their
   parameters and a link to their website has been included in the

Change-Id: I9a706a40837087163e505fe4197367dfb4d02187

3 months agosupport cuda10 in config script 08/5008/3
Peng Wang [Thu, 7 Mar 2019 23:55:31 +0000 (15:55 -0800)]
support cuda10 in config script

Change-Id: Id2782eb8dd023dc0f4467ebaeb68d1ea7bec1cb9

3 months agoUpdated QMMM docs 37/4937/3
melomcr [Mon, 4 Feb 2019 22:40:32 +0000 (16:40 -0600)]
Updated QMMM docs

Updated the format definition for the output file used
when custom QM softwares are called by the QM/MM interface.

Change-Id: I813cf1d9b908bcf1519f1e932f41a0bd9c57dcac

3 months agoRevamp of alchemical WCA decomposition 18/5018/2
radakb [Wed, 13 Mar 2019 19:35:38 +0000 (15:35 -0400)]
Revamp of alchemical WCA decomposition

The old, undocumented, WCA strategy for LJ interactions is now
completely re-implemented and better integrated. All of the old
keywords are removed as well as all as the redundnant modifications
to electrostatics. The new code is compatible with TI (well, almost,
see below), IDWS, and all switching and LJcorrection schemes. There
re now two new WCA specific keywords:

alchWCA -- boolean for the WCA code path
alchRepLambdaEnd -- new lambda scheduling parameter

The WCA code separates the LJ terms into "repulsive" and
"dispersive" parts. For an exnihilated particle, the repulsion
is now turned on between 0 and alchRepLambdaEnd and the dispersion
is turned on between alchRepLambdaEnd and alchVdwLambdaEnd. By
construction, the LJcorrection and switching options only affect
the alchemical atoms when alchLambda >= alchRepLambdaEnd.

A major change from the old code is that electrostatic scaling is
completely decoupled from the LJ scaling.

Tests over a large set of molecules show that free energies agree
with the conventional soft-core routines, as expected.


- There are now a LOT of if/else statements in the alchemical LJ
  routines. Many of these are global booleans and can probably be
  optimized (all combinations of alchWCA, switching, and
  vdwForceSwitching lead to globally different paths).

- Many of the generic inline routines in ComputeNonbondedAlch.h
  could probably be optimized.

- WCA has not historically been used with TI, but there is no
  theoretical limitation here. However, the additional decomposition
  implies TWO derivatives, although these are only both needed at
  alchLambda == alchRepLambdaEnd. This is not correctly implemented
  as is.

Change-Id: Ia3eef1633dc6dd21ffe0101428e2fb219d8037be

3 months agoUpdate default behavior and documentation for Drude 43/5043/2
radakb [Thu, 28 Mar 2019 19:21:09 +0000 (15:21 -0400)]
Update default behavior and documentation for Drude

Changes to default behavior:

- drudeHardWall is now documented in the user guide and is the
  default option.
- drudeBondLen, drudeBondConst, and drudeNbTholeCut now have default
  options equal to the recommended values from the user guide. These
  are still "optional" values but are essentially required for any
  sensible simulation.
- drudeBondConst is ignored unless drudeHardWall off (not default).

Cosmetic updates:

- INFO message is now upated to avoid incorrect duplicate message for
  quartic potential (mutually exclusive with drudeHardWall).
- Cleaned up the user guide to improve description of hyperpolarization
  events and options for avoiding/correcting them.
- Corrected non-uniform heuristics for Drude particles based on mass.
  A lower mass cutoff of 0.001, 0.01, or 0.1 was used in multiple
  places. These now match the value of 0.05 used alongside other mass
  heuristics in Molecule.
  TODO - maybe these heuristics should be centralized?
- Made a small update in the quartic bonded potential to avoid a second
  if condition when drudeHardWall on.

Change-Id: Ief2d0a43f3e12af53867b3b9ddfe8a0be409abb5

3 months agoOptimize alchemical scaling schedule for LJcorrection 61/4961/3
radakb [Tue, 19 Feb 2019 15:27:48 +0000 (10:27 -0500)]
Optimize alchemical scaling schedule for LJcorrection

The long-range Lennard-Jones correction is included and scaled
w/VDW energy during alchemical simulations. This change revises
the coupling schedule when alchVdwLambdaEnd != 0.0 or 1.0.

The old behavior was to compute the full correction at both
alchemical endpoints and then completely decouple one before
recoupling the other - this is extremely dramatic in the rare, but
reasonable, instance that the coupling schedule is not symmetric.
The new behavior always retains the contribution from non-alchemical
atoms and only couples/decouples the "correction" for the alchemical

The TI derivatives are now also "cleaned up" so that there are no
spurious components coming from the opposing alchemical endpoint.
For example, previously, there were non-zero contributions in VDW2
that exactly cancelled part of VDW1, even if alchemical group 2 is
empty. The result is the same, but the new code is more intuitive.

Finally, this enables proper all-in-one decomposition of free energies
into VDW and ELECT components for arbitrary values of alchVdwLambdaEnd.
The old schedule could inadvertently contaminate the ELECT portion
with the LJcorrection unless alchVdwLambdaEnd was properly chosen.

Change-Id: I3ae5903434e68fb134fe24952bb35a175f9d0621

3 months agobugfix in QM charge update 64/4864/3
melomcr [Sat, 15 Dec 2018 01:11:21 +0000 (19:11 -0600)]
bugfix in QM charge update

QM code will now update charges on QM atoms
when more than one QM region is defined, instead of
only when PME is ON. This allows QM regions to
see one another as partial charges with thei updated
QM charges, instead of the original PSF charges.

Also fixed bug when calculating multiple QM regions
using only one core. Now multiple directories are
created regardless of the number of PEs.

Change-Id: I9973743e3a580fd82020b5ce594d7f01716fdc90

3 months agoUse NAMD_die when exiting due to errors 32/5032/4
Jérôme Hénin [Thu, 21 Mar 2019 14:58:37 +0000 (15:58 +0100)]
Use NAMD_die when exiting due to errors

Fixes problem with job chains going on after crashes, because the scheduler is
unaware of the error condition.

This simple version should work with any version of Charm++. I am not sure what
the current logic tries to achieve, as BackEnd::exit() is called if a single partition
is present.

A more sophisticated version might take advantage of this recent change:
which would allow BackEnd::exit() to accept an exit code and pass it along
to charm++.

Change-Id: I75c6361947ee383b250d6d6e3faf3bd5769c5096

4 months agoRemove unrecognized xlC -qfloat value fltint 29/5029/1
Jim Phillips [Mon, 18 Mar 2019 23:45:11 +0000 (18:45 -0500)]
Remove unrecognized xlC -qfloat value fltint

Change-Id: Ida29fecefd34589860953e42b53d711ea6b49ddc

4 months agoRevert "Modify xlC flags to avoid CthThread crash" 28/5028/1
Jim Phillips [Mon, 18 Mar 2019 23:37:44 +0000 (18:37 -0500)]
Revert "Modify xlC flags to avoid CthThread crash"

This reverts commit 36f013c604ea355edb5f6235de084e0514a7b4ab.

Crashes were due to Charm++ switch to Boost uFcontext threads.
Compiling NAMD threaded code with -O0 drops performance by half.

Change-Id: I843175a3c04db4cd2c5ad118489fd12ea823e39e

5 months agoUpdate behavior for alchemical bonded scaling 34/4934/2
radakb [Fri, 1 Feb 2019 19:11:09 +0000 (14:11 -0500)]
Update behavior for alchemical bonded scaling

Molecule::get_fep_bonded_type now explicitly catches bonded terms
involving alchemical atoms that should NOT be scaled and assigns
them to group 0 (as opposed to 1 or 2). This may have been a quiet
bug for the case alchBondLambdaEnd > 0.0 and alchBondDecouple off,
neither of which are default and are not often (or never?) used.

Change-Id: I404703eadd30951270ff2a453e8cdff31c835bdc

5 months agoMove optimization options to ...OPTS macros 23/4923/2
Jim Phillips [Fri, 25 Jan 2019 18:08:05 +0000 (12:08 -0600)]
Move optimization options to ...OPTS macros

Optimization-related options should be in COPTS/CXXOPTS where
they can be over-ridden by CXXTHREADOPTS, unlike CC/CXX.

Change-Id: I2c23c9816a77f1dc0b99bd51f1d6aa5f573268de

5 months agoFix direct calls to SDAG entry methods 08/4908/3
Jim Phillips [Fri, 18 Jan 2019 16:52:13 +0000 (10:52 -0600)]
Fix direct calls to SDAG entry methods

Directly calling SDAG entry methods that contain when clauses has
always had undefined behaviour, but Charm++ 6.9.0 now raises errors.
Now calls SDAG methods via proxy with callbacks to enforce order.

The error occurs when running the CUDA SMP build with multiple
processes on four or fewer physical nodes, as otherwise the
hard-coded heuristic falls back to the older PME since the newer
PME CUDA code does not scale well. Although this misuse of SDAG could
be caught as a compile-time error, Charm++ for some reason implements
as a run-time error.

Change-Id: Icf734a79daa3b3f6c5c0b70667fa782bcc40447e

6 months agoModify xlC flags to avoid CthThread crash 02/4902/2
Jim Phillips [Thu, 17 Jan 2019 20:02:01 +0000 (14:02 -0600)]
Modify xlC flags to avoid CthThread crash

CXXTHREADOPTS = -O0 -qstrict ... avoids crash with new xlC on Summit.

Change-Id: I6304a242254f087c80f69efae38c8179e58022a9

6 months agoFix REST2 config parameter name lookup 90/4890/1
David [Fri, 11 Jan 2019 17:40:22 +0000 (11:40 -0600)]
Fix REST2 config parameter name lookup

The REST2 config parameter names identifying PDB file and column were
not correctly updated in the global NamdState class.  Bug fixed.

Change-Id: Icf0f1e2b5bc7adfef0e4579b742aa9f0e8b28c16

7 months agoUpdate Colvars to version 2018-12-18 73/4873/2
Giacomo Fiorin [Thu, 20 Dec 2018 16:53:34 +0000 (11:53 -0500)]
Update Colvars to version 2018-12-18

Add dipoleMagnitude variable (contributed by Alejandro Bernardin):

Minor bugfix for #ifdef NAMD_TCL, triggered by a build without Tcl:

Minor fixes to silence compiler warnings and cosmetic changes.

Change-Id: I7d5963e6d8d9b52a8f1c90994420c8057ee197af

7 months agoImprove energy conservation of vdwForceSwitching/LJcorrection 69/4869/4
radakb [Wed, 19 Dec 2018 16:20:23 +0000 (11:20 -0500)]
Improve energy conservation of vdwForceSwitching/LJcorrection

The existing implementation for vdwForceSwitching + LJcorrection
introduces a discontinuity into the potential (but not the force)
in order to make the long-range correction more well-defined.
While this discontinuity is very small for normal cutoffs, it
can cause detectable issues at moderate lengths (~8 A).

This revision reverts to the old vdwForceSwitching behavior and
modifies the long-range correction to include a "core" correction
term based on the same approximation -- this is theoretically
dubious, but works quite well in practice.

On a practical note, this change greatly simplifies the code
because vdwForceSwitching behavior is now uniform. Supporting
multiple branches in the alchemical code will now be substantially

Change-Id: Ia53bc80f79e1976f2f0ca62f2f0d6988a2fe960a

7 months agoUpdate Colvars to version 2018-12-14 63/4863/2
Giacomo Fiorin [Fri, 14 Dec 2018 20:22:02 +0000 (15:22 -0500)]
Update Colvars to version 2018-12-14

Bugfixes concerning corrFunc/runAve:

Fix for the dependency handling in orientationAngle, orientationProj, tilt,
abnd spinAngle (an error condition was raised when it shouldn't have):

The "cv save" command now triggers writes of output files from the ABF bias:

Relevant commit messages:
394145d 2018-12-14 Split off init() function for orientation derivatives [Giacomo Fiorin]
df94a7c 2018-12-12 Silence compiler warnings [Giacomo Fiorin]
026ef05 2018-11-16 Update version strings [Giacomo Fiorin]
4d8244f 2018-11-16 Make internal numbering of default colvar names consistent [Giacomo Fiorin]
331a205 2018-11-16 Add end_of_step() function to variables and biases [Giacomo Fiorin]
e71730c 2018-11-15 Fix declaration of local variable [Giacomo Fiorin]
07b9ff4 2018-11-15 Check that second variable is defined before accessing it [Giacomo Fiorin]
563f081 2018-11-15 Improve output format for runAve and corrFunc, cosmetic changes [Giacomo Fiorin]
475f493 2018-11-15 Use consistent return types for colvar-class analysis functions [Giacomo Fiorin]
acf8cc2 2018-11-15 Do not recompute finite-difference velocity; make it unavailable only during simulation [Giacomo Fiorin]
24b2db4 2018-11-15 Use properly name of second variable for correlation function [Giacomo Fiorin]
e5397e6 2018-11-15 Fix default file names for corrFunc and runAve output files in the doc [Giacomo Fiorin]
9fe9ff9 2018-11-15 Initialize corrFunc, runAve output files when cvm::output_prefix() is available [Giacomo Fiorin]
7e8bbaf 2018-10-30 Implement cv save in ABF [Jérôme Hénin]
d388035 2018-10-29 Add missing hyperlink [Giacomo Fiorin]

Change-Id: I22b3b0ac000bee69d4dc7fe3d41d657f426a3550

7 months agoFix implicit declarations in C files 62/4862/1
Jim Phillips [Thu, 13 Dec 2018 20:58:20 +0000 (14:58 -0600)]
Fix implicit declarations in C files

Add headers.  Also add "utils" target to build extra tools.

Change-Id: Id414747c56ca8d417ad93e600e10fbc7abd38ed1

7 months agoRemove unused files that use Charm's cmidirectmanytomany api 26/4826/3
Nitin Bhat [Tue, 27 Nov 2018 17:08:01 +0000 (11:08 -0600)]
Remove unused files that use Charm's cmidirectmanytomany api

With the new zerocopy api in Charm++, the older unused
cmidirect api is being removed. This patch removes the source
code files and their dependencies in NAMD that use the
cmidirectmanytomany api. These include fftlib.{ci,h,C},
fftmap.h, OptPme.{ci,h,C} and OptPmeRealSpace.{h,C}.

Change-Id: I154a209a5d5ed4a88e1382fd4d67665fe5eb9677

8 months agoClarify that soluteScalingFactor is \beta 10/4810/1
Giacomo Fiorin [Thu, 15 Nov 2018 18:10:10 +0000 (13:10 -0500)]
Clarify that soluteScalingFactor is \beta

To avoid any misunderstandings, this change clarifies that the parameter \beta
from the solute-scaling equation is being provided, as opposed to

Change-Id: I77b2015367896ee03cdfad18bfa5c028c49038b3

8 months agoFix LJcorrection behavior in alchemical simulations 08/4808/2
radakb [Tue, 13 Nov 2018 15:08:59 +0000 (10:08 -0500)]
Fix LJcorrection behavior in alchemical simulations

The alchemical tail correction previously used the fixed value of
alchLambda2 rather than the IDWS-enabled getter function
SimParameters->getCurrentLambda2(). This produces incorrect comparison
energies when performing FEP w/IDWS.

A separate error also could have occured if combining nonbondedScaling
with TI (probably never been done before). The TI derivatives now use
the correct Molecule->getEnergyTailCorr() getter function which includes
the scale factor.

Change-Id: Ibed7793c4f6625f0fc8118d4271f413ca2755b1c

8 months agoUpdate running CUDA and performance tuning 03/4803/4 release-2.13
David Hardy [Fri, 9 Nov 2018 18:45:25 +0000 (12:45 -0600)]
Update running CUDA and performance tuning

Moved performance tuning chapter to later part of user guide.
Updated to discuss NAMD performance tuning concepts.

Updated section on running CUDA for modern GPUs, added explanation
of what is and is not accelerated, what is and is not disabled by
CUDA-accelerated builds, and added some keywords.

Updated copyright year on user guide.

Change-Id: I21cda6ef7bd25fde53274d0733637b645645c2f8

8 months agoUpdate release date 00/4800/3
Jim Phillips [Fri, 9 Nov 2018 15:02:49 +0000 (09:02 -0600)]
Update release date

Add grant number to announce.txt file.

Change-Id: Idb9367c0f1491193d99269a149b934a4c07bda8f

8 months agoMajor update for deinterleave_IDWS 96/4796/2
Jérôme Hénin [Fri, 9 Nov 2018 00:04:07 +0000 (01:04 +0100)]
Major update for deinterleave_IDWS

finally good behavior with ParseFEP and the default option

Change-Id: Id1534bb802db1653178eb61f935df80bf54cef06

8 months agoUpdate user guide front material 99/4799/1
David Hardy [Fri, 9 Nov 2018 06:59:33 +0000 (00:59 -0600)]
Update user guide front material

Add J. Maia to author list.  Add grant number to cover page.

Change-Id: Ice67ea8120db6fda5b939079803f4134fce53547

8 months agoAmmended QM/MM documentation 95/4795/1
melomcr [Thu, 8 Nov 2018 21:59:02 +0000 (15:59 -0600)]
Ammended QM/MM documentation

Added 4 missing keywords to the keyword list in the user guide.

Change-Id: Ife82db4508e061a12f7211023e0aec2b49e4b513

8 months agoQM/MM documentation in user guide 58/4758/4
David Hardy [Wed, 31 Oct 2018 12:59:34 +0000 (07:59 -0500)]
QM/MM documentation in user guide

Documentation has been created from the research web page and paper.
Included introductory material with figures from website, pointer
to Python scripts, keyword definitions, and references.  Tested
building both the PDF and HTML.

Also have included Python and other relevant scripts into a new
lib/qmmm/ directory.

Change-Id: I0e9376500425af20b6d7d6bb6529b3728cd9897f

8 months agoDeinterleave IDWS with safe defaults for parseFEP 79/4779/2
Jérôme Hénin [Tue, 6 Nov 2018 22:37:53 +0000 (23:37 +0100)]
Deinterleave IDWS with safe defaults for parseFEP

meaning, interpolating, which is slow and strange but works
The work I could put into making the subsampling version robust, I'd
rather use to fix ParseFEP to accept uneven sampling per window.
Most of the work on that has been done by Brian already.

Change-Id: Iddfd4230b651806cbabeffc311d2b34f2fa82f96

8 months agoPermit negative pH and pKai 85/4785/1
radakb [Wed, 7 Nov 2018 20:39:05 +0000 (15:39 -0500)]
Permit negative pH and pKai

I'm not entirely sure why this was originally required. In any event,
systems under study now do require extreme values as low as -1, so I've
had this change locally for a while now. It shouldn't impact many users.

Change-Id: Idab0f436979d1d81c1ecd900742820130551f7ee

8 months agoAdd alchIDWSFreq fallback to outputEnergies 70/4770/7
radakb [Fri, 2 Nov 2018 16:35:52 +0000 (12:35 -0400)]
Add alchIDWSFreq fallback to outputEnergies

If alchOutFreq = 0, fallback to alchIDWSFreq = outputEnergies. This
enables IDWS output to stdout without sending any output to

Also, because the value of alchLambda2 is step-dependent (not event
driven), the use of two IDWS output streams may be inherently
incompatible if the output frequencies are different (outputEnergies
must be an odd multiple of alchOutFreq). Users can still use whatever
settings they would like, but there is a warning issued when
alchOutFreq > 0 and alchOutFreq != outputEnergies.

Minor change:

alchIDWSfreq --> alchIDWSFreq, to match camel casing convention
throughout the rest of the code

Change-Id: I5d6611b6eb9374cd1cc97e1e87169e4beba83322

8 months agoPrint warning if margin greater than 4 83/4783/2
Jim Phillips [Wed, 7 Nov 2018 18:30:39 +0000 (12:30 -0600)]
Print warning if margin greater than 4

There are legitimate reasons for large margins, but the user should
be made aware of the consequences of increasing it unnecessarily.

Change-Id: Iacf9b216199d2c6a639bcfa611af2734fa1b0f3c

8 months agoAdding error message for large patches on nbond kernels 82/4782/2
Julio Maia [Wed, 7 Nov 2018 17:29:14 +0000 (11:29 -0600)]
Adding error message for large patches on nbond kernels

We had an 'invalid argument' error when large patches (>11k atoms) were
accounted for on CudaTileList::buildTileLists. This happened because
the amount of shMem allocated inside the tilelist kernels
is dependant on the number of atoms in the largest patch.

I've added a query to get the maximum shared memory available per block.
We can compare that against the necessary shared memory to launch the
tilelist kernels, and if those launches are about to go wrong, NAMD prints
a nice message to warn the user about the patches sizes.

Change-Id: Ie35b40d83f87b06ec33cd60b0a1936cec18b6114

8 months agoWarn that extraBonds angles are cosine-based and allow harmonic 63/4763/3
Jim Phillips [Thu, 1 Nov 2018 03:40:58 +0000 (22:40 -0500)]
Warn that extraBonds angles are cosine-based and allow harmonic

The "normal" flag for extraBonds angles was left uninitialized
when the cosAngles feature was implemented, which tends to
result in extraBonds angles being treated as cosine-based.

Since workflows may unknowingly depend on the current behavior
warn the user and add extraBondsCosAngles option to change it.
Also fix bad comment that reversed meaning of normal flag.

Change-Id: I1a300d6b12654c676c91f15236b135ef3e5fc4e3

8 months agoDocumentation for stochRescaleHeat keyword 69/4769/2
radakb [Fri, 2 Nov 2018 15:09:03 +0000 (11:09 -0400)]
Documentation for stochRescaleHeat keyword

This commit adds documentation for this previous addition to the
stochRescale thermostat. The option only affects output, not
dynamics, but should still be regarded as experimental. The current
documentation says as much.

Change-Id: I2720beb414682896a8d98821aa40901616a1e6bf

8 months agoFix error from copying uninitialized angle parameters to GPU 66/4766/2
Jim Phillips [Thu, 1 Nov 2018 14:52:19 +0000 (09:52 -0500)]
Fix error from copying uninitialized angle parameters to GPU

One example was the ffTK tutorial bond and angle optimization.
Replacement angle parameters would be counted as unique but only
the last would be copied from the parameter assignment tree to the
indexed parameter array. The new CUDA bonded code would look at
uninitialized and never-used data at the end of the parameter array
and exit with "Can't use cosAngles with Urey-Bradley angles".

We could use the indexing functions to set correct counts for
all bonded term parameters, but this would break backwards
compatibility of memopt compressed structure files, especially
those containing extraBonds, so just initialize the full arrays
as is already done for dihedrals, impropers, and cross-terms.

Change-Id: I5d4592c3580f6876243427415b591b8ea88158d9

8 months agoFix uninitialized variable in QM 67/4767/1
David [Thu, 1 Nov 2018 20:32:06 +0000 (15:32 -0500)]
Fix uninitialized variable in QM

Change-Id: I6933ab6bc08f48a878ab1de2ce2c1818ff5dbc43

8 months agoUpdate to 2.13. 50/4750/1
Jim Phillips [Mon, 29 Oct 2018 21:05:56 +0000 (16:05 -0500)]
Update to 2.13.

Change-Id: I378e27ec1917ebe82e860e3da4398cc4bc4494ba

8 months agoImprove error reporting for new CUDA PME device polling 46/4746/1
Jim Phillips [Mon, 29 Oct 2018 18:58:13 +0000 (13:58 -0500)]
Improve error reporting for new CUDA PME device polling

Call cudaDie with a useful message rather than NAMD_bug.

Change-Id: Ibcbc4365055367678a05e76fa5830653c923146c

8 months agoSmall improvements to Colvars doc 42/4742/1
Giacomo Fiorin [Mon, 29 Oct 2018 15:21:34 +0000 (11:21 -0400)]
Small improvements to Colvars doc

More forward-compatible explanation of current keywords, and support for some
hyperlinks.  There are no changes to the C++ or Tcl code.

The PDF and HTML versions of the manual both compile correctly.

See also:
(review completed)

Change-Id: I18dc77fe5ee7411fc2d552d4e4ecf90cbada9ca7

8 months agoUpdate Colvars version (omitted in previous push) 41/4741/1
Giacomo Fiorin [Mon, 29 Oct 2018 15:21:08 +0000 (11:21 -0400)]
Update Colvars version (omitted in previous push)

Change-Id: I67f5e19c2a58133ad5477152566dfb2fba525381

8 months agoDon't pollute global namespace with fake sbrk for Windows 32/4732/1
Jim Phillips [Fri, 26 Oct 2018 01:32:04 +0000 (20:32 -0500)]
Don't pollute global namespace with fake sbrk for Windows

Conflicts with similar fake sbrk added in Charm++ 6.9.0.

Change-Id: Ic15d55fa63d5f8939387a2881eced8193683d103

8 months agoEnable work computation with thermostat heat 31/4731/1
radakb [Thu, 25 Oct 2018 18:46:35 +0000 (14:46 -0400)]
Enable work computation with thermostat heat

The work computation for the neMD/MC switch in constant-pH MD can
now be computed from the thermostat heat whenever the settings

stochRescale     on
stochRescaleHeat on

All other combinations will use the default computation from the
alchemical protocol work. Note that:

1) This is still technically experimental!

2) stochRescale can still be used with the default method

The thermostat detection method should correctly catch older versions
of NAMD where stochRescale is not available. This really only matters
for various developmental versions of 2.12, since versions lower than
that are missing other critical features.

Change-Id: If618759214c38f6ff0c60586004012e610e2718f

8 months agoSimplify microscopic inherent pKa calculations 23/4723/2
radakb [Tue, 23 Oct 2018 19:18:17 +0000 (15:18 -0400)]
Simplify microscopic inherent pKa calculations

This revision doesn't change the function of the code, but puts the
implementation more inline with the equations in the published paper.

Briefly, the multiplicity of states must be taken into account when
computing transition probabilities based on the inherent pKa. This
is most clearly written as a correction to the macroscopic pKa input
in the form of a log-ratio of multiplicity factors for the current
and trial states. This was previously split into two corrections,
which was technically correct, but obscured the ratio component.
This also reduces the number of logarithms computed.

Additional change:

The input pattern for a two-site degenerate diprotic acid has been
implemented. This was just a convenient feature for testing and does
not match any published force field parameters.

Change-Id: If3ddb84fc6271b2f261055c82ee98f055ed49310

8 months agoEven better parsing in deinterleave_IDWS 21/4721/1
Jérôme Hénin [Tue, 23 Oct 2018 12:49:21 +0000 (14:49 +0200)]
Even better parsing in deinterleave_IDWS

Read number of equilibration steps directly from file,
fixes ParseFEP incompatibility reported by Brian Radak.

Change-Id: Ib518ef0dfde395b51af028f6fd1972ec7df6d489

9 months agoImprove error reporting for CUDA device polling 08/4708/1
Jim Phillips [Wed, 17 Oct 2018 19:57:05 +0000 (14:57 -0500)]
Improve error reporting for CUDA device polling

Fix cases where calling cuda_errcheck would do nothing
because device had not returned error to use cudaDie.
Also provide uniform and complete messages in all cases.

Change-Id: Ia2ee1c1b33a2f5dd97e705869b97e70e9e666771

9 months agoRebuild dependencies 07/4707/1
Jim Phillips [Wed, 17 Oct 2018 18:59:19 +0000 (13:59 -0500)]
Rebuild dependencies

Change-Id: Id6439d9b3054af41b53505cab53b3430dd5cbb1e

9 months agoFix for 99/4699/3
Jérôme Hénin [Tue, 16 Oct 2018 20:17:49 +0000 (22:17 +0200)]
Fix for

Fixes issue reported by Brian Radak when fepout files contain
no data for equilibration.

Change-Id: I1a8df0ebfe7839fcba5ea98f3a8caf91c17c1575

9 months agoMake pairlisted coordNum variable consistent under biasing forces 98/4698/1
Giacomo Fiorin [Tue, 16 Oct 2018 20:12:28 +0000 (16:12 -0400)]
Make pairlisted coordNum variable consistent under biasing forces

See commits from:

Change-Id: Idf1e1bb0ea5feb0623c2a5edda4ffc084c15db83

9 months agoCompute heat transfer and work with stochastic rescaling 93/4693/3 release-2-13-beta-2
radakb [Tue, 16 Oct 2018 15:17:08 +0000 (11:17 -0400)]
Compute heat transfer and work with stochastic rescaling

The stochRescale thermostat is now extended to enable computation
of heat transfer and work. The added overhead is incredibly small,
but for now reporting (to stdout and Tcl callback) only occurs with
the new stochRescaleHeat keyword. Other thermostats may also be able
to accomodate this computation, so the generic HEAT and WORK fields
have been added.

Both computations are _cumulative_ wrt firstTimestep, so resetting
from Tcl causes the accumulation to start over. Note that this also
requires tracking the TOTAL energy change between the current step
and firstTimestep.

For true equilibrium simulations, the cumulative work should be
rigorously zero. In practice one instead gets a small number that is
polynomial in the timestep (roughly quartic?).

For neMD/MC simulations this should be an appropriate route to
computing work for a Metropolis criterion. While this approach
mixes protocol and shadow components, test comparisons with direct
computation of the protocol component (CUMALCHWORK) show no obvious
differences within statistical precision. There are minor debates
about asymmetric (used by NAMD) versus symmetric integrator
splittings, so this assertion rests on its empirical validity.

Change-Id: Iddbf54ccd6edb78594705d287681ba4159b4a2e1

9 months agoFix broken error message in Lepton colvar functions 92/4692/2
Giacomo Fiorin [Tue, 16 Oct 2018 15:11:09 +0000 (11:11 -0400)]
Fix broken error message in Lepton colvar functions

Change-Id: Idd58c7d3663c1d3b46edae15df608d58fd2274de

9 months agoUpdates for 2.13 beta 2 release 91/4691/1
Jim Phillips [Tue, 16 Oct 2018 03:40:54 +0000 (22:40 -0500)]
Updates for 2.13 beta 2 release

Change-Id: Id7b2a36f50f1c9ff5bebba19941ab1be0b65ea4c

9 months agoFix segfault in hybrid load balancer in CUDA build 90/4690/1
Jim Phillips [Mon, 15 Oct 2018 21:22:58 +0000 (16:22 -0500)]
Fix segfault in hybrid load balancer in CUDA build

Would access index of largest compute when no migratable
computes exist due to everything being offloaded to GPU.

Load balancer could be disabled completely in this case.

Change-Id: I772fd7540605f8c7cdb1fed348a90ecd456531a7

9 months agoFixes and improvements in Colvars doc 89/4689/1
Giacomo Fiorin [Mon, 15 Oct 2018 18:08:11 +0000 (14:08 -0400)]
Fixes and improvements in Colvars doc

Addresses the latex2html issue for the NAMD user's guide, and also improves
the learning curve by defining the variable functions earlier in the chapter.

The resulting diff is fairly large, mostly due to having merged one chapter
with another chapter that was not consecutive.

Change-Id: I1e6a2005c62efc863bf47c98f1a81ae951535883

9 months agoAllow linear bias to deal with non-scalar variables (Colvars fix) 88/4688/2
Giacomo Fiorin [Fri, 12 Oct 2018 17:49:47 +0000 (13:49 -0400)]
Allow linear bias to deal with non-scalar variables (Colvars fix)

See for details:

Change-Id: Ib5656752b7472d4a7d1896013189ab100e97a31d

9 months agoImprovements to 87/4687/2
Jérôme Hénin [Fri, 12 Oct 2018 17:44:40 +0000 (19:44 +0200)]
Improvements to

- make interpolation optional
- allow multiple fepout files at a time (thanks to Tom Joseph)
- detect spacing of samples more robustly

Change-Id: Ic081403c1e8f05f36f1846cc2dfdf0521e080f68

9 months agoIgnore NOHOSTNAME in CUDA code 86/4686/1
Jim Phillips [Fri, 12 Oct 2018 17:07:32 +0000 (12:07 -0500)]
Ignore NOHOSTNAME in CUDA code

Since CUDA binaries cannot be statically linked there is
no problem calling gethostname() for CUDA error messages.
Including the host name in the error message is critical
for finding bad GPUs on large parallel machines.

Change-Id: Ic97bed4e3ea44156d21b0ff558c37655464f95f6

9 months agoFix hypothetical PME race condition 79/4679/1
Jim Phillips [Wed, 10 Oct 2018 05:09:51 +0000 (00:09 -0500)]
Fix hypothetical PME race condition

In PmeZPencil::send_all_ungrid using CkLoop if the pencil's
home PE does not wait for the helper PEs to finish sending
it could in theory receive incoming data for the next step
and overwrite the charge/potential grid before it was sent.
This would be very unlikely, but it was triggering a recently
added bug check because hasData was being reset to 0 by the
host PE before being checked by the helper PEs.

Change-Id: I4ec7b22ae4f3035c1328498a2cc8f5c4665171c5

9 months agoRevert "Enable gethostname on Cray XE/XK/XC" 77/4677/1
Jim Phillips [Wed, 10 Oct 2018 02:58:56 +0000 (21:58 -0500)]
Revert "Enable gethostname on Cray XE/XK/XC"

This reverts commit 9aa0082e0c1202f5ce14d7ca52ad7a44cf1b9c25.

Statically linked binaries hang if gethostname is called.

Change-Id: I24bdef3d8a21f8805e035ba033ffa0a513f3f633

9 months agoEnable gethostname on Cray XE/XK/XC 76/4676/1
Jim Phillips [Tue, 9 Oct 2018 21:34:29 +0000 (16:34 -0500)]
Enable gethostname on Cray XE/XK/XC

The original Cray XT compute node OS lacked gethostname() so
it was disabled by a macro that was preserved when porting to
the newer Linux-based compute node OS on later machines.
The primary functional benefit of this change is including the
node hostname in CUDA error messages.

Change-Id: I1f58375ef742cbfb15636d73bfa6015d5cafd517

9 months agoAvoid CUDA PME unspecified launch failures 73/4673/1
Jim Phillips [Tue, 9 Oct 2018 19:58:07 +0000 (14:58 -0500)]
Avoid CUDA PME unspecified launch failures

Adding an cudaEventSynchronize() call seems to make random
unspecified launch failures in cuda_check_pme_forces go away.
Also increased detail of error message in case it comes back.

Change-Id: Iafa66934d2c8425e303937b319d629794b055aa3

9 months agoCatch single atom pair constraint failures 65/4665/1
Jim Phillips [Mon, 8 Oct 2018 19:43:20 +0000 (14:43 -0500)]
Catch single atom pair constraint failures

The non-iterative solution for constraining a single pair of
bonded atoms contains a sqrt() that returns a NaN if the argument
is negative.  Catch this case as for the interative method to
prevent NaNs from propagating to velocities, temperature,
pressure, and positions; and eventually causing a segfault that
looks to the user like a bug rather than unstable dynamics.

Change-Id: Ifcd34cd8af18ef337b214ea3f5a07c3622f12cc9

9 months agoUse itemize instead of list environment 42/4642/1
Giacomo Fiorin [Tue, 2 Oct 2018 14:04:16 +0000 (10:04 -0400)]
Use itemize instead of list environment

This change allows using TeX4ht to compile the HTML version of the NAMD UG,
which is an option worth exploring.

Note also that TeX4ht is included in the TeX Live distribution.

Change-Id: I6db4535f50677f542e17ddbfb46cdbeb7843d366

9 months agoManually remove VMD section of Colvars chapter to appease LaTeX2HTML 41/4641/1
Giacomo Fiorin [Tue, 2 Oct 2018 19:49:39 +0000 (15:49 -0400)]
Manually remove VMD section of Colvars chapter to appease LaTeX2HTML

After many hours of trials, _I_ _give_ _up_.  All flavors of LaTeX tried
(traditional PostScript, PDF via pdflatex, and HTML via TeX4ht) produce
correct output for that section.  Unfortunately, LaTeX2HTML fails without any
clear remediation via any of the most common conditional compilation
strategies (\newcommand, \ifx, \ifdefined, ...).

This commit manually removes a section that belongs to the VMD doc, but it
also prevents future automatic integration of the Colvars doc (the section
should not be reintroduced).

Change-Id: Ifff928cec01151f3472e6cc70f9b1cda793577b7

9 months agoAvoid potential integer overflow in warp arithmetic 31/4631/1
Jim Phillips [Fri, 28 Sep 2018 20:44:57 +0000 (15:44 -0500)]
Avoid potential integer overflow in warp arithmetic

Replace blockDim.x*foo/WARPSIZE with blockDim.x/WARPSIZE*foo
since we know blockDim.x is a multiple of WARPSIZE.  This avoids
overflow of blockDim.x*foo for large foo (blockIdx.x or gridDim.x).
This fix is cautionary as no bug has actually been observed.

Change-Id: I276feb01323d2b677a0456254d026681cd39f56c

9 months agoFix bad CUDA forces with with oversized periodic cell 29/4629/1
Jim Phillips [Fri, 28 Sep 2018 17:14:33 +0000 (12:14 -0500)]
Fix bad CUDA forces with with oversized periodic cell

The newer tile-based streaming nonbonded kernel (useCuda2 yes)
skips copying forces to the host for patches that have no
interacting tile pairs.  This can leave stale or uninitialized
force data on the host that is copied to the patch forces.
Fix is to initialize host force data to zero for such patches.

Symptom is eventual instability in the simulation, although
pressure in a deterministic run diverges after first cycle.
This has only been observed on a large parallel run with many
nearly empty patches due to an oversized periodic cell,
such that a patch could have only atoms that are outside the
tile pairlist distance for any interactions on the same GPU.
Workarounds include +nostreaming flag or useCuda2 no option.

Change-Id: Ie4a26905acf65d74332e2f2779ec1428f763a70a

9 months agoMove #ifdef guards for NAMD_TCL only to context where they are needed 15/4615/1
Giacomo Fiorin [Tue, 25 Sep 2018 16:40:49 +0000 (12:40 -0400)]
Move #ifdef guards for NAMD_TCL only to context where they are needed

Addresses issue reported by Engelbert Tijskens, Flemish Supercomputer Center

Change-Id: Ia90e60befed388527d802fa275e2f3615d95b262

9 months agoProvide basic info (instead of footnote) at top of the Colvars chapter 08/4608/1
Giacomo Fiorin [Sun, 23 Sep 2018 21:30:30 +0000 (17:30 -0400)]
Provide basic info (instead of footnote) at top of the Colvars chapter

Change-Id: I7825160e3948285a14ebb424c7dcb29190a63868

9 months agoRemove diagnostic message from cv command 07/4607/1
Giacomo Fiorin [Sun, 23 Sep 2018 21:27:21 +0000 (17:27 -0400)]
Remove diagnostic message from cv command

Change-Id: Ie23c85be48d0acc3cfc4e8c09745e19cd31eba59

9 months agoAdd hyperref package into user guide 04/4604/1
David [Fri, 21 Sep 2018 21:38:56 +0000 (16:38 -0500)]
Add hyperref package into user guide

Create hyper links in PDF version of user guide.  With the hyperref
package, the \contentsline command needs 5 arguments instead of 3.
Using Giacomo's recommended parameters to hyperref that includes
citations linked in blue and page back references from bibliography.
Changed all URLs to use \url command to link the web pages.

Change-Id: I11062adc051399d0f0deb4f7cb8b936307c2da09

10 months agoDocument solute scaling parameters in user guide 93/4593/2
David Hardy [Thu, 20 Sep 2018 18:54:48 +0000 (13:54 -0500)]
Document solute scaling parameters in user guide

Provide user guide documentation for solute scaling (aka REST2)
configuration parameters.  Change default value for soluteScalingAll
to OFF, so as not to scale bond and angle interactions, as recommended
by the 2011 reference paper.

Change ssFile to soluteScalingFile and ssCol to soluteScalingCol for
consistency.  Update REST2 example scripts in the lib/replica/REST2

Also remove the "\url" command from URLs in the Colvars section, as
its introduction breaks the NAMD documentation build.  Now URLs are
simply set in teletype font, as done elsewhere.

Change-Id: Ie8ce1753b4bf559eed0d4351f22721c54dc23a61

10 months agoFix memopt CUDA pencil PME hang with oversized periodic cell 88/4588/2
Jim Phillips [Mon, 17 Sep 2018 21:12:23 +0000 (16:12 -0500)]
Fix memopt CUDA pencil PME hang with oversized periodic cell

Bugs for pencils with no charge contributions were introduced
with the USE_NODE_PAR_RECEIVE optimization, which uses a nodegroup
to process incoming PME messages on any pe in the process.
This code path was/is only enabled for memopt CUDA builds.

Change-Id: Id55d517dd536cea2a523fedcdfcc6fdbe586eeb9

10 months agoAdd section on changes in Colvars syntax (incl. backward-compatible ones) 84/4584/2
Giacomo Fiorin [Tue, 18 Sep 2018 01:34:48 +0000 (21:34 -0400)]
Add section on changes in Colvars syntax (incl. backward-compatible ones)

This change was already reviewed on GitHub by Joao Ribeiro:

Change-Id: I7edb8e28b6a70193606e10a3474e51cd33615665

10 months agoRevert "Fix Colvars user guide documentation" 85/4585/1
David Hardy [Tue, 18 Sep 2018 04:34:11 +0000 (23:34 -0500)]
Revert "Fix Colvars user guide documentation"

This reverts commit 6d0bb129df5d9a61f19bfd254b126621045a07ba.

The fixes here were resubmitted by the author along with some content changes.

Change-Id: I169728a4c8c9543693b07713f5e0511f19ce25de

10 months agoFix Colvars user guide documentation 81/4581/1
David Hardy [Mon, 17 Sep 2018 22:57:42 +0000 (17:57 -0500)]
Fix Colvars user guide documentation

Modified Colvars section macros in order to resolve Latex references.
Also fixed typos in two references.

Change-Id: Ic67565f5a7e9cb75b6d29f1c8401f43e5700d8b6

10 months agoFix pencil PME hang with oversized periodic cell 73/4573/2
Jim Phillips [Thu, 13 Sep 2018 21:56:49 +0000 (16:56 -0500)]
Fix pencil PME hang with oversized periodic cell

Pencil-decomposed PME has optimizations for pencils that do not
contain charge contributions for any atoms.  When this code was
adapted to use CkLoop this optimization was broken, leading to
hangs in some cases.  Bug is fixed and code is simplified as well.

Change-Id: Idb3482ddfe9287814f7baa897eaa0f4ff71ace90

10 months agoUpdate documentation for RAMD 72/4572/2
David Hardy [Thu, 13 Sep 2018 17:42:07 +0000 (12:42 -0500)]
Update documentation for RAMD

Documentation provided by Stefan Richter.

Removed file.

The example has been removed due to its size.  The plan is to post the
example on NAMD's website.  We will then need to update the User Guide
and the README file accordingly.

Change-Id: Ice8564b8a4555808f2caca7ecdb942827d9140f3

10 months agoState long-term support of old-style walls without deprecating them 70/4570/2
Giacomo Fiorin [Thu, 13 Sep 2018 13:52:13 +0000 (09:52 -0400)]
State long-term support of old-style walls without deprecating them

This change reaffirms the commitment to support old-style keywords as
short-hands for the more flexible harmonicWalls (which is their backend
anyway).  Those keywords are now called "legacy", but not "deprecated".

Using the lower and upper boundaries as default values for the walls is
deprecated explicitly (i.e. "will be removed in the next release").

Because there is no functionality change (only output messages are revised),
the Colvars version string is not being updated.  This will also avoid merge
conflicts with other commits currently pending.

Change-Id: If00bfce90877573896ea0f879fc0ebc74fa31012

10 months agoWarn about near-zero mass atoms in Colvars 58/4558/1
Giacomo Fiorin [Sat, 8 Sep 2018 00:39:43 +0000 (20:39 -0400)]
Warn about near-zero mass atoms in Colvars

Change-Id: Ie686f3950cb94c19926e7ec6aeb8b05f900719f7

10 months agoIssue warning when atom has tiny mass but is part of a COM group 57/4557/2
Giacomo Fiorin [Fri, 7 Sep 2018 16:00:55 +0000 (12:00 -0400)]
Issue warning when atom has tiny mass but is part of a COM group

The current check is for masses <= 0.001, thus catching fixed-up zero
masses and unfixed lone pairs.

Making this into an error may break somebody's calculations, but the
warning should help troubleshooting future problems.

Change-Id: I219e9861c7da3925faa2fd63df52120ac18d730a

10 months agoUpdate grant numbers 56/4556/2 release-2-13-beta-1
David [Fri, 7 Sep 2018 20:58:10 +0000 (15:58 -0500)]
Update grant numbers

Change-Id: I0926404d57de22f10b3064b6229bbc953f2315db

10 months agoUpdate version number in user guide. 55/4555/1
Jim Phillips [Fri, 7 Sep 2018 20:56:12 +0000 (15:56 -0500)]
Update version number in user guide.

Change-Id: I275dcd6ad03f4313517983e50663927dc9809a08

10 months agoUpdate RAMD to version 5.0.4 54/4554/2
David [Fri, 7 Sep 2018 19:29:48 +0000 (14:29 -0500)]
Update RAMD to version 5.0.4

Updated scripts for RAMD to version 5.0.4 that has been tested
successfully with NAMD versions 2.10 and 2.12.  Retained earlier scripts
in directory ramd-4.1.

From the website: t-random acceleration molecular dynamics (tRAMD) is a
protocol for the ranking of drug candidates by their residence time and
obtaining insights into ligand-target dissociation mechanism.

Contributed by Stefan Richter and Rebecca Wade.

Change-Id: If9c0decf899570d0eb04dd04d03c088701f965fc

10 months agoUpdates for 2.13 beta 1 release 46/4546/2
David Hardy [Thu, 6 Sep 2018 20:32:37 +0000 (15:32 -0500)]
Updates for 2.13 beta 1 release

Updated version string, notes, and announcement files.

Change-Id: I2529bb34098444be911117a702c1586f15c32cb9

10 months agoRemove CUDALINKOPTS from Linux-POWER 53/4553/1
Jim Phillips [Fri, 7 Sep 2018 18:57:00 +0000 (13:57 -0500)]

Does nothing because it is a misspelling of CUDADLINKOPTS,
because it is only needed to link cufft_static, and
because it needs CUDAOBJS=$(CUDAOBJSRAWSTATIC) to be active.

Change-Id: Ic85d6cbe52f436c5ce3094f003ae3bcf44cb0614