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"