Hello there, I have an important update on this topic. Along with Stephen Farr, we have developed a new compute inter
for the intermolecular energy of systems with long-range electrostatics. It also works for systems without long-range potentials, but the existing compute group\group
can also be used for those. You can find the source code on Stefan’s fork on GitHub.
(the repo also contains a new coarse-grained force model called MOLC, but this will be the topic of another thread.)
I have prepared an input deck with a sample of 1000 n-decane molecules.
intermolecular.tgz (5.3 MB)
The force field is the GROMOS-ATB, composed of the usual bonds, angles, dihedral terms, Lennard-Jones spheres and point charges.
These are the relevant commands for every simulation:
# decane_01
compute inter1 all group/group all pair yes kspace yes molecule inter
compute inter2 all inter kspace yes # the new compute.
# decane_02
neigh_modify exclude molecule/intra all
compute inter1 all group/group all pair yes kspace yes # include inter- and intra-molecular contributions
compute inter2 all inter kspace yes # the new compute.
rerun decane_01.dump dump x y z vx vy vz box yes
# decane_03
special_bonds lj/coul 0.0 0.0 0.0
compute inter1 all group/group all pair yes kspace yes # include inter- and intra-molecular contributions
compute inter2 all inter kspace yes # the new compute.
rerun decane_01.dump dump x y z vx vy vz box yes
For simulation decane_02, I have used the method suggested by Steve Plimton here.
For simulation decane_03, I have used a dummy molecular topology where all intramolecular interactions are scaled to zero by adding extra dummy bonds between all pairs of carbon atoms (suggested here).
This table reports the values (kcal/mol) computed in the last step:
Filename |
E_\text{vdwl}+E_\text{coul}+E_\text{long} |
c_inter1 |
c_inter2 |
Note |
decane_01 |
-8111.2936 |
-21622.214 |
-12451.946 |
production run |
decane_02 |
-21622.21664 |
-21622.217 |
-21622.217 |
mailing list reference 1 |
decane_03 |
-12451.9485 |
-12451.948 |
-12451.948 |
mailing list reference 2 |
In simulation 01, the intermolecular energy from compute group/group
is almost twice the one computed by the new compute and corresponds exactly to the sum of E_vdwl+E_coul+E_long
in simulation 02, e.g. by excluding intramolecular pairwise energy through neigh_modify
. Conversely, by using a custom topology where the special_bonds
turn off all intra-molecular interactions, the sum of E_vdwl+E_coul+E_long
in simulation 03 nicely corresponds to compute inter
in simulation 01.
In fact, compute 1 all inter
is nothing but a modified compute 1 all group\group all
where all the intramolecular interactions have been scaled to zero. The important bit is that the weighting function for the real part of the Coulomb summation is computed with factor_coul = 0
applied to every atom pairs belonging to the same molecule. This correction is necessary to account for the long-range solver.
Finally, by assuming that the intramolecular energy of a molecule in the liquid and gas phases is the same, the enthalpy of vaporisation becomes:
\Delta H_\text{vap}(T) = -E_\text{inter}(T) +k_B T
from which the following enthalpies of vaporization at 300 K (kJ/mol) are computed:
exp (NIST) |
c_inter1 |
c_inter2 |
51.2(1) |
93.1(1) |
54.7(1) |
I encourage the community to test this compute
on cohesion energy, Hansen solubility parameters, enthalpies, and likes.
I will publish a paper giving more technical details, but I hardly doubt that any referee will dig into the source code. For me, this is the preferred way to present this work to this community for scrutiny, hoping that you will find it useful. Once validated, this work could be merged into the official LAMMPS distribution.
Best wishes,
Otello