Coarse Graining#

In aKMC simulations where there are vastly different rates, the simulation can get stuck in a group of states connected by relatively fast rates. In order to explore slower transitions, a prohibitively large number of KMC steps may be needed. In order to circumvent this problem, eOn implements two methods.

Note

AS-KMC and MCAMC cannot be used simultaneously.

Monte Carlo with Absorbing Markov Chains (MCAMC)#

The first method, projective dynamics, described in Novotny [CG_Nov01], groups states that are joined by fast rates into “superbasins”. Information about transitions between states in a superbasin is lost, but the rates for transitions across a superbasin are correct.

Accelerated Superbasin Kinetic Monte Carlo (AS-KMC)#

The second method, accelerated superbasin kinetic Monte Carlo (AS-KMC) of Voter [CG_Vot97], artificially raises low barriers. The dynamics between states connected by fast rates are simulated, but an error is introduced in the dynamics direction and time.

The basic process of AS-KMC involves gradually raising process barriers found to be inside of a superbasin such that exiting from the basin gradually becomes more likely. The method is designed to raise all the barriers in the superbasin simultaneously. Once a particular barrier has been crossed a certain number of times, \(N_f\) (more on determining \(N_f\) shortly), a check is performed to determine whether or not the current state is part of a superbasin. This is called the Superbasin Criterion.

In the Superbasin Criterion, a search is performed, originating at the current state and proceeding outward through all low-barrier processes to adjacent states, and then through all low-barrier processes from each of these states, etc. For each low-barrier process found, if the process has been followed fewer than \(N_f\) times, the Superbasin Criterion fails and no barriers are raised.

Thus, in the outward-expanding search from the originating state, the search continues until either a low-barrier process has been seen fewer than \(N_f\) times (and the Criterion fails) or until all connected low-barrier processes have been found and have been crossed at least \(N_f\) times (the edges of the superbasin are then defined and the Criterion passes). If the Superbasin Criterion passes, all the low-barrier processes (each of which as been crossed \(N_f\) times) are raised.

Several parameters dictate the functioning of the AS-KMC method. These parameters dictate how much the barriers are raised each time the Superbasin Criterion passes(eon.schema.CoarseGrainingConfig.askmc_barrier_raise_param), what defines a “low-barrier” for use in the Superbasin Criterion(eon.schema.CoarseGrainingConfig.askmc_high_barrier_def), and the approximate amount of error the user might expect in eventual superbasin exit direction and time compared to normal KMC simulation (eon.schema.CoarseGrainingConfig.askmc_confidence).

Configuration#

[Coarse Graining]

Changed in version 2.1_TBA: In TOML, this will be [Coarse_Graining]

pydantic model eon.schema.CoarseGrainingConfig[source]#

Show JSON schema
{
   "title": "CoarseGrainingConfig",
   "type": "object",
   "properties": {
      "use_mcamc": {
         "default": false,
         "description": "This option determines whether the Monte Carlo with Absorbing Markov Chains (MCAMC) coarse graining method will be used.",
         "title": "Use Mcamc",
         "type": "boolean"
      },
      "state_file": {
         "default": "superbasin",
         "description": "File name for the state-specific data stored within each of the state directories.",
         "title": "State File",
         "type": "string"
      },
      "superbasin_scheme": {
         "default": "transition_counting",
         "description": "MCAMC provides a method for calculating transition rates across superbasins. An additional method is needed in order to decide when to combine states into a superbasin.",
         "enum": [
            "energy_level",
            "transition_counting"
         ],
         "title": "Superbasin Scheme",
         "type": "string"
      },
      "max_size": {
         "default": 0,
         "description": "The maximal number of states that will be merged together. If 0, there is no limit.",
         "title": "Max Size",
         "type": "integer"
      },
      "number_of_transitions": {
         "default": 5,
         "description": "If the transition counting scheme is being used, this is the number of transitions that must occur between two states before they are merged into a superbasin.",
         "title": "Number Of Transitions",
         "type": "integer"
      },
      "energy_increment": {
         "default": 0.01,
         "description": "The first time each state is visited, it is assigned an energy level first equal to the energy of the minimum. Every time the state is visited again by the Monte Carlo simulation, the energy level is increased by this amount.",
         "title": "Energy Increment",
         "type": "number"
      },
      "superbasin_confidence": {
         "default": true,
         "description": "Superbasin KMC confidence.",
         "title": "Superbasin Confidence",
         "type": "boolean"
      },
      "use_askmc": {
         "default": false,
         "description": "This option determines whether the AS-KMC coarse graining method will be used.",
         "title": "Use Askmc",
         "type": "boolean"
      },
      "askmc_confidence": {
         "default": 0.9,
         "description": "The confidence for AS-KMC. This value determines the accuracy of the direction of the dynamics trajectory.",
         "title": "Askmc Confidence",
         "type": "number"
      },
      "askmc_barrier_raise_param": {
         "default": 1.5,
         "description": "This parameter sets how much the barriers are raised during AS-KMC.",
         "title": "Askmc Barrier Raise Param",
         "type": "number"
      },
      "askmc_high_barrier_def": {
         "default": 2.0,
         "description": "This parameter sets how high a barrier must be to be considered 'high' in AS-KMC.",
         "title": "Askmc High Barrier Def",
         "type": "number"
      },
      "askmc_barrier_test_on": {
         "default": true,
         "description": "This test verifies that no low-barrier process in a superbasin has been missed, considering even processes which have not been visited.",
         "title": "Askmc Barrier Test On",
         "type": "boolean"
      },
      "askmc_connections_test_on": {
         "anyOf": [
            {
               "type": "boolean"
            },
            {
               "type": "null"
            }
         ],
         "default": false,
         "description": "Ensures that there are no processes which connect states in the defined superbasin which have not been visited yet and which have a low-barrier.",
         "title": "Askmc Connections Test On"
      }
   }
}

