git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@2625 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -93,7 +93,7 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
// process extra keywords
|
// process extra keywords
|
||||||
|
|
||||||
allremap = 0;
|
allremap = 0;
|
||||||
smax = 0.0001;
|
vmax = 0.0001;
|
||||||
|
|
||||||
int iarg;
|
int iarg;
|
||||||
if (press_couple == XYZ) iarg = 5;
|
if (press_couple == XYZ) iarg = 5;
|
||||||
@ -106,9 +106,9 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
else if (strcmp(arg[iarg+1],"partial") == 0) allremap = 1;
|
else if (strcmp(arg[iarg+1],"partial") == 0) allremap = 1;
|
||||||
else error->all("Illegal fix box/relax command");
|
else error->all("Illegal fix box/relax command");
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else if (strcmp(arg[iarg],"smax") == 0) {
|
} else if (strcmp(arg[iarg],"vmax") == 0) {
|
||||||
if (iarg+2 > narg) error->all("Illegal fix box/relax command");
|
if (iarg+2 > narg) error->all("Illegal fix box/relax command");
|
||||||
smax = atof(arg[iarg+1]);
|
vmax = atof(arg[iarg+1]);
|
||||||
iarg += 2;
|
iarg += 2;
|
||||||
} else error->all("Illegal fix box/relax command");
|
} else error->all("Illegal fix box/relax command");
|
||||||
}
|
}
|
||||||
@ -136,6 +136,8 @@ FixBoxRelax::FixBoxRelax(LAMMPS *lmp, int narg, char **arg) :
|
|||||||
if (p_flag[2] && domain->zperiodic == 0)
|
if (p_flag[2] && domain->zperiodic == 0)
|
||||||
error->all("Cannot use fix box/relax on a non-periodic dimension");
|
error->all("Cannot use fix box/relax on a non-periodic dimension");
|
||||||
|
|
||||||
|
if (vmax <= 0.0) error->all("Illegal fix box/relax command");
|
||||||
|
|
||||||
// create a new compute temp style
|
// create a new compute temp style
|
||||||
// id = fix-ID + temp
|
// id = fix-ID + temp
|
||||||
// compute group = all since pressure is always global (group all)
|
// compute group = all since pressure is always global (group all)
|
||||||
@ -338,11 +340,11 @@ void FixBoxRelax::min_step(double alpha, double *fextra)
|
|||||||
double FixBoxRelax::max_alpha(double *fextra)
|
double FixBoxRelax::max_alpha(double *fextra)
|
||||||
{
|
{
|
||||||
double alpha = 0.0;
|
double alpha = 0.0;
|
||||||
if (press_couple == XYZ) alpha = smax/fabs(fextra[0]);
|
if (press_couple == XYZ) alpha = vmax/fabs(fextra[0]);
|
||||||
else {
|
else {
|
||||||
alpha = smax/fabs(fextra[0]);
|
alpha = vmax/fabs(fextra[0]);
|
||||||
alpha = MIN(alpha,smax/fabs(fextra[1]));
|
alpha = MIN(alpha,vmax/fabs(fextra[1]));
|
||||||
alpha = MIN(alpha,smax/fabs(fextra[2]));
|
alpha = MIN(alpha,vmax/fabs(fextra[2]));
|
||||||
}
|
}
|
||||||
return alpha;
|
return alpha;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,7 +37,7 @@ class FixBoxRelax : public Fix {
|
|||||||
double p_target[3],p_current[3];
|
double p_target[3],p_current[3];
|
||||||
double dilation[3];
|
double dilation[3];
|
||||||
double volinit,xprdinit,yprdinit,zprdinit;
|
double volinit,xprdinit,yprdinit,zprdinit;
|
||||||
double smax,pv2e,pflagsum;
|
double vmax,pv2e,pflagsum;
|
||||||
|
|
||||||
double boxlo0[3],boxhi0[3]; // box bounds at start of line search
|
double boxlo0[3],boxhi0[3]; // box bounds at start of line search
|
||||||
double s0[6]; // scale matrix in Voigt notation
|
double s0[6]; // scale matrix in Voigt notation
|
||||||
|
|||||||
Reference in New Issue
Block a user