diff -Naur lammps-27Aug09/doc/velocity.html lammps-1Sep09/doc/velocity.html
--- lammps-27Aug09/doc/velocity.html 2008-02-19 14:47:37.000000000 -0700
+++ lammps-1Sep09/doc/velocity.html 2009-08-27 13:01:52.000000000 -0600
@@ -140,7 +140,7 @@
simulation to create velocities, but only stores velocities for atoms
it owns. This can be a slow loop for a large simulation. If atoms
were read from a data file, the velocity assigned to a particular atom
-will be the same, regardless of how many processors are being used.
+will be the same, independent of how many processors are being used.
This will not be the case if atoms were created using the
create_atoms command, since atom IDs will likely
be assigned to atoms differently.
@@ -155,9 +155,10 @@
If loop = geom, then each processor loops over only its atoms. For
each atom a unique random number seed is created, based on the atom's
xyz coordinates. A velocity is generated using that seed. This is a
-fast loop and will always give the same set of velocities, independent
-of how many processors are used. However, the generated velocities
-may be more correlated than if the all or local options are used.
+fast loop and the velocity assigned to a particular atom will be the
+same, independent of how many processors are used. However, the set
+of generated velocities may be more correlated than if the all or
+local options are used.
Note that the loop geom option will not necessarily assign identical
velocities for two simulations run on different machines. This is
diff -Naur lammps-27Aug09/doc/velocity.txt lammps-1Sep09/doc/velocity.txt
--- lammps-27Aug09/doc/velocity.txt 2008-02-19 14:47:37.000000000 -0700
+++ lammps-1Sep09/doc/velocity.txt 2009-08-27 13:01:52.000000000 -0600
@@ -132,7 +132,7 @@
simulation to create velocities, but only stores velocities for atoms
it owns. This can be a slow loop for a large simulation. If atoms
were read from a data file, the velocity assigned to a particular atom
-will be the same, regardless of how many processors are being used.
+will be the same, independent of how many processors are being used.
This will not be the case if atoms were created using the
"create_atoms"_create_atoms.html command, since atom IDs will likely
be assigned to atoms differently.
@@ -147,9 +147,10 @@
If loop = geom, then each processor loops over only its atoms. For
each atom a unique random number seed is created, based on the atom's
xyz coordinates. A velocity is generated using that seed. This is a
-fast loop and will always give the same set of velocities, independent
-of how many processors are used. However, the generated velocities
-may be more correlated than if the {all} or {local} options are used.
+fast loop and the velocity assigned to a particular atom will be the
+same, independent of how many processors are used. However, the set
+of generated velocities may be more correlated than if the {all} or
+{local} options are used.
Note that the {loop geom} option will not necessarily assign identical
velocities for two simulations run on different machines. This is
diff -Naur lammps-27Aug09/lib/meam/meam_setup_done.F lammps-1Sep09/lib/meam/meam_setup_done.F
--- lammps-27Aug09/lib/meam/meam_setup_done.F 2009-08-18 11:02:09.000000000 -0600
+++ lammps-1Sep09/lib/meam/meam_setup_done.F 2009-08-31 10:50:13.000000000 -0600
@@ -105,8 +105,21 @@
c If inext values to this timestep
- // call eng_force to insure vflag is set when forces computed
+ // call engergy_force() to insure vflag is set when forces computed
// output->write does final output for thermo, dump, restart files
// add ntimestep to all computes that store invocation times
// since are hardwireing call to thermo/dumps and computes may not be ready
@@ -392,6 +392,7 @@
comm->communicate();
timer->stamp(TIME_COMM);
} else {
+ if (modify->n_min_pre_exchange) modify->min_pre_exchange();
if (triclinic) domain->x2lamda(atom->nlocal);
domain->pbc();
if (domain->box_change) {
diff -Naur lammps-27Aug09/src/modify.cpp lammps-1Sep09/src/modify.cpp
--- lammps-27Aug09/src/modify.cpp 2009-08-18 11:54:37.000000000 -0600
+++ lammps-1Sep09/src/modify.cpp 2009-08-28 14:28:23.000000000 -0600
@@ -50,8 +50,9 @@
#define PRE_FORCE_RESPA 2048
#define POST_FORCE_RESPA 4096
#define FINAL_INTEGRATE_RESPA 8192
-#define MIN_POST_FORCE 16384
-#define MIN_ENERGY 32768
+#define MIN_PRE_EXCHANGE 16384
+#define MIN_POST_FORCE 32768
+#define MIN_ENERGY 65536
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
@@ -69,7 +70,7 @@
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_post_force = n_min_energy = 0;
+ n_min_pre_exchange = n_min_post_force = n_min_energy = 0;
fix = NULL;
fmask = NULL;
@@ -81,7 +82,7 @@
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_post_force = list_min_energy = NULL;
+ list_min_pre_exchange = list_min_post_force = list_min_energy = NULL;
end_of_step_every = NULL;
@@ -127,6 +128,7 @@
delete [] list_pre_force_respa;
delete [] list_post_force_respa;
delete [] list_final_integrate_respa;
+ delete [] list_min_pre_exchange;
delete [] list_min_post_force;
delete [] list_min_energy;
@@ -171,6 +173,7 @@
list_init(FINAL_INTEGRATE_RESPA,
n_final_integrate_respa,list_final_integrate_respa);
+ list_init(MIN_PRE_EXCHANGE,n_min_pre_exchange,list_min_pre_exchange);
list_init(MIN_POST_FORCE,n_min_post_force,list_min_post_force);
list_init(MIN_ENERGY,n_min_energy,list_min_energy);
@@ -389,6 +392,16 @@
}
/* ----------------------------------------------------------------------
+ minimizer pre-exchange call, only for relevant fixes
+------------------------------------------------------------------------- */
+
+void Modify::min_pre_exchange()
+{
+ for (int i = 0; i < n_min_pre_exchange; i++)
+ fix[list_min_pre_exchange[i]]->min_pre_exchange();
+}
+
+/* ----------------------------------------------------------------------
minimizer force adjustment call, only for relevant fixes
------------------------------------------------------------------------- */
diff -Naur lammps-27Aug09/src/modify.h lammps-1Sep09/src/modify.h
--- lammps-27Aug09/src/modify.h 2009-08-14 14:54:10.000000000 -0600
+++ lammps-1Sep09/src/modify.h 2009-08-28 14:28:23.000000000 -0600
@@ -27,7 +27,7 @@
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_post_force,n_min_energy;
+ int n_min_pre_exchange,n_min_post_force,n_min_energy;
int nfix_restart_peratom;
int restart_pbc_any; // 1 if any fix sets restart_pbc
@@ -59,6 +59,7 @@
void post_force_respa(int,int,int);
void final_integrate_respa(int);
+ void min_pre_exchange();
void min_post_force(int);
double min_energy(double *);
@@ -99,7 +100,7 @@
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_post_force,*list_min_energy;
+ int *list_min_pre_exchange,*list_min_post_force,*list_min_energy;
int *end_of_step_every;
diff -Naur lammps-27Aug09/src/style_user_packages.h lammps-1Sep09/src/style_user_packages.h
--- lammps-27Aug09/src/style_user_packages.h 2008-05-15 16:06:17.000000000 -0600
+++ lammps-1Sep09/src/style_user_packages.h 2009-08-28 14:28:23.000000000 -0600
@@ -15,6 +15,7 @@
// see the README files in individual user-package directories for details
#include "style_user_ackland.h"
+//#include "style_user_atc.h"
#include "style_user_cg_cmm.h"
#include "style_user_ewaldn.h"
#include "style_user_smd.h"