How to modify the virial ?

Dear all,

I modify the fix_wall_region to compute anisotropic interactions between
a wall and ellipsoidal particles. Doing this the tangential component of
the force exerced by the wall can be non zero.
I want to equlibrate the system via NPT simulations, I have to include
the wall-particles forces in the calculation of the virial.

My fix modify the forces and torques of the particles directly. But I
need to recalculate the virial after the fix.

My question is how to add the forces to the virial and how to recompute
the pressure from the virial.

I have seen that for gay berne particles, the forces are added to the
virial in the atom-atom forces evaluation step with the ev_tally_xyz()
Afterwhat the virial_compute() function is call to evaluate the virial
and the tensor of pressure.

Is it possible to use the ev_tally_xyz_full() function of the pair class
at fix step to add the forces from the wall to the virial.
After that in the post_force part of the fix calling the
virial_compute(), once again to reevaluate the virial and pressure tensor ?

Thanks for your help


I don't believe there is a virial contribution due to a wall interacting
with particles on a one by one basis. Just as there
is no virial to any other constraint force acting on particles
one at a time. None of the fixes in LAMMPS that
impose such a constraint, compute a virial contribution.