Commit 5810937e authored by sjplimp's avatar sjplimp
Browse files

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@4685 f3b2605a-c512-4ea7-a41b-209d697bcdaa
parent 0916c0fa
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -84,8 +84,9 @@ Fix::Fix(LAMMPS *lmp, int narg, char **arg) : Pointers(lmp)
  POST_FORCE_RESPA = 4096;
  FINAL_INTEGRATE_RESPA = 8192;
  MIN_PRE_EXCHANGE = 16384;
  MIN_POST_FORCE = 32768;
  MIN_ENERGY = 65536;
  MIN_PRE_FORCE = 32768;
  MIN_POST_FORCE = 65536;
  MIN_ENERGY = 121072;
}

/* ---------------------------------------------------------------------- */
+4 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ class Fix : protected Pointers {
  int PRE_FORCE,POST_FORCE,FINAL_INTEGRATE,END_OF_STEP,THERMO_ENERGY;
  int INITIAL_INTEGRATE_RESPA,POST_INTEGRATE_RESPA;
  int PRE_FORCE_RESPA,POST_FORCE_RESPA,FINAL_INTEGRATE_RESPA;
  int MIN_PRE_EXCHANGE,MIN_POST_FORCE,MIN_ENERGY;
  int MIN_PRE_EXCHANGE,MIN_PRE_FORCE,MIN_POST_FORCE,MIN_ENERGY;

  Fix(class LAMMPS *, int, char **);
  virtual ~Fix();
@@ -114,13 +114,16 @@ class Fix : protected Pointers {
  virtual int size_restart(int) {return 0;}
  virtual int maxsize_restart() {return 0;}

  virtual void setup_pre_force_respa(int, int) {}
  virtual void initial_integrate_respa(int, int, int) {}
  virtual void post_integrate_respa(int, int) {}
  virtual void pre_force_respa(int, int, int) {}
  virtual void post_force_respa(int, int, int) {}
  virtual void final_integrate_respa(int, int) {}

  virtual void min_setup_pre_force(int) {}
  virtual void min_pre_exchange() {}
  virtual void min_pre_force(int) {}
  virtual void min_post_force(int) {}

  virtual double min_energy(double *) {return 0.0;}
+5 −2
Original line number Diff line number Diff line
@@ -229,6 +229,7 @@ void Min::setup()

  ev_set(update->ntimestep);
  force_clear();
  modify->setup_pre_force(vflag);

  if (force->pair) force->pair->compute(eflag,vflag);

@@ -299,6 +300,7 @@ void Min::setup_minimal(int flag)

  ev_set(update->ntimestep);
  force_clear();
  modify->setup_pre_force(vflag);

  if (force->pair) force->pair->compute(eflag,vflag);

@@ -454,6 +456,7 @@ double Min::energy_force(int resetflag)

  ev_set(update->ntimestep);
  force_clear();
  if (modify->n_min_pre_force) modify->min_pre_force(vflag);

  timer->stamp();

+34 −6
Original line number Diff line number Diff line
@@ -47,8 +47,9 @@ using namespace LAMMPS_NS;
#define POST_FORCE_RESPA         4096
#define FINAL_INTEGRATE_RESPA    8192
#define MIN_PRE_EXCHANGE        16384
#define MIN_POST_FORCE          32768
#define MIN_ENERGY              65536
#define MIN_PRE_FORCE           32768
#define MIN_POST_FORCE          65536
#define MIN_ENERGY             131072

#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
@@ -66,7 +67,7 @@ Modify::Modify(LAMMPS *lmp) : Pointers(lmp)
  n_final_integrate = n_end_of_step = n_thermo_energy = 0;
  n_initial_integrate_respa = n_post_integrate_respa = 0;
  n_pre_force_respa = n_post_force_respa = n_final_integrate_respa = 0;
  n_min_pre_exchange = n_min_post_force = n_min_energy = 0;
  n_min_pre_exchange = n_min_pre_force = n_min_post_force = n_min_energy = 0;

  fix = NULL;
  fmask = NULL;
@@ -78,7 +79,8 @@ Modify::Modify(LAMMPS *lmp) : Pointers(lmp)
  list_initial_integrate_respa = list_post_integrate_respa = NULL;
  list_pre_force_respa = list_post_force_respa = NULL;
  list_final_integrate_respa = NULL;
  list_min_pre_exchange = list_min_post_force = list_min_energy = NULL;
  list_min_pre_exchange = list_min_pre_force = 
    list_min_post_force = list_min_energy = NULL;

  end_of_step_every = NULL;

@@ -125,6 +127,7 @@ Modify::~Modify()
  delete [] list_post_force_respa;
  delete [] list_final_integrate_respa;
  delete [] list_min_pre_exchange;
  delete [] list_min_pre_force;
  delete [] list_min_post_force;
  delete [] list_min_energy;

@@ -170,6 +173,7 @@ void Modify::init()
	    n_final_integrate_respa,list_final_integrate_respa);

  list_init(MIN_PRE_EXCHANGE,n_min_pre_exchange,list_min_pre_exchange);
  list_init(MIN_PRE_FORCE,n_min_pre_force,list_min_pre_force);
  list_init(MIN_POST_FORCE,n_min_post_force,list_min_post_force);
  list_init(MIN_ENERGY,n_min_energy,list_min_energy);

@@ -254,8 +258,12 @@ void Modify::setup(int vflag)

void Modify::setup_pre_force(int vflag)
{
  if (update->whichflag == 1)
    for (int i = 0; i < n_pre_force; i++)
      fix[list_min_pre_force[i]]->setup_pre_force(vflag);
  else if (update->whichflag == 2)
    for (int i = 0; i < n_pre_force; i++)
    fix[list_pre_force[i]]->setup_pre_force(vflag);
      fix[list_min_pre_force[i]]->min_setup_pre_force(vflag);
}

/* ----------------------------------------------------------------------
@@ -354,6 +362,16 @@ double Modify::thermo_energy()
  return energy;
}

/* ----------------------------------------------------------------------
   setup rRESPA pre_force call, only for relevant fixes
------------------------------------------------------------------------- */

void Modify::setup_pre_force_respa(int vflag, int ilevel)
{
  for (int i = 0; i < n_pre_force; i++)
    fix[list_pre_force[i]]->setup_pre_force_respa(vflag,ilevel);
}

/* ----------------------------------------------------------------------
   1st half of rRESPA integrate call, only for relevant fixes
------------------------------------------------------------------------- */
@@ -415,6 +433,16 @@ void Modify::min_pre_exchange()
    fix[list_min_pre_exchange[i]]->min_pre_exchange();
}