Config:
  • use_attribute_docstrings: bool = True

Fields:
field askmc_barrier_raise_param: float = 1.5#

This parameter sets how much the barriers are raised during AS-KMC.

field askmc_barrier_test_on: bool = True#

Because the implemented Superbasin Criterion actually only considers processes which have been passed over at least once, there is some chance that a low-barrier process in a superbasin might have not been visited at all while all other low-barrier processes have been visited at least \(N_f\) times. This is unlikely, but this test verifies that such has not happened, considering even processes which have not been visited when determining if the Superbasin Criterion has first, because the implemented Superbasin Criterion actually only considers processes which have been passed over at least once, there is some chance that a low-barrier process in a superbasin might have not been visited at all while all other low-barrier processes have been visited at least \(N_f\) times. This is unlikely, but this test verifies that such has not happened, considering even processes which have not been visited when determining if the Superbasin Criterion has passed. This check should not add significant overhead.

This test verifies that no low-barrier process in a superbasin has been missed, considering even processes which have not been visited.

field askmc_confidence: float = 0.9#

The confidence for AS-KMC. This value determines the accuracy of the direction of the dynamics trajectory.

field askmc_connections_test_on: bool | None = False#

This parameter determines whether to ensure that there are no processes which connect states in the defined superbasin which have not been visited yet and which have a low-barrier. This check is somewhat more computationally expensive than the previous because structure comparisons have to be made when finding product states of unvisited processes.

Ensures that there are no processes which connect states in the defined superbasin which have not been visited yet and which have a low-barrier.

field askmc_high_barrier_def: float = 2.0#

This parameter sets how high a barrier must be to be considered ‘high’ in AS-KMC.

field energy_increment: float = 0.01#

Only used if eon.schema.CoarseGrainingConfig.superbasin_scheme is energy_level.

The first time each state is visited, it is assigned an energy level first equal to the energy of the minimum. Every time the state is visited again by the Monte Carlo simulation, the energy level is increased by this amount.

field max_size: int = 0#

The maximal number of states that will be merged together. If 0, there is no limit.

field number_of_transitions: int = 5#

If the transition counting scheme is being used, this is the number of transitions that must occur between two states before they are merged into a superbasin.

field state_file: str = 'superbasin'#

File name for the state-specific data stored within each of the state directories.

field superbasin_confidence: bool = True#

Superbasin KMC steps only consider exit processes from the superbasin. As fast processes get absorbed more and more into the superbasin, the relevant exit processes have higher and higher barriers. The confidence to have found all relevant processes leading away from a state is heavily influenced by the fast processes, that no longer exit the superbasin. To make sure that the confidence is adequately high for the barrier energies leaving the superbasin, additional searches need to be performed. This setting (which defaults to true) enables these additional searches. The searches are marked in states/<state_number>/search_results.txt by appending the number of the superbasin in which the search was performed in brackets. In general, this option should not be disabled! It exists only for debug purposes and cases where the user is sure that the additional searches are not needed.

Superbasin KMC confidence.

field superbasin_scheme: Literal['energy_level', 'transition_counting'] = 'transition_counting'#
Options:
  • transition_counting: Counts the number of times that the simulation has transitioned between a given pair of states. After a critical number of transitions have occurred, the pair of states are merged to form a superbasin.

  • energy_level: States are merged based on energy levels.

MCAMC provides a method for calculating transition rates across superbasins. An additional method is needed in order to decide when to combine states into a superbasin.

field use_askmc: bool = False#

Mutually exclusive with eon.schema.CoarseGrainingConfig.use_mcamc.

This option determines whether the AS-KMC coarse graining method will be used.

field use_mcamc: bool = False#

Mutually exclusive with eon.schema.CoarseGrainingConfig.use_askmc.

This option determines whether the Monte Carlo with Absorbing Markov Chains (MCAMC) coarse graining method will be used.

References#

[CG_Nov01]

M. A. Novotny. A Tutorial on Advanced Dynamic Monte Carlo Methods for Systems with Discrete State Spaces, pages 153–210. WORLD SCIENTIFIC, April 2001. doi:10.1142/9789812811578_0003.

[CG_Vot97]

Arthur F. Voter. Hyperdynamics: Accelerated Molecular Dynamics of Infrequent Events. Physical Review Letters, 78(20):3908–3911, May 1997. doi:10.1103/PhysRevLett.78.3908.