enable and apply clang-format
This commit is contained in:
@ -1,4 +1,3 @@
|
||||
// clang-format off
|
||||
/* ----------------------------------------------------------------------
|
||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||
https://www.lammps.org/, Sandia National Laboratories
|
||||
@ -33,15 +32,14 @@
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
enum{NOBIAS,BIAS};
|
||||
enum { NOBIAS, BIAS };
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
ComputeStressAtom::ComputeStressAtom(LAMMPS *lmp, int narg, char **arg) :
|
||||
Compute(lmp, narg, arg),
|
||||
id_temp(nullptr), stress(nullptr)
|
||||
Compute(lmp, narg, arg), id_temp(nullptr), stress(nullptr)
|
||||
{
|
||||
if (narg < 4) error->all(FLERR,"Illegal compute stress/atom command");
|
||||
if (narg < 4) error->all(FLERR, "Illegal compute stress/atom command");
|
||||
|
||||
peratom_flag = 1;
|
||||
size_peratom_cols = 6;
|
||||
@ -52,17 +50,15 @@ ComputeStressAtom::ComputeStressAtom(LAMMPS *lmp, int narg, char **arg) :
|
||||
// store temperature ID used by stress computation
|
||||
// insure it is valid for temperature computation
|
||||
|
||||
if (strcmp(arg[3],"NULL") == 0) id_temp = nullptr;
|
||||
if (strcmp(arg[3], "NULL") == 0)
|
||||
id_temp = nullptr;
|
||||
else {
|
||||
id_temp = utils::strdup(arg[3]);
|
||||
|
||||
int icompute = modify->find_compute(id_temp);
|
||||
if (icompute < 0)
|
||||
error->all(FLERR,"Could not find compute stress/atom temperature ID");
|
||||
if (icompute < 0) error->all(FLERR, "Could not find compute stress/atom temperature ID");
|
||||
if (modify->compute[icompute]->tempflag == 0)
|
||||
error->all(FLERR,
|
||||
"Compute stress/atom temperature ID does not "
|
||||
"compute temperature");
|
||||
error->all(FLERR, "Compute stress/atom temperature ID does not compute temperature");
|
||||
}
|
||||
|
||||
// process optional args
|
||||
@ -81,19 +77,28 @@ ComputeStressAtom::ComputeStressAtom(LAMMPS *lmp, int narg, char **arg) :
|
||||
fixflag = 0;
|
||||
int iarg = 4;
|
||||
while (iarg < narg) {
|
||||
if (strcmp(arg[iarg],"ke") == 0) keflag = 1;
|
||||
else if (strcmp(arg[iarg],"pair") == 0) pairflag = 1;
|
||||
else if (strcmp(arg[iarg],"bond") == 0) bondflag = 1;
|
||||
else if (strcmp(arg[iarg],"angle") == 0) angleflag = 1;
|
||||
else if (strcmp(arg[iarg],"dihedral") == 0) dihedralflag = 1;
|
||||
else if (strcmp(arg[iarg],"improper") == 0) improperflag = 1;
|
||||
else if (strcmp(arg[iarg],"kspace") == 0) kspaceflag = 1;
|
||||
else if (strcmp(arg[iarg],"fix") == 0) fixflag = 1;
|
||||
else if (strcmp(arg[iarg],"virial") == 0) {
|
||||
if (strcmp(arg[iarg], "ke") == 0)
|
||||
keflag = 1;
|
||||
else if (strcmp(arg[iarg], "pair") == 0)
|
||||
pairflag = 1;
|
||||
else if (strcmp(arg[iarg], "bond") == 0)
|
||||
bondflag = 1;
|
||||
else if (strcmp(arg[iarg], "angle") == 0)
|
||||
angleflag = 1;
|
||||
else if (strcmp(arg[iarg], "dihedral") == 0)
|
||||
dihedralflag = 1;
|
||||
else if (strcmp(arg[iarg], "improper") == 0)
|
||||
improperflag = 1;
|
||||
else if (strcmp(arg[iarg], "kspace") == 0)
|
||||
kspaceflag = 1;
|
||||
else if (strcmp(arg[iarg], "fix") == 0)
|
||||
fixflag = 1;
|
||||
else if (strcmp(arg[iarg], "virial") == 0) {
|
||||
pairflag = 1;
|
||||
bondflag = angleflag = dihedralflag = improperflag = 1;
|
||||
kspaceflag = fixflag = 1;
|
||||
} else error->all(FLERR,"Illegal compute stress/atom command");
|
||||
} else
|
||||
error->all(FLERR, "Illegal compute stress/atom command");
|
||||
iarg++;
|
||||
}
|
||||
}
|
||||
@ -105,7 +110,7 @@ ComputeStressAtom::ComputeStressAtom(LAMMPS *lmp, int narg, char **arg) :
|
||||
|
||||
ComputeStressAtom::~ComputeStressAtom()
|
||||
{
|
||||
delete [] id_temp;
|
||||
delete[] id_temp;
|
||||
memory->destroy(stress);
|
||||
}
|
||||
|
||||
@ -118,24 +123,26 @@ void ComputeStressAtom::init()
|
||||
|
||||
if (id_temp) {
|
||||
int icompute = modify->find_compute(id_temp);
|
||||
if (icompute < 0)
|
||||
error->all(FLERR,"Could not find compute stress/atom temperature ID");
|
||||
if (icompute < 0) error->all(FLERR, "Could not find compute stress/atom temperature ID");
|
||||
temperature = modify->compute[icompute];
|
||||
if (temperature->tempbias) biasflag = BIAS;
|
||||
else biasflag = NOBIAS;
|
||||
} else biasflag = NOBIAS;
|
||||
if (temperature->tempbias)
|
||||
biasflag = BIAS;
|
||||
else
|
||||
biasflag = NOBIAS;
|
||||
} else
|
||||
biasflag = NOBIAS;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
void ComputeStressAtom::compute_peratom()
|
||||
{
|
||||
int i,j;
|
||||
int i, j;
|
||||
double onemass;
|
||||
|
||||
invoked_peratom = update->ntimestep;
|
||||
if (update->vflag_atom != invoked_peratom)
|
||||
error->all(FLERR,"Per-atom virial was not tallied on needed timestep");
|
||||
error->all(FLERR, "Per-atom virial was not tallied on needed timestep");
|
||||
|
||||
// grow local stress array if necessary
|
||||
// needs to be atom->nmax in length
|
||||
@ -143,7 +150,7 @@ void ComputeStressAtom::compute_peratom()
|
||||
if (atom->nmax > nmax) {
|
||||
memory->destroy(stress);
|
||||
nmax = atom->nmax;
|
||||
memory->create(stress,nmax,6,"stress/atom:stress");
|
||||
memory->create(stress, nmax, 6, "stress/atom:stress");
|
||||
array_atom = stress;
|
||||
}
|
||||
|
||||
@ -166,51 +173,44 @@ void ComputeStressAtom::compute_peratom()
|
||||
// clear local stress array
|
||||
|
||||
for (i = 0; i < ntotal; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
stress[i][j] = 0.0;
|
||||
for (j = 0; j < 6; j++) stress[i][j] = 0.0;
|
||||
|
||||
// add in per-atom contributions from each force
|
||||
|
||||
if (pairflag && force->pair && force->pair->compute_flag) {
|
||||
double **vatom = force->pair->vatom;
|
||||
for (i = 0; i < npair; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
stress[i][j] += vatom[i][j];
|
||||
for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j];
|
||||
}
|
||||
|
||||
if (bondflag && force->bond) {
|
||||
double **vatom = force->bond->vatom;
|
||||
for (i = 0; i < nbond; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
stress[i][j] += vatom[i][j];
|
||||
for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j];
|
||||
}
|
||||
|
||||
if (angleflag && force->angle) {
|
||||
double **vatom = force->angle->vatom;
|
||||
for (i = 0; i < nbond; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
stress[i][j] += vatom[i][j];
|
||||
for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j];
|
||||
}
|
||||
|
||||
if (dihedralflag && force->dihedral) {
|
||||
double **vatom = force->dihedral->vatom;
|
||||
for (i = 0; i < nbond; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
stress[i][j] += vatom[i][j];
|
||||
for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j];
|
||||
}
|
||||
|
||||
if (improperflag && force->improper) {
|
||||
double **vatom = force->improper->vatom;
|
||||
for (i = 0; i < nbond; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
stress[i][j] += vatom[i][j];
|
||||
for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j];
|
||||
}
|
||||
|
||||
if (kspaceflag && force->kspace && force->kspace->compute_flag) {
|
||||
double **vatom = force->kspace->vatom;
|
||||
for (i = 0; i < nkspace; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
stress[i][j] += vatom[i][j];
|
||||
for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j];
|
||||
}
|
||||
|
||||
// add in per-atom contributions from relevant fixes
|
||||
@ -225,15 +225,13 @@ void ComputeStressAtom::compute_peratom()
|
||||
double **vatom = ifix->vatom;
|
||||
if (vatom)
|
||||
for (i = 0; i < nlocal; i++)
|
||||
for (j = 0; j < 6; j++)
|
||||
stress[i][j] += vatom[i][j];
|
||||
for (j = 0; j < 6; j++) stress[i][j] += vatom[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
// communicate ghost virials between neighbor procs
|
||||
|
||||
if (force->newton || (force->kspace && force->kspace->tip4pflag))
|
||||
comm->reverse_comm(this);
|
||||
if (force->newton || (force->kspace && force->kspace->tip4pflag)) comm->reverse_comm(this);
|
||||
|
||||
// zero virial of atoms not in group
|
||||
// only do this after comm since ghost contributions must be included
|
||||
@ -266,24 +264,24 @@ void ComputeStressAtom::compute_peratom()
|
||||
for (i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
onemass = mvv2e * rmass[i];
|
||||
stress[i][0] += onemass*v[i][0]*v[i][0];
|
||||
stress[i][1] += onemass*v[i][1]*v[i][1];
|
||||
stress[i][2] += onemass*v[i][2]*v[i][2];
|
||||
stress[i][3] += onemass*v[i][0]*v[i][1];
|
||||
stress[i][4] += onemass*v[i][0]*v[i][2];
|
||||
stress[i][5] += onemass*v[i][1]*v[i][2];
|
||||
stress[i][0] += onemass * v[i][0] * v[i][0];
|
||||
stress[i][1] += onemass * v[i][1] * v[i][1];
|
||||
stress[i][2] += onemass * v[i][2] * v[i][2];
|
||||
stress[i][3] += onemass * v[i][0] * v[i][1];
|
||||
stress[i][4] += onemass * v[i][0] * v[i][2];
|
||||
stress[i][5] += onemass * v[i][1] * v[i][2];
|
||||
}
|
||||
|
||||
} else {
|
||||
for (i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
onemass = mvv2e * mass[type[i]];
|
||||
stress[i][0] += onemass*v[i][0]*v[i][0];
|
||||
stress[i][1] += onemass*v[i][1]*v[i][1];
|
||||
stress[i][2] += onemass*v[i][2]*v[i][2];
|
||||
stress[i][3] += onemass*v[i][0]*v[i][1];
|
||||
stress[i][4] += onemass*v[i][0]*v[i][2];
|
||||
stress[i][5] += onemass*v[i][1]*v[i][2];
|
||||
stress[i][0] += onemass * v[i][0] * v[i][0];
|
||||
stress[i][1] += onemass * v[i][1] * v[i][1];
|
||||
stress[i][2] += onemass * v[i][2] * v[i][2];
|
||||
stress[i][3] += onemass * v[i][0] * v[i][1];
|
||||
stress[i][4] += onemass * v[i][0] * v[i][2];
|
||||
stress[i][5] += onemass * v[i][1] * v[i][2];
|
||||
}
|
||||
}
|
||||
|
||||
@ -292,35 +290,34 @@ void ComputeStressAtom::compute_peratom()
|
||||
// invoke temperature if it hasn't been already
|
||||
// this insures bias factor is pre-computed
|
||||
|
||||
if (keflag && temperature->invoked_scalar != update->ntimestep)
|
||||
temperature->compute_scalar();
|
||||
if (keflag && temperature->invoked_scalar != update->ntimestep) temperature->compute_scalar();
|
||||
|
||||
if (rmass) {
|
||||
for (i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
temperature->remove_bias(i,v[i]);
|
||||
temperature->remove_bias(i, v[i]);
|
||||
onemass = mvv2e * rmass[i];
|
||||
stress[i][0] += onemass*v[i][0]*v[i][0];
|
||||
stress[i][1] += onemass*v[i][1]*v[i][1];
|
||||
stress[i][2] += onemass*v[i][2]*v[i][2];
|
||||
stress[i][3] += onemass*v[i][0]*v[i][1];
|
||||
stress[i][4] += onemass*v[i][0]*v[i][2];
|
||||
stress[i][5] += onemass*v[i][1]*v[i][2];
|
||||
temperature->restore_bias(i,v[i]);
|
||||
stress[i][0] += onemass * v[i][0] * v[i][0];
|
||||
stress[i][1] += onemass * v[i][1] * v[i][1];
|
||||
stress[i][2] += onemass * v[i][2] * v[i][2];
|
||||
stress[i][3] += onemass * v[i][0] * v[i][1];
|
||||
stress[i][4] += onemass * v[i][0] * v[i][2];
|
||||
stress[i][5] += onemass * v[i][1] * v[i][2];
|
||||
temperature->restore_bias(i, v[i]);
|
||||
}
|
||||
|
||||
} else {
|
||||
for (i = 0; i < nlocal; i++)
|
||||
if (mask[i] & groupbit) {
|
||||
temperature->remove_bias(i,v[i]);
|
||||
temperature->remove_bias(i, v[i]);
|
||||
onemass = mvv2e * mass[type[i]];
|
||||
stress[i][0] += onemass*v[i][0]*v[i][0];
|
||||
stress[i][1] += onemass*v[i][1]*v[i][1];
|
||||
stress[i][2] += onemass*v[i][2]*v[i][2];
|
||||
stress[i][3] += onemass*v[i][0]*v[i][1];
|
||||
stress[i][4] += onemass*v[i][0]*v[i][2];
|
||||
stress[i][5] += onemass*v[i][1]*v[i][2];
|
||||
temperature->restore_bias(i,v[i]);
|
||||
stress[i][0] += onemass * v[i][0] * v[i][0];
|
||||
stress[i][1] += onemass * v[i][1] * v[i][1];
|
||||
stress[i][2] += onemass * v[i][2] * v[i][2];
|
||||
stress[i][3] += onemass * v[i][0] * v[i][1];
|
||||
stress[i][4] += onemass * v[i][0] * v[i][2];
|
||||
stress[i][5] += onemass * v[i][1] * v[i][2];
|
||||
temperature->restore_bias(i, v[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -344,7 +341,7 @@ void ComputeStressAtom::compute_peratom()
|
||||
|
||||
int ComputeStressAtom::pack_reverse_comm(int n, int first, double *buf)
|
||||
{
|
||||
int i,m,last;
|
||||
int i, m, last;
|
||||
|
||||
m = 0;
|
||||
last = first + n;
|
||||
@ -363,7 +360,7 @@ int ComputeStressAtom::pack_reverse_comm(int n, int first, double *buf)
|
||||
|
||||
void ComputeStressAtom::unpack_reverse_comm(int n, int *list, double *buf)
|
||||
{
|
||||
int i,j,m;
|
||||
int i, j, m;
|
||||
|
||||
m = 0;
|
||||
for (i = 0; i < n; i++) {
|
||||
@ -383,6 +380,6 @@ void ComputeStressAtom::unpack_reverse_comm(int n, int *list, double *buf)
|
||||
|
||||
double ComputeStressAtom::memory_usage()
|
||||
{
|
||||
double bytes = (double)nmax*6 * sizeof(double);
|
||||
double bytes = (double) nmax * 6 * sizeof(double);
|
||||
return bytes;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user