From 87d838d80b1aefbceaa12250d75074fff9bec214 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 24 Sep 2019 14:36:44 -0400 Subject: [PATCH] reformat modified core LAMMPS code --- src/fix_wall_reflect.cpp | 230 +++++++++++++++++++-------------------- src/random_mars.cpp | 35 +++--- 2 files changed, 129 insertions(+), 136 deletions(-) diff --git a/src/fix_wall_reflect.cpp b/src/fix_wall_reflect.cpp index b6a2f214c1..124b0d31ef 100644 --- a/src/fix_wall_reflect.cpp +++ b/src/fix_wall_reflect.cpp @@ -1,4 +1,4 @@ - /* ---------------------------------------------------------------------- +/* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov @@ -24,128 +24,121 @@ #include "error.h" #include "force.h" - using namespace LAMMPS_NS; using namespace FixConst; - - /* ---------------------------------------------------------------------- */ FixWallReflect::FixWallReflect(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg), nwall(0) -{ - - +{ if (narg < 4) error->all(FLERR,"Illegal fix wall/reflect command"); - if (strcmp(arg[2],"wall/reflect") == 0){ // child class can be stochastic + if (strcmp(arg[2],"wall/reflect") == 0) { // child class can be stochastic + dynamic_group_allow = 1; - dynamic_group_allow = 1; + // parse args - // parse args + nwall = 0; + int scaleflag = 1; - nwall = 0; - int scaleflag = 1; + int iarg = 3; + while (iarg < narg) { + if ((strcmp(arg[iarg],"xlo") == 0) || (strcmp(arg[iarg],"xhi") == 0) || + (strcmp(arg[iarg],"ylo") == 0) || (strcmp(arg[iarg],"yhi") == 0) || + (strcmp(arg[iarg],"zlo") == 0) || (strcmp(arg[iarg],"zhi") == 0)) { + if (iarg+2 > narg) + error->all(FLERR,"Illegal fix wall/reflect command"); - int iarg = 3; - while (iarg < narg) { - if ((strcmp(arg[iarg],"xlo") == 0) || (strcmp(arg[iarg],"xhi") == 0) || - (strcmp(arg[iarg],"ylo") == 0) || (strcmp(arg[iarg],"yhi") == 0) || - (strcmp(arg[iarg],"zlo") == 0) || (strcmp(arg[iarg],"zhi") == 0)) { - if (iarg+2 > narg) error->all(FLERR,"Illegal fix wall/reflect command"); + int newwall; + if (strcmp(arg[iarg],"xlo") == 0) newwall = XLO; + else if (strcmp(arg[iarg],"xhi") == 0) newwall = XHI; + else if (strcmp(arg[iarg],"ylo") == 0) newwall = YLO; + else if (strcmp(arg[iarg],"yhi") == 0) newwall = YHI; + else if (strcmp(arg[iarg],"zlo") == 0) newwall = ZLO; + else if (strcmp(arg[iarg],"zhi") == 0) newwall = ZHI; - int newwall; - if (strcmp(arg[iarg],"xlo") == 0) newwall = XLO; - else if (strcmp(arg[iarg],"xhi") == 0) newwall = XHI; - else if (strcmp(arg[iarg],"ylo") == 0) newwall = YLO; - else if (strcmp(arg[iarg],"yhi") == 0) newwall = YHI; - else if (strcmp(arg[iarg],"zlo") == 0) newwall = ZLO; - else if (strcmp(arg[iarg],"zhi") == 0) newwall = ZHI; + for (int m = 0; (m < nwall) && (m < 6); m++) + if (newwall == wallwhich[m]) + error->all(FLERR,"Wall defined twice in fix wall/reflect command"); - for (int m = 0; (m < nwall) && (m < 6); m++) - if (newwall == wallwhich[m]) - error->all(FLERR,"Wall defined twice in fix wall/reflect command"); + wallwhich[nwall] = newwall; + if (strcmp(arg[iarg+1],"EDGE") == 0) { + wallstyle[nwall] = EDGE; + int dim = wallwhich[nwall] / 2; + int side = wallwhich[nwall] % 2; + if (side == 0) coord0[nwall] = domain->boxlo[dim]; + else coord0[nwall] = domain->boxhi[dim]; + } else if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) { + wallstyle[nwall] = VARIABLE; + int n = strlen(&arg[iarg+1][2]) + 1; + varstr[nwall] = new char[n]; + strcpy(varstr[nwall],&arg[iarg+1][2]); + } else { + wallstyle[nwall] = CONSTANT; + coord0[nwall] = force->numeric(FLERR,arg[iarg+1]); + } - wallwhich[nwall] = newwall; - if (strcmp(arg[iarg+1],"EDGE") == 0) { - wallstyle[nwall] = EDGE; - int dim = wallwhich[nwall] / 2; - int side = wallwhich[nwall] % 2; - if (side == 0) coord0[nwall] = domain->boxlo[dim]; - else coord0[nwall] = domain->boxhi[dim]; - } else if (strstr(arg[iarg+1],"v_") == arg[iarg+1]) { - wallstyle[nwall] = VARIABLE; - int n = strlen(&arg[iarg+1][2]) + 1; - varstr[nwall] = new char[n]; - strcpy(varstr[nwall],&arg[iarg+1][2]); - } else { - wallstyle[nwall] = CONSTANT; - coord0[nwall] = force->numeric(FLERR,arg[iarg+1]); - } + nwall++; + iarg += 2; - nwall++; - iarg += 2; - - - } else if (strcmp(arg[iarg],"units") == 0) { - if (iarg+2 > narg) error->all(FLERR,"Illegal wall/reflect command"); - if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0; - else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1; - else error->all(FLERR,"Illegal fix wall/reflect command"); - iarg += 2; - } else error->all(FLERR,"Illegal fix wall/reflect command"); - } - - // error check - - if (nwall == 0) error->all(FLERR,"Illegal fix wall command"); - - for (int m = 0; m < nwall; m++) { - if ((wallwhich[m] == XLO || wallwhich[m] == XHI) && domain->xperiodic) - error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); - if ((wallwhich[m] == YLO || wallwhich[m] == YHI) && domain->yperiodic) - error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); - if ((wallwhich[m] == ZLO || wallwhich[m] == ZHI) && domain->zperiodic) - error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); - } - - for (int m = 0; m < nwall; m++) - if ((wallwhich[m] == ZLO || wallwhich[m] == ZHI) && domain->dimension == 2) - error->all(FLERR, - "Cannot use fix wall/reflect zlo/zhi for a 2d simulation"); - - // scale factors for CONSTANT and VARIABLE walls - - int flag = 0; - for (int m = 0; m < nwall; m++) - if (wallstyle[m] != EDGE) flag = 1; - - if (flag) { - if (scaleflag) { - xscale = domain->lattice->xlattice; - yscale = domain->lattice->ylattice; - zscale = domain->lattice->zlattice; + } else if (strcmp(arg[iarg],"units") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal wall/reflect command"); + if (strcmp(arg[iarg+1],"box") == 0) scaleflag = 0; + else if (strcmp(arg[iarg+1],"lattice") == 0) scaleflag = 1; + else error->all(FLERR,"Illegal fix wall/reflect command"); + iarg += 2; + } else error->all(FLERR,"Illegal fix wall/reflect command"); } - else xscale = yscale = zscale = 1.0; + + // error check + + if (nwall == 0) error->all(FLERR,"Illegal fix wall command"); for (int m = 0; m < nwall; m++) { - if (wallstyle[m] != CONSTANT) continue; - if (wallwhich[m] < YLO) coord0[m] *= xscale; - else if (wallwhich[m] < ZLO) coord0[m] *= yscale; - else coord0[m] *= zscale; + if ((wallwhich[m] == XLO || wallwhich[m] == XHI) && domain->xperiodic) + error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); + if ((wallwhich[m] == YLO || wallwhich[m] == YHI) && domain->yperiodic) + error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); + if ((wallwhich[m] == ZLO || wallwhich[m] == ZHI) && domain->zperiodic) + error->all(FLERR,"Cannot use fix wall/reflect in periodic dimension"); } + + for (int m = 0; m < nwall; m++) + if ((wallwhich[m] == ZLO || wallwhich[m] == ZHI) && domain->dimension == 2) + error->all(FLERR, + "Cannot use fix wall/reflect zlo/zhi for a 2d simulation"); + + // scale factors for CONSTANT and VARIABLE walls + + int flag = 0; + for (int m = 0; m < nwall; m++) + if (wallstyle[m] != EDGE) flag = 1; + + if (flag) { + if (scaleflag) { + xscale = domain->lattice->xlattice; + yscale = domain->lattice->ylattice; + zscale = domain->lattice->zlattice; + } + else xscale = yscale = zscale = 1.0; + + for (int m = 0; m < nwall; m++) { + if (wallstyle[m] != CONSTANT) continue; + if (wallwhich[m] < YLO) coord0[m] *= xscale; + else if (wallwhich[m] < ZLO) coord0[m] *= yscale; + else coord0[m] *= zscale; + } + } + + // set varflag if any wall positions are variable + + varflag = 0; + for (int m = 0; m < nwall; m++) + if (wallstyle[m] == VARIABLE) varflag = 1; } - - // set varflag if any wall positions are variable - - varflag = 0; - for (int m = 0; m < nwall; m++) - if (wallstyle[m] == VARIABLE) varflag = 1; -} - } /* ---------------------------------------------------------------------- */ @@ -200,8 +193,6 @@ void FixWallReflect::post_integrate() // coord = current position of wall // evaluate variable if necessary, wrap with clear/add - - if (varflag) modify->clearstep_compute(); for (int m = 0; m < nwall; m++) { @@ -212,12 +203,10 @@ void FixWallReflect::post_integrate() else coord *= zscale; } else coord = coord0[m]; - wall_particle(m,wallwhich[m],coord); - - if (varflag) modify->addstep_compute(update->ntimestep + 1); -} + if (varflag) modify->addstep_compute(update->ntimestep + 1); + } } void FixWallReflect::wall_particle(int m, int which, double coord) @@ -229,22 +218,23 @@ void FixWallReflect::wall_particle(int m, int which, double coord) int *mask = atom->mask; int nlocal = atom->nlocal; - dim = which / 2; - side = which % 2; + dim = which / 2; + side = which % 2; - for (i = 0; i < nlocal; i++) - if (mask[i] & groupbit) { + for (i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { - if (side == 0) { - if (x[i][dim] < coord) { - x[i][dim] = coord + (coord - x[i][dim]); - v[i][dim] = -v[i][dim]; - } - } else { - if (x[i][dim] > coord) { - x[i][dim] = coord - (x[i][dim] - coord); - v[i][dim] = -v[i][dim]; - } + if (side == 0) { + if (x[i][dim] < coord) { + x[i][dim] = coord + (coord - x[i][dim]); + v[i][dim] = -v[i][dim]; + } + } else { + if (x[i][dim] > coord) { + x[i][dim] = coord - (x[i][dim] - coord); + v[i][dim] = -v[i][dim]; } } -} \ No newline at end of file + } + } +} diff --git a/src/random_mars.cpp b/src/random_mars.cpp index 0ee62db9d6..c458913077 100644 --- a/src/random_mars.cpp +++ b/src/random_mars.cpp @@ -17,6 +17,7 @@ #include "random_mars.h" #include #include "error.h" +#include "math_const.h" using namespace LAMMPS_NS; @@ -122,10 +123,9 @@ double RanMars::gaussian() double RanMars::gaussian(double mu, double sigma) { double v1; - v1 = mu+sigma*gaussian(); + v1 = mu+sigma*gaussian(); return v1; } -/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- @@ -136,13 +136,13 @@ double RanMars::rayleigh(double sigma) { double first,v1; - if (sigma <= 0) + if (sigma <= 0) { error->all(FLERR,"Invalid Rayleigh parameter"); - else { + } else { v1 = uniform(); first = sigma*sqrt(-2.0*log(v1)); return first; - } + } } @@ -153,17 +153,20 @@ double RanMars::rayleigh(double sigma) double RanMars::besselexp(double theta, double alpha, double cp) { double first,v1,v2; - - - if ((theta < 0) || (alpha < 0) || (alpha >1)) + if ((theta < 0) || (alpha < 0) || (alpha >1)) { error->all(FLERR,"Invalid Bessel exponential distribution parameters"); - else { + } else { v1 = uniform(); v2 = uniform(); - if (cp < 0) - first = sqrt((1-alpha)*cp*cp-2*alpha*theta*log(v1)+2*sqrt(-2*theta*(1-alpha)*alpha*log(v1))*cos(2*M_PI*v2)*cp); - else { - first = - sqrt((1-alpha)*cp*cp-2*alpha*theta*log(v1)-2*sqrt(-2*theta*(1-alpha)*alpha*log(v1))*cos(2*M_PI*v2)*cp) ;} - return first; - } -} \ No newline at end of file + if (cp < 0) { + first = sqrt((1.0-alpha)*cp*cp - 2.0*alpha*theta*log(v1) + + 2.0*sqrt(-2.0*theta*(1.0-alpha)*alpha*log(v1)) + * cos(2.0*MathConst::MY_PI*v2)*cp); + } else { + first = -sqrt((1.0-alpha)*cp*cp - 2.0*alpha*theta*log(v1) + - 2.0*sqrt(-2.0*theta*(1.0-alpha)*alpha*log(v1)) + * cos(2.0*MathConst::MY_PI*v2)*cp); + } + return first; + } +}