Skip to content

Handle dissociative H2 adsorption without invoking NEB #9

Description

@Azeezakinyemi999

Currently, the workflow places H2 at 2.5 Å above the top surface, minimizes to find the total energy, and calculates the H2 adsorption energy. The same process is done for H* adsorption. The NEB workflow depends on these two results.

For cases where H2 dissociates during minimization (dissociative adsorption, especially in the presence of Fe), we don't need the NEB workflow at all. We should be able to extract the transition energy and the reaction energy directly from the .log file (still verifying this).

Currently, we label these cases as DISSOCIATED and exclude them from NEB and all subsequent processes.

Open question: can we recover transition + reaction energy from the log file for dissociated cases, or do we need a separate calculation?

Proposed approach for DISSOCIATED cases

Two options to evaluate, not mutually exclusive:

  1. Treat as barrierless. Assume transition energy = 0 for cases where H2 dissociates spontaneously during minimization. Rationale: if the geometry relaxed straight into the dissociated state without NEB, the initial configuration was likely already inside (or very close to) the basin of attraction for the dissociated minimum, implying no meaningful barrier along that path. Reaction energy = E_final - E_initial from the log file, transition energy = 0.

  2. Check the log for an apparent barrier baked into the relaxation trajectory. Pull per-step energies from the .log file (thermo output) and check whether there's a small local maximum before the energy drops to the dissociated state. If present, that step's energy could serve as a proxy transition energy. Caveats: this is not a true saddle point (no reaction coordinate control, no perpendicular force minimization at the "barrier" point), so it should be treated as a rough estimate, not a NEB replacement.

Decision: default to option 1 (barrierless, transition energy = 0) for all DISSOCIATED cases. Use option 2 as a sanity check on a subset of cases to see if the "zero barrier" assumption looks reasonable, before committing to it across the whole dataset.

Next steps

  • Confirm log file structure has per-step thermo energy for DISSOCIATED runs
  • Implement reaction energy extraction (E_final - E_initial) for DISSOCIATED cases
  • Set transition energy = 0 for DISSOCIATED cases (default)
  • Write log-parsing check for local energy maximum (sanity check subset)
  • Compare option 1 vs option 2 results on subset, decide if default needs revisiting

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions