From 1220bea01129b0f69ddca8de7ef9be6f92772493 Mon Sep 17 00:00:00 2001 From: Giacomo Fiorin Date: Tue, 10 May 2022 11:24:54 -0400 Subject: [PATCH] Update Colvars to version 2022-05-09 This update includes one new feature (neural-network based collective variables), several small enhancements (including an automatic definition of grid boundaries for angle-based CVs, and a normalization option for eigenvector-based CVs), bugfixes and documentation improvements. Usage information for specific features included in the Colvars library (i.e. not just the library as a whole) is now also reported to the screen or LAMMPS logfile (as is done already in other LAMMPS classes). Notable to LAMMPS code development are the removals of duplicated code and of ambiguously-named preprocessor defines in the Colvars headers. Since the last PR, the existing regression tests have also been running automatically via GitHub Actions. The following pull requests in the Colvars repository are relevant to LAMMPS: - 475 Remove fatal error condition https://github.com/Colvars/colvars/pull/475 (@jhenin, @giacomofiorin) - 474 Allow normalizing eigenvector vector components to deal with unit change https://github.com/Colvars/colvars/pull/474 (@giacomofiorin, @jhenin) - 470 Better error handling in the initialization of NeuralNetwork CV https://github.com/Colvars/colvars/pull/470 (@HanatoK) - 468 Add examples of histogram configuration, with and without explicit grid parameters https://github.com/Colvars/colvars/pull/468 (@giacomofiorin) - 464 Fix #463 using more fine-grained features https://github.com/Colvars/colvars/pull/464 (@jhenin, @giacomofiorin) - 447 [RFC] New option "scaledBiasingForce" for colvarbias https://github.com/Colvars/colvars/pull/447 (@HanatoK, @jhenin) - 444 [RFC] Implementation of dense neural network as CV https://github.com/Colvars/colvars/pull/444 (@HanatoK, @giacomofiorin, @jhenin) - 443 Fix explicit gradient dependency of sub-CVs https://github.com/Colvars/colvars/pull/443 (@HanatoK, @jhenin) - 442 Persistent bias count https://github.com/Colvars/colvars/pull/442 (@jhenin, @giacomofiorin) - 437 Return type of bias from scripting interface https://github.com/Colvars/colvars/pull/437 (@giacomofiorin) - 434 More flexible use of boundaries from colvars by grids https://github.com/Colvars/colvars/pull/434 (@jhenin) - 433 Prevent double-free in linearCombination https://github.com/Colvars/colvars/pull/433 (@HanatoK) - 428 More complete documentation for index file format (NDX) https://github.com/Colvars/colvars/pull/428 (@giacomofiorin) - 426 Integrate functional version of backup_file() into base proxy class https://github.com/Colvars/colvars/pull/426 (@giacomofiorin) - 424 Track CVC inheritance when documenting feature usage https://github.com/Colvars/colvars/pull/424 (@giacomofiorin) - 419 Generate citation report while running computations https://github.com/Colvars/colvars/pull/419 (@giacomofiorin, @jhenin) - 415 Rebin metadynamics bias from explicit hills when available https://github.com/Colvars/colvars/pull/415 (@giacomofiorin) - 312 Ignore a keyword if it has content to the left of it (regardless of braces) https://github.com/Colvars/colvars/pull/312 (@giacomofiorin) Authors: @giacomofiorin, @HanatoK, @jhenin --- doc/src/PDF/colvars-refman-lammps.pdf | Bin 1357444 -> 1490159 bytes lib/colvars/Makefile.common | 6 +- lib/colvars/Makefile.deps | 71 ++- lib/colvars/colvar.cpp | 515 ++++++++-------- lib/colvars/colvar.h | 18 +- lib/colvars/colvar_UIestimator.h | 16 +- lib/colvars/colvar_neuralnetworkcompute.cpp | 298 ++++++++++ lib/colvars/colvar_neuralnetworkcompute.h | 140 +++++ lib/colvars/colvaratoms.cpp | 103 ++-- lib/colvars/colvaratoms.h | 3 + lib/colvars/colvarbias.cpp | 125 ++-- lib/colvars/colvarbias.h | 7 +- lib/colvars/colvarbias_abf.cpp | 60 +- lib/colvars/colvarbias_alb.cpp | 27 +- lib/colvars/colvarbias_histogram.cpp | 21 +- .../colvarbias_histogram_reweight_amd.cpp | 393 +++++++++++++ .../colvarbias_histogram_reweight_amd.h | 104 ++++ lib/colvars/colvarbias_meta.cpp | 121 ++-- lib/colvars/colvarbias_meta.h | 3 + lib/colvars/colvarbias_restraint.cpp | 60 +- lib/colvars/colvarbias_restraint.h | 8 + lib/colvars/colvarcomp.cpp | 61 +- lib/colvars/colvarcomp.h | 97 ++- lib/colvars/colvarcomp_alchlambda.cpp | 62 +- lib/colvars/colvarcomp_angles.cpp | 53 +- lib/colvars/colvarcomp_apath.cpp | 22 +- lib/colvars/colvarcomp_combination.cpp | 323 ++++++++++ lib/colvars/colvarcomp_coordnums.cpp | 48 +- lib/colvars/colvarcomp_distances.cpp | 79 +-- lib/colvars/colvarcomp_gpath.cpp | 209 ++----- lib/colvars/colvarcomp_neuralnetwork.cpp | 188 ++++++ lib/colvars/colvarcomp_protein.cpp | 18 +- lib/colvars/colvarcomp_rotations.cpp | 73 +-- lib/colvars/colvarcomp_volmaps.cpp | 16 +- lib/colvars/colvardeps.cpp | 30 +- lib/colvars/colvardeps.h | 16 +- lib/colvars/colvargrid.cpp | 5 +- lib/colvars/colvargrid.h | 71 ++- lib/colvars/colvarmodule.cpp | 279 +++++++-- lib/colvars/colvarmodule.h | 42 +- lib/colvars/colvarmodule_refs.h | 555 ++++++++++++++++++ lib/colvars/colvarparams.cpp | 10 +- lib/colvars/colvarparse.cpp | 68 ++- lib/colvars/colvarparse.h | 12 +- lib/colvars/colvarproxy.cpp | 189 +++++- lib/colvars/colvarproxy.h | 51 +- lib/colvars/colvarproxy_tcl.cpp | 112 +++- lib/colvars/colvarproxy_tcl.h | 37 +- lib/colvars/colvarproxy_volmaps.cpp | 6 +- lib/colvars/colvars_version.h | 2 +- lib/colvars/colvarscript.cpp | 60 +- lib/colvars/colvarscript.h | 6 +- lib/colvars/colvarscript_commands.cpp | 5 + lib/colvars/colvarscript_commands.h | 33 +- lib/colvars/colvarscript_commands_bias.cpp | 4 + lib/colvars/colvarscript_commands_bias.h | 11 +- lib/colvars/colvarscript_commands_colvar.cpp | 4 + lib/colvars/colvarscript_commands_colvar.h | 16 + lib/colvars/colvartypes.cpp | 16 +- lib/colvars/colvartypes.h | 8 +- lib/colvars/colvarvalue.cpp | 155 +++-- lib/colvars/colvarvalue.h | 26 +- src/COLVARS/colvarproxy_lammps.cpp | 55 +- src/COLVARS/colvarproxy_lammps.h | 5 +- src/COLVARS/colvarproxy_lammps_version.h | 2 +- src/COLVARS/fix_colvars.cpp | 22 +- 66 files changed, 4040 insertions(+), 1221 deletions(-) create mode 100644 lib/colvars/colvar_neuralnetworkcompute.cpp create mode 100644 lib/colvars/colvar_neuralnetworkcompute.h create mode 100644 lib/colvars/colvarbias_histogram_reweight_amd.cpp create mode 100644 lib/colvars/colvarbias_histogram_reweight_amd.h create mode 100644 lib/colvars/colvarcomp_combination.cpp create mode 100644 lib/colvars/colvarcomp_neuralnetwork.cpp create mode 100644 lib/colvars/colvarmodule_refs.h diff --git a/doc/src/PDF/colvars-refman-lammps.pdf b/doc/src/PDF/colvars-refman-lammps.pdf index 011b3d0f04f067b65f7b0d08f32c51a06686c0a6..71eaee867a76a108e0a8f58333d6a2ecfb513e8d 100644 GIT binary patch delta 527692 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

p#E33!_?KJtk-Cd5=ZkJ{z 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

P6`{3cw_{m7;vFEDUQP&v*BNFi=OjfE=MJr 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 z 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

>e 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⪻jyl$#ZZ1nUCgbJN6}s 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 ?21X)XxwV!MVEu^jrkHTYU5>>xtNrK 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%0ADtQ?rRfqHBw2Z*G<9 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

j1gAgedUWOn%j~`T0u$Qytg8 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⋘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ⅇkdKvifm}XV;ha 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

!u#@=%1k1;kL$pX&ej0;d!>Q0snxP-RHv1{| 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 ke_QA@vqN_GFm?0rakI2S=H%w(>>A^-pY diff --git a/lib/colvars/Makefile.common b/lib/colvars/Makefile.common index 5743507507..a920c24958 100644 --- a/lib/colvars/Makefile.common +++ b/lib/colvars/Makefile.common @@ -28,6 +28,7 @@ COLVARS_SRCS = \ colvarbias_alb.cpp \ colvarbias.cpp \ colvarbias_histogram.cpp \ + colvarbias_histogram_reweight_amd.cpp \ colvarbias_meta.cpp \ colvarbias_restraint.cpp \ colvarcomp_alchlambda.cpp \ @@ -37,6 +38,8 @@ COLVARS_SRCS = \ colvarcomp.cpp \ colvarcomp_distances.cpp \ colvarcomp_gpath.cpp \ + colvarcomp_neuralnetwork.cpp \ + colvarcomp_combination.cpp \ colvarcomp_protein.cpp \ colvarcomp_rotations.cpp \ colvarcomp_volmaps.cpp \ @@ -55,7 +58,8 @@ COLVARS_SRCS = \ colvarscript_commands_bias.cpp \ colvarscript_commands_colvar.cpp \ colvartypes.cpp \ - colvarvalue.cpp + colvarvalue.cpp \ + colvar_neuralnetworkcompute.cpp LEPTON_SRCS = \ lepton/src/CompiledExpression.cpp lepton/src/ExpressionTreeNode.cpp \ diff --git a/lib/colvars/Makefile.deps b/lib/colvars/Makefile.deps index cdf948a471..d26df41995 100644 --- a/lib/colvars/Makefile.deps +++ b/lib/colvars/Makefile.deps @@ -58,6 +58,21 @@ $(COLVARS_OBJ_DIR)colvarbias_histogram.o: colvarbias_histogram.cpp \ lepton/include/lepton/Exception.h \ lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \ colvarbias_histogram.h colvarbias.h colvargrid.h +$(COLVARS_OBJ_DIR)colvarbias_histogram_reweight_amd.o: \ + colvarbias_histogram_reweight_amd.cpp \ + colvarbias_histogram_reweight_amd.h colvarbias_histogram.h colvarbias.h \ + colvar.h colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \ + colvarparse.h colvarparams.h colvardeps.h lepton/include/Lepton.h \ + lepton/include/lepton/CompiledExpression.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/windowsIncludes.h \ + lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/ExpressionProgram.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/Operation.h lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/Exception.h \ + lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \ + colvargrid.h colvarproxy.h colvarproxy_tcl.h colvarproxy_volmaps.h $(COLVARS_OBJ_DIR)colvarbias_meta.o: colvarbias_meta.cpp colvarmodule.h \ colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \ colvarproxy_tcl.h colvarproxy_volmaps.h colvar.h colvarparse.h \ @@ -87,9 +102,9 @@ $(COLVARS_OBJ_DIR)colvarbias_restraint.o: colvarbias_restraint.cpp \ lepton/include/lepton/Exception.h \ lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h $(COLVARS_OBJ_DIR)colvarcomp_alchlambda.o: colvarcomp_alchlambda.cpp \ - colvarmodule.h colvars_version.h colvar.h colvarvalue.h colvartypes.h \ - colvarparse.h colvarparams.h colvardeps.h lepton/include/Lepton.h \ - lepton/include/lepton/CompiledExpression.h \ + colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \ + colvarparse.h colvarparams.h colvar.h colvardeps.h \ + lepton/include/Lepton.h lepton/include/lepton/CompiledExpression.h \ lepton/include/lepton/ExpressionTreeNode.h \ lepton/include/lepton/windowsIncludes.h \ lepton/include/lepton/CustomFunction.h \ @@ -184,6 +199,36 @@ $(COLVARS_OBJ_DIR)colvarcomp_gpath.o: colvarcomp_gpath.cpp colvarmodule.h \ lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \ colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_tcl.h \ colvarproxy_volmaps.h colvar_arithmeticpath.h colvar_geometricpath.h +$(COLVARS_OBJ_DIR)colvarcomp_neuralnetwork.o: \ + colvarcomp_neuralnetwork.cpp colvarmodule.h colvars_version.h \ + colvarvalue.h colvartypes.h colvarparse.h colvarparams.h colvar.h \ + colvardeps.h lepton/include/Lepton.h \ + lepton/include/lepton/CompiledExpression.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/windowsIncludes.h \ + lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/ExpressionProgram.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/Operation.h lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/Exception.h \ + lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \ + colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_tcl.h \ + colvarproxy_volmaps.h colvar_arithmeticpath.h colvar_geometricpath.h \ + colvar_neuralnetworkcompute.h +$(COLVARS_OBJ_DIR)colvarcomp_combination.o: colvarcomp_combination.cpp \ + colvarcomp.h colvarmodule.h colvars_version.h colvar.h colvarvalue.h \ + colvartypes.h colvarparse.h colvarparams.h colvardeps.h \ + lepton/include/Lepton.h lepton/include/lepton/CompiledExpression.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/windowsIncludes.h \ + lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/ExpressionProgram.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/Operation.h lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/Exception.h \ + lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \ + colvaratoms.h colvarproxy.h colvarproxy_tcl.h colvarproxy_volmaps.h \ + colvar_arithmeticpath.h colvar_geometricpath.h $(COLVARS_OBJ_DIR)colvarcomp_protein.o: colvarcomp_protein.cpp \ colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \ colvarparse.h colvarparams.h colvar.h colvardeps.h \ @@ -275,11 +320,12 @@ $(COLVARS_OBJ_DIR)colvarmodule.o: colvarmodule.cpp colvarmodule.h \ lepton/include/lepton/Exception.h \ lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \ colvarbias.h colvarbias_abf.h colvargrid.h colvar_UIestimator.h \ - colvarbias_alb.h colvarbias_histogram.h colvarbias_meta.h \ + colvarbias_alb.h colvarbias_histogram.h \ + colvarbias_histogram_reweight_amd.h colvarbias_meta.h \ colvarbias_restraint.h colvarscript.h colvarscript_commands.h \ colvarscript_commands_colvar.h colvarscript_commands_bias.h \ colvaratoms.h colvarcomp.h colvar_arithmeticpath.h \ - colvar_geometricpath.h + colvar_geometricpath.h colvarmodule_refs.h $(COLVARS_OBJ_DIR)colvarparams.o: colvarparams.cpp colvarmodule.h \ colvars_version.h colvarvalue.h colvartypes.h colvarparams.h $(COLVARS_OBJ_DIR)colvarparse.o: colvarparse.cpp colvarmodule.h \ @@ -374,6 +420,19 @@ $(COLVARS_OBJ_DIR)colvarscript_commands_colvar.o: \ colvarscript_commands_bias.h $(COLVARS_OBJ_DIR)colvartypes.o: colvartypes.cpp colvarmodule.h \ colvars_version.h colvartypes.h colvarparse.h colvarvalue.h \ - colvarparams.h ../../src/math_eigen.h + colvarparams.h ../../src/math_eigen_impl.h $(COLVARS_OBJ_DIR)colvarvalue.o: colvarvalue.cpp colvarmodule.h \ colvars_version.h colvarvalue.h colvartypes.h +$(COLVARS_OBJ_DIR)colvar_neuralnetworkcompute.o: \ + colvar_neuralnetworkcompute.cpp colvar_neuralnetworkcompute.h \ + lepton/include/Lepton.h lepton/include/lepton/CompiledExpression.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/windowsIncludes.h \ + lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/ExpressionProgram.h \ + lepton/include/lepton/ExpressionTreeNode.h \ + lepton/include/lepton/Operation.h lepton/include/lepton/CustomFunction.h \ + lepton/include/lepton/Exception.h \ + lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \ + colvarparse.h colvarmodule.h colvars_version.h colvarvalue.h \ + colvartypes.h colvarparams.h diff --git a/lib/colvars/colvar.cpp b/lib/colvars/colvar.cpp index 54e11aaa75..85b8443d72 100644 --- a/lib/colvars/colvar.cpp +++ b/lib/colvars/colvar.cpp @@ -38,24 +38,22 @@ colvar::colvar() expand_boundaries = false; description = "uninitialized colvar"; - init_dependencies(); + colvar::init_dependencies(); } -namespace { - /// Compare two cvcs using their names - /// Used to sort CVC array in scripted coordinates - bool compare(colvar::cvc *i, colvar::cvc *j) - { - return i->name < j->name; - } +/// Compare two cvcs using their names +/// Used to sort CVC array in scripted coordinates +bool colvar::compare_cvc(const colvar::cvc* const i, const colvar::cvc* const j) +{ + return i->name < j->name; } int colvar::init(std::string const &conf) { cvm::log("Initializing a new collective variable.\n"); - colvarparse::init(conf); + colvarparse::set_string(conf); int error_code = COLVARS_OK; @@ -68,8 +66,8 @@ int colvar::init(std::string const &conf) (cvm::colvar_by_name(this->name) != this)) { cvm::error("Error: this colvar cannot have the same name, \""+this->name+ "\", as another colvar.\n", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } // Initialize dependency members @@ -97,6 +95,7 @@ int colvar::init(std::string const &conf) enable(f_cv_scripted); cvm::log("This colvar uses scripted function \"" + scripted_function + "\".\n"); + cvm::main()->cite_feature("Scripted functions (Tcl)"); std::string type_str; get_keyval(conf, "scriptedFunctionType", type_str, "scalar"); @@ -110,8 +109,8 @@ int colvar::init(std::string const &conf) } } if (x.type() == colvarvalue::type_notset) { - cvm::error("Could not parse scripted colvar type.", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Could not parse scripted colvar type.", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } cvm::log(std::string("Expecting colvar value of type ") @@ -121,8 +120,8 @@ int colvar::init(std::string const &conf) int size; if (!get_keyval(conf, "scriptedFunctionVectorSize", size)) { cvm::error("Error: no size specified for vector scripted function.", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } x.vector1d_value.resize(size); } @@ -131,7 +130,7 @@ int colvar::init(std::string const &conf) // Sort array of cvcs based on their names // Note: default CVC names are in input order for same type of CVC - std::sort(cvcs.begin(), cvcs.end(), compare); + std::sort(cvcs.begin(), cvcs.end(), colvar::compare_cvc); if(cvcs.size() > 1) { cvm::log("Sorted list of components for this scripted colvar:\n"); @@ -257,8 +256,8 @@ int colvar::init(std::string const &conf) cvm::error("ERROR: you are defining this collective variable " "by using components of different types. " "You must use the same type in order to " - "sum them together.\n", INPUT_ERROR); - return INPUT_ERROR; + "sum them together.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } @@ -295,14 +294,14 @@ int colvar::init(std::string const &conf) // TODO use here information from the CVCs' own natural boundaries error_code |= init_grid_parameters(conf); - error_code |= init_extended_Lagrangian(conf); - error_code |= init_output_flags(conf); - - // Detect if we have one component that is an alchemical lambda - if (is_enabled(f_cv_single_cvc) && cvcs[0]->function_type == "alch_lambda") { + // Detect if we have a single component that is an alchemical lambda + if (is_enabled(f_cv_single_cvc) && cvcs[0]->function_type == "alchLambda") { enable(f_cv_external); } + error_code |= init_extended_Lagrangian(conf); + error_code |= init_output_flags(conf); + // Now that the children are defined we can solve dependencies enable(f_cv_active); @@ -328,6 +327,8 @@ int colvar::init_custom_function(std::string const &conf) return COLVARS_OK; } + cvm::main()->cite_feature("Custom functions (Lepton)"); + enable(f_cv_custom_function); cvm::log("This colvar uses a custom function.\n"); @@ -340,8 +341,8 @@ int colvar::init_custom_function(std::string const &conf) pexprs.push_back(pexpr); } catch (...) { - cvm::error("Error parsing expression \"" + expr + "\".\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error parsing expression \"" + expr + "\".\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } try { @@ -367,8 +368,8 @@ int colvar::init_custom_function(std::string const &conf) } } catch (...) { - cvm::error("Error compiling expression \"" + expr + "\".\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error compiling expression \"" + expr + "\".\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } while (key_lookup(conf, "customFunction", &expr_in, &pos)); @@ -395,7 +396,9 @@ int colvar::init_custom_function(std::string const &conf) catch (...) { // Variable is absent from derivative // To keep the same workflow, we use a pointer to a double here // that will receive CVC values - even though none was allocated by Lepton - cvm::log("Warning: Variable " + vvn + " is absent from derivative of \"" + expr + "\" wrt " + vn + ".\n"); + if (cvm::debug()) { + cvm::log("Warning: Variable " + vvn + " is absent from derivative of \"" + expr + "\" wrt " + vn + ".\n"); + } ref = &dev_null; } grad_eval_var_refs.push_back(ref); @@ -407,8 +410,8 @@ int colvar::init_custom_function(std::string const &conf) if (value_evaluators.size() == 0) { - cvm::error("Error: no custom function defined.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: no custom function defined.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } std::string type_str; @@ -423,8 +426,8 @@ int colvar::init_custom_function(std::string const &conf) } } if (x.type() == colvarvalue::type_notset) { - cvm::error("Could not parse custom colvar type.", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Could not parse custom colvar type.", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } // Guess type based on number of expressions @@ -450,7 +453,7 @@ int colvar::init_custom_function(std::string const &conf) cvm::error("Error: based on custom function type, expected " + cvm::to_str(x.size()) + " scalar expressions, but " + cvm::to_str(value_evaluators.size()) + " were found.\n"); - return INPUT_ERROR; + return COLVARS_INPUT_ERROR; } return COLVARS_OK; @@ -501,12 +504,14 @@ int colvar::init_grid_parameters(std::string const &conf) get_keyval(conf, "width", width, default_width); if (width <= 0.0) { - cvm::error("Error: \"width\" must be positive.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: \"width\" must be positive.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } lower_boundary.type(value()); upper_boundary.type(value()); + lower_boundary.real_value = 0.0; + upper_boundary.real_value = width; // Default to 1-wide grids if (is_enabled(f_cv_scalar)) { @@ -549,7 +554,7 @@ int colvar::init_grid_parameters(std::string const &conf) "consider using a harmonicWalls restraint (caution: force constant would then be scaled by width^2).\n"); if (!get_keyval(conf, "lowerWall", lower_wall)) { error_code |= cvm::error("Error: the value of lowerWall must be set " - "explicitly.\n", INPUT_ERROR); + "explicitly.\n", COLVARS_INPUT_ERROR); } lw_conf = std::string("\n\ lowerWallConstant "+cvm::to_str(lower_wall_k*width*width)+"\n\ @@ -562,7 +567,7 @@ int colvar::init_grid_parameters(std::string const &conf) "consider using a harmonicWalls restraint (caution: force constant would then be scaled by width^2).\n"); if (!get_keyval(conf, "upperWall", upper_wall)) { error_code |= cvm::error("Error: the value of upperWall must be set " - "explicitly.\n", INPUT_ERROR); + "explicitly.\n", COLVARS_INPUT_ERROR); } uw_conf = std::string("\n\ upperWallConstant "+cvm::to_str(upper_wall_k*width*width)+"\n\ @@ -575,7 +580,7 @@ int colvar::init_grid_parameters(std::string const &conf) cvm::to_str(upper_wall)+ ", is not higher than the lower wall, "+ cvm::to_str(lower_wall)+".\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } } @@ -604,7 +609,7 @@ harmonicWalls {\n\ cvm::to_str(upper_boundary)+ ", is not higher than the lower boundary, "+ cvm::to_str(lower_boundary)+".\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } } @@ -612,7 +617,7 @@ harmonicWalls {\n\ if (expand_boundaries && periodic_boundaries()) { error_code |= cvm::error("Error: trying to expand boundaries that already " "cover a whole period of a periodic colvar.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (expand_boundaries && is_enabled(f_cv_hard_lower_boundary) && @@ -620,7 +625,7 @@ harmonicWalls {\n\ error_code |= cvm::error("Error: inconsistent configuration " "(trying to expand boundaries, but both " "hardLowerBoundary and hardUpperBoundary " - "are enabled).\n", INPUT_ERROR); + "are enabled).\n", COLVARS_INPUT_ERROR); } return error_code; @@ -641,33 +646,40 @@ int colvar::init_extended_Lagrangian(std::string const &conf) x_ext.type(colvarvalue::type_notset); v_ext.type(value()); fr.type(value()); - const bool found = get_keyval(conf, "extendedTemp", temp, cvm::temperature()); - if (temp <= 0.0) { - if (found) - cvm::error("Error: \"extendedTemp\" must be positive.\n", INPUT_ERROR); - else - cvm::error("Error: a positive temperature must be provided, either " - "by enabling a thermostat, or through \"extendedTemp\".\n", - INPUT_ERROR); - return INPUT_ERROR; - } + const bool temp_provided = get_keyval(conf, "extendedTemp", temp, cvm::temperature()); + if (is_enabled(f_cv_external)) { + // In the case of an "external" coordinate, there is no coupling potential: + // only the fictitious mass is meaningful + get_keyval(conf, "extendedMass", ext_mass); + // Ensure that the computed restraint energy term is zero + ext_force_k = 0.0; + } else { + // Standard case of coupling to a geometric colvar + if (temp <= 0.0) { // Then a finite temperature is required + if (temp_provided) + cvm::error("Error: \"extendedTemp\" must be positive.\n", COLVARS_INPUT_ERROR); + else + cvm::error("Error: a positive temperature must be provided, either " + "by enabling a thermostat, or through \"extendedTemp\".\n", + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; + } + get_keyval(conf, "extendedFluctuation", tolerance); + if (tolerance <= 0.0) { + cvm::error("Error: \"extendedFluctuation\" must be positive.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; + } + ext_force_k = cvm::boltzmann() * temp / (tolerance * tolerance); + cvm::log("Computed extended system force constant: " + cvm::to_str(ext_force_k) + " [E]/U^2\n"); - get_keyval(conf, "extendedFluctuation", tolerance); - if (tolerance <= 0.0) { - cvm::error("Error: \"extendedFluctuation\" must be positive.\n", INPUT_ERROR); - return INPUT_ERROR; + get_keyval(conf, "extendedTimeConstant", extended_period, 200.0); + if (extended_period <= 0.0) { + cvm::error("Error: \"extendedTimeConstant\" must be positive.\n", COLVARS_INPUT_ERROR); + } + ext_mass = (cvm::boltzmann() * temp * extended_period * extended_period) + / (4.0 * PI * PI * tolerance * tolerance); + cvm::log("Computed fictitious mass: " + cvm::to_str(ext_mass) + " [E]/(U/fs)^2 (U: colvar unit)\n"); } - ext_force_k = cvm::boltzmann() * temp / (tolerance * tolerance); - cvm::log("Computed extended system force constant: " + cvm::to_str(ext_force_k) + " [E]/U^2\n"); - - get_keyval(conf, "extendedTimeConstant", extended_period, 200.0); - if (extended_period <= 0.0) { - cvm::error("Error: \"extendedTimeConstant\" must be positive.\n", INPUT_ERROR); - } - ext_mass = (cvm::boltzmann() * temp * extended_period * extended_period) - / (4.0 * PI * PI * tolerance * tolerance); - cvm::log("Computed fictitious mass: " + cvm::to_str(ext_mass) + " [E]/(U/fs)^2 (U: colvar unit)\n"); - { bool b_output_energy; get_keyval(conf, "outputEnergy", b_output_energy, false); @@ -678,8 +690,8 @@ int colvar::init_extended_Lagrangian(std::string const &conf) get_keyval(conf, "extendedLangevinDamping", ext_gamma, 1.0); if (ext_gamma < 0.0) { - cvm::error("Error: \"extendedLangevinDamping\" may not be negative.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: \"extendedLangevinDamping\" may not be negative.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } if (ext_gamma != 0.0) { enable(f_cv_Langevin); @@ -718,8 +730,8 @@ int colvar::init_output_flags(std::string const &conf) bool temp; if (get_keyval(conf, "outputSystemForce", temp, false, colvarparse::parse_silent)) { cvm::error("Option outputSystemForce is deprecated: only outputTotalForce is supported instead.\n" - "The two are NOT identical: see https://colvars.github.io/totalforce.html.\n", INPUT_ERROR); - return INPUT_ERROR; + "The two are NOT identical: see https://colvars.github.io/totalforce.html.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } @@ -730,14 +742,23 @@ int colvar::init_output_flags(std::string const &conf) return COLVARS_OK; } -// read the configuration and set up corresponding instances, for -// each type of component implemented -template int colvar::init_components_type(std::string const &conf, - char const * /* def_desc */, - char const *def_config_key) -{ #if (__cplusplus >= 201103L) +// C++11 +template int colvar::init_components_type(std::string const &, + char const * /* def_desc */, + char const *def_config_key) { + // global_cvc_map is only supported in the C++11 case global_cvc_map[def_config_key] = [](const std::string& cvc_conf){return new def_class_name(cvc_conf);}; + // TODO: maybe it is better to do more check to avoid duplication in the map? + return COLVARS_OK; +} + +int colvar::init_components_type_from_global_map(const std::string& conf, + const char* def_config_key) { +#else +template int colvar::init_components_type(std::string const & conf, + char const * /* def_desc */, + char const *def_config_key) { #endif size_t def_count = 0; std::string def_conf = ""; @@ -752,39 +773,41 @@ template int colvar::init_components_type(std::string c (cvm::debug() ? ", with configuration:\n"+def_conf : ".\n")); cvm::increase_depth(); + // only the following line is different from init_components_type + // in the non-C++11 case +#if (__cplusplus >= 201103L) + cvc *cvcp = global_cvc_map.at(def_config_key)(def_conf); +#else cvc *cvcp = new def_class_name(def_conf); +#endif if (cvcp != NULL) { cvcs.push_back(cvcp); cvcp->check_keywords(def_conf, def_config_key); - cvcp->config_key = def_config_key; + cvcp->set_function_type(def_config_key); if (cvm::get_error()) { cvm::error("Error: in setting up component \""+ - std::string(def_config_key)+"\".\n", INPUT_ERROR); - return INPUT_ERROR; + std::string(def_config_key)+"\".\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } cvm::decrease_depth(); } else { + cvm::decrease_depth(); cvm::error("Error: in allocating component \""+ std::string(def_config_key)+"\".\n", - MEMORY_ERROR); - return MEMORY_ERROR; + COLVARS_MEMORY_ERROR); + return COLVARS_MEMORY_ERROR; } if ( (cvcp->period != 0.0) || (cvcp->wrap_center != 0.0) ) { - if ( (cvcp->function_type != std::string("distance_z")) && - (cvcp->function_type != std::string("dihedral")) && - (cvcp->function_type != std::string("polar_phi")) && - (cvcp->function_type != std::string("spin_angle")) && - (cvcp->function_type != std::string("euler_phi")) && - (cvcp->function_type != std::string("euler_psi"))) { + if (! cvcp->is_enabled(f_cvc_periodic)) { cvm::error("Error: invalid use of period and/or " "wrapAround in a \""+ std::string(def_config_key)+ "\" component.\n"+ "Period: "+cvm::to_str(cvcp->period) + " wrapAround: "+cvm::to_str(cvcp->wrap_center), - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } @@ -814,12 +837,14 @@ template int colvar::init_components_type(std::string c return COLVARS_OK; } - int colvar::init_components(std::string const &conf) { int error_code = COLVARS_OK; size_t i = 0, j = 0; + // in the non-C++11 case, the components are initialized directly by init_components_type; + // in the C++11 case, the components are stored in the global_cvc_map at first + // by init_components_type, and then the map is iterated to initialize all components. error_code |= init_components_type(conf, "distance", "distance"); error_code |= init_components_type(conf, "distance vector", "distanceVec"); error_code |= init_components_type(conf, "Cartesian coordinates", "cartesian"); @@ -867,6 +892,7 @@ int colvar::init_components(std::string const &conf) error_code |= init_components_type(conf, "moment of inertia around an axis", "inertiaZ"); error_code |= init_components_type(conf, "eigenvector", "eigenvector"); error_code |= init_components_type(conf, "alchemical coupling parameter", "alchLambda"); + error_code |= init_components_type(conf, "force on alchemical coupling parameter", "alchFLambda"); error_code |= init_components_type(conf, "geometrical path collective variables (s)", "gspath"); error_code |= init_components_type(conf, "geometrical path collective variables (z)", "gzpath"); error_code |= init_components_type(conf, "linear combination of other collective variables", "linearCombination"); @@ -877,14 +903,29 @@ int colvar::init_components(std::string const &conf) error_code |= init_components_type(conf, "euler phi angle of the optimal orientation", "eulerPhi"); error_code |= init_components_type(conf, "euler psi angle of the optimal orientation", "eulerPsi"); error_code |= init_components_type(conf, "euler theta angle of the optimal orientation", "eulerTheta"); +#ifdef LEPTON + error_code |= init_components_type(conf, "CV with support of the lepton custom function", "customColvar"); +#endif + error_code |= init_components_type(conf, "neural network CV for other CVs", "NeuralNetwork"); error_code |= init_components_type(conf, "total value of atomic map", "mapTotal"); - +#if (__cplusplus >= 201103L) + // iterate over all available CVC in the map + for (auto it = global_cvc_map.begin(); it != global_cvc_map.end(); ++it) { + error_code |= init_components_type_from_global_map(conf, it->first.c_str()); + // TODO: is it better to check the error code here? + if (error_code != COLVARS_OK) { + cvm::log("Failed to initialize " + it->first + " with the following configuration:\n"); + cvm::log(conf); + // TODO: should it stop here? + } + } +#endif if (!cvcs.size() || (error_code != COLVARS_OK)) { cvm::error("Error: no valid components were provided " "for this collective variable.\n", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } // Check for uniqueness of CVC names (esp. if user-provided) @@ -892,8 +933,8 @@ int colvar::init_components(std::string const &conf) for (j = i+1; j < cvcs.size(); j++) { if (cvcs[i]->name == cvcs[j]->name) { cvm::error("Components " + cvm::to_str(i) + " and " + cvm::to_str(j) +\ - " cannot have the same name \"" + cvcs[i]->name+ "\".\n", INPUT_ERROR); - return INPUT_ERROR; + " cannot have the same name \"" + cvcs[i]->name+ "\".\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } } @@ -917,7 +958,9 @@ void colvar::do_feature_side_effects(int id) case f_cv_total_force_calc: cvm::request_total_force(); break; - case f_cv_collect_gradient: + case f_cv_collect_atom_ids: + // Needed for getting gradients vias collect_gradients + // or via atomic forces e.g. in Colvars Dashboard in VMD if (atom_ids.size() == 0) { build_atom_list(); } @@ -983,7 +1026,7 @@ int colvar::parse_analysis(std::string const &conf) get_keyval(conf, "runAveStride", runave_stride, 1); if ((cvm::restart_out_freq % runave_stride) != 0) { - cvm::error("Error: runAveStride must be commensurate with the restart frequency.\n", INPUT_ERROR); + cvm::error("Error: runAveStride must be commensurate with the restart frequency.\n", COLVARS_INPUT_ERROR); } get_keyval(conf, "runAveOutputFile", runave_outfile, runave_outfile); @@ -1013,7 +1056,7 @@ int colvar::parse_analysis(std::string const &conf) colvar *cv2 = cvm::colvar_by_name(acf_colvar_name); if (cv2 == NULL) { return cvm::error("Error: collective variable \""+acf_colvar_name+ - "\" is not defined at this time.\n", INPUT_ERROR); + "\" is not defined at this time.\n", COLVARS_INPUT_ERROR); } cv2->enable(f_cv_fdiff_velocity); // Manual dependency to object of same type } else if (acf_type_str == to_lower_cppstr(std::string("coordinate_p2"))) { @@ -1021,7 +1064,7 @@ int colvar::parse_analysis(std::string const &conf) } else { cvm::log("Unknown type of correlation function, \""+ acf_type_str+"\".\n"); - cvm::set_error_bits(INPUT_ERROR); + cvm::set_error_bits(COLVARS_INPUT_ERROR); } get_keyval(conf, "corrFuncOffset", acf_offset, 0); @@ -1029,7 +1072,7 @@ int colvar::parse_analysis(std::string const &conf) get_keyval(conf, "corrFuncStride", acf_stride, 1); if ((cvm::restart_out_freq % acf_stride) != 0) { - cvm::error("Error: corrFuncStride must be commensurate with the restart frequency.\n", INPUT_ERROR); + cvm::error("Error: corrFuncStride must be commensurate with the restart frequency.\n", COLVARS_INPUT_ERROR); } get_keyval(conf, "corrFuncNormalize", acf_normalize, true); @@ -1060,10 +1103,15 @@ int colvar::init_dependencies() { init_feature(f_cv_collect_gradient, "collect_gradient", f_type_dynamic); require_feature_self(f_cv_collect_gradient, f_cv_gradient); require_feature_self(f_cv_collect_gradient, f_cv_scalar); - // The following exlusion could be lifted by implementing the feature + require_feature_self(f_cv_collect_gradient, f_cv_collect_atom_ids); + // The following exclusions could be lifted by implementing the feature exclude_feature_self(f_cv_collect_gradient, f_cv_scripted); + exclude_feature_self(f_cv_collect_gradient, f_cv_custom_function); require_feature_children(f_cv_collect_gradient, f_cvc_explicit_gradient); + init_feature(f_cv_collect_atom_ids, "collect_atom_ids", f_type_dynamic); + require_feature_children(f_cv_collect_atom_ids, f_cvc_collect_atom_ids); + init_feature(f_cv_fdiff_velocity, "velocity_from_finite_differences", f_type_dynamic); // System force: either trivial (spring force); through extended Lagrangian, or calculated explicitly @@ -1138,8 +1186,7 @@ int colvar::init_dependencies() { require_feature_self(f_cv_reflecting_upper_boundary, f_cv_extended_Lagrangian); init_feature(f_cv_grid, "grid", f_type_dynamic); - require_feature_self(f_cv_grid, f_cv_lower_boundary); - require_feature_self(f_cv_grid, f_cv_upper_boundary); + require_feature_self(f_cv_grid, f_cv_scalar); init_feature(f_cv_runave, "running_average", f_type_user); @@ -1371,8 +1418,8 @@ int colvar::check_cvc_range(int first_cvc, size_t /* num_cvcs */) { if ((first_cvc < 0) || (first_cvc >= ((int) cvcs.size()))) { cvm::error("Error: trying to address a component outside the " - "range defined for colvar \""+name+"\".\n", BUG_ERROR); - return BUG_ERROR; + "range defined for colvar \""+name+"\".\n", COLVARS_BUG_ERROR); + return COLVARS_BUG_ERROR; } return COLVARS_OK; } @@ -1471,8 +1518,8 @@ int colvar::collect_cvc_values() "last read from the state file:\n"+cvm::to_str(x_restart)+ "\nPossible causes are changes in configuration, " "wrong state file, or how PBC wrapping is handled.\n", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } } @@ -1651,10 +1698,10 @@ int colvar::calc_colvar_properties() } if (is_enabled(f_cv_extended_Lagrangian)) { - // initialize the restraint center in the first step to the value // just calculated from the cvcs - if ((cvm::step_relative() == 0 && !after_restart) || x_ext.type() == colvarvalue::type_notset) { + // Do the same if no simulation is running (eg. VMD postprocessing) + if ((cvm::step_relative() == 0 && !after_restart) || x_ext.type() == colvarvalue::type_notset || !cvm::proxy->simulation_running()) { x_ext = x; if (is_enabled(f_cv_reflecting_lower_boundary) && x_ext < lower_boundary) { cvm::log("Warning: initializing extended coordinate to reflective lower boundary, as colvar value is below."); @@ -1732,121 +1779,8 @@ cvm::real colvar::update_forces_energy() // At this point f is the force f from external biases that will be applied to the // extended variable if there is one - - if (is_enabled(f_cv_extended_Lagrangian)) { - if (cvm::proxy->simulation_running()) { - // Only integrate the extended equations of motion in running MD simulations - if (cvm::debug()) { - cvm::log("Updating extended-Lagrangian degree of freedom.\n"); - } - - if (prev_timestep > -1L) { - // Keep track of slow timestep to integrate MTS colvars - // the colvar checks the interval after waking up twice - cvm::step_number n_timesteps = cvm::step_relative() - prev_timestep; - if (n_timesteps != 0 && n_timesteps != time_step_factor) { - cvm::error("Error: extended-Lagrangian " + description + " has timeStepFactor " + - cvm::to_str(time_step_factor) + ", but was activated after " + cvm::to_str(n_timesteps) + - " steps at timestep " + cvm::to_str(cvm::step_absolute()) + " (relative step: " + - cvm::to_str(cvm::step_relative()) + ").\n" + - "Make sure that this colvar is requested by biases at multiples of timeStepFactor.\n"); - return 0.; - } - } - - // Integrate with slow timestep (if time_step_factor != 1) - cvm::real dt = cvm::dt() * cvm::real(time_step_factor); - - colvarvalue f_ext(fr.type()); // force acting on the extended variable - f_ext.reset(); - - if (is_enabled(f_cv_external)) { - // There are no forces on the "actual colvar" bc there is no gradient wrt atomic coordinates - // So we apply this to the extended DOF - f += fb_actual; - } - - fr = f; - // External force has been scaled for a 1-timestep impulse, scale it back because we will - // integrate it with the colvar's own timestep factor - f_ext = f / cvm::real(time_step_factor); - - colvarvalue f_system(fr.type()); // force exterted by the system on the extended DOF - - if (is_enabled(f_cv_external)) { - // Add "alchemical" force from external variable - f_system = cvcs[0]->total_force(); - // f is now irrelevant because we are not applying atomic forces in the simulation - // just driving the external variable lambda - } else { - // the total force is applied to the fictitious mass, while the - // atoms only feel the harmonic force + wall force - // fr: bias force on extended variable (without harmonic spring), for output in trajectory - // f_ext: total force on extended variable (including harmonic spring) - // f: - initially, external biasing force - // - after this code block, colvar force to be applied to atomic coordinates - // ie. spring force (fb_actual will be added just below) - f_system = (-0.5 * ext_force_k) * this->dist2_lgrad(x_ext, x); - f = -1.0 * f_system; - // Coupling force is a slow force, to be applied to atomic coords impulse-style - // over a single MD timestep - f *= cvm::real(time_step_factor); - } - f_ext += f_system; - - if (is_enabled(f_cv_subtract_applied_force)) { - // Report a "system" force without the biases on this colvar - // that is, just the spring force (or alchemical force) - ft_reported = f_system; - } else { - // The total force acting on the extended variable is f_ext - // This will be used in the next timestep - ft_reported = f_ext; - } - - // backup in case we need to revert this integration timestep - // if the same MD timestep is re-run - prev_x_ext = x_ext; - prev_v_ext = v_ext; - - // leapfrog: starting from x_i, f_i, v_(i-1/2) - v_ext += (0.5 * dt) * f_ext / ext_mass; - // Because of leapfrog, kinetic energy at time i is approximate - kinetic_energy = 0.5 * ext_mass * v_ext * v_ext; - potential_energy = 0.5 * ext_force_k * this->dist2(x_ext, x); - // leap to v_(i+1/2) - if (is_enabled(f_cv_Langevin)) { - v_ext -= dt * ext_gamma * v_ext; - colvarvalue rnd(x); - rnd.set_random(); - v_ext += dt * ext_sigma * rnd / ext_mass; - } - v_ext += (0.5 * dt) * f_ext / ext_mass; - x_ext += dt * v_ext; - - cvm::real delta = 0; // Length of overshoot past either reflecting boundary - if ((is_enabled(f_cv_reflecting_lower_boundary) && (delta = x_ext - lower_boundary) < 0) || - (is_enabled(f_cv_reflecting_upper_boundary) && (delta = x_ext - upper_boundary) > 0)) { - x_ext -= 2.0 * delta; - v_ext *= -1.0; - if ((is_enabled(f_cv_reflecting_lower_boundary) && (delta = x_ext - lower_boundary) < 0) || - (is_enabled(f_cv_reflecting_upper_boundary) && (delta = x_ext - upper_boundary) > 0)) { - cvm::error("Error: extended coordinate value " + cvm::to_str(x_ext) + " is still outside boundaries after reflection.\n"); - } - } - - x_ext.apply_constraints(); - this->wrap(x_ext); - if (is_enabled(f_cv_external)) { - // Colvar value is constrained to the extended value - x = x_ext; - cvcs[0]->set_value(x_ext); - } - } else { - // If this is a postprocessing run (eg. in VMD), the extended DOF - // is equal to the actual coordinate - x_ext = x; - } + if (is_enabled(f_cv_extended_Lagrangian) && cvm::proxy->simulation_running()) { + update_extended_Lagrangian(); } if (!is_enabled(f_cv_external)) { @@ -1861,6 +1795,117 @@ cvm::real colvar::update_forces_energy() } +void colvar::update_extended_Lagrangian() +{ + if (cvm::debug()) { + cvm::log("Updating extended-Lagrangian degree of freedom.\n"); + } + + if (prev_timestep > -1L) { + // Keep track of slow timestep to integrate MTS colvars + // the colvar checks the interval after waking up twice + cvm::step_number n_timesteps = cvm::step_relative() - prev_timestep; + if (n_timesteps != 0 && n_timesteps != time_step_factor) { + cvm::error("Error: extended-Lagrangian " + description + " has timeStepFactor " + + cvm::to_str(time_step_factor) + ", but was activated after " + cvm::to_str(n_timesteps) + + " steps at timestep " + cvm::to_str(cvm::step_absolute()) + " (relative step: " + + cvm::to_str(cvm::step_relative()) + ").\n" + + "Make sure that this colvar is requested by biases at multiples of timeStepFactor.\n"); + return; + } + } + + // Integrate with slow timestep (if time_step_factor != 1) + cvm::real dt = cvm::dt() * cvm::real(time_step_factor); + + colvarvalue f_ext(fr.type()); // force acting on the extended variable + f_ext.reset(); + + if (is_enabled(f_cv_external)) { + // There are no forces on the "actual colvar" bc there is no gradient wrt atomic coordinates + // So we apply this to the extended DOF + f += fb_actual; + } + + fr = f; + // External force has been scaled for a 1-timestep impulse, scale it back because we will + // integrate it with the colvar's own timestep factor + f_ext = f / cvm::real(time_step_factor); + + colvarvalue f_system(fr.type()); // force exterted by the system on the extended DOF + + if (is_enabled(f_cv_external)) { + // Add "alchemical" force from external variable + f_system = cvcs[0]->total_force(); + // f is now irrelevant because we are not applying atomic forces in the simulation + // just driving the external variable lambda + } else { + // the total force is applied to the fictitious mass, while the + // atoms only feel the harmonic force + wall force + // fr: bias force on extended variable (without harmonic spring), for output in trajectory + // f_ext: total force on extended variable (including harmonic spring) + // f: - initially, external biasing force + // - after this code block, colvar force to be applied to atomic coordinates + // ie. spring force (fb_actual will be added just below) + f_system = (-0.5 * ext_force_k) * this->dist2_lgrad(x_ext, x); + f = -1.0 * f_system; + // Coupling force is a slow force, to be applied to atomic coords impulse-style + // over a single MD timestep + f *= cvm::real(time_step_factor); + } + f_ext += f_system; + + if (is_enabled(f_cv_subtract_applied_force)) { + // Report a "system" force without the biases on this colvar + // that is, just the spring force (or alchemical force) + ft_reported = f_system; + } else { + // The total force acting on the extended variable is f_ext + // This will be used in the next timestep + ft_reported = f_ext; + } + + // backup in case we need to revert this integration timestep + // if the same MD timestep is re-run + prev_x_ext = x_ext; + prev_v_ext = v_ext; + + // leapfrog: starting from x_i, f_i, v_(i-1/2) + v_ext += (0.5 * dt) * f_ext / ext_mass; + // Because of leapfrog, kinetic energy at time i is approximate + kinetic_energy = 0.5 * ext_mass * v_ext * v_ext; + potential_energy = 0.5 * ext_force_k * this->dist2(x_ext, x); + // leap to v_(i+1/2) + if (is_enabled(f_cv_Langevin)) { + v_ext -= dt * ext_gamma * v_ext; + colvarvalue rnd(x); + rnd.set_random(); + v_ext += dt * ext_sigma * rnd / ext_mass; + } + v_ext += (0.5 * dt) * f_ext / ext_mass; + x_ext += dt * v_ext; + + cvm::real delta = 0; // Length of overshoot past either reflecting boundary + if ((is_enabled(f_cv_reflecting_lower_boundary) && (delta = x_ext - lower_boundary) < 0) || + (is_enabled(f_cv_reflecting_upper_boundary) && (delta = x_ext - upper_boundary) > 0)) { + x_ext -= 2.0 * delta; + v_ext *= -1.0; + if ((is_enabled(f_cv_reflecting_lower_boundary) && (delta = x_ext - lower_boundary) < 0) || + (is_enabled(f_cv_reflecting_upper_boundary) && (delta = x_ext - upper_boundary) > 0)) { + cvm::error("Error: extended coordinate value " + cvm::to_str(x_ext) + " is still outside boundaries after reflection.\n"); + } + } + + x_ext.apply_constraints(); + this->wrap(x_ext); + if (is_enabled(f_cv_external)) { + // Colvar value is constrained to the extended value + x = x_ext; + cvcs[0]->set_value(x_ext); + } +} + + int colvar::end_of_step() { if (cvm::debug()) @@ -1922,7 +1967,7 @@ void colvar::communicate_forces() size_t r = 0; // index in the vector of variable references size_t e = 0; // index of the gradient evaluator - for (size_t i = 0; i < cvcs.size(); i++) { // gradient with respect to cvc i + for (i = 0; i < cvcs.size(); i++) { // gradient with respect to cvc i cvm::matrix2d jacobian (x.size(), cvcs[i]->value().size()); for (size_t j = 0; j < cvcs[i]->value().size(); j++) { // j-th element for (size_t c = 0; c < x.size(); c++) { // derivative of scalar element c of the colvarvalue @@ -2021,7 +2066,7 @@ int colvar::update_cvc_config(std::vector const &confs) if (confs.size() != cvcs.size()) { return cvm::error("Error: Wrong number of CVC config strings. " "For those CVCs that are not being changed, try passing " - "an empty string.", INPUT_ERROR); + "an empty string.", COLVARS_INPUT_ERROR); } int error_code = COLVARS_OK; @@ -2108,12 +2153,6 @@ int colvar::set_cvc_param(std::string const ¶m_name, void const *new_value) bool colvar::periodic_boundaries(colvarvalue const &lb, colvarvalue const &ub) const { - if ( (!is_enabled(f_cv_lower_boundary)) || (!is_enabled(f_cv_upper_boundary)) ) { - cvm::log("Error: checking periodicity for collective variable \""+this->name+"\" " - "requires lower and upper boundaries to be defined.\n"); - cvm::set_error_bits(INPUT_ERROR); - } - if (period > 0.0) { if ( ((cvm::sqrt(this->dist2(lb, ub))) / this->width) < 1.0E-10 ) { @@ -2127,8 +2166,8 @@ bool colvar::periodic_boundaries(colvarvalue const &lb, colvarvalue const &ub) c bool colvar::periodic_boundaries() const { if ( (!is_enabled(f_cv_lower_boundary)) || (!is_enabled(f_cv_upper_boundary)) ) { - cvm::log("Error: checking periodicity for collective variable \""+this->name+"\" " - "requires lower and upper boundaries to be defined.\n"); + // Return false if answer is unknown at this time + return false; } return periodic_boundaries(lower_boundary, upper_boundary); @@ -2231,7 +2270,7 @@ std::istream & colvar::read_state(std::istream &is) std::string(""), colvarparse::parse_silent); if (check_name.size() == 0) { cvm::error("Error: Collective variable in the " - "restart file without any identifier.\n", INPUT_ERROR); + "restart file without any identifier.\n", COLVARS_INPUT_ERROR); is.clear(); is.seekg(start_pos, std::ios::beg); is.setstate(std::ios::failbit); @@ -2556,7 +2595,7 @@ int colvar::calc_acf() colvar const *cfcv = cvm::colvar_by_name(acf_colvar_name); if (cfcv == NULL) { return cvm::error("Error: collective variable \""+acf_colvar_name+ - "\" is not defined at this time.\n", INPUT_ERROR); + "\" is not defined at this time.\n", COLVARS_INPUT_ERROR); } if (acf_x_history.empty() && acf_v_history.empty()) { @@ -2567,7 +2606,7 @@ int colvar::calc_acf() cvm::error("Error: correlation function between \""+cfcv->name+ "\" and \""+this->name+"\" cannot be calculated, " "because their value types are different.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } acf_nframes = 0; @@ -2761,7 +2800,7 @@ int colvar::write_acf(std::ostream &os) (*acf_i)/(cvm::real(acf_nframes)) ) << "\n"; } - return os.good() ? COLVARS_OK : FILE_ERROR; + return os.good() ? COLVARS_OK : COLVARS_FILE_ERROR; } diff --git a/lib/colvars/colvar.h b/lib/colvars/colvar.h index 2856170727..7b2863a3b5 100644 --- a/lib/colvars/colvar.h +++ b/lib/colvars/colvar.h @@ -272,9 +272,16 @@ public: private: /// Parse the CVC configuration for all components of a certain type - template int init_components_type(std::string const &conf, + template int init_components_type(std::string const & conf, char const *def_desc, char const *def_config_key); +#if (__cplusplus >= 201103L) + /// For the C++11 case, the names of all available components are + /// registered in the global map at first, and then the CVC configuration + /// is parsed by this function + int init_components_type_from_global_map(const std::string& conf, + const char* def_config_key); +#endif public: @@ -346,6 +353,9 @@ public: /// return colvar energy if extended Lagrandian active cvm::real update_forces_energy(); + /// \brief Integrate equations of motion of extended Lagrangian coordinate if needed + void update_extended_Lagrangian(); + /// \brief Communicate forces (previously calculated in /// colvar::update()) to the external degrees of freedom void communicate_forces(); @@ -592,6 +602,7 @@ public: class alpha_angles; class dihedPC; class alch_lambda; + class alch_Flambda; class componentDisabled; class CartesianBasedPath; class gspath; @@ -605,6 +616,8 @@ public: class euler_phi; class euler_psi; class euler_theta; + class neuralNetwork; + class customColvar; // non-scalar components class distance_vec; @@ -623,6 +636,9 @@ public: } #endif + /// \brief function for sorting cvcs by their names + static bool compare_cvc(const colvar::cvc* const i, const colvar::cvc* const j); + protected: /// \brief Array of \link colvar::cvc \endlink objects diff --git a/lib/colvars/colvar_UIestimator.h b/lib/colvars/colvar_UIestimator.h index 1ec378f90c..ca1ecc8c43 100644 --- a/lib/colvars/colvar_UIestimator.h +++ b/lib/colvars/colvar_UIestimator.h @@ -63,15 +63,15 @@ namespace UIestimator { temp.resize(dimension); } - int inline get_value(const std::vector & x, const std::vector & y) { + int get_value(const std::vector & x, const std::vector & y) { return matrix[convert_x(x)][convert_y(x, y)]; } - void inline set_value(const std::vector & x, const std::vector & y, const int value) { + void set_value(const std::vector & x, const std::vector & y, const int value) { matrix[convert_x(x)][convert_y(x,y)] = value; } - void inline increase_value(const std::vector & x, const std::vector & y, const int value) { + void increase_value(const std::vector & x, const std::vector & y, const int value) { matrix[convert_x(x)][convert_y(x,y)] += value; } @@ -164,17 +164,18 @@ namespace UIestimator { temp.resize(dimension); } - const T inline get_value(const std::vector & x) { + T & get_value(const std::vector & x) { return vector[convert_x(x)]; } - void inline set_value(const std::vector & x, const T value) { + void set_value(const std::vector & x, const T value) { vector[convert_x(x)] = value; } - void inline increase_value(const std::vector & x, const T value) { + void increase_value(const std::vector & x, const T value) { vector[convert_x(x)] += value; } + private: std::vector lowerboundary; std::vector upperboundary; @@ -301,7 +302,8 @@ namespace UIestimator { ~UIestimator() {} // called from MD engine every step - bool update(cvm::step_number step, std::vector x, std::vector y) { + bool update(cvm::step_number /* step */, + std::vector x, std::vector y) { int i; diff --git a/lib/colvars/colvar_neuralnetworkcompute.cpp b/lib/colvars/colvar_neuralnetworkcompute.cpp new file mode 100644 index 0000000000..d0f9633652 --- /dev/null +++ b/lib/colvars/colvar_neuralnetworkcompute.cpp @@ -0,0 +1,298 @@ +#if (__cplusplus >= 201103L) +#include "colvar_neuralnetworkcompute.h" +#include "colvarparse.h" + +namespace neuralnetworkCV { +std::map, std::function>> activation_function_map +{ + {"tanh", {[](double x){return std::tanh(x);}, + [](double x){return 1.0 - std::tanh(x) * std::tanh(x);}}}, + {"sigmoid", {[](double x){return 1.0 / (1.0 + std::exp(-x));}, + [](double x){return std::exp(-x) / ((1.0 + std::exp(-x)) * (1.0 + std::exp(-x)));}}}, + {"linear", {[](double x){return x;}, + [](double /*x*/){return 1.0;}}}, + {"relu", {[](double x){return x < 0. ? 0. : x;}, + [](double x){return x < 0. ? 0. : 1.;}}}, + {"lrelu100", {[](double x){return x < 0. ? 0.01 * x : x;}, + [](double x){return x < 0. ? 0.01 : 1.;}}}, + {"elu", {[](double x){return x < 0. ? std::exp(x)-1. : x;}, + [](double x){return x < 0. ? std::exp(x) : 1.;}}} +}; + +#ifdef LEPTON +customActivationFunction::customActivationFunction(): +expression(), value_evaluator(nullptr), gradient_evaluator(nullptr), +input_reference(nullptr), derivative_reference(nullptr) {} + +customActivationFunction::customActivationFunction(const std::string& expression_string): +expression(), value_evaluator(nullptr), gradient_evaluator(nullptr), +input_reference(nullptr), derivative_reference(nullptr) { + setExpression(expression_string); +} + +customActivationFunction::customActivationFunction(const customActivationFunction& source): +expression(), value_evaluator(nullptr), gradient_evaluator(nullptr), +input_reference(nullptr), derivative_reference(nullptr) { + // check if the source object is initialized + if (source.value_evaluator != nullptr) { + this->setExpression(source.expression); + } +} + +customActivationFunction& customActivationFunction::operator=(const customActivationFunction& source) { + if (source.value_evaluator != nullptr) { + this->setExpression(source.expression); + } else { + expression = std::string(); + value_evaluator = nullptr; + gradient_evaluator = nullptr; + input_reference = nullptr; + derivative_reference = nullptr; + } + return *this; +} + +void customActivationFunction::setExpression(const std::string& expression_string) { + expression = expression_string; + Lepton::ParsedExpression parsed_expression; + // the variable must be "x" for the input of an activation function + const std::string activation_input_variable{"x"}; + // parse the expression + try { + parsed_expression = Lepton::Parser::parse(expression); + } catch (...) { + cvm::error("Error parsing or compiling expression \"" + expression + "\".\n", COLVARS_INPUT_ERROR); + } + // compile the expression + try { + value_evaluator = std::unique_ptr(new Lepton::CompiledExpression(parsed_expression.createCompiledExpression())); + } catch (...) { + cvm::error("Error compiling expression \"" + expression + "\".\n", COLVARS_INPUT_ERROR); + } + // create a compiled expression for the derivative + try { + gradient_evaluator = std::unique_ptr(new Lepton::CompiledExpression(parsed_expression.differentiate(activation_input_variable).createCompiledExpression())); + } catch (...) { + cvm::error("Error creating compiled expression for variable \"" + activation_input_variable + "\".\n", COLVARS_INPUT_ERROR); + } + // get the reference to the input variable in the compiled expression + try { + input_reference = &(value_evaluator->getVariableReference(activation_input_variable)); + } catch (...) { + cvm::error("Error on getting the reference to variable \"" + activation_input_variable + "\" in the compiled expression.\n", COLVARS_INPUT_ERROR); + } + // get the reference to the input variable in the compiled derivative expression + try { + derivative_reference = &(gradient_evaluator->getVariableReference(activation_input_variable)); + } catch (...) { + cvm::error("Error on getting the reference to variable \"" + activation_input_variable + "\" in the compiled derivative exprssion.\n", COLVARS_INPUT_ERROR); + } +} + +std::string customActivationFunction::getExpression() const { + return expression; +} + +double customActivationFunction::evaluate(double x) const { + *input_reference = x; + return value_evaluator->evaluate(); +} + +double customActivationFunction::derivative(double x) const { + *derivative_reference = x; + return gradient_evaluator->evaluate(); +} +#endif + +denseLayer::denseLayer(const std::string& weights_file, const std::string& biases_file, const std::function& f, const std::function& df): m_activation_function(f), m_activation_function_derivative(df) { +#ifdef LEPTON + m_use_custom_activation = false; +#endif + readFromFile(weights_file, biases_file); +} + +#ifdef LEPTON +denseLayer::denseLayer(const std::string& weights_file, const std::string& biases_file, const std::string& custom_activation_expression) { + m_use_custom_activation = true; + m_custom_activation_function = customActivationFunction(custom_activation_expression); + readFromFile(weights_file, biases_file); +} +#endif + +void denseLayer::readFromFile(const std::string& weights_file, const std::string& biases_file) { + // parse weights file + m_weights.clear(); + m_biases.clear(); + std::string line; + std::ifstream ifs_weights(weights_file.c_str()); + if (!ifs_weights) { + throw std::runtime_error("Cannot open file " + weights_file); + } + while (std::getline(ifs_weights, line)) { + if (ifs_weights.bad()) { + throw std::runtime_error("I/O error while reading " + weights_file); + } + std::vector splitted_data; + colvarparse::split_string(line, std::string{" "}, splitted_data); + if (splitted_data.size() > 0) { + std::vector weights_tmp(splitted_data.size()); + for (size_t i = 0; i < splitted_data.size(); ++i) { + try { + weights_tmp[i] = std::stod(splitted_data[i]); + } catch (...) { + throw std::runtime_error("Cannot convert " + splitted_data[i] + " to a number while reading file " + weights_file); + } + } + m_weights.push_back(weights_tmp); + } + } + // parse biases file + std::ifstream ifs_biases(biases_file.c_str()); + if (!ifs_biases) { + throw std::runtime_error("Cannot open file " + biases_file); + } + while (std::getline(ifs_biases, line)) { + if (ifs_biases.bad()) { + throw std::runtime_error("I/O error while reading " + biases_file); + } + std::vector splitted_data; + colvarparse::split_string(line, std::string{" "}, splitted_data); + if (splitted_data.size() > 0) { + double bias = 0; + try { + bias = std::stod(splitted_data[0]); + } catch (...) { + throw std::runtime_error("Cannot convert " + splitted_data[0] + " to a number while reading file " + biases_file); + } + m_biases.push_back(bias); + } + } + m_input_size = m_weights[0].size(); + m_output_size = m_weights.size(); +} + +void denseLayer::setActivationFunction(const std::function& f, const std::function& df) { + m_activation_function = f; + m_activation_function_derivative = df; +} + +void denseLayer::compute(const std::vector& input, std::vector& output) const { + for (size_t i = 0; i < m_output_size; ++i) { + output[i] = 0; + for (size_t j = 0; j < m_input_size; ++j) { + output[i] += input[j] * m_weights[i][j]; + } + output[i] += m_biases[i]; +#ifdef LEPTON + if (m_use_custom_activation) { + output[i] = m_custom_activation_function.evaluate(output[i]); + } else { +#endif + output[i] = m_activation_function(output[i]); +#ifdef LEPTON + } +#endif + } +} + +double denseLayer::computeGradientElement(const std::vector& input, const size_t i, const size_t j) const { + double sum_with_bias = 0; + for (size_t j_in = 0; j_in < m_input_size; ++j_in) { + sum_with_bias += input[j_in] * m_weights[i][j_in]; + } + sum_with_bias += m_biases[i]; +#ifdef LEPTON + if (m_use_custom_activation) { + const double grad_ij = m_custom_activation_function.derivative(sum_with_bias) * m_weights[i][j]; + return grad_ij; + } else { +#endif + const double grad_ij = m_activation_function_derivative(sum_with_bias) * m_weights[i][j]; + return grad_ij; +#ifdef LEPTON + } +#endif +} + +void denseLayer::computeGradient(const std::vector& input, std::vector>& output_grad) const { + for (size_t j = 0; j < m_input_size; ++j) { + for (size_t i = 0; i < m_output_size; ++i) { + output_grad[i][j] = computeGradientElement(input, i, j); + } + } +} + +neuralNetworkCompute::neuralNetworkCompute(const std::vector& dense_layers): m_dense_layers(dense_layers) { + m_layers_output.resize(m_dense_layers.size()); + m_grads_tmp.resize(m_dense_layers.size()); + for (size_t i_layer = 0; i_layer < m_layers_output.size(); ++i_layer) { + m_layers_output[i_layer].assign(m_dense_layers[i_layer].getOutputSize(), 0); + m_grads_tmp[i_layer].assign(m_dense_layers[i_layer].getOutputSize(), std::vector(m_dense_layers[i_layer].getInputSize(), 0)); + } +} + +bool neuralNetworkCompute::addDenseLayer(const denseLayer& layer) { + if (m_dense_layers.empty()) { + // add layer to this ann directly if m_dense_layers is empty + m_dense_layers.push_back(layer); + m_layers_output.push_back(std::vector(layer.getOutputSize())); + m_grads_tmp.push_back(std::vector>(layer.getOutputSize(), std::vector(layer.getInputSize(), 0))); + return true; + } else { + // otherwise, we need to check if the output of last layer in m_dense_layers matches the input of layer to be added + if (m_dense_layers.back().getOutputSize() == layer.getInputSize()) { + m_dense_layers.push_back(layer); + m_layers_output.push_back(std::vector(layer.getOutputSize())); + m_grads_tmp.push_back(std::vector>(layer.getOutputSize(), std::vector(layer.getInputSize(), 0))); + return true; + } else { + return false; + } + } +} + +std::vector> neuralNetworkCompute::multiply_matrix(const std::vector>& A, const std::vector>& B) { + const size_t m = A.size(); + const size_t n = B.size(); + if (A[0].size() != n) { + std::cerr << "Error on multiplying matrices!\n"; + } + const size_t t = B[0].size(); + std::vector> C(m, std::vector(t, 0.0)); + for (size_t i = 0; i < m; ++i) { + for (size_t j = 0; j < t; ++j) { + for (size_t k = 0; k < n; ++k) { + C[i][j] += A[i][k] * B[k][j]; + } + } + } + return C; +} + +void neuralNetworkCompute::compute() { + if (m_dense_layers.empty()) { + return; + } + size_t i_layer; + m_dense_layers[0].compute(m_input, m_layers_output[0]); + for (i_layer = 1; i_layer < m_dense_layers.size(); ++i_layer) { + m_dense_layers[i_layer].compute(m_layers_output[i_layer - 1], m_layers_output[i_layer]); + } + // gradients of each layer + m_dense_layers[0].computeGradient(m_input, m_grads_tmp[0]); + for (i_layer = 1; i_layer < m_dense_layers.size(); ++i_layer) { + m_dense_layers[i_layer].computeGradient(m_layers_output[i_layer - 1], m_grads_tmp[i_layer]); + } + // chain rule + if (m_dense_layers.size() > 1) { + m_chained_grad = multiply_matrix(m_grads_tmp[1], m_grads_tmp[0]); + for (i_layer = 2; i_layer < m_dense_layers.size(); ++i_layer) { + m_chained_grad = multiply_matrix(m_grads_tmp[i_layer], m_chained_grad); + } + } else { + m_chained_grad = m_grads_tmp[0]; + } +} +} + +#endif diff --git a/lib/colvars/colvar_neuralnetworkcompute.h b/lib/colvars/colvar_neuralnetworkcompute.h new file mode 100644 index 0000000000..a48f8c7f14 --- /dev/null +++ b/lib/colvars/colvar_neuralnetworkcompute.h @@ -0,0 +1,140 @@ +#if (__cplusplus >= 201103L) +#ifndef NEURALNETWORKCOMPUTE_H +#define NEURALNETWORKCOMPUTE_H + +#include +#include +#include +#include +#include +#include +#include + +#ifdef LEPTON +#include "Lepton.h" +#endif + +namespace neuralnetworkCV { +/// mapping from a string to the activation function and its derivative +extern std::map, std::function>> activation_function_map; + +#ifdef LEPTON +// allow to define a custom activation function +class customActivationFunction { +public: + /// empty constructor + customActivationFunction(); + /// construct by an mathematical expression + customActivationFunction(const std::string& expression_string); + /// copy constructor + customActivationFunction(const customActivationFunction& source); + /// overload assignment operator + customActivationFunction& operator=(const customActivationFunction& source); + /// setter for the custom expression + void setExpression(const std::string& expression_string); + /// getter for the custom expression + std::string getExpression() const; + /// evaluate the value of an expression + double evaluate(double x) const; + /// evaluate the gradient of an expression + double derivative(double x) const; +private: + std::string expression; + std::unique_ptr value_evaluator; + std::unique_ptr gradient_evaluator; + double* input_reference; + double* derivative_reference; +}; +#endif + +class denseLayer { +private: + size_t m_input_size; + size_t m_output_size; + std::function m_activation_function; + std::function m_activation_function_derivative; +#ifdef LEPTON + bool m_use_custom_activation; + customActivationFunction m_custom_activation_function; +#else + static const bool m_use_custom_activation = false; +#endif + /// weights[i][j] is the weight of the i-th output and the j-th input + std::vector> m_weights; + /// bias of each node + std::vector m_biases; +public: + /// empty constructor + denseLayer() {} + /*! @param[in] weights_file filename of the weights file + * @param[in] biases_file filename of the biases file + * @param[in] f activation function + * @param[in] df derivative of the activation function + */ + denseLayer(const std::string& weights_file, const std::string& biases_file, const std::function& f, const std::function& df); +#ifdef LEPTON + /*! @param[in] weights_file filename of the weights file + * @param[in] biases_file filename of the biases file + * @param[in] custom_activation_expression the expression of the custom activation function + */ + denseLayer(const std::string& weights_file, const std::string& biases_file, const std::string& custom_activation_expression); +#endif + /// read data from file + void readFromFile(const std::string& weights_file, const std::string& biases_file); + /// setup activation function + void setActivationFunction(const std::function& f, const std::function& df); + /// compute the value of this layer + void compute(const std::vector& input, std::vector& output) const; + /// compute the gradient of i-th output wrt j-th input + double computeGradientElement(const std::vector& input, const size_t i, const size_t j) const; + /// output[i][j] is the gradient of i-th output wrt j-th input + void computeGradient(const std::vector& input, std::vector>& output_grad) const; + /// get the input size + size_t getInputSize() const { + return m_input_size; + } + /// get the output size + size_t getOutputSize() const { + return m_output_size; + } + /// getter for weights and biases + double getWeight(size_t i, size_t j) const { + return m_weights[i][j]; + } + double getBias(size_t i) const { + return m_biases[i]; + } + ~denseLayer() {} +}; + +class neuralNetworkCompute { +private: + std::vector m_dense_layers; + std::vector m_input; + /// temporary output for each layer, useful to speedup the gradients' calculation + std::vector> m_layers_output; + std::vector>> m_grads_tmp; + std::vector> m_chained_grad; +private: + /// helper function: multiply two matrix constructed from 2D vector + static std::vector> multiply_matrix(const std::vector>& A, const std::vector>& B); +public: + neuralNetworkCompute(): m_dense_layers(0), m_layers_output(0) {} + neuralNetworkCompute(const std::vector& dense_layers); + bool addDenseLayer(const denseLayer& layer); + // for faster computation + const std::vector& input() const {return m_input;} + std::vector& input() {return m_input;} + /// compute the values and the gradients of all output nodes + void compute(); + double getOutput(const size_t i) const {return m_layers_output.back()[i];} + double getGradient(const size_t i, const size_t j) const {return m_chained_grad[i][j];} + /// get a specified layer + const denseLayer& getLayer(const size_t i) const {return m_dense_layers[i];} + /// get the number of layers + size_t getNumberOfLayers() const {return m_dense_layers.size();} +}; + +} +#endif +#endif diff --git a/lib/colvars/colvaratoms.cpp b/lib/colvars/colvaratoms.cpp index 9bbd91cf05..f950bf5965 100644 --- a/lib/colvars/colvaratoms.cpp +++ b/lib/colvars/colvaratoms.cpp @@ -77,6 +77,17 @@ cvm::atom::~atom() } +cvm::atom & cvm::atom::operator = (cvm::atom const &a) +{ + index = a.index; + id = (cvm::proxy)->get_atom_id(index); + update_mass(); + update_charge(); + reset_data(); + return *this; +} + + cvm::atom_group::atom_group() { @@ -163,12 +174,12 @@ int cvm::atom_group::add_atom_id(int aid) int cvm::atom_group::remove_atom(cvm::atom_iter ai) { if (is_enabled(f_ag_scalable)) { - cvm::error("Error: cannot remove atoms from a scalable group.\n", INPUT_ERROR); + cvm::error("Error: cannot remove atoms from a scalable group.\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } if (!this->size()) { - cvm::error("Error: trying to remove an atom from an empty group.\n", INPUT_ERROR); + cvm::error("Error: trying to remove an atom from an empty group.\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } else { total_mass -= ai->mass; @@ -186,7 +197,7 @@ int cvm::atom_group::set_dummy() if (atoms_ids.size() > 0) { return cvm::error("Error: setting group with keyword \""+key+ "\" and name \""+name+"\" as dummy, but it already " - "contains atoms.\n", INPUT_ERROR); + "contains atoms.\n", COLVARS_INPUT_ERROR); } b_dummy = true; return COLVARS_OK; @@ -200,7 +211,7 @@ int cvm::atom_group::set_dummy_pos(cvm::atom_pos const &pos) } else { return cvm::error("Error: setting dummy position for group with keyword \""+ key+"\" and name \""+name+ - "\", but it is not dummy.\n", INPUT_ERROR); + "\", but it is not dummy.\n", COLVARS_INPUT_ERROR); } return COLVARS_OK; } @@ -213,7 +224,7 @@ int cvm::atom_group::init() // These may be overwritten by parse(), if a name is provided atoms.clear(); - init_dependencies(); + atom_group::init_dependencies(); index = -1; b_dummy = false; @@ -253,9 +264,12 @@ int cvm::atom_group::init_dependencies() { // parallel calculation implies that we have at least a scalable center of mass, // but f_ag_scalable is kept as a separate feature to deal with future dependencies - init_feature(f_ag_scalable, "scalable_group", f_type_static); + init_feature(f_ag_scalable, "scalable_group", f_type_dynamic); init_feature(f_ag_scalable_com, "scalable_group_center_of_mass", f_type_static); - require_feature_self(f_ag_scalable, f_ag_scalable_com); + require_feature_self(f_ag_scalable_com, f_ag_scalable); + + init_feature(f_ag_collect_atom_ids, "collect_atom_ids", f_type_dynamic); + exclude_feature_self(f_ag_collect_atom_ids, f_ag_scalable); // check that everything is initialized for (i = 0; i < colvardeps::f_ag_ntot; i++) { @@ -280,11 +294,11 @@ int cvm::atom_group::init_dependencies() { // f_ag_scalable_com is provided by the CVC iff it is COM-based feature_states[f_ag_scalable_com].available = false; - // TODO make f_ag_scalable depend on f_ag_scalable_com (or something else) feature_states[f_ag_scalable].available = true; feature_states[f_ag_fit_gradients].available = true; feature_states[f_ag_fitting_group].available = true; feature_states[f_ag_explicit_gradient].available = true; + feature_states[f_ag_collect_atom_ids].available = true; return COLVARS_OK; } @@ -381,8 +395,8 @@ int cvm::atom_group::parse(std::string const &group_conf) (cvm::atom_group_by_name(this->name) != this)) { cvm::error("Error: this atom group cannot have the same name, \""+this->name+ "\", as another atom group.\n", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } cvm::main()->register_named_atom_group(this); description = "atom group " + name; @@ -396,18 +410,23 @@ int cvm::atom_group::parse(std::string const &group_conf) b_defined_center |= get_keyval_feature(this, group_conf, "centerToReference", f_ag_center, is_enabled(f_ag_center)); if (is_enabled(f_ag_center_origin) && ! is_enabled(f_ag_center)) { - return cvm::error("centerToReference may not be disabled if centerToOrigin is enabled.\n"); + return cvm::error("centerToReference may not be disabled if centerToOrigin" + "is enabled.\n", COLVARS_INPUT_ERROR); } // Legacy alias bool b_defined_rotate = get_keyval_feature(this, group_conf, "rotateReference", f_ag_rotate, false, parse_deprecated); b_defined_rotate |= get_keyval_feature(this, group_conf, "rotateToReference", f_ag_rotate, is_enabled(f_ag_rotate)); + if (is_enabled(f_ag_rotate) || is_enabled(f_ag_center) || + is_enabled(f_ag_center_origin)) { + cvm::main()->cite_feature("Moving frame of reference"); + } + // is the user setting explicit options? b_user_defined_fit = b_defined_center || b_defined_rotate; if (is_available(f_ag_scalable_com) && !is_enabled(f_ag_rotate) && !is_enabled(f_ag_center)) { enable(f_ag_scalable_com); - enable(f_ag_scalable); } { @@ -462,7 +481,7 @@ int cvm::atom_group::parse(std::string const &group_conf) for (psii = psf_segids.begin(); psii < psf_segids.end(); ++psii) { if ( (psii->size() == 0) || (psii->size() > 4) ) { cvm::error("Error: invalid PSF segment identifier provided, \""+ - (*psii)+"\".\n", INPUT_ERROR); + (*psii)+"\".\n", COLVARS_INPUT_ERROR); } } @@ -475,7 +494,7 @@ int cvm::atom_group::parse(std::string const &group_conf) range_count++; if (psf_segids.size() && (range_count > psf_segids.size())) { cvm::error("Error: more instances of \"atomNameResidueRange\" than " - "values of \"psfSegID\".\n", INPUT_ERROR); + "values of \"psfSegID\".\n", COLVARS_INPUT_ERROR); } else { parse_error |= add_atom_name_residue_range(psf_segids.size() ? *psii : std::string(""), range_conf); @@ -493,13 +512,13 @@ int cvm::atom_group::parse(std::string const &group_conf) std::string atoms_col; if (!get_keyval(group_conf, "atomsCol", atoms_col, std::string(""))) { cvm::error("Error: parameter atomsCol is required if atomsFile is set.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } double atoms_col_value; bool const atoms_col_value_defined = get_keyval(group_conf, "atomsColValue", atoms_col_value, 0.0); if (atoms_col_value_defined && (!atoms_col_value)) { - cvm::error("Error: atomsColValue, if provided, must be non-zero.\n", INPUT_ERROR); + cvm::error("Error: atomsColValue, if provided, must be non-zero.\n", COLVARS_INPUT_ERROR); } // NOTE: calls to add_atom() and/or add_atom_id() are in the proxy-implemented function @@ -521,7 +540,7 @@ int cvm::atom_group::parse(std::string const &group_conf) if (!(atoms_ids.size())) { parse_error |= cvm::error("Error: no atoms defined for atom group \""+ - key+"\".\n", INPUT_ERROR); + key+"\".\n", COLVARS_INPUT_ERROR); } // whether these atoms will ever receive forces or not @@ -595,7 +614,7 @@ int cvm::atom_group::add_atoms_of_group(atom_group const *ag) if (cvm::get_error()) return COLVARS_ERROR; } else { - cvm::error("Error: source atom group contains no atoms\".\n", INPUT_ERROR); + cvm::error("Error: source atom group contains no atoms\".\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } @@ -633,7 +652,7 @@ int cvm::atom_group::add_atom_numbers(std::string const &numbers_conf) if (cvm::get_error()) return COLVARS_ERROR; } else { cvm::error("Error: no numbers provided for \"" - "atomNumbers\".\n", INPUT_ERROR); + "atomNumbers\".\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } @@ -657,7 +676,7 @@ int cvm::atom_group::add_index_group(std::string const &index_group_name) if (i_group >= index_group_names.size()) { return cvm::error("Error: could not find index group "+ index_group_name+" among those already provided.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } int error_code = COLVARS_OK; @@ -709,7 +728,7 @@ int cvm::atom_group::add_atom_numbers_range(std::string const &range_conf) if (cvm::get_error()) return COLVARS_ERROR; } else { cvm::error("Error: no valid definition for \"atomNumbersRange\", \""+ - range_conf+"\".\n", INPUT_ERROR); + range_conf+"\".\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } @@ -795,16 +814,16 @@ int cvm::atom_group::parse_fitting_options(std::string const &group_conf) key+"\" has already a reference group " "for the rototranslational fit, which was communicated by the " "colvar component. You should not use fittingGroup " - "in this case.\n", INPUT_ERROR); - return INPUT_ERROR; + "in this case.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } cvm::log("Within atom group \""+key+"\":\n"); fitting_group = new atom_group("fittingGroup"); if (fitting_group->parse(fitting_group_conf) == COLVARS_OK) { fitting_group->check_keywords(fitting_group_conf, "fittingGroup"); if (cvm::get_error()) { - cvm::error("Error setting up atom group \"fittingGroup\".", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error setting up atom group \"fittingGroup\".", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } enable(f_ag_fitting_group); @@ -830,7 +849,7 @@ int cvm::atom_group::parse_fitting_options(std::string const &group_conf) bool found = get_keyval(group_conf, "refPositionsColValue", ref_pos_col_value, 0.0); if (found && ref_pos_col_value == 0.0) { cvm::error("Error: refPositionsColValue, " - "if provided, must be non-zero.\n", INPUT_ERROR); + "if provided, must be non-zero.\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } } @@ -850,14 +869,14 @@ int cvm::atom_group::parse_fitting_options(std::string const &group_conf) key+ "\" ("+cvm::to_str(group_for_fit->size())+ "): to perform a rotational fit, "+ - "these numbers should be equal.\n", INPUT_ERROR); + "these numbers should be equal.\n", COLVARS_INPUT_ERROR); } // save the center of geometry of ref_pos and subtract it center_ref_pos(); } else { - cvm::error("Error: no reference positions provided.\n", INPUT_ERROR); + cvm::error("Error: no reference positions provided.\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } @@ -921,7 +940,7 @@ int cvm::atom_group::create_sorted_ids() return cvm::error("Error: duplicate atom IDs in atom group? (found " + cvm::to_str(sorted_atoms_ids_list.size()) + " unique atom IDs instead of " + - cvm::to_str(atoms_ids.size()) + ").\n", BUG_ERROR); + cvm::to_str(atoms_ids.size()) + ").\n", COLVARS_BUG_ERROR); } // Compute map between sorted and unsorted elements @@ -1059,12 +1078,12 @@ void cvm::atom_group::calc_apply_roto_translation() void cvm::atom_group::apply_translation(cvm::rvector const &t) { if (b_dummy) { - cvm::error("Error: cannot translate the coordinates of a dummy atom group.\n", INPUT_ERROR); + cvm::error("Error: cannot translate the coordinates of a dummy atom group.\n", COLVARS_INPUT_ERROR); return; } if (is_enabled(f_ag_scalable)) { - cvm::error("Error: cannot translate the coordinates of a scalable atom group.\n", INPUT_ERROR); + cvm::error("Error: cannot translate the coordinates of a scalable atom group.\n", COLVARS_INPUT_ERROR); return; } @@ -1124,7 +1143,7 @@ int cvm::atom_group::calc_center_of_geometry() for (cvm::atom_const_iter ai = this->begin(); ai != this->end(); ai++) { cog += ai->pos; } - cog /= this->size(); + cog /= cvm::real(this->size()); } return COLVARS_OK; } @@ -1154,7 +1173,7 @@ int cvm::atom_group::calc_dipole(cvm::atom_pos const &dipole_center) { if (b_dummy) { return cvm::error("Error: trying to compute the dipole " - "of a dummy group.\n", INPUT_ERROR); + "of a dummy group.\n", COLVARS_INPUT_ERROR); } dip.reset(); for (cvm::atom_const_iter ai = this->begin(); ai != this->end(); ai++) { @@ -1235,12 +1254,12 @@ std::vector cvm::atom_group::positions() const { if (b_dummy) { cvm::error("Error: positions are not available " - "from a dummy atom group.\n", INPUT_ERROR); + "from a dummy atom group.\n", COLVARS_INPUT_ERROR); } if (is_enabled(f_ag_scalable)) { cvm::error("Error: atomic positions are not available " - "from a scalable atom group.\n", INPUT_ERROR); + "from a scalable atom group.\n", COLVARS_INPUT_ERROR); } std::vector x(this->size(), 0.0); @@ -1256,12 +1275,12 @@ std::vector cvm::atom_group::positions_shifted(cvm::rvector const { if (b_dummy) { cvm::error("Error: positions are not available " - "from a dummy atom group.\n", INPUT_ERROR); + "from a dummy atom group.\n", COLVARS_INPUT_ERROR); } if (is_enabled(f_ag_scalable)) { cvm::error("Error: atomic positions are not available " - "from a scalable atom group.\n", INPUT_ERROR); + "from a scalable atom group.\n", COLVARS_INPUT_ERROR); } std::vector x(this->size(), 0.0); @@ -1277,12 +1296,12 @@ std::vector cvm::atom_group::velocities() const { if (b_dummy) { cvm::error("Error: velocities are not available " - "from a dummy atom group.\n", INPUT_ERROR); + "from a dummy atom group.\n", COLVARS_INPUT_ERROR); } if (is_enabled(f_ag_scalable)) { cvm::error("Error: atomic velocities are not available " - "from a scalable atom group.\n", INPUT_ERROR); + "from a scalable atom group.\n", COLVARS_INPUT_ERROR); } std::vector v(this->size(), 0.0); @@ -1298,12 +1317,12 @@ std::vector cvm::atom_group::total_forces() const { if (b_dummy) { cvm::error("Error: total forces are not available " - "from a dummy atom group.\n", INPUT_ERROR); + "from a dummy atom group.\n", COLVARS_INPUT_ERROR); } if (is_enabled(f_ag_scalable)) { cvm::error("Error: atomic total forces are not available " - "from a scalable atom group.\n", INPUT_ERROR); + "from a scalable atom group.\n", COLVARS_INPUT_ERROR); } std::vector f(this->size(), 0.0); @@ -1321,7 +1340,7 @@ cvm::rvector cvm::atom_group::total_force() const { if (b_dummy) { cvm::error("Error: total total forces are not available " - "from a dummy atom group.\n", INPUT_ERROR); + "from a dummy atom group.\n", COLVARS_INPUT_ERROR); } if (is_enabled(f_ag_scalable)) { diff --git a/lib/colvars/colvaratoms.h b/lib/colvars/colvaratoms.h index 490b008d06..84c5ee137e 100644 --- a/lib/colvars/colvaratoms.h +++ b/lib/colvars/colvaratoms.h @@ -90,6 +90,9 @@ public: /// Destructor ~atom(); + /// Assignment operator (added to appease LGTM) + atom & operator = (atom const &a); + /// Set mutable data (everything except id and mass) to zero inline void reset_data() { diff --git a/lib/colvars/colvarbias.cpp b/lib/colvars/colvarbias.cpp index 65e9dedc36..bb2f2310f7 100644 --- a/lib/colvars/colvarbias.cpp +++ b/lib/colvars/colvarbias.cpp @@ -19,12 +19,13 @@ colvarbias::colvarbias(char const *key) { - bias_type = to_lower_cppstr(key); + bias_type = colvarparse::to_lower_cppstr(key); state_keyword = bias_type; - description = "uninitialized " + cvm::to_str(key) + " bias"; - init_dependencies(); - rank = 1; + rank = -1; + description = "uninitialized " + bias_type + " bias"; + + colvarbias::init_dependencies(); time_step_factor = 1; @@ -32,38 +33,37 @@ colvarbias::colvarbias(char const *key) b_output_energy = false; output_freq = cvm::restart_out_freq; - reset(); + colvarbias::reset(); state_file_step = 0L; matching_state = false; + biasing_force_scaling_factors = NULL; } int colvarbias::init(std::string const &conf) { - colvarparse::init(conf); + name = bias_type + cvm::to_str(rank); + colvarparse::set_string(conf); size_t i = 0; - if (name.size() == 0) { - - // first initialization + if (num_variables() == 0) { + // First initialization cvm::log("Initializing a new \""+bias_type+"\" instance.\n"); - rank = cvm::main()->num_biases_type(bias_type); - get_keyval(conf, "name", name, bias_type+cvm::to_str(rank)); - { - colvarbias *bias_with_name = cvm::bias_by_name(this->name); - if (bias_with_name != NULL) { - if ((bias_with_name->rank != this->rank) || - (bias_with_name->bias_type != this->bias_type)) { - cvm::error("Error: this bias cannot have the same name, \""+this->name+ - "\", as another bias.\n", INPUT_ERROR); - return INPUT_ERROR; - } + // Only allow setting a non-default name on first init + get_keyval(conf, "name", name, name); + + colvarbias *bias_with_name = cvm::bias_by_name(this->name); + if (bias_with_name != NULL) { + if ((bias_with_name->rank != this->rank) || + (bias_with_name->bias_type != this->bias_type)) { + cvm::error("Error: this bias cannot have the same name, \""+this->name+ + "\", as another bias.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } - description = "bias " + name; { @@ -72,8 +72,8 @@ int colvarbias::init(std::string const &conf) if (get_keyval(conf, "colvars", colvar_names)) { if (num_variables()) { cvm::error("Error: cannot redefine the colvars that a bias was already defined on.\n", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } for (i = 0; i < colvar_names.size(); i++) { add_colvar(colvar_names[i]); @@ -82,8 +82,8 @@ int colvarbias::init(std::string const &conf) } if (!num_variables()) { - cvm::error("Error: no collective variables specified.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: no collective variables specified.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } else { @@ -91,7 +91,6 @@ int colvarbias::init(std::string const &conf) } colvar_values.resize(num_variables()); - for (i = 0; i < num_variables(); i++) { colvar_values[i].type(colvars[i]->value().type()); colvar_forces[i].type(colvar_values[i].type()); @@ -117,6 +116,28 @@ int colvarbias::init(std::string const &conf) return COLVARS_ERROR; } + // Use the scaling factors from a grid? + get_keyval_feature(this, conf, "scaledBiasingForce", + f_cvb_scale_biasing_force, + is_enabled(f_cvb_scale_biasing_force), parse_echo); + if (is_enabled(f_cvb_scale_biasing_force)) { + std::string biasing_force_scaling_factors_in_filename; + get_keyval(conf, "scaledBiasingForceFactorsGrid", + biasing_force_scaling_factors_in_filename, std::string()); + std::ifstream is; + cvm::log("Reading scaling factors for the forces of bias " + + name + " from " + biasing_force_scaling_factors_in_filename); + is.open(biasing_force_scaling_factors_in_filename.c_str()); + if (!is.is_open()) { + cvm::error("Error opening the grid file " + + biasing_force_scaling_factors_in_filename + " for reading"); + } + biasing_force_scaling_factors = new colvar_grid_scalar(colvars); + biasing_force_scaling_factors->read_multicol(is, true); + biasing_force_scaling_factors_bin.assign(num_variables(), 0); + is.close(); + } + // Now that children are defined, we can solve dependencies enable(f_cvb_active); if (cvm::debug()) print_state(); @@ -174,6 +195,9 @@ int colvarbias::init_dependencies() { init_feature(f_cvb_write_ti_pmf, "write_TI_PMF", f_type_user); require_feature_self(f_cvb_write_ti_pmf, f_cvb_calc_ti_samples); + init_feature(f_cvb_scale_biasing_force, "scale_biasing_force", f_type_user); + require_feature_children(f_cvb_scale_biasing_force, f_cv_grid); + // check that everything is initialized for (i = 0; i < colvardeps::f_cvb_ntot; i++) { if (is_not_set(i)) { @@ -253,6 +277,12 @@ int colvarbias::clear() } } + if (biasing_force_scaling_factors != NULL) { + delete biasing_force_scaling_factors; + biasing_force_scaling_factors = NULL; + biasing_force_scaling_factors_bin.clear(); + } + cv->config_changed(); return COLVARS_OK; @@ -290,8 +320,8 @@ int colvarbias::add_colvar(std::string const &cv_name) } else { cvm::error("Error: cannot find a colvar named \""+ - cv_name+"\".\n", INPUT_ERROR); - return INPUT_ERROR; + cv_name+"\".\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } return COLVARS_OK; @@ -352,7 +382,16 @@ void colvarbias::communicate_forces() if (! is_enabled(f_cvb_apply_force)) { return; } + cvm::real biasing_force_factor = 1.0; size_t i = 0; + if (is_enabled(f_cvb_scale_biasing_force)) { + for (i = 0; i < num_variables(); i++) { + biasing_force_scaling_factors_bin[i] = biasing_force_scaling_factors->current_bin_scalar(i); + } + if (biasing_force_scaling_factors->index_ok(biasing_force_scaling_factors_bin)) { + biasing_force_factor *= biasing_force_scaling_factors->value(biasing_force_scaling_factors_bin); + } + } for (i = 0; i < num_variables(); i++) { if (cvm::debug()) { cvm::log("Communicating a force to colvar \""+ @@ -364,9 +403,9 @@ void colvarbias::communicate_forces() // which is why rescaling has to happen now: the colvar is not // aware of this bias' time_step_factor if (is_enabled(f_cvb_bypass_ext_lagrangian)) { - variables(i)->add_bias_force_actual_value(cvm::real(time_step_factor) * colvar_forces[i]); + variables(i)->add_bias_force_actual_value(cvm::real(time_step_factor) * colvar_forces[i] * biasing_force_factor); } else { - variables(i)->add_bias_force(cvm::real(time_step_factor) * colvar_forces[i]); + variables(i)->add_bias_force(cvm::real(time_step_factor) * colvar_forces[i] * biasing_force_factor); } previous_colvar_forces[i] = colvar_forces[i]; } @@ -437,7 +476,7 @@ int colvarbias::set_state_params(std::string const &conf) if (check_name.size() == 0) { cvm::error("Error: \""+bias_type+"\" block within the restart file " - "has no identifiers.\n", INPUT_ERROR); + "has no identifiers.\n", COLVARS_INPUT_ERROR); } if (check_name != this->name) { @@ -491,7 +530,7 @@ std::istream & colvarbias::read_state(std::istream &is) "\" bias \""+ this->name+"\" at position "+ cvm::to_str(static_cast(is.tellg()))+ - " in stream.\n", INPUT_ERROR); + " in stream.\n", COLVARS_INPUT_ERROR); is.clear(); is.seekg(start_pos, std::ios::beg); is.setstate(std::ios::failbit); @@ -511,7 +550,7 @@ std::istream & colvarbias::read_state(std::istream &is) cvm::error("Error: in reading state data for \""+bias_type+"\" bias \""+ this->name+"\" at position "+ cvm::to_str(static_cast(is.tellg()))+ - " in stream.\n", INPUT_ERROR); + " in stream.\n", COLVARS_INPUT_ERROR); is.clear(); is.seekg(start_pos, std::ios::beg); is.setstate(std::ios::failbit); @@ -538,9 +577,9 @@ int colvarbias::write_state_prefix(std::string const &prefix) int error_code = COLVARS_OK; if (os != NULL) { os->setf(std::ios::scientific, std::ios::floatfield); - error_code = write_state(*os).good() ? COLVARS_OK : FILE_ERROR; + error_code = write_state(*os).good() ? COLVARS_OK : COLVARS_FILE_ERROR; } else { - error_code = FILE_ERROR; + error_code = COLVARS_FILE_ERROR; } cvm::proxy->close_output_stream(filename.c_str()); return error_code; @@ -552,7 +591,7 @@ int colvarbias::write_state_string(std::string &output) std::ostringstream os; if (!write_state(os)) { return cvm::error("Error: in writing state of bias \""+name+ - "\" to buffer.\n", FILE_ERROR); + "\" to buffer.\n", COLVARS_FILE_ERROR); } output = os.str(); return COLVARS_OK; @@ -571,7 +610,7 @@ int colvarbias::read_state_prefix(std::string const &prefix) } return read_state(is).good() ? COLVARS_OK : cvm::error("Error: in reading state for \""+name+"\" from input file \""+ - std::string(filename)+"\".\n", FILE_ERROR); + std::string(filename)+"\".\n", COLVARS_FILE_ERROR); } @@ -589,12 +628,12 @@ int colvarbias::read_state_string(char const *buffer) is.rdbuf()->pubsetbuf(const_cast(buffer), buffer_size); return read_state(is).good() ? COLVARS_OK : cvm::error("Error: in reading state for \""+name+"\" from buffer.\n", - FILE_ERROR); + COLVARS_FILE_ERROR); } return COLVARS_OK; } return cvm::error("Error: NULL pointer for colvarbias::read_state_string()", - BUG_ERROR); + COLVARS_BUG_ERROR); } @@ -607,7 +646,7 @@ std::istream & colvarbias::read_state_data_key(std::istream &is, char const *key cvm::error("Error: in reading restart configuration for "+ bias_type+" bias \""+this->name+"\" at position "+ cvm::to_str(static_cast(is.tellg()))+ - " in stream.\n", INPUT_ERROR); + " in stream.\n", COLVARS_INPUT_ERROR); is.clear(); is.seekg(start_pos, std::ios::beg); is.setstate(std::ios::failbit); @@ -710,13 +749,17 @@ int colvarbias_ti::init(std::string const &conf) return cvm::error("Error: cannot collect TI samples while other " "time-dependent biases are active and not all " "variables have subtractAppliedForces on.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } } } } } + if (is_enabled(f_cvb_write_ti_pmf) || is_enabled(f_cvb_write_ti_samples)) { + cvm::main()->cite_feature("Internal-forces free energy estimator"); + } + return error_code; } diff --git a/lib/colvars/colvarbias.h b/lib/colvars/colvarbias.h index a2788eea72..ecb3e1eff1 100644 --- a/lib/colvars/colvarbias.h +++ b/lib/colvars/colvarbias.h @@ -14,6 +14,7 @@ #include "colvarparse.h" #include "colvardeps.h" +class colvar_grid_scalar; /// \brief Collective variable bias, base class class colvarbias @@ -29,7 +30,7 @@ public: /// Keyword used in state files (== bias_type most of the time) std::string state_keyword; - /// If there is more than one bias of this type, record its rank + /// Track how many times a bias of this type was defined int rank; /// Add a new collective variable to this bias @@ -256,6 +257,10 @@ protected: /// Flag used to tell if the state string being read is for this bias bool matching_state; + /// \brief The biasing forces will be scaled by the factor in this grid + /// if b_bias_force_scaled is true + colvar_grid_scalar* biasing_force_scaling_factors; + std::vector biasing_force_scaling_factors_bin; }; diff --git a/lib/colvars/colvarbias_abf.cpp b/lib/colvars/colvarbias_abf.cpp index 4893ceb46d..5cb5e7af24 100644 --- a/lib/colvars/colvarbias_abf.cpp +++ b/lib/colvars/colvarbias_abf.cpp @@ -39,6 +39,7 @@ colvarbias_abf::colvarbias_abf(char const *key) int colvarbias_abf::init(std::string const &conf) { colvarbias::init(conf); + cvm::main()->cite_feature("ABF colvar bias implementation"); colvarproxy *proxy = cvm::main()->proxy; @@ -81,11 +82,11 @@ int colvarbias_abf::init(std::string const &conf) if (history_freq != 0) { if (output_freq == 0) { cvm::error("Error: historyFreq must be a multiple of outputFreq.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } else { if ((history_freq % output_freq) != 0) { cvm::error("Error: historyFreq must be a multiple of outputFreq.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } } } @@ -94,10 +95,11 @@ int colvarbias_abf::init(std::string const &conf) // shared ABF get_keyval(conf, "shared", shared_on, false); if (shared_on) { + cvm::main()->cite_feature("Multiple-walker ABF implementation"); if ((proxy->replica_enabled() != COLVARS_OK) || (proxy->num_replicas() <= 1)) { return cvm::error("Error: shared ABF requires more than one replica.", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } cvm::log("shared ABF will be applied among "+ cvm::to_str(proxy->num_replicas()) + " replicas.\n"); @@ -156,6 +158,12 @@ int colvarbias_abf::init(std::string const &conf) // and make it just a warning if some parameter is set? } + if (b_extended) { + cvm::main()->cite_feature("eABF implementation"); + } else { + cvm::main()->cite_feature("Internal-forces free energy estimator"); + } + if (get_keyval(conf, "maxForce", max_force)) { if (max_force.size() != num_variables()) { cvm::error("Error: Number of parameters to maxForce does not match number of colvars."); @@ -188,6 +196,9 @@ int colvarbias_abf::init(std::string const &conf) // Data for eAB F z-based estimator if ( b_extended ) { get_keyval(conf, "CZARestimator", b_CZAR_estimator, true); + if ( b_CZAR_estimator ) { + cvm::main()->cite_feature("CZAR eABF estimator"); + } // CZAR output files for stratified eABF get_keyval(conf, "writeCZARwindowFile", b_czar_window_file, false, colvarparse::parse_silent); @@ -214,7 +225,7 @@ int colvarbias_abf::init(std::string const &conf) czar_pmf = new integrate_potential(colvars, czar_gradients); } // Parameters for integrating initial (and final) gradient data - get_keyval(conf, "integrateMaxIterations", integrate_iterations, 1e4, colvarparse::parse_silent); + get_keyval(conf, "integrateMaxIterations", integrate_iterations, 10000, colvarparse::parse_silent); get_keyval(conf, "integrateTol", integrate_tol, 1e-6, colvarparse::parse_silent); // Projected ABF, updating the integrated PMF on the fly get_keyval(conf, "pABFintegrateFreq", pabf_freq, 0, colvarparse::parse_silent); @@ -243,20 +254,21 @@ int colvarbias_abf::init(std::string const &conf) get_keyval(conf, "UIestimator", b_UI_estimator, false); if (b_UI_estimator) { - std::vector UI_lowerboundary; - std::vector UI_upperboundary; - std::vector UI_width; - std::vector UI_krestr; - bool UI_restart = (input_prefix.size() > 0); + cvm::main()->cite_feature("Umbrella-integration eABF estimator"); + std::vector UI_lowerboundary; + std::vector UI_upperboundary; + std::vector UI_width; + std::vector UI_krestr; - for (i = 0; i < num_variables(); i++) - { - UI_lowerboundary.push_back(colvars[i]->lower_boundary); - UI_upperboundary.push_back(colvars[i]->upper_boundary); - UI_width.push_back(colvars[i]->width); - UI_krestr.push_back(colvars[i]->force_constant()); - } + bool UI_restart = (input_prefix.size() > 0); + + for (i = 0; i < num_variables(); i++) { + UI_lowerboundary.push_back(colvars[i]->lower_boundary); + UI_upperboundary.push_back(colvars[i]->upper_boundary); + UI_width.push_back(colvars[i]->width); + UI_krestr.push_back(colvars[i]->force_constant()); + } eabf_UI = UIestimator::UIestimator(UI_lowerboundary, UI_upperboundary, UI_width, @@ -412,7 +424,7 @@ int colvarbias_abf::update() // Compute and apply the new bias, if applicable if (is_enabled(f_cvb_apply_force) && samples->index_ok(bin)) { - cvm::real count = samples->value(bin); + cvm::real count = cvm::real(samples->value(bin)); cvm::real fact = 1.0; // Factor that ensures smooth introduction of the force @@ -442,13 +454,13 @@ int colvarbias_abf::update() // This is enforced naturally if using integrated PMF colvar_forces[0].real_value = fact * (grad[0] - gradients->average ()); } else { - for (size_t i = 0; i < num_variables(); i++) { + for (i = 0; i < num_variables(); i++) { // subtracting the mean force (opposite of the FE gradient) means adding the gradient colvar_forces[i].real_value = fact * grad[i]; } } if (cap_force) { - for (size_t i = 0; i < num_variables(); i++) { + for (i = 0; i < num_variables(); i++) { if ( colvar_forces[i].real_value * colvar_forces[i].real_value > max_force[i] * max_force[i] ) { colvar_forces[i].real_value = (colvar_forces[i].real_value > 0 ? max_force[i] : -1.0 * max_force[i]); } @@ -484,7 +496,7 @@ int colvarbias_abf::update() { std::vector x(num_variables(),0); std::vector y(num_variables(),0); - for (size_t i = 0; i < num_variables(); i++) + for (i = 0; i < num_variables(); i++) { x[i] = colvars[i]->actual_value(); y[i] = colvars[i]->value(); @@ -589,7 +601,7 @@ template int colvarbias_abf::write_grid_to_file(T const *grid, bool close) { std::ostream *os = cvm::proxy->output_stream(filename); if (!os) { - return cvm::error("Error opening file " + filename + " for writing.\n", COLVARS_ERROR | FILE_ERROR); + return cvm::error("Error opening file " + filename + " for writing.\n", COLVARS_ERROR | COLVARS_FILE_ERROR); } grid->write_multicol(*os); if (close) { @@ -607,7 +619,7 @@ template int colvarbias_abf::write_grid_to_file(T const *grid, std::string dx = filename + ".dx"; std::ostream *dx_os = cvm::proxy->output_stream(dx); if (!dx_os) { - return cvm::error("Error opening file " + dx + " for writing.\n", COLVARS_ERROR | FILE_ERROR); + return cvm::error("Error opening file " + dx + " for writing.\n", COLVARS_ERROR | COLVARS_FILE_ERROR); } grid->write_opendx(*dx_os); // if (close) { @@ -709,7 +721,7 @@ void colvarbias_abf::read_gradients_samples() is.open(gradients_in_name.c_str()); if (!is.is_open()) { cvm::error("Error opening ABF gradient file " + - gradients_in_name + " for reading", INPUT_ERROR); + gradients_in_name + " for reading", COLVARS_INPUT_ERROR); } else { gradients->read_multicol(is, true); is.close(); @@ -765,7 +777,7 @@ std::ostream & colvarbias_abf::write_state_data(std::ostream& os) std::istream & colvarbias_abf::read_state_data(std::istream& is) { if ( input_prefix.size() > 0 ) { - cvm::error("ERROR: cannot provide both inputPrefix and a colvars state file.\n", INPUT_ERROR); + cvm::error("ERROR: cannot provide both inputPrefix and a colvars state file.\n", COLVARS_INPUT_ERROR); } if (! read_state_data_key(is, "samples")) { diff --git a/lib/colvars/colvarbias_alb.cpp b/lib/colvars/colvarbias_alb.cpp index 3508270bf6..5f39b0d93a 100644 --- a/lib/colvars/colvarbias_alb.cpp +++ b/lib/colvars/colvarbias_alb.cpp @@ -37,6 +37,7 @@ colvarbias_alb::colvarbias_alb(char const *key) int colvarbias_alb::init(std::string const &conf) { colvarbias::init(conf); + cvm::main()->cite_feature("ALB colvar bias implementation"); enable(f_cvb_scalar_variables); @@ -73,21 +74,21 @@ int colvarbias_alb::init(std::string const &conf) } } else { colvar_centers.clear(); - cvm::fatal_error("Error: must define the initial centers of adaptive linear bias .\n"); + cvm::error("Error: must define the initial centers of adaptive linear bias .\n"); } if (colvar_centers.size() != num_variables()) - cvm::fatal_error("Error: number of centers does not match " + cvm::error("Error: number of centers does not match " "that of collective variables.\n"); if (!get_keyval(conf, "UpdateFrequency", update_freq, 0)) - cvm::fatal_error("Error: must set updateFrequency for adaptive linear bias.\n"); + cvm::error("Error: must set updateFrequency for adaptive linear bias.\n"); //we split the time between updating and equilibrating update_freq /= 2; if (update_freq <= 1) - cvm::fatal_error("Error: must set updateFrequency to greater than 2.\n"); + cvm::error("Error: must set updateFrequency to greater than 2.\n"); enable(f_cvb_history_dependent); @@ -253,31 +254,31 @@ int colvarbias_alb::set_state_params(std::string const &conf) } if (!get_keyval(conf, "setCoupling", set_coupling)) - cvm::fatal_error("Error: current setCoupling is missing from the restart.\n"); + cvm::error("Error: current setCoupling is missing from the restart.\n"); if (!get_keyval(conf, "currentCoupling", current_coupling)) - cvm::fatal_error("Error: current setCoupling is missing from the restart.\n"); + cvm::error("Error: current setCoupling is missing from the restart.\n"); if (!get_keyval(conf, "maxCouplingRange", max_coupling_range)) - cvm::fatal_error("Error: maxCouplingRange is missing from the restart.\n"); + cvm::error("Error: maxCouplingRange is missing from the restart.\n"); if (!get_keyval(conf, "couplingRate", coupling_rate)) - cvm::fatal_error("Error: current setCoupling is missing from the restart.\n"); + cvm::error("Error: current setCoupling is missing from the restart.\n"); if (!get_keyval(conf, "couplingAccum", coupling_accum)) - cvm::fatal_error("Error: couplingAccum is missing from the restart.\n"); + cvm::error("Error: couplingAccum is missing from the restart.\n"); if (!get_keyval(conf, "mean", means)) - cvm::fatal_error("Error: current mean is missing from the restart.\n"); + cvm::error("Error: current mean is missing from the restart.\n"); if (!get_keyval(conf, "ssd", ssd)) - cvm::fatal_error("Error: current ssd is missing from the restart.\n"); + cvm::error("Error: current ssd is missing from the restart.\n"); if (!get_keyval(conf, "updateCalls", update_calls)) - cvm::fatal_error("Error: current updateCalls is missing from the restart.\n"); + cvm::error("Error: current updateCalls is missing from the restart.\n"); if (!get_keyval(conf, "b_equilibration", b_equilibration)) - cvm::fatal_error("Error: current updateCalls is missing from the restart.\n"); + cvm::error("Error: current updateCalls is missing from the restart.\n"); return COLVARS_OK; } diff --git a/lib/colvars/colvarbias_histogram.cpp b/lib/colvars/colvarbias_histogram.cpp index 92cc112845..2719489560 100644 --- a/lib/colvars/colvarbias_histogram.cpp +++ b/lib/colvars/colvarbias_histogram.cpp @@ -24,6 +24,7 @@ colvarbias_histogram::colvarbias_histogram(char const *key) int colvarbias_histogram::init(std::string const &conf) { colvarbias::init(conf); + cvm::main()->cite_feature("Histogram colvar bias implementation"); enable(f_cvb_scalar_variables); enable(f_cvb_history_dependent); @@ -48,27 +49,27 @@ int colvarbias_histogram::init(std::string const &conf) if (colvar_array) { for (i = 0; i < num_variables(); i++) { // should be all vector if (colvars[i]->value().type() != colvarvalue::type_vector) { - cvm::error("Error: used gatherVectorColvars with non-vector colvar.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: used gatherVectorColvars with non-vector colvar.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } if (i == 0) { colvar_array_size = colvars[i]->value().size(); if (colvar_array_size < 1) { - cvm::error("Error: vector variable has dimension less than one.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: vector variable has dimension less than one.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } else { if (colvar_array_size != colvars[i]->value().size()) { - cvm::error("Error: trying to combine vector colvars of different lengths.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: trying to combine vector colvars of different lengths.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } } } else { for (i = 0; i < num_variables(); i++) { // should be all scalar if (colvars[i]->value().type() != colvarvalue::type_scalar) { - cvm::error("Error: only scalar colvars are supported when gatherVectorColvars is off.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: only scalar colvars are supported when gatherVectorColvars is off.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } } @@ -184,7 +185,7 @@ int colvarbias_histogram::write_output_files() std::ostream *grid_os = cvm::proxy->output_stream(out_name); if (!grid_os) { return cvm::error("Error opening histogram file "+out_name+ - " for writing.\n", FILE_ERROR); + " for writing.\n", COLVARS_FILE_ERROR); } grid->write_multicol(*grid_os); cvm::proxy->close_output_stream(out_name); @@ -196,7 +197,7 @@ int colvarbias_histogram::write_output_files() std::ostream *grid_os = cvm::proxy->output_stream(out_name_dx); if (!grid_os) { return cvm::error("Error opening histogram file "+out_name_dx+ - " for writing.\n", FILE_ERROR); + " for writing.\n", COLVARS_FILE_ERROR); } grid->write_opendx(*grid_os); cvm::proxy->close_output_stream(out_name_dx); diff --git a/lib/colvars/colvarbias_histogram_reweight_amd.cpp b/lib/colvars/colvarbias_histogram_reweight_amd.cpp new file mode 100644 index 0000000000..97c278abcb --- /dev/null +++ b/lib/colvars/colvarbias_histogram_reweight_amd.cpp @@ -0,0 +1,393 @@ +// -*- c++ -*- + +// This file is part of the Collective Variables module (Colvars). +// The original version of Colvars and its updates are located at: +// https://github.com/Colvars/colvars +// Please update all Colvars source files before making any changes. +// If you wish to distribute your changes, please submit them to the +// Colvars repository at GitHub. + +#include "colvarbias_histogram_reweight_amd.h" +#include "colvarproxy.h" + +colvarbias_reweightaMD::colvarbias_reweightaMD(char const *key) + : colvarbias_histogram(key), grid_count(NULL), grid_dV(NULL), + grid_dV_square(NULL), pmf_grid_exp_avg(NULL), pmf_grid_cumulant(NULL), + grad_grid_exp_avg(NULL), grad_grid_cumulant(NULL) +{ +} + +colvarbias_reweightaMD::~colvarbias_reweightaMD() { + if (grid_dV) { + delete grid_dV; + grid_dV = NULL; + } + if (grid_dV_square) { + delete grid_dV_square; + grid_dV_square = NULL; + } + if (grid_count) { + delete grid_count; + grid_count = NULL; + } + if (pmf_grid_exp_avg) { + delete pmf_grid_exp_avg; + pmf_grid_exp_avg = NULL; + } + if (pmf_grid_cumulant) { + delete pmf_grid_cumulant; + pmf_grid_cumulant = NULL; + } + if (grad_grid_exp_avg) { + delete grad_grid_exp_avg; + grad_grid_exp_avg = NULL; + } + if (grad_grid_cumulant) { + delete grad_grid_cumulant; + grad_grid_cumulant = NULL; + } +} + +int colvarbias_reweightaMD::init(std::string const &conf) { + if (cvm::proxy->accelMD_enabled() == false) { + cvm::error("Error: accelerated MD in your MD engine is not enabled.\n", COLVARS_INPUT_ERROR); + } + cvm::main()->cite_feature("reweightaMD colvar bias implementation (NAMD)"); + int baseclass_init_code = colvarbias_histogram::init(conf); + get_keyval(conf, "CollectAfterSteps", start_after_steps, 0); + get_keyval(conf, "CumulantExpansion", b_use_cumulant_expansion, true); + get_keyval(conf, "WritePMFGradients", b_write_gradients, true); + get_keyval(conf, "historyFreq", history_freq, 0); + b_history_files = (history_freq > 0); + grid_count = new colvar_grid_scalar(colvars); + grid_count->request_actual_value(); + grid->request_actual_value(); + pmf_grid_exp_avg = new colvar_grid_scalar(colvars); + if (b_write_gradients) { + grad_grid_exp_avg = new colvar_grid_gradient(colvars); + } + if (b_use_cumulant_expansion) { + grid_dV = new colvar_grid_scalar(colvars); + grid_dV_square = new colvar_grid_scalar(colvars); + pmf_grid_cumulant = new colvar_grid_scalar(colvars); + grid_dV->request_actual_value(); + grid_dV_square->request_actual_value(); + if (b_write_gradients) { + grad_grid_cumulant = new colvar_grid_gradient(colvars); + } + } + previous_bin.assign(num_variables(), -1); + return baseclass_init_code; +} + +int colvarbias_reweightaMD::update() { + int error_code = COLVARS_OK; + if (cvm::step_relative() >= start_after_steps) { + // update base class + error_code |= colvarbias::update(); + + if (cvm::debug()) { + cvm::log("Updating histogram bias " + this->name); + } + + if (cvm::step_relative() > 0) { + previous_bin = bin; + } + + // assign a valid bin size + bin.assign(num_variables(), 0); + + if (colvar_array_size == 0) { + // update indices for scalar values + size_t i; + for (i = 0; i < num_variables(); i++) { + bin[i] = grid->current_bin_scalar(i); + } + + if (grid->index_ok(previous_bin) && cvm::step_relative() > 0) { + const cvm::real reweighting_factor = cvm::proxy->get_accelMD_factor(); + grid_count->acc_value(previous_bin, 1.0); + grid->acc_value(previous_bin, reweighting_factor); + if (b_use_cumulant_expansion) { + const cvm::real dV = cvm::logn(reweighting_factor) * + cvm::temperature() * cvm::boltzmann(); + grid_dV->acc_value(previous_bin, dV); + grid_dV_square->acc_value(previous_bin, dV * dV); + } + } + } else { + // update indices for vector/array values + size_t iv, i; + for (iv = 0; iv < colvar_array_size; iv++) { + for (i = 0; i < num_variables(); i++) { + bin[i] = grid->current_bin_scalar(i, iv); + } + + if (grid->index_ok(previous_bin) && cvm::step_relative() > 0) { + const cvm::real reweighting_factor = cvm::proxy->get_accelMD_factor(); + grid_count->acc_value(previous_bin, 1.0); + grid->acc_value(previous_bin, reweighting_factor); + if (b_use_cumulant_expansion) { + const cvm::real dV = cvm::logn(reweighting_factor) * + cvm::temperature() * cvm::boltzmann(); + grid_dV->acc_value(previous_bin, dV); + grid_dV_square->acc_value(previous_bin, dV * dV); + } + } + } + } + previous_bin.assign(num_variables(), 0); + + if (output_freq && (cvm::step_absolute() % output_freq) == 0) { + write_output_files(); + } + + error_code |= cvm::get_error(); + } + return error_code; +} + +int colvarbias_reweightaMD::write_output_files() { + int error_code = COLVARS_OK; + // error_code |= colvarbias_histogram::write_output_files(); + const std::string out_name_pmf = cvm::output_prefix() + "." + + this->name + ".reweight"; + error_code |= write_exponential_reweighted_pmf(out_name_pmf); + const std::string out_count_prefix = cvm::output_prefix() + "." + + this->name; + error_code |= write_count(out_count_prefix); + const bool write_history = b_history_files && + (cvm::step_absolute() % history_freq) == 0; + if (write_history) { + error_code |= write_exponential_reweighted_pmf( + out_name_pmf + ".hist", (cvm::step_relative() > 0)); + error_code |= write_count(out_count_prefix + ".hist", + (cvm::step_relative() > 0)); + } + if (b_use_cumulant_expansion) { + const std::string out_name_cumulant_pmf = cvm::output_prefix() + "." + + this->name + ".cumulant"; + error_code |= write_cumulant_expansion_pmf(out_name_cumulant_pmf); + if (write_history) { + error_code |= write_cumulant_expansion_pmf( + out_name_cumulant_pmf + ".hist", (cvm::step_relative() > 0)); + } + } + error_code |= cvm::get_error(); + return error_code; +} + +int colvarbias_reweightaMD::write_exponential_reweighted_pmf( + const std::string& p_output_prefix, bool append) { + const std::string output_pmf = p_output_prefix + ".pmf"; + cvm::log("Writing the accelerated MD PMF file \"" + output_pmf + "\".\n"); + if (!append) { + cvm::backup_file(output_pmf.c_str()); + } + const std::ios::openmode mode = (append ? std::ios::app : std::ios::out); + std::ostream *pmf_grid_os = cvm::proxy->output_stream(output_pmf, mode); + if (!pmf_grid_os) { + return cvm::error("Error opening PMF file " + output_pmf + + " for writing.\n", COLVARS_FILE_ERROR); + } + pmf_grid_exp_avg->copy_grid(*grid); + // compute the average + for (size_t i = 0; i < pmf_grid_exp_avg->raw_data_num(); ++i) { + const double count = grid_count->value(i); + if (count > 0) { + const double tmp = pmf_grid_exp_avg->value(i); + pmf_grid_exp_avg->set_value(i, tmp / count); + } + } + hist_to_pmf(pmf_grid_exp_avg, grid_count); + pmf_grid_exp_avg->write_multicol(*pmf_grid_os); + cvm::proxy->close_output_stream(output_pmf); + if (b_write_gradients) { + const std::string output_grad = p_output_prefix + ".grad"; + cvm::log("Writing the accelerated MD gradients file \"" + output_grad + + "\".\n"); + if (!append) { + cvm::backup_file(output_grad.c_str()); + } + std::ostream *grad_grid_os = cvm::proxy->output_stream(output_grad, mode); + if (!grad_grid_os) { + return cvm::error("Error opening grad file " + output_grad + + " for writing.\n", COLVARS_FILE_ERROR); + } + for (std::vector ix = grad_grid_exp_avg->new_index(); + grad_grid_exp_avg->index_ok(ix); grad_grid_exp_avg->incr(ix)) { + for (size_t n = 0; n < grad_grid_exp_avg->multiplicity(); n++) { + grad_grid_exp_avg->set_value( + ix, pmf_grid_exp_avg->gradient_finite_diff(ix, n), n); + } + } + grad_grid_exp_avg->write_multicol(*grad_grid_os); + cvm::proxy->close_output_stream(output_grad); + } + return COLVARS_OK; +} + +int colvarbias_reweightaMD::write_cumulant_expansion_pmf( + const std::string& p_output_prefix, bool append) { + const std::string output_pmf = p_output_prefix + ".pmf"; + cvm::log("Writing the accelerated MD PMF file using cumulant expansion: \"" + output_pmf + "\".\n"); + if (!append) cvm::backup_file(output_pmf.c_str()); + const std::ios::openmode mode = (append ? std::ios::app : std::ios::out); + std::ostream *pmf_grid_cumulant_os = cvm::proxy->output_stream(output_pmf, mode); + if (!pmf_grid_cumulant_os) { + return cvm::error("Error opening PMF file " + output_pmf + + " for writing.\n", COLVARS_FILE_ERROR); + } + compute_cumulant_expansion_factor(grid_dV, grid_dV_square, + grid_count, pmf_grid_cumulant); + hist_to_pmf(pmf_grid_cumulant, grid_count); + pmf_grid_cumulant->write_multicol(*pmf_grid_cumulant_os); + cvm::proxy->close_output_stream(output_pmf); + if (b_write_gradients) { + const std::string output_grad = p_output_prefix + ".grad"; + cvm::log("Writing the accelerated MD gradients file \"" + output_grad + "\".\n"); + if (!append) { + cvm::backup_file(output_grad.c_str()); + } + std::ostream *grad_grid_os = cvm::proxy->output_stream(output_grad, mode); + if (!grad_grid_os) { + return cvm::error("Error opening grad file " + output_grad + + " for writing.\n", COLVARS_FILE_ERROR); + } + for (std::vector ix = grad_grid_cumulant->new_index(); + grad_grid_cumulant->index_ok(ix); grad_grid_cumulant->incr(ix)) { + for (size_t n = 0; n < grad_grid_cumulant->multiplicity(); n++) { + grad_grid_cumulant->set_value( + ix, pmf_grid_cumulant->gradient_finite_diff(ix, n), n); + } + } + grad_grid_cumulant->write_multicol(*grad_grid_os); + cvm::proxy->close_output_stream(output_grad); + } + return COLVARS_OK; +} + +int colvarbias_reweightaMD::write_count(const std::string& p_output_prefix, bool append) { + const std::string output_name = p_output_prefix + ".count"; + cvm::log("Writing the accelerated MD count file \""+output_name+"\".\n"); + if (!append) cvm::backup_file(output_name.c_str()); + const std::ios::openmode mode = (append ? std::ios::app : std::ios::out); + std::ostream *grid_count_os = cvm::proxy->output_stream(output_name, mode); + if (!grid_count_os) { + return cvm::error("Error opening count file "+output_name+ + " for writing.\n", COLVARS_FILE_ERROR); + } + grid_count->write_multicol(*grid_count_os); + cvm::proxy->close_output_stream(output_name); + return COLVARS_OK; +} + +void colvarbias_reweightaMD::hist_to_pmf( + colvar_grid_scalar* hist, const colvar_grid_scalar* hist_count) const { + if (hist->raw_data_num() == 0) return; + const cvm::real kbt = cvm::boltzmann() * cvm::temperature(); + bool first_min_element = true; + bool first_max_element = true; + cvm::real min_element = 0; + cvm::real max_element = 0; + size_t i = 0; + // the first loop: using logarithm to compute PMF + for (i = 0; i < hist->raw_data_num(); ++i) { + const cvm::real count = hist_count->value(i); + if (count > 0) { + const cvm::real x = hist->value(i); + const cvm::real pmf_value = -1.0 * kbt * cvm::logn(x); + hist->set_value(i, pmf_value); + // find the minimum PMF value + if (first_min_element) { + // assign current PMF value to min_element at the first time + min_element = pmf_value; + first_min_element = false; + } else { + // if this is not the first time, then + min_element = (pmf_value < min_element) ? pmf_value : min_element; + } + // do the same to the maximum + if (first_max_element) { + max_element = pmf_value; + first_max_element = false; + } else { + max_element = (pmf_value > max_element) ? pmf_value : max_element; + } + } + } + // the second loop: bringing the minimum PMF value to zero + for (i = 0; i < hist->raw_data_num(); ++i) { + const cvm::real count = hist_count->value(i); + if (count > 0) { + // bins that have samples + const cvm::real x = hist->value(i); + hist->set_value(i, x - min_element); + } else { + hist->set_value(i, max_element - min_element); + } + } +} + +void colvarbias_reweightaMD::compute_cumulant_expansion_factor( + const colvar_grid_scalar* hist_dV, + const colvar_grid_scalar* hist_dV_square, + const colvar_grid_scalar* hist_count, + colvar_grid_scalar* cumulant_expansion_factor) const { + const cvm::real beta = 1.0 / (cvm::boltzmann() * cvm::temperature()); + size_t i = 0; + for (i = 0; i < hist_dV->raw_data_num(); ++i) { + const cvm::real count = hist_count->value(i); + if (count > 0) { + const cvm::real dV_avg = hist_dV->value(i) / count; + const cvm::real dV_square_avg = hist_dV_square->value(i) / count; + const cvm::real factor = cvm::exp(beta * dV_avg + 0.5 * beta * beta * (dV_square_avg - dV_avg * dV_avg)); + cumulant_expansion_factor->set_value(i, factor); + } + } +} + +std::ostream & colvarbias_reweightaMD::write_state_data(std::ostream& os) +{ + std::ios::fmtflags flags(os.flags()); + os.setf(std::ios::fmtflags(0), std::ios::floatfield); + os << "grid\n"; + grid->write_raw(os, 8); + os << "grid_count\n"; + grid_count->write_raw(os, 8); + os << "grid_dV\n"; + grid_dV->write_raw(os, 8); + os << "grid_dV_square\n"; + grid_dV_square->write_raw(os, 8); + os.flags(flags); + return os; +} + +std::istream & colvarbias_reweightaMD::read_state_data(std::istream& is) +{ + if (! read_state_data_key(is, "grid")) { + return is; + } + if (! grid->read_raw(is)) { + return is; + } + if (! read_state_data_key(is, "grid_count")) { + return is; + } + if (! grid_count->read_raw(is)) { + return is; + } + if (! read_state_data_key(is, "grid_dV")) { + return is; + } + if (! grid_dV->read_raw(is)) { + return is; + } + if (! read_state_data_key(is, "grid_dV_square")) { + return is; + } + if (! grid_dV_square->read_raw(is)) { + return is; + } + return is; +} diff --git a/lib/colvars/colvarbias_histogram_reweight_amd.h b/lib/colvars/colvarbias_histogram_reweight_amd.h new file mode 100644 index 0000000000..8d74b5315d --- /dev/null +++ b/lib/colvars/colvarbias_histogram_reweight_amd.h @@ -0,0 +1,104 @@ +// -*- c++ -*- + +// This file is part of the Collective Variables module (Colvars). +// The original version of Colvars and its updates are located at: +// https://github.com/Colvars/colvars +// Please update all Colvars source files before making any changes. +// If you wish to distribute your changes, please submit them to the +// Colvars repository at GitHub. + +#ifndef COLVARBIAS_HISTOGRAM_REWEIGHT_AMD +#define COLVARBIAS_HISTOGRAM_REWEIGHT_AMD + +#include "colvarbias_histogram.h" + +/// Reweighted histogram for accelerated molecular dynamics (aMD) or +/// Gaussian aMD (GaMD) +class colvarbias_reweightaMD : public colvarbias_histogram { +public: + colvarbias_reweightaMD(char const *key); + virtual ~colvarbias_reweightaMD(); +#if (__cplusplus >= 201103L) + virtual int init(std::string const &conf) override; + virtual int update() override; + virtual int write_output_files() override; +#else + virtual int init(std::string const &conf); + virtual int update(); + virtual int write_output_files(); +#endif + + /// @brief convert histogram to PMF by taking logarithm and multiplying + /// it with -1/beta + /// @param[in,out] hist the origin histogram and also the output PMF + /// @param[in] hist_count the sampling or biased histogram + void hist_to_pmf( + colvar_grid_scalar* hist, + const colvar_grid_scalar* hist_count) const; + + /// @brief calculate the cumulant expansion to second order + /// @param[in] hist_dV the histogram of the boosting potential, ΔV(ξ) + /// @param[in] hist_dV_square the histogram of the square of boosting + /// potential + /// @param[in] hist_count the sampling or biased histogram + /// @param[out] cumulant_expansion_factor the factor of the cumulant + /// expansion to second order + void compute_cumulant_expansion_factor( + const colvar_grid_scalar* hist_dV, + const colvar_grid_scalar* hist_dV_square, + const colvar_grid_scalar* hist_count, + colvar_grid_scalar* cumulant_expansion_factor) const; + + /// @brief output the PMF by the exponential average estimator + /// @param[in] p_output_prefix the prefix of the output file + /// @param[in] append append the output to a .hist file if true + virtual int write_exponential_reweighted_pmf( + const std::string& p_output_prefix, bool append = false); + + /// @brief output the PMF by the cumulant expansion estimator + /// @param[in] p_output_prefix the prefix of the output file + /// @param[in] append append the output to a .hist file if true + virtual int write_cumulant_expansion_pmf( + const std::string& p_output_prefix, bool append = false); + + /// @brief output the biased sampling + /// @param[in] p_output_prefix the prefix of the output file + /// @param[in] append append the output to a .hist file if true + virtual int write_count( + const std::string& p_output_prefix, bool append = false); +protected: + /// Current accelMD factor is the from previous frame + std::vector previous_bin; + /// Start collecting samples after N steps + colvarmodule::step_number start_after_steps; + + /// Use cumulant expansion to second order? + bool b_use_cumulant_expansion; + colvar_grid_scalar* grid_count; + colvar_grid_scalar* grid_dV; + colvar_grid_scalar* grid_dV_square; + + /// Number of timesteps between recording data in history files (if non-zero) + size_t history_freq; + bool b_history_files; + + /// Write gradients of the PMF? + bool b_write_gradients; + + /// save and restore +#if (__cplusplus >= 201103L) + virtual std::istream & read_state_data(std::istream &is) override; + virtual std::ostream & write_state_data(std::ostream &os) override; +#else + virtual std::istream & read_state_data(std::istream &is); + virtual std::ostream & write_state_data(std::ostream &os); +#endif +private: + /// temporary grids for evaluating PMFs + colvar_grid_scalar *pmf_grid_exp_avg; + colvar_grid_scalar *pmf_grid_cumulant; + colvar_grid_gradient *grad_grid_exp_avg; + colvar_grid_gradient *grad_grid_cumulant; +}; + +#endif // COLVARBIAS_HISTOGRAM_REWEIGHT_AMD diff --git a/lib/colvars/colvarbias_meta.cpp b/lib/colvars/colvarbias_meta.cpp index ccbd6c406f..911a1d89c1 100644 --- a/lib/colvars/colvarbias_meta.cpp +++ b/lib/colvars/colvarbias_meta.cpp @@ -38,6 +38,7 @@ colvarbias_meta::colvarbias_meta(char const *key) new_hills_begin = hills.end(); hills_traj_os = NULL; + hill_weight = 0.0; hill_width = 0.0; new_hill_freq = 1000; @@ -71,13 +72,15 @@ int colvarbias_meta::init(std::string const &conf) error_code |= colvarbias::init(conf); error_code |= colvarbias_ti::init(conf); + cvm::main()->cite_feature("Metadynamics colvar bias implementation"); + enable(f_cvb_calc_pmf); - get_keyval(conf, "hillWeight", hill_weight, 0.0); + get_keyval(conf, "hillWeight", hill_weight, hill_weight); if (hill_weight > 0.0) { enable(f_cvb_apply_force); } else { - cvm::error("Error: hillWeight must be provided, and a positive number.\n", INPUT_ERROR); + cvm::error("Error: hillWeight must be provided, and a positive number.\n", COLVARS_INPUT_ERROR); } get_keyval(conf, "newHillFrequency", new_hill_freq, new_hill_freq); @@ -94,7 +97,7 @@ int colvarbias_meta::init(std::string const &conf) if ((colvar_sigmas.size() > 0) && (hill_width > 0.0)) { error_code |= cvm::error("Error: hillWidth and gaussianSigmas are " - "mutually exclusive.", INPUT_ERROR); + "mutually exclusive.", COLVARS_INPUT_ERROR); } if (hill_width > 0.0) { @@ -111,16 +114,18 @@ int colvarbias_meta::init(std::string const &conf) if (colvar_sigmas.size() == 0) { error_code |= cvm::error("Error: positive values are required for " "either hillWidth or gaussianSigmas.", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } { bool b_replicas = false; get_keyval(conf, "multipleReplicas", b_replicas, false); - if (b_replicas) - comm = multiple_replicas; - else + if (b_replicas) { + cvm::main()->cite_feature("Multiple-walker metadynamics colvar bias implementation"); + comm = multiple_replicas; + } else { comm = single_replica; + } } get_keyval(conf, "useGrids", use_grids, use_grids); @@ -174,7 +179,7 @@ int colvarbias_meta::init(std::string const &conf) cvm::log("Done initializing the metadynamics bias \""+this->name+"\""+ ((comm != single_replica) ? ", replica \""+replica_id+"\"" : "")+".\n"); - return COLVARS_OK; + return error_code; } @@ -209,7 +214,7 @@ int colvarbias_meta::init_replicas_params(std::string const &conf) replica_id+".\n"); } else { return cvm::error("Error: using more than one replica, but replicaID " - "could not be obtained.\n", INPUT_ERROR); + "could not be obtained.\n", COLVARS_INPUT_ERROR); } } @@ -217,26 +222,26 @@ int colvarbias_meta::init_replicas_params(std::string const &conf) replicas_registry_file); if (!replicas_registry_file.size()) { return cvm::error("Error: the name of the \"replicasRegistry\" file " - "must be provided.\n", INPUT_ERROR); + "must be provided.\n", COLVARS_INPUT_ERROR); } get_keyval(conf, "replicaUpdateFrequency", replica_update_freq, replica_update_freq); if (replica_update_freq == 0) { return cvm::error("Error: replicaUpdateFrequency must be positive.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (expand_grids) { return cvm::error("Error: expandBoundaries is not supported when " "using more than one replicas; please allocate " "wide enough boundaries for each colvar" - "ahead of time.\n", INPUT_ERROR); + "ahead of time.\n", COLVARS_INPUT_ERROR); } if (keep_hills) { return cvm::error("Error: multipleReplicas and keepHills are not " - "supported together.\n", INPUT_ERROR); + "supported together.\n", COLVARS_INPUT_ERROR); } } @@ -250,7 +255,8 @@ int colvarbias_meta::init_well_tempered_params(std::string const &conf) get_keyval(conf, "wellTempered", well_tempered, false); get_keyval(conf, "biasTemperature", bias_temperature, -1.0); if ((bias_temperature == -1.0) && well_tempered) { - cvm::fatal_error("Error: biasTemperature is not set.\n"); + cvm::error("Error: biasTemperature must be set to a positive value.\n", + COLVARS_INPUT_ERROR); } if (well_tempered) { cvm::log("Well-tempered metadynamics is used.\n"); @@ -266,11 +272,12 @@ int colvarbias_meta::init_ebmeta_params(std::string const &conf) target_dist = NULL; get_keyval(conf, "ebMeta", ebmeta, false); if(ebmeta){ + cvm::main()->cite_feature("Ensemble-biased metadynamics (ebMetaD)"); if (use_grids && expand_grids) { - cvm::fatal_error("Error: expandBoundaries is not supported with " - "ebMeta please allocate wide enough boundaries for " - "each colvar ahead of time and set targetdistfile " - "accordingly. \n"); + cvm::error("Error: expandBoundaries is not supported with " + "ebMeta please allocate wide enough boundaries for " + "each colvar ahead of time and set targetdistfile " + "accordingly.\n", COLVARS_INPUT_ERROR); } target_dist = new colvar_grid_scalar(); target_dist->init_from_colvars(colvars); @@ -282,7 +289,7 @@ int colvarbias_meta::init_ebmeta_params(std::string const &conf) cvm::real max_val = target_dist->maximum_value(); if(min_val<0){ cvm::error("Error: Target distribution of EBMetaD " - "has negative values!.\n", INPUT_ERROR); + "has negative values!.\n", COLVARS_INPUT_ERROR); } cvm::real target_dist_min_val; get_keyval(conf, "targetDistMinVal", target_dist_min_val, 1/1000000.0); @@ -296,7 +303,7 @@ int colvarbias_meta::init_ebmeta_params(std::string const &conf) cvm::real min_pos_val = target_dist->minimum_pos_value(); if(min_pos_val<=0){ cvm::error("Error: Target distribution of EBMetaD has negative " - "or zero minimum positive value!.\n", INPUT_ERROR); + "or zero minimum positive value!.\n", COLVARS_INPUT_ERROR); } if(min_val==0){ cvm::log("WARNING: Target distribution has zero values.\n"); @@ -304,7 +311,7 @@ int colvarbias_meta::init_ebmeta_params(std::string const &conf) target_dist->remove_small_values(min_pos_val); } } else { - cvm::error("Error: targetDistMinVal must be a value between 0 and 1!.\n", INPUT_ERROR); + cvm::error("Error: targetDistMinVal must be a value between 0 and 1!.\n", COLVARS_INPUT_ERROR); } } // normalize target distribution and multiply by effective volume = exp(differential entropy) @@ -618,7 +625,7 @@ int colvarbias_meta::update_bias() } else { return cvm::error("Error: in metadynamics bias \""+this->name+"\""+ ((comm != single_replica) ? ", replica \""+replica_id+"\"" : "")+ - " while writing hills for the other replicas.\n", FILE_ERROR); + " while writing hills for the other replicas.\n", COLVARS_FILE_ERROR); } break; } @@ -936,7 +943,7 @@ void colvarbias_meta::project_hills(colvarbias_meta::hill_iter h_first, } else { cvm::error("No grid object provided in metadynamics::project_hills()\n", - BUG_ERROR); + COLVARS_BUG_ERROR); } if (print_progress) { @@ -1006,7 +1013,7 @@ void colvarbias_meta::update_replicas_registry() replicas_registry.append(line+"\n"); } else { cvm::error("Error: failed to open file \""+replicas_registry_file+ - "\" for reading.\n", FILE_ERROR); + "\" for reading.\n", COLVARS_FILE_ERROR); } } @@ -1075,7 +1082,7 @@ void colvarbias_meta::update_replicas_registry() } } else { cvm::error("Error: cannot read the replicas registry file \""+ - replicas_registry+"\".\n", FILE_ERROR); + replicas_registry+"\".\n", COLVARS_FILE_ERROR); } // now (re)read the list file of each replica @@ -1277,7 +1284,7 @@ int colvarbias_meta::set_state_params(std::string const &state_conf) return cvm::error("Error: in the state file , the " "\"metadynamics\" block has a different replicaID ("+ check_replica+" instead of "+replica_id+").\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } return COLVARS_OK; @@ -1331,16 +1338,13 @@ std::istream & colvarbias_meta::read_state_data(std::istream& is) is.clear(); is.seekg(hills_energy_pos, std::ios::beg); if (!rebin_grids) { - if (hills_energy_backup == NULL) - cvm::fatal_error("Error: couldn't read the free energy grid for metadynamics bias \""+ - this->name+"\""+ - ((comm != single_replica) ? ", replica \""+replica_id+"\"" : "")+ - "; if useGrids was off when the state file was written, " - "enable rebinGrids now to regenerate the grids.\n"); - else { - if (comm == single_replica) - cvm::log("Error: couldn't read the free energy grid for metadynamics bias \""+ - this->name+"\".\n"); + if ((hills_energy_backup == NULL) || (comm == single_replica)) { + cvm::error("Error: couldn't read the energy grid for metadynamics bias \""+ + this->name+"\""+ + ((comm != single_replica) ? ", replica \""+replica_id+"\"" : "")+ + "; if useGrids was off when the state file was written, " + "enable rebinGrids now to regenerate the grids.\n"); + } else { delete hills_energy; delete hills_energy_gradients; hills_energy = hills_energy_backup; @@ -1368,16 +1372,13 @@ std::istream & colvarbias_meta::read_state_data(std::istream& is) is.clear(); is.seekg(hills_energy_gradients_pos, std::ios::beg); if (!rebin_grids) { - if (hills_energy_backup == NULL) - cvm::fatal_error("Error: couldn't read the free energy gradients grid for metadynamics bias \""+ - this->name+"\""+ - ((comm != single_replica) ? ", replica \""+replica_id+"\"" : "")+ - "; if useGrids was off when the state file was written, " - "enable rebinGrids now to regenerate the grids.\n"); - else { - if (comm == single_replica) - cvm::log("Error: couldn't read the free energy gradients grid for metadynamics bias \""+ - this->name+"\".\n"); + if ((hills_energy_backup == NULL) || (comm == single_replica)) { + cvm::error("Error: couldn't read the gradients grid for metadynamics bias \""+ + this->name+"\""+ + ((comm != single_replica) ? ", replica \""+replica_id+"\"" : "")+ + "; if useGrids was off when the state file was written, " + "enable rebinGrids now to regenerate the grids.\n"); + } else { delete hills_energy; delete hills_energy_gradients; hills_energy = hills_energy_backup; @@ -1393,6 +1394,8 @@ std::istream & colvarbias_meta::read_state_data(std::istream& is) this->name+"\""+ ((comm != single_replica) ? ", replica \""+replica_id+"\"" : "")+"\n"); + cvm::log(" read biasing energy and forces from grids.\n"); + if (hills_energy_backup != NULL) { // now that we have successfully updated the grids, delete the // backup copies @@ -1422,7 +1425,8 @@ std::istream & colvarbias_meta::read_state_data(std::istream& is) } is.clear(); new_hills_begin = hills.end(); - cvm::log("Read "+cvm::to_str(hills.size() - old_hills_size)+" hills.\n"); + cvm::log(" read "+cvm::to_str(hills.size() - old_hills_size)+ + " additional explicit hills.\n"); if (existing_hills) { hills.erase(hills.begin(), old_hills_end); @@ -1579,7 +1583,7 @@ std::istream & colvarbias_meta::read_hill(std::istream &is) if (h_replica != replica_id) { cvm::error("Error: trying to read a hill created by replica \""+ h_replica+"\" for replica \""+replica_id+ - "\"; did you swap output files?\n", INPUT_ERROR); + "\"; did you swap output files?\n", COLVARS_INPUT_ERROR); } } } @@ -1623,7 +1627,7 @@ int colvarbias_meta::setup_output() // TODO: one may want to specify the path manually for intricated filesystems? char *pwd = new char[3001]; if (GETCWD(pwd, 3000) == NULL) - cvm::fatal_error("Error: cannot get the path of the current working directory.\n"); + cvm::error("Error: cannot get the path of the current working directory.\n"); replica_list_file = (std::string(pwd)+std::string(PATHSEP)+ this->name+"."+replica_id+".files.txt"); @@ -1902,7 +1906,7 @@ int colvarbias_meta::write_replica_state_file() if (rep_state_os) { if (!write_state(*rep_state_os)) { error_code |= cvm::error("Error: in writing to temporary file \""+ - tmp_state_file+"\".\n", FILE_ERROR); + tmp_state_file+"\".\n", COLVARS_FILE_ERROR); } } error_code |= proxy->close_output_stream(tmp_state_file); @@ -1925,7 +1929,7 @@ int colvarbias_meta::reopen_replica_buffer_file() if (replica_hills_os) { replica_hills_os->setf(std::ios::scientific, std::ios::floatfield); } else { - error_code |= FILE_ERROR; + error_code |= COLVARS_FILE_ERROR; } return error_code; } @@ -2003,6 +2007,21 @@ colvarbias_meta::hill::hill(colvarbias_meta::hill const &h) } +colvarbias_meta::hill & +colvarbias_meta::hill::operator = (colvarbias_meta::hill const &h) +{ + it = h.it; + hill_value = 0.0; + sW = 1.0; + W = h.W; + centers = h.centers; + sigmas = h.sigmas; + replica = h.replica; + hill_value = h.hill_value; + return *this; +} + + colvarbias_meta::hill::~hill() {} diff --git a/lib/colvars/colvarbias_meta.h b/lib/colvars/colvarbias_meta.h index bf1710170e..565534f22b 100644 --- a/lib/colvars/colvarbias_meta.h +++ b/lib/colvars/colvarbias_meta.h @@ -313,6 +313,9 @@ public: /// Destructor ~hill(); + /// Assignment operator + hill & operator = (colvarbias_meta::hill const &h); + /// Get the energy inline cvm::real energy() { diff --git a/lib/colvars/colvarbias_restraint.cpp b/lib/colvars/colvarbias_restraint.cpp index 486d77688b..0b374db9a8 100644 --- a/lib/colvars/colvarbias_restraint.cpp +++ b/lib/colvars/colvarbias_restraint.cpp @@ -121,14 +121,14 @@ int colvarbias_restraint_centers::init(std::string const &conf) if (null_centers) { colvar_centers.clear(); - cvm::error("Error: must define the initial centers of the restraints.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: must define the initial centers of the restraints.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } if (colvar_centers.size() != num_variables()) { cvm::error("Error: number of centers does not match " - "that of collective variables.\n", INPUT_ERROR); - return INPUT_ERROR; + "that of collective variables.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } return COLVARS_OK; @@ -160,8 +160,8 @@ int colvarbias_restraint_k::init(std::string const &conf) { get_keyval(conf, "forceConstant", force_k, (force_k > 0.0 ? force_k : 1.0)); if (check_positive_k && (force_k < 0.0)) { - cvm::error("Error: undefined or invalid force constant.\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::error("Error: undefined or invalid force constant.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } return COLVARS_OK; } @@ -190,21 +190,21 @@ int colvarbias_restraint_moving::init(std::string const &conf) { if (b_chg_centers && b_chg_force_k) { cvm::error("Error: cannot specify both targetCenters and targetForceConstant.\n", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } if (b_chg_centers || b_chg_force_k) { get_keyval(conf, "targetNumSteps", target_nsteps, target_nsteps); if (!target_nsteps) { - cvm::error("Error: targetNumSteps must be non-zero.\n", INPUT_ERROR); + cvm::error("Error: targetNumSteps must be non-zero.\n", COLVARS_INPUT_ERROR); return cvm::get_error(); } if (get_keyval(conf, "targetNumStages", target_nstages, target_nstages) && lambda_schedule.size()) { - cvm::error("Error: targetNumStages and lambdaSchedule are incompatible.\n", INPUT_ERROR); + cvm::error("Error: targetNumStages and lambdaSchedule are incompatible.\n", COLVARS_INPUT_ERROR); return cvm::get_error(); } @@ -213,7 +213,7 @@ int colvarbias_restraint_moving::init(std::string const &conf) is_enabled(f_cvb_output_acc_work)); if (is_enabled(f_cvb_output_acc_work) && (target_nstages > 0)) { return cvm::error("Error: outputAccumulatedWork and targetNumStages " - "are incompatible.\n", INPUT_ERROR); + "are incompatible.\n", COLVARS_INPUT_ERROR); } } @@ -273,7 +273,7 @@ int colvarbias_restraint_centers_moving::init(std::string const &conf) if (get_keyval(conf, "targetCenters", target_centers, colvar_centers)) { if (target_centers.size() != num_variables()) { cvm::error("Error: number of target centers does not match " - "that of collective variables.\n", INPUT_ERROR); + "that of collective variables.\n", COLVARS_INPUT_ERROR); } b_chg_centers = true; for (i = 0; i < target_centers.size(); i++) { @@ -525,7 +525,7 @@ int colvarbias_restraint_k_moving::init(std::string const &conf) if (get_keyval(conf, "lambdaSchedule", lambda_schedule, lambda_schedule) && target_nstages > 0) { - cvm::error("Error: targetNumStages and lambdaSchedule are incompatible.\n", INPUT_ERROR); + cvm::error("Error: targetNumStages and lambdaSchedule are incompatible.\n", COLVARS_INPUT_ERROR); return cvm::get_error(); } @@ -726,6 +726,8 @@ int colvarbias_restraint_harmonic::init(std::string const &conf) colvarbias_restraint_centers_moving::init(conf); colvarbias_restraint_k_moving::init(conf); + cvm::main()->cite_feature("Harmonic colvar bias implementation"); + for (size_t i = 0; i < num_variables(); i++) { cvm::real const w = variables(i)->width; cvm::log("The force constant for colvar \""+variables(i)->name+ @@ -880,6 +882,8 @@ int colvarbias_restraint_harmonic_walls::init(std::string const &conf) colvarbias_restraint_moving::init(conf); colvarbias_restraint_k_moving::init(conf); + cvm::main()->cite_feature("harmonicWalls colvar bias implementation"); + enable(f_cvb_scalar_variables); size_t i; @@ -915,7 +919,7 @@ int colvarbias_restraint_harmonic_walls::init(std::string const &conf) } if ((lower_walls.size() == 0) && (upper_walls.size() == 0)) { - return cvm::error("Error: no walls provided.\n", INPUT_ERROR); + return cvm::error("Error: no walls provided.\n", COLVARS_INPUT_ERROR); } if (lower_walls.size() > 0) { @@ -931,7 +935,7 @@ int colvarbias_restraint_harmonic_walls::init(std::string const &conf) for (i = 0; i < num_variables(); i++) { if (variables(i)->is_enabled(f_cv_periodic)) { return cvm::error("Error: at least one variable is periodic, " - "both walls must be provided.\n", INPUT_ERROR); + "both walls must be provided.\n", COLVARS_INPUT_ERROR); } } } @@ -943,19 +947,19 @@ int colvarbias_restraint_harmonic_walls::init(std::string const &conf) cvm::to_str(upper_walls[i])+ ", is not higher than the lower wall, "+ cvm::to_str(lower_walls[i])+".\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (variables(i)->dist2(lower_walls[i], upper_walls[i]) < 1.0e-12) { return cvm::error("Error: lower wall and upper wall are equal " "in the domain of the variable \""+ - variables(i)->name+"\".\n", INPUT_ERROR); + variables(i)->name+"\".\n", COLVARS_INPUT_ERROR); } } if (lower_wall_k * upper_wall_k == 0.0) { cvm::error("Error: lowerWallConstant and upperWallConstant, " "when defined, must both be positive.\n", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } force_k = cvm::sqrt(lower_wall_k * upper_wall_k); // transform the two constants to relative values using gemetric mean as ref @@ -1148,11 +1152,13 @@ int colvarbias_restraint_linear::init(std::string const &conf) colvarbias_restraint_centers_moving::init(conf); colvarbias_restraint_k_moving::init(conf); + cvm::main()->cite_feature("harmonicWalls colvar bias implementation"); + for (size_t i = 0; i < num_variables(); i++) { if (variables(i)->is_enabled(f_cv_periodic)) { cvm::error("Error: linear biases cannot be applied to periodic variables.\n", - INPUT_ERROR); - return INPUT_ERROR; + COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } cvm::real const w = variables(i)->width; cvm::log("The force constant for colvar \""+variables(i)->name+ @@ -1299,12 +1305,14 @@ int colvarbias_restraint_histogram::init(std::string const &conf) colvarbias::init(conf); enable(f_cvb_apply_force); + cvm::main()->cite_feature("histogramRestraint colvar bias implementation"); + get_keyval(conf, "lowerBoundary", lower_boundary, lower_boundary); get_keyval(conf, "upperBoundary", upper_boundary, upper_boundary); get_keyval(conf, "width", width, width); if (width <= 0.0) { - cvm::error("Error: \"width\" must be positive.\n", INPUT_ERROR); + cvm::error("Error: \"width\" must be positive.\n", COLVARS_INPUT_ERROR); } get_keyval(conf, "gaussianWidth", gaussian_width, 2.0 * width, colvarparse::parse_silent); @@ -1315,7 +1323,7 @@ int colvarbias_restraint_histogram::init(std::string const &conf) cvm::to_str(upper_boundary)+ ", is not higher than the lower boundary, "+ cvm::to_str(lower_boundary)+".\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } cvm::real const nbins = (upper_boundary - lower_boundary) / width; @@ -1340,7 +1348,7 @@ int colvarbias_restraint_histogram::init(std::string const &conf) if (ref_p_file.size()) { if (inline_ref_p) { cvm::error("Error: cannot specify both refHistogram and refHistogramFile at the same time.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } else { std::ifstream is(ref_p_file.c_str()); std::string data_s = ""; @@ -1349,7 +1357,7 @@ int colvarbias_restraint_histogram::init(std::string const &conf) data_s.append(line+"\n"); } if (data_s.size() == 0) { - cvm::error("Error: file \""+ref_p_file+"\" empty or unreadable.\n", FILE_ERROR); + cvm::error("Error: file \""+ref_p_file+"\" empty or unreadable.\n", COLVARS_FILE_ERROR); } is.close(); cvm::vector1d data; @@ -1366,7 +1374,7 @@ int colvarbias_restraint_histogram::init(std::string const &conf) ref_p = data; } else { cvm::error("Error: file \""+ref_p_file+"\" contains a histogram of different length.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } } } diff --git a/lib/colvars/colvarbias_restraint.h b/lib/colvars/colvarbias_restraint.h index ac25e35646..b2c9055dfe 100644 --- a/lib/colvars/colvarbias_restraint.h +++ b/lib/colvars/colvarbias_restraint.h @@ -12,6 +12,11 @@ #include "colvarbias.h" +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4250) // Silence diamond inheritance warning +#endif + /// \brief Most general definition of a colvar restraint: /// see derived classes for specific types /// (implementation of \link colvarbias \endlink) @@ -359,5 +364,8 @@ protected: bool b_write_histogram; }; +#ifdef _MSC_VER +#pragma warning(pop) +#endif #endif diff --git a/lib/colvars/colvarcomp.cpp b/lib/colvars/colvarcomp.cpp index 8938e64a0e..abe522a249 100644 --- a/lib/colvars/colvarcomp.cpp +++ b/lib/colvars/colvarcomp.cpp @@ -25,7 +25,7 @@ colvar::cvc::cvc() period = 0.0; wrap_center = 0.0; width = 0.0; - init_dependencies(); + cvc::init_dependencies(); } @@ -39,7 +39,26 @@ colvar::cvc::cvc(std::string const &conf) wrap_center = 0.0; width = 0.0; init_dependencies(); - init(conf); + colvar::cvc::init(conf); +} + + +int colvar::cvc::set_function_type(std::string const &type) +{ + function_type = type; + if (function_types.size() == 0) { + function_types.push_back(function_type); + } else { + if (function_types.back() != function_type) { + function_types.push_back(function_type); + } + } + for (size_t i = function_types.size()-1; i > 0; i--) { + cvm::main()->cite_feature(function_types[i]+" colvar component"+ + " (derived from "+function_types[i-1]+")"); + } + cvm::main()->cite_feature(function_types[0]+" colvar component"); + return COLVARS_OK; } @@ -63,13 +82,16 @@ int colvar::cvc::init(std::string const &conf) if ((name != old_name) && (old_name.size() > 0)) { cvm::error("Error: cannot rename component \""+old_name+ "\" after initialization (new name = \""+name+"\")", - INPUT_ERROR); + COLVARS_INPUT_ERROR); name = old_name; } } get_keyval(conf, "componentCoeff", sup_coeff, sup_coeff); get_keyval(conf, "componentExp", sup_np, sup_np); + if (sup_coeff != 1.0 || sup_np != 1) { + cvm::main()->cite_feature("Linear and polynomial combination of colvar components"); + } // TODO these could be condensed into get_keyval() register_param("componentCoeff", reinterpret_cast(&sup_coeff)); register_param("componentExp", reinterpret_cast(&sup_np)); @@ -145,8 +167,8 @@ cvm::atom_group *colvar::cvc::parse_group(std::string const &conf, if (is_available(f_cvc_scalable_com) && is_enabled(f_cvc_com_based) && !is_enabled(f_cvc_debug_gradient)) { + disable(f_cvc_explicit_gradient); enable(f_cvc_scalable_com); - enable(f_cvc_scalable); // The CVC makes the feature available; // the atom group will enable it unless it needs to compute a rotational fit group->provide(f_ag_scalable_com); @@ -158,7 +180,7 @@ cvm::atom_group *colvar::cvc::parse_group(std::string const &conf, if (group_conf.size() == 0) { cvm::error("Error: atom group \""+group->key+ "\" is set, but has no definition.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return group; } @@ -169,7 +191,7 @@ cvm::atom_group *colvar::cvc::parse_group(std::string const &conf, group->check_keywords(group_conf, group_key); if (cvm::get_error()) { cvm::error("Error parsing definition for atom group \""+ - std::string(group_key)+"\".", INPUT_ERROR); + std::string(group_key)+"\".", COLVARS_INPUT_ERROR); } cvm::decrease_depth(); @@ -230,12 +252,18 @@ int colvar::cvc::init_dependencies() { init_feature(f_cvc_pbc_minimum_image, "use_minimum-image_with_PBCs", f_type_user); - init_feature(f_cvc_scalable, "scalable_calculation", f_type_static); - require_feature_self(f_cvc_scalable, f_cvc_scalable_com); + init_feature(f_cvc_scalable, "scalable_calculation", f_type_dynamic); + require_feature_self(f_cvc_scalable_com, f_cvc_scalable); + // CVC cannot compute atom-level gradients on rank 0 if colvar computation is distributed + exclude_feature_self(f_cvc_scalable, f_cvc_explicit_gradient); init_feature(f_cvc_scalable_com, "scalable_calculation_of_centers_of_mass", f_type_static); require_feature_self(f_cvc_scalable_com, f_cvc_com_based); + // CVC cannot compute atom-level gradients if computed on atom group COM + exclude_feature_self(f_cvc_scalable_com, f_cvc_explicit_gradient); + init_feature(f_cvc_collect_atom_ids, "collect_atom_ids", f_type_dynamic); + require_feature_children(f_cvc_collect_atom_ids, f_ag_collect_atom_ids); // TODO only enable this when f_ag_scalable can be turned on for a pre-initialized group // require_feature_children(f_cvc_scalable, f_ag_scalable); @@ -262,17 +290,15 @@ int colvar::cvc::init_dependencies() { // Each cvc specifies what other features are available feature_states[f_cvc_active].available = true; feature_states[f_cvc_gradient].available = true; + feature_states[f_cvc_collect_atom_ids].available = true; // CVCs are enabled from the start - get disabled based on flags enable(f_cvc_active); - // feature_states[f_cvc_active].enabled = true; - // Explicit gradients are implemented in mosts CVCs. Exceptions must be specified explicitly. - // feature_states[f_cvc_explicit_gradient].enabled = true; + // Explicit gradients are implemented in most CVCs. Exceptions must be specified explicitly. enable(f_cvc_explicit_gradient); // Use minimum-image distances by default - // feature_states[f_cvc_pbc_minimum_image].enabled = true; enable(f_cvc_pbc_minimum_image); // Features that are implemented by default if their requirements are @@ -316,7 +342,16 @@ void colvar::cvc::init_as_distance() void colvar::cvc::init_as_angle() { x.type(colvarvalue::type_scalar); - init_scalar_boundaries(0.0, 180); + init_scalar_boundaries(0.0, 180.0); +} + + +void colvar::cvc::init_as_periodic_angle() +{ + x.type(colvarvalue::type_scalar); + enable(f_cvc_periodic); + period = 360.0; + init_scalar_boundaries(-180.0, 180.0); } diff --git a/lib/colvars/colvarcomp.h b/lib/colvars/colvarcomp.h index 2f68ac6abc..9c93de4b49 100644 --- a/lib/colvars/colvarcomp.h +++ b/lib/colvars/colvarcomp.h @@ -28,6 +28,7 @@ #if (__cplusplus >= 201103L) // C++11-only functions #include "colvar_geometricpath.h" +#include #include #endif @@ -110,6 +111,9 @@ public: /// Calls the init() function of the class cvc(std::string const &conf); + /// Set the value of \link function_type \endlink and its dependencies + int set_function_type(std::string const &type); + /// An init function should be defined for every class inheriting from cvc /// \param conf Contents of the configuration file pertaining to this \link /// cvc \endlink @@ -279,6 +283,9 @@ public: protected: + /// Record the type of this class as well as those it is derived from + std::vector function_types; + /// \brief Cached value colvarvalue x; @@ -298,9 +305,12 @@ protected: /// \brief Set data types for a scalar distance (convenience function) void init_as_distance(); - /// \brief Set data types for a bounded angle (convenience function) + /// \brief Set data types for a bounded angle (0° to 180°) void init_as_angle(); + /// \brief Set data types for a periodic angle (-180° to 180°) + void init_as_periodic_angle(); + /// \brief Set two scalar boundaries (convenience function) void init_scalar_boundaries(cvm::real lb, cvm::real ub); @@ -347,8 +357,6 @@ protected: cvm::atom_group *group2; /// Vector distance, cached to be recycled cvm::rvector dist_v; - /// Use absolute positions, ignoring PBCs when present - bool b_no_PBC; public: distance(std::string const &conf); distance(); @@ -432,8 +440,6 @@ protected: cvm::atom_group *ref1; /// Optional, second ref atom group cvm::atom_group *ref2; - /// Use absolute positions, ignoring PBCs when present - bool b_no_PBC; /// Vector on which the distance vector is projected cvm::rvector axis; /// Norm of the axis @@ -560,8 +566,6 @@ protected: cvm::atom_group *group2; /// Components of the distance vector orthogonal to the axis int exponent; - /// Use absolute positions, ignoring PBCs when present - bool b_no_PBC; public: distance_inv(std::string const &conf); virtual ~distance_inv() {} @@ -588,8 +592,6 @@ protected: cvm::atom_group *group1; /// Second atom group cvm::atom_group *group2; - /// Use absolute positions, ignoring PBCs when present - bool b_no_PBC; public: distance_pairs(std::string const &conf); distance_pairs(); @@ -1500,6 +1502,29 @@ public: }; +// \brief Colvar component: alch_Flambda +// To communicate force on lambda with back-end in lambda-dynamics +class colvar::alch_Flambda + : public colvar::cvc +{ +protected: + // No atom groups needed +public: + alch_Flambda(std::string const &conf); + alch_Flambda(); + virtual ~alch_Flambda() {} + virtual void calc_value(); + virtual void calc_gradients(); + virtual void apply_force(colvarvalue const &force); + virtual cvm::real dist2(colvarvalue const &x1, + colvarvalue const &x2) const; + virtual colvarvalue dist2_lgrad(colvarvalue const &x1, + colvarvalue const &x2) const; + virtual colvarvalue dist2_rgrad(colvarvalue const &x1, + colvarvalue const &x2) const; +}; + + class colvar::componentDisabled : public colvar::cvc { @@ -1601,6 +1626,32 @@ public: }; +/// custom expression of colvars +class colvar::customColvar + : public colvar::linearCombination +{ +protected: + bool use_custom_function; +#ifdef LEPTON + /// Vector of evaluators for custom functions using Lepton + std::vector value_evaluators; + /// Vector of evaluators for gradients of custom functions + std::vector gradient_evaluators; + /// Vector of references to cvc values to be passed to Lepton evaluators + std::vector value_eval_var_refs; + std::vector grad_eval_var_refs; + /// Unused value that is written to when a variable simplifies out of a Lepton expression + double dev_null; +#endif +public: + customColvar(std::string const &conf); + virtual ~customColvar(); + virtual void calc_value(); + virtual void calc_gradients(); + virtual void apply_force(colvarvalue const &force); +}; + + class colvar::CVBasedPath : public colvar::cvc { @@ -1689,6 +1740,27 @@ public: virtual void apply_force(colvarvalue const &force); }; +// forward declaration +namespace neuralnetworkCV { + class neuralNetworkCompute; +} + +class colvar::neuralNetwork + : public linearCombination +{ +protected: + /// actual computation happens in neuralnetworkCV::neuralNetworkCompute + std::unique_ptr nn; + /// the index of nn output components + size_t m_output_index; +public: + neuralNetwork(std::string const &conf); + virtual ~neuralNetwork(); + virtual void calc_value(); + virtual void calc_gradients(); + virtual void apply_force(colvarvalue const &force); +}; + #else // if the compiler doesn't support C++11 class colvar::linearCombination @@ -1754,6 +1826,13 @@ public: azpathCV(std::string const &conf) : componentDisabled(conf) {} }; +class colvar::neuralNetwork + : public colvar::componentDisabled +{ +public: + neuralNetwork(std::string const &conf) : componentDisabled(conf) {} +}; + #endif // C++11 checking diff --git a/lib/colvars/colvarcomp_alchlambda.cpp b/lib/colvars/colvarcomp_alchlambda.cpp index 5e10a1dab5..9f18bec776 100644 --- a/lib/colvars/colvarcomp_alchlambda.cpp +++ b/lib/colvars/colvarcomp_alchlambda.cpp @@ -20,7 +20,7 @@ colvar::alch_lambda::alch_lambda(std::string const &conf) : cvc(conf) { - function_type = "alch_lambda"; + set_function_type("alchLambda"); disable(f_cvc_explicit_gradient); disable(f_cvc_gradient); @@ -36,8 +36,12 @@ void colvar::alch_lambda::calc_value() // Special workflow: // at the beginning of the timestep we get a force instead of calculating the value - cvm::proxy->get_dE_dLambda(&ft.real_value); + cvm::proxy->get_dE_dlambda(&ft.real_value); ft.real_value *= -1.0; // Energy derivative to force + + // Include any force due to bias on Flambda + ft.real_value += cvm::proxy->indirect_lambda_biasing_force; + cvm::proxy->indirect_lambda_biasing_force = 0.0; } @@ -46,11 +50,57 @@ void colvar::alch_lambda::calc_gradients() } -void colvar::alch_lambda::apply_force(colvarvalue const &force) +void colvar::alch_lambda::apply_force(colvarvalue const & /* force */) { - // Special workflow: - // at the end of the time step we send a new value - cvm::proxy->set_alch_lambda(&x.real_value); + // new value will be cached and sent at end of timestep + cvm::proxy->set_alch_lambda(x.real_value); } simple_scalar_dist_functions(alch_lambda) + + + +colvar::alch_Flambda::alch_Flambda(std::string const &conf) + : cvc(conf) +{ + set_function_type("alch_Flambda"); + + disable(f_cvc_explicit_gradient); + disable(f_cvc_gradient); + + x.type(colvarvalue::type_scalar); +} + + +void colvar::alch_Flambda::calc_value() +{ + // Special workflow: + // at the beginning of the timestep we get a force instead of calculating the value + + // Query initial value from back-end + cvm::proxy->get_dE_dlambda(&x.real_value); + x.real_value *= -1.0; // Energy derivative to force +} + + +void colvar::alch_Flambda::calc_gradients() +{ +} + + +void colvar::alch_Flambda::apply_force(colvarvalue const &force) +{ + // Convert force on Flambda to force on dE/dlambda + cvm::real f = -1.0 * force.real_value; + // Send scalar force to back-end, which will distribute it onto atoms + cvm::proxy->apply_force_dE_dlambda(&f); + + // Propagate force on Flambda to lambda internally + cvm::real d2E_dlambda2; + cvm::proxy->get_d2E_dlambda2(&d2E_dlambda2); + + // This accumulates a force, it needs to be zeroed when taken into account by lambda + cvm::proxy->indirect_lambda_biasing_force += d2E_dlambda2 * f; +} + +simple_scalar_dist_functions(alch_Flambda) diff --git a/lib/colvars/colvarcomp_angles.cpp b/lib/colvars/colvarcomp_angles.cpp index 28d7677147..d3f1bfd9aa 100644 --- a/lib/colvars/colvarcomp_angles.cpp +++ b/lib/colvars/colvarcomp_angles.cpp @@ -15,7 +15,7 @@ colvar::angle::angle(std::string const &conf) : cvc(conf) { - function_type = "angle"; + set_function_type("angle"); init_as_angle(); provide(f_cvc_inv_gradient); @@ -34,7 +34,7 @@ colvar::angle::angle(cvm::atom const &a1, cvm::atom const &a2, cvm::atom const &a3) { - function_type = "angle"; + set_function_type("angle"); init_as_angle(); provide(f_cvc_inv_gradient); @@ -140,7 +140,7 @@ simple_scalar_dist_functions(angle) colvar::dipole_angle::dipole_angle(std::string const &conf) : cvc(conf) { - function_type = "dipole_angle"; + set_function_type("dipoleAngle"); init_as_angle(); group1 = parse_group(conf, "group1"); @@ -155,7 +155,8 @@ colvar::dipole_angle::dipole_angle(cvm::atom const &a1, cvm::atom const &a2, cvm::atom const &a3) { - function_type = "dipole_angle"; + set_function_type("dipoleAngle"); + init_as_angle(); group1 = new cvm::atom_group(std::vector(1, a1)); group2 = new cvm::atom_group(std::vector(1, a2)); @@ -163,16 +164,13 @@ colvar::dipole_angle::dipole_angle(cvm::atom const &a1, register_atom_group(group1); register_atom_group(group2); register_atom_group(group3); - - x.type(colvarvalue::type_scalar); } colvar::dipole_angle::dipole_angle() { - function_type = "dipole_angle"; + set_function_type("dipoleAngle"); init_as_angle(); - x.type(colvarvalue::type_scalar); } @@ -251,9 +249,8 @@ simple_scalar_dist_functions(dipole_angle) colvar::dihedral::dihedral(std::string const &conf) : cvc(conf) { - function_type = "dihedral"; - period = 360.0; - enable(f_cvc_periodic); + set_function_type("dihedral"); + init_as_periodic_angle(); provide(f_cvc_inv_gradient); provide(f_cvc_Jacobian); enable(f_cvc_com_based); @@ -264,8 +261,6 @@ colvar::dihedral::dihedral(std::string const &conf) group4 = parse_group(conf, "group4"); init_total_force_params(conf); - - x.type(colvarvalue::type_scalar); } @@ -274,12 +269,8 @@ colvar::dihedral::dihedral(cvm::atom const &a1, cvm::atom const &a3, cvm::atom const &a4) { - if (cvm::debug()) - cvm::log("Initializing dihedral object from atom groups.\n"); - - function_type = "dihedral"; - period = 360.0; - enable(f_cvc_periodic); + set_function_type("dihedral"); + init_as_periodic_angle(); provide(f_cvc_inv_gradient); provide(f_cvc_Jacobian); enable(f_cvc_com_based); @@ -294,22 +285,16 @@ colvar::dihedral::dihedral(cvm::atom const &a1, register_atom_group(group2); register_atom_group(group3); register_atom_group(group4); - - x.type(colvarvalue::type_scalar); - - if (cvm::debug()) - cvm::log("Done initializing dihedral object from atom groups.\n"); } colvar::dihedral::dihedral() { - function_type = "dihedral"; - period = 360.0; + set_function_type("dihedral"); + init_as_periodic_angle(); enable(f_cvc_periodic); provide(f_cvc_inv_gradient); provide(f_cvc_Jacobian); - x.type(colvarvalue::type_scalar); } @@ -516,7 +501,7 @@ void colvar::dihedral::wrap(colvarvalue &x_unwrapped) const colvar::polar_theta::polar_theta(std::string const &conf) : cvc(conf) { - function_type = "polar_theta"; + set_function_type("polarTheta"); enable(f_cvc_com_based); atoms = parse_group(conf, "atoms"); @@ -527,7 +512,7 @@ colvar::polar_theta::polar_theta(std::string const &conf) colvar::polar_theta::polar_theta() { - function_type = "polar_theta"; + set_function_type("polarTheta"); x.type(colvarvalue::type_scalar); } @@ -568,21 +553,19 @@ simple_scalar_dist_functions(polar_theta) colvar::polar_phi::polar_phi(std::string const &conf) : cvc(conf) { - function_type = "polar_phi"; - period = 360.0; + set_function_type("polarPhi"); + init_as_periodic_angle(); enable(f_cvc_com_based); atoms = parse_group(conf, "atoms"); init_total_force_params(conf); - x.type(colvarvalue::type_scalar); } colvar::polar_phi::polar_phi() { - function_type = "polar_phi"; - period = 360.0; - x.type(colvarvalue::type_scalar); + set_function_type("polarPhi"); + init_as_periodic_angle(); } diff --git a/lib/colvars/colvarcomp_apath.cpp b/lib/colvars/colvarcomp_apath.cpp index a4d1df9e50..ab759e9dea 100644 --- a/lib/colvars/colvarcomp_apath.cpp +++ b/lib/colvars/colvarcomp_apath.cpp @@ -13,7 +13,7 @@ #include "colvarcomp.h" colvar::aspathCV::aspathCV(std::string const &conf): CVBasedPath(conf) { - function_type = "aspathCV"; + set_function_type("aspathCV"); cvm::log(std::string("Total number of frames: ") + cvm::to_str(total_reference_frames) + std::string("\n")); std::vector p_weights(cv.size(), 1.0); get_keyval(conf, "weights", p_weights, std::vector(cv.size(), 1.0)); @@ -67,9 +67,7 @@ void colvar::aspathCV::calc_gradients() { computeDerivatives(); for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { cv[i_cv]->calc_gradients(); - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com)) { + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); for (size_t j_elem = 0; j_elem < cv[i_cv]->value().size(); ++j_elem) { for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { @@ -84,10 +82,7 @@ void colvar::aspathCV::calc_gradients() { void colvar::aspathCV::apply_force(colvarvalue const &force) { for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com) - ) { + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); } @@ -102,7 +97,7 @@ void colvar::aspathCV::apply_force(colvarvalue const &force) { colvar::aspathCV::~aspathCV() {} colvar::azpathCV::azpathCV(std::string const &conf): CVBasedPath(conf) { - function_type = "azpathCV"; + set_function_type("azpathCV"); cvm::log(std::string("Total number of frames: ") + cvm::to_str(total_reference_frames) + std::string("\n")); std::vector p_weights(cv.size(), 1.0); get_keyval(conf, "weights", p_weights, std::vector(cv.size(), 1.0)); @@ -156,9 +151,7 @@ void colvar::azpathCV::calc_gradients() { computeDerivatives(); for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { cv[i_cv]->calc_gradients(); - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com)) { + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); for (size_t j_elem = 0; j_elem < cv[i_cv]->value().size(); ++j_elem) { for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { @@ -174,10 +167,7 @@ void colvar::azpathCV::calc_gradients() { void colvar::azpathCV::apply_force(colvarvalue const &force) { for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com) - ) { + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); } diff --git a/lib/colvars/colvarcomp_combination.cpp b/lib/colvars/colvarcomp_combination.cpp new file mode 100644 index 0000000000..cf8bd8e84c --- /dev/null +++ b/lib/colvars/colvarcomp_combination.cpp @@ -0,0 +1,323 @@ +#if (__cplusplus >= 201103L) + +// This file is part of the Collective Variables module (Colvars). +// The original version of Colvars and its updates are located at: +// https://github.com/Colvars/colvars +// Please update all Colvars source files before making any changes. +// If you wish to distribute your changes, please submit them to the +// Colvars repository at GitHub. + +#include "colvarcomp.h" + +colvar::linearCombination::linearCombination(std::string const &conf): cvc(conf) { + // Lookup all available sub-cvcs + for (auto it_cv_map = colvar::get_global_cvc_map().begin(); it_cv_map != colvar::get_global_cvc_map().end(); ++it_cv_map) { + if (key_lookup(conf, it_cv_map->first.c_str())) { + std::vector sub_cvc_confs; + get_key_string_multi_value(conf, it_cv_map->first.c_str(), sub_cvc_confs); + for (auto it_sub_cvc_conf = sub_cvc_confs.begin(); it_sub_cvc_conf != sub_cvc_confs.end(); ++it_sub_cvc_conf) { + cv.push_back((it_cv_map->second)(*(it_sub_cvc_conf))); + } + } + } + // Sort all sub CVs by their names + std::sort(cv.begin(), cv.end(), colvar::compare_cvc); + for (auto it_sub_cv = cv.begin(); it_sub_cv != cv.end(); ++it_sub_cv) { + for (auto it_atom_group = (*it_sub_cv)->atom_groups.begin(); it_atom_group != (*it_sub_cv)->atom_groups.end(); ++it_atom_group) { + register_atom_group(*it_atom_group); + } + } + // Show useful error messages and prevent crashes if no sub CVC is found + if (cv.size() == 0) { + cvm::error("Error: the CV " + name + + " expects one or more nesting components.\n"); + return; + } else { + // TODO: Maybe we can add an option to allow mixing scalar and vector types, + // but that's a bit complicated so we just require a consistent type + // of nesting CVs. + x.type(cv[0]->value()); + x.reset(); + for (size_t i_cv = 1; i_cv < cv.size(); ++i_cv) { + const auto type_i = cv[i_cv]->value().type(); + if (type_i != x.type()) { + cvm::error("Error: the type of sub-CVC " + cv[i_cv]->name + + " is " + colvarvalue::type_desc(type_i) + ", which is " + "different to the type of the first sub-CVC. Currently " + "only sub-CVCs of the same type are supported to be " + "nested.\n"); + return; + } + } + } + use_explicit_gradients = true; + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + if (!cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + use_explicit_gradients = false; + } + } + if (!use_explicit_gradients) { + disable(f_cvc_explicit_gradient); + } +} + +cvm::real colvar::linearCombination::getPolynomialFactorOfCVGradient(size_t i_cv) const { + cvm::real factor_polynomial = 1.0; + if (cv[i_cv]->value().type() == colvarvalue::type_scalar) { + factor_polynomial = cv[i_cv]->sup_coeff * cv[i_cv]->sup_np * cvm::pow(cv[i_cv]->value().real_value, cv[i_cv]->sup_np - 1); + } else { + factor_polynomial = cv[i_cv]->sup_coeff; + } + return factor_polynomial; +} + +colvar::linearCombination::~linearCombination() { + // Recall the steps we initialize the sub-CVCs: + // 1. Lookup all sub-CVCs and then register the atom groups for sub-CVCs + // in their constructors; + // 2. Iterate over all sub-CVCs, get the pointers of their atom groups + // groups, and register again in the parent (current) CVC. + // That being said, the atom groups become children of the sub-CVCs at + // first, and then become children of the parent CVC. + // So, to destruct this class (parent CVC class), we need to remove the + // dependencies of the atom groups to the parent CVC at first. + remove_all_children(); + // Then we remove the dependencies of the atom groups to the sub-CVCs + // in their destructors. + for (auto it = cv.begin(); it != cv.end(); ++it) { + delete (*it); + } + // The last step is cleaning up the list of atom groups. + atom_groups.clear(); +} + +void colvar::linearCombination::calc_value() { + x.reset(); + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + cv[i_cv]->calc_value(); + colvarvalue current_cv_value(cv[i_cv]->value()); + // polynomial combination allowed + if (current_cv_value.type() == colvarvalue::type_scalar) { + x += cv[i_cv]->sup_coeff * (cvm::pow(current_cv_value.real_value, cv[i_cv]->sup_np)); + } else { + x += cv[i_cv]->sup_coeff * current_cv_value; + } + } +} + +void colvar::linearCombination::calc_gradients() { + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + cv[i_cv]->calc_gradients(); + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); + for (size_t j_elem = 0; j_elem < cv[i_cv]->value().size(); ++j_elem) { + for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { + for (size_t l_atom = 0; l_atom < (cv[i_cv]->atom_groups)[k_ag]->size(); ++l_atom) { + (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad = factor_polynomial * (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad; + } + } + } + } + } +} + +void colvar::linearCombination::apply_force(colvarvalue const &force) { + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + // If this CV us explicit gradients, then atomic gradients is already calculated + // We can apply the force to atom groups directly + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { + (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); + } + } else { + // Compute factors for polynomial combinations + cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); + colvarvalue cv_force = force.real_value * factor_polynomial; + cv[i_cv]->apply_force(cv_force); + } + } +} + +colvar::customColvar::customColvar(std::string const &conf): linearCombination(conf) { + use_custom_function = false; + // code swipe from colvar::init_custom_function +#ifdef LEPTON + std::string expr_in, expr; + std::vector pexprs; + Lepton::ParsedExpression pexpr; + double *ref; + size_t pos = 0; // current position in config string + if (key_lookup(conf, "customFunction", &expr_in, &pos)) { + use_custom_function = true; + cvm::log("This colvar uses a custom function.\n"); + do { + expr = expr_in; + if (cvm::debug()) + cvm::log("Parsing expression \"" + expr + "\".\n"); + try { + pexpr = Lepton::Parser::parse(expr); + pexprs.push_back(pexpr); + } catch (...) { + cvm::error("Error parsing expression \"" + expr + "\".\n", COLVARS_INPUT_ERROR); + } + try { + value_evaluators.push_back(new Lepton::CompiledExpression(pexpr.createCompiledExpression())); + // Define variables for cvc values + for (size_t i = 0; i < cv.size(); ++i) { + for (size_t j = 0; j < cv[i]->value().size(); ++j) { + std::string vn = cv[i]->name + (cv[i]->value().size() > 1 ? cvm::to_str(j+1) : ""); + try { + ref = &value_evaluators.back()->getVariableReference(vn); + } catch (...) { + ref = &dev_null; + cvm::log("Warning: Variable " + vn + " is absent from expression \"" + expr + "\".\n"); + } + value_eval_var_refs.push_back(ref); + } + } + } catch (...) { + cvm::error("Error compiling expression \"" + expr + "\".\n", COLVARS_INPUT_ERROR); + } + } while (key_lookup(conf, "customFunction", &expr_in, &pos)); + // Now define derivative with respect to each scalar sub-component + for (size_t i = 0; i < cv.size(); ++i) { + for (size_t j = 0; j < cv[i]->value().size(); ++j) { + std::string vn = cv[i]->name + (cv[i]->value().size() > 1 ? cvm::to_str(j+1) : ""); + for (size_t c = 0; c < pexprs.size(); ++c) { + gradient_evaluators.push_back(new Lepton::CompiledExpression(pexprs[c].differentiate(vn).createCompiledExpression())); + for (size_t k = 0; k < cv.size(); ++k) { + for (size_t l = 0; l < cv[k]->value().size(); l++) { + std::string vvn = cv[k]->name + (cv[k]->value().size() > 1 ? cvm::to_str(l+1) : ""); + try { + ref = &gradient_evaluators.back()->getVariableReference(vvn); + } catch (...) { + cvm::log("Warning: Variable " + vvn + " is absent from derivative of \"" + expr + "\" wrt " + vn + ".\n"); + ref = &dev_null; + } + grad_eval_var_refs.push_back(ref); + } + } + } + } + } + if (value_evaluators.size() == 0) { + cvm::error("Error: no custom function defined.\n", COLVARS_INPUT_ERROR); + } + if (value_evaluators.size() != 1) { + x.type(colvarvalue::type_vector); + } else { + x.type(colvarvalue::type_scalar); + } + } else { + cvm::log(std::string{"Warning: no customFunction specified.\n"}); + cvm::log(std::string{"Warning: use linear combination instead.\n"}); + } +#endif +} + +colvar::customColvar::~customColvar() { +#ifdef LEPTON + for (size_t i = 0; i < value_evaluators.size(); ++i) { + if (value_evaluators[i] != nullptr) delete value_evaluators[i]; + } + for (size_t i = 0; i < gradient_evaluators.size(); ++i) { + if (gradient_evaluators[i] != nullptr) delete gradient_evaluators[i]; + } +#endif +} + +void colvar::customColvar::calc_value() { +#ifdef LEPTON + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + cv[i_cv]->calc_value(); + } + x.reset(); + size_t l = 0; + for (size_t i = 0; i < x.size(); ++i) { + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + const colvarvalue& current_cv_value = cv[i_cv]->value(); + for (size_t j_elem = 0; j_elem < current_cv_value.size(); ++j_elem) { + if (current_cv_value.type() == colvarvalue::type_scalar) { + *(value_eval_var_refs[l++]) = cv[i_cv]->sup_coeff * (cvm::pow(current_cv_value.real_value, cv[i_cv]->sup_np)); + } else { + *(value_eval_var_refs[l++]) = cv[i_cv]->sup_coeff * current_cv_value[j_elem]; + } + } + } + x[i] = value_evaluators[i]->evaluate(); + } +#endif + if (!use_custom_function) { + colvar::linearCombination::calc_value(); + } +} + +void colvar::customColvar::calc_gradients() { +#ifdef LEPTON + size_t r = 0; // index in the vector of variable references + size_t e = 0; // index of the gradient evaluator + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { // for each CV + cv[i_cv]->calc_gradients(); + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + const colvarvalue& current_cv_value = cv[i_cv]->value(); + const cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); + for (size_t j_elem = 0; j_elem < current_cv_value.size(); ++j_elem) { // for each element in this CV + for (size_t c = 0; c < x.size(); ++c) { // for each custom function expression + for (size_t k = 0; k < cv.size(); ++k) { // this is required since we need to feed all CV values to this expression + const cvm::real factor_polynomial_k = getPolynomialFactorOfCVGradient(k); + for (size_t l = 0; l < cv[k]->value().size(); ++l) { + *(grad_eval_var_refs[r++]) = factor_polynomial_k * cv[k]->value()[l]; + } + } + const double expr_grad = gradient_evaluators[e++]->evaluate(); + for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { + for (size_t l_atom = 0; l_atom < (cv[i_cv]->atom_groups)[k_ag]->size(); ++l_atom) { + (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad = expr_grad * factor_polynomial * (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad; + } + } + } + } + } + } +#endif + if (!use_custom_function) { + colvar::linearCombination::calc_gradients(); + } +} + +void colvar::customColvar::apply_force(colvarvalue const &force) { +#ifdef LEPTON + size_t r = 0; // index in the vector of variable references + size_t e = 0; // index of the gradient evaluator + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + // If this CV us explicit gradients, then atomic gradients is already calculated + // We can apply the force to atom groups directly + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { + (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); + } + } else { + const colvarvalue& current_cv_value = cv[i_cv]->value(); + colvarvalue cv_force(current_cv_value.type()); + const cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); + for (size_t j_elem = 0; j_elem < current_cv_value.size(); ++j_elem) { + for (size_t c = 0; c < x.size(); ++c) { + for (size_t k = 0; k < cv.size(); ++k) { + const cvm::real factor_polynomial_k = getPolynomialFactorOfCVGradient(k); + for (size_t l = 0; l < cv[k]->value().size(); ++l) { + *(grad_eval_var_refs[r++]) = factor_polynomial_k * cv[k]->value()[l]; + } + } + cv_force[j_elem] += factor_polynomial * gradient_evaluators[e++]->evaluate() * force.real_value; + } + } + cv[i_cv]->apply_force(cv_force); + } + } +#endif + if (!use_custom_function) { + colvar::linearCombination::apply_force(force); + } +} + +#endif // __cplusplus >= 201103L \ No newline at end of file diff --git a/lib/colvars/colvarcomp_coordnums.cpp b/lib/colvars/colvarcomp_coordnums.cpp index f0fbabfc4f..80ec3177a9 100644 --- a/lib/colvars/colvarcomp_coordnums.cpp +++ b/lib/colvars/colvarcomp_coordnums.cpp @@ -94,7 +94,7 @@ colvar::coordnum::coordnum(std::string const &conf) : cvc(conf), b_anisotropic(false), pairlist(NULL) { - function_type = "coordnum"; + set_function_type("coordNum"); x.type(colvarvalue::type_scalar); colvarproxy *proxy = cvm::main()->proxy; @@ -104,19 +104,19 @@ colvar::coordnum::coordnum(std::string const &conf) if (group1 == NULL || group2 == NULL) { cvm::error("Error: failed to initialize atom groups.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return; } if (int atom_number = cvm::atom_group::overlap(*group1, *group2)) { cvm::error("Error: group1 and group2 share a common atom (number: " + - cvm::to_str(atom_number) + ")\n", INPUT_ERROR); + cvm::to_str(atom_number) + ")\n", COLVARS_INPUT_ERROR); return; } if (group1->b_dummy) { cvm::error("Error: only group2 is allowed to be a dummy atom\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return; } @@ -130,7 +130,7 @@ colvar::coordnum::coordnum(std::string const &conf) if (b_isotropic) { cvm::error("Error: cannot specify \"cutoff\" and \"cutoff3\" " "at the same time.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return; } @@ -146,12 +146,12 @@ colvar::coordnum::coordnum(std::string const &conf) if ( (en%2) || (ed%2) ) { cvm::error("Error: odd exponent(s) provided, can only use even ones.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if ( (en <= 0) || (ed <= 0) ) { cvm::error("Error: negative exponent(s) provided.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (!is_enabled(f_cvc_pbc_minimum_image)) { @@ -162,10 +162,11 @@ colvar::coordnum::coordnum(std::string const &conf) get_keyval(conf, "tolerance", tolerance, 0.0); if (tolerance > 0) { + cvm::main()->cite_feature("coordNum pairlist"); get_keyval(conf, "pairListFrequency", pairlist_freq, 100); if ( ! (pairlist_freq > 0) ) { cvm::error("Error: non-positive pairlistfrequency provided.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return; // and do not allocate the pairlists below } if (b_group2_center_only) { @@ -176,8 +177,10 @@ colvar::coordnum::coordnum(std::string const &conf) } } - init_scalar_boundaries(0.0, b_group2_center_only ? group1->size() : - group1->size() * group2->size()); + init_scalar_boundaries(0.0, b_group2_center_only ? + static_cast(group1->size()) : + static_cast(group1->size() * + group2->size())); } @@ -304,7 +307,7 @@ colvar::h_bond::h_bond(std::string const &conf) if (cvm::debug()) cvm::log("Initializing h_bond object.\n"); - function_type = "h_bond"; + set_function_type("hBond"); x.type(colvarvalue::type_scalar); init_scalar_boundaries(0.0, 1.0); @@ -331,12 +334,12 @@ colvar::h_bond::h_bond(std::string const &conf) if ( (en%2) || (ed%2) ) { cvm::error("Error: odd exponent(s) provided, can only use even ones.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if ( (en <= 0) || (ed <= 0) ) { cvm::error("Error: negative exponent(s) provided.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (cvm::debug()) @@ -349,7 +352,7 @@ colvar::h_bond::h_bond(cvm::atom const &acceptor, cvm::real r0_i, int en_i, int ed_i) : r0(r0_i), en(en_i), ed(ed_i) { - function_type = "h_bond"; + set_function_type("hBond"); x.type(colvarvalue::type_scalar); init_scalar_boundaries(0.0, 1.0); @@ -395,7 +398,7 @@ simple_scalar_dist_functions(h_bond) colvar::selfcoordnum::selfcoordnum(std::string const &conf) : cvc(conf), pairlist(NULL) { - function_type = "selfcoordnum"; + set_function_type("selfCoordNum"); x.type(colvarvalue::type_scalar); colvarproxy *proxy = cvm::main()->proxy; @@ -409,12 +412,12 @@ colvar::selfcoordnum::selfcoordnum(std::string const &conf) if ( (en%2) || (ed%2) ) { cvm::error("Error: odd exponent(s) provided, can only use even ones.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if ( (en <= 0) || (ed <= 0) ) { cvm::error("Error: negative exponent(s) provided.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (!is_enabled(f_cvc_pbc_minimum_image)) { @@ -426,13 +429,14 @@ colvar::selfcoordnum::selfcoordnum(std::string const &conf) get_keyval(conf, "pairListFrequency", pairlist_freq, 100); if ( ! (pairlist_freq > 0) ) { cvm::error("Error: non-positive pairlistfrequency provided.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return; } pairlist = new bool[(group1->size()-1) * (group1->size()-1)]; } - init_scalar_boundaries(0.0, (group1->size()-1) * (group1->size()-1)); + init_scalar_boundaries(0.0, static_cast((group1->size()-1) * + (group1->size()-1))); } @@ -539,7 +543,7 @@ simple_scalar_dist_functions(selfcoordnum) colvar::groupcoordnum::groupcoordnum(std::string const &conf) : distance(conf), b_anisotropic(false) { - function_type = "groupcoordnum"; + set_function_type("groupCoord"); x.type(colvarvalue::type_scalar); init_scalar_boundaries(0.0, 1.0); @@ -574,12 +578,12 @@ colvar::groupcoordnum::groupcoordnum(std::string const &conf) if ( (en%2) || (ed%2) ) { cvm::error("Error: odd exponent(s) provided, can only use even ones.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if ( (en <= 0) || (ed <= 0) ) { cvm::error("Error: negative exponent(s) provided.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (!is_enabled(f_cvc_pbc_minimum_image)) { diff --git a/lib/colvars/colvarcomp_distances.cpp b/lib/colvars/colvarcomp_distances.cpp index c044da86b3..fa27e5345e 100644 --- a/lib/colvars/colvarcomp_distances.cpp +++ b/lib/colvars/colvarcomp_distances.cpp @@ -20,7 +20,7 @@ colvar::distance::distance(std::string const &conf) : cvc(conf) { - function_type = "distance"; + set_function_type("distance"); init_as_distance(); provide(f_cvc_inv_gradient); @@ -37,7 +37,7 @@ colvar::distance::distance(std::string const &conf) colvar::distance::distance() : cvc() { - function_type = "distance"; + set_function_type("distance"); init_as_distance(); provide(f_cvc_inv_gradient); @@ -101,7 +101,7 @@ simple_scalar_dist_functions(distance) colvar::distance_vec::distance_vec(std::string const &conf) : distance(conf) { - function_type = "distance_vec"; + set_function_type("distanceVec"); enable(f_cvc_com_based); disable(f_cvc_explicit_gradient); x.type(colvarvalue::type_3vector); @@ -111,7 +111,7 @@ colvar::distance_vec::distance_vec(std::string const &conf) colvar::distance_vec::distance_vec() : distance() { - function_type = "distance_vec"; + set_function_type("distanceVec"); enable(f_cvc_com_based); disable(f_cvc_explicit_gradient); x.type(colvarvalue::type_3vector); @@ -171,7 +171,7 @@ colvarvalue colvar::distance_vec::dist2_rgrad(colvarvalue const &x1, colvar::distance_z::distance_z(std::string const &conf) : cvc(conf) { - function_type = "distance_z"; + set_function_type("distanceZ"); provide(f_cvc_inv_gradient); provide(f_cvc_Jacobian); enable(f_cvc_com_based); @@ -179,10 +179,11 @@ colvar::distance_z::distance_z(std::string const &conf) // TODO detect PBC from MD engine (in simple cases) // and then update period in real time - if (period != 0.0) + if (period != 0.0) { enable(f_cvc_periodic); + } - if ((wrap_center != 0.0) && (period == 0.0)) { + if ((wrap_center != 0.0) && !is_enabled(f_cvc_periodic)) { cvm::error("Error: wrapAround was defined in a distanceZ component," " but its period has not been set.\n"); return; @@ -219,7 +220,7 @@ colvar::distance_z::distance_z(std::string const &conf) colvar::distance_z::distance_z() { - function_type = "distance_z"; + set_function_type("distanceZ"); provide(f_cvc_inv_gradient); provide(f_cvc_Jacobian); enable(f_cvc_com_based); @@ -368,7 +369,7 @@ void colvar::distance_z::wrap(colvarvalue &x_unwrapped) const colvar::distance_xy::distance_xy(std::string const &conf) : distance_z(conf) { - function_type = "distance_xy"; + set_function_type("distanceXY"); init_as_distance(); provide(f_cvc_inv_gradient); @@ -380,7 +381,7 @@ colvar::distance_xy::distance_xy(std::string const &conf) colvar::distance_xy::distance_xy() : distance_z() { - function_type = "distance_xy"; + set_function_type("distanceXY"); init_as_distance(); provide(f_cvc_inv_gradient); @@ -481,7 +482,7 @@ simple_scalar_dist_functions(distance_xy) colvar::distance_dir::distance_dir(std::string const &conf) : distance(conf) { - function_type = "distance_dir"; + set_function_type("distanceDir"); enable(f_cvc_com_based); disable(f_cvc_explicit_gradient); x.type(colvarvalue::type_unit3vector); @@ -491,7 +492,7 @@ colvar::distance_dir::distance_dir(std::string const &conf) colvar::distance_dir::distance_dir() : distance() { - function_type = "distance_dir"; + set_function_type("distanceDir"); enable(f_cvc_com_based); disable(f_cvc_explicit_gradient); x.type(colvarvalue::type_unit3vector); @@ -559,7 +560,7 @@ colvarvalue colvar::distance_dir::dist2_rgrad(colvarvalue const &x1, colvar::distance_inv::distance_inv(std::string const &conf) : cvc(conf) { - function_type = "distance_inv"; + set_function_type("distanceInv"); init_as_distance(); group1 = parse_group(conf, "group1"); @@ -658,7 +659,7 @@ simple_scalar_dist_functions(distance_inv) colvar::distance_pairs::distance_pairs(std::string const &conf) : cvc(conf) { - function_type = "distance_pairs"; + set_function_type("distancePairs"); group1 = parse_group(conf, "group1"); group2 = parse_group(conf, "group2"); @@ -671,7 +672,7 @@ colvar::distance_pairs::distance_pairs(std::string const &conf) colvar::distance_pairs::distance_pairs() { - function_type = "distance_pairs"; + set_function_type("distancePairs"); disable(f_cvc_explicit_gradient); x.type(colvarvalue::type_vector); } @@ -743,7 +744,7 @@ void colvar::distance_pairs::apply_force(colvarvalue const &force) colvar::dipole_magnitude::dipole_magnitude(std::string const &conf) : cvc(conf) { - function_type = "dipole_magnitude"; + set_function_type("dipoleMagnitude"); atoms = parse_group(conf, "atoms"); init_total_force_params(conf); x.type(colvarvalue::type_scalar); @@ -752,6 +753,7 @@ colvar::dipole_magnitude::dipole_magnitude(std::string const &conf) colvar::dipole_magnitude::dipole_magnitude(cvm::atom const &a1) { + set_function_type("dipoleMagnitude"); atoms = new cvm::atom_group(std::vector(1, a1)); register_atom_group(atoms); x.type(colvarvalue::type_scalar); @@ -760,7 +762,7 @@ colvar::dipole_magnitude::dipole_magnitude(cvm::atom const &a1) colvar::dipole_magnitude::dipole_magnitude() { - function_type = "dipole_magnitude"; + set_function_type("dipoleMagnitude"); x.type(colvarvalue::type_scalar); } @@ -800,7 +802,7 @@ simple_scalar_dist_functions(dipole_magnitude) colvar::gyration::gyration(std::string const &conf) : cvc(conf) { - function_type = "gyration"; + set_function_type("gyration"); init_as_distance(); provide(f_cvc_inv_gradient); @@ -869,7 +871,7 @@ simple_scalar_dist_functions(gyration) colvar::inertia::inertia(std::string const &conf) : gyration(conf) { - function_type = "inertia"; + set_function_type("inertia"); init_as_distance(); } @@ -905,11 +907,11 @@ simple_scalar_dist_functions(inertia_z) colvar::inertia_z::inertia_z(std::string const &conf) : inertia(conf) { - function_type = "inertia_z"; + set_function_type("inertiaZ"); init_as_distance(); if (get_keyval(conf, "axis", axis, cvm::rvector(0.0, 0.0, 1.0))) { if (axis.norm2() == 0.0) { - cvm::error("Axis vector is zero!", INPUT_ERROR); + cvm::error("Axis vector is zero!", COLVARS_INPUT_ERROR); return; } if (axis.norm2() != 1.0) { @@ -953,7 +955,7 @@ simple_scalar_dist_functions(inertia) colvar::rmsd::rmsd(std::string const &conf) : cvc(conf) { - function_type = "rmsd"; + set_function_type("rmsd"); init_as_distance(); provide(f_cvc_inv_gradient); @@ -1217,9 +1219,9 @@ simple_scalar_dist_functions(rmsd) colvar::eigenvector::eigenvector(std::string const &conf) : cvc(conf) { + set_function_type("eigenvector"); provide(f_cvc_inv_gradient); provide(f_cvc_Jacobian); - function_type = "eigenvector"; x.type(colvarvalue::type_scalar); atoms = parse_group(conf, "atoms"); @@ -1263,13 +1265,13 @@ colvar::eigenvector::eigenvector(std::string const &conf) } if (ref_pos.size() == 0) { - cvm::error("Error: reference positions were not provided.\n", INPUT_ERROR); + cvm::error("Error: reference positions were not provided.\n", COLVARS_INPUT_ERROR); return; } if (ref_pos.size() != atoms->size()) { cvm::error("Error: reference positions do not " - "match the number of requested atoms.\n", INPUT_ERROR); + "match the number of requested atoms.\n", COLVARS_INPUT_ERROR); return; } @@ -1368,7 +1370,7 @@ colvar::eigenvector::eigenvector(std::string const &conf) eigenvec[i] = atoms->rot.rotate(eigenvec[i]); } } - cvm::log("\"differenceVector\" is on: subtracting the reference positions from the provided vector: v = v - x0.\n"); + cvm::log("\"differenceVector\" is on: subtracting the reference positions from the provided vector: v = x_vec - x_ref.\n"); for (size_t i = 0; i < atoms->size(); i++) { eigenvec[i] -= ref_pos[i]; } @@ -1386,22 +1388,32 @@ colvar::eigenvector::eigenvector(std::string const &conf) } } - // cvm::log("The first three components(v1x, v1y, v1z) of the resulting vector are: "+cvm::to_str (eigenvec[0])+".\n"); - - // for inverse gradients + // eigenvec_invnorm2 is used when computing inverse gradients eigenvec_invnorm2 = 0.0; for (size_t ein = 0; ein < atoms->size(); ein++) { eigenvec_invnorm2 += eigenvec[ein].norm2(); } eigenvec_invnorm2 = 1.0 / eigenvec_invnorm2; - if (b_difference_vector) { - cvm::log("\"differenceVector\" is on: normalizing the vector.\n"); + // Vector normalization overrides the default normalization for differenceVector + bool normalize = false; + get_keyval(conf, "normalizeVector", normalize, normalize); + + if (normalize) { + cvm::log("Normalizing the vector so that |v| = 1.\n"); + for (size_t i = 0; i < atoms->size(); i++) { + eigenvec[i] *= cvm::sqrt(eigenvec_invnorm2); + } + eigenvec_invnorm2 = 1.0; + } else if (b_difference_vector) { + cvm::log("Normalizing the vector so that the norm of the projection |v â‹… (x_vec - x_ref)| = 1.\n"); for (size_t i = 0; i < atoms->size(); i++) { eigenvec[i] *= eigenvec_invnorm2; } + eigenvec_invnorm2 = 1.0/eigenvec_invnorm2; } else { - cvm::log("The norm of the vector is |v| = "+cvm::to_str(eigenvec_invnorm2)+".\n"); + cvm::log("The norm of the vector is |v| = "+ + cvm::to_str(1.0/cvm::sqrt(eigenvec_invnorm2))+".\n"); } } @@ -1500,7 +1512,7 @@ simple_scalar_dist_functions(eigenvector) colvar::cartesian::cartesian(std::string const &conf) : cvc(conf) { - function_type = "cartesian"; + set_function_type("cartesian"); atoms = parse_group(conf, "atoms"); @@ -1560,4 +1572,3 @@ void colvar::cartesian::apply_force(colvarvalue const &force) } } } - diff --git a/lib/colvars/colvarcomp_gpath.cpp b/lib/colvars/colvarcomp_gpath.cpp index 884dfdaee9..bff432fdbe 100644 --- a/lib/colvars/colvarcomp_gpath.cpp +++ b/lib/colvars/colvarcomp_gpath.cpp @@ -19,11 +19,6 @@ #include "colvar.h" #include "colvarcomp.h" -bool compareColvarComponent(colvar::cvc *i, colvar::cvc *j) -{ - return i->name < j->name; -} - colvar::CartesianBasedPath::CartesianBasedPath(std::string const &conf): cvc(conf), atoms(nullptr), reference_frames(0) { // Parse selected atoms atoms = parse_group(conf, "atoms"); @@ -79,7 +74,6 @@ colvar::CartesianBasedPath::CartesianBasedPath(std::string const &conf): cvc(con cvm::atom_group* tmp_fitting_atoms = new cvm::atom_group(fitting_group_name.c_str()); tmp_fitting_atoms->parse(fitting_conf); tmp_fitting_atoms->disable(f_ag_scalable); - tmp_fitting_atoms->disable(f_ag_scalable_com); tmp_fitting_atoms->fit_gradients.assign(tmp_fitting_atoms->size(), cvm::atom_pos(0.0, 0.0, 0.0)); std::string reference_position_file_lookup = "refPositionsFile" + cvm::to_str(i_frame + 1); std::string reference_position_filename; @@ -91,7 +85,6 @@ colvar::CartesianBasedPath::CartesianBasedPath(std::string const &conf): cvc(con tmp_atoms->enable(f_ag_rotate); tmp_atoms->b_user_defined_fit = true; tmp_atoms->disable(f_ag_scalable); - tmp_atoms->disable(f_ag_scalable_com); tmp_atoms->ref_pos = reference_fitting_position; tmp_atoms->center_ref_pos(); tmp_atoms->enable(f_ag_fit_gradients); @@ -115,6 +108,7 @@ colvar::CartesianBasedPath::~CartesianBasedPath() { (*it_comp_atoms) = nullptr; } } + // Avoid double-freeing due to CVC-in-CVC construct atom_groups.clear(); } @@ -131,7 +125,7 @@ void colvar::CartesianBasedPath::computeDistanceToReferenceFrames(std::vector::initialize(atoms->size(), cvm::atom_pos(), total_reference_frames, use_second_closest_frame, use_third_closest_frame); cvm::log(std::string("Geometric pathCV(s) is initialized.\n")); @@ -170,8 +165,8 @@ void colvar::gspath::prepareVectors() { reference_cog_1 += reference_frames[min_frame_index_1][i_atom]; reference_cog_2 += reference_frames[min_frame_index_2][i_atom]; } - reference_cog_1 /= reference_frames[min_frame_index_1].size(); - reference_cog_2 /= reference_frames[min_frame_index_2].size(); + reference_cog_1 /= cvm::real(reference_frames[min_frame_index_1].size()); + reference_cog_2 /= cvm::real(reference_frames[min_frame_index_2].size()); std::vector tmp_reference_frame_1(reference_frames[min_frame_index_1].size()); std::vector tmp_reference_frame_2(reference_frames[min_frame_index_2].size()); for (i_atom = 0; i_atom < atoms->size(); ++i_atom) { @@ -184,8 +179,8 @@ void colvar::gspath::prepareVectors() { reference_fitting_cog_1 += reference_fitting_frames[min_frame_index_1][i_atom]; reference_fitting_cog_2 += reference_fitting_frames[min_frame_index_2][i_atom]; } - reference_fitting_cog_1 /= reference_fitting_frames[min_frame_index_1].size(); - reference_fitting_cog_2 /= reference_fitting_frames[min_frame_index_2].size(); + reference_fitting_cog_1 /= cvm::real(reference_fitting_frames[min_frame_index_1].size()); + reference_fitting_cog_2 /= cvm::real(reference_fitting_frames[min_frame_index_2].size()); std::vector tmp_reference_fitting_frame_1(reference_fitting_frames[min_frame_index_1].size()); std::vector tmp_reference_fitting_frame_2(reference_fitting_frames[min_frame_index_2].size()); for (i_atom = 0; i_atom < reference_fitting_frames[min_frame_index_1].size(); ++i_atom) { @@ -205,8 +200,8 @@ void colvar::gspath::prepareVectors() { reference_cog_1 += reference_frames[min_frame_index_1][i_atom]; reference_cog_3 += reference_frames[min_frame_index_3][i_atom]; } - reference_cog_1 /= reference_frames[min_frame_index_1].size(); - reference_cog_3 /= reference_frames[min_frame_index_3].size(); + reference_cog_1 /= cvm::real(reference_frames[min_frame_index_1].size()); + reference_cog_3 /= cvm::real(reference_frames[min_frame_index_3].size()); std::vector tmp_reference_frame_1(reference_frames[min_frame_index_1].size()); std::vector tmp_reference_frame_3(reference_frames[min_frame_index_3].size()); for (i_atom = 0; i_atom < atoms->size(); ++i_atom) { @@ -219,8 +214,8 @@ void colvar::gspath::prepareVectors() { reference_fitting_cog_1 += reference_fitting_frames[min_frame_index_1][i_atom]; reference_fitting_cog_3 += reference_fitting_frames[min_frame_index_3][i_atom]; } - reference_fitting_cog_1 /= reference_fitting_frames[min_frame_index_1].size(); - reference_fitting_cog_3 /= reference_fitting_frames[min_frame_index_3].size(); + reference_fitting_cog_1 /= cvm::real(reference_fitting_frames[min_frame_index_1].size()); + reference_fitting_cog_3 /= cvm::real(reference_fitting_frames[min_frame_index_3].size()); std::vector tmp_reference_fitting_frame_1(reference_fitting_frames[min_frame_index_1].size()); std::vector tmp_reference_fitting_frame_3(reference_fitting_frames[min_frame_index_3].size()); for (i_atom = 0; i_atom < reference_fitting_frames[min_frame_index_1].size(); ++i_atom) { @@ -272,7 +267,7 @@ void colvar::gspath::apply_force(colvarvalue const &force) { } colvar::gzpath::gzpath(std::string const &conf): CartesianBasedPath(conf) { - function_type = "gzpath"; + set_function_type("gzpath"); get_keyval(conf, "useSecondClosestFrame", use_second_closest_frame, true); if (use_second_closest_frame == true) { cvm::log(std::string("Geometric path z(σ) will use the second closest frame to compute s_(m-1)\n")); @@ -292,6 +287,7 @@ colvar::gzpath::gzpath(std::string const &conf): CartesianBasedPath(conf) { } if (total_reference_frames < 2) { cvm::error("Error: you have specified " + cvm::to_str(total_reference_frames) + " reference frames, but gzpath requires at least 2 frames.\n"); + return; } GeometricPathCV::GeometricPathBase::initialize(atoms->size(), cvm::atom_pos(), total_reference_frames, use_second_closest_frame, use_third_closest_frame, b_use_z_square); // Logging @@ -310,8 +306,8 @@ void colvar::gzpath::prepareVectors() { reference_cog_1 += reference_frames[min_frame_index_1][i_atom]; reference_cog_2 += reference_frames[min_frame_index_2][i_atom]; } - reference_cog_1 /= reference_frames[min_frame_index_1].size(); - reference_cog_2 /= reference_frames[min_frame_index_2].size(); + reference_cog_1 /= cvm::real(reference_frames[min_frame_index_1].size()); + reference_cog_2 /= cvm::real(reference_frames[min_frame_index_2].size()); std::vector tmp_reference_frame_1(reference_frames[min_frame_index_1].size()); std::vector tmp_reference_frame_2(reference_frames[min_frame_index_2].size()); for (i_atom = 0; i_atom < atoms->size(); ++i_atom) { @@ -326,8 +322,8 @@ void colvar::gzpath::prepareVectors() { reference_fitting_cog_1 += reference_fitting_frames[min_frame_index_1][i_atom]; reference_fitting_cog_2 += reference_fitting_frames[min_frame_index_2][i_atom]; } - reference_fitting_cog_1 /= reference_fitting_frames[min_frame_index_1].size(); - reference_fitting_cog_2 /= reference_fitting_frames[min_frame_index_2].size(); + reference_fitting_cog_1 /= cvm::real(reference_fitting_frames[min_frame_index_1].size()); + reference_fitting_cog_2 /= cvm::real(reference_fitting_frames[min_frame_index_2].size()); tmp_reference_fitting_frame_1.resize(reference_fitting_frames[min_frame_index_1].size()); tmp_reference_fitting_frame_2.resize(reference_fitting_frames[min_frame_index_2].size()); for (i_atom = 0; i_atom < reference_fitting_frames[min_frame_index_1].size(); ++i_atom) { @@ -352,7 +348,7 @@ void colvar::gzpath::prepareVectors() { for (i_atom = 0; i_atom < atoms->size(); ++i_atom) { reference_cog_3 += reference_frames[min_frame_index_3][i_atom]; } - reference_cog_3 /= reference_frames[min_frame_index_3].size(); + reference_cog_3 /= cvm::real(reference_frames[min_frame_index_3].size()); std::vector tmp_reference_frame_3(reference_frames[min_frame_index_3].size()); for (i_atom = 0; i_atom < atoms->size(); ++i_atom) { tmp_reference_frame_3[i_atom] = reference_frames[min_frame_index_3][i_atom] - reference_cog_3; @@ -362,7 +358,7 @@ void colvar::gzpath::prepareVectors() { for (i_atom = 0; i_atom < reference_fitting_frames[min_frame_index_3].size(); ++i_atom) { reference_fitting_cog_3 += reference_fitting_frames[min_frame_index_3][i_atom]; } - reference_fitting_cog_3 /= reference_fitting_frames[min_frame_index_3].size(); + reference_fitting_cog_3 /= cvm::real(reference_fitting_frames[min_frame_index_3].size()); std::vector tmp_reference_fitting_frame_3(reference_fitting_frames[min_frame_index_3].size()); for (i_atom = 0; i_atom < reference_fitting_frames[min_frame_index_3].size(); ++i_atom) { tmp_reference_fitting_frame_3[i_atom] = reference_fitting_frames[min_frame_index_3][i_atom] - reference_fitting_cog_3; @@ -401,104 +397,6 @@ void colvar::gzpath::apply_force(colvarvalue const &force) { (*(comp_atoms[min_frame_index_2])).apply_colvar_force(F); } -colvar::linearCombination::linearCombination(std::string const &conf): cvc(conf) { - // Lookup all available sub-cvcs - for (auto it_cv_map = colvar::get_global_cvc_map().begin(); it_cv_map != colvar::get_global_cvc_map().end(); ++it_cv_map) { - if (key_lookup(conf, it_cv_map->first.c_str())) { - std::vector sub_cvc_confs; - get_key_string_multi_value(conf, it_cv_map->first.c_str(), sub_cvc_confs); - for (auto it_sub_cvc_conf = sub_cvc_confs.begin(); it_sub_cvc_conf != sub_cvc_confs.end(); ++it_sub_cvc_conf) { - cv.push_back((it_cv_map->second)(*(it_sub_cvc_conf))); - } - } - } - // Sort all sub CVs by their names - std::sort(cv.begin(), cv.end(), compareColvarComponent); - for (auto it_sub_cv = cv.begin(); it_sub_cv != cv.end(); ++it_sub_cv) { - for (auto it_atom_group = (*it_sub_cv)->atom_groups.begin(); it_atom_group != (*it_sub_cv)->atom_groups.end(); ++it_atom_group) { - register_atom_group(*it_atom_group); - } - } - x.type(cv[0]->value()); - x.reset(); - use_explicit_gradients = true; - for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { - if (!cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { - use_explicit_gradients = false; - } - } - if (!use_explicit_gradients) { - disable(f_cvc_explicit_gradient); - } -} - -cvm::real colvar::linearCombination::getPolynomialFactorOfCVGradient(size_t i_cv) const { - cvm::real factor_polynomial = 1.0; - if (cv[i_cv]->value().type() == colvarvalue::type_scalar) { - factor_polynomial = cv[i_cv]->sup_coeff * cv[i_cv]->sup_np * cvm::pow(cv[i_cv]->value().real_value, cv[i_cv]->sup_np - 1); - } else { - factor_polynomial = cv[i_cv]->sup_coeff; - } - return factor_polynomial; -} - -colvar::linearCombination::~linearCombination() { - for (auto it = cv.begin(); it != cv.end(); ++it) { - delete (*it); - } -} - -void colvar::linearCombination::calc_value() { - x.reset(); - for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { - cv[i_cv]->calc_value(); - colvarvalue current_cv_value(cv[i_cv]->value()); - // polynomial combination allowed - if (current_cv_value.type() == colvarvalue::type_scalar) { - x += cv[i_cv]->sup_coeff * (cvm::pow(current_cv_value.real_value, cv[i_cv]->sup_np)); - } else { - x += cv[i_cv]->sup_coeff * current_cv_value; - } - } -} - -void colvar::linearCombination::calc_gradients() { - for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { - cv[i_cv]->calc_gradients(); - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com)) { - cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); - for (size_t j_elem = 0; j_elem < cv[i_cv]->value().size(); ++j_elem) { - for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { - for (size_t l_atom = 0; l_atom < (cv[i_cv]->atom_groups)[k_ag]->size(); ++l_atom) { - (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad = factor_polynomial * (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad; - } - } - } - } - } -} - -void colvar::linearCombination::apply_force(colvarvalue const &force) { - for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { - // If this CV us explicit gradients, then atomic gradients is already calculated - // We can apply the force to atom groups directly - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com) - ) { - for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { - (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); - } - } else { - // Compute factors for polynomial combinations - cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); - colvarvalue cv_force = force.real_value * factor_polynomial; - cv[i_cv]->apply_force(cv_force); - } - } -} colvar::CVBasedPath::CVBasedPath(std::string const &conf): cvc(conf) { // Lookup all available sub-cvcs @@ -512,7 +410,7 @@ colvar::CVBasedPath::CVBasedPath(std::string const &conf): cvc(conf) { } } // Sort all sub CVs by their names - std::sort(cv.begin(), cv.end(), compareColvarComponent); + std::sort(cv.begin(), cv.end(), colvar::compare_cvc); // Register atom groups and determine the colvar type for reference std::vector tmp_cv; for (auto it_sub_cv = cv.begin(); it_sub_cv != cv.end(); ++it_sub_cv) { @@ -531,6 +429,7 @@ colvar::CVBasedPath::CVBasedPath(std::string const &conf): cvc(conf) { std::ifstream ifs_path(path_filename); if (!ifs_path.is_open()) { cvm::error("Error: failed to open path file.\n"); + return; } std::string line; const std::string token(" "); @@ -552,6 +451,7 @@ colvar::CVBasedPath::CVBasedPath(std::string const &conf): cvc(conf) { } } else { cvm::error("Error: incorrect format of path file.\n"); + return; } } if (!fields.empty()) { @@ -561,6 +461,12 @@ colvar::CVBasedPath::CVBasedPath(std::string const &conf): cvc(conf) { } if (total_reference_frames <= 1) { cvm::error("Error: there is only 1 or 0 reference frame, which doesn't constitute a path.\n"); + return; + } + if (cv.size() == 0) { + cvm::error("Error: the CV " + name + + " expects one or more nesting components.\n"); + return; } x.type(colvarvalue::type_scalar); use_explicit_gradients = true; @@ -622,14 +528,27 @@ cvm::real colvar::CVBasedPath::getPolynomialFactorOfCVGradient(size_t i_cv) cons } colvar::CVBasedPath::~CVBasedPath() { + // Recall the steps we initialize the sub-CVCs: + // 1. Lookup all sub-CVCs and then register the atom groups for sub-CVCs + // in their constructors; + // 2. Iterate over all sub-CVCs, get the pointers of their atom groups + // groups, and register again in the parent (current) CVC. + // That being said, the atom groups become children of the sub-CVCs at + // first, and then become children of the parent CVC. + // So, to destruct this class (parent CVC class), we need to remove the + // dependencies of the atom groups to the parent CVC at first. + remove_all_children(); + // Then we remove the dependencies of the atom groups to the sub-CVCs + // in their destructors. for (auto it = cv.begin(); it != cv.end(); ++it) { delete (*it); } + // The last step is cleaning up the list of atom groups. atom_groups.clear(); } colvar::gspathCV::gspathCV(std::string const &conf): CVBasedPath(conf) { - function_type = "gspathCV"; + set_function_type("gspathCV"); cvm::log(std::string("Total number of frames: ") + cvm::to_str(total_reference_frames) + std::string("\n")); // Initialize variables for future calculation get_keyval(conf, "useSecondClosestFrame", use_second_closest_frame, true); @@ -646,19 +565,10 @@ colvar::gspathCV::gspathCV(std::string const &conf): CVBasedPath(conf) { } if (total_reference_frames < 2) { cvm::error("Error: you have specified " + cvm::to_str(total_reference_frames) + " reference frames, but gspathCV requires at least 2 frames.\n"); + return; } GeometricPathCV::GeometricPathBase::initialize(cv.size(), ref_cv[0], total_reference_frames, use_second_closest_frame, use_third_closest_frame); x.type(colvarvalue::type_scalar); - use_explicit_gradients = true; - for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { - if (!cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { - use_explicit_gradients = false; - } - } - if (!use_explicit_gradients) { - cvm::log("Geometric path s(σ) will use implicit gradients.\n"); - disable(f_cvc_explicit_gradient); - } } colvar::gspathCV::~gspathCV() {} @@ -710,9 +620,7 @@ void colvar::gspathCV::calc_gradients() { // No matter whether the i-th cv uses implicit gradient, compute it first. cv[i_cv]->calc_gradients(); // If the gradient is not implicit, then add the gradients to its atom groups - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com)) { + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { // Temporary variables storing gradients colvarvalue tmp_cv_grad_v1(cv[i_cv]->value()); colvarvalue tmp_cv_grad_v2(cv[i_cv]->value()); @@ -741,10 +649,7 @@ void colvar::gspathCV::apply_force(colvarvalue const &force) { for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { // If this CV us explicit gradients, then atomic gradients is already calculated // We can apply the force to atom groups directly - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com) - ) { + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); } @@ -766,7 +671,7 @@ void colvar::gspathCV::apply_force(colvarvalue const &force) { } colvar::gzpathCV::gzpathCV(std::string const &conf): CVBasedPath(conf) { - function_type = "gzpathCV"; + set_function_type("gzpathCV"); cvm::log(std::string("Total number of frames: ") + cvm::to_str(total_reference_frames) + std::string("\n")); // Initialize variables for future calculation M = cvm::real(total_reference_frames - 1); @@ -790,19 +695,10 @@ colvar::gzpathCV::gzpathCV(std::string const &conf): CVBasedPath(conf) { } if (total_reference_frames < 2) { cvm::error("Error: you have specified " + cvm::to_str(total_reference_frames) + " reference frames, but gzpathCV requires at least 2 frames.\n"); + return; } GeometricPathCV::GeometricPathBase::initialize(cv.size(), ref_cv[0], total_reference_frames, use_second_closest_frame, use_third_closest_frame, b_use_z_square); x.type(colvarvalue::type_scalar); - use_explicit_gradients = true; - for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { - if (!cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { - use_explicit_gradients = false; - } - } - if (!use_explicit_gradients) { - cvm::log("Geometric path z(σ) will use implicit gradients.\n"); - disable(f_cvc_explicit_gradient); - } } colvar::gzpathCV::~gzpathCV() { @@ -857,9 +753,7 @@ void colvar::gzpathCV::calc_gradients() { // No matter whether the i-th cv uses implicit gradient, compute it first. cv[i_cv]->calc_gradients(); // If the gradient is not implicit, then add the gradients to its atom groups - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com)) { + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { // Temporary variables storing gradients colvarvalue tmp_cv_grad_v1 = -1.0 * dzdv1[i_cv]; colvarvalue tmp_cv_grad_v2 = 1.0 * dzdv2[i_cv]; @@ -884,14 +778,11 @@ void colvar::gzpathCV::apply_force(colvarvalue const &force) { for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { // If this CV us explicit gradients, then atomic gradients is already calculated // We can apply the force to atom groups directly - if ( cv[i_cv]->is_enabled(f_cvc_explicit_gradient) && - !cv[i_cv]->is_enabled(f_cvc_scalable) && - !cv[i_cv]->is_enabled(f_cvc_scalable_com)) { + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); } - } - else { + } else { colvarvalue tmp_cv_grad_v1 = -1.0 * dzdv1[i_cv]; colvarvalue tmp_cv_grad_v2 = 1.0 * dzdv2[i_cv]; // Temporary variables storing gradients diff --git a/lib/colvars/colvarcomp_neuralnetwork.cpp b/lib/colvars/colvarcomp_neuralnetwork.cpp new file mode 100644 index 0000000000..98bd8cddd5 --- /dev/null +++ b/lib/colvars/colvarcomp_neuralnetwork.cpp @@ -0,0 +1,188 @@ +#if (__cplusplus >= 201103L) + +#include "colvarmodule.h" +#include "colvarvalue.h" +#include "colvarparse.h" +#include "colvar.h" +#include "colvarcomp.h" +#include "colvar_neuralnetworkcompute.h" + +using namespace neuralnetworkCV; + +colvar::neuralNetwork::neuralNetwork(std::string const &conf): linearCombination(conf) { + set_function_type("neuralNetwork"); + // the output of neural network consists of multiple values + // read "output_component" key to determine it + get_keyval(conf, "output_component", m_output_index); + // read weight files + bool has_weight_files = true; + size_t num_layers_weight = 0; + std::vector weight_files; + while (has_weight_files) { + std::string lookup_key = std::string{"layer"} + cvm::to_str(num_layers_weight + 1) + std::string{"_WeightsFile"}; + if (key_lookup(conf, lookup_key.c_str())) { + std::string weight_filename; + get_keyval(conf, lookup_key.c_str(), weight_filename, std::string("")); + weight_files.push_back(weight_filename); + cvm::log(std::string{"Will read layer["} + cvm::to_str(num_layers_weight + 1) + std::string{"] weights from "} + weight_filename + '\n'); + ++num_layers_weight; + } else { + has_weight_files = false; + } + } + // read bias files + bool has_bias_files = true; + size_t num_layers_bias = 0; + std::vector bias_files; + while (has_bias_files) { + std::string lookup_key = std::string{"layer"} + cvm::to_str(num_layers_bias + 1) + std::string{"_BiasesFile"}; + if (key_lookup(conf, lookup_key.c_str())) { + std::string bias_filename; + get_keyval(conf, lookup_key.c_str(), bias_filename, std::string("")); + bias_files.push_back(bias_filename); + cvm::log(std::string{"Will read layer["} + cvm::to_str(num_layers_bias + 1) + std::string{"] biases from "} + bias_filename + '\n'); + ++num_layers_bias; + } else { + has_bias_files = false; + } + } + // read activation function strings + bool has_activation_functions = true; + size_t num_activation_functions = 0; + // pair(is_custom_function, function_string) + std::vector> activation_functions; + while (has_activation_functions) { + std::string lookup_key = std::string{"layer"} + cvm::to_str(num_activation_functions + 1) + std::string{"_activation"}; + std::string lookup_key_custom = std::string{"layer"} + cvm::to_str(num_activation_functions + 1) + std::string{"_custom_activation"}; + if (key_lookup(conf, lookup_key.c_str())) { + // Ok, this is not a custom function + std::string function_name; + get_keyval(conf, lookup_key.c_str(), function_name, std::string("")); + if (activation_function_map.find(function_name) == activation_function_map.end()) { + cvm::error("Unknown activation function name: \"" + function_name + "\".\n"); + return; + } + activation_functions.push_back(std::make_pair(false, function_name)); + cvm::log(std::string{"The activation function for layer["} + cvm::to_str(num_activation_functions + 1) + std::string{"] is "} + function_name + '\n'); + ++num_activation_functions; +#ifdef LEPTON + } else if (key_lookup(conf, lookup_key_custom.c_str())) { + std::string function_expression; + get_keyval(conf, lookup_key_custom.c_str(), function_expression, std::string("")); + activation_functions.push_back(std::make_pair(true, function_expression)); + cvm::log(std::string{"The custom activation function for layer["} + cvm::to_str(num_activation_functions + 1) + std::string{"] is "} + function_expression + '\n'); + ++num_activation_functions; +#endif + } else { + has_activation_functions = false; + } + } + // expect the three numbers are equal + if ((num_layers_weight != num_layers_bias) || (num_layers_bias != num_activation_functions)) { + cvm::error("Error: the numbers of weights, biases and activation functions do not match.\n"); + return; + } +// nn = std::make_unique(); + // std::make_unique is only available in C++14 + nn = std::unique_ptr(new neuralnetworkCV::neuralNetworkCompute()); + for (size_t i_layer = 0; i_layer < num_layers_weight; ++i_layer) { + denseLayer d; +#ifdef LEPTON + if (activation_functions[i_layer].first) { + // use custom function as activation function + try { + d = denseLayer(weight_files[i_layer], bias_files[i_layer], activation_functions[i_layer].second); + } catch (std::exception &ex) { + cvm::error("Error on initializing layer " + cvm::to_str(i_layer) + " (" + ex.what() + ")\n", COLVARS_INPUT_ERROR); + return; + } + } else { +#endif + // query the map of supported activation functions + const auto& f = activation_function_map[activation_functions[i_layer].second].first; + const auto& df = activation_function_map[activation_functions[i_layer].second].second; + try { + d = denseLayer(weight_files[i_layer], bias_files[i_layer], f, df); + } catch (std::exception &ex) { + cvm::error("Error on initializing layer " + cvm::to_str(i_layer) + " (" + ex.what() + ")\n", COLVARS_INPUT_ERROR); + return; + } +#ifdef LEPTON + } +#endif + // add a new dense layer to network + if (nn->addDenseLayer(d)) { + if (cvm::debug()) { + // show information about the neural network + cvm::log("Layer " + cvm::to_str(i_layer) + " : has " + cvm::to_str(d.getInputSize()) + " input nodes and " + cvm::to_str(d.getOutputSize()) + " output nodes.\n"); + for (size_t i_output = 0; i_output < d.getOutputSize(); ++i_output) { + for (size_t j_input = 0; j_input < d.getInputSize(); ++j_input) { + cvm::log(" weights[" + cvm::to_str(i_output) + "][" + cvm::to_str(j_input) + "] = " + cvm::to_str(d.getWeight(i_output, j_input))); + } + cvm::log(" biases[" + cvm::to_str(i_output) + "] = " + cvm::to_str(d.getBias(i_output)) + "\n"); + } + } + } else { + cvm::error("Error: error on adding a new dense layer.\n"); + return; + } + } + nn->input().resize(cv.size()); +} + +colvar::neuralNetwork::~neuralNetwork() { +} + +void colvar::neuralNetwork::calc_value() { + x.reset(); + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + cv[i_cv]->calc_value(); + const colvarvalue& current_cv_value = cv[i_cv]->value(); + // for current nn implementation we have to assume taht types are always scaler + if (current_cv_value.type() == colvarvalue::type_scalar) { + nn->input()[i_cv] = cv[i_cv]->sup_coeff * (cvm::pow(current_cv_value.real_value, cv[i_cv]->sup_np)); + } else { + cvm::error("Error: using of non-scaler component.\n"); + return; + } + } + nn->compute(); + x = nn->getOutput(m_output_index); +} + +void colvar::neuralNetwork::calc_gradients() { + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + cv[i_cv]->calc_gradients(); + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + const cvm::real factor = nn->getGradient(m_output_index, i_cv); + const cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); + for (size_t j_elem = 0; j_elem < cv[i_cv]->value().size(); ++j_elem) { + for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { + for (size_t l_atom = 0; l_atom < (cv[i_cv]->atom_groups)[k_ag]->size(); ++l_atom) { + (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad = factor_polynomial * factor * (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad; + } + } + } + } + } +} + +void colvar::neuralNetwork::apply_force(colvarvalue const &force) { + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + // If this CV us explicit gradients, then atomic gradients is already calculated + // We can apply the force to atom groups directly + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { + (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); + } + } else { + // Compute factors for polynomial combinations + const cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); + const cvm::real factor = nn->getGradient(m_output_index, i_cv);; + colvarvalue cv_force = force.real_value * factor * factor_polynomial; + cv[i_cv]->apply_force(cv_force); + } + } +} + +#endif diff --git a/lib/colvars/colvarcomp_protein.cpp b/lib/colvars/colvarcomp_protein.cpp index 3add471c04..b92cb533b7 100644 --- a/lib/colvars/colvarcomp_protein.cpp +++ b/lib/colvars/colvarcomp_protein.cpp @@ -16,17 +16,10 @@ #include "colvarcomp.h" -////////////////////////////////////////////////////////////////////// -// alpha component -////////////////////////////////////////////////////////////////////// - colvar::alpha_angles::alpha_angles(std::string const &conf) : cvc(conf) { - if (cvm::debug()) - cvm::log("Initializing alpha_angles object.\n"); - - function_type = "alpha_angles"; + set_function_type("alpha"); enable(f_cvc_explicit_gradient); x.type(colvarvalue::type_scalar); @@ -110,16 +103,13 @@ colvar::alpha_angles::alpha_angles(std::string const &conf) cvm::log("The hBondCoeff specified will disable the hydrogen bond terms.\n"); } } - - if (cvm::debug()) - cvm::log("Done initializing alpha_angles object.\n"); } colvar::alpha_angles::alpha_angles() : cvc() { - function_type = "alpha_angles"; + set_function_type("alphaAngles"); enable(f_cvc_explicit_gradient); x.type(colvarvalue::type_scalar); } @@ -297,7 +287,7 @@ colvar::dihedPC::dihedPC(std::string const &conf) if (cvm::debug()) cvm::log("Initializing dihedral PC object.\n"); - function_type = "dihedPC"; + set_function_type("dihedPC"); // Supported through references to atom groups of children cvcs enable(f_cvc_explicit_gradient); x.type(colvarvalue::type_scalar); @@ -428,7 +418,7 @@ colvar::dihedPC::dihedPC(std::string const &conf) colvar::dihedPC::dihedPC() : cvc() { - function_type = "dihedPC"; + set_function_type("dihedPC"); // Supported through references to atom groups of children cvcs enable(f_cvc_explicit_gradient); x.type(colvarvalue::type_scalar); diff --git a/lib/colvars/colvarcomp_rotations.cpp b/lib/colvars/colvarcomp_rotations.cpp index fbf572b3f3..2e0d25ab81 100644 --- a/lib/colvars/colvarcomp_rotations.cpp +++ b/lib/colvars/colvarcomp_rotations.cpp @@ -18,10 +18,10 @@ colvar::orientation::orientation(std::string const &conf) : cvc() { - function_type = "orientation"; + set_function_type("orientation"); disable(f_cvc_explicit_gradient); x.type(colvarvalue::type_quaternion); - init(conf); + colvar::orientation::init(conf); } @@ -36,7 +36,7 @@ int colvar::orientation::init(std::string const &conf) cvm::log("Using reference positions from input file.\n"); if (ref_pos.size() != atoms->size()) { return cvm::error("Error: reference positions do not " - "match the number of requested atoms.\n", INPUT_ERROR); + "match the number of requested atoms.\n", COLVARS_INPUT_ERROR); } } @@ -51,7 +51,7 @@ int colvar::orientation::init(std::string const &conf) bool found = get_keyval(conf, "refPositionsColValue", file_col_value, 0.0); if (found && file_col_value==0.0) { return cvm::error("Error: refPositionsColValue, " - "if provided, must be non-zero.\n", INPUT_ERROR); + "if provided, must be non-zero.\n", COLVARS_INPUT_ERROR); } } @@ -63,7 +63,7 @@ int colvar::orientation::init(std::string const &conf) if (!ref_pos.size()) { return cvm::error("Error: must define a set of " - "reference coordinates.\n", INPUT_ERROR); + "reference coordinates.\n", COLVARS_INPUT_ERROR); } @@ -94,7 +94,7 @@ int colvar::orientation::init(std::string const &conf) colvar::orientation::orientation() : cvc() { - function_type = "orientation"; + set_function_type("orientation"); disable(f_cvc_explicit_gradient); x.type(colvarvalue::type_quaternion); } @@ -163,10 +163,10 @@ colvarvalue colvar::orientation::dist2_rgrad(colvarvalue const &x1, colvar::orientation_angle::orientation_angle(std::string const &conf) : orientation() { - function_type = "orientation_angle"; + set_function_type("orientationAngle"); init_as_angle(); enable(f_cvc_explicit_gradient); - init(conf); + orientation_angle::init(conf); } @@ -219,11 +219,11 @@ simple_scalar_dist_functions(orientation_angle) colvar::orientation_proj::orientation_proj(std::string const &conf) : orientation() { - function_type = "orientation_proj"; + set_function_type("orientationProj"); enable(f_cvc_explicit_gradient); x.type(colvarvalue::type_scalar); init_scalar_boundaries(0.0, 1.0); - init(conf); + orientation_proj::init(conf); } @@ -267,11 +267,11 @@ simple_scalar_dist_functions(orientation_proj) colvar::tilt::tilt(std::string const &conf) : orientation() { - function_type = "tilt"; - enable(f_cvc_explicit_gradient); + set_function_type("tilt"); x.type(colvarvalue::type_scalar); + enable(f_cvc_explicit_gradient); init_scalar_boundaries(-1.0, 1.0); - init(conf); + tilt::init(conf); } @@ -331,12 +331,11 @@ simple_scalar_dist_functions(tilt) colvar::spin_angle::spin_angle(std::string const &conf) : orientation() { - function_type = "spin_angle"; - period = 360.0; + set_function_type("spinAngle"); + init_as_periodic_angle(); enable(f_cvc_periodic); enable(f_cvc_explicit_gradient); - x.type(colvarvalue::type_scalar); - init(conf); + spin_angle::init(conf); } @@ -359,7 +358,7 @@ int colvar::spin_angle::init(std::string const &conf) colvar::spin_angle::spin_angle() : orientation() { - function_type = "spin_angle"; + set_function_type("spinAngle"); period = 360.0; enable(f_cvc_periodic); enable(f_cvc_explicit_gradient); @@ -447,23 +446,19 @@ void colvar::spin_angle::wrap(colvarvalue &x_unwrapped) const colvar::euler_phi::euler_phi(std::string const &conf) : orientation() { - function_type = "euler_phi"; - period = 360.0; - enable(f_cvc_periodic); + set_function_type("eulerPhi"); + init_as_periodic_angle(); enable(f_cvc_explicit_gradient); - x.type(colvarvalue::type_scalar); - init(conf); + euler_phi::init(conf); } colvar::euler_phi::euler_phi() : orientation() { - function_type = "euler_phi"; - period = 360.0; - enable(f_cvc_periodic); + set_function_type("eulerPhi"); + init_as_periodic_angle(); enable(f_cvc_explicit_gradient); - x.type(colvarvalue::type_scalar); } @@ -566,23 +561,19 @@ void colvar::euler_phi::wrap(colvarvalue &x_unwrapped) const colvar::euler_psi::euler_psi(std::string const &conf) : orientation() { - function_type = "euler_psi"; - period = 360.0; - enable(f_cvc_periodic); + set_function_type("eulerPsi"); + init_as_periodic_angle(); enable(f_cvc_explicit_gradient); - x.type(colvarvalue::type_scalar); - init(conf); + euler_psi::init(conf); } colvar::euler_psi::euler_psi() : orientation() { - function_type = "euler_psi"; - period = 360.0; - enable(f_cvc_periodic); + set_function_type("eulerPsi"); + init_as_periodic_angle(); enable(f_cvc_explicit_gradient); - x.type(colvarvalue::type_scalar); } @@ -685,19 +676,19 @@ void colvar::euler_psi::wrap(colvarvalue &x_unwrapped) const colvar::euler_theta::euler_theta(std::string const &conf) : orientation() { - function_type = "euler_theta"; + set_function_type("eulerTheta"); + init_as_angle(); enable(f_cvc_explicit_gradient); - x.type(colvarvalue::type_scalar); - init(conf); + euler_theta::init(conf); } colvar::euler_theta::euler_theta() : orientation() { - function_type = "euler_theta"; + set_function_type("eulerTheta"); + init_as_angle(); enable(f_cvc_explicit_gradient); - x.type(colvarvalue::type_scalar); } diff --git a/lib/colvars/colvarcomp_volmaps.cpp b/lib/colvars/colvarcomp_volmaps.cpp index 865500dfeb..00c7206bc1 100644 --- a/lib/colvars/colvarcomp_volmaps.cpp +++ b/lib/colvars/colvarcomp_volmaps.cpp @@ -16,9 +16,9 @@ colvar::map_total::map_total() - : cvc(), volmap_index(-1) + : cvc() { - function_type = "map_total"; + set_function_type("mapTotal"); volmap_id = -1; volmap_index = -1; atoms = NULL; @@ -27,9 +27,9 @@ colvar::map_total::map_total() colvar::map_total::map_total(std::string const &conf) - : cvc(), volmap_index(-1) + : cvc() // init() will take care of this { - function_type = "map_total"; + set_function_type("mapTotal"); volmap_id = -1; volmap_index = -1; atoms = NULL; @@ -46,6 +46,8 @@ int colvar::map_total::init(std::string const &conf) get_keyval(conf, "mapID", volmap_id, volmap_id); register_param("mapID", reinterpret_cast(&volmap_id)); + cvm::main()->cite_feature("Volumetric map-based collective variables"); + if ((volmap_name.size() > 0) && (volmap_id >= 0)) { error_code |= cvm::error("Error: mapName and mapID are mutually exclusive.\n"); @@ -72,21 +74,21 @@ int colvar::map_total::init(std::string const &conf) if (volmap_id >= 0) { volmap_index = proxy->init_volmap_by_id(volmap_id); } - error_code |= volmap_index > 0 ? COLVARS_OK : INPUT_ERROR; + error_code |= volmap_index > 0 ? COLVARS_OK : COLVARS_INPUT_ERROR; } if (get_keyval(conf, "atomWeights", atom_weights, atom_weights)) { if (atoms == NULL) { error_code |= cvm::error("Error: weights can only be assigned when atoms " "are selected explicitly in Colvars.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } else { if (atoms->size() != atom_weights.size()) { error_code |= cvm::error("Error: if defined, the number of weights ("+ cvm::to_str(atom_weights.size())+ ") must equal the number of atoms ("+ cvm::to_str(atoms->size())+ - ").\n", INPUT_ERROR); + ").\n", COLVARS_INPUT_ERROR); } } } diff --git a/lib/colvars/colvardeps.cpp b/lib/colvars/colvardeps.cpp index c240ce5a96..2a22b1cb57 100644 --- a/lib/colvars/colvardeps.cpp +++ b/lib/colvars/colvardeps.cpp @@ -26,7 +26,7 @@ colvardeps::~colvardeps() { if (parents.size()) { cvm::log("Warning: destroying \"" + description + "\" before its parents objects:"); for (i=0; idescription); + cvm::log(parents[i]->description + "\n"); } } @@ -157,10 +157,10 @@ int colvardeps::enable(int feature_id, if (!dry_run) { if (toplevel) { cvm::error("Error: " + feature_type_descr + " feature unavailable: \"" - + f->description + "\" in " + description + "."); + + f->description + "\" in " + description + ".\n"); } else { cvm::log(feature_type_descr + " feature unavailable: \"" - + f->description + "\" in " + description + "."); + + f->description + "\" in " + description + ".\n"); } } return COLVARS_ERROR; @@ -169,7 +169,7 @@ int colvardeps::enable(int feature_id, if (!toplevel && !is_dynamic(feature_id)) { if (!dry_run) { cvm::log(feature_type_descr + " feature \"" + f->description - + "\" cannot be enabled automatically in " + description + "."); + + "\" cannot be enabled automatically in " + description + ".\n"); if (is_user(feature_id)) { cvm::log("Try setting it manually.\n"); } @@ -182,13 +182,13 @@ int colvardeps::enable(int feature_id, for (i=0; irequires_exclude.size(); i++) { feature *g = features()[f->requires_exclude[i]]; if (cvm::debug()) - cvm::log(f->description + " requires exclude " + g->description); + cvm::log(f->description + " requires exclude " + g->description + "\n"); if (is_enabled(f->requires_exclude[i])) { if (!dry_run) { cvm::log("Feature \"" + f->description + "\" is incompatible with \"" - + g->description + "\" in " + description + "."); + + g->description + "\" in " + description + ".\n"); if (toplevel) { - cvm::error("Error: Failed dependency in " + description + "."); + cvm::error("Error: Failed dependency in " + description + ".\n"); } } return COLVARS_ERROR; @@ -198,13 +198,13 @@ int colvardeps::enable(int feature_id, // 2) solve internal deps (self) for (i=0; irequires_self.size(); i++) { if (cvm::debug()) - cvm::log(f->description + " requires self " + features()[f->requires_self[i]]->description); + cvm::log(f->description + " requires self " + features()[f->requires_self[i]]->description + "\n"); res = enable(f->requires_self[i], dry_run, false); if (res != COLVARS_OK) { if (!dry_run) { - cvm::log("...required by \"" + f->description + "\" in " + description); + cvm::log("...required by \"" + f->description + "\" in " + description + "\n"); if (toplevel) { - cvm::error("Error: Failed dependency in " + description + "."); + cvm::error("Error: Failed dependency in " + description + ".\n"); } } return res; @@ -219,7 +219,7 @@ int colvardeps::enable(int feature_id, for (j=0; jrequires_alt[i].size(); j++) { int g = f->requires_alt[i][j]; if (cvm::debug()) - cvm::log(f->description + " requires alt " + features()[g]->description); + cvm::log(f->description + " requires alt " + features()[g]->description + "\n"); res = enable(g, true, false); // see if available if (res == COLVARS_OK) { ok = true; @@ -239,13 +239,13 @@ int colvardeps::enable(int feature_id, cvm::increase_depth(); for (j=0; jrequires_alt[i].size(); j++) { int g = f->requires_alt[i][j]; - cvm::log(cvm::to_str(j+1) + ". " + features()[g]->description); + cvm::log(cvm::to_str(j+1) + ". " + features()[g]->description + "\n"); enable(g, false, false); // Just for printing error output } cvm::decrease_depth(); cvm::log("-----------------------------------------\n"); if (toplevel) { - cvm::error("Error: Failed dependency in " + description + "."); + cvm::error("Error: Failed dependency in " + description + ".\n"); } } return COLVARS_ERROR; @@ -262,9 +262,9 @@ int colvardeps::enable(int feature_id, res = children[j]->enable(g, dry_run || !is_enabled(), false); if (res != COLVARS_OK) { if (!dry_run) { - cvm::log("...required by \"" + f->description + "\" in " + description); + cvm::log("...required by \"" + f->description + "\" in " + description + "\n"); if (toplevel) { - cvm::error("Error: Failed dependency in " + description + "."); + cvm::error("Error: Failed dependency in " + description + ".\n"); } } return res; diff --git a/lib/colvars/colvardeps.h b/lib/colvars/colvardeps.h index 9fd441ffec..cfc93d0514 100644 --- a/lib/colvars/colvardeps.h +++ b/lib/colvars/colvardeps.h @@ -194,7 +194,7 @@ public: /// Enable a feature and recursively solve its dependencies. /// For accurate reference counting, do not add spurious calls to enable() - /// \param dry_run Recursively test if a feature is available, without enabling it + /// \param dry_run Recursively test whether a feature is available, without enabling it /// \param toplevel False if this is called as part of a chain of dependency resolution. /// This is used to diagnose failed dependencies by displaying the full stack: /// only the toplevel dependency will throw a fatal error. @@ -251,6 +251,8 @@ public: f_cvb_write_ti_samples, /// \brief whether this bias should write the TI PMF f_cvb_write_ti_pmf, + /// \brief whether this bias uses an external grid to scale the biasing forces + f_cvb_scale_biasing_force, f_cvb_ntot }; @@ -265,6 +267,8 @@ public: /// \brief Collect atomic gradient data from all cvcs into vector /// atomic_gradient f_cv_collect_gradient, + /// \brief Build list of atoms involved in CV calculation + f_cv_collect_atom_ids, /// \brief Calculate the velocity with finite differences f_cv_fdiff_velocity, /// \brief The total force is calculated, projecting the atomic @@ -353,7 +357,7 @@ public: f_cvc_upper_boundary, /// CVC calculates atom gradients f_cvc_gradient, - /// CVC calculates and stores explicit atom gradients + /// CVC calculates and stores explicit atom gradients on rank 0 f_cvc_explicit_gradient, /// CVC calculates and stores inverse atom gradients (used for total force) f_cvc_inv_gradient, @@ -372,6 +376,8 @@ public: f_cvc_scalable, /// Centers-of-mass used in this CVC can be computed in parallel f_cvc_scalable_com, + /// \brief Build list of atoms involved in CVC calculation + f_cvc_collect_atom_ids, /// Number of CVC features f_cvc_ntot }; @@ -391,6 +397,8 @@ public: f_ag_atom_forces, f_ag_scalable, f_ag_scalable_com, + /// \brief Build list of atoms involved in atom group + f_ag_collect_atom_ids, f_ag_ntot }; @@ -418,12 +426,12 @@ public: /// \brief print all enabled features and those of children, for debugging void print_state(); - /// \brief Check that a feature is enabled, raising BUG_ERROR if not + /// \brief Check that a feature is enabled, raising COLVARS_BUG_ERROR if not inline void check_enabled(int f, std::string const &reason) const { if (! is_enabled(f)) { cvm::error("Error: "+reason+" requires that the feature \""+ - features()[f]->description+"\" is active.\n", BUG_ERROR); + features()[f]->description+"\" is active.\n", COLVARS_BUG_ERROR); } } diff --git a/lib/colvars/colvargrid.cpp b/lib/colvars/colvargrid.cpp index b3768a47f6..96eb7cb5e1 100644 --- a/lib/colvars/colvargrid.cpp +++ b/lib/colvars/colvargrid.cpp @@ -170,7 +170,7 @@ colvar_grid_gradient::colvar_grid_gradient(std::string &filename) if (nd > 50) { cvm::error("Error: excessive number of dimensions in file \""+ filename+"\". Please ensure that the file is not corrupt.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return; } @@ -271,6 +271,7 @@ integrate_potential::integrate_potential(std::vector &colvars, colvar_ // hence PMF grid is wider than gradient grid if non-PBC if (nd > 1) { + cvm::main()->cite_feature("Poisson integration of 2D/3D free energy surfaces"); divergence.resize(nt); // Compute inverse of Laplacian diagonal for Jacobi preconditioning @@ -425,7 +426,7 @@ void integrate_potential::get_grad(cvm::real * g, std::vector &ix) void integrate_potential::update_div_local(const std::vector &ix0) { - const int linear_index = address(ix0); + const size_t linear_index = address(ix0); int i, j, k; std::vector ix = ix0; diff --git a/lib/colvars/colvargrid.h b/lib/colvars/colvargrid.h index 3642ae387c..e0b2ec7f03 100644 --- a/lib/colvars/colvargrid.h +++ b/lib/colvars/colvargrid.h @@ -62,7 +62,7 @@ protected: addr += ix[i]*static_cast(nxc[i]); if (cvm::debug()) { if (ix[i] >= nx[i]) { - cvm::error("Error: exceeding bounds in colvar_grid.\n", BUG_ERROR); + cvm::error("Error: exceeding bounds in colvar_grid.\n", COLVARS_BUG_ERROR); return 0; } } @@ -170,7 +170,7 @@ public: for (int i = nd-1; i >= 0; i--) { if (nx[i] <= 0) { cvm::error("Error: providing an invalid number of grid points, "+ - cvm::to_str(nx[i])+".\n", BUG_ERROR); + cvm::to_str(nx[i])+".\n", COLVARS_BUG_ERROR); return COLVARS_ERROR; } nxc[i] = nt; @@ -254,11 +254,11 @@ public: bool add_extra_bin = false) : has_parent_data(false), has_data(false) { - this->init_from_colvars(colvars, t, mult_i, add_extra_bin); + (void) t; + this->init_from_colvars(colvars, mult_i, add_extra_bin); } int init_from_colvars(std::vector const &colvars, - T const &t = T(), size_t mult_i = 1, bool add_extra_bin = false) { @@ -283,13 +283,13 @@ public: cvm::error("Colvar grids can only be automatically " "constructed for scalar variables. " "ABF and histogram can not be used; metadynamics " - "can be used with useGrids disabled.\n", INPUT_ERROR); + "can be used with useGrids disabled.\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } if (cv[i]->width <= 0.0) { cvm::error("Tried to initialize a grid on a " - "variable with negative or zero width.\n", INPUT_ERROR); + "variable with negative or zero width.\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } @@ -340,6 +340,9 @@ public: nt = 0; for (size_t i = 0; i < lower_boundaries.size(); i++) { + // Re-compute periodicity using current grid boundaries + periodic[i] = cv[i]->periodic_boundaries(lower_boundaries[i].real_value, + upper_boundaries[i].real_value); cvm::real nbins = ( upper_boundaries[i].real_value - lower_boundaries[i].real_value ) / widths[i]; @@ -375,7 +378,7 @@ public: } else { if (ix[i] < 0 || ix[i] >= nx[i]) { cvm::error("Trying to wrap illegal index vector (non-PBC) for a grid point: " - + cvm::to_str(ix), BUG_ERROR); + + cvm::to_str(ix), COLVARS_BUG_ERROR); return; } } @@ -542,12 +545,21 @@ public: { for (size_t i = 0; i < data.size(); i++) out_data[i] = data[i]; } + void raw_data_out(std::vector& out_data) const + { + out_data = data; + } /// \brief Input the data as they are represented in memory. void raw_data_in(const T* in_data) { for (size_t i = 0; i < data.size(); i++) data[i] = in_data[i]; has_data = true; } + void raw_data_in(const std::vector& in_data) + { + data = in_data; + has_data = true; + } /// \brief Size of the data as they are represented in memory. size_t raw_data_num() const { return data.size(); } @@ -1245,6 +1257,7 @@ public: size_t const &imult = 0, bool add = false) { + (void) imult; if (add) { data[address(ix)] += t; if (this->has_parent_data) { @@ -1381,6 +1394,7 @@ public: cvm::real const &new_value, size_t const &imult = 0) { + (void) imult; // only legal value of imult here is 0 data[address(ix)] += new_value; if (samples) @@ -1441,6 +1455,49 @@ public: } } + /// \brief Return the gradient of discrete count from finite differences + /// on the *same* grid for dimension n + inline cvm::real gradient_finite_diff(const std::vector &ix0, + int n = 0) + { + cvm::real A0, A1, A2; + std::vector ix = ix0; + + // FIXME this can be rewritten more concisely with wrap_edge() + if (periodic[n]) { + ix[n]--; wrap(ix); + A0 = value(ix); + ix = ix0; + ix[n]++; wrap(ix); + A1 = value(ix); + if (A0 * A1 == 0) { + return 0.; // can't handle empty bins + } else { + return (A1 - A0) / (widths[n] * 2.); + } + } else if (ix[n] > 0 && ix[n] < nx[n]-1) { // not an edge + ix[n]--; + A0 = value(ix); + ix = ix0; + ix[n]++; + A1 = value(ix); + if (A0 * A1 == 0) { + return 0.; // can't handle empty bins + } else { + return (A1 - A0) / (widths[n] * 2.); + } + } else { + // edge: use 2nd order derivative + int increment = (ix[n] == 0 ? 1 : -1); + // move right from left edge, or the other way around + A0 = value(ix); + ix[n] += increment; A1 = value(ix); + ix[n] += increment; A2 = value(ix); + return (-1.5 * A0 + 2. * A1 + - 0.5 * A2) * increment / widths[n]; + } + } + /// \brief Return the value of the function at ix divided by its /// number of samples (if the count grid is defined) virtual cvm::real value_output(std::vector const &ix, diff --git a/lib/colvars/colvarmodule.cpp b/lib/colvars/colvarmodule.cpp index ee14703726..6ad945202e 100644 --- a/lib/colvars/colvarmodule.cpp +++ b/lib/colvars/colvarmodule.cpp @@ -9,6 +9,8 @@ #include #include +#include +#include #include "colvarmodule.h" #include "colvarparse.h" @@ -18,6 +20,7 @@ #include "colvarbias_abf.h" #include "colvarbias_alb.h" #include "colvarbias_histogram.h" +#include "colvarbias_histogram_reweight_amd.h" #include "colvarbias_meta.h" #include "colvarbias_restraint.h" #include "colvarscript.h" @@ -25,6 +28,44 @@ #include "colvarcomp.h" + +/// Track usage of Colvars features +class colvarmodule::usage { + +public: + + /// Constructor + usage(); + + /// Increment usage count for the given feature; return error if not found + int cite_feature(std::string const &feature); + + /// Increment usage count for the given paper; return error if not found + int cite_paper(std::string const &paper); + + /// Generate a report for used features (0 = URL, 1 = BibTeX) + std::string report(int flag); + +protected: + + /// Usage count for each feature + std::map feature_count_; + + /// Usage count for each cited paper + std::map paper_count_; + + /// URL for each paper + std::map paper_url_; + + /// BibTeX entry for each paper + std::map paper_bibtex_; + + /// Map code features to the relevant papers + std::map feature_paper_map_; + +}; + + colvarmodule::colvarmodule(colvarproxy *proxy_in) { depth_s = 0; @@ -34,27 +75,33 @@ colvarmodule::colvarmodule(colvarproxy *proxy_in) xyz_reader_use_count = 0; + num_biases_types_used_ = + reinterpret_cast(new std::map()); + restart_version_str.clear(); restart_version_int = 0; - if (proxy == NULL) { - proxy = proxy_in; // Pointer to the proxy object - parse = new colvarparse(); // Parsing object for global options - version_int = proxy->get_version_from_string(COLVARS_VERSION); - } else { + usage_ = new usage(); + usage_->cite_feature("Colvars module"); + + if (proxy != NULL) { // TODO relax this error to handle multiple molecules in VMD // once the module is not static anymore cvm::error("Error: trying to allocate the collective " - "variable module twice.\n", BUG_ERROR); + "variable module twice.\n", COLVARS_BUG_ERROR); return; } + proxy = proxy_in; // Pointer to the proxy object + parse = new colvarparse(); // Parsing object for global options + version_int = proxy->get_version_from_string(COLVARS_VERSION); + cvm::log(cvm::line_marker); cvm::log("Initializing the collective variables module, version "+ version()+".\n"); - cvm::log("Please cite Fiorin et al, Mol Phys 2013:\n " - "https://dx.doi.org/10.1080/00268976.2013.813594\n" - "in any publication based on this calculation.\n"); + cvm::log("Please cite Fiorin et al, Mol Phys 2013:\n" + " https://doi.org/10.1080/00268976.2013.813594\n" + "as well as all other papers listed below for individual features used.\n"); if (proxy->smp_enabled() == COLVARS_OK) { cvm::log("SMP parallelism is enabled; if needed, use \"smp off\" to override this.\n"); @@ -65,7 +112,7 @@ colvarmodule::colvarmodule(colvarproxy *proxy_in) #else cvm::log("This version was built without the C++11 standard: some features are disabled.\n" "Please see the following link for details:\n" - "https://colvars.github.io/README-c++11.html"); + " https://colvars.github.io/README-c++11.html\n"); #endif // set initial default values @@ -87,8 +134,10 @@ colvarmodule::colvarmodule(colvarproxy *proxy_in) // by default overwrite the existing trajectory file cv_traj_append = false; - cv_traj_write_labels = true; + + // Removes the need for proxy specializations to create this + proxy->script = new colvarscript(proxy, this); } @@ -145,7 +194,7 @@ int colvarmodule::read_config_file(char const *config_filename) if (!config_s.is_open()) { cvm::error("Error: in opening configuration file \""+ std::string(config_filename)+"\".\n", - FILE_ERROR); + COLVARS_FILE_ERROR); return COLVARS_ERROR; } @@ -210,7 +259,7 @@ int colvarmodule::parse_config(std::string &conf) // Check that the input has matching braces if (colvarparse::check_braces(conf, 0) != COLVARS_OK) { return cvm::error("Error: unmatched curly braces in configuration.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } // Check that the input has only ASCII characters, and warn otherwise @@ -253,6 +302,10 @@ int colvarmodule::parse_config(std::string &conf) // Update any necessary proxy data proxy->setup(); + if (source_Tcl_script.size() > 0) { + run_tcl_script(source_Tcl_script); + } + return get_error(); } @@ -342,20 +395,26 @@ int colvarmodule::parse_global_params(std::string const &conf) parse->get_keyval(conf, "scriptingAfterBiases", scripting_after_biases, scripting_after_biases); - if (use_scripted_forces && !proxy->force_script_defined) { - if (proxy->simulation_running()) { - return cvm::error("User script for scripted colvar forces not found.", - INPUT_ERROR); - } else { - // Not necessary if we are not applying biases in a real simulation (eg. VMD) - cvm::log("Warning: User script for scripted colvar forces not found."); - } - } +#if defined(COLVARS_TCL) + parse->get_keyval(conf, "sourceTclFile", source_Tcl_script); +#endif return cvm::get_error(); } +int colvarmodule::run_tcl_script(std::string const &filename) { + + int result = COLVARS_OK; + +#if defined(COLVARS_TCL) + result = proxy->tcl_run_file(filename); +#endif + + return result; +} + + int colvarmodule::parse_colvars(std::string const &conf) { if (cvm::debug()) @@ -378,7 +437,7 @@ int colvarmodule::parse_colvars(std::string const &conf) } cvm::decrease_depth(); } else { - cvm::error("Error: \"colvar\" keyword found without any configuration.\n", INPUT_ERROR); + cvm::error("Error: \"colvar\" keyword found without any configuration.\n", COLVARS_INPUT_ERROR); return COLVARS_ERROR; } cvm::decrease_depth(); @@ -421,13 +480,27 @@ template int colvarmodule::parse_biases_type(std::string const &conf, char const *keyword) { + // Allow camel case when calling, but use only lower case for parsing + std::string const &type_keyword = colvarparse::to_lower_cppstr(keyword); + + // Check how many times this bias keyword was used, set default name + // accordingly + std::map *num_biases_types_used = + reinterpret_cast *>(num_biases_types_used_); + if (num_biases_types_used->count(type_keyword) == 0) { + (*num_biases_types_used)[type_keyword] = 0; + } + std::string bias_conf = ""; size_t conf_saved_pos = 0; while (parse->key_lookup(conf, keyword, &bias_conf, &conf_saved_pos)) { if (bias_conf.size()) { cvm::log(cvm::line_marker); cvm::increase_depth(); - biases.push_back(new bias_type(keyword)); + int &bias_count = (*num_biases_types_used)[type_keyword]; + biases.push_back(new bias_type(type_keyword.c_str())); + bias_count += 1; + biases.back()->rank = bias_count; biases.back()->init(bias_conf); if (cvm::check_new_bias(bias_conf, keyword) != COLVARS_OK) { return COLVARS_ERROR; @@ -435,7 +508,7 @@ int colvarmodule::parse_biases_type(std::string const &conf, cvm::decrease_depth(); } else { cvm::error("Error: keyword \""+std::string(keyword)+"\" found without configuration.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return COLVARS_ERROR; } bias_conf = ""; @@ -477,6 +550,9 @@ int colvarmodule::parse_biases(std::string const &conf) /// initialize metadynamics instances parse_biases_type(conf, "metadynamics"); + /// initialize reweightaMD instances + parse_biases_type(conf, "reweightaMD"); + if (use_scripted_forces) { cvm::log(cvm::line_marker); cvm::increase_depth(); @@ -580,8 +656,8 @@ int colvarmodule::catch_input_errors(int result) { if (result != COLVARS_OK || get_error()) { set_error_bits(result); - set_error_bits(INPUT_ERROR); - parse->init(); + set_error_bits(COLVARS_INPUT_ERROR); + parse->clear(); return get_error(); } return COLVARS_OK; @@ -1017,7 +1093,7 @@ int colvarmodule::write_restart_file(std::string const &out_name) std::ostream *restart_out_os = proxy->output_stream(out_name); if (!restart_out_os) return cvm::get_error(); if (!write_restart(*restart_out_os)) { - return cvm::error("Error: in writing restart file.\n", FILE_ERROR); + return cvm::error("Error: in writing restart file.\n", COLVARS_FILE_ERROR); } proxy->close_output_stream(out_name); if (cv_traj_os != NULL) { @@ -1033,7 +1109,7 @@ int colvarmodule::write_restart_string(std::string &output) cvm::log("Saving state to output buffer.\n"); std::ostringstream os; if (!write_restart(os)) { - return cvm::error("Error: in writing restart to buffer.\n", FILE_ERROR); + return cvm::error("Error: in writing restart to buffer.\n", COLVARS_FILE_ERROR); } output = os.str(); return COLVARS_OK; @@ -1156,8 +1232,17 @@ colvarmodule::~colvarmodule() colvar::cvc::delete_features(); atom_group::delete_features(); + delete + reinterpret_cast *>(num_biases_types_used_); + num_biases_types_used_ = NULL; + delete parse; parse = NULL; + + delete usage_; + usage_ = NULL; + + // The proxy object will be deallocated last (if at all) proxy = NULL; } } @@ -1167,7 +1252,7 @@ int colvarmodule::reset() { cvm::log("Resetting the Collective Variables module.\n"); - parse->init(); + parse->clear(); // Iterate backwards because we are deleting the elements as we go for (std::vector::reverse_iterator bi = biases.rbegin(); @@ -1178,6 +1263,9 @@ int colvarmodule::reset() biases.clear(); biases_active_.clear(); + // Reset counters tracking usage of each bias type + reinterpret_cast *>(num_biases_types_used_)->clear(); + // Iterate backwards because we are deleting the elements as we go for (std::vector::reverse_iterator cvi = colvars.rbegin(); cvi != colvars.rend(); @@ -1215,7 +1303,7 @@ int colvarmodule::setup_input() if (!input_is.good()) { return cvm::error("Error: in opening input state file \""+ std::string(restart_in_name)+"\".\n", - FILE_ERROR); + COLVARS_FILE_ERROR); } else { cvm::log(cvm::line_marker); cvm::log("Loading state from file \""+restart_in_name+"\".\n"); @@ -1287,7 +1375,7 @@ int colvarmodule::setup_output() } if (error_code != COLVARS_OK || cvm::get_error()) { - set_error_bits(FILE_ERROR); + set_error_bits(COLVARS_FILE_ERROR); } return cvm::get_error(); @@ -1301,7 +1389,7 @@ std::string colvarmodule::state_file_prefix(char const *filename) filename_str.substr(0, filename_str.find(".colvars.state")); if (prefix.size() == 0) { cvm::error("Error: invalid filename/prefix value \""+filename_str+"\".", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } return prefix; } @@ -1353,7 +1441,7 @@ std::istream & colvarmodule::read_restart(std::istream &is) if ((proxy->units.size() > 0) && (units_restart != proxy->units)) { cvm::error("Error: the state file has units \""+units_restart+ "\", but the current unit system is \""+proxy->units+ - "\".\n", INPUT_ERROR); + "\".\n", COLVARS_INPUT_ERROR); } } @@ -1396,7 +1484,7 @@ std::istream & colvarmodule::read_objects_state(std::istream &is) // state is corrupt; otherwise, the variable rewinds is silently cvm::error("Error: in reading restart configuration for " "collective variable \""+(*cvi)->name+"\".\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (is.tellg() > pos) break; // found it } @@ -1417,7 +1505,7 @@ std::istream & colvarmodule::read_objects_state(std::istream &is) // Same as above, an error means a match but the state is incorrect cvm::error("Error: in reading restart configuration for bias \""+ (*bi)->name+"\".\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (is.tellg() > pos) break; // found it } @@ -1455,7 +1543,7 @@ and load it to continue this simulation.\n"); output_prefix() = output_prefix()+".tmp"; write_restart_file(output_prefix()+".colvars.state"); return cvm::error("Exiting with error until issue is addressed.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } return COLVARS_OK; @@ -1533,7 +1621,7 @@ int colvarmodule::read_traj(char const *traj_filename, std::cerr << "\n"; cvm::error("Reached the end of the trajectory, " "read_end = "+cvm::to_str(traj_read_end)+"\n", - FILE_ERROR); + COLVARS_FILE_ERROR); return COLVARS_ERROR; } @@ -1544,7 +1632,7 @@ int colvarmodule::read_traj(char const *traj_filename, cvm::error("Error: in reading colvar \""+(*cvi)->name+ "\" from trajectory file \""+ std::string(traj_filename)+"\".\n", - FILE_ERROR); + COLVARS_FILE_ERROR); return COLVARS_ERROR; } } @@ -1613,7 +1701,7 @@ int colvarmodule::open_traj_file(std::string const &file_name) if (cv_traj_os == NULL) { cvm::error("Error: cannot write to file \""+file_name+"\".\n", - FILE_ERROR); + COLVARS_FILE_ERROR); } return cvm::get_error(); @@ -1739,7 +1827,7 @@ size_t & colvarmodule::depth() void colvarmodule::set_error_bits(int code) { if (code < 0) { - cvm::fatal_error("Error: set_error_bits() received negative error code.\n"); + cvm::log("Error: set_error_bits() received negative error code.\n"); return; } proxy->smp_lock(); @@ -1771,19 +1859,13 @@ int colvarmodule::error(std::string const &message, int code) } -int colvarmodule::fatal_error(std::string const &message) -{ - return error(message, FATAL_ERROR); -} - - int cvm::read_index_file(char const *filename) { std::ifstream is(filename, std::ios::binary); if (!is.good()) { - cvm::error("Error: in opening index file \""+ + return cvm::error("Error: in opening index file \""+ std::string(filename)+"\".\n", - FILE_ERROR); + COLVARS_FILE_ERROR); } else { index_file_names.push_back(std::string(filename)); } @@ -1810,7 +1892,7 @@ int cvm::read_index_file(char const *filename) } else { return cvm::error("Error: in parsing index file \""+ std::string(filename)+"\".\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } std::vector *old_index_group = index_groups[index_of_group]; @@ -1836,7 +1918,7 @@ int cvm::read_index_file(char const *filename) delete new_index_group; new_index_group = NULL; return cvm::error("Error: the index group \""+group_name+ - "\" was redefined.\n", INPUT_ERROR); + "\" was redefined.\n", COLVARS_INPUT_ERROR); } else { old_index_group->clear(); delete old_index_group; @@ -1912,7 +1994,7 @@ int cvm::load_coords(char const *file_name, if (colvarparse::to_lower_cppstr(ext) == std::string(".xyz")) { if (pdb_field.size() > 0) { return cvm::error("Error: PDB column may not be specified " - "for XYZ coordinate files.\n", INPUT_ERROR); + "for XYZ coordinate files.\n", COLVARS_INPUT_ERROR); } // For XYZ files, use internal parser error_code |= cvm::main()->load_coords_xyz(file_name, &sorted_pos, atoms); @@ -1946,7 +2028,7 @@ int cvm::load_coords_xyz(char const *filename, std::string(filename)+"\".\n"); if ( ! (xyz_is >> natoms) ) { - return cvm::error(error_msg, INPUT_ERROR); + return cvm::error(error_msg, COLVARS_INPUT_ERROR); } ++xyz_reader_use_count; @@ -1960,7 +2042,7 @@ int cvm::load_coords_xyz(char const *filename, cvm::getline(xyz_is, line); xyz_is.width(255); } else { - return cvm::error(error_msg, INPUT_ERROR); + return cvm::error(error_msg, COLVARS_INPUT_ERROR); } std::vector::iterator pos_i = pos->begin(); @@ -1983,7 +2065,7 @@ int cvm::load_coords_xyz(char const *filename, (*pos_i)[2] = proxy->angstrom_to_internal(z); xyz_natoms++; } else { - return cvm::error(error_msg, INPUT_ERROR); + return cvm::error(error_msg, COLVARS_INPUT_ERROR); } } @@ -1998,7 +2080,7 @@ int cvm::load_coords_xyz(char const *filename, (*pos_i)[2] = proxy->angstrom_to_internal(z); xyz_natoms++; } else { - return cvm::error(error_msg, INPUT_ERROR); + return cvm::error(error_msg, COLVARS_INPUT_ERROR); } } } @@ -2007,7 +2089,7 @@ int cvm::load_coords_xyz(char const *filename, return cvm::error("Error: The number of positions read from file \""+ std::string(filename)+"\" does not match the number of "+ "positions required: "+cvm::to_str(xyz_natoms)+" vs. "+ - cvm::to_str(pos->size())+".\n", INPUT_ERROR); + cvm::to_str(pos->size())+".\n", COLVARS_INPUT_ERROR); } return COLVARS_OK; @@ -2230,6 +2312,89 @@ std::string cvm::wrap_string(std::string const &s, size_t nchars) } + +int colvarmodule::cite_feature(std::string const &feature) +{ + return usage_->cite_feature(feature); +} + +std::string colvarmodule::feature_report(int flag) +{ + return usage_->report(flag); +} + + +colvarmodule::usage::usage() +{ +#include "colvarmodule_refs.h" +} + +int colvarmodule::usage::cite_feature(std::string const &feature) +{ + if (feature_count_.count(feature) > 0) { + feature_count_[feature] += 1; + return cite_paper(feature_paper_map_[feature]); + } + cvm::log("Warning: cannot cite unknown feature \""+feature+"\"\n"); + return COLVARS_OK; +} + +int colvarmodule::usage::cite_paper(std::string const &paper) +{ + if (paper_count_.count(paper) > 0) { + paper_count_[paper] += 1; + return COLVARS_OK; + } + cvm::log("Warning: cannot cite unknown paper \""+paper+"\"\n"); + return COLVARS_OK; +} + +std::string colvarmodule::usage::report(int flag) +{ + std::string result; + if (flag == 0) { + // Text + result += "SUMMARY OF COLVARS FEATURES USED SO FAR AND THEIR CITATIONS:\n"; + } + if (flag == 1) { + // LAMMPS log friendly (one-line summary, lowercase message) + result += "Colvars module (Fiorin2013, plus other works listed for specific features)\n\n"; + } + + std::map::iterator p_iter = paper_count_.begin(); + for ( ; p_iter != paper_count_.end(); p_iter++) { + std::string const paper = p_iter->first; + int const count = p_iter->second; + if (count > 0) { + result += "\n"; + std::map::iterator f_iter = + feature_paper_map_.begin(); + for ( ; f_iter != feature_paper_map_.end(); f_iter++) { + if ((f_iter->second == paper) && + (feature_count_[f_iter->first] > 0)) { + if (flag == 0) { + // URL + result += "- " + f_iter->first + ":\n"; + } + if (flag == 1) { + // BibTeX + result += "% " + f_iter->first + ":\n"; + } + } + } + if (flag == 0) { + result += " " + paper + " " + paper_url_[paper] + "\n"; + } + if (flag == 1) { + result += paper_bibtex_[paper] + "\n"; + } + } + } + + return result; +} + + // shared pointer to the proxy object colvarproxy *colvarmodule::proxy = NULL; diff --git a/lib/colvars/colvarmodule.h b/lib/colvars/colvarmodule.h index 3d4296a4c9..ae29e94505 100644 --- a/lib/colvars/colvarmodule.h +++ b/lib/colvars/colvarmodule.h @@ -36,13 +36,11 @@ You can browse the class hierarchy or the list of source files. #define COLVARS_OK 0 #define COLVARS_ERROR 1 #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 -#define COLVARS_NO_SUCH_FRAME (1<<8) // Cannot load the requested frame +#define COLVARS_INPUT_ERROR (1<<2) // out of bounds or inconsistent input +#define COLVARS_BUG_ERROR (1<<3) // Inconsistent state indicating bug +#define COLVARS_FILE_ERROR (1<<4) +#define COLVARS_MEMORY_ERROR (1<<5) +#define COLVARS_NO_SUCH_FRAME (1<<6) // Cannot load the requested frame #include #include @@ -188,13 +186,13 @@ public: return ::log(static_cast(x)); } - + // Forward declarations class rvector; template class vector1d; template class matrix2d; class quaternion; class rotation; - + class usage; /// Residue identifier typedef int residue_id; @@ -322,6 +320,9 @@ public: private: + /// Pointer to a map counting how many biases of each type were used + void *num_biases_types_used_; + /// Array of active collective variable biases std::vector biases_active_; @@ -336,10 +337,11 @@ public: return COLVARS_DEBUG; } - /// \brief How many objects are configured yet? + /// How many objects (variables and biases) are configured yet? size_t size() const; - /// \brief Constructor + /// Constructor + /// \param Pointer to instance of the proxy class (communicate with engine) colvarmodule(colvarproxy *proxy); /// Destructor @@ -374,6 +376,9 @@ public: /// Parse and initialize collective variables int parse_colvars(std::string const &conf); + /// Run provided Tcl script + int run_tcl_script(std::string const &filename); + /// Parse and initialize collective variable biases int parse_biases(std::string const &conf); @@ -402,6 +407,9 @@ private: /// on error, delete new bias bool check_new_bias(std::string &conf, char const *key); + /// Initialization Tcl script, user-provided + std::string source_Tcl_script; + public: /// Return how many variables are defined @@ -638,14 +646,17 @@ public: /// Request calculation of total force from MD engine static void request_total_force(); + /// Track usage of the given Colvars feature + int cite_feature(std::string const &feature); + + /// Report usage of the Colvars features + std::string feature_report(int flag = 0); + /// Print a message to the main log /// \param message Message to print /// \param min_log_level Only print if cvm::log_level() >= min_log_level static void log(std::string const &message, int min_log_level = 10); - /// Print a message to the main log and exit with error code - static int fatal_error(std::string const &message); - /// Print a message to the main log and set global error code static int error(std::string const &message, int code = COLVARS_ERROR); @@ -788,6 +799,9 @@ protected: /// Track how many times the XYZ reader has been used int xyz_reader_use_count; + /// Track usage of Colvars features + usage *usage_; + public: /// Version of the most recent state file read diff --git a/lib/colvars/colvarmodule_refs.h b/lib/colvars/colvarmodule_refs.h new file mode 100644 index 0000000000..0b8791ce34 --- /dev/null +++ b/lib/colvars/colvarmodule_refs.h @@ -0,0 +1,555 @@ + + paper_count_[std::string("Abraham2015")] = 0; + paper_url_[std::string("Abraham2015")] = "https://doi.org/10.1016/j.softx.2015.06.001"; + paper_bibtex_[std::string("Abraham2015")] = + "\n" + "@article{Abraham2015,\n" + " title = {{GROMACS}: High performance molecular simulations through multi-level parallelism from laptops to supercomputers},\n" + " author = {Abraham, Mark J.{} and Murtola, Teemu and Schulz, Roland and Páll, Szil\\'ard and Smith, Jeremy C.{} and Hess, Berk and Lindahl, Erik},\n" + " journal = {{SoftwareX}},\n" + " volume = {1--2},\n" + " year = {2015},\n" + " pages = {19--25},\n" + " doi = {10.1016/j.softx.2015.06.001},\n" + " url = {https://doi.org/10.1016/j.softx.2015.06.001}\n" + "}\n"; + + paper_count_[std::string("Chen2021")] = 0; + paper_url_[std::string("Chen2021")] = "https://doi.org/10.1021/acs.jctc.1c00103"; + paper_bibtex_[std::string("Chen2021")] = + "\n" + "@article{Chen2021,\n" + " author = {Chen, Haochuan and Fu, Haohao and Chipot, Christophe and Shao, Xueguang and Cai, Wensheng},\n" + " title = {Overcoming free-energy barriers with a seamless combination of a biasing force and a collective variable-independent boost potential},\n" + " journal = {J. Chem. Theory Comput.},\n" + " year = {2021},\n" + " volume = {17},\n" + " number = {7},\n" + " pages = {3886--3894},\n" + " doi = {10.1021/acs.jctc.1c00103},\n" + " url = {https://doi.org/10.1021/acs.jctc.1c00103}\n" + "}\n"; + + paper_count_[std::string("Chen2022")] = 0; + paper_url_[std::string("Chen2022")] = "https://doi.org/10.1021/acs.jcim.1c01010"; + paper_bibtex_[std::string("Chen2022")] = + "\n" + "@article{Chen2022,\n" + " author = {Chen, Haochuan and Liu, Han and Feng, Heying and Fu, Haohao and Cai, Wensheng and Shao, Xueguang and Chipot, Christophe},\n" + " title = {MLCV: {Bridging} {Machine-Learning-Based} {Dimensionality} {Reduction} and {Free-Energy} {Calculation}},\n" + " journal = {J. Chem. Inf. Model.},\n" + " volume = {62},\n" + " number = {1},\n" + " pages = {1-8},\n" + " year = {2022},\n" + " doi = {10.1021/acs.jcim.1c01010},\n" + " URL = {https://doi.org/10.1021/acs.jcim.1c01010}\n" + "}\n"; + + paper_count_[std::string("Comer2014c")] = 0; + paper_url_[std::string("Comer2014c")] = "https://doi.org/10.1021/ct500874p"; + paper_bibtex_[std::string("Comer2014c")] = + "\n" + "@article{Comer2014c,\n" + " author = {Comer, Jeffrey and Phillips, James C.{} and Schulten, Klaus and Chipot, Christophe},\n" + " title = {Multiple-walker strategies for free-energy calculations in {NAMD}: {Shared} adaptive biasing force and walker selection rules},\n" + " journal = {J. Chem. Theor. Comput.},\n" + " year = {2014},\n" + " volume = {10},\n" + " number = {12},\n" + " pages = {5276--5285},\n" + " doi = {10.1021/ct500874p},\n" + " pmid = {26583211},\n" + " url = {https://doi.org/10.1021/ct500874p}\n" + "}\n"; + + paper_count_[std::string("Fiorin2013")] = 0; + paper_url_[std::string("Fiorin2013")] = "https://doi.org/10.1080/00268976.2013.813594"; + paper_bibtex_[std::string("Fiorin2013")] = + "\n" + "@article{Fiorin2013,\n" + " author = {Fiorin, Giacomo and Klein, Michael L.{} and H\\'enin, J\\'er\\^ome},\n" + " title = {Using collective variables to drive molecular dynamics simulations},\n" + " journal = {Mol. Phys.},\n" + " year = {2013},\n" + " volume = {111},\n" + " number = {22-23},\n" + " pages = {3345--3362},\n" + " publisher = {Taylor & Francis},\n" + " doi = {10.1080/00268976.2013.813594},\n" + " url = {https://doi.org/10.1080/00268976.2013.813594}\n" + "}\n"; + + paper_count_[std::string("Fiorin2020")] = 0; + paper_url_[std::string("Fiorin2020")] = "https://doi.org/10.1002/jcc.26075"; + paper_bibtex_[std::string("Fiorin2020")] = + "\n" + "@article{Fiorin2020,\n" + " author = {Fiorin, Giacomo and Marinelli, Fabrizio and {Faraldo-G\\'omez}, Jos\\'e D.},\n" + " title = {Direct Derivation of Free Energies of Membrane Deformation and Other Solvent Density Variations From Enhanced Sampling Molecular Dynamics},\n" + " journal = {J. Comp. Chem.},\n" + " year = {2020},\n" + " volume = {41},\n" + " number = {5},\n" + " pages = {449--459},\n" + " doi = {10.1002/jcc.26075},\n" + " pmid = {31602694},\n" + " url = {https://doi.org/10.1002/jcc.26075}\n" + "}\n"; + + paper_count_[std::string("Fu2016")] = 0; + paper_url_[std::string("Fu2016")] = "https://doi.org/10.1021/acs.jctc.6b00447"; + paper_bibtex_[std::string("Fu2016")] = + "\n" + "@article{Fu2016,\n" + " author = {Fu, Haohao and Shao, Xueguang and Chipot, Christophe and Cai, Wensheng},\n" + " title = {Extended adaptive biasing force algorithm. {An} on--the--fly implementation for accurate free--energy calculations},\n" + " journal = {J. Chem. Theory Comput.},\n" + " year = {2016},\n" + " volume = {12},\n" + " number = {8},\n" + " pages = {3506-–3513},\n" + " pmid = {27398726},\n" + " doi = {10.1021/acs.jctc.6b00447},\n" + " pmid = {27398726},\n" + " url = {https://doi.org/10.1021/acs.jctc.6b00447}\n" + "}\n"; + + paper_count_[std::string("Fu2017")] = 0; + paper_url_[std::string("Fu2017")] = "https://doi.org/10.1021/acs.jctc.7b00791"; + paper_bibtex_[std::string("Fu2017")] = + "\n" + "@article{Fu2017,\n" + " author = {Fu, Haohao and Cai, Wensheng and H\\'enin, J\\'er\\^ome and Roux, Beno\\^it and Chipot, Christophe},\n" + " title = {New Coarse Variables for the Accurate Determination of Standard Binding Free Energies},\n" + " journal = {J. Chem. Theory. Comput.},\n" + " year = {2017},\n" + " volume = {13},\n" + " number = {11},\n" + " pages = {5173-5178},\n" + " doi = {10.1021/acs.jctc.7b00791},\n" + " pmid = {28965398},\n" + " url = {https://doi.org/10.1021/acs.jctc.7b00791}\n" + "}\n"; + + paper_count_[std::string("Garate2019")] = 0; + paper_url_[std::string("Garate2019")] = "https://doi.org/10.1021/acs.jpcb.8b09374"; + paper_bibtex_[std::string("Garate2019")] = + "\n" + "@article{Garate2019,\n" + " author = {Garate, Jos\\'e Antonio and Bernardin, Alejandro and Escalona, Yerko and Yanez, Carlos and English, Niall J.{} and {Perez-Acle}, Tomas},\n" + " title = {Orientational and Folding Thermodynamics via Electric Dipole Moment Restraining},\n" + " journal = {J. Phys. Chem. {B}},\n" + " year = {2019},\n" + " volume = {123},\n" + " number = {12},\n" + " pages = {2599--2608},\n" + " doi = {10.1021/acs.jpcb.8b09374},\n" + " pmid = {30831028},\n" + " url = {https://doi.org/10.1021/acs.jpcb.8b09374}\n" + "}\n"; + + paper_count_[std::string("Henin2010")] = 0; + paper_url_[std::string("Henin2010")] = "https://doi.org/10.1021/ct9004432"; + paper_bibtex_[std::string("Henin2010")] = + "\n" + "@article{Henin2010,\n" + " author = {H\\'enin, J\\'er\\^ome and Fiorin, Giacomo and Chipot, Christophe and Klein, Michael L.},\n" + " title = {Exploring multidimensional free energy landscapes using time-dependent biases on collective variables},\n" + " journal = {J. Chem. Theory Comput.},\n" + " year = {2010},\n" + " volume = {6},\n" + " pages = {35-47},\n" + " number = {1},\n" + " doi = {10.1021/ct9004432},\n" + " pmid = {26614317},\n" + " url = {https://doi.org/10.1021/ct9004432}\n" + "}\n"; + + paper_count_[std::string("Humphrey1996")] = 0; + paper_url_[std::string("Humphrey1996")] = "https://doi.org/10.1016/0263-7855(96)00018-5"; + paper_bibtex_[std::string("Humphrey1996")] = + "\n" + "@article{Humphrey1996,\n" + " title = {{VMD}: visual molecular dynamics},\n" + " author = {Humphrey, William and Dalke, Andrew and Schulten, Klaus},\n" + " journal = {J. Mol. Graph.},\n" + " year = {1996},\n" + " volume = {14},\n" + " number = {1},\n" + " pages = {33--38},\n" + " doi = {10.1016/0263-7855(96)00018-5},\n" + " url = {https://doi.org/10.1016/0263-7855(96)00018-5}\n" + "}\n"; + + paper_count_[std::string("Lesage2017")] = 0; + paper_url_[std::string("Lesage2017")] = "https://doi.org/10.1021/acs.jpcb.6b10055"; + paper_bibtex_[std::string("Lesage2017")] = + "\n" + "@article{Lesage2017,\n" + " author = {Lesage, Adrien and Leli\\`evre, Tony and Stoltz, Gabriel and H\\'enin, J\\'er\\^ome},\n" + " title = {Smoothed biasing forces yield unbiased free energies with the extended-system adaptive biasing force method},\n" + " journal = {J. Phys. Chem. {B}},\n" + " year = {2017},\n" + " volume = {121},\n" + " number = {15},\n" + " pages = {3676-3685},\n" + " doi = {10.1021/acs.jpcb.6b10055},\n" + " pmid = {27959559},\n" + " url = {https://doi.org/10.1021/acs.jpcb.6b10055}\n" + "}\n"; + + paper_count_[std::string("Henin2021")] = 0; + paper_url_[std::string("Henin2021")] = "https://doi.org/10.1021/acs.jctc.1c00593"; + paper_bibtex_[std::string("Henin2021")] = + "\n" + "@Article{Henin2021,\n" + " author = {H\\'enin, J.},\n" + " journal = {J. Chem. Theory Comput.},\n" + " title = {Fast and accurate multidimensional free energy integration},\n" + " year = {2021},\n" + " doi = {10.1021/acs.jctc.1c00593},\n" + " url = {https://doi.org/10.1021/acs.jctc.1c00593},\n" + "}\n"; + + paper_count_[std::string("Marinelli2015")] = 0; + paper_url_[std::string("Marinelli2015")] = "https://doi.org/10.1016/j.bpj.2015.05.024"; + paper_bibtex_[std::string("Marinelli2015")] = + "\n" + "@article{Marinelli2015,\n" + " author = {Marinelli, Fabrizio and Faraldo-G\\'omez, Jos\\'e D.},\n" + " title = {Ensemble-Biased Metadynamics: A Molecular Simulation Method to Sample Experimental Distributions},\n" + " journal = {Biophys. J.},\n" + " year = {2015},\n" + " volume = {108},\n" + " number = {12},\n" + " pages = {2779--2782},\n" + " doi = {10.1016/j.bpj.2015.05.024},\n" + " pmid = {26083917},\n" + " url = {https://doi.org/10.1016/j.bpj.2015.05.024}\n" + "}\n"; + + paper_count_[std::string("Phillips2020")] = 0; + paper_url_[std::string("Phillips2020")] = "https://doi.org/10.1063/5.0014475"; + paper_bibtex_[std::string("Phillips2020")] = + "\n" + "@article{Phillips2020,\n" + " author = {Phillips, James C.{} and Hardy, David J.{} and Maia, Julio D. C.{} and Stone, John E.{} and Ribeiro, Jo\\~ao V.{} and Bernardi, Rafael C.{} and Buch, Ronak and Fiorin, Giacomo and H\\'enin, J\\'er\\^ome and Jiang, Wei and McGreevy, Ryan and Melo, Marcelo C. R.{} and Radak, Brian K.{} and Skeel, Robert D.{} and Singharoy, Abhishek and Wang, Yi and Roux, Beno\\^it and Aksimentiev, Aleksei and Luthey-Schulten, Zaida and Kal\\'e, Laxmikant V.{} and Schulten, Klaus and Chipot, Christophe and Tajkhorshid, Emad},\n" + " title = {Scalable molecular dynamics on {CPU} and {GPU} architectures with {NAMD}},\n" + " journal = {J. Chem. Phys.},\n" + " year = {2020},\n" + " volume = {153},\n" + " number = {4},\n" + " pages = {044130},\n" + " doi = {10.1063/5.0014475},\n" + " pmid = {32752662},\n" + " url = {https://doi.org/10.1063/5.0014475}\n" + "}\n"; + + paper_count_[std::string("Plimpton1995")] = 0; + paper_url_[std::string("Plimpton1995")] = "https://doi.org/10.1006/jcph.1995.1039"; + paper_bibtex_[std::string("Plimpton1995")] = + "\n" + "@article{Plimpton1995,\n" + " title = {Fast parallel algorithms for short-range molecular dynamics},\n" + " author = {Plimpton, Steve},\n" + " journal = {J. Comp. Phys.},\n" + " year = {1995},\n" + " volume = {117},\n" + " number = {1},\n" + " pages = {1--19},\n" + " doi = {10.1006/jcph.1995.1039},\n" + " url = {https://doi.org/10.1006/jcph.1995.1039}\n" + "}\n"; + + paper_count_[std::string("Shen2015")] = 0; + paper_url_[std::string("Shen2015")] = "https://doi.org/10.1371/journal.pcbi.1004368"; + paper_bibtex_[std::string("Shen2015")] = + "\n" + "@article{Shen2015,\n" + " title = {Structural refinement of proteins by restrained molecular dynamics simulations with non-interacting molecular fragments},\n" + " author = {Shen, Rong and Han, Wei and Fiorin, Giacomo and Islam, Shahidul M and Schulten, Klaus and Roux, Beno{\\^\\i}t},\n" + " journal = {{PLoS} Comput. Biol.},\n" + " volume = {11},\n" + " year = {2015},\n" + " number = {10},\n" + " pages = {e1004368},\n" + " doi = {10.1371/journal.pcbi.1004368},\n" + " pmid = {26505197},\n" + " url = {https://doi.org/10.1371/journal.pcbi.1004368}\n" + "}\n"; + + paper_count_[std::string("Wells2007")] = 0; + paper_url_[std::string("Wells2007")] = "https://doi.org/10.1063/1.2770738"; + paper_bibtex_[std::string("Wells2007")] = + "\n" + "@article{Wells2007,\n" + " author = {Wells, David B. and Abramkina, Volha and Aksimentiev, Aleksei},\n" + " title = {Exploring transmembrane transport through $\\alpha$-hemolysin with grid-steered molecular dynamics},\n" + " journal = {J. Chem. Phys.},\n" + " year = {2007},\n" + " volume = {127},\n" + " number = {12},\n" + " pages = {125101},\n" + " doi = {10.1063/1.2770738},\n" + " pmid = {17902937},\n" + " url = {https://doi.org/10.1063/1.2770738}\n" + "}\n"; + + paper_count_[std::string("White2014")] = 0; + paper_url_[std::string("White2014")] = "https://doi.org/10.1021/ct500320c"; + paper_bibtex_[std::string("White2014")] = + "\n" + "@article{White2014,\n" + " author = {White, Andrew D.{} and Voth, Gregory A.{}},\n" + " title = {Efficient and minimal method to bias molecular simulations with experimental data},\n" + " journal = {J. Chem. Theory Comput.},\n" + " year = {2014},\n" + " volume = {10},\n" + " number = {8},\n" + " pages = {3023-–3030},\n" + " doi = {10.1021/ct500320c},\n" + " pmid = {26588273},\n" + " url = {https://doi.org/10.1021/ct500320c}\n" + "}\n"; + + paper_count_[std::string("n/a")] = 0; + paper_url_[std::string("n/a")] = ""; + paper_bibtex_[std::string("n/a")] = ""; + + feature_count_[std::string("GROMACS engine")] = 0; + feature_paper_map_[std::string("GROMACS engine")] = "Abraham2015"; + + feature_count_[std::string("reweightaMD colvar bias implementation (NAMD)")] = 0; + feature_paper_map_[std::string("reweightaMD colvar bias implementation (NAMD)")] = "Chen2021"; + + feature_count_[std::string("neuralNetwork colvar component")] = 0; + feature_paper_map_[std::string("neuralNetwork colvar component")] = "Chen2022"; + + feature_count_[std::string("Multiple-walker ABF implementation")] = 0; + feature_paper_map_[std::string("Multiple-walker ABF implementation")] = "Comer2014c"; + + feature_count_[std::string("Colvars module")] = 0; + feature_paper_map_[std::string("Colvars module")] = "Fiorin2013"; + + feature_count_[std::string("Colvars-NAMD interface")] = 0; + feature_paper_map_[std::string("Colvars-NAMD interface")] = "Fiorin2013"; + + feature_count_[std::string("Colvars-LAMMPS interface")] = 0; + feature_paper_map_[std::string("Colvars-LAMMPS interface")] = "Fiorin2013"; + + feature_count_[std::string("Colvars-VMD interface (command line)")] = 0; + feature_paper_map_[std::string("Colvars-VMD interface (command line)")] = "Fiorin2013"; + + feature_count_[std::string("distance colvar component")] = 0; + feature_paper_map_[std::string("distance colvar component")] = "Fiorin2013"; + + feature_count_[std::string("distanceXY colvar component (derived from distanceZ)")] = 0; + feature_paper_map_[std::string("distanceXY colvar component (derived from distanceZ)")] = "Fiorin2013"; + + feature_count_[std::string("distanceZ colvar component")] = 0; + feature_paper_map_[std::string("distanceZ colvar component")] = "Fiorin2013"; + + feature_count_[std::string("distanceVec colvar component (derived from distance)")] = 0; + feature_paper_map_[std::string("distanceVec colvar component (derived from distance)")] = "Fiorin2013"; + + feature_count_[std::string("distanceDir colvar component (derived from distance)")] = 0; + feature_paper_map_[std::string("distanceDir colvar component (derived from distance)")] = "Fiorin2013"; + + feature_count_[std::string("distanceInv colvar component")] = 0; + feature_paper_map_[std::string("distanceInv colvar component")] = "Fiorin2013"; + + feature_count_[std::string("angle colvar component")] = 0; + feature_paper_map_[std::string("angle colvar component")] = "Fiorin2013"; + + feature_count_[std::string("dihedral colvar component")] = 0; + feature_paper_map_[std::string("dihedral colvar component")] = "Fiorin2013"; + + feature_count_[std::string("coordNum colvar component")] = 0; + feature_paper_map_[std::string("coordNum colvar component")] = "Fiorin2013"; + + feature_count_[std::string("selfCoordNum colvar component")] = 0; + feature_paper_map_[std::string("selfCoordNum colvar component")] = "Fiorin2013"; + + feature_count_[std::string("groupCoord colvar component (derived from distance)")] = 0; + feature_paper_map_[std::string("groupCoord colvar component (derived from distance)")] = "Fiorin2013"; + + feature_count_[std::string("hBond colvar component")] = 0; + feature_paper_map_[std::string("hBond colvar component")] = "Fiorin2013"; + + feature_count_[std::string("rmsd colvar component")] = 0; + feature_paper_map_[std::string("rmsd colvar component")] = "Fiorin2013"; + + feature_count_[std::string("eigenvector colvar component")] = 0; + feature_paper_map_[std::string("eigenvector colvar component")] = "Fiorin2013"; + + feature_count_[std::string("gyration colvar component")] = 0; + feature_paper_map_[std::string("gyration colvar component")] = "Fiorin2013"; + + feature_count_[std::string("inertia colvar component (derived from gyration)")] = 0; + feature_paper_map_[std::string("inertia colvar component (derived from gyration)")] = "Fiorin2013"; + + feature_count_[std::string("inertiaZ colvar component (derived from inertia)")] = 0; + feature_paper_map_[std::string("inertiaZ colvar component (derived from inertia)")] = "Fiorin2013"; + + feature_count_[std::string("orientation colvar component")] = 0; + feature_paper_map_[std::string("orientation colvar component")] = "Fiorin2013"; + + feature_count_[std::string("Moving frame of reference")] = 0; + feature_paper_map_[std::string("Moving frame of reference")] = "Fiorin2013"; + + feature_count_[std::string("Optimal rotation via flexible fitting")] = 0; + feature_paper_map_[std::string("Optimal rotation via flexible fitting")] = "Fiorin2013"; + + feature_count_[std::string("orientationAngle colvar component (derived from orientation)")] = 0; + feature_paper_map_[std::string("orientationAngle colvar component (derived from orientation)")] = "Fiorin2013"; + + feature_count_[std::string("orientationProj colvar component (derived from orientation)")] = 0; + feature_paper_map_[std::string("orientationProj colvar component (derived from orientation)")] = "Fiorin2013"; + + feature_count_[std::string("spinAngle colvar component (derived from orientation)")] = 0; + feature_paper_map_[std::string("spinAngle colvar component (derived from orientation)")] = "Fiorin2013"; + + feature_count_[std::string("tilt colvar component (derived from orientation)")] = 0; + feature_paper_map_[std::string("tilt colvar component (derived from orientation)")] = "Fiorin2013"; + + feature_count_[std::string("alpha colvar component")] = 0; + feature_paper_map_[std::string("alpha colvar component")] = "Fiorin2013"; + + feature_count_[std::string("dihedralPC colvar component")] = 0; + feature_paper_map_[std::string("dihedralPC colvar component")] = "Fiorin2013"; + + feature_count_[std::string("cartesian colvar component")] = 0; + feature_paper_map_[std::string("cartesian colvar component")] = "Fiorin2013"; + + feature_count_[std::string("Linear and polynomial combination of colvar components")] = 0; + feature_paper_map_[std::string("Linear and polynomial combination of colvar components")] = "Fiorin2013"; + + feature_count_[std::string("Metadynamics colvar bias implementation")] = 0; + feature_paper_map_[std::string("Metadynamics colvar bias implementation")] = "Fiorin2013"; + + feature_count_[std::string("Multiple-walker metadynamics colvar bias implementation")] = 0; + feature_paper_map_[std::string("Multiple-walker metadynamics colvar bias implementation")] = "Fiorin2013"; + + feature_count_[std::string("Harmonic colvar bias implementation")] = 0; + feature_paper_map_[std::string("Harmonic colvar bias implementation")] = "Fiorin2013"; + + feature_count_[std::string("harmonicWalls colvar bias implementation")] = 0; + feature_paper_map_[std::string("harmonicWalls colvar bias implementation")] = "Fiorin2013"; + + feature_count_[std::string("Linear colvar bias implementation")] = 0; + feature_paper_map_[std::string("Linear colvar bias implementation")] = "Fiorin2013"; + + feature_count_[std::string("Histogram colvar bias implementation")] = 0; + feature_paper_map_[std::string("Histogram colvar bias implementation")] = "Fiorin2013"; + + feature_count_[std::string("mapTotal colvar component")] = 0; + feature_paper_map_[std::string("mapTotal colvar component")] = "Fiorin2020"; + + feature_count_[std::string("Volumetric map-based collective variables")] = 0; + feature_paper_map_[std::string("Volumetric map-based collective variables")] = "Fiorin2020"; + + feature_count_[std::string("Multi-Map collective variables")] = 0; + feature_paper_map_[std::string("Multi-Map collective variables")] = "Fiorin2020"; + + feature_count_[std::string("Umbrella-integration eABF estimator")] = 0; + feature_paper_map_[std::string("Umbrella-integration eABF estimator")] = "Fu2016"; + + feature_count_[std::string("polarTheta colvar component")] = 0; + feature_paper_map_[std::string("polarTheta colvar component")] = "Fu2017"; + + feature_count_[std::string("polarPhi colvar component")] = 0; + feature_paper_map_[std::string("polarPhi colvar component")] = "Fu2017"; + + feature_count_[std::string("eulerPhi colvar component (derived from orientation)")] = 0; + feature_paper_map_[std::string("eulerPhi colvar component (derived from orientation)")] = "Fu2017"; + + feature_count_[std::string("eulerTheta colvar component (derived from orientation)")] = 0; + feature_paper_map_[std::string("eulerTheta colvar component (derived from orientation)")] = "Fu2017"; + + feature_count_[std::string("eulerPsi colvar component (derived from orientation)")] = 0; + feature_paper_map_[std::string("eulerPsi colvar component (derived from orientation)")] = "Fu2017"; + + feature_count_[std::string("dipoleAngle colvar component")] = 0; + feature_paper_map_[std::string("dipoleAngle colvar component")] = "Garate2019"; + + feature_count_[std::string("dipoleMagnitude colvar component")] = 0; + feature_paper_map_[std::string("dipoleMagnitude colvar component")] = "Garate2019"; + + feature_count_[std::string("ABF colvar bias implementation")] = 0; + feature_paper_map_[std::string("ABF colvar bias implementation")] = "Henin2010"; + + feature_count_[std::string("Internal-forces free energy estimator")] = 0; + feature_paper_map_[std::string("Internal-forces free energy estimator")] = "Henin2010"; + + feature_count_[std::string("VMD engine")] = 0; + feature_paper_map_[std::string("VMD engine")] = "Humphrey1996"; + + feature_count_[std::string("eABF implementation")] = 0; + feature_paper_map_[std::string("eABF implementation")] = "Lesage2017"; + + feature_count_[std::string("CZAR eABF estimator")] = 0; + feature_paper_map_[std::string("CZAR eABF estimator")] = "Lesage2017"; + + feature_count_[std::string("Poisson integration of 2D/3D free energy surfaces")] = 0; + feature_paper_map_[std::string("Poisson integration of 2D/3D free energy surfaces")] = "Henin2021"; + + feature_count_[std::string("Ensemble-biased metadynamics (ebMetaD)")] = 0; + feature_paper_map_[std::string("Ensemble-biased metadynamics (ebMetaD)")] = "Marinelli2015"; + + feature_count_[std::string("NAMD engine")] = 0; + feature_paper_map_[std::string("NAMD engine")] = "Phillips2020"; + + feature_count_[std::string("Scalable center-of-mass computation (NAMD)")] = 0; + feature_paper_map_[std::string("Scalable center-of-mass computation (NAMD)")] = "Phillips2020"; + + feature_count_[std::string("LAMMPS engine")] = 0; + feature_paper_map_[std::string("LAMMPS engine")] = "Plimpton1995"; + + feature_count_[std::string("distancePairs colvar component")] = 0; + feature_paper_map_[std::string("distancePairs colvar component")] = "Shen2015"; + + feature_count_[std::string("histogramRestraint colvar bias implementation")] = 0; + feature_paper_map_[std::string("histogramRestraint colvar bias implementation")] = "Shen2015"; + + feature_count_[std::string("GridForces volumetric map implementation for NAMD")] = 0; + feature_paper_map_[std::string("GridForces volumetric map implementation for NAMD")] = "Wells2007"; + + feature_count_[std::string("ALB colvar bias implementation")] = 0; + feature_paper_map_[std::string("ALB colvar bias implementation")] = "White2014"; + + feature_count_[std::string("Colvars-GROMACS interface")] = 0; + feature_paper_map_[std::string("Colvars-GROMACS interface")] = "n/a"; + + feature_count_[std::string("Colvars Dashboard (Colvars-VMD graphical user interface)")] = 0; + feature_paper_map_[std::string("Colvars Dashboard (Colvars-VMD graphical user interface)")] = "n/a"; + + feature_count_[std::string("gspath colvar component")] = 0; + feature_paper_map_[std::string("gspath colvar component")] = "n/a"; + + feature_count_[std::string("gzpath colvar component")] = 0; + feature_paper_map_[std::string("gzpath colvar component")] = "n/a"; + + feature_count_[std::string("linearCombination colvar component")] = 0; + feature_paper_map_[std::string("linearCombination colvar component")] = "n/a"; + + feature_count_[std::string("gspathCV colvar component")] = 0; + feature_paper_map_[std::string("gspathCV colvar component")] = "n/a"; + + feature_count_[std::string("gzpathCV colvar component")] = 0; + feature_paper_map_[std::string("gzpathCV colvar component")] = "n/a"; + + feature_count_[std::string("aspathCV colvar component")] = 0; + feature_paper_map_[std::string("aspathCV colvar component")] = "n/a"; + + feature_count_[std::string("azpathCV colvar component")] = 0; + feature_paper_map_[std::string("azpathCV colvar component")] = "n/a"; + + feature_count_[std::string("coordNum pairlist")] = 0; + feature_paper_map_[std::string("coordNum pairlist")] = "n/a"; + + feature_count_[std::string("Custom functions (Lepton)")] = 0; + feature_paper_map_[std::string("Custom functions (Lepton)")] = "n/a"; + + feature_count_[std::string("Scripted functions (Tcl)")] = 0; + feature_paper_map_[std::string("Scripted functions (Tcl)")] = "n/a"; diff --git a/lib/colvars/colvarparams.cpp b/lib/colvars/colvarparams.cpp index e957a1841d..9c326572b3 100644 --- a/lib/colvars/colvarparams.cpp +++ b/lib/colvars/colvarparams.cpp @@ -44,7 +44,7 @@ int colvarparams::param_exists(std::string const ¶m_name) if (param_map.count(param_name) > 0) { return COLVARS_OK; } - return INPUT_ERROR; + return COLVARS_INPUT_ERROR; } @@ -75,7 +75,7 @@ void const *colvarparams::get_param_ptr(std::string const ¶m_name) if (param_map.count(param_name) > 0) { return param_map[param_name]; } - cvm::error("Error: parameter \""+param_name+"\" not found.\n", INPUT_ERROR); + cvm::error("Error: parameter \""+param_name+"\" not found.\n", COLVARS_INPUT_ERROR); return NULL; } @@ -86,7 +86,7 @@ void const *colvarparams::get_param_grad_ptr(std::string const ¶m_name) return param_grad_map[param_name]; } cvm::error("Error: gradient of parameter \""+param_name+"\" not found.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); return NULL; } @@ -100,12 +100,12 @@ cvm::real colvarparams::get_param(std::string const ¶m_name) int colvarparams::set_param(std::string const ¶m_name, - void const *new_value) + void const * /* new_value */) { if (param_map.count(param_name) > 0) { return cvm::error("Error: parameter \""+param_name+"\" cannot be " "modified.\n", COLVARS_NOT_IMPLEMENTED); } return cvm::error("Error: parameter \""+param_name+"\" not found.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } diff --git a/lib/colvars/colvarparse.cpp b/lib/colvars/colvarparse.cpp index 3449a681f3..350ec1b56b 100644 --- a/lib/colvars/colvarparse.cpp +++ b/lib/colvars/colvarparse.cpp @@ -33,12 +33,14 @@ namespace { colvarparse::colvarparse() + : keyword_delimiters_left("\n"+std::string(white_space)+"}"), + keyword_delimiters_right("\n"+std::string(white_space)+"{") { - init(); + colvarparse::clear(); } -void colvarparse::init() +void colvarparse::clear() { config_string.clear(); clear_keyword_registry(); @@ -46,15 +48,17 @@ void colvarparse::init() colvarparse::colvarparse(const std::string& conf) + : keyword_delimiters_left("\n"+std::string(white_space)+"}"), + keyword_delimiters_right("\n"+std::string(white_space)+"{") { - init(conf); + colvarparse::set_string(conf); } -void colvarparse::init(std::string const &conf) +void colvarparse::set_string(std::string const &conf) { if (! config_string.size()) { - init(); + colvarparse::clear(); config_string = conf; } } @@ -62,7 +66,7 @@ void colvarparse::init(std::string const &conf) colvarparse::~colvarparse() { - init(); + colvarparse::clear(); } @@ -86,7 +90,7 @@ bool colvarparse::get_key_string_value(std::string const &conf, if (found_count > 1) { cvm::error("Error: found more than one instance of \""+ - std::string(key)+"\".\n", INPUT_ERROR); + std::string(key)+"\".\n", COLVARS_INPUT_ERROR); } return b_found_any; @@ -153,10 +157,10 @@ void colvarparse::error_key_required(std::string const &key_str, } if (parse_mode & parse_restart) { cvm::error("Error: keyword \""+key_str+ - "\" is missing from the restart.\n", INPUT_ERROR); + "\" is missing from the restart.\n", COLVARS_INPUT_ERROR); } else { cvm::error("Error: keyword \""+key_str+ - "\" is required.\n", INPUT_ERROR); + "\" is required.\n", COLVARS_INPUT_ERROR); } } @@ -178,13 +182,13 @@ int colvarparse::_get_keyval_scalar_value_(std::string const &key_str, if (value_count == 0) { return cvm::error("Error: in parsing \""+ - key_str+"\".\n", INPUT_ERROR); + key_str+"\".\n", COLVARS_INPUT_ERROR); } if (value_count > 1) { return cvm::error("Error: multiple values " "are not allowed for keyword \""+ - key_str+"\".\n", INPUT_ERROR); + key_str+"\".\n", COLVARS_INPUT_ERROR); } return COLVARS_OK; @@ -207,7 +211,7 @@ int colvarparse::_get_keyval_scalar_value_(std::string const &key_str, set_bool(reinterpret_cast(&value), false); } else { return cvm::error("Error: boolean values only are allowed " - "for \""+key_str+"\".\n", INPUT_ERROR); + "for \""+key_str+"\".\n", COLVARS_INPUT_ERROR); } return COLVARS_OK; } @@ -219,7 +223,7 @@ int colvarparse::_get_keyval_scalar_novalue_(std::string const &key_str, Parse_Mode const & /* parse_mode */) { return cvm::error("Error: improper or missing value " - "for \""+key_str+"\".\n", INPUT_ERROR); + "for \""+key_str+"\".\n", COLVARS_INPUT_ERROR); } template<> @@ -318,7 +322,7 @@ bool colvarparse::_get_keyval_vector_(std::string const &conf, values[i] = x; } else { cvm::error("Error: in parsing \""+ - key_str+"\".\n", INPUT_ERROR); + key_str+"\".\n", COLVARS_INPUT_ERROR); } } } @@ -329,13 +333,13 @@ bool colvarparse::_get_keyval_vector_(std::string const &conf, if (b_found_any) { cvm::error("Error: improper or missing values for \""+ - key_str+"\".\n", INPUT_ERROR); + key_str+"\".\n", COLVARS_INPUT_ERROR); } else { if ((values.size() > 0) && (values.size() != def_values.size())) { cvm::error("Error: the number of default values for \""+ key_str+"\" is different from the number of " - "current values.\n", BUG_ERROR); + "current values.\n", COLVARS_BUG_ERROR); } if (parse_mode & parse_required) { @@ -621,8 +625,8 @@ int colvarparse::check_keywords(std::string &conf, char const *key) } if (!found_keyword) { cvm::error("Error: keyword \""+uk+"\" is not supported, " - "or not recognized in this context.\n", INPUT_ERROR); - return INPUT_ERROR; + "or not recognized in this context.\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } } @@ -699,18 +703,26 @@ bool colvarparse::key_lookup(std::string const &conf, bool b_isolated_left = true, b_isolated_right = true; if (pos > 0) { - if ( std::string("\n"+std::string(white_space)+ - "}").find(conf[pos-1]) == - std::string::npos ) { + if (keyword_delimiters_left.find(conf[pos-1]) == std::string::npos) { // none of the valid delimiting characters is on the left of key b_isolated_left = false; + } else { + size_t const pl = conf_lower.rfind("\n", pos); + size_t const line_begin = (pl == std::string::npos) ? 0 : pl+1; + size_t const pchar = + conf_lower.find_first_not_of(keyword_delimiters_left, line_begin); + size_t const first_text = (pchar == std::string::npos) ? pos : pchar; + if (first_text < pos) { + // There are some non-delimiting characters to the left of the + // keyword on the same line + b_isolated_left = false; + } } } if (pos < conf.size()-key.size()-1) { - if ( std::string("\n"+std::string(white_space)+ - "{").find(conf[pos+key.size()]) == - std::string::npos ) { + if (keyword_delimiters_right.find(conf[pos+key.size()]) == + std::string::npos) { // none of the valid delimiting characters is on the right of key b_isolated_right = false; } @@ -739,7 +751,7 @@ bool colvarparse::key_lookup(std::string const &conf, // get the remainder of the line size_t pl = conf.rfind("\n", pos); - size_t line_begin = (pl == std::string::npos) ? 0 : pos; + size_t line_begin = (pl == std::string::npos) ? 0 : pl+1; size_t nl = conf.find("\n", pos); size_t line_end = (nl == std::string::npos) ? conf.size() : nl; std::string line(conf, line_begin, (line_end-line_begin)); @@ -792,7 +804,7 @@ bool colvarparse::key_lookup(std::string const &conf, cvm::error("Parse error: reached the end while " "looking for closing brace; until now " "the following was parsed: \"\n"+ - line+"\".\n", INPUT_ERROR); + line+"\".\n", COLVARS_INPUT_ERROR); return false; } @@ -810,7 +822,7 @@ bool colvarparse::key_lookup(std::string const &conf, } if (brace_count < 0) { - cvm::error("Error: found closing brace without opening brace.\n", INPUT_ERROR); + cvm::error("Error: found closing brace without opening brace.\n", COLVARS_INPUT_ERROR); } } @@ -920,7 +932,7 @@ int colvarparse::check_braces(std::string const &conf, if (conf[brace] == '}') brace_count--; brace++; } - return (brace_count != 0) ? INPUT_ERROR : COLVARS_OK; + return (brace_count != 0) ? COLVARS_INPUT_ERROR : COLVARS_OK; } diff --git a/lib/colvars/colvarparse.h b/lib/colvars/colvarparse.h index 8e35896f89..d2286de6cf 100644 --- a/lib/colvars/colvarparse.h +++ b/lib/colvars/colvarparse.h @@ -34,10 +34,10 @@ public: colvarparse(const std::string& conf); /// Set the object ready to parse a new configuration string - void init(); + void clear(); /// Set a new config string for this object - void init(std::string const &conf); + void set_string(std::string const &conf); /// Default destructor virtual ~colvarparse(); @@ -68,7 +68,7 @@ public: /// The call is being executed from a read_restart() function parse_restart = (1<<18), /// Alias for old default behavior (should be phased out) - parse_normal = (1<<2) | (1<<1) | (1<<17), + parse_normal = (1<<1) | (1<<2) | (1<<17), /// Settings for a deprecated keyword parse_deprecated = (1<<1) | (1<<3) | (1<<17) }; @@ -333,6 +333,12 @@ public: protected: + /// Characters allowed immediately to the left of a kewyord + std::string const keyword_delimiters_left; + + /// Characters allowed immediately to the right of a kewyord + std::string const keyword_delimiters_right; + /// \brief List of legal keywords for this object: this is updated /// by each call to colvarparse::get_keyval() or /// colvarparse::key_lookup() diff --git a/lib/colvars/colvarproxy.cpp b/lib/colvars/colvarproxy.cpp index d418acd0c1..c091df828c 100644 --- a/lib/colvars/colvarproxy.cpp +++ b/lib/colvars/colvarproxy.cpp @@ -7,9 +7,14 @@ // If you wish to distribute your changes, please submit them to the // Colvars repository at GitHub. +// Using access() to check if a file exists (until we can assume C++14/17) #if !defined(WIN32) || defined(__CYGWIN__) #include #endif +#if defined(WIN32) +#include +#endif + #include #include @@ -34,6 +39,9 @@ colvarproxy_system::colvarproxy_system() kcal_mol_value = 0.0; boundaries_type = boundaries_unsupported; total_force_requested = false; + indirect_lambda_biasing_force = 0.0; + cached_alch_lambda_changed = false; + cached_alch_lambda = -1.0; reset_pbc_lattice(); } @@ -117,7 +125,7 @@ void colvarproxy_system::update_pbc_lattice() if (boundaries_type == boundaries_unsupported || boundaries_type == boundaries_non_periodic) { cvm::error("Error: setting PBC lattice with unsupported boundaries.\n", - BUG_ERROR); + COLVARS_BUG_ERROR); return; } @@ -152,7 +160,7 @@ cvm::rvector colvarproxy_system::position_distance(cvm::atom_pos const &pos1, const { if (boundaries_type == boundaries_unsupported) { - cvm::error("Error: unsupported boundary conditions.\n", INPUT_ERROR); + cvm::error("Error: unsupported boundary conditions.\n", COLVARS_INPUT_ERROR); } cvm::rvector diff = (pos2 - pos1); @@ -182,23 +190,44 @@ int colvarproxy_system::get_molid(int &) } -int colvarproxy_system::get_alch_lambda(cvm::real* lambda) +int colvarproxy_system::get_alch_lambda(cvm::real * /* lambda */) { return cvm::error("Error in get_alch_lambda: alchemical lambda dynamics is not supported by this build.", COLVARS_NOT_IMPLEMENTED); } -int colvarproxy_system::set_alch_lambda(cvm::real* lambda) +void colvarproxy_system::set_alch_lambda(cvm::real lambda) +{ + cached_alch_lambda = lambda; + cached_alch_lambda_changed = true; +} + + +int colvarproxy_system::send_alch_lambda() { return cvm::error("Error in set_alch_lambda: alchemical lambda dynamics is not supported by this build.", COLVARS_NOT_IMPLEMENTED); } -int colvarproxy_system::get_dE_dLambda(cvm::real* force) +int colvarproxy_system::get_dE_dlambda(cvm::real * /* force */) { - return cvm::error("Error in get_dE_dLambda: alchemical lambda dynamics is not supported by this build.", + return cvm::error("Error in get_dE_dlambda: alchemical lambda dynamics is not supported by this build.", + COLVARS_NOT_IMPLEMENTED); +} + + +int colvarproxy_system::apply_force_dE_dlambda(cvm::real* /* force */) +{ + return cvm::error("Error in apply_force_dE_dlambda: function is not implemented by this build.", + COLVARS_NOT_IMPLEMENTED); +} + + +int colvarproxy_system::get_d2E_dlambda2(cvm::real*) +{ + return cvm::error("Error in get_d2E_dlambda2: function is not implemented by this build.", COLVARS_NOT_IMPLEMENTED); } @@ -278,7 +307,7 @@ void colvarproxy_atoms::clear_atom(int index) { if (((size_t) index) >= atoms_ids.size()) { cvm::error("Error: trying to disable an atom that was not previously requested.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (atoms_ncopies[index] > 0) { atoms_ncopies[index] -= 1; @@ -396,7 +425,7 @@ void colvarproxy_atom_groups::clear_atom_group(int index) if (((size_t) index) >= atom_groups_ids.size()) { cvm::error("Error: trying to disable an atom group " "that was not previously requested.\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } if (atom_groups_ncopies[index] > 0) { atom_groups_ncopies[index] -= 1; @@ -424,7 +453,7 @@ colvarproxy_smp::colvarproxy_smp() b_smp_active = true; // May be disabled by user option omp_lock_state = NULL; #if defined(_OPENMP) - if (smp_thread_id() == 0) { + if (omp_get_thread_num() == 0) { omp_lock_state = reinterpret_cast(new omp_lock_t); omp_init_lock(reinterpret_cast(omp_lock_state)); } @@ -435,7 +464,7 @@ colvarproxy_smp::colvarproxy_smp() colvarproxy_smp::~colvarproxy_smp() { #if defined(_OPENMP) - if (smp_thread_id() == 0) { + if (omp_get_thread_num() == 0) { if (omp_lock_state) { delete reinterpret_cast(omp_lock_state); } @@ -586,12 +615,17 @@ int colvarproxy_smp::smp_unlock() colvarproxy_script::colvarproxy_script() { script = NULL; - force_script_defined = false; have_scripts = false; } -colvarproxy_script::~colvarproxy_script() {} +colvarproxy_script::~colvarproxy_script() +{ + if (script != NULL) { + delete script; + script = NULL; + } +} int colvarproxy_script::run_force_callback() @@ -639,10 +673,35 @@ int colvarproxy_io::set_frame(long int) } -int colvarproxy_io::backup_file(char const * /* filename */) +int colvarproxy_io::backup_file(char const *filename) { - // TODO implement this using rename_file() - return COLVARS_NOT_IMPLEMENTED; + // Simplified version of NAMD_file_exists() + int exit_code; + do { +#if defined(WIN32) && !defined(__CYGWIN__) + // We could use _access_s here, but it is probably too new + exit_code = _access(filename, 00); +#else + exit_code = access(filename, F_OK); +#endif + } while ((exit_code != 0) && (errno == EINTR)); + if (exit_code != 0) { + if (errno == ENOENT) { + // File does not exist + return COLVARS_OK; + } else { + return cvm::error("Unknown error while checking if file \""+ + std::string(filename)+"\" exists.\n", COLVARS_ERROR); + } + } + + // The file exists, then rename it + if (std::string(filename).rfind(std::string(".colvars.state")) != + std::string::npos) { + return rename_file(filename, (std::string(filename)+".old").c_str()); + } else { + return rename_file(filename, (std::string(filename)+".BAK").c_str()); + } } @@ -658,7 +717,7 @@ int colvarproxy_io::remove_file(char const *filename) while ((rename_exit_code = std::rename(filename, renamed_file.c_str())) != 0) { if (errno == EINTR) continue; - error_code |= FILE_ERROR; + error_code |= COLVARS_FILE_ERROR; break; } // Ask to remove filename.old, but ignore any errors raised @@ -666,7 +725,7 @@ int colvarproxy_io::remove_file(char const *filename) #else if (std::remove(filename)) { if (errno != ENOENT) { - error_code |= FILE_ERROR; + error_code |= COLVARS_FILE_ERROR; } } #endif @@ -692,7 +751,7 @@ int colvarproxy_io::rename_file(char const *filename, char const *newfilename) // Call log() instead of error to allow the next try cvm::log("Error: in renaming file \""+std::string(filename)+"\" to \""+ std::string(newfilename)+"\".\n."); - error_code |= FILE_ERROR; + error_code |= COLVARS_FILE_ERROR; if (errno == EXDEV) continue; break; } @@ -707,12 +766,18 @@ colvarproxy::colvarproxy() b_simulation_running = true; b_simulation_continuing = false; b_delete_requested = false; + version_int = -1; + features_hash = 0; } colvarproxy::~colvarproxy() { close_files(); + if (colvars != NULL) { + delete colvars; + colvars = NULL; + } } @@ -782,6 +847,10 @@ int colvarproxy::end_of_step() compute_rms_volmaps_applied_force(); compute_max_volmaps_applied_force(); + if (cached_alch_lambda_changed) { + send_alch_lambda(); + cached_alch_lambda_changed = false; + } return COLVARS_OK; } @@ -798,6 +867,82 @@ int colvarproxy::post_run() } +void colvarproxy::print_input_atomic_data() +{ + cvm::log(cvm::line_marker); + + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atoms_ids = "+cvm::to_str(atoms_ids)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atoms_ncopies = "+cvm::to_str(atoms_ncopies)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atoms_masses = "+cvm::to_str(atoms_masses)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atoms_charges = "+cvm::to_str(atoms_charges)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atoms_positions = "+cvm::to_str(atoms_positions, + cvm::cv_width, + cvm::cv_prec)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atoms_total_forces = "+cvm::to_str(atoms_total_forces, + cvm::cv_width, + cvm::cv_prec)+"\n"); + + cvm::log(cvm::line_marker); + + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atom_groups_ids = "+cvm::to_str(atom_groups_ids)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atom_groups_ncopies = "+cvm::to_str(atom_groups_ncopies)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atom_groups_masses = "+cvm::to_str(atom_groups_masses)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atom_groups_charges = "+cvm::to_str(atom_groups_charges)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atom_groups_coms = "+cvm::to_str(atom_groups_coms, + cvm::cv_width, + cvm::cv_prec)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atom_groups_total_forces = "+cvm::to_str(atom_groups_total_forces, + cvm::cv_width, + cvm::cv_prec)+"\n"); + + cvm::log(cvm::line_marker); + + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "volmaps_ids = "+cvm::to_str(volmaps_ids)+"\n"); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "volmaps_values = "+cvm::to_str(volmaps_values)+"\n"); + + cvm::log(cvm::line_marker); +} + + +void colvarproxy::print_output_atomic_data() +{ + cvm::log(cvm::line_marker); + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atoms_new_colvar_forces = "+cvm::to_str(atoms_new_colvar_forces, + colvarmodule::cv_width, + colvarmodule::cv_prec)+"\n"); + cvm::log(cvm::line_marker); + + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "atom_groups_new_colvar_forces = "+ + cvm::to_str(atom_groups_new_colvar_forces, + colvarmodule::cv_width, + colvarmodule::cv_prec)+"\n"); + + cvm::log(cvm::line_marker); + + cvm::log("Step "+cvm::to_str(cvm::step_absolute())+", "+ + "volmaps_new_colvar_forces = "+ + cvm::to_str(volmaps_new_colvar_forces)+"\n"); + + cvm::log(cvm::line_marker); +} + + void colvarproxy::log(std::string const &message) { fprintf(stdout, "colvars: %s", message.c_str()); @@ -847,7 +992,7 @@ void colvarproxy::smp_stream_error() { cvm::error("Error: trying to access an output stream from a " "multi-threaded region (bug). For a quick workaround, use " - "\"smp off\" in the Colvars config.\n", BUG_ERROR); + "\"smp off\" in the Colvars config.\n", COLVARS_BUG_ERROR); } @@ -867,7 +1012,7 @@ std::ostream * colvarproxy::output_stream(std::string const &output_name, std::ofstream *osf = new std::ofstream(output_name.c_str(), mode); if (!osf->is_open()) { cvm::error("Error: cannot write to file/channel \""+output_name+"\".\n", - FILE_ERROR); + COLVARS_FILE_ERROR); return NULL; } output_stream_names.push_back(output_name); @@ -907,7 +1052,7 @@ int colvarproxy::flush_output_stream(std::ostream *os) } } return cvm::error("Error: trying to flush an output file/channel " - "that wasn't open.\n", BUG_ERROR); + "that wasn't open.\n", COLVARS_BUG_ERROR); } @@ -941,5 +1086,5 @@ int colvarproxy::close_output_stream(std::string const &output_name) } } return cvm::error("Error: trying to close an output file/channel " - "that wasn't open.\n", BUG_ERROR); + "that wasn't open.\n", COLVARS_BUG_ERROR); } diff --git a/lib/colvars/colvarproxy.h b/lib/colvars/colvarproxy.h index c9841ebdf4..3ed3768aef 100644 --- a/lib/colvars/colvarproxy.h +++ b/lib/colvars/colvarproxy.h @@ -135,13 +135,41 @@ public: /// Get value of alchemical lambda parameter from back-end (if available) virtual int get_alch_lambda(cvm::real* lambda); - /// Set value of alchemical lambda parameter in back-end (if available) - virtual int set_alch_lambda(cvm::real* lambda); + /// Set value of alchemical lambda parameter to be sent to back-end at end of timestep + void set_alch_lambda(cvm::real lambda); + + /// Send cached value of alchemical lambda parameter to back-end (if available) + virtual int send_alch_lambda(); /// Get energy derivative with respect to lambda (if available) - virtual int get_dE_dLambda(cvm::real* force); + virtual int get_dE_dlambda(cvm::real* dE_dlambda); + + /// Apply a scalar force on dE_dlambda (back-end distributes it onto atoms) + virtual int apply_force_dE_dlambda(cvm::real* force); + + /// Get energy second derivative with respect to lambda (if available) + virtual int get_d2E_dlambda2(cvm::real* d2E_dlambda2); + + /// Force to be applied onto alch. lambda, propagated from biasing forces on dE_dlambda + cvm::real indirect_lambda_biasing_force; + + /// Get weight factor from accelMD + virtual cvm::real get_accelMD_factor() const { + cvm::error("Error: accessing the reweighting factor of accelerated MD " + "is not yet implemented in the MD engine.\n", + COLVARS_NOT_IMPLEMENTED); + return 1.0; + } + virtual bool accelMD_enabled() const { + return false; + } protected: + /// Next value of lambda to be sent to back-end + cvm::real cached_alch_lambda; + + /// Whether lambda has been set and needs to be updated in backend + bool cached_alch_lambda_changed; /// Whether the total forces have been requested bool total_force_requested; @@ -652,9 +680,6 @@ public: /// (does not need to be allocated in a new interface) colvarscript *script; - /// is a user force script defined? - bool force_script_defined; - /// Do we have a scripting interface? bool have_scripts; @@ -702,7 +727,7 @@ public: } /// Remove the given file (on Windows only, rename to filename.old) - int remove_file(char const *filename); + virtual int remove_file(char const *filename); /// Remove the given file (on Windows only, rename to filename.old) inline int remove_file(std::string const &filename) @@ -711,7 +736,7 @@ public: } /// Rename the given file - int rename_file(char const *filename, char const *newfilename); + virtual int rename_file(char const *filename, char const *newfilename); /// Rename the given file inline int rename_file(std::string const &filename, @@ -779,7 +804,6 @@ protected: /// \brief Interface between the collective variables module and /// the simulation or analysis program (NAMD, VMD, LAMMPS...). /// This is the base class: each interfaced program is supported by a derived class. -/// Only pure virtual functions ("= 0") must be reimplemented to ensure baseline functionality. class colvarproxy : public colvarproxy_system, public colvarproxy_atoms, @@ -864,6 +888,12 @@ public: /// Called at the end of a simulation segment (i.e. "run" command) int post_run(); + /// Print a full list of all input atomic arrays for debug purposes + void print_input_atomic_data(); + + /// Print a full list of all applied forces for debug purposes + void print_output_atomic_data(); + /// Convert a version string "YYYY-MM-DD" into an integer int get_version_from_string(char const *version_string); @@ -910,6 +940,9 @@ protected: /// Integer representing the version string (allows comparisons) int version_int; + /// Track which features have been acknowledged during the last run + size_t features_hash; + /// Raise when the output stream functions are used on threads other than 0 void smp_stream_error(); diff --git a/lib/colvars/colvarproxy_tcl.cpp b/lib/colvars/colvarproxy_tcl.cpp index 0a5473cae9..33bdc9dc38 100644 --- a/lib/colvars/colvarproxy_tcl.cpp +++ b/lib/colvars/colvarproxy_tcl.cpp @@ -9,23 +9,22 @@ #include -#if defined(NAMD_TCL) || defined(VMDTCL) -#define COLVARS_TCL -#endif -#ifdef COLVARS_TCL -#include -#endif - #include "colvarmodule.h" #include "colvarproxy.h" #include "colvarproxy_tcl.h" #include "colvaratoms.h" +#ifdef COLVARS_TCL +#include +#endif + colvarproxy_tcl::colvarproxy_tcl() { +#ifdef COLVARS_TCL tcl_interp_ = NULL; +#endif } @@ -36,8 +35,18 @@ colvarproxy_tcl::~colvarproxy_tcl() void colvarproxy_tcl::init_tcl_pointers() { - cvm::error("Error: Tcl support is not available in this build.\n", - COLVARS_NOT_IMPLEMENTED); + // This is overloaded by NAMD and VMD proxies to use the local interpreters +#if defined(COLVARS_TCL) + if (tcl_interp_ == NULL) { + // Allocate a dedicated Tcl interpreter for Colvars + std::cout << "colvars: Allocating Tcl interpreter." << std::endl; + set_tcl_interp(Tcl_CreateInterp()); + } else { + std::cerr << "Error: init_tcl_pointers called with non-NULL tcl_interp_" << std::endl; + } +#else + std::cerr << "Error: Tcl support is not available in this build." << std::endl; +#endif } @@ -46,22 +55,61 @@ char const *colvarproxy_tcl::tcl_get_str(void *obj) #if defined(COLVARS_TCL) return Tcl_GetString(reinterpret_cast(obj)); #else + (void) obj; return NULL; #endif } +int colvarproxy_tcl::tcl_run_script(std::string const &script) +{ +#if defined(COLVARS_TCL) + Tcl_Interp *const interp = get_tcl_interp(); + int err = Tcl_Eval(interp, script.c_str()); + if (err != TCL_OK) { + cvm::log("Error while executing Tcl script:\n"); + cvm::error(Tcl_GetStringResult(interp)); + return COLVARS_ERROR; + } + return cvm::get_error(); +#else + return COLVARS_NOT_IMPLEMENTED; +#endif +} + + +int colvarproxy_tcl::tcl_run_file(std::string const &fileName) +{ +#if defined(COLVARS_TCL) + Tcl_Interp *const interp = get_tcl_interp(); + int err = Tcl_EvalFile(interp, fileName.c_str()); + if (err != TCL_OK) { + cvm::log("Error while executing Tcl script file" + fileName + ":\n"); + cvm::error(Tcl_GetStringResult(interp)); + return COLVARS_ERROR; + } + return cvm::get_error(); +#else + return COLVARS_NOT_IMPLEMENTED; +#endif +} + + int colvarproxy_tcl::tcl_run_force_callback() { #if defined(COLVARS_TCL) - Tcl_Interp *const tcl_interp = - reinterpret_cast(get_tcl_interp()); + Tcl_Interp *const interp = get_tcl_interp(); + if (Tcl_FindCommand(interp, "calc_colvar_forces", NULL, 0) == NULL) { + cvm::error("Error: Colvars force procedure calc_colvar_forces is not defined.\n"); + return COLVARS_ERROR; + } + std::string cmd = std::string("calc_colvar_forces ") + cvm::to_str(cvm::step_absolute()); - int err = Tcl_Eval(tcl_interp, cmd.c_str()); + int err = Tcl_Eval(interp, cmd.c_str()); if (err != TCL_OK) { - cvm::log(std::string("Error while executing calc_colvar_forces:\n")); - cvm::error(Tcl_GetStringResult(tcl_interp)); + cvm::log("Error while executing calc_colvar_forces:\n"); + cvm::error(Tcl_GetStringResult(interp)); return COLVARS_ERROR; } return cvm::get_error(); @@ -78,20 +126,25 @@ int colvarproxy_tcl::tcl_run_colvar_callback( { #if defined(COLVARS_TCL) - Tcl_Interp *const tcl_interp = - reinterpret_cast(get_tcl_interp()); + Tcl_Interp *const interp = get_tcl_interp(); size_t i; + std::string cmd = std::string("calc_") + name; + if (Tcl_FindCommand(interp, cmd.c_str(), NULL, 0) == NULL) { + cvm::error("Error: scripted colvar procedure \"" + cmd + "\" is not defined.\n"); + return COLVARS_ERROR; + } + for (i = 0; i < cvc_values.size(); i++) { cmd += std::string(" {") + (*(cvc_values[i])).to_simple_string() + std::string("}"); } - int err = Tcl_Eval(tcl_interp, cmd.c_str()); - const char *result = Tcl_GetStringResult(tcl_interp); + int err = Tcl_Eval(interp, cmd.c_str()); + const char *result = Tcl_GetStringResult(interp); if (err != TCL_OK) { return cvm::error(std::string("Error while executing ") + cmd + std::string(":\n") + - std::string(Tcl_GetStringResult(tcl_interp)), + std::string(Tcl_GetStringResult(interp)), COLVARS_ERROR); } std::istringstream is(result); @@ -104,6 +157,9 @@ int colvarproxy_tcl::tcl_run_colvar_callback( #else + (void) name; + (void) cvc_values; + (void) value; return COLVARS_NOT_IMPLEMENTED; #endif @@ -117,24 +173,29 @@ int colvarproxy_tcl::tcl_run_colvar_gradient_callback( { #if defined(COLVARS_TCL) - Tcl_Interp *const tcl_interp = - reinterpret_cast(get_tcl_interp()); + Tcl_Interp *const interp = get_tcl_interp(); size_t i; + std::string cmd = std::string("calc_") + name + "_gradient"; + if (Tcl_FindCommand(interp, cmd.c_str(), NULL, 0) == NULL) { + cvm::error("Error: scripted colvar gradient procedure \"" + cmd + "\" is not defined.\n"); + return COLVARS_ERROR; + } + for (i = 0; i < cvc_values.size(); i++) { cmd += std::string(" {") + (*(cvc_values[i])).to_simple_string() + std::string("}"); } - int err = Tcl_Eval(tcl_interp, cmd.c_str()); + int err = Tcl_Eval(interp, cmd.c_str()); if (err != TCL_OK) { return cvm::error(std::string("Error while executing ") + cmd + std::string(":\n") + - std::string(Tcl_GetStringResult(tcl_interp)), + std::string(Tcl_GetStringResult(interp)), COLVARS_ERROR); } Tcl_Obj **list; int n; - Tcl_ListObjGetElements(tcl_interp, Tcl_GetObjResult(tcl_interp), + Tcl_ListObjGetElements(interp, Tcl_GetObjResult(interp), &n, &list); if (n != int(gradient.size())) { cvm::error("Error parsing list of gradient values from script: found " @@ -156,6 +217,9 @@ int colvarproxy_tcl::tcl_run_colvar_gradient_callback( #else + (void) name; + (void) cvc_values; + (void) gradient; return COLVARS_NOT_IMPLEMENTED; #endif diff --git a/lib/colvars/colvarproxy_tcl.h b/lib/colvars/colvarproxy_tcl.h index badb62f900..ceebd4c765 100644 --- a/lib/colvars/colvarproxy_tcl.h +++ b/lib/colvars/colvarproxy_tcl.h @@ -10,6 +10,17 @@ #ifndef COLVARPROXY_TCL_H #define COLVARPROXY_TCL_H +#if defined(NAMD_TCL) || defined(VMDTCL) +#define COLVARS_TCL +#endif + +#ifdef COLVARS_TCL +#include +#else +// Allow for placeholders Tcl_Interp* variables +typedef void Tcl_Interp; +#endif + #include @@ -25,11 +36,21 @@ public: virtual ~colvarproxy_tcl(); /// Is Tcl available? (trigger initialization if needed) - int tcl_available(); + inline bool tcl_available() { +#if defined(COLVARS_TCL) + return true; +#else + return false; +#endif + } /// Get a string representation of the Tcl object pointed to by obj char const *tcl_get_str(void *obj); + int tcl_run_script(std::string const &script); + + int tcl_run_file(std::string const &fileName); + /// Tcl implementation of run_force_callback() int tcl_run_force_callback(); @@ -46,25 +67,23 @@ public: std::vector > &gradient); /// Get a pointer to the Tcl interpreter - inline void *get_tcl_interp() + inline Tcl_Interp *get_tcl_interp() { return tcl_interp_; } /// Set the pointer to the Tcl interpreter - inline void set_tcl_interp(void *interp) + inline void set_tcl_interp(Tcl_Interp *interp) { tcl_interp_ = interp; } -protected: - - /// Pointer to Tcl interpreter object - void *tcl_interp_; - /// Set Tcl pointers virtual void init_tcl_pointers(); + +protected: + /// Pointer to Tcl interpreter object + Tcl_Interp *tcl_interp_; }; - #endif diff --git a/lib/colvars/colvarproxy_volmaps.cpp b/lib/colvars/colvarproxy_volmaps.cpp index 03e5d303d1..d0ae8b51ff 100644 --- a/lib/colvars/colvarproxy_volmaps.cpp +++ b/lib/colvars/colvarproxy_volmaps.cpp @@ -64,13 +64,13 @@ int colvarproxy_volmaps::check_volmap_by_name(const char * /* volmap_name */) } -int colvarproxy_volmaps::init_volmap_by_name(char const *volmap_name) +int colvarproxy_volmaps::init_volmap_by_name(char const * /* volmap_name */) { return -1; } -int colvarproxy_volmaps::init_volmap_by_id(int volmap_id) +int colvarproxy_volmaps::init_volmap_by_id(int /* volmap_id */) { return -1; } @@ -92,7 +92,7 @@ void colvarproxy_volmaps::clear_volmap(int index) { if (((size_t) index) >= volmaps_ids.size()) { cvm::error("Error: trying to unrequest a volumetric map that was not " - "previously requested.\n", INPUT_ERROR); + "previously requested.\n", COLVARS_INPUT_ERROR); } if (volmaps_ncopies[index] > 0) { diff --git a/lib/colvars/colvars_version.h b/lib/colvars/colvars_version.h index 3f050c7e7c..2a1d449ab5 100644 --- a/lib/colvars/colvars_version.h +++ b/lib/colvars/colvars_version.h @@ -1,3 +1,3 @@ #ifndef COLVARS_VERSION -#define COLVARS_VERSION "2021-09-21" +#define COLVARS_VERSION "2022-05-09" #endif diff --git a/lib/colvars/colvarscript.cpp b/lib/colvars/colvarscript.cpp index 490ff6e81c..68dd218a62 100644 --- a/lib/colvars/colvarscript.cpp +++ b/lib/colvars/colvarscript.cpp @@ -11,13 +11,6 @@ #include #include -#if defined(NAMD_TCL) || defined(VMDTCL) -#define COLVARS_TCL -#endif -#ifdef COLVARS_TCL -#include -#endif - #include "colvarproxy.h" #include "colvardeps.h" #include "colvarscript.h" @@ -38,20 +31,25 @@ extern "C" int tcl_run_colvarscript_command(ClientData clientData, #endif -colvarscript::colvarscript(colvarproxy *p) +colvarscript::colvarscript(colvarproxy *p, colvarmodule *m) : proxy_(p), - colvars(p->colvars), - proxy_error(0) + colvars(m) { cmd_names = NULL; init_commands(); #ifdef COLVARS_TCL + // must be called after constructing derived proxy class to allow for overloading + proxy()->init_tcl_pointers(); // TODO put this in backend functions so we don't have to delete - Tcl_Interp *interp = reinterpret_cast(proxy_->get_tcl_interp()); + Tcl_Interp *const interp = proxy()->get_tcl_interp(); + if (interp == NULL) { + cvm::error("Error: trying to construct colvarscript without a Tcl interpreter.\n"); + return; + } Tcl_DeleteCommand(interp, "cv"); Tcl_CreateObjCommand(interp, "cv", tcl_run_colvarscript_command, (ClientData) this, (Tcl_CmdDeleteProc *) NULL); - cvm::log("Redefining the Tcl \"cv\" command to the new script interface."); + cvm::log("Redefining the Tcl \"cv\" command to the new script interface.\n"); #endif } @@ -136,7 +134,7 @@ int colvarscript::init_command(colvarscript::command const &comm, for (int iarg = 0; iarg < n_args_max; iarg++) { if (! std::getline(is, line)) { return cvm::error("Error: could not initialize help string for scripting " - "command \""+std::string(name)+"\".\n", BUG_ERROR); + "command \""+std::string(name)+"\".\n", COLVARS_BUG_ERROR); } cmd_arghelp[comm].push_back(line); } @@ -180,7 +178,7 @@ std::string colvarscript::get_cmd_prefix(colvarscript::Object_type t) case use_bias: return std::string("bias_"); break; default: - cvm::error("Error: undefined colvarscript object type.", BUG_ERROR); + cvm::error("Error: undefined colvarscript object type.", COLVARS_BUG_ERROR); return std::string(""); } } @@ -194,7 +192,7 @@ char const *colvarscript::get_command_help(char const *cmd) return cmd_help[c].c_str(); } cvm::error("Error: command "+std::string(cmd)+ - " is not implemented.\n", INPUT_ERROR); + " is not implemented.\n", COLVARS_INPUT_ERROR); return NULL; } @@ -206,7 +204,7 @@ char const *colvarscript::get_command_rethelp(char const *cmd) return cmd_rethelp[c].c_str(); } cvm::error("Error: command "+std::string(cmd)+ - " is not implemented.\n", INPUT_ERROR); + " is not implemented.\n", COLVARS_INPUT_ERROR); return NULL; } @@ -218,7 +216,7 @@ char const *colvarscript::get_command_arghelp(char const *cmd, int i) return cmd_arghelp[c][i].c_str(); } cvm::error("Error: command "+std::string(cmd)+ - " is not implemented.\n", INPUT_ERROR); + " is not implemented.\n", COLVARS_INPUT_ERROR); return NULL; } @@ -230,7 +228,7 @@ int colvarscript::get_command_n_args_min(char const *cmd) return cmd_n_args_min[c]; } cvm::error("Error: command "+std::string(cmd)+ - " is not implemented.\n", INPUT_ERROR); + " is not implemented.\n", COLVARS_INPUT_ERROR); return -1; } @@ -242,7 +240,7 @@ int colvarscript::get_command_n_args_max(char const *cmd) return cmd_n_args_max[c]; } cvm::error("Error: command "+std::string(cmd)+ - " is not implemented.\n", INPUT_ERROR); + " is not implemented.\n", COLVARS_INPUT_ERROR); return -1; } @@ -254,7 +252,7 @@ char const *colvarscript::get_command_full_help(char const *cmd) return cmd_full_help[c].c_str(); } cvm::error("Error: command "+std::string(cmd)+ - " is not implemented.\n", INPUT_ERROR); + " is not implemented.\n", COLVARS_INPUT_ERROR); return NULL; } @@ -338,9 +336,8 @@ std::string colvarscript::get_command_cmdline_help(colvarscript::Object_type t, return get_command_cmdline_syntax(t, c)+"\n\n"+ get_command_full_help(cmd_names[c]); } - cvm::error("Error: could not find scripting command \""+cmd+"\".", - INPUT_ERROR); - return std::string(""); + cvm::set_error_bits(COLVARS_INPUT_ERROR); + return std::string("Could not find scripting command \""+cmd+"\"."); } @@ -477,7 +474,7 @@ std::vector colvarscript::obj_to_str_vector(unsigned char *obj) i++; if (i >= str.length()) { cvm::error("Error: could not split the following string:\n"+ - str+"\n", INPUT_ERROR); + str+"\n", COLVARS_INPUT_ERROR); break; } new_result.push_back(std::string("")); @@ -485,7 +482,7 @@ std::vector colvarscript::obj_to_str_vector(unsigned char *obj) new_result.back().append(1, str[i]); if (i >= str.length()) { cvm::error("Error: could not split the following string:\n"+ - str+"\n", INPUT_ERROR); + str+"\n", COLVARS_INPUT_ERROR); break; } else { i++; @@ -616,7 +613,7 @@ int run_colvarscript_command(int objc, unsigned char *const objv[]) colvarscript *script = cv ? cv->proxy->script : NULL; if (!script) { cvm::error("Called run_colvarscript_command without a script object.\n", - BUG_ERROR); + COLVARS_BUG_ERROR); return -1; } int retval = script->run(objc, objv); @@ -644,13 +641,13 @@ int tcl_colvars_vmd_init(Tcl_Interp *interp, int molid); #endif #if !defined(VMDTCL) && !defined(NAMD_TCL) +// Initialize Colvars when loaded as a shared library into Tcl interpreter extern "C" { int Colvars_Init(Tcl_Interp *interp) { colvarproxy *proxy = new colvarproxy(); colvarmodule *colvars = new colvarmodule(proxy); - proxy->set_tcl_interp(reinterpret_cast(interp)); + proxy->set_tcl_interp(interp); proxy->colvars = colvars; - proxy->script = new colvarscript(proxy); Tcl_CreateObjCommand(interp, "cv", tcl_run_colvarscript_command, (ClientData *) NULL, (Tcl_CmdDeleteProc *) NULL); Tcl_EvalEx(interp, "package provide colvars", -1, 0); @@ -715,8 +712,7 @@ extern "C" int tcl_run_colvarscript_command(ClientData /* clientData */, } colvarproxy *proxy = colvars->proxy; - Tcl_Interp *interp = my_interp ? my_interp : - reinterpret_cast(proxy->get_tcl_interp()); + Tcl_Interp *interp = my_interp ? my_interp : proxy->get_tcl_interp(); colvarscript *script = colvarscript_obj(); if (!script) { char const *errstr = "Called tcl_run_colvarscript_command " @@ -744,8 +740,8 @@ extern "C" int tcl_run_colvarscript_command(ClientData /* clientData */, Tcl_SetResult(interp, const_cast(result.c_str()), TCL_VOLATILE); - if (proxy->delete_requested() || cvm::get_error_bit(FATAL_ERROR)) { - if (proxy->delete_requested() && !proxy->simulation_running()) { + if (proxy->delete_requested()) { + if (!proxy->simulation_running()) { // Running in VMD Tcl_SetResult(interp, const_cast("Deleting Colvars module" diff --git a/lib/colvars/colvarscript.h b/lib/colvars/colvarscript.h index 7eac15c09d..d624d9ce38 100644 --- a/lib/colvars/colvarscript.h +++ b/lib/colvars/colvarscript.h @@ -38,14 +38,10 @@ public: friend class colvarproxy; - colvarscript(colvarproxy *p); + colvarscript(colvarproxy *p, colvarmodule *m); ~colvarscript(); - /// If an error is caught by the proxy through fatal_error(), this is set to - /// COLVARSCRIPT_ERROR - int proxy_error; - /// String representation of the result of a script call std::string str_result_; diff --git a/lib/colvars/colvarscript_commands.cpp b/lib/colvars/colvarscript_commands.cpp index 0029979912..c0a28825bf 100644 --- a/lib/colvars/colvarscript_commands.cpp +++ b/lib/colvars/colvarscript_commands.cpp @@ -97,6 +97,11 @@ int cvscript_command_n_args_max(char const *c) COLVARSCRIPT_OK) { \ return COLVARSCRIPT_ERROR; \ } \ + if (objc > 1) { \ + /* Silence unused parameter warning */ \ + (void) pobj; \ + (void) objv[0]; \ + } \ FN_BODY; \ } #undef CVSCRIPT diff --git a/lib/colvars/colvarscript_commands.h b/lib/colvars/colvarscript_commands.h index 021aae1cc6..7f208e5da6 100644 --- a/lib/colvars/colvarscript_commands.h +++ b/lib/colvars/colvarscript_commands.h @@ -162,6 +162,14 @@ CVSCRIPT(cv_delete, return script->proxy()->request_deletion(); ) +CVSCRIPT(cv_featurereport, + "Return a summary of Colvars features used so far and their citations\n" + "report : string - Feature report and citations", + 0, 0, + "", + return script->set_result_str(script->module()->feature_report()); + ) + CVSCRIPT(cv_frame, "Get or set current frame number (VMD only)\n" "frame : integer - Frame number", @@ -226,9 +234,21 @@ CVSCRIPT(cv_getatomappliedforcesrms, return COLVARS_OK; ) +CVSCRIPT(cv_resetatomappliedforces, + "Reset forces applied by Colvars to atoms", + 0, 0, + "", + size_t i; + std::vector *f = script->proxy()->modify_atom_applied_forces(); + for (i = 0; i < f->size(); i++) { + (*f)[i].reset(); + } + return COLVARS_OK; + ) + CVSCRIPT(cv_getatomids, "Get the list of indices of atoms used in Colvars\n" - "indices : array of ints - Atomic indices", + "indices : array of ints - Atom indices", 0, 0, "", script->set_result_int_vec(*(script->proxy()->get_atom_ids())); @@ -317,6 +337,15 @@ CVSCRIPT(cv_help, } ) +CVSCRIPT(cv_languageversion, + "Get the C++ language version number\n" + "version : string - C++ language version", + 0, 0, + "", + script->set_result_int(__cplusplus); + return COLVARS_OK; + ) + CVSCRIPT(cv_list, "Return a list of all variables or biases\n" "list : sequence of strings - List of elements", @@ -524,7 +553,7 @@ CVSCRIPT(cv_update, ) CVSCRIPT(cv_version, - "Get the Colvars Module version number\n" + "Get the Colvars Module version string\n" "version : string - Colvars version", 0, 0, "", diff --git a/lib/colvars/colvarscript_commands_bias.cpp b/lib/colvars/colvarscript_commands_bias.cpp index 293fbb1fb4..2a94efb07e 100644 --- a/lib/colvars/colvarscript_commands_bias.cpp +++ b/lib/colvars/colvarscript_commands_bias.cpp @@ -36,6 +36,10 @@ COLVARSCRIPT_OK) { \ return COLVARSCRIPT_ERROR; \ } \ + if (objc > 1) { \ + /* Silence unused parameter warning */ \ + (void) objv; \ + } \ colvarbias *this_bias = colvarbias_obj(pobj); \ FN_BODY; \ } diff --git a/lib/colvars/colvarscript_commands_bias.h b/lib/colvars/colvarscript_commands_bias.h index f83b3422ff..420bbabcc0 100644 --- a/lib/colvars/colvarscript_commands_bias.h +++ b/lib/colvars/colvarscript_commands_bias.h @@ -99,7 +99,7 @@ CVSCRIPT(bias_help, if (cmdstr.size()) { script->set_result_str(script->get_command_cmdline_help(colvarscript::use_bias, cmdstr)); - return COLVARS_OK; + return cvm::get_error(); } else { return COLVARSCRIPT_ERROR; } @@ -172,6 +172,15 @@ CVSCRIPT(bias_state, return COLVARS_OK; ) +CVSCRIPT(bias_type, + "Print the type of this bias object\n" + "type : string - Type of this bias object (e.g. metadynamics)", + 0, 0, + "", + script->set_result_str(this_bias->bias_type); + return COLVARS_OK; + ) + CVSCRIPT(bias_update, "Recompute this bias and return its up-to-date energy\n" "E : float - Energy value", diff --git a/lib/colvars/colvarscript_commands_colvar.cpp b/lib/colvars/colvarscript_commands_colvar.cpp index 12c90ceb2b..da1f74d11d 100644 --- a/lib/colvars/colvarscript_commands_colvar.cpp +++ b/lib/colvars/colvarscript_commands_colvar.cpp @@ -36,6 +36,10 @@ COLVARSCRIPT_OK) { \ return COLVARSCRIPT_ERROR; \ } \ + if (objc > 1) { \ + /* Silence unused parameter warning */ \ + (void) objv[0]; \ + } \ colvar *this_colvar = colvar_obj(pobj); \ FN_BODY; \ } diff --git a/lib/colvars/colvarscript_commands_colvar.h b/lib/colvars/colvarscript_commands_colvar.h index 7c4c2d67f7..103ff22daf 100644 --- a/lib/colvars/colvarscript_commands_colvar.h +++ b/lib/colvars/colvarscript_commands_colvar.h @@ -28,6 +28,14 @@ CVSCRIPT(colvar_addforce, return COLVARS_OK; ) +CVSCRIPT(colvar_communicateforces, + "Communicate bias forces from this colvar to atoms", + 0, 0, + "", + this_colvar->communicate_forces(); + return COLVARS_OK; + ) + CVSCRIPT(colvar_cvcflags, "Enable or disable individual components by setting their active flags", 1, 1, @@ -73,6 +81,14 @@ CVSCRIPT(colvar_getappliedforce, return COLVARS_OK; ) +CVSCRIPT(colvar_resetbiasforce, + "Return the total of the forces applied to this colvar", + 0, 0, + "", + this_colvar->reset_bias_force(); + return COLVARS_OK; + ) + CVSCRIPT(colvar_getatomgroups, "Return the atom indices used by this colvar as a list of lists\n" "groups : array of arrays of ints - Atom indices", diff --git a/lib/colvars/colvartypes.cpp b/lib/colvars/colvartypes.cpp index 4117a7a68f..47117bf2ff 100644 --- a/lib/colvars/colvartypes.cpp +++ b/lib/colvars/colvartypes.cpp @@ -253,10 +253,18 @@ namespace { #endif -colvarmodule::rotation::rotation() +int colvarmodule::rotation::init() { b_debug_gradients = false; lambda = 0.0; + cvm::main()->cite_feature("Optimal rotation via flexible fitting"); + return COLVARS_OK; +} + + +colvarmodule::rotation::rotation() +{ + init(); #ifdef COLVARS_LAMMPS jacobi = new_Jacobi_solver(4); #else @@ -268,8 +276,7 @@ colvarmodule::rotation::rotation() colvarmodule::rotation::rotation(cvm::quaternion const &qi) : q(qi) { - b_debug_gradients = false; - lambda = 0.0; + init(); #ifdef COLVARS_LAMMPS jacobi = new_Jacobi_solver(4); #else @@ -280,12 +287,11 @@ colvarmodule::rotation::rotation(cvm::quaternion const &qi) colvarmodule::rotation::rotation(cvm::real angle, cvm::rvector const &axis) { - b_debug_gradients = false; + init(); cvm::rvector const axis_n = axis.unit(); cvm::real const sina = cvm::sin(angle/2.0); q = cvm::quaternion(cvm::cos(angle/2.0), sina * axis_n.x, sina * axis_n.y, sina * axis_n.z); - lambda = 0.0; #ifdef COLVARS_LAMMPS jacobi = new_Jacobi_solver(4); #else diff --git a/lib/colvars/colvartypes.h b/lib/colvars/colvartypes.h index 7815f508d9..354c216838 100644 --- a/lib/colvars/colvartypes.h +++ b/lib/colvars/colvartypes.h @@ -385,7 +385,7 @@ protected: { if (v.size() != length) { return cvm::error("Error: setting a matrix row from a vector of " - "incompatible size.\n", BUG_ERROR); + "incompatible size.\n", COLVARS_BUG_ERROR); } for (size_t i = 0; i < length; i++) data[i] = v[i]; return COLVARS_OK; @@ -1294,8 +1294,7 @@ public: if (cos_omega > 0.0) { return 2.0*omega*grad1; - } - else { + } else { return -2.0*(PI-omega)*grad1; } } @@ -1388,6 +1387,9 @@ public: void calc_optimal_rotation(std::vector const &pos1, std::vector const &pos2); + /// Initialize member data + int init(); + /// Default constructor rotation(); diff --git a/lib/colvars/colvarvalue.cpp b/lib/colvars/colvarvalue.cpp index 24a2790f6e..e57859dfa3 100644 --- a/lib/colvars/colvarvalue.cpp +++ b/lib/colvars/colvarvalue.cpp @@ -16,6 +16,95 @@ +colvarvalue::colvarvalue() + : value_type(type_scalar), real_value(0.0) +{} + + +colvarvalue::colvarvalue(Type const &vti) + : value_type(vti), real_value(0.0) +{ + reset(); +} + +colvarvalue::colvarvalue(cvm::real const &x) + : value_type(type_scalar), real_value(x) +{} + + +colvarvalue::colvarvalue(cvm::rvector const &v, colvarvalue::Type vti) + : value_type(vti), real_value(0.0), rvector_value(v) +{} + + +colvarvalue::colvarvalue(cvm::quaternion const &q, colvarvalue::Type vti) + : value_type(vti), real_value(0.0), quaternion_value(q) +{} + + +colvarvalue::colvarvalue(colvarvalue const &x) + : value_type(x.type()), real_value(0.0) +{ + switch (x.type()) { + case type_scalar: + real_value = x.real_value; + break; + case type_3vector: + case type_unit3vector: + case type_unit3vectorderiv: + rvector_value = x.rvector_value; + break; + case type_quaternion: + case type_quaternionderiv: + quaternion_value = x.quaternion_value; + break; + case type_vector: + vector1d_value = x.vector1d_value; + elem_types = x.elem_types; + elem_indices = x.elem_indices; + elem_sizes = x.elem_sizes; + case type_notset: + default: + break; + } +} + + +colvarvalue::colvarvalue(cvm::vector1d const &v, + colvarvalue::Type vti) + : real_value(0.0) +{ + if ((vti != type_vector) && (v.size() != num_dimensions(vti))) { + cvm::error("Error: trying to initialize a variable of type \""+type_desc(vti)+ + "\" using a vector of size "+cvm::to_str(v.size())+ + ".\n"); + value_type = type_notset; + } else { + value_type = vti; + switch (vti) { + case type_scalar: + real_value = v[0]; + break; + case type_3vector: + case type_unit3vector: + case type_unit3vectorderiv: + rvector_value = cvm::rvector(v); + break; + case type_quaternion: + case type_quaternionderiv: + quaternion_value = cvm::quaternion(v); + break; + case type_vector: + vector1d_value = v; + break; + case type_notset: + default: + break; + } + } +} + + std::string const colvarvalue::type_desc(Type t) { switch (t) { @@ -223,68 +312,6 @@ void colvarvalue::is_derivative() } -colvarvalue::colvarvalue(colvarvalue const &x) - : value_type(x.type()), real_value(0.0) -{ - switch (x.type()) { - case type_scalar: - real_value = x.real_value; - break; - case type_3vector: - case type_unit3vector: - case type_unit3vectorderiv: - rvector_value = x.rvector_value; - break; - case type_quaternion: - case type_quaternionderiv: - quaternion_value = x.quaternion_value; - break; - case type_vector: - vector1d_value = x.vector1d_value; - elem_types = x.elem_types; - elem_indices = x.elem_indices; - elem_sizes = x.elem_sizes; - case type_notset: - default: - break; - } -} - - -colvarvalue::colvarvalue(cvm::vector1d const &v, Type vti) - : real_value(0.0) -{ - if ((vti != type_vector) && (v.size() != num_dimensions(vti))) { - cvm::error("Error: trying to initialize a variable of type \""+type_desc(vti)+ - "\" using a vector of size "+cvm::to_str(v.size())+ - ".\n"); - value_type = type_notset; - } else { - value_type = vti; - switch (vti) { - case type_scalar: - real_value = v[0]; - break; - case type_3vector: - case type_unit3vector: - case type_unit3vectorderiv: - rvector_value = cvm::rvector(v); - break; - case type_quaternion: - case type_quaternionderiv: - quaternion_value = cvm::quaternion(v); - break; - case type_vector: - vector1d_value = v; - break; - case type_notset: - default: - break; - } - } -} - - void colvarvalue::add_elem(colvarvalue const &x) { if (this->value_type != type_vector) { @@ -606,7 +633,7 @@ colvarvalue const colvarvalue::interpolate(colvarvalue const &x1, if ((lambda < 0.0) || (lambda > 1.0)) { cvm::error("Error: trying to interpolate between two colvarvalues with a " - "lamdba outside [0:1].\n", BUG_ERROR); + "lamdba outside [0:1].\n", COLVARS_BUG_ERROR); } colvarvalue interp = ((1.0-lambda)*x1 + lambda*x2); @@ -626,7 +653,7 @@ colvarvalue const colvarvalue::interpolate(colvarvalue const &x1, cvm::error("Error: interpolation between "+cvm::to_str(x1)+" and "+ cvm::to_str(x2)+" with lambda = "+cvm::to_str(lambda)+ " is undefined: result = "+cvm::to_str(interp)+"\n", - INPUT_ERROR); + COLVARS_INPUT_ERROR); } interp.apply_constraints(); return interp; diff --git a/lib/colvars/colvarvalue.h b/lib/colvars/colvarvalue.h index 3f26c35df4..9ab8dbe31d 100644 --- a/lib/colvars/colvarvalue.h +++ b/lib/colvars/colvarvalue.h @@ -118,33 +118,21 @@ public: /// \brief Default constructor: this class defaults to a scalar /// number and always behaves like it unless you change its type - inline colvarvalue() - : value_type(type_scalar), real_value(0.0) - {} + colvarvalue(); /// Constructor from a type specification - inline colvarvalue(Type const &vti) - : value_type(vti), real_value(0.0) - { - reset(); - } + colvarvalue(Type const &vti); /// Copy constructor from real base type - inline colvarvalue(cvm::real const &x) - : value_type(type_scalar), real_value(x) - {} + colvarvalue(cvm::real const &x); /// \brief Copy constructor from rvector base type (Note: this sets /// by default a type \link type_3vector \endlink , if you want a /// \link type_unit3vector \endlink you must set it explicitly) - inline colvarvalue(cvm::rvector const &v, Type vti = type_3vector) - : value_type(vti), real_value(0.0), rvector_value(v) - {} + colvarvalue(cvm::rvector const &v, Type vti = type_3vector); /// \brief Copy constructor from quaternion base type - inline colvarvalue(cvm::quaternion const &q, Type vti = type_quaternion) - : value_type(vti), real_value(0.0), quaternion_value(q) - {} + colvarvalue(cvm::quaternion const &q, Type vti = type_quaternion); /// Copy constructor from vector1d base type colvarvalue(cvm::vector1d const &v, Type vti = type_vector); @@ -390,7 +378,7 @@ inline cvm::real colvarvalue::operator [] (int const i) const case colvarvalue::type_notset: default: cvm::error("Error: trying to access a colvar value " - "that is not initialized.\n", BUG_ERROR); + "that is not initialized.\n", COLVARS_BUG_ERROR); return 0.0; break; case colvarvalue::type_scalar: return real_value; break; @@ -413,7 +401,7 @@ inline cvm::real & colvarvalue::operator [] (int const i) case colvarvalue::type_notset: default: cvm::error("Error: trying to access a colvar value " - "that is not initialized.\n", BUG_ERROR); + "that is not initialized.\n", COLVARS_BUG_ERROR); return real_value; break; case colvarvalue::type_scalar: return real_value; break; diff --git a/src/COLVARS/colvarproxy_lammps.cpp b/src/COLVARS/colvarproxy_lammps.cpp index 09c280acf9..0989460a75 100644 --- a/src/COLVARS/colvarproxy_lammps.cpp +++ b/src/COLVARS/colvarproxy_lammps.cpp @@ -27,35 +27,6 @@ #define HASH_FAIL -1 -//////////////////////////////////////////////////////////////////////// -// local helper functions - -// safely move filename to filename.extension -static int my_backup_file(const char *filename, const char *extension) -{ - struct stat sbuf; - if (stat(filename, &sbuf) == 0) { - if (!extension) extension = ".BAK"; - char *backup = new char[strlen(filename)+strlen(extension)+1]; - strcpy(backup, filename); - strcat(backup, extension); -#if defined(_WIN32) && !defined(__CYGWIN__) - remove(backup); -#endif - if (rename(filename,backup)) { - char *sys_err_msg = strerror(errno); - if (!sys_err_msg) sys_err_msg = (char *) "(unknown error)"; - fprintf(stderr,"Error renaming file %s to %s: %s\n", - filename, backup, sys_err_msg); - delete [] backup; - return COLVARS_ERROR; - } - delete [] backup; - } - return COLVARS_OK; -} - -//////////////////////////////////////////////////////////////////////// colvarproxy_lammps::colvarproxy_lammps(LAMMPS_NS::LAMMPS *lmp, const char *inp_name, @@ -75,10 +46,6 @@ colvarproxy_lammps::colvarproxy_lammps(LAMMPS_NS::LAMMPS *lmp, t_target=temp; do_exit=false; - // User-scripted forces are not available in LAMMPS - force_script_defined = false; - have_scripts = false; - // set input restart name and strip the extension, if present input_prefix_str = std::string(inp_name ? inp_name : ""); if (input_prefix_str.rfind(".colvars.state") != std::string::npos) @@ -130,6 +97,9 @@ void colvarproxy_lammps::init(const char *conf_file) cvm::log("Using LAMMPS interface, version "+ cvm::to_str(COLVARPROXY_VERSION)+".\n"); + colvars->cite_feature("LAMMPS engine"); + colvars->cite_feature("Colvars-LAMMPS interface"); + my_angstrom = _lmp->force->angstrom; // Front-end unit is the same as back-end angstrom_value = my_angstrom; @@ -179,10 +149,6 @@ int colvarproxy_lammps::read_state_file(char const *state_filename) colvarproxy_lammps::~colvarproxy_lammps() { delete _random; - if (colvars != nullptr) { - delete colvars; - colvars = nullptr; - } } // re-initialize data where needed @@ -339,17 +305,6 @@ int colvarproxy_lammps::set_unit_system(std::string const &units_in, bool /*chec } -int colvarproxy_lammps::backup_file(char const *filename) -{ - if (std::string(filename).rfind(std::string(".colvars.state")) - != std::string::npos) { - return my_backup_file(filename, ".old"); - } else { - return my_backup_file(filename, ".BAK"); - } -} - - // multi-replica support int colvarproxy_lammps::replica_enabled() @@ -414,8 +369,8 @@ int colvarproxy_lammps::check_atom_id(int atom_number) // TODO add upper boundary check? if ((aid < 0)) { cvm::error("Error: invalid atom number specified, "+ - cvm::to_str(atom_number)+"\n", INPUT_ERROR); - return INPUT_ERROR; + cvm::to_str(atom_number)+"\n", COLVARS_INPUT_ERROR); + return COLVARS_INPUT_ERROR; } return aid; diff --git a/src/COLVARS/colvarproxy_lammps.h b/src/COLVARS/colvarproxy_lammps.h index 579e645054..3ff713713f 100644 --- a/src/COLVARS/colvarproxy_lammps.h +++ b/src/COLVARS/colvarproxy_lammps.h @@ -101,10 +101,7 @@ class colvarproxy_lammps : public colvarproxy { void log(std::string const &message) override; void error(std::string const &message) override; - cvm::rvector position_distance(cvm::atom_pos const &pos1, - cvm::atom_pos const &pos2) const override; - - int backup_file(char const *filename) override; + cvm::rvector position_distance(cvm::atom_pos const &pos1, cvm::atom_pos const &pos2) const override; cvm::real rand_gaussian(void) override { return _random->gaussian(); }; diff --git a/src/COLVARS/colvarproxy_lammps_version.h b/src/COLVARS/colvarproxy_lammps_version.h index 0399595533..b0f8965fb0 100644 --- a/src/COLVARS/colvarproxy_lammps_version.h +++ b/src/COLVARS/colvarproxy_lammps_version.h @@ -1,3 +1,3 @@ #ifndef COLVARPROXY_VERSION -#define COLVARPROXY_VERSION "2021-03-02" +#define COLVARPROXY_VERSION "2022-05-09" #endif diff --git a/src/COLVARS/fix_colvars.cpp b/src/COLVARS/fix_colvars.cpp index 6d6799b43e..02bf8d4347 100644 --- a/src/COLVARS/fix_colvars.cpp +++ b/src/COLVARS/fix_colvars.cpp @@ -38,23 +38,14 @@ #include "universe.h" #include "update.h" -#include "colvarproxy_lammps.h" -#include "colvarmodule.h" - #include #include #include +#include + +#include "colvarproxy_lammps.h" +#include "colvarmodule.h" -static const char colvars_pub[] = - "fix colvars command:\n\n" - "@Article{fiorin13,\n" - " author = {G.~Fiorin and M.{\\,}L.~Klein and J.~H{\\'e}nin},\n" - " title = {Using collective variables to drive molecular" - " dynamics simulations},\n" - " journal = {Mol.~Phys.},\n" - " year = 2013,\n" - " note = {doi: 10.1080/00268976.2013.813594}\n" - "}\n\n"; /* struct for packed data communication of coordinates and forces. */ struct LAMMPS_NS::commdata { @@ -349,8 +340,6 @@ FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : /* storage required to communicate a single coordinate or force. */ size_one = sizeof(struct commdata); - - if (lmp->citeme) lmp->citeme->add(colvars_pub); } /********************************* @@ -978,6 +967,9 @@ void FixColvars::post_run() { if (me == 0) { proxy->post_run(); + if (lmp->citeme) { + lmp->citeme->add(proxy->colvars->feature_report(1)); + } } }

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