Recycling#

As reported in Xu and Henkelman [RECYC_XH08], eON implements a method of saddle point recycling that can significantly reduce the computational cost of the aKMC algorithm.

Suppose we are in reactant state \(R_0\), and we have discovered a series of saddles and their corresponding products, \(S_i\) and \(P_i\), respectively. Once we have reached confidence that we have found all energetically relevant processes, we select one of these processes and move to the corresponding product state.

For this example, let us assume that we have selected the process with saddle \(S_0\) and product \(P_0\). If we have found \(N\) energetically relevant processes in state \(R_0\), we can make suggestions of the saddle geometries \(G_i\) for saddles leading out of state \(P_0\), i.e.:

\[G_i = P_0 + (S_i - R_0)\]

We use a min-mode following algorithm to converge these suggested saddle points. To reach confidence again in state \(P_0\), we need only perform saddle searches in the region around the atoms that moved significantly from state \(R_0\) to state \(P_0\), resulting in a significant reduction in computational costs. If this region is local, the overall cost does not increase with the total system size.

Configuration#

[Recycling]
pydantic model eon.schema.RecyclingConfig[source]#

Show JSON schema
{
   "title": "RecyclingConfig",
   "type": "object",
   "properties": {
      "use_recycling": {
         "default": true,
         "description": "Turn recycling on and off.",
         "title": "Use Recycling",
         "type": "boolean"
      },
      "move_distance": {
         "default": 0.2,
         "description": "The distance an atom must move to be considered in the 'hole'.",
         "title": "Move Distance",
         "type": "number"
      },
      "displace_moved_only": {
         "default": false,
         "description": "When performing saddle search displacements, only use atoms in the vicinity of the hole as displacement epicenters.",
         "title": "Displace Moved Only",
         "type": "boolean"
      },
      "save_suggestions": {
         "default": false,
         "description": "If True, the suggestions made by saddle recycling are saved to the 'saddle_suggestions' directory of the state directory for which the saddles are being suggested.",
         "title": "Save Suggestions",
         "type": "boolean"
      },
      "active_region": {
         "default": 1.0,
         "description": "Defines a region around the atoms that moved in the previous KMC step to target new saddle searches in the current state.",
         "title": "Active Region",
         "type": "number"
      },
      "mass_weight_factor": {
         "default": 1000.0,
         "description": "Atoms that are not within the active region have their atomic masses multiplied by this factor.",
         "title": "Mass Weight Factor",
         "type": "number"
      },
      "use_sb_recycling": {
         "default": false,
         "description": "Turn superbasin recycling on and off.",
         "title": "Use Sb Recycling",
         "type": "boolean"
      }
   }
}

Config:
  • use_attribute_docstrings: bool = True

Fields:
field active_region: float = 1.0#

For dynamics-based saddle searches, atoms in the active region will have mass weighting applied; for min-mode following saddle searches, only these atoms will be selected for displacements. Represents a multiple of eon.schema.StructureComparisonConfig.neighbor_cutoff.

Defines a region around the atoms that moved in the previous KMC step to target new saddle searches in the current state.

field displace_moved_only: bool = False#

When performing saddle search displacements, only use atoms in the vicinity of the hole as displacement epicenters.

field mass_weight_factor: float = 1000.0#

Atoms that are not within the active region have their atomic masses multiplied by this factor.

field move_distance: float = 0.2#

The distance an atom must move to be considered in the ‘hole’.

field save_suggestions: bool = False#

If True, the suggestions made by saddle recycling are saved to the ‘saddle_suggestions’ directory of the state directory for which the saddles are being suggested.

field use_recycling: bool = True#

Turn recycling on and off.

field use_sb_recycling: bool = False#

Turn superbasin recycling on and off.

References#

[RECYC_XH08]

Lijun Xu and Graeme Henkelman. Adaptive kinetic Monte Carlo for first-principles accelerated dynamics. The Journal of Chemical Physics, 129(11):114104, September 2008. doi:10.1063/1.2976010.