git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@731 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp
2007-07-03 19:53:23 +00:00
parent 525e8276f5
commit 7df6dcb94e
2 changed files with 28 additions and 10 deletions

View File

@ -77,6 +77,7 @@ void ComputePressure::init()
{ {
boltz = force->boltz; boltz = force->boltz;
nktv2p = force->nktv2p; nktv2p = force->nktv2p;
dimension = domain->dimension;
// set temperature used by pressure // set temperature used by pressure
@ -128,10 +129,18 @@ void ComputePressure::init()
double ComputePressure::compute_scalar() double ComputePressure::compute_scalar()
{ {
inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd); if (dimension == 3) {
virial_compute(3); inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd);
scalar = (temperature->dof * boltz * temperature->scalar + virial_compute(3);
virial[0] + virial[1] + virial[2]) / 3.0 * inv_volume * nktv2p; 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; return scalar;
} }
@ -142,11 +151,20 @@ double ComputePressure::compute_scalar()
void ComputePressure::compute_vector() void ComputePressure::compute_vector()
{ {
inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd); if (dimension == 3) {
virial_compute(6); inv_volume = 1.0 / (domain->xprd * domain->yprd * domain->zprd);
double *ke_tensor = temperature->vector; virial_compute(6);
for (int i = 0; i < 6; i++) double *ke_tensor = temperature->vector;
vector[i] = (ke_tensor[i] + virial[i]) * inv_volume * nktv2p; 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;
}
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */

View File

@ -28,7 +28,7 @@ class ComputePressure : public Compute {
private: private:
double boltz,nktv2p,inv_volume; double boltz,nktv2p,inv_volume;
int nvirial; int nvirial,dimension;
double **vptr; double **vptr;
int kspaceflag; int kspaceflag;
double *kspace_virial; double *kspace_virial;