Collected fixes and updates to Colvars library
This commit includes several fixes to moving restraints; also added is support for runtime integration of 2D and 3D PMFs from ABF. Mostly changes to existing member functions, with few additions in classes not directly accessible by LAMMPS. Also removed are calls to std::pow(), replaced by a copy of MathSpecial::powint(). Relevant commits in Colvars repository: 7307b5c 2017-12-14 Doc improvements [Giacomo Fiorin] 7f86f37 2017-12-14 Allow K-changing restraints computing accumulated work; fix staged-k TI estimator [Giacomo Fiorin] 7c1c175 2017-12-14 Fix 1D ABF trying to do pABF [Jérôme Hénin] b94aa7e 2017-11-16 Unify PMF output for 1D, 2D and 3D in ABF [Jérôme Hénin] 771a88f 2017-11-15 Poisson integration for all BC in 2d and 3d [Jérôme Hénin] 6af4d60 2017-12-01 Print message when issuing cv delete in VMD [Giacomo Fiorin] 4413972 2017-11-30 Check for homogeneous colvar to set it periodic [Jérôme Hénin] 95fe4b2 2017-11-06 Allow abf_integrate to start in bin with 1 sample [Jérôme Hénin] 06eea27 2017-10-23 Shorten a few constructs by using the power function [Giacomo Fiorin] 3165dfb 2017-10-20 Move includes of colvarproxy.h from headers to files [Giacomo Fiorin] 32a867b 2017-10-20 Add optimized powint function from LAMMPS headers [Giacomo Fiorin] 3ad070a 2017-10-20 Remove some unused includes, isolate calls to std::pow() [Giacomo Fiorin] 0aaf540 2017-10-20 Replace all calls to std::pow() where the exponent is not an integer [Giacomo Fiorin]
This commit is contained in:
@ -415,7 +415,7 @@ public:
|
||||
};
|
||||
|
||||
|
||||
/// Method for scripting language interface (Tcl or Python)
|
||||
/// Methods for scripting language interface (Tcl or Python)
|
||||
class colvarproxy_script {
|
||||
|
||||
public:
|
||||
@ -427,7 +427,7 @@ public:
|
||||
virtual ~colvarproxy_script();
|
||||
|
||||
/// Convert a script object (Tcl or Python call argument) to a C string
|
||||
virtual char *script_obj_to_str(unsigned char *obj);
|
||||
virtual char const *script_obj_to_str(unsigned char *obj);
|
||||
|
||||
/// Pointer to the scripting interface object
|
||||
/// (does not need to be allocated in a new interface)
|
||||
@ -454,6 +454,46 @@ public:
|
||||
};
|
||||
|
||||
|
||||
/// Methods for using Tcl within Colvars
|
||||
class colvarproxy_tcl {
|
||||
|
||||
public:
|
||||
|
||||
/// Constructor
|
||||
colvarproxy_tcl();
|
||||
|
||||
/// Destructor
|
||||
virtual ~colvarproxy_tcl();
|
||||
|
||||
/// Is Tcl available? (trigger initialization if needed)
|
||||
int tcl_available();
|
||||
|
||||
/// Tcl implementation of script_obj_to_str()
|
||||
char const *tcl_obj_to_str(unsigned char *obj);
|
||||
|
||||
/// Run a user-defined colvar forces script
|
||||
int tcl_run_force_callback();
|
||||
|
||||
int tcl_run_colvar_callback(
|
||||
std::string const &name,
|
||||
std::vector<const colvarvalue *> const &cvcs,
|
||||
colvarvalue &value);
|
||||
|
||||
int tcl_run_colvar_gradient_callback(
|
||||
std::string const &name,
|
||||
std::vector<const colvarvalue *> const &cvcs,
|
||||
std::vector<cvm::matrix2d<cvm::real> > &gradient);
|
||||
|
||||
protected:
|
||||
|
||||
/// Pointer to Tcl interpreter object
|
||||
void *_tcl_interp;
|
||||
|
||||
/// Set Tcl pointers
|
||||
virtual void init_tcl_pointers();
|
||||
};
|
||||
|
||||
|
||||
/// Methods for data input/output
|
||||
class colvarproxy_io {
|
||||
|
||||
@ -540,6 +580,7 @@ class colvarproxy
|
||||
public colvarproxy_smp,
|
||||
public colvarproxy_replicas,
|
||||
public colvarproxy_script,
|
||||
public colvarproxy_tcl,
|
||||
public colvarproxy_io
|
||||
{
|
||||
|
||||
@ -554,6 +595,15 @@ public:
|
||||
/// Destructor
|
||||
virtual ~colvarproxy();
|
||||
|
||||
/// Request deallocation of the module (currently only implemented by VMD)
|
||||
virtual int request_deletion();
|
||||
|
||||
/// Whether deallocation was requested
|
||||
inline bool delete_requested()
|
||||
{
|
||||
return b_delete_requested;
|
||||
}
|
||||
|
||||
/// \brief Reset proxy state, e.g. requested atoms
|
||||
virtual int reset();
|
||||
|
||||
@ -591,6 +641,9 @@ protected:
|
||||
/// Whether a simulation is running (warn against irrecovarable errors)
|
||||
bool b_simulation_running;
|
||||
|
||||
/// Whether the entire module should be deallocated by the host engine
|
||||
bool b_delete_requested;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user