From b0263e87bbaa46a3560f4cc8ef79faa8ea8e9780 Mon Sep 17 00:00:00 2001 From: Giacomo Fiorin Date: Tue, 27 Dec 2016 17:16:32 -0500 Subject: [PATCH] Fix missing force with extended-Lagrangian mass --- lib/colvars/Makefile.colvars | 119 +++++++++++++++++++++++++++++++++++ lib/colvars/colvar.cpp | 7 +++ lib/colvars/colvarmodule.h | 2 +- 3 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 lib/colvars/Makefile.colvars diff --git a/lib/colvars/Makefile.colvars b/lib/colvars/Makefile.colvars new file mode 100644 index 0000000000..d1a2044038 --- /dev/null +++ b/lib/colvars/Makefile.colvars @@ -0,0 +1,119 @@ +# library build -*- makefile -*- for colvars module + +# which file will be copied to Makefile.lammps + +EXTRAMAKE = Makefile.lammps.empty + +# ------ SETTINGS ------ + +CXX = g++ +CXXFLAGS = -O2 -g -Wall -fPIC -funroll-loops # -DCOLVARS_DEBUG +ARCHIVE = ar +ARCHFLAG = -rscv +SHELL = /bin/sh + +# ------ DEFINITIONS ------ + +SRC = colvaratoms.cpp colvarbias_abf.cpp colvarbias_alb.cpp colvarbias.cpp \ + colvarbias_histogram.cpp colvarbias_meta.cpp colvarbias_restraint.cpp \ + colvarcomp_angles.cpp colvarcomp_coordnums.cpp colvarcomp.cpp \ + colvarcomp_distances.cpp colvarcomp_protein.cpp colvarcomp_rotations.cpp \ + colvardeps.cpp colvar.cpp colvargrid.cpp colvarmodule.cpp colvarparse.cpp \ + colvarscript.cpp colvartypes.cpp colvarvalue.cpp + +LIB = libcolvars.a +OBJ = $(SRC:.cpp=.o) +EXE = #colvars_standalone + +# ------ MAKE PROCEDURE ------ + +default: $(LIB) $(EXE) Makefile.lammps + +Makefile.lammps: + @cp $(EXTRAMAKE) Makefile.lammps + +$(LIB): $(OBJ) + $(ARCHIVE) $(ARFLAGS) $(LIB) $(OBJ) + +colvars_standalone: colvars_main.o colvarproxy_standalone.o $(LIB) + $(CXX) -o $@ $(CXXFLAGS) $^ + +# ------ MAKE FLAGS ------ + +.SUFFIXES: +.SUFFIXES: .cpp .o + +.PHONY: default clean + +# ------ COMPILE RULES ------ + +.cpp.o: + $(CXX) $(CXXFLAGS) -c $< + +# ------ DEPENDENCIES ------ +# +colvaratoms.o: colvaratoms.cpp colvarmodule.h colvartypes.h colvarproxy.h \ + colvarvalue.h colvarparse.h colvardeps.h colvaratoms.h +colvarbias_abf.o: colvarbias_abf.cpp colvarmodule.h colvartypes.h \ + colvarproxy.h colvarvalue.h colvar.h colvarparse.h colvardeps.h \ + colvarbias_abf.h colvarbias.h colvargrid.h +colvarbias_alb.o: colvarbias_alb.cpp colvarmodule.h colvartypes.h \ + colvarproxy.h colvarvalue.h colvarbias_alb.h colvar.h colvarparse.h \ + colvardeps.h colvarbias_restraint.h colvarbias.h +colvarbias.o: colvarbias.cpp colvarmodule.h colvartypes.h colvarproxy.h \ + colvarvalue.h colvarbias.h colvar.h colvarparse.h colvardeps.h +colvarbias_histogram.o: colvarbias_histogram.cpp colvarmodule.h \ + colvartypes.h colvarproxy.h colvarvalue.h colvar.h colvarparse.h \ + colvardeps.h colvarbias_histogram.h colvarbias.h colvargrid.h +colvarbias_meta.o: colvarbias_meta.cpp colvar.h colvarmodule.h \ + colvartypes.h colvarproxy.h colvarvalue.h colvarparse.h colvardeps.h \ + colvarbias_meta.h colvarbias.h colvargrid.h +colvarbias_restraint.o: colvarbias_restraint.cpp colvarmodule.h \ + colvartypes.h colvarproxy.h colvarvalue.h colvarbias_restraint.h \ + colvarbias.h colvar.h colvarparse.h colvardeps.h +colvarcomp_angles.o: colvarcomp_angles.cpp colvarmodule.h colvartypes.h \ + colvarproxy.h colvarvalue.h colvar.h colvarparse.h colvardeps.h \ + colvarcomp.h colvaratoms.h +colvarcomp_coordnums.o: colvarcomp_coordnums.cpp colvarmodule.h \ + colvartypes.h colvarproxy.h colvarvalue.h colvarparse.h colvardeps.h \ + colvaratoms.h colvar.h colvarcomp.h +colvarcomp.o: colvarcomp.cpp colvarmodule.h colvartypes.h colvarproxy.h \ + colvarvalue.h colvar.h colvarparse.h colvardeps.h colvarcomp.h \ + colvaratoms.h +colvarcomp_distances.o: colvarcomp_distances.cpp colvarmodule.h \ + colvartypes.h colvarproxy.h colvarvalue.h colvarparse.h colvardeps.h \ + colvar.h colvarcomp.h colvaratoms.h +colvarcomp_protein.o: colvarcomp_protein.cpp colvarmodule.h colvartypes.h \ + colvarproxy.h colvarvalue.h colvarparse.h colvardeps.h colvar.h \ + colvarcomp.h colvaratoms.h +colvarcomp_rotations.o: colvarcomp_rotations.cpp colvarmodule.h \ + colvartypes.h colvarproxy.h colvarvalue.h colvarparse.h colvardeps.h \ + colvar.h colvarcomp.h colvaratoms.h +colvar.o: colvar.cpp colvarmodule.h colvartypes.h colvarproxy.h \ + colvarvalue.h colvarparse.h colvardeps.h colvar.h colvarcomp.h \ + colvaratoms.h colvarscript.h colvarbias.h +colvardeps.o: colvardeps.cpp colvardeps.h colvarmodule.h colvartypes.h \ + colvarproxy.h colvarvalue.h colvarparse.h +colvargrid.o: colvargrid.cpp colvarmodule.h colvartypes.h colvarproxy.h \ + colvarvalue.h colvarparse.h colvardeps.h colvar.h colvarcomp.h \ + colvaratoms.h colvargrid.h +colvarmodule.o: colvarmodule.cpp colvarmodule.h colvartypes.h \ + colvarproxy.h colvarvalue.h colvarparse.h colvardeps.h colvar.h \ + colvarbias.h colvarbias_abf.h colvargrid.h colvarbias_alb.h \ + colvarbias_restraint.h colvarbias_histogram.h colvarbias_meta.h \ + colvarscript.h +colvarparse.o: colvarparse.cpp colvarmodule.h colvartypes.h colvarproxy.h \ + colvarvalue.h colvarparse.h +colvarscript.o: colvarscript.cpp colvarscript.h colvarmodule.h \ + colvartypes.h colvarproxy.h colvarvalue.h colvarbias.h colvar.h \ + colvarparse.h colvardeps.h +colvartypes.o: colvartypes.cpp colvarmodule.h colvartypes.h colvarproxy.h \ + colvarvalue.h colvarparse.h +colvarvalue.o: colvarvalue.cpp colvarmodule.h colvartypes.h colvarproxy.h \ + colvarvalue.h + +# ------ CLEAN ------ + +clean: + -rm *.o *~ $(LIB) + diff --git a/lib/colvars/colvar.cpp b/lib/colvars/colvar.cpp index 95a40084f5..d60a9e90f7 100644 --- a/lib/colvars/colvar.cpp +++ b/lib/colvars/colvar.cpp @@ -314,6 +314,9 @@ colvar::colvar(std::string const &conf) enable(f_cv_extended_Lagrangian); provide(f_cv_Langevin); + // The extended mass will apply forces + enable(f_cv_gradient); + xr.type(value()); vr.type(value()); fr.type(value()); @@ -1209,6 +1212,10 @@ cvm::real colvar::update_forces_energy() if (is_enabled(f_cv_extended_Lagrangian)) { + if (cvm::debug()) { + cvm::log("Updating extended-Lagrangian degrees of freedom.\n"); + } + cvm::real dt = cvm::dt(); colvarvalue f_ext(fr.type()); f_ext.reset(); diff --git a/lib/colvars/colvarmodule.h b/lib/colvars/colvarmodule.h index c63d04bcc4..0e98709adb 100644 --- a/lib/colvars/colvarmodule.h +++ b/lib/colvars/colvarmodule.h @@ -11,7 +11,7 @@ #define COLVARMODULE_H #ifndef COLVARS_VERSION -#define COLVARS_VERSION "2016-12-22" +#define COLVARS_VERSION "2016-12-27" #endif #ifndef COLVARS_DEBUG