Potential#
eOn supports a large number of potentials, some vendored within the executable
and libraries and others via interfaces.
Note
Some of these require flags to be set, details are in the installation instructions
Supported Potentials#
External#
- VASP [POT_KFurthmuller96]
Vienna Ab-Initio Simulation Program (VASP) I/O interface.
- LAMMPS [POT_Pli95, POT_TAB+22]
Library interface, detailed documentation here
- EXT_POT
Writes box size and coordinates to the file
from_eon_to_extand makes a system call toext_potwhich must populatefrom_ext_to_eon
Added in version 2.0:
- AMS(-IO)
Amsterdam modeling suite [POT_teVeldeBB+01], both I/O and library ASE_ORCA
Atomic simulation environment [POT_LMB+17] interface to ORCA [POT_NWBR20] ASE_NWChem
Atomic simulation environment [POT_LMB+17] interface to NWChem [POT_ApraBDJ+20] XTB
Extended Tight binding models via native Fortran-C interfce [POT_BCE+21] Metatomic
Common interface to atomistic machine learning models SocketNWChem
Socket oriented communicator for efficient integration with NWChem [POT_ApraBDJ+20]
Vendored#
- CuH2
Copper Hydride system
- FeHe
Iron-hydrides
- EAM_Al
Embedded atom method parameterized for Aluminum.
- QSC [POT_KQCG98]
Quantum Sutton-Chen potential, for FCC metals.
- EMT
Effective medium theory, for metals.
- LJ [POT_Jon24]
Lennard-Jones in reduced units
- Morse_Pt
Hard sphere morse potential for Platinum
- 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, also for water-hydrogen and water on platinum.
- SPCE [POT_BGS87]
Extended simple point charge model for water
Deprecated since version 2.0: These potentials are missing in the SVN sources.. bopfox : Bond order potential, for metals
Configuration#
[Potential]
- pydantic model eon.schema.PotentialConfig[source]#
Show JSON schema
{ "title": "PotentialConfig", "type": "object", "properties": { "mpi_poll_period": { "default": 0.25, "description": "Polling period for MPI potential.", "title": "Mpi Poll Period", "type": "number" }, "lammps_logging": { "default": true, "description": "Logging LAMMPS calls.", "title": "Lammps Logging", "type": "boolean" }, "lammps_threads": { "default": 0, "description": "LAMMPS threads.", "title": "Lammps Threads", "type": "integer" }, "ext_pot_path": { "default": "ext_pot", "description": "Path for the external potential.", "title": "Ext Pot Path", "type": "string" }, "potential": { "default": "lj", "description": "Type of potential to execute.", "enum": [ "ams", "ams_io", "ase_nwcem", "ase_orca", "bop", "bopfox", "cuh2", "eam_al", "edip", "emt", "ext_pot", "fehe", "gpr", "imd", "lammps", "lenosky_si", "lj", "ljcluster", "metatomic", "morse_pt", "mpi", "new_pot", "pyamff", "python", "qsc", "socket_nwchem", "spce", "sw_si", "tersoff_si", "tip4p", "tip4p_h", "tip4p_pt", "unknown", "vasp", "xtb", "zbl", "zpice" ], "title": "Potential", "type": "string" }, "log_potential": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "description": "If true, write timing information about each force call to client.log.", "title": "Log Potential" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
- field log_potential: bool | None = None#
If true, write timing information about each force call to client.log.
- field potential: Literal['ams', 'ams_io', 'ase_nwcem', 'ase_orca', 'bop', 'bopfox', 'cuh2', 'eam_al', 'edip', 'emt', 'ext_pot', 'fehe', 'gpr', 'imd', 'lammps', 'lenosky_si', 'lj', 'ljcluster', 'metatomic', 'morse_pt', 'mpi', 'new_pot', 'pyamff', 'python', 'qsc', 'socket_nwchem', 'spce', 'sw_si', 'tersoff_si', 'tip4p', 'tip4p_h', 'tip4p_pt', 'unknown', 'vasp', 'xtb', 'zbl', 'zpice'] = 'lj'#
- Options:
ams: Amsterdam Modeling Suite potential.ams_io: Amsterdam Modeling Suite via the I/O.ase_orca: ASE interface for ORCA quantum chemistry package.bop: Bond order potential for metals. [unused]bopfox: Bond order potential, for metals. [unused]cuh2: Potential for copper hydride systems.eam_al: Embedded atom method parameterized for aluminum.edip: Environment-Dependent Interatomic Potential, for carbon.emt: Effective medium theory, for metals.ext: External potential with system call interface.fehe: Potential for iron-hydrogen systems.gpr: Gaussian process regression potential.imd: IMD simulation package interface.lammps: The LAMMPS potentials.lenosky_si: Lenosky potential, for silicon.lj: Lennard-Jones potential in reduced units.ljcluster: Lennard-Jones cluster potential.morse_pt: Morse potential for platinum.mpi: Communicate with an MPI process to calculate energy and forces.pyamff: Python implementation of the AMFF potential.python: Custom python potential.qsc: Quantum Sutton-Chen potential, for FCC metals.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.
Type of potential to execute.
Potential configurations#
Several potentials have additional configuration stanzas.
Metatomic#
- pydantic model eon.schema.Metatomic[source]#
Show JSON schema
{ "title": "Metatomic", "type": "object", "properties": { "model_path": { "default": "", "description": "Path to the Metatomic model.", "title": "Model Path", "type": "string" }, "device": { "default": "auto", "description": "Device to use for Metatomic calculations (e.g., 'cpu', 'cuda', 'auto').", "title": "Device", "type": "string" }, "length_unit": { "default": "Angstrom", "description": "Length unit used by the Metatomic model.", "title": "Length Unit", "type": "string" }, "extensions_directory": { "default": "", "description": "Directory for Metatomic extensions.", "title": "Extensions Directory", "type": "string" }, "check_consistency": { "default": false, "description": "Whether to check consistency of the Metatomic model.", "title": "Check Consistency", "type": "boolean" }, "uncertainty_threshold": { "default": 0.1, "description": "Threshold to report per-atom uncertainties, if positive. Also used to populate the variance.", "title": "Uncertainty Threshold", "type": "number" }, "variant_base": { "default": "", "description": "Global variant for energy and uncertainty.", "title": "Variant Base", "type": "string" }, "variant_energy": { "default": "", "description": "Override variant for energy.", "title": "Variant Energy", "type": "string" }, "variant_energy_uncertainty": { "default": "", "description": "Override variant for energy_uncertainty.", "title": "Variant Energy Uncertainty", "type": "string" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
XTB#
- pydantic model eon.schema.XTBPot[source]#
Show JSON schema
{ "title": "XTBPot", "type": "object", "properties": { "paramset": { "default": "GFNFF", "description": "Parameter set for XTB potential.", "enum": [ "GFNFF", "GFN0xTB", "GFN1xTB", "GFN2xTB" ], "title": "Paramset", "type": "string" }, "accuracy": { "default": 1.0, "description": "Accuracy of the XTB calculation.", "title": "Accuracy", "type": "number" }, "electronic_temperature": { "default": 0.0, "description": "Electronic temperature for XTB.", "title": "Electronic Temperature", "type": "number" }, "max_iterations": { "default": 250, "description": "Maximum number of XTB iterations.", "title": "Max Iterations", "type": "integer" }, "uhf": { "default": 0, "description": "Multiplicity", "title": "Uhf", "type": "integer" }, "charge": { "default": 0.0, "description": "Total charge", "title": "Charge", "type": "number" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
ZBL#
- pydantic model eon.schema.ZBLPot[source]#
Show JSON schema
{ "title": "ZBLPot", "type": "object", "properties": { "cut_inner": { "default": 2.0, "description": "Distance where switching function begins.", "title": "Cut Inner", "type": "number" }, "cut_global": { "default": 2.5, "description": "Global cutoff for the ZBL interaction.", "title": "Cut Global", "type": "number" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
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]#
Show JSON schema
{ "title": "SocketNWChemPot", "type": "object", "properties": { "host": { "default": "127.0.0.1", "description": "Host where the NWChem client will connect.", "title": "Host", "type": "string" }, "port": { "default": 9999, "description": "Port for the NWChem client to send data to EON.", "title": "Port", "type": "integer" }, "nwchem_settings": { "default": "nwchem_settings.nwi", "description": "Path to the user-provided file containing NWChem scientific settings (basis, theory, task, etc.).", "title": "Nwchem Settings", "type": "string" }, "unix_socket_path": { "default": "eon_nwchem", "description": "The basename for the UNIX socket file. The full path will be /tmp/ipi_<basename>.", "title": "Unix Socket Path", "type": "string" }, "unix_socket_mode": { "default": false, "description": "If true, use a UNIX domain socket for communication instead of TCP/IP.", "title": "Unix Socket Mode", "type": "boolean" }, "mem_in_gb": { "default": 2, "description": "Memory (in GB) to be allocated for the NWChem calculation.", "title": "Mem In Gb", "type": "integer" }, "make_template_input": { "default": true, "description": "If false, the socket input for the right geometry is generated by the user.", "title": "Make Template Input", "type": "boolean" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
- field make_template_input: bool = True#
If false, the socket input for the right geometry is generated by the user.
- field nwchem_settings: str = 'nwchem_settings.nwi'#
Path to the user-provided file containing NWChem scientific settings (basis, theory, task, etc.).
An older ASE interface exists as well.
ASE potentials#
There are several specific ASE potentials supported,
- pydantic model eon.schema.ASE_NWCHEM[source]#
Show JSON schema
{ "title": "ASE_NWCHEM", "type": "object", "properties": { "nwchem_path": { "default": "NONE", "description": "Path to the NWChem executable.", "title": "Nwchem Path", "type": "string" }, "nproc": { "anyOf": [ { "type": "integer" }, { "const": "auto", "type": "string" } ], "default": "auto", "description": "Number of processors to use for NWChem. Can be 'auto' or an integer string.", "title": "Nproc" }, "multiplicity": { "default": "1", "description": "Spin multiplicity for the NWChem calculation.", "title": "Multiplicity", "type": "string" }, "scf_thresh": { "default": 1e-05, "description": "SCF convergence threshold for NWChem.", "title": "Scf Thresh", "type": "number" }, "scf_maxiter": { "default": 200, "description": "Maximum number of SCF iterations for NWChem.", "title": "Scf Maxiter", "type": "integer" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
- pydantic model eon.schema.ASE_ORCA[source]#
Show JSON schema
{ "title": "ASE_ORCA", "type": "object", "properties": { "orca_path": { "default": "NONE", "description": "Path to the ORCA executable.", "title": "Orca Path", "type": "string" }, "nproc": { "anyOf": [ { "type": "integer" }, { "const": "auto", "type": "string" } ], "default": "auto", "description": "Number of processors to use for ORCA. Can be 'auto' or an integer string.", "title": "Nproc" }, "simpleinput": { "default": "ENGRAD HF-3c", "description": "Simple input string for ORCA, specifying method and basis set.", "title": "Simpleinput", "type": "string" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
AMS potentials#
Both a direct server model and a file based integration exist.
- pydantic model eon.schema.AMSConfig[source]#
Show JSON schema
{ "title": "AMSConfig", "type": "object", "properties": { "engine": { "default": "", "description": "Engine for AMS calculation. One of REAXFF, MOPAC.", "enum": [ "", "REAXFF", "MOPAC" ], "title": "Engine", "type": "string" }, "forcefield": { "default": "", "description": "Force field to use (e.g., 'OPt.ff').", "title": "Forcefield", "type": "string" }, "model": { "default": "", "description": "Model to use (e.g., 'PM7', 'PM3').", "title": "Model", "type": "string" }, "xc": { "default": "", "description": "Exchange-correlation functional.", "title": "Xc", "type": "string" }, "basis": { "default": "", "description": "Basis set to use with the exchange-correlation functional.", "title": "Basis", "type": "string" }, "resources": { "default": "", "description": "Resources path for DFTB.", "title": "Resources", "type": "string" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
- pydantic model eon.schema.AMSIOConfig[source]#
Show JSON schema
{ "title": "AMSIOConfig", "type": "object", "properties": { "engine": { "default": "", "description": "Engine for AMS calculation. One of REAXFF, MOPAC.", "enum": [ "", "REAXFF", "MOPAC" ], "title": "Engine", "type": "string" }, "forcefield": { "default": "", "description": "Force field to use (e.g., 'OPt.ff').", "title": "Forcefield", "type": "string" }, "model": { "default": "", "description": "Model to use (e.g., 'PM7', 'PM3').", "title": "Model", "type": "string" }, "xc": { "default": "", "description": "Exchange-correlation functional.", "title": "Xc", "type": "string" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
Along with helpers to set environment variables for these calculations.
- pydantic model eon.schema.AMSEnvConfig[source]#
Show JSON schema
{ "title": "AMSEnvConfig", "type": "object", "properties": { "amshome": { "default": "", "description": "Path to AMS home directory (e.g., '/some/path/to/amshome/').", "title": "Amshome", "type": "string" }, "scm_tmpdir": { "default": "", "description": "Temporary directory for SCM (e.g., '/tmp').", "title": "Scm Tmpdir", "type": "string" }, "scm_pythondir": { "default": "", "description": "Python directory for SCM (e.g., '/.scm/python').", "title": "Scm Pythondir", "type": "string" }, "amsbin": { "default": "", "description": "Path to AMS binary directory (will be appended to amshome).", "title": "Amsbin", "type": "string" }, "scmlicense": { "default": "", "description": "Path to SCM license file (will be appended to amshome).", "title": "Scmlicense", "type": "string" }, "amsresources": { "default": "", "description": "Path to AMS atomic data resources (will be appended to amshome).", "title": "Amsresources", "type": "string" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
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.
Yoshitaka Kimura, Yue Qi, Tahir Cagin, and William Goddard. The Quantum Sutton-Chen Many-Body Potential for Properties of fcc Metals. N/A, September 1998.
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.