diff -Naur lammps-19May08/src/MAKE/Makefile.openmpi lammps-20May08/src/MAKE/Makefile.openmpi --- lammps-19May08/src/MAKE/Makefile.openmpi 2008-02-08 14:18:51.000000000 -0700 +++ lammps-20May08/src/MAKE/Makefile.openmpi 2008-05-15 16:45:22.000000000 -0600 @@ -7,7 +7,7 @@ CC = mpic++ CCFLAGS = -O2 -funroll-loops -DFFT_FFTW -DLAMMPS_GZIP \ - -fstrict-aliasing -Wall + -fstrict-aliasing -Wall -W -Wno-uninitialized NOALIAS = -fno-strict-aliasing DEPFLAGS = -M LINK = mpic++ diff -Naur lammps-19May08/src/Makefile lammps-20May08/src/Makefile --- lammps-19May08/src/Makefile 2008-05-15 16:06:17.000000000 -0600 +++ lammps-20May08/src/Makefile 2008-05-15 16:45:22.000000000 -0600 @@ -64,7 +64,7 @@ @cp -p $(SRC) $(INC) Obj_$@ @cp MAKE/Makefile.$@ Obj_$@/Makefile @cd Obj_$@; \ - $(MAKE) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" ../$(EXE) + $(MAKE) $(MFLAGS) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" ../$(EXE) @if [ -d Obj_$@ ]; then cd Obj_$@; rm -f $(SRC) $(INC) Makefile*; fi # Remove machine-specific object files diff -Naur lammps-19May08/src/Makefile.lib lammps-20May08/src/Makefile.lib --- lammps-19May08/src/Makefile.lib 2008-02-22 07:28:58.000000000 -0700 +++ lammps-20May08/src/Makefile.lib 2008-05-15 16:45:22.000000000 -0600 @@ -30,5 +30,5 @@ @cp -p $(SRC) $(INC) Obj_$@ @cp MAKE/Makefile.$@ Obj_$@/Makefile @cd Obj_$@; \ - $(MAKE) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" lib + $(MAKE) $(MFLAGS) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" lib @if [ -d Obj_$@ ]; then cd Obj_$@; rm -f $(SRC) $(INC) Makefile*; fi diff -Naur lammps-19May08/src/Makefile.list lammps-20May08/src/Makefile.list --- lammps-19May08/src/Makefile.list 2008-02-22 07:28:58.000000000 -0700 +++ lammps-20May08/src/Makefile.list 2008-05-15 16:45:22.000000000 -0600 @@ -30,5 +30,5 @@ @cp -p $(SRC) $(INC) Obj_$@ @cp MAKE/Makefile.$@ Obj_$@/Makefile @cd Obj_$@; \ - $(MAKE) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" ../$(EXE) + $(MAKE) $(MFLAGS) "OBJ = $(OBJ)" "INC = $(INC)" "EXE = ../$(EXE)" ../$(EXE) @if [ -d Obj_$@ ]; then cd Obj_$@; rm -f $(SRC) $(INC) Makefile*; fi diff -Naur lammps-19May08/src/USER-CG-CMM/angle_cg_cmm.cpp lammps-20May08/src/USER-CG-CMM/angle_cg_cmm.cpp --- lammps-19May08/src/USER-CG-CMM/angle_cg_cmm.cpp 2008-02-08 14:57:06.000000000 -0700 +++ lammps-20May08/src/USER-CG-CMM/angle_cg_cmm.cpp 2008-05-15 17:03:19.000000000 -0600 @@ -49,6 +49,88 @@ /* ---------------------------------------------------------------------- */ +void AngleCGCMM::ev_tally_lj13(int i, int j, int nlocal, int newton_bond, + double evdwl, double fpair, + double delx, double dely, double delz) +{ + double v[6]; + + if (eflag_either) { + if (eflag_global) { + if (newton_bond) { + energy += evdwl; + } else { + if (i < nlocal) + energy += 0.5*evdwl; + if (j < nlocal) + energy += 0.5*evdwl; + } + } + if (eflag_atom) { + if (newton_bond || i < nlocal) eatom[i] += 0.5*evdwl; + if (newton_bond || j < nlocal) eatom[i] += 0.5*evdwl; + } + } + + if (vflag_either) { + v[0] = delx*delx*fpair; + v[1] = dely*dely*fpair; + v[2] = delz*delz*fpair; + v[3] = delx*dely*fpair; + v[4] = delx*delz*fpair; + v[5] = dely*delz*fpair; + + if (vflag_global) { + if (newton_bond) { + virial[0] += v[0]; + virial[1] += v[1]; + virial[2] += v[2]; + virial[3] += v[3]; + virial[4] += v[4]; + virial[5] += v[5]; + } else { + if (i < nlocal) { + virial[0] += 0.5*v[0]; + virial[1] += 0.5*v[1]; + virial[2] += 0.5*v[2]; + virial[3] += 0.5*v[3]; + virial[4] += 0.5*v[4]; + virial[5] += 0.5*v[5]; + } + if (j < nlocal) { + virial[0] += 0.5*v[0]; + virial[1] += 0.5*v[1]; + virial[2] += 0.5*v[2]; + virial[3] += 0.5*v[3]; + virial[4] += 0.5*v[4]; + virial[5] += 0.5*v[5]; + } + } + } + + if (vflag_atom) { + if (newton_bond || i < nlocal) { + vatom[i][0] += 0.5*v[0]; + vatom[i][1] += 0.5*v[1]; + vatom[i][2] += 0.5*v[2]; + vatom[i][3] += 0.5*v[3]; + vatom[i][4] += 0.5*v[4]; + vatom[i][5] += 0.5*v[5]; + } + if (newton_bond || j < nlocal) { + vatom[j][0] += 0.5*v[0]; + vatom[j][1] += 0.5*v[1]; + vatom[j][2] += 0.5*v[2]; + vatom[j][3] += 0.5*v[3]; + vatom[j][4] += 0.5*v[4]; + vatom[j][5] += 0.5*v[5]; + } + } + } +} + +/* ---------------------------------------------------------------------- */ + void AngleCGCMM::compute(int eflag, int vflag) { int i1,i2,i3,n,type; @@ -142,7 +224,7 @@ dtheta = acos(c) - theta0[type]; tk = k[type] * dtheta; - if (eflag) eangle = tk*dtheta + e13; + if (eflag) eangle = tk*dtheta; a = -2.0 * tk * s; a11 = a*c / rsq1; @@ -176,11 +258,12 @@ f[i3][2] += f3[2] - f13*delz3; } - // FIXME: we'll need to override this one for accurate virial. - // for the time being, we hope that this contribution - // is very small (it should be). if (evflag) ev_tally(i1,i2,i3,nlocal,newton_bond,eangle,f1,f3, delx1,dely1,delz1,delx2,dely2,delz2); + + if (evflag) ev_tally_lj13(i1,i3,nlocal,newton_bond, + e13,f13,delx3,dely3,delz3); + } } diff -Naur lammps-19May08/src/USER-CG-CMM/angle_cg_cmm.h lammps-20May08/src/USER-CG-CMM/angle_cg_cmm.h --- lammps-19May08/src/USER-CG-CMM/angle_cg_cmm.h 2008-02-08 14:57:06.000000000 -0700 +++ lammps-20May08/src/USER-CG-CMM/angle_cg_cmm.h 2008-05-15 17:03:19.000000000 -0600 @@ -34,6 +34,10 @@ void read_restart(FILE *); double single(int, int, int, int); + protected: + void ev_tally_lj13(int, int, int, int, double, double, + double, double, double); + private: double *k,*theta0; int *cg_type; diff -Naur lammps-19May08/src/USER-CG-CMM/pair_cg_cmm.h lammps-20May08/src/USER-CG-CMM/pair_cg_cmm.h --- lammps-19May08/src/USER-CG-CMM/pair_cg_cmm.h 2008-02-08 14:57:06.000000000 -0700 +++ lammps-20May08/src/USER-CG-CMM/pair_cg_cmm.h 2008-05-15 17:03:19.000000000 -0600 @@ -33,7 +33,7 @@ double single(int, int, int, int, double, double, double, double &); private: - // disable default destructor + // disable default constructor PairCGCMM(); }; } diff -Naur lammps-19May08/src/USER-CG-CMM/pair_cmm_common.cpp lammps-20May08/src/USER-CG-CMM/pair_cmm_common.cpp --- lammps-19May08/src/USER-CG-CMM/pair_cmm_common.cpp 2008-03-19 09:20:06.000000000 -0600 +++ lammps-20May08/src/USER-CG-CMM/pair_cmm_common.cpp 2008-05-15 17:03:19.000000000 -0600 @@ -259,6 +259,7 @@ if (allocated_coul) { mycut = MAX(cut_lj[i][j],cut_coul[i][j]); + cut[i][j] = mycut; cut_ljsq[i][j]=cut_lj[i][j]*cut_lj[i][j]; cut_coulsq[i][j]=cut_coul[i][j]*cut_coul[i][j]; if (offset_flag) { @@ -274,7 +275,8 @@ lj4[j][i] = lj4[i][j]; offset[j][i] = offset[i][j]; cg_type[j][i] = cg_type[i][j]; - + cut[j][i] = mycut; + if (allocated_coul) { cut_lj[j][i]=cut_lj[i][j]; cut_ljsq[j][i]=cut_ljsq[i][j]; @@ -407,6 +409,7 @@ MPI_Bcast(&kappa,1,MPI_DOUBLE,0,world); MPI_Bcast(&offset_flag,1,MPI_INT,0,world); MPI_Bcast(&mix_flag,1,MPI_INT,0,world); + cut_coulsq_global = cut_coul_global*cut_coul_global; } /* ---------------------------------------------------------------------- */ diff -Naur lammps-19May08/src/USER-CG-CMM/pair_cmm_common.h lammps-20May08/src/USER-CG-CMM/pair_cmm_common.h --- lammps-19May08/src/USER-CG-CMM/pair_cmm_common.h 2008-02-08 14:57:06.000000000 -0700 +++ lammps-20May08/src/USER-CG-CMM/pair_cmm_common.h 2008-05-15 17:03:19.000000000 -0600 @@ -201,6 +201,7 @@ const double ytmp = x[i][1]; const double ztmp = x[i][2]; double qtmp = (COUL_TYPE != CG_COUL_NONE) ? q[i] : 0.0; + const int itype = type[i]; const int * const jlist = firstneigh[i]; const int jnum = numneigh[i]; diff -Naur lammps-19May08/src/atom.cpp lammps-20May08/src/atom.cpp --- lammps-19May08/src/atom.cpp 2008-04-08 16:55:40.000000000 -0600 +++ lammps-20May08/src/atom.cpp 2008-05-15 16:42:47.000000000 -0600 @@ -609,9 +609,6 @@ int Atom::tag_consecutive() { - int check[2],check_all[2]; - check[0] = check[1] = 0; - int idmin = static_cast (natoms); int idmax = 0; diff -Naur lammps-19May08/src/compute_temp_com.cpp lammps-20May08/src/compute_temp_com.cpp --- lammps-19May08/src/compute_temp_com.cpp 2008-03-20 18:14:38.000000000 -0600 +++ lammps-20May08/src/compute_temp_com.cpp 2008-05-15 16:42:47.000000000 -0600 @@ -130,7 +130,6 @@ if (dynamic) masstotal = group->mass(igroup); group->vcm(igroup,masstotal,vbias); - double **x = atom->x; double **v = atom->v; double *mass = atom->mass; double *rmass = atom->rmass; diff -Naur lammps-19May08/src/delete_atoms.cpp lammps-20May08/src/delete_atoms.cpp --- lammps-19May08/src/delete_atoms.cpp 2008-01-29 11:43:51.000000000 -0700 +++ lammps-20May08/src/delete_atoms.cpp 2008-05-15 16:42:47.000000000 -0600 @@ -237,9 +237,8 @@ int nall = atom->nlocal + atom->nghost; double *special_coul = force->special_coul; double *special_lj = force->special_lj; - int newton_pair = force->newton_pair; - int i,j,ii,jj,m,inum,jnum,itype,jtype; + int i,j,ii,jj,inum,jnum,itype; double xtmp,ytmp,ztmp,delx,dely,delz,rsq; int *ilist,*jlist,*numneigh,**firstneigh; diff -Naur lammps-19May08/src/fix_ave_time.cpp lammps-20May08/src/fix_ave_time.cpp --- lammps-19May08/src/fix_ave_time.cpp 2008-05-09 09:01:25.000000000 -0600 +++ lammps-20May08/src/fix_ave_time.cpp 2008-05-15 16:42:47.000000000 -0600 @@ -288,8 +288,6 @@ // set indices and check validity of all computes,fixes,variables // check that fix frequency is acceptable - int ilist = 0; - for (int i = 0; i < nvalues; i++) { if (which[i] == COMPUTE) { int icompute = modify->find_compute(ids[i]); @@ -328,8 +326,7 @@ void FixAveTime::end_of_step() { - int i,j,k,m; - double tmp; + int i,m; // skip if not step which requires doing something @@ -345,8 +342,6 @@ modify->clearstep_compute(); - int ilist = 0; - for (i = 0; i < nvalues; i++) { m = value2index[i]; diff -Naur lammps-19May08/src/fix_nvt_sllod.cpp lammps-20May08/src/fix_nvt_sllod.cpp --- lammps-19May08/src/fix_nvt_sllod.cpp 2008-03-20 09:32:33.000000000 -0600 +++ lammps-20May08/src/fix_nvt_sllod.cpp 2008-05-15 16:42:47.000000000 -0600 @@ -129,7 +129,6 @@ // thermostat thermal velocity only // vdelu = SLLOD correction = Hrate*Hinv*vthermal - double **x = atom->x; double **v = atom->v; double **f = atom->f; double *mass = atom->mass; diff -Naur lammps-19May08/src/fix_nvt_sphere.cpp lammps-20May08/src/fix_nvt_sphere.cpp --- lammps-19May08/src/fix_nvt_sphere.cpp 2008-04-08 16:55:40.000000000 -0600 +++ lammps-20May08/src/fix_nvt_sphere.cpp 2008-05-15 16:42:47.000000000 -0600 @@ -88,7 +88,6 @@ double **x = atom->x; double **v = atom->v; double **f = atom->f; - double **quat = atom->quat; double **omega = atom->omega; double **torque = atom->torque; double *mass = atom->mass; diff -Naur lammps-19May08/src/fix_viscosity.cpp lammps-20May08/src/fix_viscosity.cpp --- lammps-19May08/src/fix_viscosity.cpp 2008-05-14 15:38:34.000000000 -0600 +++ lammps-20May08/src/fix_viscosity.cpp 2008-05-15 16:42:47.000000000 -0600 @@ -138,7 +138,7 @@ void FixViscosity::end_of_step() { int i,m,insert; - double p,coord,delta; + double coord,delta; MPI_Status status; struct { double value; diff -Naur lammps-19May08/src/min_cg.cpp lammps-20May08/src/min_cg.cpp --- lammps-19May08/src/min_cg.cpp 2008-04-16 18:06:14.000000000 -0600 +++ lammps-20May08/src/min_cg.cpp 2008-05-15 16:42:47.000000000 -0600 @@ -502,7 +502,7 @@ int MinCG::linemin_backtrack(int n, double *x, double *dir, double eng, double maxdist, double &alpha, int &nfunc) { - int i,m; + int i; // stopping criterion, must be scaled by normflag diff -Naur lammps-19May08/tools/README lammps-20May08/tools/README --- lammps-19May08/tools/README 2008-01-04 08:22:54.000000000 -0700 +++ lammps-20May08/tools/README 2008-05-15 16:33:22.000000000 -0600 @@ -19,7 +19,8 @@ data2xmovie convert a data file to a snapshot that xmovie can viz lmp2arc convert LAMMPS output to Accelrys Insight format lmp2cfg convert LAMMPS output to CFG files for AtomEye viz -lmp2traj convert LAMMPS output to contour, density profiles +lmp2traj convert LAMMPS output to contour, density profiles +lmp2vmd tools for visualizing and analyzing LAMMPS data with VMD micelle2d create a data file of small lipid chains in solvent msi2lmp use Accelrys Insight code to setup LAMMPS input pymol_asphere convert LAMMPS output of ellipsoids to PyMol format diff -Naur lammps-19May08/tools/restart2data.cpp lammps-20May08/tools/restart2data.cpp --- lammps-19May08/tools/restart2data.cpp 2008-05-15 15:09:46.000000000 -0600 +++ lammps-20May08/tools/restart2data.cpp 2008-05-15 17:03:07.000000000 -0600 @@ -700,7 +700,7 @@ if (data.style_molecular) allocate_molecular(data); } - // read atom quatities from buf + // read atom quantities from buf // if hybrid, loop over all sub-styles in order listed // if hybrid, loop index k will match style setting to insure correct order @@ -1912,7 +1912,10 @@ data.pair_cg_epsilon[i][j] = read_double(fp); data.pair_cg_sigma[i][j] = read_double(fp); data.pair_cut_lj[i][j] = read_double(fp); - if (m) data.pair_cut_coul[i][j] = read_double(fp); + if (m) { + data.pair_cut_lj[i][j] = read_double(fp); + data.pair_cut_coul[i][j] = read_double(fp); + } } } }