---
myst:
html_meta:
"description": "Comprehensive user guide for the eOn software, detailing all algorithms, configuration settings, and job types."
"keywords": "eOn user guide, documentation, configuration, algorithms, tutorials"
---
# User Guide
Here we collect a brief introduction to each algorithm, with curated references
for more information along with the configuration settings as implemented
within `eOn`.
Each of the sections and methods may be included in the configuration file with
the appropriate section header.
## Overview
The `eOn` program can run the following methods or tasks to explore the
configuration space of molecular systems and to accelerate the simulation of
their dynamics over long times. To run `eOn`, a configuration file must be generated
using the options specified in the documentation. Each section header is denoted
by square brackets, and is followed by the key/value pairs. For example, to set
the *job* key of the *[Main]* section to the value *process_search*, your
configuration file would include the lines:
```{code-block} ini
[Main]
job = process_search
```
There are specific options for each method, and a set of general options which
are shared between methods. Examples of these general options include
specification of the interatomic potential and the parameters for doing structural
optimizations and comparisons.
```{versionadded} 2.12
Parameters can also be loaded from JSON strings for programmatic usage.
See {doc}`/devdocs/design/client/parameters` for the JSON schema.
```
````{margin}
```{note}
As of version 2.0 onwards, we recommend using dedicated workflow management tools (like [AiiDA](https://www.aiida.net/) or [Snakemake](https://snakemake.readthedocs.io/) or [Fireworks](https://materialsproject.github.io/fireworks)) instead of using `eOn` to generate submission scripts.
```
````
eOn is designed to run in serial on one computer or in parallel using a
communicator to send jobs from a server to clients and receive the results back.
Several parallelization schemes have been implemented, including local
communication through files, cluster communication via a queuing system or via
mpi.
Methods run in parallel are broken up by the eon server into tasks which
are run by client program. The server then compiles the information sent back
by the clients in a way that can be used by the sampling or dynamics methods.
## Potentials
Some of the potentials require additional installation and setup, which are
described in the subsequent sections.
```{toctree}
:maxdepth: 1
:caption: Potentials
ext_pot
lammps_pot
ase_pot
metatomic_pot
quip
mpi_potential
```
## Configuration Sections
```{toctree}
:maxdepth: 1
:caption: Common
algorithm_selection
main
potential
structure_comparison
optimizer
```
```{toctree}
:maxdepth: 1
:caption: Potential Energy Surface Traversal
minimization
neb
dimer
lanczos
artn
hessian
prefactor
```
```{toctree}
:maxdepth: 1
:caption: Compound Jobs
akmc
saddle_search
basin_hopping
process_search
recycling
coarse_graining
```
```{toctree}
:maxdepth: 1
:caption: Dynamics
dynamics
parallel_replica
hyperdynamics
```
```{toctree}
:maxdepth: 1
:caption: Additional configuration
communicator
debug
paths
```
## Miscellaneous
Some of the potentials require additional installation and setup, which are
described in the subsequent sections.
```{toctree}
:maxdepth: 1
:caption: External linkage
kdb
serve_mode
```