Prefactor

Changed in version 2.12: Fixed Hessian size validation bug where min2Freqs was never checked. Fixed float precision in QQ-HTST physical constants.

The prefactor job computes the harmonic transition state theory (hTST) rate prefactor using the Vineyard formula. This relates vibrational frequencies at a minimum and saddle point to determine the attempt frequency for a transition.

The prefactor job requires pre-computed minimum and saddle point structures. It uses the Hessian to obtain vibrational frequencies at each stationary point.

Usage

[Main]
job = prefactor

[Prefactor]
rate_estimation = htst
filter_scheme = fraction
filter_fraction = 0.9

The filter_scheme controls which frequencies contribute to the prefactor. Setting filter_fraction = 0.9 includes frequencies within 90% of the full range, filtering out very high-frequency modes that may be numerical artifacts.

Configuration

[Prefactor]
pydantic model eon.schema.PrefactorConfig[source]

Show JSON schema
{
   "title": "PrefactorConfig",
   "type": "object",
   "properties": {
      "all_free_atoms": {
         "default": false,
         "description": "Account for all free atoms when determining the prefactor.",
         "title": "All Free Atoms",
         "type": "boolean"
      },
      "filter_scheme": {
         "default": "fraction",
         "description": "Determines how to filter the atoms for use in the prefactor calculation.",
         "enum": [
            "cutoff",
            "fraction"
         ],
         "title": "Filter Scheme",
         "type": "string"
      },
      "filter_fraction": {
         "default": 0.9,
         "description": "When using filter_scheme ``fraction``, includes the atoms that move the most, limited to the number that make up ``filter_fraction`` of the total motion.",
         "title": "Filter Fraction",
         "type": "number"
      },
      "min_displacement": {
         "default": 0.25,
         "description": "Minimum displacement for an atom to be included in the Hessian calculation. Used only with filter_scheme 'cutoff'.",
         "title": "Min Displacement",
         "type": "number"
      },
      "within_radius": {
         "default": 3.3,
         "description": "Atoms within this radius of moving atoms are included in the Hessian. Used only with filter_scheme 'cutoff'.",
         "title": "Within Radius",
         "type": "number"
      },
      "default_value": {
         "default": 0.0,
         "description": "Calculate prefactor if zero, otherwise use given value instead of doing a full prefactor calculation.",
         "title": "Default Value",
         "type": "number"
      },
      "min_value": {
         "default": 1000000000.0,
         "description": "Minimum value for a reasonable prefactor.",
         "title": "Min Value",
         "type": "number"
      },
      "max_value": {
         "default": 1e+21,
         "description": "Maximum value for a reasonable prefactor.",
         "title": "Max Value",
         "type": "number"
      },
      "configuration": {
         "default": "reactant",
         "description": "Configuration for which the eigenfrequencies will be determined in a prefactor job.",
         "enum": [
            "reactant",
            "saddle",
            "product"
         ],
         "title": "Configuration",
         "type": "string"
      },
      "rate_estimation": {
         "default": "htst",
         "description": "Rate estimation method used for the prefactor calculation.",
         "title": "Rate Estimation",
         "type": "string"
      }
   }
}

Config:
  • use_attribute_docstrings: bool = True

Fields:
field all_free_atoms: bool = False

Account for all free atoms when determining the prefactor.

field configuration: Literal['reactant', 'saddle', 'product'] = 'reactant'
Options:
  • reactant

  • saddle

  • product.

Configuration for which the eigenfrequencies will be determined in a prefactor job.

field default_value: float = 0.0

Calculate prefactor if zero, otherwise use given value instead of doing a full prefactor calculation.

field filter_fraction: float = 0.9

When using filter_scheme fraction, includes the atoms that move the most, limited to the number that make up filter_fraction of the total motion.

field filter_scheme: Literal['cutoff', 'fraction'] = 'fraction'

Options: - cutoff: includes atoms that move more than eon.schema.PrefactorConfig.min_displacement - fraction: includes atoms that make up eon.schema.PrefactorConfig.filter_fraction of the total motion, prioritizing the atoms that move the most

Determines how to filter the atoms for use in the prefactor calculation.

field max_value: float = 1e+21

Maximum value for a reasonable prefactor.

field min_displacement: float = 0.25

Minimum displacement for an atom to be included in the Hessian calculation. Used only with filter_scheme ‘cutoff’.

field min_value: float = 1000000000.0

Minimum value for a reasonable prefactor.

field rate_estimation: str = 'htst'

Rate estimation method used for the prefactor calculation.

field within_radius: float = 3.3

Atoms within this radius of moving atoms are included in the Hessian. Used only with filter_scheme ‘cutoff’.