ELECTRODE extends the atomistic simulation tool LAMMPS to model different types of electrochemical situations. Simulations are performed at constant potential or constant charge using different approaches to control potential or charge at the electrodes.


What ELECTRODE can do for you

The ELECTRODE package (Ahrens-Iwers, Ahrens-Iwers2) implements the constant potential method (CPM) (Siepmann, Reed), and modern variants, to accurately model electrified, conductive electrodes. This is primarily useful for studying electrode-electrolyte interfaces, especially at high potential differences or ionicities, with non-planar electrodes such as nanostructures or nanopores, and to study dynamic phenomena such as charging or discharging time scales or conductivity or ionic diffusivities.

Each so-called electrode fix in LAMMPS allows users to set additional electrostatic relationships between the specified groups which model useful electrostatic configurations:

  • electrode/conp sets potentials or potential differences between electrodes (resulting in changing electrode total charges)

  • electrode/conq sets the total charge on each electrode (resulting in changing electrode potentials)

  • electrode/thermo sets a thermopotentiostat (Deissenbeck) between two electrodes (resulting in changing charges and potentials with appropriate average potential difference and thermal variance)

CPM involves updating the charges on groups of electrode particles at each time step so that the total energy of the system is minimised in terms of these charges. In terms of basic electrostatics, this is equivalent to making each group conductive, or imposing an equal electrostatic potential on each particle in the same group (hence the name CPM). The charges are usually modelled as a Gaussian distribution to make the charge-charge interaction matrix invertible (Gingrich). The potential or charge at the electrodes can be controlled alternatively by a finite field method (Dufils) or a Thomas-Fermi model (Scalfi). The latter allows the metallicity of the electrodes to be adjusted.

(Siepmann) Siepmann and Sprik, J. Chem. Phys. 102, 511 (1995).

(Reed) Reed et al., J. Chem. Phys. 126, 084704 (2007).

(Deissenbeck) Deissenbeck et al., Phys. Rev. Letters 126, 136803 (2021).

(Gingrich) Gingrich, MSc thesis https://gingrich.chem.northwestern.edu/papers/ThesiswCorrections.pdf` (2010).

(Ahrens-Iwers) Ahrens-Iwers and Meissner, J. Chem. Phys. 155, 104104 (2021).

(Dufils) Dufils et al., Phys. Rev. Letters 123, 195501 (2019).

(Scalfi) Scalfi et al., J. Chem. Phys., 153, 174704 (2020).

(Ahrens-Iwers2) Ahrens-Iwers et al., J. Chem. Phys. 157, 084801 (2022).

Programming languages
  • C++ 86%
  • Tcl 6%
  • Cuda 2%
  • Python 2%
  • C 1%
  • CMake 1%
  • Fortran 1%
  • Other 1%
Not specified
</>Source code

Participating organisations

Hamburg University of Technology
Helmholtz-Zentrum Hereon
University of Queensland



Shern Ren Tee
The University of Queensland Australian Institute for Bioengineering and Nanotechnology