LAMMPS modules

This page presents some additional LAMMPS packages developed in the group as well as directives for installation and some benchmark examples.


The electrochemical dynamics with implicit degrees of freedom (EChemDID) method enables the application of an external voltage to metallic electrodes in reactive MD simulations. Validation tests show that the method provides an accurate description of the electric fields generated by the applied voltage and the driving force for electrochemical reactions.

Adding EChemDID to LAMMPS

EChemDID comes as a USER-package compatible with LAMMPS and can be downloaded here. The EChemDID method includes a LAMMPS compute’ that solves the Laplacian and a “fix” that integrates the voltage diffusion in time. The whole implementation is consistent with the parallel scheme employed in LAMMPS. The modifications are independent to the actual LAMMPS program, only a minor modification to the reax/c package allows switching from regular QEq (with constant electronegativity) to dynamical electronegativity in EChemDID. The archive contains the following directories:

  • examples

The date in the name of the package corresponds to the LAMMPS version. Just copy the  EChemDID user-package to the src/ directory and compile LAMMPS as:

make yes-user-reaxc
make yes-user-echemdid
make yes-rigid
make foo

Note: load reaxc BEFORE loading echemdid

Running EChemDID

The input files are self documented however we will discuss here the principal commands to include in the input file. The EChemDID code makes use of the fix & compute/property commands to add additional dynamical variables to each atom. These variables have to be initialized. The fix EChemDID contains a minimum of 12 parameters with in order: fix-ID, group, echemdid, frequency, k, k-value, cut, cut-value, norm, norm-value (if 0 the code will compute the norm for you), nelec, nelec-value. 5 additional parameters can be input: boundary, group-left, group-right, chi-left, chi-right.

(a) Validation test

The validation simulations shows how electrochemical potential equilibrates along copper contacts. Here is some snapshots of the structure at different time showing the evolution of the chemical potential along both copper contacts.

The local chemical potential can be read from the dump file and the voltage profile can be plot as a function of the z position against the analytical solution.

(b) ECM simulation

We demonstrate EChemDID via simulations of the operation of electrochemical metallization cells. The simulations predict the switching of the device between a high-resistance to a low-resistance state as a conductive metallic bridge is formed and resistive currents that can be compared with experimental measurements. The sample input file shows how to use EChemDID to apply a potential difference to copper contacts separated by amorphous silica. The resulting current can be visualized and correlates with the atomic structure of nanoscale filaments formed in the cell.


“Atomic origin of ultrafast resistance-switching in nanoscale electrometallization cells”, Nicolas Onofrio, David Guzman, Alejandro Strachan, Nature Materials. 14, 440–446 (2015). DOI: 10.1038/nmat4221

"Voltage equilibration for reactive atomistic simulations of electrochemical processes", Nicolas Onofrio and Alejandro Strachan, The Journal of Chemical Physics. 143, 054109 (2015). DOI: 10.1063/1.4927562

Contact: nonofrio[at] & strachan[at]



ChemDID models volume-changing chemical reactions via a coarse-grained intramolecular potential based on transition state theory (TST).  The model conserves energy and it is given by a sum of individual inter-molecular and intra-molecular ("breathing") terms. The  degrees-of-freedom not described explicitly by the breathing terms (which are internal to the mesoparticle) are given by  an  internal function E_int.

gif.latex?  begin{align}       E_{tot}



Download CHEMDID:

Download the compressed file here:   tar -xvf  CHEMDID-15May15.tar

Move the folder USER-CHEMDID  to  lammps-version/src/.

Follow these instructions to compile the USER-CHEMDID package in LAMMPS:

make yes-user-chemdid
make yes-shock
make package-update
make serial
make openmpi

Inside USER-CHEMDID/input you can find sample input files to generate shock such as the one shown below. 




"Mesoscale simulations of shockwave energy dissipation via chemical reactions" 
Edwin Antillon and Alejandro Strachan 
J. Chem. Phys. 142, 084108 (2015) 

"Coarse grain model for coupled thermo-mechano-chemical processes and its application to pressure-induced endothermic chemical reactions"
Edwin Antillon, Kiettipong Banlusan and Alejandro Strachan 
Modelling Simul. Mater. Sci. Eng. 22 (2014) 025027.

Contact: eantillo[at] & strachan[at]