General Simulation Parameters#

The following contains general options which specify the calculation to be done and general parameters which are shared between job types.

Jobs#

More details are in subsequent sections, but a brief overview of the jobs are as grouped below.

aKMC#

Adaptive Kinetic Monte Carlo (aKMC)

uses saddle searches to find possible reactive events and KMC to determine the state-to-state kinetics.

Within such a job, we may also use

Recycling

to use reactive events (processes) between states to speed up aKMC.

or construct a

Kinetic database

of reactive events so they can be reused between AKMC runs.

Or even reach for

Coarse Graining

to identify and escape groups of states connected by low barriers.

Dynamics#

Beyond this, we may also run

Molecular dyanmics

which are standard.

We can make this a little more interesting with

Hyperdynamics

which uses a bias potential to accelerate transitions between states.

Collective sampling#

Parallel Replica Dynamics

which uses a set of trajectories to accelerate the rate of escape from states.

Basin hopping

which lowers the barrier between states to accelerate Monte Carlo sampling.

PES traversal#

We can find minima on the potential energy surface using a

Minimization

which optimizes the geometry of a structure.

We can go close to a minimum energy path with the

Nudged elastic band

which locates minimum energy pathways using the eponymous method, essentially a chain-of-states search strategy

with this, we can then run a

Saddle search job

to find a nearby saddle point.

and they may do so by using

Dimer

method to find the lowest curvature mode.

or the

Lanczos

method to find the lowest curvature mode.

Added in version 2.1_TBA: with acceleration provided by Gaussian Process Regression or neural networks.

Miscellaneous#

Finally we note the following overview of some other sections

Main

which has options not specific to a single job type.

Communicator

which detail methods by which the code can be run in parallel.

Potential

which configures interatomic potentials, both bundled with eON and interfaced

Optimizer

which has options related to the generic step interface for optimization of atomic structures

Prefactor

which has options to control the calculation of harmonic transition state (hTST) prefactors

Structure Comparison

which configures the computation of similarity measures and equivalence thresholds

Paths

which enumerate directories in which calculations will be run

Debug

which holds options for additional output

Configuration#

[Main]
pydantic model eon.schema.MainConfig[source]#

Show JSON schema
{
   "title": "MainConfig",
   "type": "object",
   "properties": {
      "job": {
         "default": "akmc",
         "description": "The type of job to execute.",
         "enum": [
            "akmc",
            "basin_hopping",
            "displacement_sampling",
            "dynamics",
            "escaperate",
            "finite_differences",
            "global_optimization",
            "gp_surrogate",
            "hessian",
            "minimization",
            "monte_carlo",
            "nudged_elastic_band",
            "parallel_replica",
            "point",
            "prefactor",
            "process_search",
            "replica_exchange",
            "saddle_search",
            "safe_hyperdynamics",
            "structure_comparison",
            "tad"
         ],
         "title": "Job",
         "type": "string"
      },
      "random_seed": {
         "description": "Takes an integer for the random seed. If this number is less than zero the current time is used as the random seed. If it is not defined, a 32 bit sized integer is used.",
         "title": "Random Seed",
         "type": "integer"
      },
      "temperature": {
         "default": 300.0,
         "description": "The temperature that the job will run at.",
         "title": "Temperature",
         "type": "number"
      },
      "finite_difference": {
         "default": 0.01,
         "description": "The finite difference distance to use for dimer, hessian, lanczos, and optimization methods.",
         "title": "Finite Difference",
         "type": "number"
      },
      "checkpoint": {
         "default": false,
         "description": "Resuming search from checkpoint files.",
         "title": "Checkpoint",
         "type": "boolean"
      },
      "quiet": {
         "default": false,
         "description": "Disable logging to stdout.",
         "title": "Quiet",
         "type": "boolean"
      },
      "write_log": {
         "default": true,
         "description": "Enable writing log to client.log file.",
         "title": "Write Log",
         "type": "boolean"
      },
      "max_force_calls": {
         "default": 0,
         "description": "The maximum number of total force calls per job. The default, 0, means unlimited force calls. If this limit is reached, an error code 1017 is thrown and shows up in the client log.",
         "title": "Max Force Calls",
         "type": "integer"
      },
      "remove_net_force": {
         "default": true,
         "description": "If True, ensures that the net force on the system of atoms is zero by adjusting the force on each free atom.",
         "title": "Remove Net Force",
         "type": "boolean"
      }
   }
}

Config:
  • use_attribute_docstrings: bool = True

Fields:
field checkpoint: bool = False#

Resuming search from checkpoint files.

field finite_difference: float = 0.01#

The finite difference distance to use for dimer, hessian, lanczos, and optimization methods.

field job: Literal['akmc', 'basin_hopping', 'displacement_sampling', 'dynamics', 'escaperate', 'finite_differences', 'global_optimization', 'gp_surrogate', 'hessian', 'minimization', 'monte_carlo', 'nudged_elastic_band', 'parallel_replica', 'point', 'prefactor', 'process_search', 'replica_exchange', 'saddle_search', 'safe_hyperdynamics', 'structure_comparison', 'tad'] = 'akmc'#
Options:
  • molecular_dynamics: Molecular dynamics.

  • parallel_replica: Calculate the rare-event dynamics of the system by combining transitions observed from multiple trajectories run in parallel.

  • saddle_search: Do a saddle point search using a minimum mode method.

  • displacement_sampling: Job to sample different displacement methods and parameters to see which are the most efficient.

  • process_search: Combined saddle search, minimizations, and prefactor calculations. Used by the aKMC method.

  • basin_hopping: Search for global minimum using basin hopping method.

  • minimization: Find the minimum from an initial configuration.

  • akmc: Run an adaptive kinetic monte carlo simulation.

  • hessian: Calculate the Hessian matrix for the specified configuration in a process.

  • finite_differences: Finite difference methods.

  • global_optimization: Global optimization methods.

  • gp_surrogate: Gaussian process surrogate methods.

  • monte_carlo: Monte Carlo methods.

  • nudged_elastic_band: Nudged elastic band methods.

  • point: Single point calculation.

  • prefactor: Prefactor calculations.

  • replica_exchange: Replica exchange methods.

  • safe_hyperdynamics: Safe hyperdynamics methods.

  • structure_comparison: Structure comparison methods.

  • tad: Temperature-accelerated dynamics.

The type of job to execute.

field max_force_calls: int = 0#

The maximum number of total force calls per job. The default, 0, means unlimited force calls. If this limit is reached, an error code 1017 is thrown and shows up in the client log.

field quiet: bool = False#

Disable logging to stdout.

field random_seed: int [Optional]#

Takes an integer for the random seed. If this number is less than zero the current time is used as the random seed. If it is not defined, a 32 bit sized integer is used.

field remove_net_force: bool = True#

If True, ensures that the net force on the system of atoms is zero by adjusting the force on each free atom.

field temperature: float = 300.0#

The temperature that the job will run at.

field write_log: bool = True#

Enable writing log to client.log file.