From dc74333c2ae68ab777f21c509d7f272b5835db55 Mon Sep 17 00:00:00 2001 From: carlocamilloni <carlo.camilloni@gmail.com> Date: Sat, 13 Apr 2019 21:44:26 +0200 Subject: [PATCH] gmx2019.1 patch cleaned the new organisatoion of the gromacs source code allows simplifying our patch. Multi-sim is now tested at least for multiple walkers metad --- .../src/gromacs/mdlib/force.cpp | 5 +- .../src/gromacs/mdrun/legacymdrunoptions.cpp | 1 - .../src/gromacs/mdrun/legacymdrunoptions.h | 1 - .../src/gromacs/mdrun/minimize.cpp | 49 +++++++++---------- 4 files changed, 26 insertions(+), 30 deletions(-) diff --git a/patches/gromacs-2019.1.diff/src/gromacs/mdlib/force.cpp b/patches/gromacs-2019.1.diff/src/gromacs/mdlib/force.cpp index babdf19af..781a63d71 100644 --- a/patches/gromacs-2019.1.diff/src/gromacs/mdlib/force.cpp +++ b/patches/gromacs-2019.1.diff/src/gromacs/mdlib/force.cpp @@ -81,7 +81,6 @@ #include "../../../Plumed.h" int plumedswitch=0; plumed plumedmain; -void(*plumedcmd)(plumed,const char*,const void*)=NULL; /* END PLUMED */ void ns(FILE *fp, @@ -603,8 +602,8 @@ void do_force_lowlevel(t_forcerec *fr, /* PLUMED */ if(plumedswitch){ int plumedNeedsEnergy; - (*plumedcmd)(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); - if(!plumedNeedsEnergy) (*plumedcmd)(plumedmain,"performCalc",NULL); + plumed_cmd(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); + if(!plumedNeedsEnergy) plumed_cmd(plumedmain,"performCalc",NULL); } /* END PLUMED */ } diff --git a/patches/gromacs-2019.1.diff/src/gromacs/mdrun/legacymdrunoptions.cpp b/patches/gromacs-2019.1.diff/src/gromacs/mdrun/legacymdrunoptions.cpp index 614fd9d6c..370262486 100644 --- a/patches/gromacs-2019.1.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +++ b/patches/gromacs-2019.1.diff/src/gromacs/mdrun/legacymdrunoptions.cpp @@ -211,7 +211,6 @@ int LegacyMdrunOptions::updateFromCommandLine(int argc, char **argv, ArrayRef<co plumedswitch=0; if (opt2bSet("-plumed", static_cast<int>(filenames.size()), filenames.data())) plumedswitch=1; if(plumedswitch){ - plumedcmd=plumed_cmd; int real_precision=sizeof(real); real energyUnits=1.0; real lengthUnits=1.0; diff --git a/patches/gromacs-2019.1.diff/src/gromacs/mdrun/legacymdrunoptions.h b/patches/gromacs-2019.1.diff/src/gromacs/mdrun/legacymdrunoptions.h index 5205b7729..01454f926 100644 --- a/patches/gromacs-2019.1.diff/src/gromacs/mdrun/legacymdrunoptions.h +++ b/patches/gromacs-2019.1.diff/src/gromacs/mdrun/legacymdrunoptions.h @@ -62,7 +62,6 @@ #include "../../../Plumed.h" extern int plumedswitch; extern plumed plumedmain; -extern void(*plumedcmd)(plumed,const char*,const void*); /* END PLUMED */ /* PLUMED HREX */ diff --git a/patches/gromacs-2019.1.diff/src/gromacs/mdrun/minimize.cpp b/patches/gromacs-2019.1.diff/src/gromacs/mdrun/minimize.cpp index 62a5a07a0..e677e23f3 100644 --- a/patches/gromacs-2019.1.diff/src/gromacs/mdrun/minimize.cpp +++ b/patches/gromacs-2019.1.diff/src/gromacs/mdrun/minimize.cpp @@ -106,7 +106,6 @@ #include "../../../Plumed.h" extern int plumedswitch; extern plumed plumedmain; -extern void(*plumedcmd)(plumed,const char*,const void*); /* END PLUMED */ //! Utility structure for manipulating states during EM @@ -504,36 +503,36 @@ static void init_em(FILE *fplog, /* PLUMED */ if(plumedswitch){ if(ms && ms->nsim>1) { - if(MASTER(cr)) (*plumedcmd) (plumedmain,"GREX setMPIIntercomm",&ms->mpi_comm_masters); + if(MASTER(cr)) plumed_cmd(plumedmain,"GREX setMPIIntercomm",&ms->mpi_comm_masters); if(PAR(cr)){ if(DOMAINDECOMP(cr)) { - (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); + plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->dd->mpi_comm_all); }else{ - (*plumedcmd) (plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); + plumed_cmd(plumedmain,"GREX setMPIIntracomm",&cr->mpi_comm_mysim); } } - (*plumedcmd) (plumedmain,"GREX init",NULL); + plumed_cmd(plumedmain,"GREX init",NULL); } if(PAR(cr)){ if(DOMAINDECOMP(cr)) { - (*plumedcmd) (plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); + plumed_cmd(plumedmain,"setMPIComm",&cr->dd->mpi_comm_all); }else{ - (*plumedcmd) (plumedmain,"setMPIComm",&cr->mpi_comm_mysim); + plumed_cmd(plumedmain,"setMPIComm",&cr->mpi_comm_mysim); } } - (*plumedcmd) (plumedmain,"setNatoms",&top_global->natoms); - (*plumedcmd) (plumedmain,"setMDEngine","gromacs"); - (*plumedcmd) (plumedmain,"setLog",fplog); + plumed_cmd(plumedmain,"setNatoms",&top_global->natoms); + plumed_cmd(plumedmain,"setMDEngine","gromacs"); + plumed_cmd(plumedmain,"setLog",fplog); real real_delta_t; real_delta_t=ir->delta_t; - (*plumedcmd) (plumedmain,"setTimestep",&real_delta_t); - (*plumedcmd) (plumedmain,"init",NULL); + plumed_cmd(plumedmain,"setTimestep",&real_delta_t); + plumed_cmd(plumedmain,"init",NULL); if(PAR(cr)){ if(DOMAINDECOMP(cr)) { int nat_home = dd_numHomeAtoms(*cr->dd); - (*plumedcmd) (plumedmain,"setAtomsNlocal",&nat_home); - (*plumedcmd) (plumedmain,"setAtomsGatindex",cr->dd->globalAtomIndices.data()); + plumed_cmd(plumedmain,"setAtomsNlocal",&nat_home); + plumed_cmd(plumedmain,"setAtomsGatindex",cr->dd->globalAtomIndices.data()); } } @@ -916,16 +915,16 @@ EnergyEvaluator::run(em_state_t *ems, rvec mu_tot, int plumedNeedsEnergy=0; matrix plumed_vir; if(plumedswitch){ - long int lstep=count; (*plumedcmd)(plumedmain,"setStepLong",&lstep); - (*plumedcmd) (plumedmain,"setPositions",&ems->s.x[0][0]); - (*plumedcmd) (plumedmain,"setMasses",&mdAtoms->mdatoms()->massT[0]); - (*plumedcmd) (plumedmain,"setCharges",&mdAtoms->mdatoms()->chargeA[0]); - (*plumedcmd) (plumedmain,"setBox",&ems->s.box[0][0]); - (*plumedcmd) (plumedmain,"prepareCalc",NULL); - (*plumedcmd) (plumedmain,"setForces",&ems->f[0][0]); - (*plumedcmd) (plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); + long int lstep=count; plumed_cmd(plumedmain,"setStepLong",&lstep); + plumed_cmd(plumedmain,"setPositions",&ems->s.x[0][0]); + plumed_cmd(plumedmain,"setMasses",&mdAtoms->mdatoms()->massT[0]); + plumed_cmd(plumedmain,"setCharges",&mdAtoms->mdatoms()->chargeA[0]); + plumed_cmd(plumedmain,"setBox",&ems->s.box[0][0]); + plumed_cmd(plumedmain,"prepareCalc",NULL); + plumed_cmd(plumedmain,"setForces",&ems->f[0][0]); + plumed_cmd(plumedmain,"isEnergyNeeded",&plumedNeedsEnergy); clear_mat(plumed_vir); - (*plumedcmd) (plumedmain,"setVirial",&plumed_vir[0][0]); + plumed_cmd(plumedmain,"setVirial",&plumed_vir[0][0]); } /* END PLUMED */ @@ -947,8 +946,8 @@ EnergyEvaluator::run(em_state_t *ems, rvec mu_tot, if(plumedswitch){ if(plumedNeedsEnergy) { msmul(force_vir,2.0,plumed_vir); - (*plumedcmd) (plumedmain,"setEnergy",&enerd->term[F_EPOT]); - (*plumedcmd) (plumedmain,"performCalc",NULL); + plumed_cmd(plumedmain,"setEnergy",&enerd->term[F_EPOT]); + plumed_cmd(plumedmain,"performCalc",NULL); msmul(plumed_vir,0.5,force_vir); } else { msmul(plumed_vir,0.5,plumed_vir); -- GitLab