From fdd2b430d63f5e1c757bac254b4ace9c747f2989 Mon Sep 17 00:00:00 2001 From: sjplimp <sjplimp@f3b2605a-c512-4ea7-a41b-209d697bcdaa> Date: Thu, 3 Jan 2008 00:30:07 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@1277 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/fix_nve_limit.cpp | 21 +++++++++++++++++++++ src/fix_nve_limit.h | 3 ++- src/neighbor.cpp | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/fix_nve_limit.cpp b/src/fix_nve_limit.cpp index 25b3b3c4c7..6195c4f944 100644 --- a/src/fix_nve_limit.cpp +++ b/src/fix_nve_limit.cpp @@ -31,6 +31,10 @@ FixNVELimit::FixNVELimit(LAMMPS *lmp, int narg, char **arg) : { if (narg != 4) error->all("Illegal fix nve/limit command"); + scalar_flag = 1; + scalar_vector_freq = 1; + extscalar = 1; + xlimit = atof(arg[3]); } @@ -53,6 +57,7 @@ void FixNVELimit::init() dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; vlimitsq = (xlimit/dtv) * (xlimit/dtv); + ncount = 0; if (strcmp(update->integrate_style,"respa") == 0) step_respa = ((Respa *) update->integrate)->step; @@ -85,6 +90,7 @@ void FixNVELimit::initial_integrate() vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2]; if (vsq > vlimitsq) { + ncount++; scale = sqrt(vlimitsq/vsq); v[i][0] *= scale; v[i][1] *= scale; @@ -107,6 +113,7 @@ void FixNVELimit::initial_integrate() vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2]; if (vsq > vlimitsq) { + ncount++; scale = sqrt(vlimitsq/vsq); v[i][0] *= scale; v[i][1] *= scale; @@ -145,6 +152,7 @@ void FixNVELimit::final_integrate() vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2]; if (vsq > vlimitsq) { + ncount++; scale = sqrt(vlimitsq/vsq); v[i][0] *= scale; v[i][1] *= scale; @@ -163,6 +171,7 @@ void FixNVELimit::final_integrate() vsq = v[i][0]*v[i][0] + v[i][1]*v[i][1] + v[i][2]*v[i][2]; if (vsq > vlimitsq) { + ncount++; scale = sqrt(vlimitsq/vsq); v[i][0] *= scale; v[i][1] *= scale; @@ -202,3 +211,15 @@ void FixNVELimit::reset_dt() dtf = 0.5 * update->dt * force->ftm2v; vlimitsq = (xlimit/dtv) * (xlimit/dtv); } + +/* ---------------------------------------------------------------------- + energy of indenter interaction +------------------------------------------------------------------------- */ + +double FixNVELimit::compute_scalar() +{ + double one = ncount; + double all; + MPI_Allreduce(&one,&all,1,MPI_DOUBLE,MPI_SUM,world); + return all; +} diff --git a/src/fix_nve_limit.h b/src/fix_nve_limit.h index 2c1d61dd8b..a0c804ebf8 100644 --- a/src/fix_nve_limit.h +++ b/src/fix_nve_limit.h @@ -28,11 +28,12 @@ class FixNVELimit : public Fix { void initial_integrate_respa(int, int); void final_integrate_respa(int); void reset_dt(); + double compute_scalar(); private: double dtv,dtf; double *step_respa; - int mass_require; + int mass_require,ncount; double xlimit,vlimitsq; }; diff --git a/src/neighbor.cpp b/src/neighbor.cpp index f0013714ea..9904e73bda 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -434,7 +434,7 @@ void Neighbor::init() } // detect lists that are connected to other lists - // if-the-else sequence is important + // if-then-else sequence is important // since don't want to re-process skip or copy lists further down // skip: point this list at request->otherlist, copy skip info from request // copy: point this list at request->otherlist -- GitLab