This repository contains a custom three-body potential, (sw/as), extending from the conventional Stillinger-Weber force field for the LAMMPS molecular dynamics simulator. The potential features piecewise functions for two-body and three-body interactions, suitable for the associative binding in vitrimer.
This plugin is adapted from the standard LAMMPS structure, maintaining a consistent usage pattern for straightforward integration. Place the pair_swas.cpp
and pair_swas.h
in the LAMMPS package and compile them together will achieve this potential.
Two-Body Potential
The dynamic crosslink bonds, or the associative bonds, are modeled by using a potential function similar to that proposed by Stillinger and Weber 1 . Such a potential function is robust and easy to modulate and can form vitrimer:
where
Importantly, the binding potential is added to the WCA potential. Although using the WCA potential affects the associative bond as little as possible, the real associative bond length is still inevitably slightly shifted and not equal to
Three-Body Potential
the binding potential as the only attractive potential will cause monomer clustering, which defeats the single-bond per reactive monomer condition. So we use a repulsive three-body interaction
where
Fig: The different potentials acting between reactive monomers of bond swap reaction, including
The setting of the parameters is very similar to the setting of the SW potential in LAMMPS(see SW potential and example files coeff_one.swas/coeff_two.swas
).
-
pair_swas.h
Declares the class, the parameter struct, and the method prototypes. -
pair_swas.cpp
Implements potential-file reading, parameter initialization, and the piecewise forms for two-body/three-body interactions. Also handles force and energy accumulation within LAMMPS. -
coeff_one.swas/coeff_two.swas
Examples of parameters when the potential is applied in LAMMPS,coeff_one.swas
is the case that only exist one type of reactive monomer, andcoeff_two.swas
is the case that the potential only exist between two types of reactive monomers. In LAMMPS in file, this potnetial always should be used with other two-body potential like "pair_style hybrid/overlay lj/expand 2.5 sw/as", the pair_coeff command should be like "pair_coeff * * sw/as coeff_two.swas A B" or "pair_coeff * * sw/as coeff_one.swas A". -
LICENSE
The license text. LAMMPS itself uses the GPL license, so typically this plugin does the same to be consistent.
1 F. H. Stillinger and T. A. Weber, Phys. Rev. B 31, 5262 (1985).
2 S. Ciarella, F. Sciortino, and W. G. Ellenbroek, Phys. Rev. Lett. 121, 058003 (2018).
3 L. Rovigatti and F. Sciortino, Phys. Rev. Lett. 129, 047801 (2022).