/* ----------------------------------------------------------------------
   minimizer pre-force call, only for relevant fixes
------------------------------------------------------------------------- */

void Modify::min_pre_force(int vflag)
{
  for (int i = 0; i < n_min_pre_force; i++)
    fix[list_min_pre_force[i]]->min_pre_force(vflag);
}

/* ----------------------------------------------------------------------
   minimizer force adjustment call, only for relevant fixes
------------------------------------------------------------------------- */
+6 −2
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ class Modify : protected Pointers {
  int n_final_integrate,n_end_of_step,n_thermo_energy;
  int n_initial_integrate_respa,n_post_integrate_respa;
  int n_pre_force_respa,n_post_force_respa,n_final_integrate_respa;
  int n_min_pre_exchange,n_min_post_force,n_min_energy;
  int n_min_pre_exchange,n_min_pre_force,n_min_post_force,n_min_energy;

  int restart_pbc_any;       // 1 if any fix sets restart_pbc
  int nfix_restart_global;   // stored fix global info from restart file
@@ -55,13 +55,16 @@ class Modify : protected Pointers {
  void end_of_step();
  double thermo_energy();

  void setup_pre_force_respa(int, int);
  void initial_integrate_respa(int, int, int);
  void post_integrate_respa(int, int);
  void pre_force_respa(int, int, int);
  void post_force_respa(int, int, int);
  void final_integrate_respa(int, int);

  void setup_min_pre_force(int);
  void min_pre_exchange();
  void min_pre_force(int);
  void min_post_force(int);

  double min_energy(double *);
@@ -104,7 +107,8 @@ class Modify : protected Pointers {
  int *list_initial_integrate_respa,*list_post_integrate_respa;
  int *list_pre_force_respa,*list_post_force_respa;
  int *list_final_integrate_respa;
  int *list_min_pre_exchange,*list_min_post_force,*list_min_energy;
  int *list_min_pre_exchange,*list_min_pre_force;
  int *list_min_post_force,*list_min_energy;

  int *end_of_step_every;

Loading