Kinetic Database#

One of the bottlenecks in an aKMC simulation is performing the saddle point searches. The kinetic database has been demonstrated by Terrell et al. [KDB_TWCH12] to ameliorate this cost by storing information about processes as they are found and using it to predict future saddle points.

In the following figure, the hydrogen of a carboxyl group on an Au(111) surface transfers to the other oxygen (a). In this process, the hydrogen is determined to be the only moving atom, and the two oxygen atoms to be its neighbors. The other atoms are stripped from the system and the resulting configurations are stored in the database (b). If in the future the system passes through a state with a local configuration closely resembling either minimum of (b), the kinetic database will suggest a saddle to converge with a dimer search. The dimer starts with this suggested configuration and mode, and if it is a good suggestion, converges very rapidly to the saddle.

Carboxyl group on an Au(111)

Snapshots of Carboxyl group on an Au(111). (a) Hydrogen of carboxyl transfers to another oxygen. (b) Other atoms are stripped and stored.#

Dependencies#

The kinetic database is contained in a library separate from eOn. It is part of the tsase python module located here.

Configuration#

[KDB]
pydantic model eon.schema.KDBConfig[source]#

Show JSON schema
{
   "title": "KDBConfig",
   "type": "object",
   "properties": {
      "use_kdb": {
         "default": false,
         "title": "Use Kdb",
         "type": "boolean"
      },
      "kdb_only": {
         "default": false,
         "description": "Only use KDB in an AKMC simulation, no random searches.",
         "title": "Kdb Only",
         "type": "boolean"
      },
      "remove_duplicates": {
         "default": false,
         "description": "KDB will not make duplicate suggestions. This can slow KDB querying, so it may be best to use this only for slow potentials (DFT, etc.).",
         "title": "Remove Duplicates",
         "type": "boolean"
      },
      "kdb_name": {
         "default": "kdb.db",
         "title": "Kdb Name",
         "type": "string"
      },
      "kdb_nf": {
         "default": 0.2,
         "title": "Kdb Nf",
         "type": "number"
      },
      "kdb_dc": {
         "default": 0.3,
         "title": "Kdb Dc",
         "type": "number"
      },
      "kdb_mac": {
         "default": 0.7,
         "title": "Kdb Mac",
         "type": "number"
      }
   }
}

Config:
  • use_attribute_docstrings: bool = True

Fields:
field kdb_dc: float = 0.3#
field kdb_mac: float = 0.7#
field kdb_name: str = 'kdb.db'#
field kdb_nf: float = 0.2#
field kdb_only: bool = False#

Only use KDB in an AKMC simulation, no random searches.

field remove_duplicates: bool = False#

KDB will not make duplicate suggestions. This can slow KDB querying, so it may be best to use this only for slow potentials (DFT, etc.).

field use_kdb: bool = False#

References#

[KDB_TWCH12]

Rye Terrell, Matthew Welborn, Samuel T. Chill, and Graeme Henkelman. Database of atomistic reaction mechanisms with application to kinetic Monte Carlo. The Journal of Chemical Physics, 137(1):014105, July 2012. doi:10.1063/1.4730746.