From 52d245a964a9856fe9d809355ffa5aaf530523eb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 12 Oct 2015 11:29:06 -0400 Subject: [PATCH] update colvars library to version from 2015-09-29 --- doc/PDF/colvars-refman-lammps.pdf | Bin 632477 -> 632614 bytes lib/colvars/colvar.cpp | 82 +++++++++++++++--------------- lib/colvars/colvarmodule.h | 24 ++++----- lib/colvars/colvarscript.cpp | 2 + 4 files changed, 55 insertions(+), 53 deletions(-) diff --git a/doc/PDF/colvars-refman-lammps.pdf b/doc/PDF/colvars-refman-lammps.pdf index c3097de645923304991bc376b96ce983c2b322c0..34593547c70e84664b5e386015e40f5a6ea409a5 100644 GIT binary patch delta 32023 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
_bb+^3)e83-o83{9IOHg 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 delta 31290 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 diff --git a/lib/colvars/colvar.cpp b/lib/colvars/colvar.cpp index bc1c192f2d..c5aa80a4f0 100644 --- a/lib/colvars/colvar.cpp +++ b/lib/colvars/colvar.cpp @@ -727,6 +727,7 @@ int colvar::enable(colvar::task const &t) case task_output_value: case task_runave: case task_corrfunc: + case task_ntot: case task_langevin: case task_output_energy: case task_scripted: @@ -1105,44 +1106,6 @@ cvm::real colvar::update() f += fb; - if (tasks[task_lower_wall] || tasks[task_upper_wall]) { - - // wall force - colvarvalue fw(value()); - fw.reset(); - - if (cvm::debug()) - cvm::log("Calculating wall forces for colvar \""+this->name+"\".\n"); - - // if the two walls are applied concurrently, decide which is the - // closer one (on a periodic colvar, both walls may be applicable - // at the same time) - if ( (!tasks[task_upper_wall]) || - (this->dist2(x_reported, lower_wall) < this->dist2(x_reported, upper_wall)) ) { - - cvm::real const grad = this->dist2_lgrad(x_reported, lower_wall); - if (grad < 0.0) { - fw = -0.5 * lower_wall_k * grad; - if (cvm::debug()) - cvm::log("Applying a lower wall force("+ - cvm::to_str(fw)+") to \""+this->name+"\".\n"); - f += fw; - - } - - } else { - - cvm::real const grad = this->dist2_lgrad(x_reported, upper_wall); - if (grad > 0.0) { - fw = -0.5 * upper_wall_k * grad; - if (cvm::debug()) - cvm::log("Applying an upper wall force("+ - cvm::to_str(fw)+") to \""+this->name+"\".\n"); - f += fw; - } - } - } - if (tasks[task_Jacobian_force]) { size_t i; for (i = 0; i < cvcs.size(); i++) { @@ -1177,10 +1140,11 @@ cvm::real colvar::update() // the total force is applied to the fictitious mass, while the // atoms only feel the harmonic force - // fr: extended coordinate force (without harmonic spring), for output in trajectory + // fr: bias force on extended coordinate (without harmonic spring), for output in trajectory // f_ext: total force on extended coordinate (including harmonic spring) // f: - initially, external biasing force - // - after this code block, colvar force to be applied to atomic coordinates, ie. spring force + // - after this code block, colvar force to be applied to atomic coordinates, ie. spring force + // (note: wall potential is added to f after this block) fr = f; f_ext = f + (-0.5 * ext_force_k) * this->dist2_lgrad(xr, x); f = (-0.5 * ext_force_k) * this->dist2_rgrad(xr, x); @@ -1202,6 +1166,44 @@ cvm::real colvar::update() } + // Adding wall potential to "true" colvar force, whether or not an extended coordinate is in use + if (tasks[task_lower_wall] || tasks[task_upper_wall]) { + + // Wall force + colvarvalue fw(x); + fw.reset(); + + if (cvm::debug()) + cvm::log("Calculating wall forces for colvar \""+this->name+"\".\n"); + + // For a periodic colvar, both walls may be applicable at the same time + // in which case we pick the closer one + if ( (!tasks[task_upper_wall]) || + (this->dist2(x, lower_wall) < this->dist2(x, upper_wall)) ) { + + cvm::real const grad = this->dist2_lgrad(x, lower_wall); + if (grad < 0.0) { + fw = -0.5 * lower_wall_k * grad; + f += fw; + if (cvm::debug()) + cvm::log("Applying a lower wall force("+ + cvm::to_str(fw)+") to \""+this->name+"\".\n"); + } + + } else { + + cvm::real const grad = this->dist2_lgrad(x, upper_wall); + if (grad > 0.0) { + fw = -0.5 * upper_wall_k * grad; + f += fw; + if (cvm::debug()) + cvm::log("Applying an upper wall force("+ + cvm::to_str(fw)+") to \""+this->name+"\".\n"); + } + } + } + + if (tasks[task_fdiff_velocity]) { // set it for the next step x_old = x; diff --git a/lib/colvars/colvarmodule.h b/lib/colvars/colvarmodule.h index d9f6a03d7c..ee6ec3ea35 100644 --- a/lib/colvars/colvarmodule.h +++ b/lib/colvars/colvarmodule.h @@ -4,7 +4,7 @@ #define COLVARMODULE_H #ifndef COLVARS_VERSION -#define COLVARS_VERSION "2015-09-03" +#define COLVARS_VERSION "2015-09-16" #endif #ifndef COLVARS_DEBUG @@ -20,19 +20,17 @@ /// shared between all object instances) to be accessed from other /// objects. -// Internal method return codes -#define COLVARS_NOT_IMPLEMENTED -2 -#define COLVARS_ERROR -1 +// Error codes #define COLVARS_OK 0 - -// On error, values of the colvars module error register -#define GENERAL_ERROR 1 -#define FILE_ERROR (1<<1) -#define MEMORY_ERROR (1<<2) -#define BUG_ERROR (1<<3) // Inconsistent state indicating bug -#define INPUT_ERROR (1<<4) // out of bounds or inconsistent input -#define DELETE_COLVARS (1<<5) // Instruct the caller to delete cvm -#define FATAL_ERROR (1<<6) // Should be set, or not, together with other bits +#define COLVARS_ERROR -1 +#define GENERAL_ERROR -1 // TODO this can be simply merged with COLVARS_ERROR +#define COLVARS_NOT_IMPLEMENTED (-1<<1) +#define INPUT_ERROR (-1<<2) // out of bounds or inconsistent input +#define BUG_ERROR (-1<<3) // Inconsistent state indicating bug +#define FILE_ERROR (-1<<4) +#define MEMORY_ERROR (-1<<5) +#define FATAL_ERROR (-1<<6) // Should be set, or not, together with other bits +#define DELETE_COLVARS (-1<<7) // Instruct the caller to delete cvm #include diff --git a/lib/colvars/colvarscript.cpp b/lib/colvars/colvarscript.cpp index 0c23faf519..4c999eee84 100644 --- a/lib/colvars/colvarscript.cpp +++ b/lib/colvars/colvarscript.cpp @@ -388,6 +388,7 @@ Input and output:\n\ list -- return a list of all variables\n\ list biases -- return a list of all biases\n\ load -- load a state file (requires configuration)\n\ + save -- save a state file (requires configuration)\n\ update -- recalculate colvars and biases based\n\ printframe -- return a summary of the current frame\n\ printframelabels -- return labels to annotate printframe's output\n"; @@ -406,6 +407,7 @@ Accessing collective variables:\n\ colvar delete -- delete colvar \n\ colvar addforce -- apply given force on colvar \n\ colvar getconfig -- return config string of colvar \n\ + colvar cvcflags -- enable or disable cvcs according to 0/1 flags\n\ \n\ Accessing biases:\n\ bias energy -- return the current energy of bias \n\