From ebd41bc07fc22f39a1a02de88f75bc0023203f53 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 28 Feb 2016 10:16:27 -0500 Subject: [PATCH] merge colvars updates as of feb 28th --- doc/PDF/colvars-refman-lammps.pdf | Bin 632614 -> 529863 bytes lib/colvars/colvar.cpp | 185 +++-- lib/colvars/colvar.h | 14 +- lib/colvars/colvaratoms.cpp | 981 ++++++++++++++++-------- lib/colvars/colvaratoms.h | 319 +++++--- lib/colvars/colvarcomp.cpp | 17 +- lib/colvars/colvarcomp.h | 44 ++ lib/colvars/colvarcomp_angles.cpp | 130 +++- lib/colvars/colvarcomp_rotations.cpp | 12 - lib/colvars/colvargrid.cpp | 3 +- lib/colvars/colvarmodule.cpp | 52 +- lib/colvars/colvarmodule.h | 24 +- lib/colvars/colvarparse.cpp | 23 +- lib/colvars/colvarparse.h | 1 + lib/colvars/colvarproxy.h | 511 +++++++++--- lib/colvars/colvarscript.cpp | 71 +- lib/colvars/colvarscript.h | 1 + src/USER-COLVARS/colvarproxy_lammps.cpp | 258 ++----- src/USER-COLVARS/colvarproxy_lammps.h | 54 +- src/USER-COLVARS/fix_colvars.cpp | 53 +- src/USER-COLVARS/fix_colvars.h | 10 +- 21 files changed, 1795 insertions(+), 968 deletions(-) diff --git a/doc/PDF/colvars-refman-lammps.pdf b/doc/PDF/colvars-refman-lammps.pdf index 34593547c70e84664b5e386015e40f5a6ea409a5..4f6f27a3667163c8b5caff8744d8e29d67bd27b1 100644 GIT binary patch delta 206101 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%0D$)c8PvvkH$D~lz*`kYyg*)q18j9 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ν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 delta 310024 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%0A8p_|9R!8SG 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.size(); j++) { for (size_t k = 0; k < cvcs[i]->atom_groups[j]->size(); k++) { - temp_id_list.push_back(cvcs[i]->atom_groups[j]->at(k).id); + cvm::atom_group &ag = *(cvcs[i]->atom_groups[j]); + temp_id_list.push_back(ag[k].id); } } } @@ -830,8 +832,9 @@ void colvar::setup() { for (size_t i = 0; i < cvcs.size(); i++) { for (size_t ig = 0; ig < cvcs[i]->atom_groups.size(); ig++) { cvm::atom_group &atoms = *(cvcs[i]->atom_groups[ig]); - atoms.read_positions(); + atoms.setup(); atoms.reset_mass(name,i,ig); + atoms.read_positions(); } } } @@ -861,37 +864,40 @@ colvar::~colvar() void colvar::calc() { - size_t i, ig; if (cvm::debug()) cvm::log("Calculating colvar \""+this->name+"\".\n"); + update_cvc_flags(); + calc_cvcs(); + calc_colvar_properties(); +} + + +int colvar::calc_cvcs(int first_cvc, size_t num_cvcs) +{ + size_t i, ig; + size_t cvc_count; + size_t const cvc_max_count = num_cvcs ? num_cvcs : num_active_cvcs(); // prepare atom groups for calculation if (cvm::debug()) cvm::log("Collecting data from atom groups.\n"); - // Update the enabled/disabled status of cvcs if necessary - if (cvc_flags.size()) { - bool any = false; - for (i = 0; i < cvcs.size(); i++) { - cvcs[i]->b_enabled = cvc_flags[i]; - any = any || cvc_flags[i]; - } - if (!any) { - cvm::error("ERROR: All CVCs are disabled for colvar " + this->name +"\n"); - return; - } - cvc_flags.resize(0); + if (first_cvc >= cvcs.size()) { + cvm::error("Error: trying to address a component outside the " + "range defined for colvar \""+name+"\".\n", BUG_ERROR); + return BUG_ERROR; } - for (i = 0; i < cvcs.size(); i++) { + for (i = first_cvc, cvc_count = 0; + (i < cvcs.size()) && (cvc_count < cvc_max_count); + i++) { if (!cvcs[i]->b_enabled) continue; + cvc_count++; for (ig = 0; ig < cvcs[i]->atom_groups.size(); ig++) { cvm::atom_group &atoms = *(cvcs[i]->atom_groups[ig]); atoms.reset_atoms_data(); atoms.read_positions(); - if (atoms.b_center || atoms.b_rotate) { - atoms.calc_apply_roto_translation(); - } + atoms.calc_required_properties(); // each atom group will take care of its own ref_pos_group, if defined } } @@ -906,7 +912,11 @@ void colvar::calc() // } if (tasks[task_system_force]) { - for (i = 0; i < cvcs.size(); i++) { + for (i = first_cvc, cvc_count = 0; + (i < cvcs.size()) && (cvc_count < cvc_max_count); + i++) { + if (!cvcs[i]->b_enabled) continue; + cvc_count++; for (ig = 0; ig < cvcs[i]->atom_groups.size(); ig++) { cvcs[i]->atom_groups[ig]->read_system_forces(); } @@ -919,9 +929,12 @@ void colvar::calc() cvm::log("Calculating colvar components.\n"); x.reset(); - // First, update component values - for (i = 0; i < cvcs.size(); i++) { + // First, calculate component values + for (i = first_cvc, cvc_count = 0; + (i < cvcs.size()) && (cvc_count < cvc_max_count); + i++) { if (!cvcs[i]->b_enabled) continue; + cvc_count++; cvm::increase_depth(); (cvcs[i])->calc_value(); cvm::decrease_depth(); @@ -932,22 +945,25 @@ void colvar::calc() cvm::cv_width, cvm::cv_prec)+".\n"); } - // Then combine them appropriately + // Then combine them appropriately, using either a scripted function or a polynomial if (tasks[task_scripted]) { // cvcs combined by user script int res = cvm::proxy->run_colvar_callback(scripted_function, sorted_cvc_values, x); if (res == COLVARS_NOT_IMPLEMENTED) { cvm::error("Scripted colvars are not implemented."); - return; + return COLVARS_NOT_IMPLEMENTED; } if (res != COLVARS_OK) { cvm::error("Error running scripted colvar"); - return; + return COLVARS_OK; } } else if (x.type() == colvarvalue::type_scalar) { // polynomial combination allowed - for (i = 0; i < cvcs.size(); i++) { + for (i = first_cvc, cvc_count = 0; + (i < cvcs.size()) && (cvc_count < cvc_max_count); + i++) { if (!cvcs[i]->b_enabled) continue; + cvc_count++; x += (cvcs[i])->sup_coeff * ( ((cvcs[i])->sup_np != 1) ? std::pow((cvcs[i])->value().real_value, (cvcs[i])->sup_np) : @@ -955,8 +971,11 @@ void colvar::calc() } } else { // only linear combination allowed - for (i = 0; i < cvcs.size(); i++) { + for (i = first_cvc, cvc_count = 0; + (i < cvcs.size()) && (cvc_count < cvc_max_count); + i++) { if (!cvcs[i]->b_enabled) continue; + cvc_count++; x += (cvcs[i])->sup_coeff * (cvcs[i])->value(); } } @@ -970,9 +989,12 @@ void colvar::calc() if (cvm::debug()) cvm::log("Calculating gradients of colvar \""+this->name+"\".\n"); - for (i = 0; i < cvcs.size(); i++) { - // calculate the gradients of each component + // calculate the gradients of each component + for (i = first_cvc, cvc_count = 0; + (i < cvcs.size()) && (cvc_count < cvc_max_count); + i++) { if (!cvcs[i]->b_enabled) continue; + cvc_count++; cvm::increase_depth(); (cvcs[i])->calc_gradients(); // if requested, propagate (via chain rule) the gradients above @@ -991,40 +1013,44 @@ void colvar::calc() if (tasks[task_scripted]) { cvm::error("Collecting atomic gradients is not implemented for " - "scripted colvars."); - return; + "scripted colvars.", COLVARS_NOT_IMPLEMENTED); + return COLVARS_NOT_IMPLEMENTED; } // Collect the atomic gradients inside colvar object for (unsigned int a = 0; a < atomic_gradients.size(); a++) { atomic_gradients[a].reset(); } - for (i = 0; i < cvcs.size(); i++) { + for (i = first_cvc, cvc_count = 0; + (i < cvcs.size()) && (cvc_count < cvc_max_count); + i++) { if (!cvcs[i]->b_enabled) continue; + cvc_count++; // Coefficient: d(a * x^n) = a * n * x^(n-1) * dx cvm::real coeff = (cvcs[i])->sup_coeff * cvm::real((cvcs[i])->sup_np) * std::pow((cvcs[i])->value().real_value, (cvcs[i])->sup_np-1); for (size_t j = 0; j < cvcs[i]->atom_groups.size(); j++) { + cvm::atom_group &ag = *(cvcs[i]->atom_groups[j]); + // If necessary, apply inverse rotation to get atomic // gradient in the laboratory frame if (cvcs[i]->atom_groups[j]->b_rotate) { cvm::rotation const rot_inv = cvcs[i]->atom_groups[j]->rot.inverse(); for (size_t k = 0; k < cvcs[i]->atom_groups[j]->size(); k++) { - int a = std::lower_bound(atom_ids.begin(), atom_ids.end(), - cvcs[i]->atom_groups[j]->at(k).id) - atom_ids.begin(); - atomic_gradients[a] += coeff * - rot_inv.rotate(cvcs[i]->atom_groups[j]->at(k).grad); + size_t a = std::lower_bound(atom_ids.begin(), atom_ids.end(), + ag[k].id) - atom_ids.begin(); + atomic_gradients[a] += coeff * rot_inv.rotate(ag[k].grad); } } else { for (size_t k = 0; k < cvcs[i]->atom_groups[j]->size(); k++) { - int a = std::lower_bound(atom_ids.begin(), atom_ids.end(), - cvcs[i]->atom_groups[j]->at(k).id) - atom_ids.begin(); - atomic_gradients[a] += coeff * cvcs[i]->atom_groups[j]->at(k).grad; + size_t a = std::lower_bound(atom_ids.begin(), atom_ids.end(), + ag[k].id) - atom_ids.begin(); + atomic_gradients[a] += coeff * ag[k].grad; } } } @@ -1040,8 +1066,8 @@ void colvar::calc() // TODO see if this could reasonably be done in a generic way // from generic inverse gradients cvm::error("System force is not implemented for " - "scripted colvars."); - return; + "scripted colvars.", COLVARS_NOT_IMPLEMENTED); + return COLVARS_NOT_IMPLEMENTED; } if (cvm::debug()) cvm::log("Calculating system force of colvar \""+this->name+"\".\n"); @@ -1054,7 +1080,11 @@ void colvar::calc() if (cvm::step_relative() > 0) { // get from the cvcs the system forces from the PREVIOUS step - for (i = 0; i < cvcs.size(); i++) { + for (i = first_cvc, cvc_count = 0; + (i < cvcs.size()) && (cvc_count < cvc_max_count); + i++) { + if (!cvcs[i]->b_enabled) continue; + cvc_count++; (cvcs[i])->calc_force_invgrads(); // linear combination is assumed cvm::increase_depth(); @@ -1072,7 +1102,11 @@ void colvar::calc() if (cvm::debug()) cvm::log("Done calculating system force of colvar \""+this->name+"\".\n"); } +} + +int colvar::calc_colvar_properties() +{ if (tasks[task_fdiff_velocity]) { // calculate the velocity by finite differences if (cvm::step_relative() == 0) @@ -1243,6 +1277,7 @@ void colvar::communicate_forces() if (tasks[task_scripted]) { std::vector > func_grads; + func_grads.reserve(cvcs.size()); for (i = 0; i < cvcs.size(); i++) { if (!cvcs[i]->b_enabled) continue; func_grads.push_back(cvm::matrix2d (x.size(), @@ -1252,7 +1287,7 @@ void colvar::communicate_forces() if (res != COLVARS_OK) { if (res == COLVARS_NOT_IMPLEMENTED) { - cvm::error("Colvar gradient scripts are not implemented."); + cvm::error("Colvar gradient scripts are not implemented.", COLVARS_NOT_IMPLEMENTED); } else { cvm::error("Error running colvar gradient script"); } @@ -1296,8 +1331,8 @@ void colvar::communicate_forces() } -int colvar::set_cvc_flags(std::vector const &flags) { - +int colvar::set_cvc_flags(std::vector const &flags) +{ if (flags.size() != cvcs.size()) { cvm::error("ERROR: Wrong number of CVC flags provided."); return COLVARS_ERROR; @@ -1309,6 +1344,36 @@ int colvar::set_cvc_flags(std::vector const &flags) { } +int colvar::update_cvc_flags() +{ + size_t i; + // Update the enabled/disabled status of cvcs if necessary + if (cvc_flags.size()) { + bool any = false; + for (i = 0; i < cvcs.size(); i++) { + cvcs[i]->b_enabled = cvc_flags[i]; + any = any || cvc_flags[i]; + } + if (!any) { + cvm::error("ERROR: All CVCs are disabled for colvar " + this->name +"\n"); + return COLVARS_ERROR; + } + cvc_flags.resize(0); + } + return COLVARS_OK; +} + + +int colvar::num_active_cvcs() const +{ + int result = 0; + for (size_t i = 0; i < cvcs.size(); i++) { + if (cvcs[i]->b_enabled) result++; + } + return result; +} + + // ******************** METRIC FUNCTIONS ******************** // Use the metrics defined by \link cvc \endlink objects diff --git a/lib/colvars/colvar.h b/lib/colvars/colvar.h index 8a3e40518a..7ab4467bfb 100644 --- a/lib/colvars/colvar.h +++ b/lib/colvars/colvar.h @@ -310,8 +310,11 @@ public: /// quantities void calc(); - /// \brief Calculate just the value, and store it in the argument - void calc_value(colvarvalue &xn); + /// \brief Calculate a given subset of colvar components (CVCs) (default: all CVCs) + int calc_cvcs(int first = 0, size_t num_cvcs = 0); + + /// \brief Calculate the quantities associated to the colvar (but not to the CVCs) + int calc_colvar_properties(); /// Set the total biasing force to zero void reset_bias_force(); @@ -332,6 +335,12 @@ public: /// \brief Enables and disables individual CVCs based on flags int set_cvc_flags(std::vector const &flags); + /// \brief Updates the flags in the CVC objects + int update_cvc_flags(); + + /// \brief Return the number of CVC objects with an active flag + int num_active_cvcs() const; + /// \brief Use the internal metrics (as from \link cvc /// \endlink objects) to calculate square distances and gradients /// @@ -486,6 +495,7 @@ public: class distance_inv; class distance_pairs; class angle; + class dipole_angle; class dihedral; class coordnum; class selfcoordnum; diff --git a/lib/colvars/colvaratoms.cpp b/lib/colvars/colvaratoms.cpp index 1f0c97516a..038506f347 100644 --- a/lib/colvars/colvaratoms.cpp +++ b/lib/colvars/colvaratoms.cpp @@ -5,56 +5,98 @@ #include "colvaratoms.h" -// member functions of the "atom" class depend tightly on the MD interface, and are -// thus defined in colvarproxy_xxx.cpp - -// in this file only atom_group functions are defined - - -// Note: "conf" is the configuration of the cvc who is using this atom group; -// "key" is the name of the atom group (e.g. "atoms", "group1", "group2", ...) -cvm::atom_group::atom_group(std::string const &conf, - char const *key) - : b_center(false), b_rotate(false), b_user_defined_fit(false), - b_fit_gradients(false), - ref_pos_group(NULL), - noforce(false) +cvm::atom::atom() { - cvm::log("Defining atom group \""+ - std::string(key)+"\".\n"); - // real work is done by parse - parse(conf, key); + index = -1; + id = -1; + reset_data(); } -cvm::atom_group::atom_group(std::vector const &atoms) - : b_dummy(false), b_center(false), b_rotate(false), - b_fit_gradients(false), ref_pos_group(NULL), - noforce(false) +cvm::atom::atom(int atom_number) { - this->reserve(atoms.size()); - for (size_t i = 0; i < atoms.size(); i++) { - this->push_back(atoms[i]); + colvarproxy *p = cvm::proxy; + index = p->init_atom(atom_number); + if (cvm::debug()) { + cvm::log("The index of this atom in the colvarproxy arrays is "+ + cvm::to_str(index)+".\n"); } - total_mass = 0.0; - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - total_mass += ai->mass; + id = p->get_atom_id(index); + update_mass(); + reset_data(); +} + + +cvm::atom::atom(cvm::residue_id const &residue, + std::string const &atom_name, + std::string const &segment_id) +{ + colvarproxy *p = cvm::proxy; + index = p->init_atom(residue, atom_name, segment_id); + if (cvm::debug()) { + cvm::log("The index of this atom in the colvarproxy_namd arrays is "+ + cvm::to_str(index)+".\n"); } + id = p->get_atom_id(index); + update_mass(); + reset_data(); +} + + +cvm::atom::atom(atom const &a) + : index(a.index) +{ + id = (cvm::proxy)->get_atom_id(index); + update_mass(); + reset_data(); +} + + +cvm::atom::~atom() +{ + if (index >= 0) { + (cvm::proxy)->clear_atom(index); + } +} + + + +// TODO change this arrangement +// Note: "conf" is the configuration of the cvc who is using this atom group; +// "key" is the name of the atom group (e.g. "atoms", "group1", "group2", ...) +cvm::atom_group::atom_group(std::string const &conf, + char const *key_in) +{ + key = key_in; + cvm::log("Defining atom group \""+ + std::string(key)+"\".\n"); + init(); + // real work is done by parse + parse(conf); + setup(); +} + + +cvm::atom_group::atom_group(std::vector const &atoms_in) +{ + init(); + atoms = atoms_in; + setup(); } cvm::atom_group::atom_group() - : b_dummy(false), b_center(false), b_rotate(false), - b_user_defined_fit(false), b_fit_gradients(false), - ref_pos_group(NULL), noforce(false) { - total_mass = 0.0; + init(); } cvm::atom_group::~atom_group() { + if (index >= 0) { + (cvm::proxy)->clear_atom_group(index); + } + if (ref_pos_group) { delete ref_pos_group; ref_pos_group = NULL; @@ -62,53 +104,181 @@ cvm::atom_group::~atom_group() } -void cvm::atom_group::add_atom(cvm::atom const &a) +int cvm::atom_group::add_atom(cvm::atom const &a) +{ + if (a.id < 0) { + return COLVARS_ERROR; + } + + for (size_t i = 0; i < atoms_ids.size(); i++) { + if (atoms_ids[i] == a.id) { + if (cvm::debug()) + cvm::log("Discarding doubly counted atom with number "+ + cvm::to_str(a.id+1)+".\n"); + return COLVARS_OK; + } + } + + // for consistency with add_atom_id(), we update the list as well + atoms_ids.push_back(a.id); + atoms.push_back(a); + total_mass += a.mass; + total_charge += a.charge; + + return COLVARS_OK; +} + + +int cvm::atom_group::add_atom_id(int aid) +{ + if (aid < 0) { + return COLVARS_ERROR; + } + + for (size_t i = 0; i < atoms_ids.size(); i++) { + if (atoms_ids[i] == aid) { + if (cvm::debug()) + cvm::log("Discarding doubly counted atom with number "+ + cvm::to_str(aid+1)+".\n"); + return COLVARS_OK; + } + } + + atoms_ids.push_back(aid); + return COLVARS_OK; +} + + +int cvm::atom_group::remove_atom(cvm::atom_iter ai) +{ + if (b_scalable) { + cvm::error("Error: cannot remove atoms from a scalable group.\n", INPUT_ERROR); + return COLVARS_ERROR; + } + + if (!this->size()) { + cvm::error("Error: trying to remove an atom from an empty group.\n", INPUT_ERROR); + return COLVARS_ERROR; + } else { + total_mass -= ai->mass; + total_charge -= ai->charge; + atoms_ids.erase(atoms_ids.begin() + (ai - atoms.begin())); + atoms.erase(ai); + } + + return COLVARS_OK; +} + + +int cvm::atom_group::init() +{ + if (!key.size()) key = "atoms"; + + atoms.clear(); + + b_scalable = false; + index = -1; + + b_center = false; + b_rotate = false; + b_user_defined_fit = false; + b_fit_gradients = false; + ref_pos_group = NULL; + + noforce = false; + + total_mass = 0.0; + total_charge = 0.0; + + cog.reset(); + com.reset(); + + return COLVARS_OK; +} + + +int cvm::atom_group::setup() +{ + for (cvm::atom_iter ai = atoms.begin(); ai != atoms.end(); ai++) { + ai->update_mass(); + ai->update_charge(); + } + update_total_mass(); + update_total_charge(); + return COLVARS_OK; +} + + +void cvm::atom_group::update_total_mass() { if (b_dummy) { - cvm::error("Error: cannot add atoms to a dummy group.\n", INPUT_ERROR); + total_mass = 1.0; + return; + } + + if (b_scalable) { + total_mass = (cvm::proxy)->get_atom_group_mass(index); } else { - this->push_back(a); - total_mass += a.mass; + total_mass = 0.0; + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { + total_mass += ai->mass; + } } } void cvm::atom_group::reset_mass(std::string &name, int i, int j) { - total_mass = 0.0; - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - total_mass += ai->mass; - } + update_total_mass(); cvm::log("Re-initialized atom group "+name+":"+cvm::to_str(i)+"/"+ - cvm::to_str(j)+". "+ cvm::to_str(this->size())+ - " atoms: total mass = "+cvm::to_str(this->total_mass)+".\n"); + cvm::to_str(j)+". "+ cvm::to_str(atoms_ids.size())+ + " atoms: total mass = "+cvm::to_str(total_mass)+".\n"); } -int cvm::atom_group::parse(std::string const &conf, - char const *key) + +void cvm::atom_group::update_total_charge() +{ + if (b_dummy) { + total_charge = 0.0; + return; + } + + if (b_scalable) { + total_charge = (cvm::proxy)->get_atom_group_charge(index); + } else { + total_charge = 0.0; + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { + total_charge += ai->charge; + } + } +} + + +int cvm::atom_group::parse(std::string const &conf) { std::string group_conf; + // TODO move this to the cvc class constructor/init + // save_delimiters is set to false for this call, because "conf" is // not the config string of this group, but of its parent object // (which has already taken care of the delimiters) save_delimiters = false; - key_lookup(conf, key, group_conf, dummy_pos); + key_lookup(conf, key.c_str(), group_conf, dummy_pos); // restoring the normal value, because we do want keywords checked // inside "group_conf" save_delimiters = true; if (group_conf.size() == 0) { - cvm::error("Error: atom group \""+std::string(key)+ - "\" is set, but has no definition.\n", - INPUT_ERROR); + cvm::error("Error: atom group \""+key+ + "\" is set, but has no definition.\n", + INPUT_ERROR); return COLVARS_ERROR; } cvm::increase_depth(); - cvm::log("Initializing atom group \""+std::string(key)+"\".\n"); + cvm::log("Initializing atom group \""+key+"\".\n"); // whether or not to include messages in the log // colvarparse::Parse_Mode mode = parse_silent; @@ -117,57 +287,27 @@ int cvm::atom_group::parse(std::string const &conf, // get_keyval (group_conf, "verboseOutput", b_verbose, false, parse_silent); // if (b_verbose) mode = parse_normal; // } - colvarparse::Parse_Mode mode = parse_normal; + // colvarparse::Parse_Mode mode = parse_normal; + + int parse_error = COLVARS_OK; + + // if the cvc allows it, the flag has been set to true by default + get_keyval(group_conf, "scalable", b_scalable, b_scalable); { - // std::vector atom_indexes; std::string numbers_conf = ""; size_t pos = 0; - std::vector atom_indexes; while (key_lookup(group_conf, "atomNumbers", numbers_conf, pos)) { - if (numbers_conf.size()) { - std::istringstream is(numbers_conf); - int ia; - while (is >> ia) { - atom_indexes.push_back(ia); - } - } - - if (atom_indexes.size()) { - this->reserve(this->size()+atom_indexes.size()); - for (size_t i = 0; i < atom_indexes.size(); i++) { - this->push_back(cvm::atom(atom_indexes[i])); - } - if (cvm::get_error()) return COLVARS_ERROR; - } else { - cvm::error("Error: no numbers provided for \"" - "atomNumbers\".\n", INPUT_ERROR); - return COLVARS_ERROR; - } - - atom_indexes.clear(); + parse_error |= add_atom_numbers(numbers_conf); + numbers_conf = ""; } + } + { std::string index_group_name; if (get_keyval(group_conf, "indexGroup", index_group_name)) { // use an index group from the index file read globally - std::list::iterator names_i = cvm::index_group_names.begin(); - std::list >::iterator index_groups_i = cvm::index_groups.begin(); - for ( ; names_i != cvm::index_group_names.end() ; ++names_i, ++index_groups_i) { - if (*names_i == index_group_name) - break; - } - if (names_i == cvm::index_group_names.end()) { - cvm::error("Error: could not find index group "+ - index_group_name+" among those provided by the index file.\n", - INPUT_ERROR); - return COLVARS_ERROR; - } - this->reserve(index_groups_i->size()); - for (size_t i = 0; i < index_groups_i->size(); i++) { - this->push_back(cvm::atom((*index_groups_i)[i])); - } - if (cvm::get_error()) return COLVARS_ERROR; + parse_error |= add_index_group(index_group_name); } } @@ -175,99 +315,55 @@ int cvm::atom_group::parse(std::string const &conf, std::string range_conf = ""; size_t pos = 0; while (key_lookup(group_conf, "atomNumbersRange", - range_conf, pos)) { - - if (range_conf.size()) { - std::istringstream is(range_conf); - int initial, final; - char dash; - if ( (is >> initial) && (initial > 0) && - (is >> dash) && (dash == '-') && - (is >> final) && (final > 0) ) { - for (int anum = initial; anum <= final; anum++) { - this->push_back(cvm::atom(anum)); - } - if (cvm::get_error()) return COLVARS_ERROR; - range_conf = ""; - continue; - } - } - - cvm::error("Error: no valid definition for \"atomNumbersRange\", \""+ - range_conf+"\".\n", INPUT_ERROR); - } - } - - std::vector psf_segids; - get_keyval(group_conf, "psfSegID", psf_segids, std::vector (), mode); - for (std::vector::iterator psii = psf_segids.begin(); - psii < psf_segids.end(); ++psii) { - - if ( (psii->size() == 0) || (psii->size() > 4) ) { - cvm::error("Error: invalid segmend identifier provided, \""+ - (*psii)+"\".\n", INPUT_ERROR); + range_conf, pos)) { + parse_error |= add_atom_numbers_range(range_conf); + range_conf = ""; } } { + std::vector psf_segids; + get_keyval(group_conf, "psfSegID", psf_segids, std::vector()); + std::vector::iterator psii; + 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); + } + } + std::string range_conf = ""; size_t pos = 0; size_t range_count = 0; - std::vector::iterator psii = psf_segids.begin(); + psii = psf_segids.begin(); while (key_lookup(group_conf, "atomNameResidueRange", - range_conf, pos)) { + range_conf, pos)) { range_count++; - - if (range_count > psf_segids.size()) { + if (psf_segids.size() && (range_count > psf_segids.size())) { cvm::error("Error: more instances of \"atomNameResidueRange\" than " - "values of \"psfSegID\".\n", INPUT_ERROR); - } - - std::string const &psf_segid = psf_segids.size() ? *psii : std::string(""); - - if (range_conf.size()) { - - std::istringstream is(range_conf); - std::string atom_name; - int initial, final; - char dash; - if ( (is >> atom_name) && (atom_name.size()) && - (is >> initial) && (initial > 0) && - (is >> dash) && (dash == '-') && - (is >> final) && (final > 0) ) { - for (int resid = initial; resid <= final; resid++) { - this->push_back(cvm::atom(resid, atom_name, psf_segid)); - } - if (cvm::get_error()) return COLVARS_ERROR; - range_conf = ""; - } else { - cvm::error("Error: cannot parse definition for \"" - "atomNameResidueRange\", \""+ - range_conf+"\".\n"); - } - + "values of \"psfSegID\".\n", INPUT_ERROR); } else { - cvm::error("Error: atomNameResidueRange with empty definition.\n"); + parse_error |= add_atom_name_residue_range(psf_segids.size() ? *psii : std::string(""), + range_conf); + if (psf_segids.size()) psii++; } - - if (psf_segid.size()) - ++psii; + range_conf = ""; } } { // read the atoms from a file std::string atoms_file_name; - if (get_keyval(group_conf, "atomsFile", atoms_file_name, std::string(""), mode)) { + if (get_keyval(group_conf, "atomsFile", atoms_file_name, std::string(""))) { std::string atoms_col; - if (!get_keyval(group_conf, "atomsCol", atoms_col, std::string(""), mode)) { + if (!get_keyval(group_conf, "atomsCol", atoms_col, std::string(""))) { cvm::error("Error: parameter atomsCol is required if atomsFile is set.\n", - INPUT_ERROR); + INPUT_ERROR); } double atoms_col_value; - bool const atoms_col_value_defined = get_keyval(group_conf, "atomsColValue", atoms_col_value, 0.0, mode); + 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); } @@ -277,87 +373,242 @@ int cvm::atom_group::parse(std::string const &conf, } // Catch any errors from all the initialization steps above - if (cvm::get_error()) return COLVARS_ERROR; + if (parse_error || cvm::get_error()) return COLVARS_ERROR; - for (std::vector::iterator a1 = this->begin(); - a1 != this->end(); ++a1) { - std::vector::iterator a2 = a1; - ++a2; - for ( ; a2 != this->end(); ++a2) { - if (a1->id == a2->id) { - if (cvm::debug()) - cvm::log("Discarding doubly counted atom with number "+ - cvm::to_str(a1->id+1)+".\n"); - a2 = this->erase(a2); - if (a2 == this->end()) - break; - } - } + if (b_scalable) { + index = (cvm::proxy)->init_atom_group(atoms_ids); } - if (get_keyval(group_conf, "dummyAtom", dummy_atom_pos, cvm::atom_pos(), mode)) { + // checks of doubly-counted atoms have been handled by add_atom() already + + if (get_keyval(group_conf, "dummyAtom", dummy_atom_pos, cvm::atom_pos())) { b_dummy = true; - this->total_mass = 1.0; - } else + // note: atoms_ids.size() is used here in lieu of atoms.size(), + // which can be empty for scalable groups + if (atoms_ids.size()) { + cvm::error("Error: cannot set up group \""+ + key+"\" as a dummy atom " + "and provide it with atom definitions.\n", INPUT_ERROR); + } + } else { b_dummy = false; - if (b_dummy && (this->size())) { - cvm::error("Error: cannot set up group \""+ - std::string(key)+"\" as a dummy atom " - "and provide it with atom definitions.\n", INPUT_ERROR); - } - -#if(! defined(COLVARS_STANDALONE)) - if ( (!b_dummy) && (!cvm::b_analysis) && (!(this->size())) ) { - cvm::error("Error: no atoms defined for atom group \""+ - std::string(key)+"\".\n"); - } -#endif - - if (!b_dummy) { - - // calculate total mass (TODO: this is the step that most needs deferred re-initialization) - this->total_mass = 0.0; - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - this->total_mass += ai->mass; + if (!(atoms_ids.size())) { + cvm::error("Error: no atoms defined for atom group \""+ + key+"\".\n", INPUT_ERROR); } // whether these atoms will ever receive forces or not bool enable_forces = true; // disableForces is deprecated - if (get_keyval(group_conf, "enableForces", enable_forces, true, mode)) { + if (get_keyval(group_conf, "enableForces", enable_forces, true)) { noforce = !enable_forces; } else { get_keyval(group_conf, "disableForces", noforce, false, colvarparse::parse_silent); } } - // FITTING OPTIONS + parse_error |= parse_fitting_options(group_conf); - bool b_defined_center = get_keyval(group_conf, "centerReference", b_center, false, mode); - bool b_defined_rotate = get_keyval(group_conf, "rotateReference", b_rotate, false, mode); + // TODO move this to colvarparse object + check_keywords(group_conf, key.c_str()); + if (cvm::get_error()) { + cvm::error("Error setting up atom group \""+key+"\"."); + return COLVARS_ERROR; + } + + // Calculate all required properties (such as total mass) + setup(); + + if (cvm::debug()) + cvm::log("Done initializing atom group \""+key+"\".\n"); + + cvm::log("Atom group \""+key+"\" defined, "+ + cvm::to_str(atoms_ids.size())+" atoms initialized: total mass = "+ + cvm::to_str(total_mass)+", total charge = "+ + cvm::to_str(total_charge)+".\n"); + + cvm::decrease_depth(); + + return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); +} + + +int cvm::atom_group::add_atom_numbers(std::string const &numbers_conf) +{ + std::vector atom_indexes; + + if (numbers_conf.size()) { + std::istringstream is(numbers_conf); + int ia; + while (is >> ia) { + atom_indexes.push_back(ia); + } + } + + if (atom_indexes.size()) { + atoms_ids.reserve(atoms_ids.size()+atom_indexes.size()); + + if (b_scalable) { + for (size_t i = 0; i < atom_indexes.size(); i++) { + add_atom_id((cvm::proxy)->check_atom_id(atom_indexes[i])); + } + } else { + // if we are handling the group on rank 0, better allocate the vector in one shot + atoms.reserve(atoms.size()+atom_indexes.size()); + for (size_t i = 0; i < atom_indexes.size(); i++) { + add_atom(cvm::atom(atom_indexes[i])); + } + } + + if (cvm::get_error()) return COLVARS_ERROR; + } else { + cvm::error("Error: no numbers provided for \"" + "atomNumbers\".\n", INPUT_ERROR); + return COLVARS_ERROR; + } + + return COLVARS_OK; +} + + +int cvm::atom_group::add_index_group(std::string const &index_group_name) +{ + std::list::iterator names_i = cvm::index_group_names.begin(); + std::list >::iterator index_groups_i = cvm::index_groups.begin(); + for ( ; names_i != cvm::index_group_names.end() ; ++names_i, ++index_groups_i) { + if (*names_i == index_group_name) + break; + } + + if (names_i == cvm::index_group_names.end()) { + cvm::error("Error: could not find index group "+ + index_group_name+" among those provided by the index file.\n", + INPUT_ERROR); + return COLVARS_ERROR; + } + + atoms_ids.reserve(atoms_ids.size()+index_groups_i->size()); + + if (b_scalable) { + for (size_t i = 0; i < index_groups_i->size(); i++) { + add_atom_id((cvm::proxy)->check_atom_id((*index_groups_i)[i])); + } + } else { + atoms.reserve(atoms.size()+index_groups_i->size()); + for (size_t i = 0; i < index_groups_i->size(); i++) { + add_atom(cvm::atom((*index_groups_i)[i])); + } + } + + if (cvm::get_error()) + return COLVARS_ERROR; + + return COLVARS_OK; +} + + +int cvm::atom_group::add_atom_numbers_range(std::string const &range_conf) +{ + if (range_conf.size()) { + std::istringstream is(range_conf); + int initial, final; + char dash; + if ( (is >> initial) && (initial > 0) && + (is >> dash) && (dash == '-') && + (is >> final) && (final > 0) ) { + + atoms_ids.reserve(atoms_ids.size() + (final - initial + 1)); + + if (b_scalable) { + for (int anum = initial; anum <= final; anum++) { + add_atom_id((cvm::proxy)->check_atom_id(anum)); + } + } else { + atoms.reserve(atoms.size() + (final - initial + 1)); + for (int anum = initial; anum <= final; anum++) { + add_atom(cvm::atom(anum)); + } + } + + } + if (cvm::get_error()) return COLVARS_ERROR; + } else { + cvm::error("Error: no valid definition for \"atomNumbersRange\", \""+ + range_conf+"\".\n", INPUT_ERROR); + return COLVARS_ERROR; + } + + return COLVARS_OK; +} + + +int cvm::atom_group::add_atom_name_residue_range(std::string const &psf_segid, + std::string const &range_conf) +{ + if (range_conf.size()) { + std::istringstream is(range_conf); + std::string atom_name; + int initial, final; + char dash; + if ( (is >> atom_name) && (atom_name.size()) && + (is >> initial) && (initial > 0) && + (is >> dash) && (dash == '-') && + (is >> final) && (final > 0) ) { + + atoms_ids.reserve(atoms_ids.size() + (final - initial + 1)); + + if (b_scalable) { + for (int resid = initial; resid <= final; resid++) { + add_atom_id((cvm::proxy)->check_atom_id(resid, atom_name, psf_segid)); + } + } else { + atoms.reserve(atoms.size() + (final - initial + 1)); + for (int resid = initial; resid <= final; resid++) { + add_atom(cvm::atom(resid, atom_name, psf_segid)); + } + } + + if (cvm::get_error()) return COLVARS_ERROR; + } else { + cvm::error("Error: cannot parse definition for \"" + "atomNameResidueRange\", \""+ + range_conf+"\".\n"); + return COLVARS_ERROR; + } + } else { + cvm::error("Error: atomNameResidueRange with empty definition.\n"); + return COLVARS_ERROR; + } + return COLVARS_OK; +} + + +int cvm::atom_group::parse_fitting_options(std::string const &group_conf) +{ + bool b_defined_center = get_keyval(group_conf, "centerReference", b_center, false); + bool b_defined_rotate = get_keyval(group_conf, "rotateReference", b_rotate, false); // is the user setting explicit options? b_user_defined_fit = b_defined_center || b_defined_rotate; - get_keyval(group_conf, "enableFitGradients", b_fit_gradients, true, mode); + get_keyval(group_conf, "enableFitGradients", b_fit_gradients, true); if (b_center || b_rotate) { if (b_dummy) cvm::error("Error: centerReference or rotateReference " - "cannot be defined for a dummy atom.\n"); + "cannot be defined for a dummy atom.\n"); if (key_lookup(group_conf, "refPositionsGroup")) { // instead of this group, define another group to compute the fit if (ref_pos_group) { cvm::error("Error: the atom group \""+ - std::string(key)+"\" has already a reference group " - "for the rototranslational fit, which was communicated by the " - "colvar component. You should not use refPositionsGroup " - "in this case.\n"); + key+"\" has already a reference group " + "for the rototranslational fit, which was communicated by the " + "colvar component. You should not use refPositionsGroup " + "in this case.\n"); } - cvm::log("Within atom group \""+std::string(key)+"\":\n"); + cvm::log("Within atom group \""+key+"\":\n"); ref_pos_group = new atom_group(group_conf, "refPositionsGroup"); // regardless of the configuration, fit gradients must be calculated by refPositionsGroup @@ -367,25 +618,25 @@ int cvm::atom_group::parse(std::string const &conf, atom_group *group_for_fit = ref_pos_group ? ref_pos_group : this; - get_keyval(group_conf, "refPositions", ref_pos, ref_pos, mode); + get_keyval(group_conf, "refPositions", ref_pos, ref_pos); std::string ref_pos_file; - if (get_keyval(group_conf, "refPositionsFile", ref_pos_file, std::string(""), mode)) { + if (get_keyval(group_conf, "refPositionsFile", ref_pos_file, std::string(""))) { if (ref_pos.size()) { cvm::error("Error: cannot specify \"refPositionsFile\" and " - "\"refPositions\" at the same time.\n"); + "\"refPositions\" at the same time.\n"); } std::string ref_pos_col; double ref_pos_col_value=0.0; - if (get_keyval(group_conf, "refPositionsCol", ref_pos_col, std::string(""), mode)) { + if (get_keyval(group_conf, "refPositionsCol", ref_pos_col, std::string(""))) { // if provided, use PDB column to select coordinates - bool found = get_keyval(group_conf, "refPositionsColValue", ref_pos_col_value, 0.0, mode); + 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"); + "if provided, must be non-zero.\n", INPUT_ERROR); } else { // if not, rely on existing atom indices for the group group_for_fit->create_sorted_ids(); @@ -393,7 +644,7 @@ int cvm::atom_group::parse(std::string const &conf, } cvm::load_coords(ref_pos_file.c_str(), ref_pos, group_for_fit->sorted_ids, - ref_pos_col, ref_pos_col_value); + ref_pos_col, ref_pos_col_value); } if (ref_pos.size()) { @@ -401,21 +652,20 @@ int cvm::atom_group::parse(std::string const &conf, if (b_rotate) { if (ref_pos.size() != group_for_fit->size()) cvm::error("Error: the number of reference positions provided("+ - cvm::to_str(ref_pos.size())+ - ") does not match the number of atoms within \""+ - std::string(key)+ - "\" ("+cvm::to_str(group_for_fit->size())+ - "): to perform a rotational fit, "+ - "these numbers should be equal.\n", INPUT_ERROR); + cvm::to_str(ref_pos.size())+ + ") does not match the number of atoms within \""+ + key+ + "\" ("+cvm::to_str(group_for_fit->size())+ + "): to perform a rotational fit, "+ + "these numbers should be equal.\n", INPUT_ERROR); } // save the center of geometry of ref_pos and subtract it center_ref_pos(); } else { -#if(! defined(COLVARS_STANDALONE)) - cvm::error("Error: no reference positions provided.\n"); -#endif + cvm::error("Error: no reference positions provided.\n", INPUT_ERROR); + return COLVARS_ERROR; } if (b_fit_gradients) { @@ -424,35 +674,18 @@ int cvm::atom_group::parse(std::string const &conf, } if (b_rotate && !noforce) { - cvm::log("Warning: atom group \""+std::string(key)+ - "\" will be aligned to a fixed orientation given by the reference positions provided. " - "If the internal structure of the group changes too much (i.e. its RMSD is comparable " - "to its radius of gyration), the optimal rotation and its gradients may become discontinuous. " - "If that happens, use refPositionsGroup (or a different definition for it if already defined) " - "to align the coordinates.\n"); + cvm::log("Warning: atom group \""+key+ + "\" will be aligned to a fixed orientation given by the reference positions provided. " + "If the internal structure of the group changes too much (i.e. its RMSD is comparable " + "to its radius of gyration), the optimal rotation and its gradients may become discontinuous. " + "If that happens, use refPositionsGroup (or a different definition for it if already defined) " + "to align the coordinates.\n"); // initialize rot member data rot.request_group1_gradients(this->size()); } - } - if (cvm::debug()) - cvm::log("Done initializing atom group with name \""+ - std::string(key)+"\".\n"); - - this->check_keywords(group_conf, key); - if (cvm::get_error()) { - cvm::error("Error setting up atom group \""+std::string(key)+"\"."); - return COLVARS_ERROR; - } - - cvm::log("Atom group \""+std::string(key)+"\" defined, "+ - cvm::to_str(this->size())+" atoms initialized: total mass = "+ - cvm::to_str(this->total_mass)+".\n"); - - cvm::decrease_depth(); - - return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); + return COLVARS_OK; } @@ -463,17 +696,16 @@ int cvm::atom_group::create_sorted_ids(void) return COLVARS_OK; std::list temp_id_list; - cvm::atom_iter ai; - for (ai = this->begin(); ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { temp_id_list.push_back(ai->id); } temp_id_list.sort(); temp_id_list.unique(); if (temp_id_list.size() != this->size()) { cvm::error("Error: duplicate atom IDs in atom group? (found " + - cvm::to_str(temp_id_list.size()) + - " unique atom IDs instead of" + - cvm::to_str(this->size()) + ").\n"); + cvm::to_str(temp_id_list.size()) + + " unique atom IDs instead of" + + cvm::to_str(this->size()) + ").\n"); return COLVARS_ERROR; } sorted_ids = std::vector (temp_id_list.size()); @@ -486,13 +718,9 @@ int cvm::atom_group::create_sorted_ids(void) return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); } + void cvm::atom_group::center_ref_pos() { - // save the center of geometry of ref_pos and then subtract it from - // them; in this way it will be possible to use ref_pos also for - // the rotational fit - // This is called either by atom_group::parse or by CVCs that set - // reference positions (eg. RMSD, eigenvector) ref_pos_cog = cvm::atom_pos(0.0, 0.0, 0.0); std::vector::iterator pi; for (pi = ref_pos.begin(); pi != ref_pos.end(); ++pi) { @@ -504,12 +732,12 @@ void cvm::atom_group::center_ref_pos() } } + void cvm::atom_group::read_positions() { if (b_dummy) return; - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->read_position(); } @@ -517,6 +745,26 @@ void cvm::atom_group::read_positions() ref_pos_group->read_positions(); } + +int cvm::atom_group::calc_required_properties() +{ + if (b_dummy) return COLVARS_OK; + + // TODO check if the com is needed? + calc_center_of_mass(); + if (!b_scalable) { + // TODO check if calc_center_of_geometry() is needed without a fit? + calc_center_of_geometry(); + if (b_center || b_rotate) { + calc_apply_roto_translation(); + } + } + + // TODO calculate elements of scalable cvc's here before reduction + + return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); +} + void cvm::atom_group::calc_apply_roto_translation() { atom_group *fit_group = ref_pos_group ? ref_pos_group : this; @@ -524,10 +772,7 @@ void cvm::atom_group::calc_apply_roto_translation() if (b_center) { // center on the origin first cvm::atom_pos const cog = fit_group->center_of_geometry(); - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - ai->pos -= cog; - } + apply_translation(-1.0 * cog); } if (b_rotate) { @@ -535,38 +780,53 @@ void cvm::atom_group::calc_apply_roto_translation() // true, around the origin otherwise) rot.calc_optimal_rotation(fit_group->positions(), ref_pos); - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->pos = rot.rotate(ai->pos); } } if (b_center) { // align with the center of geometry of ref_pos - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - ai->pos += ref_pos_cog; - } + apply_translation(ref_pos_cog); + // update the center of geometry for external use + cog = ref_pos_cog; } + + // recalculate the center of mass + calc_center_of_mass(); } void cvm::atom_group::apply_translation(cvm::rvector const &t) { - if (b_dummy) return; + if (b_dummy) { + cvm::error("Error: cannot translate the coordinates of a dummy atom group.\n", INPUT_ERROR); + return; + } - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + if (b_scalable) { + cvm::error("Error: cannot translate the coordinates of a scalable atom group.\n", INPUT_ERROR); + return; + } + + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->pos += t; } } void cvm::atom_group::apply_rotation(cvm::rotation const &rot) { - if (b_dummy) return; + if (b_dummy) { + cvm::error("Error: cannot rotate the coordinates of a dummy atom group.\n", INPUT_ERROR); + return; + } - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - ai->pos = rot.rotate(ai->pos); + if (b_scalable) { + cvm::error("Error: cannot rotate the coordinates of a scalable atom group.\n", INPUT_ERROR); + return; + } + + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { + ai->pos = rot.rotate(ai->pos - center_of_geometry()) + center_of_geometry(); } } @@ -577,16 +837,14 @@ void cvm::atom_group::read_velocities() if (b_rotate) { - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->read_velocity(); ai->vel = rot.rotate(ai->vel); } } else { - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->read_velocity(); } } @@ -598,47 +856,63 @@ void cvm::atom_group::read_system_forces() if (b_rotate) { - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->read_system_force(); ai->system_force = rot.rotate(ai->system_force); } } else { - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->read_system_force(); } } } -cvm::atom_pos cvm::atom_group::center_of_geometry() const -{ - if (b_dummy) - return dummy_atom_pos; - cvm::atom_pos cog(0.0, 0.0, 0.0); - for (cvm::atom_const_iter ai = this->begin(); - ai != this->end(); ai++) { - cog += ai->pos; +int cvm::atom_group::calc_center_of_geometry() +{ + if (b_dummy) { + cog = dummy_atom_pos; + } else { + cog.reset(); + for (cvm::atom_const_iter ai = this->begin(); ai != this->end(); ai++) { + cog += ai->pos; + } + cog /= this->size(); } - cog /= this->size(); - return cog; + return COLVARS_OK; } -cvm::atom_pos cvm::atom_group::center_of_mass() const -{ - if (b_dummy) - return dummy_atom_pos; - cvm::atom_pos com(0.0, 0.0, 0.0); - for (cvm::atom_const_iter ai = this->begin(); - ai != this->end(); ai++) { - com += ai->mass * ai->pos; +int cvm::atom_group::calc_center_of_mass() +{ + if (b_dummy) { + com = dummy_atom_pos; + } else if (b_scalable) { + com = (cvm::proxy)->get_atom_group_com(index); + } else { + com.reset(); + for (cvm::atom_const_iter ai = this->begin(); ai != this->end(); ai++) { + com += ai->mass * ai->pos; + } + com /= total_mass; } - com /= this->total_mass; - return com; + return COLVARS_OK; +} + + +int cvm::atom_group::calc_dipole(cvm::atom_pos const &com) +{ + if (b_dummy) { + cvm::error("Error: trying to compute the dipole of an empty group.\n", INPUT_ERROR); + return COLVARS_ERROR; + } + dip.reset(); + for (cvm::atom_const_iter ai = this->begin(); ai != this->end(); ai++) { + dip += ai->charge * (ai->pos - com); + } + return COLVARS_OK; } @@ -646,9 +920,13 @@ void cvm::atom_group::set_weighted_gradient(cvm::rvector const &grad) { if (b_dummy) return; - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - ai->grad = (ai->mass/this->total_mass) * grad; + if (b_scalable) { + scalar_com_gradient = grad; + return; + } + + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { + ai->grad = (ai->mass/total_mass) * grad; } } @@ -670,8 +948,8 @@ void cvm::atom_group::calc_fit_gradients() for (size_t i = 0; i < this->size(); i++) { // need to bring the gradients in original frame first cvm::rvector const atom_grad = b_rotate ? - (rot.inverse()).rotate((*this)[i].grad) : - (*this)[i].grad; + (rot.inverse()).rotate(atoms[i].grad) : + atoms[i].grad; for (size_t j = 0; j < group_for_fit->size(); j++) { group_for_fit->fit_gradients[j] += (-1.0)/(cvm::real(group_for_fit->size())) * @@ -684,16 +962,16 @@ void cvm::atom_group::calc_fit_gradients() // add the rotation matrix contribution to the gradients cvm::rotation const rot_inv = rot.inverse(); - cvm::atom_pos const cog = this->center_of_geometry(); + cvm::atom_pos const cog = center_of_geometry(); for (size_t i = 0; i < this->size(); i++) { - cvm::atom_pos const pos_orig = rot_inv.rotate((b_center ? ((*this)[i].pos - cog) : ((*this)[i].pos))); + cvm::atom_pos const pos_orig = rot_inv.rotate((b_center ? (atoms[i].pos - cog) : (atoms[i].pos))); for (size_t j = 0; j < group_for_fit->size(); j++) { // calculate \partial(R(q) \vec{x}_i)/\partial q) \cdot \partial\xi/\partial\vec{x}_i cvm::quaternion const dxdq = - rot.q.position_derivative_inner(pos_orig, (*this)[i].grad); + rot.q.position_derivative_inner(pos_orig, atoms[i].grad); // multiply by \cdot {\partial q}/\partial\vec{x}_j and add it to the fit gradients for (size_t iq = 0; iq < 4; iq++) { group_for_fit->fit_gradients[j] += dxdq[iq] * rot.dQ0_1[j][iq]; @@ -710,7 +988,12 @@ std::vector cvm::atom_group::positions() const { if (b_dummy) { cvm::error("Error: positions are not available " - "from a dummy atom group.\n"); + "from a dummy atom group.\n", INPUT_ERROR); + } + + if (b_scalable) { + cvm::error("Error: atomic positions are not available " + "from a scalable atom group.\n", INPUT_ERROR); } std::vector x(this->size(), 0.0); @@ -726,7 +1009,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"); + "from a dummy atom group.\n", INPUT_ERROR); + } + + if (b_scalable) { + cvm::error("Error: atomic positions are not available " + "from a scalable atom group.\n", INPUT_ERROR); } std::vector x(this->size(), 0.0); @@ -742,7 +1030,12 @@ std::vector cvm::atom_group::velocities() const { if (b_dummy) { cvm::error("Error: velocities are not available " - "from a dummy atom group.\n"); + "from a dummy atom group.\n", INPUT_ERROR); + } + + if (b_scalable) { + cvm::error("Error: atomic velocities are not available " + "from a scalable atom group.\n", INPUT_ERROR); } std::vector v(this->size(), 0.0); @@ -758,7 +1051,12 @@ std::vector cvm::atom_group::system_forces() const { if (b_dummy) { cvm::error("Error: system forces are not available " - "from a dummy atom group.\n"); + "from a dummy atom group.\n", INPUT_ERROR); + } + + if (b_scalable) { + cvm::error("Error: atomic system forces are not available " + "from a scalable atom group.\n", INPUT_ERROR); } std::vector f(this->size(), 0.0); @@ -773,8 +1071,12 @@ std::vector cvm::atom_group::system_forces() const cvm::rvector cvm::atom_group::system_force() const { if (b_dummy) { - cvm::error("Error: system forces are not available " - "from a dummy atom group.\n"); + cvm::error("Error: total system forces are not available " + "from a dummy atom group.\n", INPUT_ERROR); + } + + if (b_scalable) { + return (cvm::proxy)->get_atom_group_system_force(index); } cvm::rvector f(0.0); @@ -787,12 +1089,21 @@ cvm::rvector cvm::atom_group::system_force() const void cvm::atom_group::apply_colvar_force(cvm::real const &force) { + if (cvm::debug()) { + log("Communicating a colvar force from atom group to the MD engine.\n"); + } + if (b_dummy) return; if (noforce) { cvm::error("Error: sending a force to a group that has " - "\"enableForces\" set to off.\n"); + "\"enableForces\" set to off.\n"); + return; + } + + if (b_scalable) { + (cvm::proxy)->apply_atom_group_force(index, force * scalar_com_gradient); return; } @@ -800,15 +1111,13 @@ void cvm::atom_group::apply_colvar_force(cvm::real const &force) // rotate forces back to the original frame cvm::rotation const rot_inv = rot.inverse(); - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->apply_force(rot_inv.rotate(force * ai->grad)); } } else { - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { ai->apply_force(force * ai->grad); } } @@ -841,23 +1150,25 @@ void cvm::atom_group::apply_force(cvm::rvector const &force) if (noforce) { cvm::error("Error: sending a force to a group that has " - "\"disableForces\" defined.\n"); + "\"disableForces\" defined.\n"); return; } + if (b_scalable) { + (cvm::proxy)->apply_atom_group_force(index, force); + } + if (b_rotate) { cvm::rotation const rot_inv = rot.inverse(); - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - ai->apply_force(rot_inv.rotate((ai->mass/this->total_mass) * force)); + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { + ai->apply_force(rot_inv.rotate((ai->mass/total_mass) * force)); } } else { - for (cvm::atom_iter ai = this->begin(); - ai != this->end(); ai++) { - ai->apply_force((ai->mass/this->total_mass) * force); + for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { + ai->apply_force((ai->mass/total_mass) * force); } } } @@ -870,11 +1181,11 @@ void cvm::atom_group::apply_forces(std::vector const &forces) if (noforce) cvm::error("Error: sending a force to a group that has " - "\"disableForces\" defined.\n"); + "\"disableForces\" defined.\n"); if (forces.size() != this->size()) { cvm::error("Error: trying to apply an array of forces to an atom " - "group which does not have the same length.\n"); + "group which does not have the same length.\n"); } if (b_rotate) { diff --git a/lib/colvars/colvaratoms.h b/lib/colvars/colvaratoms.h index ef3bbcb39a..746d4c2918 100644 --- a/lib/colvars/colvaratoms.h +++ b/lib/colvars/colvaratoms.h @@ -6,43 +6,44 @@ #include "colvarmodule.h" #include "colvarparse.h" + /// \brief Stores numeric id, mass and all mutable data for an atom, /// mostly used by a \link cvc \endlink /// -/// This class may be used (although not necessarily) to keep atomic -/// data (id, mass, position and collective variable derivatives) -/// altogether. There may be multiple instances with identical +/// This class may be used to keep atomic data such as id, mass, +/// position and collective variable derivatives) altogether. +/// There may be multiple instances with identical /// numeric id, all acting independently: forces communicated through /// these instances will be summed together. -/// -/// Read/write operations depend on the underlying code: hence, some -/// member functions are defined in colvarproxy_xxx.h. + class colvarmodule::atom { protected: - /// \brief Index in the list of atoms involved by the colvars (\b - /// NOT in the global topology!) - int index; + /// Index in the colvarproxy arrays (\b NOT in the global topology!) + int index; public: - /// Internal identifier (zero-based) - int id; + /// Identifier for the MD program (0-based) + int id; /// Mass - cvm::real mass; + cvm::real mass; + + /// Charge + cvm::real charge; /// \brief Current position (copied from the program, can be - /// manipulated) + /// modified if necessary) cvm::atom_pos pos; /// \brief Current velocity (copied from the program, can be - /// manipulated) + /// modified if necessary) cvm::rvector vel; /// \brief System force at the previous step (copied from the - /// program, can be manipulated) + /// program, can be modified if necessary) cvm::rvector system_force; /// \brief Gradient of a scalar collective variable with respect @@ -57,13 +58,13 @@ public: /// implementation cvm::rvector grad; - /// \brief Default constructor, setting index and id to invalid numbers - atom() : index(-1), id(-1) { reset_data(); } + /// \brief Default constructor (sets index and id both to -1) + atom(); /// \brief Initialize an atom for collective variable calculation /// and get its internal identifier \param atom_number Atom index in /// the system topology (starting from 1) - atom(int const &atom_number); + atom(int atom_number); /// \brief Initialize an atom for collective variable calculation /// and get its internal identifier \param residue Residue number @@ -71,8 +72,8 @@ public: /// segment_id For PSF topologies, the segment identifier; for other /// type of topologies, may not be required atom(cvm::residue_id const &residue, - std::string const &atom_name, - std::string const &segment_id = std::string("")); + std::string const &atom_name, + std::string const &segment_id); /// Copy constructor atom(atom const &a); @@ -80,57 +81,176 @@ public: /// Destructor ~atom(); - /// Set non-constant data (everything except id and mass) to zero - inline void reset_data() { - pos = atom_pos(0.0); - vel = grad = system_force = rvector(0.0); + /// Set mutable data (everything except id and mass) to zero; update mass + inline void reset_data() + { + pos = cvm::atom_pos(0.0); + vel = grad = system_force = cvm::rvector(0.0); + } + + /// Get the latest value of the mass + inline void update_mass() + { + mass = (cvm::proxy)->get_atom_mass(index); + } + + /// Get the latest value of the charge + inline void update_charge() + { + charge = (cvm::proxy)->get_atom_charge(index); } /// Get the current position - void read_position(); + inline void read_position() + { + pos = (cvm::proxy)->get_atom_position(index); + } /// Get the current velocity - void read_velocity(); + inline void read_velocity() + { + vel = (cvm::proxy)->get_atom_velocity(index); + } /// Get the system force - void read_system_force(); + inline void read_system_force() + { + system_force = (cvm::proxy)->get_atom_system_force(index); + } /// \brief Apply a force to the atom /// - /// The force will be used later by the MD integrator, the - /// collective variables module does not integrate equations of - /// motion. Multiple calls to this function by either the same + /// Note: the force is not applied instantly, but will be used later + /// by the MD integrator (the colvars module does not integrate + /// equations of motion. + /// + /// Multiple calls to this function by either the same /// \link atom \endlink object or different objects with identical - /// \link id \endlink, will all add to the existing MD force. - void apply_force(cvm::rvector const &new_force); + /// \link id \endlink will all be added together. + inline void apply_force(cvm::rvector const &new_force) const + { + (cvm::proxy)->apply_atom_force(index, new_force); + } }; - /// \brief Group of \link atom \endlink objects, mostly used by a -/// \link cvc \endlink -/// -/// This class inherits from \link colvarparse \endlink and from -/// std::vector, and hence all functions and -/// operators (including the bracket operator, group[i]) can be used -/// on an \link atom_group \endlink object. It can be initialized as -/// a vector, or by parsing a keyword in the configuration. +/// \link cvc \endlink object to gather all atomic data class colvarmodule::atom_group - : public std::vector, - public colvarparse + : public colvarparse { public: - // Note: all members here are kept public, to allow any - // object accessing and manipulating them + /// \brief Initialize the group by looking up its configuration + /// string in conf and parsing it; this is actually done by parse(), + /// which is a member function so that a group can be initialized + /// also after construction + atom_group(std::string const &conf, + char const *key); + + /// \brief Keyword used to define the group + // TODO Make this field part of the data structures that link a group to a CVC + std::string key; + + /// \brief Set default values for common flags + int init(); + + /// \brief Update data required to calculate cvc's + int setup(); + + /// \brief Initialize the group by looking up its configuration + /// string in conf and parsing it + int parse(std::string const &conf); + + int add_atom_numbers(std::string const &numbers_conf); + int add_index_group(std::string const &index_group_name); + int add_atom_numbers_range(std::string const &range_conf); + int add_atom_name_residue_range(std::string const &psf_segid, + std::string const &range_conf); + int parse_fitting_options(std::string const &group_conf); + + /// \brief Initialize the group after a (temporary) vector of atoms + atom_group(std::vector const &atoms_in); + + /// \brief Add an atom object to this group + int add_atom(cvm::atom const &a); + + /// \brief Add an atom ID to this group (the actual atomicdata will be not be handled by the group) + int add_atom_id(int aid); + + /// \brief Remove an atom object from this group + int remove_atom(cvm::atom_iter ai); + + /// \brief Re-initialize the total mass of a group. + /// This is needed in case the hosting MD code has an option to + /// change atom masses after their initialization. + void reset_mass(std::string &name, int i, int j); + + /// \brief Whether or not the properties of this group will be computed in parallel + bool b_scalable; + + /// \brief Default constructor + atom_group(); + + /// \brief Destructor + ~atom_group(); + +protected: + + /// \brief Array of atom objects + std::vector atoms; + + /// \brief Array of atom identifiers for the MD program (0-based) + std::vector atoms_ids; + + /// \brief Dummy atom position + cvm::atom_pos dummy_atom_pos; + + /// \brief Index in the colvarproxy arrays (if the group is scalable) + int index; + +public: + + inline cvm::atom & operator [] (size_t const i) + { + return atoms[i]; + } + + inline cvm::atom const & operator [] (size_t const i) const + { + return atoms[i]; + } + + inline cvm::atom_iter begin() + { + return atoms.begin(); + } + + inline cvm::atom_const_iter begin() const + { + return atoms.begin(); + } + + inline cvm::atom_iter end() + { + return atoms.end(); + } + + inline cvm::atom_const_iter end() const + { + return atoms.end(); + } + + inline size_t size() const + { + return atoms.size(); + } /// \brief If this option is on, this group merely acts as a wrapper /// for a fixed position; any calls to atoms within or to /// functions that return disaggregated data will fail bool b_dummy; - /// \brief dummy atom position - cvm::atom_pos dummy_atom_pos; /// Sorted list of zero-based (internal) atom ids /// (populated on-demand by create_sorted_ids) @@ -177,56 +297,35 @@ public: /// Total mass of the atom group cvm::real total_mass; + void update_total_mass(); + + /// Total charge of the atom group + cvm::real total_charge; + void update_total_charge(); /// \brief Don't apply any force on this group (use its coordinates /// only to calculate a colvar) bool noforce; - - /// \brief Initialize the group by looking up its configuration - /// string in conf and parsing it; this is actually done by parse(), - /// which is a member function so that a group can be initialized - /// also after construction - atom_group(std::string const &conf, - char const *key); - - /// \brief Initialize the group by looking up its configuration - /// string in conf and parsing it - int parse(std::string const &conf, - char const *key); - - /// \brief Initialize the group after a temporary vector of atoms - atom_group(std::vector const &atoms); - - /// \brief Add an atom to this group - void add_atom(cvm::atom const &a); - - /// \brief Re-initialize the total mass of a group. - /// This is needed in case the hosting MD code has an option to - /// change atom masses after their initialization. - void reset_mass(std::string &name, int i, int j); - - /// \brief Default constructor - atom_group(); - - /// \brief Destructor - ~atom_group(); - - /// \brief Get the current positions; if b_center or b_rotate are - /// true, calc_apply_roto_translation() will be called too + /// \brief Get the current positions void read_positions(); /// \brief (Re)calculate the optimal roto-translation void calc_apply_roto_translation(); - /// \brief Save center of geometry fo ref positions, - /// then subtract it + /// \brief Save aside the center of geometry of the reference positions, + /// then subtract it from them + /// + /// In this way it will be possible to use ref_pos also for the + /// rotational fit. + /// This is called either by atom_group::parse or by CVCs that assign + /// reference positions (eg. RMSD, eigenvector). void center_ref_pos(); /// \brief Move all positions void apply_translation(cvm::rvector const &t); - /// \brief Rotate all positions + /// \brief Rotate all positions around the center of geometry void apply_rotation(cvm::rotation const &q); @@ -243,36 +342,68 @@ public: /// Call reset_data() for each atom inline void reset_atoms_data() { - for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) + for (cvm::atom_iter ai = atoms.begin(); ai != atoms.end(); ai++) ai->reset_data(); if (ref_pos_group) ref_pos_group->reset_atoms_data(); } + /// \brief Recompute all mutable quantities that are required to compute CVCs + int calc_required_properties(); + /// \brief Return a copy of the current atom positions std::vector positions() const; + /// \brief Calculate the center of geometry of the atomic positions, assuming + /// that they are already pbc-wrapped + int calc_center_of_geometry(); +private: + /// \brief Center of geometry + cvm::atom_pos cog; +public: + /// \brief Return the center of geometry of the atomic positions + inline cvm::atom_pos center_of_geometry() const + { + return cog; + } + + /// \brief Calculate the center of mass of the atomic positions, assuming that + /// they are already pbc-wrapped + int calc_center_of_mass(); +private: + /// \brief Center of mass + cvm::atom_pos com; + /// \brief The derivative of a scalar variable with respect to the COM + // TODO for scalable calculations of more complex variables (e.g. rotation), + // use a colvarvalue of vectors to hold the entire derivative + cvm::rvector scalar_com_gradient; +public: + /// \brief Return the center of mass of the atomic positions + inline cvm::atom_pos center_of_mass() const + { + return com; + } + /// \brief Return a copy of the current atom positions, shifted by a constant vector std::vector positions_shifted(cvm::rvector const &shift) const; - /// \brief Return the center of geometry of the positions, assuming - /// that coordinates are already pbc-wrapped - cvm::atom_pos center_of_geometry() const; - - /// \brief Return the center of mass of the positions, assuming that - /// coordinates are already pbc-wrapped - cvm::atom_pos center_of_mass() const; - - /// \brief Atom positions at the previous step - std::vector old_pos; - - /// \brief Return a copy of the current atom velocities std::vector velocities() const; + ///\brief Calculate the dipole of the atom group around the specified center + int calc_dipole(cvm::atom_pos const &com); +private: + cvm::rvector dip; +public: + ///\brief Return the (previously calculated) dipole of the atom group + inline cvm::rvector dipole() const + { + return dip; + } /// \brief Return a copy of the system forces std::vector system_forces() const; + /// \brief Return a copy of the aggregated total force on the group cvm::rvector system_force() const; diff --git a/lib/colvars/colvarcomp.cpp b/lib/colvars/colvarcomp.cpp index c05ab3f98b..88e44ddd86 100644 --- a/lib/colvars/colvarcomp.cpp +++ b/lib/colvars/colvarcomp.cpp @@ -46,12 +46,14 @@ colvar::cvc::cvc(std::string const &conf) void colvar::cvc::parse_group(std::string const &conf, - char const *group_key, - cvm::atom_group &group, - bool optional) + char const *group_key, + cvm::atom_group &group, + bool optional) { if (key_lookup(conf, group_key)) { - if (group.parse(conf, group_key) != COLVARS_OK) { + // TODO turn on scalable flag for group objects in cvc init function + group.key = group_key; + if (group.parse(conf) != COLVARS_OK) { cvm::error("Error parsing definition for atom group \""+ std::string(group_key)+"\".\n"); return; @@ -130,10 +132,7 @@ void colvar::cvc::debug_gradients(cvm::atom_group &group) group.read_positions(); // change one coordinate group[ia].pos[id] += cvm::debug_gradients_step_size; - // (re)do the fit (if defined) - if (group.b_center || group.b_rotate) { - group.calc_apply_roto_translation(); - } + group.calc_required_properties(); calc_value(); cvm::real x_1 = x.real_value; if ((x.type() == colvarvalue::type_vector) && (x.size() == 1)) x_1 = x[0]; @@ -167,7 +166,7 @@ void colvar::cvc::debug_gradients(cvm::atom_group &group) // ref.read_positions(); // // change one coordinate // ref[ia].pos[id] += cvm::debug_gradients_step_size; -// group.calc_apply_roto_translation(); +// group.update(); // calc_value(); // cvm::real const x_1 = x.real_value; // cvm::log("refPosGroup atom "+cvm::to_str(ia)+", component "+cvm::to_str (id)+":\n"); diff --git a/lib/colvars/colvarcomp.h b/lib/colvars/colvarcomp.h index 0a66253b1d..2f0e4b43b7 100644 --- a/lib/colvars/colvarcomp.h +++ b/lib/colvars/colvarcomp.h @@ -670,6 +670,49 @@ public: colvarvalue const &x2) const; }; +/// \brief Colvar component: angle between the dipole of a molecule and an axis +/// formed by two groups of atoms(colvarvalue::type_scalar type, range [0:PI]) +class colvar::dipole_angle + : public colvar::cvc +{ +protected: + + /// Dipole atom group + cvm::atom_group group1; + /// Atom group + cvm::atom_group group2; + /// Atom group + cvm::atom_group group3; + + /// Inter site vectors + cvm::rvector r21, r23; + /// Inter site vector norms + cvm::real r21l, r23l; + /// Derivatives wrt group centers of mass + cvm::rvector dxdr1, dxdr3; + + /// Compute system force on first site only to avoid unwanted + /// coupling to other colvars (see e.g. Ciccotti et al., 2005) + /// (or to allow dummy atoms) + bool b_1site_force; +public: + + /// Initialize by parsing the configuration + dipole_angle (std::string const &conf); + /// \brief Initialize the three groups after three atoms + dipole_angle (cvm::atom const &a1, cvm::atom const &a2, cvm::atom const &a3); + dipole_angle(); + virtual inline ~dipole_angle() {} + 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; +}; /// \brief Colvar component: dihedral between the centers of mass of /// four groups (colvarvalue::type_scalar type, range [-PI:PI]) @@ -1190,6 +1233,7 @@ simple_scalar_dist_functions(distance) simple_scalar_dist_functions(distance_xy) simple_scalar_dist_functions(distance_inv) simple_scalar_dist_functions(angle) +simple_scalar_dist_functions(dipole_angle) simple_scalar_dist_functions(coordnum) simple_scalar_dist_functions(selfcoordnum) simple_scalar_dist_functions(h_bond) diff --git a/lib/colvars/colvarcomp_angles.cpp b/lib/colvars/colvarcomp_angles.cpp index 726b6befcc..35b98c0e46 100644 --- a/lib/colvars/colvarcomp_angles.cpp +++ b/lib/colvars/colvarcomp_angles.cpp @@ -29,9 +29,9 @@ colvar::angle::angle(std::string const &conf) colvar::angle::angle(cvm::atom const &a1, cvm::atom const &a2, cvm::atom const &a3) - : group1(std::vector (1, a1)), - group2(std::vector (1, a2)), - group3(std::vector (1, a3)) + : group1(std::vector(1, a1)), + group2(std::vector(1, a2)), + group3(std::vector(1, a3)) { function_type = "angle"; b_inverse_gradients = true; @@ -95,6 +95,12 @@ void colvar::angle::calc_gradients() group3[i].grad = (group3[i].mass/group3.total_mass) * (dxdr3); } + + if (b_debug_gradients) { + debug_gradients(group1); + debug_gradients(group2); + debug_gradients(group3); + } } void colvar::angle::calc_force_invgrads() @@ -143,6 +149,116 @@ void colvar::angle::apply_force(colvarvalue const &force) +colvar::dipole_angle::dipole_angle(std::string const &conf) + : cvc(conf) +{ + function_type = "dipole_angle"; + parse_group(conf, "group1", group1); + parse_group(conf, "group2", group2); + parse_group(conf, "group3", group3); + + atom_groups.push_back(&group1); + atom_groups.push_back(&group2); + atom_groups.push_back(&group3); + if (get_keyval(conf, "oneSiteSystemForce", b_1site_force, false)) { + cvm::log("Computing system force on group 1 only"); + } + x.type(colvarvalue::type_scalar); +} + + +colvar::dipole_angle::dipole_angle(cvm::atom const &a1, + cvm::atom const &a2, + cvm::atom const &a3) + : group1(std::vector(1, a1)), + group2(std::vector(1, a2)), + group3(std::vector(1, a3)) +{ + function_type = "dipole_angle"; + b_1site_force = false; + atom_groups.push_back(&group1); + atom_groups.push_back(&group2); + atom_groups.push_back(&group3); + + x.type(colvarvalue::type_scalar); +} + + +colvar::dipole_angle::dipole_angle() +{ + function_type = "dipole_angle"; + x.type(colvarvalue::type_scalar); +} + + +void colvar::dipole_angle::calc_value() +{ + cvm::atom_pos const g1_pos = group1.center_of_mass(); + cvm::atom_pos const g2_pos = group2.center_of_mass(); + cvm::atom_pos const g3_pos = group3.center_of_mass(); + + group1.calc_dipole(g1_pos); + + r21 = group1.dipole(); + r21l = r21.norm(); + r23 = cvm::position_distance(g2_pos, g3_pos); + r23l = r23.norm(); + + cvm::real const cos_theta = (r21*r23)/(r21l*r23l); + + x.real_value = (180.0/PI) * std::acos(cos_theta); +} + +//to be implemented +//void colvar::dipole_angle::calc_force_invgrads(){} +//void colvar::dipole_angle::calc_Jacobian_derivative(){} + +void colvar::dipole_angle::calc_gradients() +{ + cvm::real const cos_theta = (r21*r23)/(r21l*r23l); + cvm::real const dxdcos = -1.0 / std::sqrt(1.0 - cos_theta*cos_theta); + + dxdr1 = (180.0/PI) * dxdcos * + (1.0/r21l)* (r23/r23l + (-1.0) * cos_theta * r21/r21l ); + + dxdr3 = (180.0/PI) * dxdcos * + (1.0/r23l) * ( r21/r21l + (-1.0) * cos_theta * r23/r23l ); + + //this auxiliar variables are to avoid numerical errors inside "for" + double aux1 = group1.total_charge/group1.total_mass; + // double aux2 = group2.total_charge/group2.total_mass; + // double aux3 = group3.total_charge/group3.total_mass; + + size_t i; + for (i = 0; i < group1.size(); i++) { + group1[i].grad =(group1[i].charge + (-1)* group1[i].mass * aux1) * (dxdr1); + } + + for (i = 0; i < group2.size(); i++) { + group2[i].grad = (group2[i].mass/group2.total_mass)* dxdr3 * (-1.0); + } + + for (i = 0; i < group3.size(); i++) { + group3[i].grad =(group3[i].mass/group3.total_mass) * (dxdr3); + } +} + + +void colvar::dipole_angle::apply_force(colvarvalue const &force) +{ + if (!group1.noforce) + group1.apply_colvar_force(force.real_value); + + if (!group2.noforce) + group2.apply_colvar_force(force.real_value); + + if (!group3.noforce) + group3.apply_colvar_force(force.real_value); +} + + + + colvar::dihedral::dihedral(std::string const &conf) : cvc(conf) { @@ -171,10 +287,10 @@ colvar::dihedral::dihedral(cvm::atom const &a1, cvm::atom const &a2, cvm::atom const &a3, cvm::atom const &a4) - : group1(std::vector (1, a1)), - group2(std::vector (1, a2)), - group3(std::vector (1, a3)), - group4(std::vector (1, a4)) + : group1(std::vector(1, a1)), + group2(std::vector(1, a2)), + group3(std::vector(1, a3)), + group4(std::vector(1, a4)) { if (cvm::debug()) cvm::log("Initializing dihedral object from atom groups.\n"); diff --git a/lib/colvars/colvarcomp_rotations.cpp b/lib/colvars/colvarcomp_rotations.cpp index 4bc0dcff0e..7e0cf75879 100644 --- a/lib/colvars/colvarcomp_rotations.cpp +++ b/lib/colvars/colvarcomp_rotations.cpp @@ -88,9 +88,6 @@ colvar::orientation::orientation() void colvar::orientation::calc_value() { - // atoms.reset_atoms_data(); - // atoms.read_positions(); - atoms_cog = atoms.center_of_geometry(); rot.calc_optimal_rotation(ref_pos, atoms.positions_shifted(-1.0 * atoms_cog)); @@ -145,9 +142,6 @@ colvar::orientation_angle::orientation_angle() void colvar::orientation_angle::calc_value() { - // atoms.reset_atoms_data(); - // atoms.read_positions(); - atoms_cog = atoms.center_of_geometry(); rot.calc_optimal_rotation(ref_pos, atoms.positions_shifted(-1.0 * atoms_cog)); @@ -261,9 +255,6 @@ colvar::tilt::tilt() void colvar::tilt::calc_value() { - // atoms.reset_atoms_data(); - // atoms.read_positions(); - atoms_cog = atoms.center_of_geometry(); rot.calc_optimal_rotation(ref_pos, atoms.positions_shifted(-1.0 * atoms_cog)); @@ -331,9 +322,6 @@ colvar::spin_angle::spin_angle() void colvar::spin_angle::calc_value() { - // atoms.reset_atoms_data(); - // atoms.read_positions(); - atoms_cog = atoms.center_of_geometry(); rot.calc_optimal_rotation(ref_pos, atoms.positions_shifted(-1.0 * atoms_cog)); diff --git a/lib/colvars/colvargrid.cpp b/lib/colvars/colvargrid.cpp index e2e660b984..522d866409 100644 --- a/lib/colvars/colvargrid.cpp +++ b/lib/colvars/colvargrid.cpp @@ -127,7 +127,6 @@ void colvar_grid_gradient::write_1D_integral(std::ostream &os) integral = 0.0; int_vals.push_back( 0.0 ); - bin = 0.0; min = 0.0; // correction for periodic colvars, so that the PMF is periodic @@ -138,7 +137,7 @@ void colvar_grid_gradient::write_1D_integral(std::ostream &os) corr = 0.0; } - for (std::vector ix = new_index(); index_ok(ix); incr(ix), bin += 1.0 ) { + for (std::vector ix = new_index(); index_ok(ix); incr(ix)) { if (samples) { size_t const samples_here = samples->value(ix); diff --git a/lib/colvars/colvarmodule.cpp b/lib/colvars/colvarmodule.cpp index 2d62cace56..59ac775cb2 100644 --- a/lib/colvars/colvarmodule.cpp +++ b/lib/colvars/colvarmodule.cpp @@ -100,38 +100,26 @@ int colvarmodule::read_config_string(std::string const &config_str) int colvarmodule::parse_config(std::string &conf) { - int error_code = 0; + int error_code = COLVARS_OK; // parse global options - error_code |= parse_global_params(conf); - - if (error_code != COLVARS_OK || cvm::get_error()) { - set_error_bits(INPUT_ERROR); - return COLVARS_ERROR; + if (catch_input_errors(parse_global_params(conf))) { + return get_error(); } // parse the options for collective variables - error_code |= parse_colvars(conf); - - if (error_code != COLVARS_OK || cvm::get_error()) { - set_error_bits(INPUT_ERROR); - return COLVARS_ERROR; + if (catch_input_errors(parse_colvars(conf))) { + return get_error(); } // parse the options for biases - error_code |= parse_biases(conf); - - if (error_code != COLVARS_OK || cvm::get_error()) { - set_error_bits(INPUT_ERROR); - return COLVARS_ERROR; + if (catch_input_errors(parse_biases(conf))) { + return get_error(); } // done parsing known keywords, check that all keywords found were valid ones - error_code |= parse->check_keywords(conf, "colvarmodule"); - - if (error_code != COLVARS_OK || cvm::get_error()) { - set_error_bits(INPUT_ERROR); - return COLVARS_ERROR; + if (catch_input_errors(parse->check_keywords(conf, "colvarmodule"))) { + return get_error(); } cvm::log(cvm::line_marker); @@ -143,7 +131,7 @@ int colvarmodule::parse_config(std::string &conf) write_traj_label(cv_traj_os); } - return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); + return get_error(); } @@ -181,7 +169,7 @@ int colvarmodule::parse_global_params(std::string const &conf) colvarparse::parse_silent); if (use_scripted_forces && !proxy->force_script_defined) { - cvm::fatal_error("User script for scripted colvar forces not found."); + cvm::error("User script for scripted colvar forces not found.", INPUT_ERROR); } return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); @@ -315,6 +303,17 @@ int colvarmodule::parse_biases(std::string const &conf) } +int colvarmodule::catch_input_errors(int result) +{ + if (result != COLVARS_OK || get_error()) { + set_error_bits(result | INPUT_ERROR); + parse->reset(); + return get_error(); + } + return COLVARS_OK; +} + + colvarbias * colvarmodule::bias_by_name(std::string const &name) { for (std::vector::iterator bi = biases.begin(); bi != biases.end(); @@ -652,7 +651,6 @@ int colvarmodule::setup() (*cvi)->setup(); } return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); - } colvarmodule::~colvarmodule() @@ -664,6 +662,8 @@ colvarmodule::~colvarmodule() int colvarmodule::reset() { + parse->reset(); + cvm::log("Resetting the Collective Variables Module.\n"); // Iterate backwards because we are deleting the elements as we go for (std::vector::reverse_iterator cvi = colvars.rbegin(); @@ -1072,6 +1072,8 @@ void cvm::error(std::string const &message, int code) void cvm::fatal_error(std::string const &message) { + // TODO once all non-fatal errors have been set to be handled by error(), + // set DELETE_COLVARS here for VMD to handle it set_error_bits(FATAL_ERROR); proxy->fatal_error(message); } @@ -1143,7 +1145,7 @@ int cvm::read_index_file(char const *filename) } int cvm::load_atoms(char const *file_name, - std::vector &atoms, + cvm::atom_group &atoms, std::string const &pdb_field, double const pdb_field_value) { diff --git a/lib/colvars/colvarmodule.h b/lib/colvars/colvarmodule.h index fbb2525983..337180d2a5 100644 --- a/lib/colvars/colvarmodule.h +++ b/lib/colvars/colvarmodule.h @@ -4,7 +4,7 @@ #define COLVARMODULE_H #ifndef COLVARS_VERSION -#define COLVARS_VERSION "2015-10-22" +#define COLVARS_VERSION "2016-02-24" #endif #ifndef COLVARS_DEBUG @@ -31,6 +31,7 @@ #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 #include @@ -109,6 +110,7 @@ public: static inline void set_error_bits(int code) { errorCode |= code; + errorCode |= COLVARS_ERROR; } static inline int get_error() { @@ -227,6 +229,12 @@ public: /// on error, delete new bias bool check_new_bias(std::string &conf, char const *key); +private: + /// Useful wrapper to interrupt parsing if any error occurs + int catch_input_errors(int result); + +public: + // "Setup" functions (change internal data based on related data // from the proxy that may change during program execution) // No additional parsing is done within these functions @@ -420,17 +428,17 @@ public: /// \param pdb_field (optiona) if "filename" is a PDB file, use this /// field to determine which are the atoms to be set static int load_atoms(char const *filename, - std::vector &atoms, - std::string const &pdb_field, - double const pdb_field_value = 0.0); + atom_group &atoms, + std::string const &pdb_field, + double const pdb_field_value = 0.0); /// \brief Load the coordinates for a group of atoms from a file /// (PDB or XYZ) static int load_coords(char const *filename, - std::vector &pos, - const std::vector &indices, - std::string const &pdb_field, - double const pdb_field_value = 0.0); + std::vector &pos, + const std::vector &indices, + std::string const &pdb_field, + double const pdb_field_value = 0.0); /// \brief Load the coordinates for a group of atoms from an /// XYZ file diff --git a/lib/colvars/colvarparse.cpp b/lib/colvars/colvarparse.cpp index a97d95e36e..42d7b6e01d 100644 --- a/lib/colvars/colvarparse.cpp +++ b/lib/colvars/colvarparse.cpp @@ -110,8 +110,8 @@ size_t colvarparse::dummy_pos = 0; data_count++; \ } \ if (data_count == 0) \ - cvm::fatal_error("Error: in parsing \""+ \ - std::string(key)+"\".\n"); \ + cvm::error("Error: in parsing \""+ \ + std::string(key)+"\".\n", INPUT_ERROR); \ if (data_count > 1) { \ cvm::error("Error: multiple values " \ "are not allowed for keyword \""+ \ @@ -283,8 +283,8 @@ bool colvarparse::get_keyval(std::string const &conf, (data == std::string("false")) ) { value = false; } else - cvm::fatal_error("Error: boolean values only are allowed " - "for \""+std::string(key)+"\".\n"); + cvm::error("Error: boolean values only are allowed " + "for \""+std::string(key)+"\".\n", INPUT_ERROR); if (parse_mode != parse_silent) { cvm::log("# "+std::string(key)+" = "+ (value ? "on" : "off")+"\n"); @@ -398,10 +398,9 @@ int colvarparse::check_keywords(std::string &conf, char const *key) } } if (!found_keyword) { - cvm::log("Error: keyword \""+uk+"\" is not supported, " - "or not recognized in this context.\n"); - cvm::set_error_bits(INPUT_ERROR); - return COLVARS_ERROR; + cvm::error("Error: keyword \""+uk+"\" is not supported, " + "or not recognized in this context.\n", INPUT_ERROR); + return INPUT_ERROR; } } @@ -527,10 +526,10 @@ bool colvarparse::key_lookup(std::string const &conf, while (brace == std::string::npos) { // add a new line if (line_end >= conf.size()) { - cvm::fatal_error("Parse error: reached the end while " - "looking for closing brace; until now " - "the following was parsed: \"\n"+ - line+"\".\n"); + cvm::error("Parse error: reached the end while " + "looking for closing brace; until now " + "the following was parsed: \"\n"+ + line+"\".\n", INPUT_ERROR); return false; } size_t const old_end = line.size(); diff --git a/lib/colvars/colvarparse.h b/lib/colvars/colvarparse.h index 9e3811b660..b635711f9c 100644 --- a/lib/colvars/colvarparse.h +++ b/lib/colvars/colvarparse.h @@ -147,6 +147,7 @@ public: /// \brief Use this after parsing a config string (note that check_keywords() calls it already) void clear_keyword_registry(); + inline void reset() { clear_keyword_registry(); } /// \brief Return a lowercased copy of the string static inline std::string to_lower_cppstr(std::string const &in) diff --git a/lib/colvars/colvarproxy.h b/lib/colvars/colvarproxy.h index 47806990b7..d18ec3715a 100644 --- a/lib/colvars/colvarproxy.h +++ b/lib/colvars/colvarproxy.h @@ -9,16 +9,13 @@ #include "colvarmodule.h" #include "colvarvalue.h" -// return values for the frame() routine -#define COLVARS_NO_SUCH_FRAME -1 - // forward declarations class colvarscript; /// \brief Interface between the collective variables module and -/// the simulation or analysis program. -/// This is the base class: each program is supported by a derived class. -/// Only pure virtual functions ("= 0") must be reimplemented in a new interface. +/// 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 { @@ -31,13 +28,29 @@ public: inline colvarproxy() : script(NULL) {} /// Default destructor - virtual inline ~colvarproxy() {} + virtual ~colvarproxy() {} - /// (Re)initialize member data after construction - virtual void setup() {} + /// (Re)initialize required member data after construction + virtual int setup() + { + return COLVARS_OK; + } + /// \brief Update data required by the colvars module (e.g. cache atom positions) + /// + /// TODO Break up colvarproxy_namd and colvarproxy_lammps function into these + virtual int update_input() + { + return COLVARS_OK; + } - // **************** SYSTEM-WIDE PHYSICAL QUANTITIES **************** + /// \brief Update data based from the results of a module update (e.g. send forces) + virtual int update_output() + { + return COLVARS_OK; + } + + // **************** SIMULATION PARAMETERS **************** /// \brief Value of the unit for atomic coordinates with respect to /// angstroms (used by some variables for hard-coded default values) @@ -62,6 +75,45 @@ public: // return 0 on success, -1 on failure virtual int frame(int) { return COLVARS_NOT_IMPLEMENTED; } + /// \brief Prefix to be used for input files (restarts, not + /// configuration) + std::string input_prefix_str, output_prefix_str, restart_output_prefix_str; + + inline std::string input_prefix() + { + return input_prefix_str; + } + + /// \brief Prefix to be used for output restart files + inline std::string restart_output_prefix() + { + return restart_output_prefix_str; + } + + /// \brief Prefix to be used for output files (final system + /// configuration) + inline std::string output_prefix() + { + return output_prefix_str; + } + + /// \brief Restarts will be written each time this number of steps has passed + virtual size_t restart_frequency() + { + return 0; + } + +protected: + + /// \brief Currently opened output files: by default, these are ofstream objects. + /// Allows redefinition to implement different output mechanisms + std::list output_files; + /// \brief Identifiers for output_stream objects: by default, these are the names of the files + std::list output_stream_names; + +public: + + // **************** MULTIPLE REPLICAS COMMUNICATION **************** // Replica exchange commands: @@ -87,68 +139,6 @@ public: return COLVARS_NOT_IMPLEMENTED; } - // **************** SIMULATION PARAMETERS **************** - - /// \brief Prefix to be used for input files (restarts, not - /// configuration) - std::string input_prefix_str, output_prefix_str, restart_output_prefix_str; - - inline std::string input_prefix() - { - return input_prefix_str; - } - - /// \brief Prefix to be used for output restart files - inline std::string restart_output_prefix() - { - return restart_output_prefix_str; - } - - /// \brief Prefix to be used for output files (final system - /// configuration) - inline std::string output_prefix() - { - return output_prefix_str; - } - - /// \brief Restarts will be written each time this number of steps has passed - virtual size_t restart_frequency() = 0; - - - - // **************** ACCESS ATOMIC DATA **************** - - /// Pass restraint energy value for current timestep to MD engine - virtual void add_energy(cvm::real energy) = 0; - - /// Tell the proxy whether system forces are needed (may not always be available) - virtual void request_system_force(bool yesno) = 0; - - - - // **************** PERIODIC BOUNDARY CONDITIONS **************** - - /// \brief Get the PBC-aware distance vector between two positions - virtual cvm::rvector position_distance(cvm::atom_pos const &pos1, - cvm::atom_pos const &pos2) = 0; - - /// \brief Get the PBC-aware square distance between two positions; - /// may be implemented independently from position_distance() for optimization purposes - virtual cvm::real position_dist2(cvm::atom_pos const &pos1, - cvm::atom_pos const &pos2); - - /// \brief Get the closest periodic image to a reference position - /// \param pos The position to look for the closest periodic image - /// \param ref_pos The reference position - virtual void select_closest_image(cvm::atom_pos &pos, - cvm::atom_pos const &ref_pos) = 0; - - /// \brief Perform select_closest_image() on a set of atomic positions - /// - /// After that, distance vectors can then be calculated directly, - /// without using position_distance() - void select_closest_images(std::vector &pos, - cvm::atom_pos const &ref_pos); // **************** SCRIPTING INTERFACE **************** @@ -175,6 +165,7 @@ public: std::vector > &gradient) { return COLVARS_NOT_IMPLEMENTED; } + // **************** INPUT/OUTPUT **************** /// Print a message to the main log @@ -187,36 +178,11 @@ public: virtual void fatal_error(std::string const &message) = 0; /// Print a message to the main log and exit normally - virtual void exit(std::string const &message) = 0; - - /// \brief Read atom identifiers from a file \param filename name of - /// the file (usually a PDB) \param atoms array to which atoms read - /// from "filename" will be appended \param pdb_field (optiona) if - /// "filename" is a PDB file, use this field to determine which are - /// the atoms to be set - virtual int load_atoms(char const *filename, - std::vector &atoms, - std::string const &pdb_field, - double const pdb_field_value = 0.0) = 0; - - /// \brief Load the coordinates for a group of atoms from a file - /// (usually a PDB); if "pos" is already allocated, the number of its - /// elements must match the number of atoms in "filename" - virtual int load_coords(char const *filename, - std::vector &pos, - const std::vector &indices, - std::string const &pdb_field, - double const pdb_field_value = 0.0) = 0; - -protected: - - /// \brief Open output files: by default, these are ofstream objects. - /// Allows redefinition to implement different output mechanisms - std::list output_files; - /// \brief Identifiers for output_stream objects: by default, these are the names of the files - std::list output_stream_names; - -public: + virtual void exit(std::string const &message) + { + cvm::error("Error: exiting without error is not implemented, returning error code.\n", + COLVARS_NOT_IMPLEMENTED); + } // TODO the following definitions may be moved to a .cpp file @@ -254,6 +220,8 @@ public: return COLVARS_OK; } } + cvm::error("Error: trying to close an output file or stream that wasn't open.\n", + BUG_ERROR); return COLVARS_ERROR; } @@ -262,22 +230,331 @@ public: { return COLVARS_NOT_IMPLEMENTED; } + + + + // **************** ACCESS SYSTEM DATA **************** + + /// Pass restraint energy value for current timestep to MD engine + virtual void add_energy(cvm::real energy) = 0; + + /// Tell the proxy whether system forces are needed (may not always be available) + virtual void request_system_force(bool yesno) + { + if (yesno == true) + cvm::error("Error: system forces are currently not implemented.\n", + COLVARS_NOT_IMPLEMENTED); + } + + /// \brief Get the PBC-aware distance vector between two positions + virtual cvm::rvector position_distance(cvm::atom_pos const &pos1, + cvm::atom_pos const &pos2) = 0; + + /// \brief Get the PBC-aware square distance between two positions; + /// may need to be reimplemented independently from position_distance() for optimization purposes + virtual cvm::real position_dist2(cvm::atom_pos const &pos1, + cvm::atom_pos const &pos2) + { + return (position_distance(pos1, pos2)).norm2(); + } + + /// \brief Get the closest periodic image to a reference position + /// \param pos The position to look for the closest periodic image + /// \param ref_pos The reference position + virtual void select_closest_image(cvm::atom_pos &pos, + cvm::atom_pos const &ref_pos) + { + pos = position_distance(ref_pos, pos) + ref_pos; + } + + /// \brief Perform select_closest_image() on a set of atomic positions + /// + /// After that, distance vectors can then be calculated directly, + /// without using position_distance() + void select_closest_images(std::vector &pos, + cvm::atom_pos const &ref_pos) + { + for (std::vector::iterator pi = pos.begin(); + pi != pos.end(); ++pi) { + select_closest_image(*pi, ref_pos); + } + } + + + // **************** ACCESS ATOMIC DATA **************** +protected: + + /// \brief Array of 0-based integers used to uniquely associate atoms + /// within the host program + std::vector atoms_ids; + /// \brief Keep track of how many times each atom is used by a separate colvar object + std::vector atoms_ncopies; + /// \brief Masses of the atoms (allow redefinition during a run, as done e.g. in LAMMPS) + std::vector atoms_masses; + /// \brief Charges of the atoms (allow redefinition during a run, as done e.g. in LAMMPS) + std::vector atoms_charges; + /// \brief Current three-dimensional positions of the atoms + std::vector atoms_positions; + /// \brief Most recent total forces on each atom + std::vector atoms_total_forces; + /// \brief Most recent forces applied by external potentials onto each atom + std::vector atoms_applied_forces; + /// \brief Forces applied from colvars, to be communicated to the MD integrator + std::vector atoms_new_colvar_forces; + + /// Used by all init_atom() functions: create a slot for an atom not requested yet + inline int add_atom_slot(int atom_id) + { + atoms_ids.push_back(atom_id); + atoms_ncopies.push_back(1); + atoms_masses.push_back(1.0); + atoms_charges.push_back(0.0); + atoms_positions.push_back(cvm::rvector(0.0, 0.0, 0.0)); + atoms_total_forces.push_back(cvm::rvector(0.0, 0.0, 0.0)); + atoms_applied_forces.push_back(cvm::rvector(0.0, 0.0, 0.0)); + atoms_new_colvar_forces.push_back(cvm::rvector(0.0, 0.0, 0.0)); + return (atoms_ids.size() - 1); + } + +public: + + /// Prepare this atom for collective variables calculation, selecting it by numeric index (1-based) + virtual int init_atom(int atom_number) = 0; + + /// Check that this atom number is valid, but do not initialize the corresponding atom yet + virtual int check_atom_id(int atom_number) = 0; + + /// Select this atom for collective variables calculation, using name and residue number. + /// Not all programs support this: leave this function as is in those cases. + virtual int init_atom(cvm::residue_id const &residue, + std::string const &atom_name, + std::string const &segment_id) + { + cvm::error("Error: initializing an atom by name and residue number is currently not supported.\n", + COLVARS_NOT_IMPLEMENTED); + return COLVARS_NOT_IMPLEMENTED; + } + + /// Check that this atom is valid, but do not initialize it yet + virtual int check_atom_id(cvm::residue_id const &residue, + std::string const &atom_name, + std::string const &segment_id) + { + cvm::error("Error: initializing an atom by name and residue number is currently not supported.\n", + COLVARS_NOT_IMPLEMENTED); + return COLVARS_NOT_IMPLEMENTED; + } + + /// \brief Used by the atom class destructor: rather than deleting the array slot + /// (costly) set the corresponding atoms_ncopies to zero + virtual void 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); + } + if (atoms_ncopies[index] > 0) { + atoms_ncopies[index] -= 1; + } + } + + /// Get the numeric ID of the given atom (for the program) + inline int get_atom_id(int index) const + { + return atoms_ids[index]; + } + + /// Get the mass of the given atom + inline cvm::real get_atom_mass(int index) const + { + return atoms_masses[index]; + } + + /// Get the charge of the given atom + inline cvm::real get_atom_charge(int index) const + { + return atoms_charges[index]; + } + + /// Read the current position of the given atom + inline cvm::rvector get_atom_position(int index) const + { + return atoms_positions[index]; + } + + /// Read the current total system force of the given atom + inline cvm::rvector get_atom_system_force(int index) const + { + return atoms_total_forces[index] - atoms_applied_forces[index]; + } + + /// Request that this force is applied to the given atom + inline void apply_atom_force(int index, cvm::rvector const &new_force) + { + atoms_new_colvar_forces[index] += new_force; + } + + /// Read the current velocity of the given atom + virtual cvm::rvector get_atom_velocity(int index) + { + cvm::error("Error: reading the current velocity of an atom is not yet implemented.\n", + COLVARS_NOT_IMPLEMENTED); + return cvm::rvector(0.0); + } + + // useful functions for data management outside this class + inline std::vector *modify_atom_ids() { return &atoms_ids; } + inline std::vector *modify_atom_masses() { return &atoms_masses; } + inline std::vector *modify_atom_charges() { return &atoms_charges; } + inline std::vector *modify_atom_positions() { return &atoms_positions; } + inline std::vector *modify_atom_total_forces() { return &atoms_total_forces; } + inline std::vector *modify_atom_applied_forces() { return &atoms_applied_forces; } + inline std::vector *modify_atom_new_colvar_forces() { return &atoms_new_colvar_forces; } + + /// \brief Read atom identifiers from a file \param filename name of + /// the file (usually a PDB) \param atoms array to which atoms read + /// from "filename" will be appended \param pdb_field (optiona) if + /// "filename" is a PDB file, use this field to determine which are + /// the atoms to be set + virtual int load_atoms(char const *filename, + cvm::atom_group &atoms, + std::string const &pdb_field, + double const pdb_field_value = 0.0) + { + cvm::error("Error: loading atom identifiers from a file is currently not implemented.\n", + COLVARS_NOT_IMPLEMENTED); + return COLVARS_NOT_IMPLEMENTED; + } + + /// \brief Load the coordinates for a group of atoms from a file + /// (usually a PDB); if "pos" is already allocated, the number of its + /// elements must match the number of atoms in "filename" + virtual int load_coords(char const *filename, + std::vector &pos, + const std::vector &indices, + std::string const &pdb_field, + double const pdb_field_value = 0.0) + { + cvm::error("Error: loading atomic coordinates from a file is currently not implemented.\n"); + return COLVARS_NOT_IMPLEMENTED; + } + + // **************** ACCESS GROUP DATA **************** + +protected: + + /// \brief Array of 0-based integers used to uniquely associate atom groups + /// within the host program + std::vector atom_groups_ids; + /// \brief Keep track of how many times each group is used by a separate cvc + std::vector atom_groups_ncopies; + /// \brief Total masses of the atom groups + std::vector atom_groups_masses; + /// \brief Total charges of the atom groups (allow redefinition during a run, as done e.g. in LAMMPS) + std::vector atom_groups_charges; + /// \brief Current centers of mass of the atom groups + std::vector atom_groups_coms; + /// \brief Most recently updated total forces on the com of each group + std::vector atom_groups_total_forces; + /// \brief Most recent forces applied by external potentials onto each group + std::vector atom_groups_applied_forces; + /// \brief Forces applied from colvars, to be communicated to the MD integrator + std::vector atom_groups_new_colvar_forces; + + /// TODO Add here containers of handles to cvc objects that are computed in parallel + +public: + + /// \brief Whether this proxy implementation has capability for scalable groups + virtual bool has_scalable_groups() const + { + return false; + } + + /// Used by all init_atom_group() functions: create a slot for an atom group not requested yet + // TODO Add a handle to cvc objects + inline int add_atom_group_slot(int atom_group_id) + { + atom_groups_ids.push_back(atom_group_id); + atom_groups_masses.push_back(1.0); + atom_groups_charges.push_back(0.0); + atom_groups_coms.push_back(cvm::rvector(0.0, 0.0, 0.0)); + atom_groups_total_forces.push_back(cvm::rvector(0.0, 0.0, 0.0)); + atom_groups_applied_forces.push_back(cvm::rvector(0.0, 0.0, 0.0)); + atom_groups_new_colvar_forces.push_back(cvm::rvector(0.0, 0.0, 0.0)); + return (atom_groups_ids.size() - 1); + } + + /// Prepare this group for collective variables calculation, selecting atoms by internal ids (0-based) + virtual int init_atom_group(std::vector const &atoms_ids) // TODO Add a handle to cvc objects + { + cvm::error("Error: initializing a group outside of the colvars module is currently not supported.\n", + COLVARS_NOT_IMPLEMENTED); + return COLVARS_NOT_IMPLEMENTED; + } + + /// \brief Used by the atom_group class destructor + virtual void 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); + } + + atom_groups_ids.erase(atom_groups_ids.begin()+index); + atom_groups_masses.erase(atom_groups_masses.begin()+index); + atom_groups_charges.erase(atom_groups_charges.begin()+index); + atom_groups_coms.erase(atom_groups_coms.begin()+index); + atom_groups_total_forces.erase(atom_groups_total_forces.begin()+index); + atom_groups_applied_forces.erase(atom_groups_applied_forces.begin()+index); + atom_groups_new_colvar_forces.erase(atom_groups_new_colvar_forces.begin()+index); + } + + /// Get the numeric ID of the given atom group (for the MD program) + inline cvm::real get_atom_group_id(int index) const + { + return atom_groups_ids[index]; + } + + /// Get the mass of the given atom group + inline cvm::real get_atom_group_mass(int index) const + { + return atom_groups_masses[index]; + } + + /// Get the charge of the given atom group + inline cvm::real get_atom_group_charge(int index) const + { + return atom_groups_charges[index]; + } + + /// Read the current position of the center of mass given atom group + inline cvm::rvector get_atom_group_com(int index) const + { + return atom_groups_coms[index]; + } + + /// Read the current total system force of the given atom group + inline cvm::rvector get_atom_group_system_force(int index) const + { + return atom_groups_total_forces[index] - atom_groups_applied_forces[index]; + } + + /// Request that this force is applied to the given atom group + inline void apply_atom_group_force(int index, cvm::rvector const &new_force) + { + atom_groups_new_colvar_forces[index] += new_force; + } + + /// Read the current velocity of the given atom group + virtual cvm::rvector get_atom_group_velocity(int index) + { + cvm::error("Error: reading the current velocity of an atom group is not yet implemented.\n", + COLVARS_NOT_IMPLEMENTED); + return cvm::rvector(0.0); + } + }; -inline void colvarproxy::select_closest_images(std::vector &pos, - cvm::atom_pos const &ref_pos) -{ - for (std::vector::iterator pi = pos.begin(); - pi != pos.end(); ++pi) { - select_closest_image(*pi, ref_pos); - } -} - -inline cvm::real colvarproxy::position_dist2(cvm::atom_pos const &pos1, - cvm::atom_pos const &pos2) -{ - return (position_distance(pos1, pos2)).norm2(); -} - #endif diff --git a/lib/colvars/colvarscript.cpp b/lib/colvars/colvarscript.cpp index 4c999eee84..efc6731ef7 100644 --- a/lib/colvars/colvarscript.cpp +++ b/lib/colvars/colvarscript.cpp @@ -26,11 +26,13 @@ int colvarscript::run(int argc, char const *argv[]) { if (argc < 2) { result = help_string(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } std::string cmd = argv[1]; + int error_code = COLVARS_OK; + if (cmd == "colvar") { return proc_colvar(argc-1, &(argv[1])); } @@ -41,13 +43,13 @@ int colvarscript::run(int argc, char const *argv[]) { if (cmd == "version") { result = COLVARS_VERSION; - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (cmd == "reset") { /// Delete every child object colvars->reset(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (cmd == "delete") { @@ -55,12 +57,17 @@ int colvarscript::run(int argc, char const *argv[]) { // Note: the delete bit may be ignored by some backends // it is mostly useful in VMD colvars->set_error_bits(DELETE_COLVARS); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (cmd == "update") { - colvars->calc(); - return COLVARSCRIPT_OK; + error_code |= proxy->update_input(); + error_code |= colvars->calc(); + error_code |= proxy->update_output(); + if (error_code) { + result += "Error updating the colvars module.\n"; + } + return error_code; } if (cmd == "list") { @@ -70,14 +77,14 @@ int colvarscript::run(int argc, char const *argv[]) { ++cvi) { result += (cvi == colvars->colvars.begin() ? "" : " ") + (*cvi)->name; } - return COLVARSCRIPT_OK; + return COLVARS_OK; } else if (argc == 3 && !strcmp(argv[2], "biases")) { for (std::vector::iterator bi = colvars->biases.begin(); bi != colvars->biases.end(); ++bi) { result += (bi == colvars->biases.begin() ? "" : " ") + (*bi)->name; } - return COLVARSCRIPT_OK; + return COLVARS_OK; } else { result = "Wrong arguments to command \"list\"\n" + help_string(); return COLVARSCRIPT_ERROR; @@ -91,7 +98,7 @@ int colvarscript::run(int argc, char const *argv[]) { return COLVARSCRIPT_ERROR; } if (colvars->read_config_file(argv[2]) == COLVARS_OK) { - return COLVARSCRIPT_OK; + return COLVARS_OK; } else { result = "Error parsing configuration file"; return COLVARSCRIPT_ERROR; @@ -106,7 +113,7 @@ int colvarscript::run(int argc, char const *argv[]) { } std::string conf = argv[2]; if (colvars->read_config_string(conf) == COLVARS_OK) { - return COLVARSCRIPT_OK; + return COLVARS_OK; } else { result = "Error parsing configuration string"; return COLVARSCRIPT_ERROR; @@ -121,7 +128,7 @@ int colvarscript::run(int argc, char const *argv[]) { } proxy->input_prefix_str = argv[2]; if (colvars->setup_input() == COLVARS_OK) { - return COLVARSCRIPT_OK; + return COLVARS_OK; } else { result = "Error loading state file"; return COLVARSCRIPT_ERROR; @@ -138,7 +145,7 @@ int colvarscript::run(int argc, char const *argv[]) { int error = 0; error |= colvars->setup_output(); error |= colvars->write_output_files(); - return error ? COLVARSCRIPT_ERROR : COLVARSCRIPT_OK; + return error ? COLVARSCRIPT_ERROR : COLVARS_OK; } /// Print the values that would go on colvars.traj @@ -146,13 +153,13 @@ int colvarscript::run(int argc, char const *argv[]) { std::ostringstream os; colvars->write_traj_label(os); result = os.str(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (cmd == "printframe") { std::ostringstream os; colvars->write_traj(os); result = os.str(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (cmd == "frame") { @@ -160,7 +167,7 @@ int colvarscript::run(int argc, char const *argv[]) { int f = proxy->frame(); if (f >= 0) { result = cvm::to_str(f); - return COLVARSCRIPT_OK; + return COLVARS_OK; } else { result = "Frame number is not available"; return COLVARSCRIPT_ERROR; @@ -171,7 +178,7 @@ int colvarscript::run(int argc, char const *argv[]) { long int f = proxy->frame(strtol(argv[2], NULL, 10)); colvars->it = proxy->frame(); result = cvm::to_str(f); - return COLVARSCRIPT_OK; + return COLVARS_OK; } else { result = "Wrong arguments to command \"frame\"\n" + help_string(); return COLVARSCRIPT_ERROR; @@ -199,24 +206,24 @@ int colvarscript::proc_colvar(int argc, char const *argv[]) { if (subcmd == "value") { result = (cv->value()).to_simple_string(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "width") { result = cvm::to_str(cv->width, 0, cvm::cv_prec); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "type") { result = cv->value().type_desc(cv->value().value_type); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "update") { cv->calc(); cv->update(); result = (cv->value()).to_simple_string(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "delete") { @@ -228,12 +235,12 @@ int colvarscript::proc_colvar(int argc, char const *argv[]) { delete cv; // TODO this could be done by the destructors colvars->write_traj_label(colvars->cv_traj_os); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "getconfig") { result = cv->get_config(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "addforce") { @@ -253,7 +260,7 @@ int colvarscript::proc_colvar(int argc, char const *argv[]) { } cv->add_bias_force(force); result = force.to_simple_string(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "cvcflags") { @@ -276,7 +283,7 @@ int colvarscript::proc_colvar(int argc, char const *argv[]) { return COLVARSCRIPT_ERROR; } result = "0"; - return COLVARSCRIPT_OK; + return COLVARS_OK; } result = "Syntax error\n" + help_string(); @@ -301,25 +308,25 @@ int colvarscript::proc_bias(int argc, char const *argv[]) { if (subcmd == "energy") { result = cvm::to_str(b->get_energy()); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "update") { b->update(); result = cvm::to_str(b->get_energy()); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "getconfig") { result = b->get_config(); - return COLVARSCRIPT_OK; + return COLVARS_OK; } // Subcommands for MW ABF if (subcmd == "bin") { int r = b->current_bin(); result = cvm::to_str(r); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "binnum") { @@ -329,7 +336,7 @@ int colvarscript::proc_bias(int argc, char const *argv[]) { return COLVARSCRIPT_ERROR; } result = cvm::to_str(r); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (subcmd == "share") { @@ -339,7 +346,7 @@ int colvarscript::proc_bias(int argc, char const *argv[]) { return COLVARSCRIPT_ERROR; } result = cvm::to_str(r); - return COLVARSCRIPT_OK; + return COLVARS_OK; } // End commands for MW ABF @@ -348,7 +355,7 @@ int colvarscript::proc_bias(int argc, char const *argv[]) { delete b; // TODO this could be done by the destructors colvars->write_traj_label(colvars->cv_traj_os); - return COLVARSCRIPT_OK; + return COLVARS_OK; } if (argc >= 4) { @@ -360,7 +367,7 @@ int colvarscript::proc_bias(int argc, char const *argv[]) { return COLVARSCRIPT_ERROR; } result = cvm::to_str(b->bin_count(index)); - return COLVARSCRIPT_OK; + return COLVARS_OK; } result = "Syntax error\n" + help_string(); diff --git a/lib/colvars/colvarscript.h b/lib/colvars/colvarscript.h index 745914c76b..25138387ca 100644 --- a/lib/colvars/colvarscript.h +++ b/lib/colvars/colvarscript.h @@ -9,6 +9,7 @@ #include "colvarbias.h" #include "colvarproxy.h" +// TODO merge these into colvarmodule.h #define COLVARSCRIPT_ERROR -1 #define COLVARSCRIPT_OK 0 diff --git a/src/USER-COLVARS/colvarproxy_lammps.cpp b/src/USER-COLVARS/colvarproxy_lammps.cpp index d48e547908..f42a2573d2 100644 --- a/src/USER-COLVARS/colvarproxy_lammps.cpp +++ b/src/USER-COLVARS/colvarproxy_lammps.cpp @@ -95,7 +95,7 @@ colvarproxy_lammps::colvarproxy_lammps(LAMMPS_NS::LAMMPS *lmp, // check if it is possible to save output configuration if ((!output_prefix_str.size()) && (!restart_output_prefix_str.size())) { fatal_error("Error: neither the final output state file or " - "the output restart file could be defined, exiting.\n"); + "the output restart file could be defined, exiting.\n"); } // try to extract a restart prefix from a potential restart command. @@ -140,10 +140,10 @@ void colvarproxy_lammps::init(const char *conf_file) } if (cvm::debug()) { - log("colvars_atoms = "+cvm::to_str(colvars_atoms)+"\n"); - log("colvars_atoms_ncopies = "+cvm::to_str(colvars_atoms_ncopies)+"\n"); - log("positions = "+cvm::to_str(positions)+"\n"); - log("applied_forces = "+cvm::to_str(applied_forces)+"\n"); + log("atoms_ids = "+cvm::to_str(atoms_ids)+"\n"); + log("atoms_ncopies = "+cvm::to_str(atoms_ncopies)+"\n"); + log("atoms_positions = "+cvm::to_str(atoms_positions)+"\n"); + log("atoms_applied_forces = "+cvm::to_str(atoms_applied_forces)+"\n"); log(cvm::line_marker); log("Info: done initializing the colvars proxy object.\n"); } @@ -160,10 +160,10 @@ colvarproxy_lammps::~colvarproxy_lammps() } // re-initialize data where needed -void colvarproxy_lammps::setup() +int colvarproxy_lammps::setup() { my_timestep = _lmp->update->dt * _lmp->force->femtosecond; - colvars->setup(); + return colvars->setup(); } // trigger colvars computation @@ -189,27 +189,33 @@ double colvarproxy_lammps::compute() } // backup applied forces if necessary to calculate system forces - if (system_force_requested) - previous_applied_forces = applied_forces; + if (system_force_requested) { + atoms_applied_forces = atoms_new_colvar_forces; + } // zero the forces on the atoms, so that they can be accumulated by the colvars - for (size_t i = 0; i < applied_forces.size(); i++) { - applied_forces[i].x = applied_forces[i].y = applied_forces[i].z = 0.0; + for (size_t i = 0; i < atoms_applied_forces.size(); i++) { + atoms_new_colvar_forces[i].reset(); } bias_energy = 0.0; + if (cvm::debug()) { + log("atoms_ids = "+cvm::to_str(atoms_ids)+"\n"); + log("atoms_ncopies = "+cvm::to_str(atoms_ncopies)+"\n"); + log("atoms_positions = "+cvm::to_str(atoms_positions)+"\n"); + log("atoms_new_colvar_forces = "+cvm::to_str(atoms_new_colvar_forces)+"\n"); + } + // call the collective variable module colvars->calc(); -#if 0 - for (int i=0; i < colvars_atoms.size(); ++i) { - fprintf(stderr,"CV: atom %d/%d/%d pos: %g %g %g for: %g %g %g\n", - colvars_atoms[i], colvars_atoms_ncopies[i], - positions[i].type, positions[i].x, positions[i].y, positions[i].z, - applied_forces[i].x, applied_forces[i].y, applied_forces[i].z); + if (cvm::debug()) { + log("atoms_ids = "+cvm::to_str(atoms_ids)+"\n"); + log("atoms_ncopies = "+cvm::to_str(atoms_ncopies)+"\n"); + log("atoms_positions = "+cvm::to_str(atoms_positions)+"\n"); + log("atoms_new_colvar_forces = "+cvm::to_str(atoms_new_colvar_forces)+"\n"); } -#endif return bias_energy; } @@ -255,8 +261,8 @@ cvm::real colvarproxy_lammps::position_dist2(cvm::atom_pos const &pos1, } -inline void colvarproxy_lammps::select_closest_image(cvm::atom_pos &pos, - cvm::atom_pos const &ref) +void colvarproxy_lammps::select_closest_image(cvm::atom_pos &pos, + cvm::atom_pos const &ref) { double xtmp = pos.x - ref.x; double ytmp = pos.y - ref.y; @@ -303,74 +309,6 @@ void colvarproxy_lammps::exit(std::string const &message) do_exit=true; } -enum e_pdb_field { - e_pdb_none, - e_pdb_occ, - e_pdb_beta, - e_pdb_x, - e_pdb_y, - e_pdb_z, - e_pdb_ntot -}; - - -e_pdb_field pdb_field_str2enum(std::string const &pdb_field_str) -{ - e_pdb_field pdb_field = e_pdb_none; - - if (colvarparse::to_lower_cppstr(pdb_field_str) == - colvarparse::to_lower_cppstr("O")) { - pdb_field = e_pdb_occ; - } - - if (colvarparse::to_lower_cppstr(pdb_field_str) == - colvarparse::to_lower_cppstr("B")) { - pdb_field = e_pdb_beta; - } - - if (colvarparse::to_lower_cppstr(pdb_field_str) == - colvarparse::to_lower_cppstr("X")) { - pdb_field = e_pdb_x; - } - - if (colvarparse::to_lower_cppstr(pdb_field_str) == - colvarparse::to_lower_cppstr("Y")) { - pdb_field = e_pdb_y; - } - - if (colvarparse::to_lower_cppstr(pdb_field_str) == - colvarparse::to_lower_cppstr("Z")) { - pdb_field = e_pdb_z; - } - - if (pdb_field == e_pdb_none) { - cvm::fatal_error("Error: unsupported PDB field, \""+ - pdb_field_str+"\".\n"); - } - - return pdb_field; -} - -int colvarproxy_lammps::load_coords(char const *pdb_filename, - std::vector &pos, - const std::vector &indices, - std::string const &pdb_field_str, - double const pdb_field_value) -{ - cvm::fatal_error("Reading collective variable coordinates " - "from a PDB file is currently not supported.\n"); - return COLVARS_ERROR; -} - -int colvarproxy_lammps::load_atoms(char const *pdb_filename, - std::vector &atoms, - std::string const &pdb_field_str, - double const pdb_field_value) -{ - cvm::fatal_error("Selecting collective variable atoms " - "from a PDB file is currently not supported.\n"); - return COLVARS_ERROR; -} int colvarproxy_lammps::backup_file(char const *filename) { @@ -382,33 +320,6 @@ int colvarproxy_lammps::backup_file(char const *filename) } } -int colvarproxy_lammps::init_lammps_atom(const int &aid, cvm::atom *atom) -{ - atom->id = aid; - atom->mass = 0.0; - - for (size_t i = 0; i < colvars_atoms.size(); i++) { - if (colvars_atoms[i] == aid) { - // this atom id was already recorded - colvars_atoms_ncopies[i] += 1; - return i; - } - } - - // allocate a new slot for this atom - colvars_atoms_ncopies.push_back(1); - colvars_atoms.push_back(aid); - struct commdata c; - c.tag = aid; - c.type = 0; - c.x = c.y = c.z = 0.0; - positions.push_back(c); - total_forces.push_back(c); - applied_forces.push_back(c); - - return colvars_atoms.size()-1; -} - // multi-replica support void colvarproxy_lammps::replica_comm_barrier() { @@ -429,7 +340,7 @@ int colvarproxy_lammps::replica_comm_recv(char* msg_data, } int colvarproxy_lammps::replica_comm_send(char* msg_data, - int msg_len, int dest_rep) + int msg_len, int dest_rep) { int retval; retval = MPI_Send(msg_data,msg_len,MPI_CHAR,dest_rep,0,inter_comm); @@ -439,95 +350,48 @@ int colvarproxy_lammps::replica_comm_send(char* msg_data, return retval; } -// atom member functions, LAMMPS specific implementations -cvm::atom::atom(const int &id) + +int colvarproxy_lammps::check_atom_id(int atom_number) { + int const aid = atom_number; if (cvm::debug()) - cvm::log("Adding atom "+cvm::to_str(id)+ - " for collective variables calculation.\n"); + log("Adding atom "+cvm::to_str(atom_number)+ + " for collective variables calculation.\n"); - if (id < 0) - cvm::fatal_error("Error: invalid atom ID specified, "+ - cvm::to_str(id)+"\n"); - - int idx = ((colvarproxy_lammps *) cvm::proxy)->init_lammps_atom(id,this); - if (idx < 0) - cvm::fatal_error("Error: atom ID , "+cvm::to_str(id)+" does not exist.\n"); - - this->index = idx; - if (cvm::debug()) - cvm::log("The index of this atom in the colvarproxy_lammps arrays is "+ - cvm::to_str(this->index)+".\n"); - - this->reset_data(); -} - - -/// For AMBER topologies, the segment id is automatically set to -/// "MAIN" (the segment id assigned by NAMD's AMBER topology parser), -/// and is therefore optional when an AMBER topology is used -cvm::atom::atom(cvm::residue_id const &residue, - std::string const &atom_name, - std::string const &segment_id) -{ - cvm::fatal_error("Creating collective variable atoms " - "from a PDB file is currently not supported.\n"); -} - - -// copy constructor -cvm::atom::atom(cvm::atom const &a) - : index(a.index), id(a.id), mass(a.mass) -{ - // init_lammps_atom() has already been called by a's constructor, no - // need to call it again - - // need to increment the counter anyway - colvarproxy_lammps *cp = (colvarproxy_lammps *) cvm::proxy; - cp->colvars_atoms_ncopies[this->index] += 1; -} - - -cvm::atom::~atom() -{ - if (this->index >= 0) { - colvarproxy_lammps *cp = (colvarproxy_lammps *) cvm::proxy; - if (cp->colvars_atoms_ncopies[this->index] > 0) - cp->colvars_atoms_ncopies[this->index] -= 1; + // 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; } + + return aid; } -void cvm::atom::read_position() + +int colvarproxy_lammps::init_atom(int atom_number) { - colvarproxy_lammps const * const cp = (colvarproxy_lammps *) cvm::proxy; - this->pos.x = cp->positions[this->index].x; - this->pos.y = cp->positions[this->index].y; - this->pos.z = cp->positions[this->index].z; - this->mass = cp->positions[this->index].m; + int aid = atom_number; + + for (size_t i = 0; i < atoms_ids.size(); i++) { + if (atoms_ids[i] == aid) { + // this atom id was already recorded + atoms_ncopies[i] += 1; + return i; + } + } + + aid = check_atom_id(atom_number); + if (aid < 0) { + return aid; + } + + int const index = colvarproxy::add_atom_slot(aid); + // add entries for the LAMMPS-specific fields + atoms_types.push_back(0); + + return index; } -void cvm::atom::read_velocity() -{ - cvm::fatal_error("Error: read_velocity is not yet implemented.\n"); -} - -void cvm::atom::read_system_force() -{ - colvarproxy_lammps const * const cp = (colvarproxy_lammps *) cvm::proxy; - this->system_force.x = cp->total_forces[this->index].x - - cp->previous_applied_forces[this->index].x; - this->system_force.y = cp->total_forces[this->index].y - - cp->previous_applied_forces[this->index].y; - this->system_force.z = cp->total_forces[this->index].z - - cp->previous_applied_forces[this->index].z; -} - -void cvm::atom::apply_force(cvm::rvector const &new_force) -{ - colvarproxy_lammps *cp = (colvarproxy_lammps *) cvm::proxy; - cp->applied_forces[this->index].x += new_force.x; - cp->applied_forces[this->index].y += new_force.y; - cp->applied_forces[this->index].z += new_force.z; -} diff --git a/src/USER-COLVARS/colvarproxy_lammps.h b/src/USER-COLVARS/colvarproxy_lammps.h index 2e05987680..25ffa2502a 100644 --- a/src/USER-COLVARS/colvarproxy_lammps.h +++ b/src/USER-COLVARS/colvarproxy_lammps.h @@ -1,3 +1,5 @@ +// -*- c++ -*- + #ifndef COLVARPROXY_LAMMPS_H #define COLVARPROXY_LAMMPS_H @@ -15,13 +17,13 @@ #include #ifndef COLVARPROXY_VERSION -#define COLVARPROXY_VERSION "2015-07-21" +#define COLVARPROXY_VERSION "2016-02-28" #endif /* struct for packed data communication of coordinates and forces. */ struct commdata { int tag,type; - double x,y,z,m; + double x,y,z,m,q; }; inline std::ostream & operator<< (std::ostream &out, const commdata &cd) @@ -52,23 +54,25 @@ class colvarproxy_lammps : public colvarproxy { bool system_force_requested; bool do_exit; - std::vector colvars_atoms; - std::vector colvars_atoms_ncopies; - std::vector positions; - std::vector total_forces; - std::vector applied_forces; - std::vector previous_applied_forces; + // std::vector colvars_atoms; + // std::vector colvars_atoms_ncopies; + // std::vector positions; + // std::vector total_forces; + // std::vector applied_forces; + // std::vector previous_applied_forces; + + std::vector atoms_types; MPI_Comm inter_comm; // MPI comm with 1 root proc from each world int inter_me, inter_num; // rank for the inter replica comm public: friend class cvm::atom; - colvarproxy_lammps (LAMMPS_NS::LAMMPS *lmp, const char *, - const char *, const int, const double, MPI_Comm); + colvarproxy_lammps(LAMMPS_NS::LAMMPS *lmp, const char *, + const char *, const int, const double, MPI_Comm); virtual ~colvarproxy_lammps(); void init(const char*); - void setup(); + int setup(); // disable default and copy constructor private: @@ -80,13 +84,6 @@ class colvarproxy_lammps : public colvarproxy { void set_temperature(double t) { t_target = t; }; bool need_system_forces() const { return system_force_requested; }; bool want_exit() const { return do_exit; }; - std::vector * get_tags() { return &colvars_atoms; }; - std::vector * get_coords() { return &positions; }; - std::vector * get_forces() { return &applied_forces; }; - std::vector * get_oforce() { return &total_forces; }; - - // initialize atom structure - int init_lammps_atom(const int &, cvm::atom *); // perform colvars computation. returns biasing energy double compute(); @@ -122,21 +119,15 @@ class colvarproxy_lammps : public colvarproxy { void select_closest_image(cvm::atom_pos &pos, cvm::atom_pos const &ref_pos); - int load_atoms(char const *filename, - std::vector &atoms, - std::string const &pdb_field, - double const pdb_field_value = 0.0); - - int load_coords(char const *filename, - std::vector &pos, - const std::vector &indices, - std::string const &pdb_field, - double const pdb_field_value = 0.0); - int backup_file(char const *filename); cvm::real rand_gaussian(void) { return _random->gaussian(); }; + int init_atom(int atom_number); + int check_atom_id(int atom_number); + + inline std::vector *modify_atom_types() { return &atoms_types; } + // implementation of optional methods from base class public: // Multi-replica support @@ -161,8 +152,3 @@ class colvarproxy_lammps : public colvarproxy { #endif - -// Emacs -// Local Variables: -// mode: C++ -// End: diff --git a/src/USER-COLVARS/fix_colvars.cpp b/src/USER-COLVARS/fix_colvars.cpp index 441bd3479d..c46b301119 100644 --- a/src/USER-COLVARS/fix_colvars.cpp +++ b/src/USER-COLVARS/fix_colvars.cpp @@ -324,7 +324,6 @@ FixColvars::FixColvars(LAMMPS *lmp, int narg, char **arg) : nlevels_respa = 0; init_flag = 0; num_coords = 0; - coords = forces = oforce = NULL; comm_buf = NULL; force_buf = NULL; proxy = NULL; @@ -443,10 +442,8 @@ void FixColvars::one_time_init() proxy = new colvarproxy_lammps(lmp,inp_name,out_name, rng_seed,t_target,root2root); proxy->init(conf_file); - coords = proxy->get_coords(); - forces = proxy->get_forces(); - oforce = proxy->get_oforce(); - num_coords = coords->size(); + + num_coords = (proxy->modify_atom_positions()->size()); } // send the list of all colvar atom IDs to all nodes. @@ -457,8 +454,7 @@ void FixColvars::one_time_init() memory->create(force_buf,3*num_coords,"colvars:force_buf"); if (me == 0) { - std::vector *tags_list = proxy->get_tags(); - std::vector &tl = *tags_list; + std::vector &tl = *(proxy->modify_atom_ids()); inthash_t *hashtable=new inthash_t; inthash_init(hashtable, num_coords); idmap = (void *)hashtable; @@ -508,17 +504,20 @@ void FixColvars::setup(int vflag) if (me == 0) { - std::vector &cd = *coords; - std::vector &of = *oforce; + std::vector &id = *(proxy->modify_atom_ids()); + std::vector &tp = *(proxy->modify_atom_types()); + std::vector &cd = *(proxy->modify_atom_positions()); + std::vector &of = *(proxy->modify_atom_total_forces()); + std::vector &m = *(proxy->modify_atom_masses()); + std::vector &q = *(proxy->modify_atom_charges()); // store coordinate data in holding array, clear old forces + for (i=0; imap(taglist[i]); if ((k >= 0) && (k < nlocal)) { - of[i].tag = cd[i].tag = tag[k]; - of[i].type = cd[i].type = type[k]; of[i].x = of[i].y = of[i].z = 0.0; if (unwrap_flag) { @@ -535,10 +534,13 @@ void FixColvars::setup(int vflag) cd[i].z = x[k][2]; } if (atom->rmass_flag) { - cd[i].m = atom->rmass[k]; + m[i] = atom->rmass[k]; } else { - cd[i].m = atom->mass[type[k]]; + m[i] = atom->mass[type[k]]; } + if (atom->q_flag) { + q[i] = atom->q[k]; + } } } @@ -553,14 +555,20 @@ void FixColvars::setup(int vflag) ndata /= size_one; for (int k=0; kmass[type[k]]; } + if (atom->q_flag) { + comm_buf[nme].q = atom->q[k]; + } + ++nme; } } @@ -675,7 +687,8 @@ void FixColvars::post_force(int vflag) int tmp, ndata; if (me == 0) { - std::vector &cd = *coords; + + std::vector &cd = *(proxy->modify_atom_positions()); // store coordinate data @@ -763,7 +776,9 @@ void FixColvars::post_force(int vflag) // broadcast and apply biasing forces if (me == 0) { - std::vector &fo = *forces; + + std::vector &fo = *(proxy->modify_atom_new_colvar_forces()); + double *fbuf = force_buf; for (int j=0; j < num_coords; ++j) { *fbuf++ = fo[j].x; @@ -827,7 +842,7 @@ void FixColvars::end_of_step() if (me == 0) { // store old force data - std::vector &of = *oforce; + std::vector &of = *(proxy->modify_atom_total_forces()); for (i=0; imap(taglist[i]); diff --git a/src/USER-COLVARS/fix_colvars.h b/src/USER-COLVARS/fix_colvars.h index ae4ead90a0..b87c4c3ed5 100644 --- a/src/USER-COLVARS/fix_colvars.h +++ b/src/USER-COLVARS/fix_colvars.h @@ -66,9 +66,13 @@ class FixColvars : public Fix { int me; // my MPI rank in this "world". int num_coords; // total number of atoms controlled by this fix tagint *taglist; // list of all atom IDs referenced by colvars. - std::vector *coords; // coordinates of colvar atoms - std::vector *forces; // received forces of colvar atoms - std::vector *oforce; // old total forces of colvar atoms + + // TODO get rid of these + // std::vector *coords; // coordinates of colvar atoms + // std::vector *forces; // received forces of colvar atoms + // std::vector *oforce; // old total forces of colvar atoms + // std::vector *masses; + // std::vector *charges; int nmax; // size of atom communication buffer. int size_one; // bytes per atom in communication buffer.