Have you ever met with this problem?
I’m going to calculate the vapor pressure, to which only intermolecular forces make contribution. The pressure calculated by lammps include all interactions, pair, bond, angle,etc in default. I also saw that ‘compute pressure’ or ‘thermo_style’ can be modified to reduce the components of pressure into only kinetic energy and pair-wise interactions. However, the pair-wise interactions (e.g. LJ) include both intra-molecular pairs and inter-molecular pairs. How can I compute a pressure with only inter-molecular forces included?
Maybe Aidan has an idea on this.
The thermodynamic pressure is estimated by averaging the instantaneous
pressure based on the kinetic energy and the force virial. The force virial
can include (atomic virial) or exclude (molecular virial) intramolecular
forces; both are equally valid. However, if you were to use the molecular
virial, you must also exclude the intramolecular kinetic energy. This means
that the N in NkT must be based on the number of molecules rather than the
number of atoms. It is possible that the molecular virial converges more
rapidly than the atomic virial, but I suspect that this is not a big issue
for average pressure. More importantly, I don't think there is an easy way
to extract the molecular virial in LAMMPS, without writing a lot of
specialized code, or doing some tricks with the per-atom virial compute.
Bottom line: the easiest thing is to just average the pressure that LAMMPS
normally produces in thermo output etc. This should converge to the correct
vapor pressure. It is also important to apply tail corrections properly.