Potential¶
eOn supports many potentials, some vendored within the executable and
libraries and others via interfaces.
Note
Some of these require compile-time flags, detailed in the installation instructions.
The conda-forge package (conda install -c conda-forge eon) includes
Metatomic, XTB, EXT_POT, and the vendored potentials.
The client always compiles the LAMMPS interface and loads liblammps with dlopen.
The option -Dwith_lammps does not exist.
ASE, VASP, AMS, and MPI potentials require building from source with
the corresponding -Dwith_* flags.
Supported potentials¶
External¶
- RGPOT
In-process rgpot calculators. Set
potential = rgpotand configure[RgpotPot]. NWChem and CPMD are backends. See RgpotPot (direct in-process rgpot). conda-forge- VASP [POT_KFurthmuller96]
Vienna Ab-Initio Simulation Program (VASP) I/O interface.
-Dwith_vaspdefaults false. source build- LAMMPS [POT_Pli95, POT_TAB+22]
Library interface, detailed documentation here.
in.lammpsmust be in the working directory, or the potential raises an error. conda-forge- EXT_POT
File-based interface to any external calculator. Detailed documentation here. conda-forge
Added in version 2.0:
- AMS(-IO)
Amsterdam modeling suite [POT_teVeldeBB+01], both I/O and library. source build ASE_ORCA
Atomic simulation environment [POT_LMB+17] interface to ORCA [POT_NWBR20]. source build ASE_NWChem
Atomic simulation environment [POT_LMB+17] interface to NWChem [POT_ApraBDJ+20]. source build XTB
Extended Tight binding models via native Fortran-C interfce [POT_BCE+21].
-Dwith_xtbdefaults false. Preferpotential = rgpotin[Potential]andbackend = xtbin[RgpotPot]. conda-forge MetatomicCommon interface to atomistic machine learning models.
-Dwith_metatomicdefaults false. conda-forge SocketNWChemSocket oriented communicator for efficient integration with NWChem [POT_ApraBDJ+20]. conda-forge
Vendored¶
- CuH2
Copper Hydride system
- FeHe
Iron-hydrides
- EAM_Al
Embedded atom method parameterized for Aluminum. The rgpot kernel stores the EON r2549 parameter literals at single precision.
- EMT
Effective medium theory, for metals.
- LJ [POT_Jon24]
Lennard-Jones in reduced units, served by
rgpot. Neighbor pairs via vesin; timed by ASVTimeMinimizationLJCluster(ljcluster).- LJCluster [POT_Jon24]
Lennard-Jones cluster variant, served by
rgpot.- Morse_Pt
Hard sphere morse potential for Platinum, served by
rgpot. Neighbor pairs via vesin; timed by ASVTimePointMorsePt/ saddle / NEB Morse fixtures.- ZBL
Ziegler-Biersack-Littmark screened nuclear repulsion, served by
rgpot.
Added in version 3.2.1:
- DFTD3 / DFTD4
Grimme DFT-D via rgpot 3.2 (
potential = dftd3/dftd4,[D3Pot]/[D4Pot]). The option-Dwith_dftd3does not exist. The client compiles these pots whenRGPOT_HAS_DFTD3orRGPOT_HAS_DFTD4is defined.- EXPR
rgpot ExprPot.
potential = exprwith[ExprPot]expressionand comma-separatedterms(0.5*lj + d3). Terms:lj,ljcluster,morse,zbl,d3/dftd3,d4/dftd4,mopac.- MOPAC
rgpot 3.2 MOPACPot (libmopacc).
potential = mopac,[MOPACPot]charge,spin,model(4 is AM1),engine_path.
- Lenosky_Si [POT_LSA+00]
Lenosky potential, for silicon.
- SW_SI [POT_SW85]
Stillinger-Weber potential, for silicon.
- Tersoff_SI [POT_Ter88]
Tersoff pair potential with angular terms, for silicon.
- EDIP [POT_JBK+98]
Environment-Dependent Interatomic Potential, for carbon.
- TIP4P [POT_JCM+83]
Point charge model for water and for water on platinum. Source builds need
-Dwith_water=truebecausewith_waterdefaults false. Water with an extra hydrogen is the Fortran kernel and followswith_fortran.- SPCE [POT_BGS87]
Extended simple point charge model for water. Source builds need
-Dwith_water=truebecausewith_waterdefaults false.
Configuration¶
A known potential name matches in any case.
RGPOT is stored as rgpot.
An exact listed spelling wins, so SocketNWChem stays distinct from socketnwchem.
[Potential]
- pydantic model eon.schema.PotentialConfig[source]¶
- Fields:
mpi_poll_period (float)lammps_logging (bool)lammps_threads (int)ext_pot_path (str)pair_switch_width (float)pair_cutoff (float)potential (Literal['ams', 'ase_pot', 'ams_io', 'ase_nwchem', 'ase_orca', 'catlearn', 'cuh2', 'dftd3', 'dftd4', 'eam_al', 'edip', 'emt', 'expr', 'ext_pot', 'fehe', 'gpr', 'lammps', 'lenosky_si', 'lj', 'ljcluster', 'metatomic', 'mopac', 'morse_pt', 'mpi', 'rgpot', 'socketnwchem', 'SocketNWChem', 'spce', 'sw_si', 'tersoff_si', 'tip4p', 'tip4p_h', 'tip4p_pt', 'unknown', 'vasp', 'xtb', 'zbl'])emt_rasmussen (bool | None)potentials_path (str | None)log_potential (bool | None)
- field pair_switch_width: float = 0.0¶
Width in Angstrom of the C^2 quintic switch that takes the lj, ljcluster and morse_pt pair terms, and those terms of expr, to zero at their cutoff. 0 keeps the shifted truncation, whose force jumps at the cutoff.
- Constraints:
ge = 0.0
- field pair_cutoff: float = 0.0¶
Cutoff in Angstrom of the lj, ljcluster and morse_pt pair terms, and those terms of expr. 0 keeps each potential’s own cutoff: 15 for LJ, 9.5 for Morse.
- Constraints:
ge = 0.0
- field potential: Literal['ams', 'ase_pot', 'ams_io', 'ase_nwchem', 'ase_orca', 'catlearn', 'cuh2', 'dftd3', 'dftd4', 'eam_al', 'edip', 'emt', 'expr', 'ext_pot', 'fehe', 'gpr', 'lammps', 'lenosky_si', 'lj', 'ljcluster', 'metatomic', 'mopac', 'morse_pt', 'mpi', 'rgpot', 'socketnwchem', 'SocketNWChem', 'spce', 'sw_si', 'tersoff_si', 'tip4p', 'tip4p_h', 'tip4p_pt', 'unknown', 'vasp', 'xtb', 'zbl'] = 'lj'¶
- Options:
ams: Amsterdam Modeling Suite potential.ams_io: Amsterdam Modeling Suite via the I/O.ase_nwchem: ASE interface for NWChem (ase_nwcemis an accepted alias).ase_orca: ASE interface for ORCA quantum chemistry package.cuh2: Potential for copper hydride systems.eam_al: Embedded atom method parameterized for aluminum.dftd3: Grimme DFT-D3 via rgpot 3.1 s-dftd3 ([D3Pot]).dftd4: Grimme DFT-D4 via rgpot 3.1 dftd4 ([D4Pot]).edip: Environment-Dependent Interatomic Potential, for carbon.emt: Effective medium theory, for metals.expr: rgpot ExprPot algebra over named terms ([ExprPot]expression and comma-separated terms: lj, morse, zbl, d3, d4).ext_pot: External potential with system call interface.fehe: Potential for iron-hydrogen systems.gpr: Gaussian process regression potential.lammps: The LAMMPS potentials.lenosky_si: Lenosky potential, for silicon.lj: Lennard-Jones potential in reduced units (served by rgpot).ljcluster: Lennard-Jones cluster potential (served by rgpot).mopac: rgpot 3.2 MOPACPot (libmopacc, default AM1;[MOPACPot]).morse_pt: Morse potential for platinum (served by rgpot).mpi: Communicate with an MPI process to calculate energy and forces.rgpot: In-process rgpot backends (NWChem / CPMD / metatomic / xTB via dlopen).spce: Simple Point Charge model for water.sw_si: Stillinger-Weber potential, for silicon.tersoff_si: Tersoff pair potential with angular terms, for silicon.tip4p: Point charge model for water.tip4p_h: TIP4P model for water with hydrogen.tip4p_pt: TIP4P model for water on platinum.unknown: Placeholder for unknown potential type.vasp: Vienna Ab-Initio Simulation Program (VASP) interface.xtb: Extended Tight Binding model.zbl: Ziegler-Biersack-Littmark screened nuclear repulsion (served by rgpot).
Type of potential to execute. A known name matches in any case. An exact listed spelling wins.
Pair cutoff switch¶
The pair potentials lj, ljcluster and morse_pt shift each pair
energy to zero at the cutoff: 15 Angstrom for LJ, 9.5 Angstrom for
Morse. The same terms of expr do too. The force still jumps there, and
a line search or a dimer rotation reads that jump as noise.
pair_switch_width replaces the shift with the quintic switch
S(t) = 1 - 10t^3 + 15t^4 - 6t^5. It acts over the last
pair_switch_width Angstrom below the cutoff. The energy, the force,
and the curvature then reach zero at the cutoff:
[Potential]
potential = morse_pt
pair_switch_width = 1.0
The default 0 keeps the shifted truncation. A width must lie in
(0, cutoff]; rgpot refuses any other. The switch changes the energy
surface, so results with and without it do not compare directly.
pair_cutoff sets that cutoff, in Angstrom, for the same potentials. The
default 0 keeps each potential’s own. A periodic cell finds pairs by the
minimum image, so every cell width must exceed twice the cutoff; at 15
Angstrom that rules out any cell narrower than 30 Angstrom. LJ cut at 2.2
Angstrom with a 0.2 Angstrom switch:
[Potential]
potential = lj
pair_cutoff = 2.2
pair_switch_width = 0.2
Potential configurations¶
Several potentials have additional configuration stanzas.
RGPOT¶
- pydantic model eon.schema.RgpotPot[source]¶
- Fields:
backend (str)basis (str)nwchem_basis (str)theory (str)nwchem_theory (str)scf_type (str)nwchem_scf_type (str)functional (str)cpmd_functional (str)cutoff_ry (float)cutOffRy (float)cpmd_cut_off_ry (float)charge (int)nwchem_charge (int)multiplicity (int)nwchem_multiplicity (int)engine_path (str)engine_library (str)model_path (str)task_name (str)device (str)length_unit (str)extensions_directory (str)check_consistency (bool)uncertainty_threshold (float)torch_determinism_strict (bool)paramset (Literal['GFNFF', 'GFN0xTB', 'GFN1xTB', 'GFN2xTB'])xtb_paramset (Literal['GFNFF', 'GFN0xTB', 'GFN1xTB', 'GFN2xTB'])accuracy (float)xtb_accuracy (float)electronic_temperature (float)xtb_electronic_temperature (float)max_iterations (int)xtb_max_iterations (int)uhf (int)xtb_uhf (int)xtb_charge (float)engine_root (str)title (str)memory_mb (int)scratch_dir (str)input_block (str)permanent_dir (str)params_path (str)ranks_per_image (int)
- field backend: str = 'nwchemc'¶
rgpot backend: ‘nwchemc’, ‘cpmdc’, ‘metatomic’, or ‘xtb’ (aliases: nwchem/cpmd/mta/gfn). metatomic/xtb dlopen libmetatomic_engine.so / libxtb_engine.so for packaging.
- field functional: str = 'BLYP'¶
XC functional for the CPMD backend. [cpmd] functional overrides this key when params_path is empty.
- field cutoff_ry: float = 70.0¶
Plane-wave cutoff (Ry) for the CPMD backend. [cpmd] cutOffRy overrides this key when params_path is empty.
- field cpmd_cut_off_ry: float = 70.0¶
Alias of cutoff_ry, read when cutOffRy and cutoff_ry are absent.
- field engine_path: str = ''¶
Engine .so path (libnwchemc / libcpmdc / libmetatomic_engine / libxtb_engine).
- field paramset: Literal['GFNFF', 'GFN0xTB', 'GFN1xTB', 'GFN2xTB'] = 'GFN2xTB'¶
XTB paramset when backend=xtb.
- field xtb_paramset: Literal['GFNFF', 'GFN0xTB', 'GFN1xTB', 'GFN2xTB'] = 'GFN2xTB'¶
Alias of paramset, read when paramset is absent.
- field xtb_electronic_temperature: float = 300.0¶
Alias of electronic_temperature, read when that key is absent.
- field input_block: str = ''¶
Verbatim input block. For NWChem this is inputBlocks. For CPMD, [cpmd] input_block overrides this key and the text is appended to the message inputBlocks.
- field params_path: str = ''¶
Path to a Cap’n Proto CPMDParams message. The file owns the CPMD method, including inputSections and inputBlocks, and the scalar keys are not written over it. input_block is appended to inputBlocks. engine_path, engine_root, scratch_dir, and permanent_dir still place the run.
Metatomic¶
- pydantic model eon.schema.Metatomic[source]¶
- Fields:
model_path (str)device (str)length_unit (str)extensions_directory (str)check_consistency (bool)uncertainty_threshold (float)variant_base (str)variant_energy (str)variant_energy_uncertainty (str)energy_output (str)energy_uncertainty_output (str)force_output (str)non_conservative (bool)random_rotation (bool)n_symmetry_rotations (int)variant_force (str)deterministic (bool)deterministic_strict (bool)
- field uncertainty_threshold: float = -1¶
Threshold to report per-atom uncertainties, if positive. Also used to populate the variance.
- field variant_base: str = ''¶
Default variant suffix for energy, uncertainty, and non_conservative_force unless overridden.
- field energy_uncertainty_output: str = ''¶
Literal energy uncertainty output key; empty uses variant resolution.
- field non_conservative: bool = False¶
Read forces from non_conservative_force instead of energy gradients.
- field random_rotation: bool = False¶
Apply a random SO(3) rotation per evaluation and rotate forces back.
- field n_symmetry_rotations: int = 0¶
If >0, average over this many random rotations (O(3) symmetrization).
- field variant_force: str = ''¶
Override variant for non_conservative_force (defaults to energy variant).
XTB¶
- pydantic model eon.schema.XTBPot[source]¶
- Fields:
paramset (Literal['GFNFF', 'GFN0xTB', 'GFN1xTB', 'GFN2xTB'])accuracy (float)electronic_temperature (float)max_iterations (int)uhf (int)charge (float)
ZBL¶
NWChem¶
Support for nwchem works best with the socket potential structure as noted in
the reproduction details of the
Optimal transport Gaussian Process
[POT_GJonsson25], and can lead to manyfold
increases in speed compared to file or ASE interfaces
[POT_Gos25].
- pydantic model eon.schema.SocketNWChemPot[source]¶
- Fields:
host (str)port (int)nwchem_settings (str)unix_socket_path (str)unix_socket_mode (bool)mem_in_gb (int)make_template_input (bool)
- field nwchem_settings: str = 'nwchem_settings.nwi'¶
Path to the user-provided file containing NWChem scientific settings (basis, theory, task, etc.).
- field unix_socket_path: str = 'eon_nwchem'¶
The basename for the UNIX socket file. The full path will be /tmp/ipi_<basename>.
Warning
NWChem’s Fortran i-PI socket driver truncates UNIX socket names to approximately
30 characters. The full socket path is /tmp/ipi_<unix_socket_path>, so
unix_socket_path should be kept short (under ~20 characters). For example,
eon_nwchem works but eon_nwchem_test_socket is truncated,
and the connection fails with no clear error message.
An older ASE interface exists as well.
ASE potentials¶
There are several specific ASE potentials supported,
- pydantic model eon.schema.ASE_NWCHEM[source]¶
- Fields:
nwchem_path (str)nproc (int | Literal['auto'])mpi_launcher (str)multiplicity (str)scf_thresh (float)scf_maxiter (int)basis (str)memory (str)
AMS potentials¶
Both a direct server model and a file based integration exist.
- pydantic model eon.schema.AMSConfig[source]¶
- Fields:
engine (Literal['', 'REAXFF', 'MOPAC'])forcefield (str)model (str)xc (str)basis (str)resources (str)
- pydantic model eon.schema.AMSIOConfig[source]¶
- Fields:
engine (Literal['', 'REAXFF', 'MOPAC'])forcefield (str)model (str)xc (str)
Along with helpers to set environment variables for these calculations.
References¶
E. Aprà, E. J. Bylaska, W. A. De Jong, N. Govind, K. Kowalski, T. P. Straatsma, M. Valiev, H. J. J. Van Dam, Y. Alexeev, J. Anchell, V. Anisimov, F. W. Aquino, R. Atta-Fynn, J. Autschbach, N. P. Bauman, J. C. Becca, D. E. Bernholdt, K. Bhaskaran-Nair, S. Bogatko, P. Borowski, J. Boschen, J. Brabec, A. Bruner, E. Cauët, Y. Chen, G. N. Chuev, C. J. Cramer, J. Daily, M. J. O. Deegan, T. H. Dunning, M. Dupuis, K. G. Dyall, G. I. Fann, S. A. Fischer, A. Fonari, H. Früchtl, L. Gagliardi, J. Garza, N. Gawande, S. Ghosh, K. Glaesemann, A. W. Götz, J. Hammond, V. Helms, E. D. Hermes, K. Hirao, S. Hirata, M. Jacquelin, L. Jensen, B. G. Johnson, H. Jónsson, R. A. Kendall, M. Klemm, R. Kobayashi, V. Konkov, S. Krishnamoorthy, M. Krishnan, Z. Lin, R. D. Lins, R. J. Littlefield, A. J. Logsdail, K. Lopata, W. Ma, A. V. Marenich, J. Martin Del Campo, D. Mejia-Rodriguez, J. E. Moore, J. M. Mullin, T. Nakajima, D. R. Nascimento, J. A. Nichols, P. J. Nichols, J. Nieplocha, A. Otero-de-la-Roza, B. Palmer, A. Panyala, T. Pirojsirikul, B. Peng, R. Peverati, J. Pittner, L. Pollack, R. M. Richard, P. Sadayappan, G. C. Schatz, W. A. Shelton, D. W. Silverstein, D. M. A. Smith, T. A. Soares, D. Song, M. Swart, H. L. Taylor, G. S. Thomas, V. Tipparaju, D. G. Truhlar, K. Tsemekhman, T. Van Voorhis, Á. Vázquez-Mayagoitia, P. Verma, O. Villa, A. Vishnu, K. D. Vogiatzis, D. Wang, J. H. Weare, M. J. Williamson, T. L. Windus, K. Woliński, A. T. Wong, Q. Wu, C. Yang, Q. Yu, M. Zacharias, Z. Zhang, Y. Zhao, and R. J. Harrison. NWChem: past, present, and future. Journal of Chemical Physics, 152(18):184102, May 2020. doi:10.1063/5.0004997.
Christoph Bannwarth, Eike Caldeweyher, Sebastian Ehlert, Andreas Hansen, Philipp Pracht, Jakob Seibert, Sebastian Spicher, and Stefan Grimme. Extended tight-binding quantum chemistry methods. WIREs Computational Molecular Science, 11(2):e1493, 2021. doi:10.1002/wcms.1493.
H. J. C. Berendsen, J. R. Grigera, and T. P. Straatsma. The missing term in effective pair potentials. The Journal of Physical Chemistry, 91(24):6269–6271, November 1987. doi:10.1021/j100308a038.
Rohit Goswami. Efficient exploration of chemical kinetics. October 2025. arXiv:2510.21368, doi:10.48550/arXiv.2510.21368.
Rohit Goswami and Hannes Jónsson. Adaptive Pruning for Increased Robustness and Reduced Computational Overhead in Gaussian Process Accelerated Saddle Point Searches. ChemPhysChem, November 2025. doi:10.1002/cphc.202500730.
Lennard Jones. On the determination of molecular fields. —II. From the equation of state of a gas. Proceedings of the Royal Society of London. Series A, Containing Papers of a Mathematical and Physical Character, 106(738):463–477, October 1924. doi:10.1098/rspa.1924.0082.
William L. Jorgensen, Jayaraman Chandrasekhar, Jeffry D. Madura, Roger W. Impey, and Michael L. Klein. Comparison of simple potential functions for simulating liquid water. The Journal of Chemical Physics, 79(2):926–935, July 1983. doi:10.1063/1.445869.
João F. Justo, Martin Z. Bazant, Efthimios Kaxiras, V. V. Bulatov, and Sidney Yip. Interatomic potential for silicon defects and disordered phases. Physical Review B, 58(5):2539–2550, August 1998. doi:10.1103/PhysRevB.58.2539.
G. Kresse and J. Furthmüller. Efficient iterative schemes for ab initio total-energy calculations using a plane-wave basis set. Physical Review B, 54(16):11169–11186, October 1996. doi:10.1103/PhysRevB.54.11169.
Ask Hjorth Larsen, Jens Jørgen Mortensen, Jakob Blomqvist, Ivano E. Castelli, Rune Christensen, Marcin Du\lak, Jesper Friis, Michael N. Groves, Bjørk Hammer, Cory Hargus, Eric D. Hermes, Paul C. Jennings, Peter Bjerre Jensen, James Kermode, John R. Kitchin, Esben Leonhard Kolsbjerg, Joseph Kubal, Kristen Kaasbjerg, Steen Lysgaard, Jón Bergmann Maronsson, Tristan Maxson, Thomas Olsen, Lars Pastewka, Andrew Peterson, Carsten Rostgaard, Jakob Schiøtz, Ole Schütt, Mikkel Strange, Kristian S. Thygesen, Tejs Vegge, Lasse Vilhelmsen, Michael Walter, Zhenhua Zeng, and Karsten W. Jacobsen. The atomic simulation environment—a Python library for working with atoms. Journal of Physics: Condensed Matter, 29(27):273002, June 2017. doi:10.1088/1361-648X/aa680e.
Thomas J Lenosky, Babak Sadigh, Eduardo Alonso, Vasily V Bulatov, Tomas Diaz De La Rubia, Jeongnim Kim, Arthur F Voter, and Joel D Kress. Highly optimized empirical potential model of silicon. Modelling and Simulation in Materials Science and Engineering, 8(6):825–841, November 2000. doi:10.1088/0965-0393/8/6/305.
Frank Neese, Frank Wennmohs, Ute Becker, and Christoph Riplinger. The ORCA quantum chemistry program package. The Journal of Chemical Physics, 152(22):224108, June 2020. doi:10.1063/5.0004608.
Steve Plimpton. Fast Parallel Algorithms for Short-Range Molecular Dynamics. Journal of Computational Physics, 117(1):1–19, March 1995. doi:10.1006/jcph.1995.1039.
Frank H. Stillinger and Thomas A. Weber. Computer simulation of local order in condensed phases of silicon. Physical Review B, 31(8):5262–5271, April 1985. doi:10.1103/PhysRevB.31.5262.
J. Tersoff. Empirical interatomic potential for silicon with improved elastic properties. Physical Review B, 38(14):9902–9905, November 1988. doi:10.1103/PhysRevB.38.9902.
Aidan P. Thompson, H. Metin Aktulga, Richard Berger, Dan S. Bolintineanu, W. Michael Brown, Paul S. Crozier, Pieter J. In 'T Veld, Axel Kohlmeyer, Stan G. Moore, Trung Dac Nguyen, Ray Shan, Mark J. Stevens, Julien Tranchida, Christian Trott, and Steven J. Plimpton. LAMMPS - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales. Computer Physics Communications, 271:108171, February 2022. doi:10.1016/j.cpc.2021.108171.
G. te Velde, F. M. Bickelhaupt, E. J. Baerends, C. Fonseca Guerra, S. J. A. van Gisbergen, J. G. Snijders, and T. Ziegler. Chemistry with ADF. Journal of Computational Chemistry, 22(9):931–967, 2001. doi:10.1002/jcc.1056.