diff --git a/src/GRANULAR/fix_gran_diag.cpp b/src/GRANULAR/fix_gran_diag.cpp index 8c69d69d66ac0fe0de646dc660e8a28c6aa48078..8d7ce98cca2509f4225d74c08cbd1aed90b26f09 100644 --- a/src/GRANULAR/fix_gran_diag.cpp +++ b/src/GRANULAR/fix_gran_diag.cpp @@ -163,7 +163,7 @@ void FixGranDiag::end_of_step() // set bottom of box for binning purposes - boxzlo = domain->boxzlo; + boxzlo = domain->boxlo[2]; // update ghost atom info // else ghost x/v is out-of-date at end of timestep diff --git a/src/GRANULAR/fix_pour.cpp b/src/GRANULAR/fix_pour.cpp index 1381e15a5a482b40cdbc4df47523d784ded77218..a9f474769eb5e114d32704576b5b82ffcbec648c 100644 --- a/src/GRANULAR/fix_pour.cpp +++ b/src/GRANULAR/fix_pour.cpp @@ -132,9 +132,9 @@ FixPour::FixPour(LAMMPS *lmp, int narg, char **arg) : yhi = ((RegBlock *) domain->regions[iregion])->yhi; zlo = ((RegBlock *) domain->regions[iregion])->zlo; zhi = ((RegBlock *) domain->regions[iregion])->zhi; - if (xlo < domain->boxxlo || xhi > domain->boxxhi || - ylo < domain->boxylo || yhi > domain->boxyhi || - zlo < domain->boxzlo || zhi > domain->boxzhi) + if (xlo < domain->boxlo[0] || xhi > domain->boxhi[0] || + ylo < domain->boxlo[1] || yhi > domain->boxhi[1] || + zlo < domain->boxlo[2] || zhi > domain->boxhi[2]) error->all("Insertion region extends outside simulation box"); } else if (strcmp(domain->regions[iregion]->style,"cylinder") == 0) { region_style = 2; @@ -146,9 +146,9 @@ FixPour::FixPour(LAMMPS *lmp, int narg, char **arg) : zhi = ((RegCylinder *) domain->regions[iregion])->hi; if (axis != 'z') error->all("Must use a z-axis cylinder with fix pour"); - if (xc-rc < domain->boxxlo || xc+rc > domain->boxxhi || - yc-rc < domain->boxylo || yc+rc > domain->boxyhi || - zlo < domain->boxzlo || zhi > domain->boxzhi) + if (xc-rc < domain->boxlo[0] || xc+rc > domain->boxhi[0] || + yc-rc < domain->boxlo[1] || yc+rc > domain->boxhi[1] || + zlo < domain->boxlo[2] || zhi > domain->boxhi[2]) error->all("Insertion region extends outside simulation box"); } else error->all("Must use a block or cylinder region with fix pour"); @@ -446,11 +446,11 @@ void FixPour::pre_exchange() if (coord[0] >= sublo[0] && coord[0] < subhi[0] && coord[1] >= sublo[1] && coord[1] < subhi[1] && coord[2] >= sublo[2] && coord[2] < subhi[2]) flag = 1; - else if (force->dimension == 3 && coord[2] >= domain->boxzhi && + else if (force->dimension == 3 && coord[2] >= domain->boxhi[2] && comm->myloc[2] == comm->procgrid[2]-1 && coord[0] >= sublo[0] && coord[0] < subhi[0] && coord[1] >= sublo[1] && coord[1] < subhi[1]) flag = 1; - else if (force->dimension == 2 && coord[1] >= domain->boxyhi && + else if (force->dimension == 2 && coord[1] >= domain->boxhi[1] && comm->myloc[1] == comm->procgrid[1]-1 && coord[0] >= sublo[0] && coord[0] < subhi[0]) flag = 1; diff --git a/src/XTC/dump_xtc.cpp b/src/XTC/dump_xtc.cpp index 1cd662d13222eb123ae3d8915d9eee873710c588..b553d435dd4fe0053cbd07432711546ec152712c 100644 --- a/src/XTC/dump_xtc.cpp +++ b/src/XTC/dump_xtc.cpp @@ -150,9 +150,9 @@ void DumpXTC::write_header(int n) // cell basis vectors float zero = 0.0; - float xdim = domain->boxxhi - domain->boxxlo; - float ydim = domain->boxyhi - domain->boxylo; - float zdim = domain->boxzhi - domain->boxzlo; + float xdim = domain->boxhi[0] - domain->boxlo[0]; + float ydim = domain->boxhi[1] - domain->boxlo[1]; + float zdim = domain->boxhi[2] - domain->boxlo[2]; xdr_float(&xd,&xdim); xdr_float(&xd,&zero); xdr_float(&xd,&zero); xdr_float(&xd,&zero); xdr_float(&xd,&ydim); xdr_float(&xd,&zero); diff --git a/src/create_box.cpp b/src/create_box.cpp index 570b125ec8d9fcb6a482cbdf19af87877bef5c1e..d947854bfc3788799762ac0a75b8abc21b0896e2 100644 --- a/src/create_box.cpp +++ b/src/create_box.cpp @@ -61,22 +61,22 @@ void CreateBox::command(int narg, char **arg) // set simulation domain params from prism params if (strcmp(domain->regions[iregion]->style,"prism") != 0) { - domain->boxxlo = domain->regions[iregion]->extent_xlo; - domain->boxxhi = domain->regions[iregion]->extent_xhi; - domain->boxylo = domain->regions[iregion]->extent_ylo; - domain->boxyhi = domain->regions[iregion]->extent_yhi; - domain->boxzlo = domain->regions[iregion]->extent_zlo; - domain->boxzhi = domain->regions[iregion]->extent_zhi; + domain->boxlo[0] = domain->regions[iregion]->extent_xlo; + domain->boxhi[0] = domain->regions[iregion]->extent_xhi; + domain->boxlo[1] = domain->regions[iregion]->extent_ylo; + domain->boxhi[1] = domain->regions[iregion]->extent_yhi; + domain->boxlo[2] = domain->regions[iregion]->extent_zlo; + domain->boxhi[2] = domain->regions[iregion]->extent_zhi; } else { domain->triclinic = 1; RegPrism *region = (RegPrism *) domain->regions[iregion]; - domain->boxxlo = region->xlo; - domain->boxxhi = region->xhi; - domain->boxylo = region->ylo; - domain->boxyhi = region->yhi; - domain->boxzlo = region->zlo; - domain->boxzhi = region->zhi; + domain->boxlo[0] = region->xlo; + domain->boxhi[0] = region->xhi; + domain->boxlo[1] = region->ylo; + domain->boxhi[1] = region->yhi; + domain->boxlo[2] = region->zlo; + domain->boxhi[2] = region->zhi; domain->xy = region->xy; domain->xz = region->xz; domain->yz = region->yz; diff --git a/src/domain.cpp b/src/domain.cpp index 99ae3a4d1f1fe5f19e8287f5306d839b9e504323..224be041e16479854709fc8f8b48a57444dc35d8 100644 --- a/src/domain.cpp +++ b/src/domain.cpp @@ -59,8 +59,8 @@ Domain::Domain(LAMMPS *lmp) : Pointers(lmp) boundary[2][0] = boundary[2][1] = 0; triclinic = 0; - boxxlo = boxylo = boxzlo = -0.5; - boxxhi = boxyhi = boxzhi = 0.5; + boxlo[0] = boxlo[1] = boxlo[2] = -0.5; + boxhi[0] = boxhi[1] = boxhi[2] = 0.5; xy = xz = yz = 0.0; prd_lamda[0] = prd_lamda[1] = prd_lamda[2] = 1.0; @@ -103,7 +103,7 @@ void Domain::set_initial_box() { // error checks for orthogonal and triclinic domains - if (boxxlo >= boxxhi || boxylo >= boxyhi || boxzlo >= boxzhi) + if (boxlo[0] >= boxhi[0] || boxlo[1] >= boxhi[1] || boxlo[2] >= boxhi[2]) error->one("Box bounds are invalid"); if (triclinic) { @@ -116,30 +116,30 @@ void Domain::set_initial_box() if (yz != 0.0 && (!yperiodic || !zperiodic)) error->all("Triclinic box must be periodic in skewed dimensions"); - if (fabs(xy/(boxyhi-boxylo)) > 0.5) + if (fabs(xy/(boxhi[1]-boxlo[1])) > 0.5) error->all("Triclinic box skew is too large"); - if (fabs(xz/(boxzhi-boxzlo)) > 0.5) + if (fabs(xz/(boxhi[2]-boxlo[2])) > 0.5) error->all("Triclinic box skew is too large"); - if (fabs(yz/(boxzhi-boxzlo)) > 0.5) + if (fabs(yz/(boxhi[2]-boxlo[2])) > 0.5) error->all("Triclinic box skew is too large"); } // adjust box lo/hi for shrink-wrapped dims - if (boundary[0][0] == 2) boxxlo -= SMALL; - else if (boundary[0][0] == 3) minxlo = boxxlo; - if (boundary[0][1] == 2) boxxhi += SMALL; - else if (boundary[0][1] == 3) minxhi = boxxhi; + if (boundary[0][0] == 2) boxlo[0] -= SMALL; + else if (boundary[0][0] == 3) minxlo = boxlo[0]; + if (boundary[0][1] == 2) boxhi[0] += SMALL; + else if (boundary[0][1] == 3) minxhi = boxhi[0]; - if (boundary[1][0] == 2) boxylo -= SMALL; - else if (boundary[1][0] == 3) minylo = boxylo; - if (boundary[1][1] == 2) boxyhi += SMALL; - else if (boundary[1][1] == 3) minyhi = boxyhi; + if (boundary[1][0] == 2) boxlo[1] -= SMALL; + else if (boundary[1][0] == 3) minylo = boxlo[1]; + if (boundary[1][1] == 2) boxhi[1] += SMALL; + else if (boundary[1][1] == 3) minyhi = boxhi[1]; - if (boundary[2][0] == 2) boxzlo -= SMALL; - else if (boundary[2][0] == 3) minzlo = boxzlo; - if (boundary[2][1] == 2) boxzhi += SMALL; - else if (boundary[2][1] == 3) minzhi = boxzhi; + if (boundary[2][0] == 2) boxlo[2] -= SMALL; + else if (boundary[2][0] == 3) minzlo = boxlo[2]; + if (boundary[2][1] == 2) boxhi[2] += SMALL; + else if (boundary[2][1] == 3) minzhi = boxhi[2]; } /* ---------------------------------------------------------------------- @@ -149,17 +149,14 @@ void Domain::set_initial_box() void Domain::set_global_box() { - prd[0] = xprd = boxxhi - boxxlo; - prd[1] = yprd = boxyhi - boxylo; - prd[2] = zprd = boxzhi - boxzlo; + prd[0] = xprd = boxhi[0] - boxlo[0]; + prd[1] = yprd = boxhi[1] - boxlo[1]; + prd[2] = zprd = boxhi[2] - boxlo[2]; xprd_half = 0.5*xprd; yprd_half = 0.5*yprd; zprd_half = 0.5*zprd; - boxlo[0] = boxxlo; boxlo[1] = boxylo; boxlo[2] = boxzlo; - boxhi[0] = boxxhi; boxhi[1] = boxyhi; boxhi[2] = boxzhi; - if (triclinic) { h[0] = xprd; h[1] = yprd; @@ -286,25 +283,25 @@ void Domain::reset_box() // if set, observe min box size settings if (xperiodic == 0) { - if (boundary[0][0] == 2) boxxlo = -all[0][0] - SMALL; - else if (boundary[0][0] == 3) boxxlo = MIN(-all[0][0]-SMALL,minxlo); - if (boundary[0][1] == 2) boxxhi = all[0][1] + SMALL; - else if (boundary[0][1] == 3) boxxhi = MAX(all[0][1]+SMALL,minxhi); - if (boxxlo > boxxhi) error->all("Illegal simulation box"); + if (boundary[0][0] == 2) boxlo[0] = -all[0][0] - SMALL; + else if (boundary[0][0] == 3) boxlo[0] = MIN(-all[0][0]-SMALL,minxlo); + if (boundary[0][1] == 2) boxhi[0] = all[0][1] + SMALL; + else if (boundary[0][1] == 3) boxhi[0] = MAX(all[0][1]+SMALL,minxhi); + if (boxlo[0] > boxhi[0]) error->all("Illegal simulation box"); } if (yperiodic == 0) { - if (boundary[1][0] == 2) boxylo = -all[1][0] - SMALL; - else if (boundary[1][0] == 3) boxylo = MIN(-all[1][0]-SMALL,minylo); - if (boundary[1][1] == 2) boxyhi = all[1][1] + SMALL; - else if (boundary[1][1] == 3) boxyhi = MAX(all[1][1]+SMALL,minyhi); - if (boxylo > boxyhi) error->all("Illegal simulation box"); + if (boundary[1][0] == 2) boxlo[1] = -all[1][0] - SMALL; + else if (boundary[1][0] == 3) boxlo[1] = MIN(-all[1][0]-SMALL,minylo); + if (boundary[1][1] == 2) boxhi[1] = all[1][1] + SMALL; + else if (boundary[1][1] == 3) boxhi[1] = MAX(all[1][1]+SMALL,minyhi); + if (boxlo[1] > boxhi[1]) error->all("Illegal simulation box"); } if (zperiodic == 0) { - if (boundary[2][0] == 2) boxzlo = -all[2][0] - SMALL; - else if (boundary[2][0] == 3) boxzlo = MIN(-all[2][0]-SMALL,minzlo); - if (boundary[2][1] == 2) boxzhi = all[2][1] + SMALL; - else if (boundary[2][1] == 3) boxzhi = MAX(all[2][1]+SMALL,minzhi); - if (boxzlo > boxzhi) error->all("Illegal simulation box"); + if (boundary[2][0] == 2) boxlo[2] = -all[2][0] - SMALL; + else if (boundary[2][0] == 3) boxlo[2] = MIN(-all[2][0]-SMALL,minzlo); + if (boundary[2][1] == 2) boxhi[2] = all[2][1] + SMALL; + else if (boundary[2][1] == 3) boxhi[2] = MAX(all[2][1]+SMALL,minzhi); + if (boxlo[2] > boxhi[2]) error->all("Illegal simulation box"); } } @@ -751,23 +748,25 @@ void Domain::print_box(char *str) if (screen) { if (domain->triclinic == 0) fprintf(screen,"%sorthogonal box = (%g %g %g) to (%g %g %g)\n", - str,boxxlo,boxylo,boxzlo,boxxhi,boxyhi,boxzhi); + str,boxlo[0],boxlo[1],boxlo[2],boxhi[0],boxhi[1],boxhi[2]); else { char *format = "%striclinic box = (%g %g %g) to (%g %g %g) with tilt (%g %g %g)\n"; fprintf(screen,format, - str,boxxlo,boxylo,boxzlo,boxxhi,boxyhi,boxzhi,xy,xz,yz); + str,boxlo[0],boxlo[1],boxlo[2],boxhi[0],boxhi[1],boxhi[2], + xy,xz,yz); } } if (logfile) { if (triclinic == 0) fprintf(logfile,"%sorthogonal box = (%g %g %g) to (%g %g %g)\n", - str,boxxlo,boxylo,boxzlo,boxxhi,boxyhi,boxzhi); + str,boxlo[0],boxlo[1],boxlo[2],boxhi[0],boxhi[1],boxhi[2]); else { char *format = "%striclinic box = (%g %g %g) to (%g %g %g) with tilt (%g %g %g)\n"; fprintf(logfile,format, - str,boxxlo,boxylo,boxzlo,boxxhi,boxyhi,boxzhi,xy,xz,yz); + str,boxlo[0],boxlo[1],boxlo[2],boxhi[0],boxhi[1],boxhi[2], + xy,xz,yz); } } } diff --git a/src/domain.h b/src/domain.h index ebde41d8412326f0609b96d6cf94c7e8846f8fe6..0624242ca4941f38615a7c63a7d10d097dea8083 100644 --- a/src/domain.h +++ b/src/domain.h @@ -42,18 +42,13 @@ class Domain : protected Pointers { double prd[3]; // array form of dimensions // triclinic box - // xprd,half,prd = same - // (as if untilted) + // xprd,half,prd = same (as if untilt) double prd_lamda[3]; // lamda box = (1,1,1) - double boxxlo,boxxhi; // orthogonal box - double boxylo,boxyhi; // global box bounds - double boxzlo,boxzhi; - double boxlo[3],boxhi[3]; // array form of box bounds + double boxlo[3],boxhi[3]; // orthogonal box global bounds // triclinic box - // boxxlo/hi,boxlo/hi = same - // (as if untilted) + // boxlo/hi = same (as if untilted) double boxlo_lamda[3],boxhi_lamda[3]; // lamda box = (0,1) double boxlo_bound[3],boxhi_bound[3]; // bounding box of tilted domain diff --git a/src/dump.cpp b/src/dump.cpp index b8c7bdf51ec89f037d18a9743bdfb0966fc58032..ff6d8882cc1b724e94c3f319d5e6e145abae88ce 100644 --- a/src/dump.cpp +++ b/src/dump.cpp @@ -122,12 +122,12 @@ void Dump::write() // simulation box bounds if (domain->triclinic == 0) { - boxxlo = domain->boxxlo; - boxxhi = domain->boxxhi; - boxylo = domain->boxylo; - boxyhi = domain->boxyhi; - boxzlo = domain->boxzlo; - boxzhi = domain->boxzhi; + boxxlo = domain->boxlo[0]; + boxxhi = domain->boxhi[0]; + boxylo = domain->boxlo[1]; + boxyhi = domain->boxhi[1]; + boxzlo = domain->boxlo[2]; + boxzhi = domain->boxhi[2]; } else { boxxlo = domain->boxlo_bound[0]; boxxhi = domain->boxhi_bound[0]; diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 72fe1bea3e532670d5b0ad46bf50c28c1375f8a2..456cc353e6b732dd5a4b0c5d344158d8dee46002 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -311,7 +311,7 @@ int DumpCustom::count() nstride = 3; } else if (thresh_array[ithresh] == XS) { double **x = atom->x; - double boxxlo = domain->boxxlo; + double boxxlo = domain->boxlo[0]; double invxprd = 1.0/domain->xprd; for (i = 0; i < nlocal; i++) dchoose[i] = (x[i][0] - boxxlo) * invxprd; @@ -319,7 +319,7 @@ int DumpCustom::count() nstride = 1; } else if (thresh_array[ithresh] == YS) { double **x = atom->x; - double boxylo = domain->boxylo; + double boxylo = domain->boxlo[1]; double invyprd = 1.0/domain->yprd; for (i = 0; i < nlocal; i++) dchoose[i] = (x[i][1] - boxylo) * invyprd; @@ -327,7 +327,7 @@ int DumpCustom::count() nstride = 1; } else if (thresh_array[ithresh] == ZS) { double **x = atom->x; - double boxzlo = domain->boxzlo; + double boxzlo = domain->boxlo[2]; double invzprd = 1.0/domain->zprd; for (i = 0; i < nlocal; i++) dchoose[i] = (x[i][2] - boxzlo) * invzprd; @@ -1155,7 +1155,7 @@ void DumpCustom::pack_xs(int n) double **x = atom->x; int nlocal = atom->nlocal; - double boxxlo = domain->boxxlo; + double boxxlo = domain->boxlo[0]; double invxprd = 1.0/domain->xprd; for (int i = 0; i < nlocal; i++) @@ -1172,7 +1172,7 @@ void DumpCustom::pack_ys(int n) double **x = atom->x; int nlocal = atom->nlocal; - double boxylo = domain->boxylo; + double boxylo = domain->boxlo[1]; double invyprd = 1.0/domain->yprd; for (int i = 0; i < nlocal; i++) @@ -1189,7 +1189,7 @@ void DumpCustom::pack_zs(int n) double **x = atom->x; int nlocal = atom->nlocal; - double boxzlo = domain->boxzlo; + double boxzlo = domain->boxlo[2]; double invzprd = 1.0/domain->zprd; for (int i = 0; i < nlocal; i++) diff --git a/src/fix_deposit.cpp b/src/fix_deposit.cpp index 4420be115e855969d066a659ae6c898a6b328d17..5a0ed002805effe7cd76fed683ad9d029e9f81fc 100644 --- a/src/fix_deposit.cpp +++ b/src/fix_deposit.cpp @@ -204,10 +204,10 @@ void FixDeposit::pre_exchange() if (force->dimension == 2) { dim = 1; - max = domain->boxylo; + max = domain->boxlo[1]; } else { dim = 2; - max = domain->boxzlo; + max = domain->boxlo[2]; } double **x = atom->x; @@ -271,11 +271,11 @@ void FixDeposit::pre_exchange() if (newcoord[0] >= sublo[0] && newcoord[0] < subhi[0] && newcoord[1] >= sublo[1] && newcoord[1] < subhi[1] && newcoord[2] >= sublo[2] && newcoord[2] < subhi[2]) flag = 1; - else if (force->dimension == 3 && newcoord[2] >= domain->boxzhi && + else if (force->dimension == 3 && newcoord[2] >= domain->boxhi[2] && comm->myloc[2] == comm->procgrid[2]-1 && newcoord[0] >= sublo[0] && newcoord[0] < subhi[0] && newcoord[1] >= sublo[1] && newcoord[1] < subhi[1]) flag = 1; - else if (force->dimension == 2 && newcoord[1] >= domain->boxyhi && + else if (force->dimension == 2 && newcoord[1] >= domain->boxhi[1] && comm->myloc[1] == comm->procgrid[1]-1 && newcoord[0] >= sublo[0] && newcoord[0] < subhi[0]) flag = 1; diff --git a/src/fix_nph.cpp b/src/fix_nph.cpp index b2867c4c995976a7cb37e214e50d436dee18b079..3032c84fe025d994a1ea61cc960999396d702a37 100644 --- a/src/fix_nph.cpp +++ b/src/fix_nph.cpp @@ -623,12 +623,12 @@ void FixNPH::box_dilate(int flag) double oldlo,oldhi,ctr; if (domain->xperiodic && p_flag[0]) { - oldlo = domain->boxxlo; - oldhi = domain->boxxhi; + oldlo = domain->boxlo[0]; + oldhi = domain->boxhi[0]; ctr = 0.5 * (oldlo + oldhi); - domain->boxxlo = (oldlo-ctr)*dilation[0] + ctr; - domain->boxxhi = (oldhi-ctr)*dilation[0] + ctr; - domain->xprd = domain->boxxhi - domain->boxxlo; + domain->boxlo[0] = (oldlo-ctr)*dilation[0] + ctr; + domain->boxhi[0] = (oldhi-ctr)*dilation[0] + ctr; + domain->prd[0] = domain->xprd = domain->boxhi[0] - domain->boxlo[0]; if (dilate_partial) { for (i = 0; i < n; i++) if (mask[i] & groupbit) @@ -640,16 +640,16 @@ void FixNPH::box_dilate(int flag) if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]-> - dilate(0,oldlo,oldhi,domain->boxxlo,domain->boxxhi); + dilate(0,oldlo,oldhi,domain->boxlo[0],domain->boxhi[0]); } if (domain->yperiodic && p_flag[1]) { - oldlo = domain->boxylo; - oldhi = domain->boxyhi; + oldlo = domain->boxlo[1]; + oldhi = domain->boxhi[1]; ctr = 0.5 * (oldlo + oldhi); - domain->boxylo = (oldlo-ctr)*dilation[1] + ctr; - domain->boxyhi = (oldhi-ctr)*dilation[1] + ctr; - domain->yprd = domain->boxyhi - domain->boxylo; + domain->boxlo[1] = (oldlo-ctr)*dilation[1] + ctr; + domain->boxhi[1] = (oldhi-ctr)*dilation[1] + ctr; + domain->prd[1] = domain->yprd = domain->boxhi[1] - domain->boxlo[1]; if (dilate_partial) { for (i = 0; i < n; i++) if (mask[i] & groupbit) @@ -661,16 +661,16 @@ void FixNPH::box_dilate(int flag) if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]-> - dilate(1,oldlo,oldhi,domain->boxylo,domain->boxyhi); + dilate(1,oldlo,oldhi,domain->boxlo[1],domain->boxhi[1]); } if (domain->zperiodic && p_flag[2]) { - oldlo = domain->boxzlo; - oldhi = domain->boxzhi; + oldlo = domain->boxlo[2]; + oldhi = domain->boxhi[2]; ctr = 0.5 * (oldlo + oldhi); - domain->boxzlo = (oldlo-ctr)*dilation[2] + ctr; - domain->boxzhi = (oldhi-ctr)*dilation[2] + ctr; - domain->zprd = domain->boxzhi - domain->boxzlo; + domain->boxlo[2] = (oldlo-ctr)*dilation[2] + ctr; + domain->boxhi[2] = (oldhi-ctr)*dilation[2] + ctr; + domain->prd[2] = domain->zprd = domain->boxhi[2] - domain->boxlo[2]; if (dilate_partial) { for (i = 0; i < n; i++) if (mask[i] & groupbit) @@ -682,7 +682,7 @@ void FixNPH::box_dilate(int flag) if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]-> - dilate(2,oldlo,oldhi,domain->boxzlo,domain->boxzhi); + dilate(2,oldlo,oldhi,domain->boxlo[2],domain->boxhi[2]); } } diff --git a/src/fix_npt.cpp b/src/fix_npt.cpp index 38862342736349b6ce0f26b19a04cc6697166645..c568e3a8b4a49b08229acfdc7e5dcf73ca5e229e 100644 --- a/src/fix_npt.cpp +++ b/src/fix_npt.cpp @@ -649,12 +649,12 @@ void FixNPT::box_dilate(int flag) double oldlo,oldhi,ctr; if (domain->xperiodic && p_flag[0]) { - oldlo = domain->boxxlo; - oldhi = domain->boxxhi; + oldlo = domain->boxlo[0]; + oldhi = domain->boxhi[0]; ctr = 0.5 * (oldlo + oldhi); - domain->boxxlo = (oldlo-ctr)*dilation[0] + ctr; - domain->boxxhi = (oldhi-ctr)*dilation[0] + ctr; - domain->xprd = domain->boxxhi - domain->boxxlo; + domain->boxlo[0] = (oldlo-ctr)*dilation[0] + ctr; + domain->boxhi[0] = (oldhi-ctr)*dilation[0] + ctr; + domain->prd[0] = domain->xprd = domain->boxhi[0] - domain->boxlo[0]; if (dilate_partial) { for (i = 0; i < n; i++) if (mask[i] & groupbit) @@ -666,16 +666,16 @@ void FixNPT::box_dilate(int flag) if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]-> - dilate(0,oldlo,oldhi,domain->boxxlo,domain->boxxhi); + dilate(0,oldlo,oldhi,domain->boxlo[0],domain->boxhi[0]); } if (domain->yperiodic && p_flag[1]) { - oldlo = domain->boxylo; - oldhi = domain->boxyhi; + oldlo = domain->boxlo[1]; + oldhi = domain->boxhi[1]; ctr = 0.5 * (oldlo + oldhi); - domain->boxylo = (oldlo-ctr)*dilation[1] + ctr; - domain->boxyhi = (oldhi-ctr)*dilation[1] + ctr; - domain->yprd = domain->boxyhi - domain->boxylo; + domain->boxlo[1] = (oldlo-ctr)*dilation[1] + ctr; + domain->boxhi[1] = (oldhi-ctr)*dilation[1] + ctr; + domain->prd[1] = domain->yprd = domain->boxhi[1] - domain->boxlo[1]; if (dilate_partial) { for (i = 0; i < n; i++) if (mask[i] & groupbit) @@ -687,16 +687,16 @@ void FixNPT::box_dilate(int flag) if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]-> - dilate(1,oldlo,oldhi,domain->boxylo,domain->boxyhi); + dilate(1,oldlo,oldhi,domain->boxlo[1],domain->boxhi[1]); } if (domain->zperiodic && p_flag[2]) { - oldlo = domain->boxzlo; - oldhi = domain->boxzhi; + oldlo = domain->boxlo[2]; + oldhi = domain->boxhi[2]; ctr = 0.5 * (oldlo + oldhi); - domain->boxzlo = (oldlo-ctr)*dilation[2] + ctr; - domain->boxzhi = (oldhi-ctr)*dilation[2] + ctr; - domain->zprd = domain->boxzhi - domain->boxzlo; + domain->boxlo[2] = (oldlo-ctr)*dilation[2] + ctr; + domain->boxhi[2] = (oldhi-ctr)*dilation[2] + ctr; + domain->prd[2] = domain->zprd = domain->boxhi[2] - domain->boxlo[2]; if (dilate_partial) { for (i = 0; i < n; i++) if (mask[i] & groupbit) @@ -708,7 +708,7 @@ void FixNPT::box_dilate(int flag) if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]-> - dilate(2,oldlo,oldhi,domain->boxzlo,domain->boxzhi); + dilate(2,oldlo,oldhi,domain->boxlo[2],domain->boxhi[2]); } } diff --git a/src/fix_uniaxial.cpp b/src/fix_uniaxial.cpp index 01496ad0e84cec33b344275868bb83a98ddc5ca1..8b610fbeaea28e367fa600d9108d8f5bb28ba13e 100644 --- a/src/fix_uniaxial.cpp +++ b/src/fix_uniaxial.cpp @@ -37,6 +37,9 @@ FixUniaxial::FixUniaxial(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) { if (narg != 6) error->all("Illegal fix uniaxial command"); + + box_change = 1; + nevery = atoi(arg[3]); if (nevery <= 0) error->all("Illegal fix uniaxial command"); @@ -79,21 +82,21 @@ void FixUniaxial::init() { // store pointers to domain variable so can loop over dimensions - domainlo[0] = &domain->boxxlo; - domainlo[1] = &domain->boxylo; - domainlo[2] = &domain->boxzlo; + domainlo[0] = &domain->boxlo[0]; + domainlo[1] = &domain->boxlo[1]; + domainlo[2] = &domain->boxlo[2]; - domainhi[0] = &domain->boxxhi; - domainhi[1] = &domain->boxyhi; - domainhi[2] = &domain->boxzhi; + domainhi[0] = &domain->boxhi[0]; + domainhi[1] = &domain->boxhi[1]; + domainhi[2] = &domain->boxhi[2]; domainprd[0] = &domain->xprd; domainprd[1] = &domain->yprd; domainprd[2] = &domain->zprd; - double L = pow((domain->boxxhi-domain->boxxlo)* - (domain->boxyhi-domain->boxylo)* - (domain->boxzhi-domain->boxzlo) ,1.0/3.0); + double L = pow((domain->boxhi[0]-domain->boxlo[0])* + (domain->boxhi[1]-domain->boxlo[1])* + (domain->boxhi[2]-domain->boxlo[2]) ,1.0/3.0); // save box sizes for coordinate rescaling // calculate strains and asymmetry parameter @@ -196,7 +199,7 @@ void FixUniaxial::end_of_step() *domainlo[m] = newlo; *domainhi[m] = newhi; - *domainprd[m] = newhi - newlo; + domain->prd[m] = *domainprd[m] = newhi - newlo; if (nrigid) for (i = 0; i < nrigid; i++) diff --git a/src/fix_volume_rescale.cpp b/src/fix_volume_rescale.cpp index 413172aa216e92d1f7eef1da905c63459121736d..4861487bef33e4746ac81bc5a1364c65059440b9 100644 --- a/src/fix_volume_rescale.cpp +++ b/src/fix_volume_rescale.cpp @@ -94,12 +94,12 @@ int FixVolRescale::setmask() void FixVolRescale::init() { - xlo_start = domain->boxxlo; - xhi_start = domain->boxxhi; - ylo_start = domain->boxylo; - yhi_start = domain->boxyhi; - zlo_start = domain->boxzlo; - zhi_start = domain->boxzhi; + xlo_start = domain->boxlo[0]; + xhi_start = domain->boxhi[0]; + ylo_start = domain->boxlo[1]; + yhi_start = domain->boxhi[1]; + zlo_start = domain->boxlo[2]; + zhi_start = domain->boxhi[2]; if (force->kspace) kspace_flag = 1; else kspace_flag = 0; @@ -138,51 +138,51 @@ void FixVolRescale::end_of_step() int nlocal = atom->nlocal; if (xflag) { - oldlo = domain->boxxlo; - oldhi = domain->boxxhi; + oldlo = domain->boxlo[0]; + oldhi = domain->boxhi[0]; newlo = xlo_start + delta * (xlo_stop-xlo_start); newhi = xhi_start + delta * (xhi_stop-xhi_start); ratio = (newhi - newlo) / domain->xprd; for (i = 0; i < nlocal; i++) if (mask[i] & groupbit) x[i][0] = newlo + (x[i][0] - oldlo) * ratio; - domain->boxxlo = newlo; - domain->boxxhi = newhi; - domain->xprd = newhi - newlo; + domain->boxlo[0] = newlo; + domain->boxhi[0] = newhi; + domain->prd[0] = domain->xprd = newhi - newlo; if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]->dilate(0,oldlo,oldhi,newlo,newhi); } if (yflag) { - oldlo = domain->boxylo; - oldhi = domain->boxyhi; + oldlo = domain->boxlo[1]; + oldhi = domain->boxhi[1]; newlo = ylo_start + delta * (ylo_stop-ylo_start); newhi = yhi_start + delta * (yhi_stop-yhi_start); ratio = (newhi - newlo) / domain->yprd; for (i = 0; i < nlocal; i++) if (mask[i] & groupbit) x[i][1] = newlo + (x[i][1] - oldlo) * ratio; - domain->boxylo = newlo; - domain->boxyhi = newhi; - domain->yprd = newhi - newlo; + domain->boxlo[1] = newlo; + domain->boxhi[1] = newhi; + domain->prd[1] = domain->yprd = newhi - newlo; if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]->dilate(1,oldlo,oldhi,newlo,newhi); } if (zflag) { - oldlo = domain->boxzlo; - oldhi = domain->boxzhi; + oldlo = domain->boxlo[2]; + oldhi = domain->boxhi[2]; newlo = zlo_start + delta * (zlo_stop-zlo_start); newhi = zhi_start + delta * (zhi_stop-zhi_start); ratio = (newhi - newlo) / domain->zprd; for (i = 0; i < nlocal; i++) if (mask[i] & groupbit) x[i][2] = newlo + (x[i][2] - oldlo) * ratio; - domain->boxzlo = newlo; - domain->boxzhi = newhi; - domain->zprd = newhi - newlo; + domain->boxlo[2] = newlo; + domain->boxhi[2] = newhi; + domain->prd[2] = domain->zprd = newhi - newlo; if (nrigid) for (i = 0; i < nrigid; i++) modify->fix[rfix[i]]->dilate(2,oldlo,oldhi,newlo,newhi); diff --git a/src/fix_wall_reflect.cpp b/src/fix_wall_reflect.cpp index da8ee9bb5c9c180e8806d767b4e3fc067b476607..dbb4e260a57fdf7ce273f81a12be97ebaf824499 100644 --- a/src/fix_wall_reflect.cpp +++ b/src/fix_wall_reflect.cpp @@ -76,12 +76,12 @@ void FixWallReflect::init() void FixWallReflect::initial_integrate() { - double xlo = domain->boxxlo; - double xhi = domain->boxxhi; - double ylo = domain->boxylo; - double yhi = domain->boxyhi; - double zlo = domain->boxzlo; - double zhi = domain->boxzhi; + double xlo = domain->boxlo[0]; + double xhi = domain->boxhi[0]; + double ylo = domain->boxlo[1]; + double yhi = domain->boxhi[1]; + double zlo = domain->boxlo[2]; + double zhi = domain->boxhi[2]; double **x = atom->x; double **v = atom->v; diff --git a/src/read_data.cpp b/src/read_data.cpp index 539fa759eb46b5a3e7119830a26dc53d09c84a89..9721908c207797922bcf54696bf51c1b4af77fcf 100644 --- a/src/read_data.cpp +++ b/src/read_data.cpp @@ -353,11 +353,11 @@ void ReadData::header(int flag) else if (strstr(line,"improper types")) sscanf(line,"%d",&atom->nimpropertypes); else if (strstr(line,"xlo xhi")) - sscanf(line,"%lg %lg",&domain->boxxlo,&domain->boxxhi); + sscanf(line,"%lg %lg",&domain->boxlo[0],&domain->boxhi[0]); else if (strstr(line,"ylo yhi")) - sscanf(line,"%lg %lg",&domain->boxylo,&domain->boxyhi); + sscanf(line,"%lg %lg",&domain->boxlo[1],&domain->boxhi[1]); else if (strstr(line,"zlo zhi")) - sscanf(line,"%lg %lg",&domain->boxzlo,&domain->boxzhi); + sscanf(line,"%lg %lg",&domain->boxlo[2],&domain->boxhi[2]); else if (strstr(line,"xy xz yz")) { domain->triclinic = 1; sscanf(line,"%lg %lg %lg",&domain->xy,&domain->xz,&domain->yz); diff --git a/src/read_restart.cpp b/src/read_restart.cpp index 12fadcc35cc6caad2778e34c21e9afc788eabd62..ec19f31774a1376e3a56d6fcf41f11ef3845c718 100644 --- a/src/read_restart.cpp +++ b/src/read_restart.cpp @@ -505,17 +505,17 @@ void ReadRestart::header() atom->improper_per_atom = read_int(); } else if (flag == 34) { - domain->boxxlo = read_double(); + domain->boxlo[0] = read_double(); } else if (flag == 35) { - domain->boxxhi = read_double(); + domain->boxhi[0] = read_double(); } else if (flag == 36) { - domain->boxylo = read_double(); + domain->boxlo[1] = read_double(); } else if (flag == 37) { - domain->boxyhi = read_double(); + domain->boxhi[1] = read_double(); } else if (flag == 38) { - domain->boxzlo = read_double(); + domain->boxlo[2] = read_double(); } else if (flag == 39) { - domain->boxzhi = read_double(); + domain->boxhi[2] = read_double(); } else if (flag == 40) { force->special_lj[1] = read_double(); diff --git a/src/replicate.cpp b/src/replicate.cpp index 97c82359625b48ed2daa9cd088cfe2b3ef791ea5..b6a42221cb6e02215752ffba36f79709a153c6f4 100644 --- a/src/replicate.cpp +++ b/src/replicate.cpp @@ -168,9 +168,9 @@ void Replicate::command(int narg, char **arg) // setup new simulation box - domain->boxxhi = domain->boxxlo + nx*old_xprd; - domain->boxyhi = domain->boxylo + ny*old_yprd; - domain->boxzhi = domain->boxzlo + nz*old_zprd; + domain->boxhi[0] = domain->boxlo[0] + nx*old_xprd; + domain->boxhi[1] = domain->boxlo[1] + ny*old_yprd; + domain->boxhi[2] = domain->boxlo[2] + nz*old_zprd; if (triclinic) { domain->xy *= ny; domain->xz *= nz; diff --git a/src/thermo.cpp b/src/thermo.cpp index 22eec73d350313d216fdfe71e367b6a68c4fd0b9..b48e03f3b2cd29f4694949600daa4fe594b0b383 100644 --- a/src/thermo.cpp +++ b/src/thermo.cpp @@ -1326,42 +1326,42 @@ void Thermo::compute_lz() void Thermo::compute_xlo() { - dvalue = domain->boxxlo; + dvalue = domain->boxlo[0]; } /* ---------------------------------------------------------------------- */ void Thermo::compute_xhi() { - dvalue = domain->boxxhi; + dvalue = domain->boxhi[0]; } /* ---------------------------------------------------------------------- */ void Thermo::compute_ylo() { - dvalue = domain->boxylo; + dvalue = domain->boxlo[1]; } /* ---------------------------------------------------------------------- */ void Thermo::compute_yhi() { - dvalue = domain->boxyhi; + dvalue = domain->boxhi[1]; } /* ---------------------------------------------------------------------- */ void Thermo::compute_zlo() { - dvalue = domain->boxzlo; + dvalue = domain->boxlo[2]; } /* ---------------------------------------------------------------------- */ void Thermo::compute_zhi() { - dvalue = domain->boxzhi; + dvalue = domain->boxhi[2]; } /* ---------------------------------------------------------------------- */ diff --git a/src/write_restart.cpp b/src/write_restart.cpp index 16cccc59738c31a74175ceac4851571eb673d3d5..d31ce8d085489da53e8165b4f88a893ed43ba141 100644 --- a/src/write_restart.cpp +++ b/src/write_restart.cpp @@ -272,12 +272,12 @@ void WriteRestart::header() write_int(32,atom->nimpropertypes); write_int(33,atom->improper_per_atom); - write_double(34,domain->boxxlo); - write_double(35,domain->boxxhi); - write_double(36,domain->boxylo); - write_double(37,domain->boxyhi); - write_double(38,domain->boxzlo); - write_double(39,domain->boxzhi); + write_double(34,domain->boxlo[0]); + write_double(35,domain->boxhi[0]); + write_double(36,domain->boxlo[1]); + write_double(37,domain->boxhi[1]); + write_double(38,domain->boxlo[2]); + write_double(39,domain->boxhi[2]); write_double(40,force->special_lj[1]); write_double(41,force->special_lj[2]);