From dd36721943448bdd93f8a544b7c8dbf7f9b3f085 Mon Sep 17 00:00:00 2001 From: sjplimp Date: Thu, 15 Jan 2015 22:11:46 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@12943 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/USER-FEP/fix_adapt_fep.cpp | 20 ++++++++++++++++++++ src/USER-FEP/fix_adapt_fep.h | 3 +++ src/fix_adapt.cpp | 20 ++++++++++++++++++++ src/fix_adapt.h | 3 +++ 4 files changed, 46 insertions(+) diff --git a/src/USER-FEP/fix_adapt_fep.cpp b/src/USER-FEP/fix_adapt_fep.cpp index 793b7a3793..95294bc3cb 100644 --- a/src/USER-FEP/fix_adapt_fep.cpp +++ b/src/USER-FEP/fix_adapt_fep.cpp @@ -30,6 +30,7 @@ #include "fix_store.h" #include "input.h" #include "variable.h" +#include "respa.h" #include "math_const.h" #include "memory.h" #include "error.h" @@ -383,6 +384,9 @@ void FixAdaptFEP::init() if (ifix < 0) error->all(FLERR,"Could not find fix adapt storage fix ID"); fix_chg = (FixStore *) modify->fix[ifix]; } + + if (strstr(update->integrate_style,"respa")) + nlevels_respa = ((Respa *) update->integrate)->nlevels; } /* ---------------------------------------------------------------------- */ @@ -394,6 +398,14 @@ void FixAdaptFEP::setup_pre_force(int vflag) /* ---------------------------------------------------------------------- */ +void FixAdaptFEP::setup_pre_force_respa(int vflag, int ilevel) +{ + if (ilevel < nlevels_respa-1) return; + setup_pre_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + void FixAdaptFEP::pre_force(int vflag) { if (nevery == 0) return; @@ -412,6 +424,14 @@ void FixAdaptFEP::pre_force(int vflag) /* ---------------------------------------------------------------------- */ +void FixAdaptFEP::pre_force_respa(int vflag, int ilevel) +{ + if (ilevel < nlevels_respa-1) return; + setup_pre_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + void FixAdaptFEP::post_run() { if (resetflag) restore_settings(); diff --git a/src/USER-FEP/fix_adapt_fep.h b/src/USER-FEP/fix_adapt_fep.h index fae5071376..a535ba8c79 100644 --- a/src/USER-FEP/fix_adapt_fep.h +++ b/src/USER-FEP/fix_adapt_fep.h @@ -37,10 +37,13 @@ class FixAdaptFEP : public Fix { void setup_pre_force(int); void pre_force(int); void post_run(); + void setup_pre_force_respa(int,int); + void pre_force_respa(int,int); private: int nadapt,resetflag,scaleflag,afterflag; int anypair; + int nlevels_respa; char *id_fix_diam,*id_fix_chg; class FixStore *fix_diam,*fix_chg; diff --git a/src/fix_adapt.cpp b/src/fix_adapt.cpp index 35632610a0..701f8d9474 100644 --- a/src/fix_adapt.cpp +++ b/src/fix_adapt.cpp @@ -26,6 +26,7 @@ #include "fix_store.h" #include "input.h" #include "variable.h" +#include "respa.h" #include "math_const.h" #include "memory.h" #include "error.h" @@ -368,6 +369,9 @@ void FixAdapt::init() if (ifix < 0) error->all(FLERR,"Could not find fix adapt storage fix ID"); fix_chg = (FixStore *) modify->fix[ifix]; } + + if (strstr(update->integrate_style,"respa")) + nlevels_respa = ((Respa *) update->integrate)->nlevels; } /* ---------------------------------------------------------------------- */ @@ -379,6 +383,14 @@ void FixAdapt::setup_pre_force(int vflag) /* ---------------------------------------------------------------------- */ +void FixAdapt::setup_pre_force_respa(int vflag, int ilevel) +{ + if (ilevel < nlevels_respa-1) return; + setup_pre_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + void FixAdapt::pre_force(int vflag) { if (nevery == 0) return; @@ -388,6 +400,14 @@ void FixAdapt::pre_force(int vflag) /* ---------------------------------------------------------------------- */ +void FixAdapt::pre_force_respa(int vflag, int ilevel) +{ + if (ilevel < nlevels_respa-1) return; + setup_pre_force(vflag); +} + +/* ---------------------------------------------------------------------- */ + void FixAdapt::post_run() { if (resetflag) restore_settings(); diff --git a/src/fix_adapt.h b/src/fix_adapt.h index ef187424ea..4ec88ca4e1 100644 --- a/src/fix_adapt.h +++ b/src/fix_adapt.h @@ -37,10 +37,13 @@ class FixAdapt : public Fix { void setup_pre_force(int); void pre_force(int); void post_run(); + void setup_pre_force_respa(int,int); + void pre_force_respa(int,int); private: int nadapt,resetflag,scaleflag; int anypair; + int nlevels_respa; char *id_fix_diam,*id_fix_chg; class FixStore *fix_diam,*fix_chg;