Skip to content
Snippets Groups Projects
Commit 7df6dcb9 authored by sjplimp's avatar sjplimp
Browse files

git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@731 f3b2605a-c512-4ea7-a41b-209d697bcdaa
parent 525e8276
No related branches found
No related tags found
No related merge requests found
......@@ -77,6 +77,7 @@ void ComputePressure::init()
{
boltz = force->boltz;
nktv2p = force->nktv2p;
dimension = domain->dimension;
// set temperature used by pressure
......@@ -128,10 +129,18 @@ void ComputePressure::init()
double ComputePressure::compute_scalar()
{
inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd);
virial_compute(3);
scalar = (temperature->dof * boltz * temperature->scalar +
virial[0] + virial[1] + virial[2]) / 3.0 * inv_volume * nktv2p;
if (dimension == 3) {
inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd);
virial_compute(3);
scalar = (temperature->dof * boltz * temperature->scalar +
virial[0] + virial[1] + virial[2]) / 3.0 * inv_volume * nktv2p;
} else {
inv_volume = 1.0 / (domain->xprd * domain->yprd);
virial_compute(2);
scalar = (temperature->dof * boltz * temperature->scalar +
virial[0] + virial[1]) / 2.0 * inv_volume * nktv2p;
}
return scalar;
}
......@@ -142,11 +151,20 @@ double ComputePressure::compute_scalar()
void ComputePressure::compute_vector()
{
inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd);
virial_compute(6);
double *ke_tensor = temperature->vector;
for (int i = 0; i < 6; i++)
vector[i] = (ke_tensor[i] + virial[i]) * inv_volume * nktv2p;
if (dimension == 3) {
inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd);
virial_compute(6);
double *ke_tensor = temperature->vector;
for (int i = 0; i < 6; i++)
vector[i] = (ke_tensor[i] + virial[i]) * inv_volume * nktv2p;
} else {
inv_volume = 1.0 / (domain->xprd * domain->yprd);
virial_compute(4);
double *ke_tensor = temperature->vector;
vector[0] = (ke_tensor[0] + virial[0]) * inv_volume * nktv2p;
vector[1] = (ke_tensor[1] + virial[1]) * inv_volume * nktv2p;
vector[3] = (ke_tensor[3] + virial[3]) * inv_volume * nktv2p;
}
}
/* ---------------------------------------------------------------------- */
......
......@@ -28,7 +28,7 @@ class ComputePressure : public Compute {
private:
double boltz,nktv2p,inv_volume;
int nvirial;
int nvirial,dimension;
double **vptr;
int kspaceflag;
double *kspace_virial;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment