make contribution to global virial compatible with pf/array mode

This commit is contained in:
Axel Kohlmeyer
2021-07-21 00:25:32 -04:00
parent 1c4e8aba12
commit 9615867600
2 changed files with 9 additions and 4 deletions

View File

@ -80,7 +80,7 @@ FixExternal::~FixExternal()
atom->delete_callback(id,Atom::GROW); atom->delete_callback(id,Atom::GROW);
memory->destroy(fexternal); memory->destroy(fexternal);
delete [] caller_vector; delete[] caller_vector;
} }
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
@ -163,6 +163,12 @@ void FixExternal::post_force(int vflag)
f[i][1] += fexternal[i][1]; f[i][1] += fexternal[i][1];
f[i][2] += fexternal[i][2]; f[i][2] += fexternal[i][2];
} }
// add contribution to global virial from previously stored value
if (vflag_global)
for (int i = 0; i < 6; ++i)
virial[i] = user_virial[i];
} }
} }
@ -196,10 +202,8 @@ void FixExternal::set_energy_global(double caller_energy)
void FixExternal::set_virial_global(double *caller_virial) void FixExternal::set_virial_global(double *caller_virial)
{ {
if (!vflag_global) return;
for (int i = 0; i < 6; i++) for (int i = 0; i < 6; i++)
virial[i] = caller_virial[i]; user_virial[i] = caller_virial[i];
} }
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------

View File

@ -64,6 +64,7 @@ class FixExternal : public Fix {
FnPtr callback; FnPtr callback;
void *ptr_caller; void *ptr_caller;
double user_energy; double user_energy;
double user_virial[6];
double *caller_vector; double *caller_vector;
}; };