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.
LAMMPS, ASE, VASP, AMS, and MPI potentials require building from source with
the corresponding -Dwith_* flags.
Supported potentials¶
External¶
- VASP [POT_KFurthmuller96]
Vienna Ab-Initio Simulation Program (VASP) I/O interface. source build
- LAMMPS [POT_Pli95, POT_TAB+22]
Library interface, detailed documentation here. source build
- 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]. conda-forge Metatomic
Common interface to atomistic machine learning models. conda-forge SocketNWChem
Socket 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.
- 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.- 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
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": false, "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_nwchem", "ase_orca", "cuh2", "eam_al", "edip", "emt", "ext_pot", "fehe", "gpr", "lammps", "lenosky_si", "lj", "ljcluster", "metatomic", "morse_pt", "mpi", "rgpot", "socket_nwchem", "spce", "sw_si", "tersoff_si", "tip4p", "tip4p_h", "tip4p_pt", "unknown", "vasp", "xtb", "zbl" ], "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:
ext_pot_path (str)lammps_logging (bool)lammps_threads (int)log_potential (bool | None)mpi_poll_period (float)potential (Literal['ams', 'ams_io', 'ase_nwcem', 'ase_nwchem', 'ase_orca', 'cuh2', 'eam_al', 'edip', 'emt', 'ext_pot', 'fehe', 'gpr', 'lammps', 'lenosky_si', 'lj', 'ljcluster', 'metatomic', 'morse_pt', 'mpi', 'rgpot', 'socket_nwchem', 'spce', 'sw_si', 'tersoff_si', 'tip4p', 'tip4p_h', 'tip4p_pt', 'unknown', 'vasp', 'xtb', 'zbl'])
- 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_nwchem', 'ase_orca', 'cuh2', 'eam_al', 'edip', 'emt', 'ext_pot', 'fehe', 'gpr', 'lammps', 'lenosky_si', 'lj', 'ljcluster', 'metatomic', 'morse_pt', 'mpi', 'rgpot', 'socket_nwchem', '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.edip: Environment-Dependent Interatomic Potential, for carbon.emt: Effective medium theory, for metals.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).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.
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": -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": "Default variant suffix for energy, uncertainty, and non_conservative_force unless overridden.", "title": "Variant Base", "type": "string" }, "variant_energy": { "default": "", "description": "Override variant for energy (use 'off' for the base key).", "title": "Variant Energy", "type": "string" }, "variant_energy_uncertainty": { "default": "", "description": "Override variant for energy_uncertainty.", "title": "Variant Energy Uncertainty", "type": "string" }, "energy_output": { "default": "", "description": "Literal model energy output key; empty uses variant resolution.", "title": "Energy Output", "type": "string" }, "energy_uncertainty_output": { "default": "", "description": "Literal energy uncertainty output key; empty uses variant resolution.", "title": "Energy Uncertainty Output", "type": "string" }, "force_output": { "default": "", "description": "Literal non-conservative force output key; empty uses pick_output.", "title": "Force Output", "type": "string" }, "non_conservative": { "default": false, "description": "Read forces from non_conservative_force instead of energy gradients.", "title": "Non Conservative", "type": "boolean" }, "random_rotation": { "default": false, "description": "Apply a random SO(3) rotation per evaluation and rotate forces back.", "title": "Random Rotation", "type": "boolean" }, "n_symmetry_rotations": { "default": 0, "description": "If >0, average over this many random rotations (O(3) symmetrization).", "title": "N Symmetry Rotations", "type": "integer" }, "variant_force": { "default": "", "description": "Override variant for non_conservative_force (defaults to energy variant).", "title": "Variant Force", "type": "string" }, "deterministic": { "default": true, "description": "Disable JIT profiling and enable PyTorch deterministic algorithms (reproducible NEB / multi-image forces).", "title": "Deterministic", "type": "boolean" }, "deterministic_strict": { "default": false, "description": "Fail on nondeterministic CUDA ops; requires CUBLAS_WORKSPACE_CONFIG (e.g. :4096:8).", "title": "Deterministic Strict", "type": "boolean" } } }
- Config:
use_attribute_docstrings: bool = True
- Fields:
check_consistency (bool)deterministic (bool)deterministic_strict (bool)device (str)energy_output (str)energy_uncertainty_output (str)extensions_directory (str)force_output (str)length_unit (str)model_path (str)n_symmetry_rotations (int)non_conservative (bool)random_rotation (bool)uncertainty_threshold (float)variant_base (str)variant_energy (str)variant_energy_uncertainty (str)variant_force (str)
- field deterministic: bool = True¶
Disable JIT profiling and enable PyTorch deterministic algorithms (reproducible NEB / multi-image forces).
- field deterministic_strict: bool = False¶
Fail on nondeterministic CUDA ops; requires CUBLAS_WORKSPACE_CONFIG (e.g. :4096:8).
- field energy_uncertainty_output: str = ''¶
Literal energy uncertainty output key; empty uses variant resolution.
- field n_symmetry_rotations: int = 0¶
If >0, average over this many random rotations (O(3) symmetrization).
- 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 uncertainty_threshold: float = -1¶
Threshold to report per-atom uncertainties, if positive. Also used to populate the variance.
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:
accuracy (float)charge (float)electronic_temperature (float)max_iterations (int)paramset (Literal['GFNFF', 'GFN0xTB', 'GFN1xTB', 'GFN2xTB'])uhf (int)
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:
cut_global (float)cut_inner (float)
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:
host (str)make_template_input (bool)mem_in_gb (int)nwchem_settings (str)port (int)unix_socket_mode (bool)unix_socket_path (str)
- 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.).
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]¶
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" }, "mpi_launcher": { "default": "mpirun", "description": "MPI launcher for NWChem (mpirun default, or srun on Slurm).", "title": "Mpi Launcher", "type": "string" }, "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:
mpi_launcher (str)multiplicity (str)nproc (int | Literal['auto'])nwchem_path (str)scf_maxiter (int)scf_thresh (float)
- 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:
nproc (int | Literal['auto'])orca_path (str)simpleinput (str)
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:
basis (str)engine (Literal['', 'REAXFF', 'MOPAC'])forcefield (str)model (str)resources (str)xc (str)
- 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:
engine (Literal['', 'REAXFF', 'MOPAC'])forcefield (str)model (str)xc (str)
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:
amsbin (str)amshome (str)amsresources (str)scm_pythondir (str)scm_tmpdir (str)scmlicense (str)
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.