version 1.29 | version 1.30 |
---|
| |
catch_input_errors(parse_global_params(extra_conf)); | catch_input_errors(parse_global_params(extra_conf)); |
catch_input_errors(parse_colvars(extra_conf)); | catch_input_errors(parse_colvars(extra_conf)); |
catch_input_errors(parse_biases(extra_conf)); | catch_input_errors(parse_biases(extra_conf)); |
| parse->check_keywords(extra_conf, "colvarmodule"); |
extra_conf.clear(); | extra_conf.clear(); |
if (get_error() != COLVARS_OK) return get_error(); | if (get_error() != COLVARS_OK) return get_error(); |
} | } |
| |
variables_active()->resize(0); | variables_active()->resize(0); |
variables_active()->reserve(variables()->size()); | variables_active()->reserve(variables()->size()); |
for (cvi = variables()->begin(); cvi != variables()->end(); cvi++) { | for (cvi = variables()->begin(); cvi != variables()->end(); cvi++) { |
(*cvi)->feature_states[colvardeps::f_cv_active]->enabled = | (*cvi)->set_enabled(colvardeps::f_cv_active, |
(step_absolute() % (*cvi)->get_time_step_factor() == 0); | step_absolute() % (*cvi)->get_time_step_factor() == 0); |
variables_active()->push_back(*cvi); | variables_active()->push_back(*cvi); |
} | } |
| |
| |
std::vector<colvarbias *>::iterator bi; | std::vector<colvarbias *>::iterator bi; |
int error_code = COLVARS_OK; | int error_code = COLVARS_OK; |
| |
| // Total bias energy is reset before calling scripted biases |
| total_bias_energy = 0.0; |
| |
// update the list of active biases | // update the list of active biases |
biases_active()->resize(0); | biases_active()->resize(0); |
biases_active()->reserve(biases.size()); | biases_active()->reserve(biases.size()); |
| |
cvm::decrease_depth(); | cvm::decrease_depth(); |
} | } |
| |
cvm::real total_bias_energy = 0.0; | |
for (bi = biases_active()->begin(); bi != biases_active()->end(); bi++) { | for (bi = biases_active()->begin(); bi != biases_active()->end(); bi++) { |
total_bias_energy += (*bi)->get_energy(); | total_bias_energy += (*bi)->get_energy(); |
} | } |
| |
if (cvm::debug()) | |
cvm::log("Adding total bias energy: " + cvm::to_str(total_bias_energy) + "\n"); | |
proxy->add_energy(total_bias_energy); | |
return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); | return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK); |
} | } |
| |
| |
error_code |= calc_scripted_forces(); | error_code |= calc_scripted_forces(); |
} | } |
| |
| // Now we have collected energies from both built-in and scripted biases |
| if (cvm::debug()) |
| cvm::log("Adding total bias energy: " + cvm::to_str(total_bias_energy) + "\n"); |
| proxy->add_energy(total_bias_energy); |
| |
cvm::real total_colvar_energy = 0.0; | cvm::real total_colvar_energy = 0.0; |
// sum up the forces for each colvar, including wall forces | // sum up the forces for each colvar, including wall forces |
// and integrate any internal | // and integrate any internal |