ahel is live on Product Hunt today. Upvote

NRR Overpotential Calculation

SkillDev tools

Use when the user asks about NRR (nitrogen reduction reaction), ammonia synthesis, N2 fixation, or the electrochemical reduction of N2 to NH3 on a catalyst surface.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the NRR Overpotential Calculation skill

What this skill tells your AI

The instructions your AI receives, as published by hello-qm/catgo-lrg in .claude/skills/nrr/SKILL.md and read by ahel’s review.

Theory: Distal Pathway (6-Electron Transfer)

N2 --> *N2H --> *NNH2 --> *N + NH3 --> *NH --> *NH2 --> NH3

The first protonation step (N2 --> *N2H) is typically rate-limiting. The thermodynamic equilibrium potential for N2 + 6H+ + 6e- --> 2NH3 is -0.16 V vs RHE at 298 K.

Overpotential

eta_NRR = max(dG_steps) + U_eq

where U_eq = -0.16 V (thermodynamic potential for N2 reduction).

Atom-Balanced Free Energy Steps (Distal Pathway, CHE Convention)

Using the computational hydrogen electrode: G(H+ + e-) = 0.5 * G(H2) at U=0V. Each step must balance all atoms (N, H) on both sides:

Step 1: * + N2(g) + H+ + e- --> *N2H
  dG1 = G(*N2H) - G(*) - G(N2) - 0.5*G(H2)

Step 2: *N2H + H+ + e- --> *NNH2
  dG2 = G(*NNH2) - G(*N2H) - 0.5*G(H2)

Step 3: *NNH2 + H+ + e- --> *N + NH3(g)
  dG3 = G(*N) + G(NH3) - G(*NNH2) - 0.5*G(H2)

Step 4: *N + H+ + e- --> *NH
  dG4 = G(*NH) - G(*N) - 0.5*G(H2)

Step 5: *NH + H+ + e- --> *NH2
  dG5 = G(*NH2) - G(*NH) - 0.5*G(H2)

Step 6: *NH2 + H+ + e- --> * + NH3(g)
  dG6 = G(*) + G(NH3) - G(*NH2) - 0.5*G(H2)

Important: All G values must be Gibbs free energies (from geo_opt + freq + gibbs_energy chain), NOT raw DFT electronic energies. Using E_DFT instead of G omits ZPE and entropy, leading to errors of 0.2-0.5 eV per step.

pH Correction

At non-zero pH, each proton-transfer step is corrected by:

dG_i(pH) = dG_i - 0.059 * pH   (eV, at 298 K)

This shifts the free energy of every (H+ + e-) transfer by -0.059 eV per pH unit (Nernst relation). At pH 0, no correction is needed.

Simplified Descriptor

The binding energy of the first protonation intermediate (*N2H) is the primary descriptor for NRR activity. A strong *N2H binding activates N2 but may trap intermediates; weak binding gives poor N2 activation.

Discussion Checkpoints

🔴 Must discuss with user:

  • Pathway choice — distal vs alternating vs enzymatic; different pathways have different intermediates and rate-limiting steps; distal is most common on metal surfaces but alternating dominates on some single-atom catalysts
  • Surface choice — Miller index, composition, and defect sites; Fe(110) and Mo-based catalysts are canonical NRR surfaces
  • Functional — must be consistent across all 5+ intermediates; SCAN may give different N2 activation barriers than PBE
  • ISPIN — must be 2 for NRR; N2 activation is spin-dependent, especially on Fe, Mo, and other magnetic substrates; ISPIN=1 gives qualitatively wrong energetics

🟡 Recommend confirming:

  • Competing HER — always compare dG_N2H with dG_H* on the same surface; a good NRR catalyst must suppress HER (dG_H* > 0)
  • N2 reference state — gas-phase N2 is extremely stable (9.79 eV bond); must use consistent G(N2) from freq + gibbs with phase="gas"

🟢 Safe defaults:

  • 6-electron distal pathway
  • U_eq = -0.16 V vs RHE (thermodynamic equilibrium potential)
  • CHE reference: G(H+ + e-) = 0.5*G(H2)

MCP Tool: catgo_catalysis action="nrr"

Basic NRR Overpotential (Single Descriptor)

Using only the first protonation step energy:

{"tool": "catgo_catalysis", "arguments": {
  "action": "nrr",
  "params": {
    "dG_N2H": 0.5
  }
}}

Full Pathway Analysis

Provide multiple intermediate energies for a more detailed analysis:

{"tool": "catgo_catalysis", "arguments": {
  "action": "nrr",
  "params": {
    "dG_N2H": 0.50,
    "dG_NNH2": 0.35,
    "dG_N": -0.20,
    "dG_NH": -0.45,
    "dG_NH2": -0.30,
    "dG_NH3": -0.10,
    "pathway": "distal"
  }
}}

Alternating Pathway

{"tool": "catgo_catalysis", "arguments": {
  "action": "nrr",
  "params": {
    "dG_N2H": 0.65,
    "pathway": "alternating"
  }
}}

Parameters

ParameterTypeDefaultDescription
dG_N2Hfloat--Free energy of first protonation (eV), required
dG_NNH2floatnullFree energy of *NNH2 intermediate (eV)
dG_NfloatnullFree energy of *N intermediate (eV)
dG_NHfloatnullFree energy of *NH intermediate (eV)
dG_NH2floatnullFree energy of *NH2 intermediate (eV)
dG_NH3floatnullFree energy of NH3 desorption step (eV)
pathwaystring"distal"Pathway: distal, alternating, or enzymatic
equilibrium_potentialfloat-0.16Thermodynamic potential (V vs RHE)

Return Format

{
  "overpotential": 0.34,
  "limiting_step": 1,
  "step_energies": [0.50],
  "pathway": "distal",
  "dG_N2H": 0.50
}

Complete MCP Workflow: NRR on Fe(110)

1. Create workflow

{"tool": "catgo_workflow", "arguments": {
  "action": "create", "name": "NRR on Fe(110)"
}}

2. Build slab and adsorbate structures

For each intermediate (*N2H, *NNH2, *N, *NH, *NH2):

{"tool": "catgo_structure", "arguments": {
  "action": "slab", "miller_index": [1,1,0],
  "min_slab_size": 12.0, "min_vacuum_size": 15.0
}}

3. For each intermediate: geo_opt --> freq --> gibbs_energy

{"tool": "catgo_workflow", "arguments": {
  "action": "add_node", "workflow_id": "wf_nrr",
  "node_type": "geo_opt",
  "params": {"software": "vasp", "ENCUT": 520, "ISPIN": 2,
             "system_name": "*N2H"}
}}
{"tool": "catgo_workflow", "arguments": {
  "action": "add_node", "workflow_id": "wf_nrr",
  "node_type": "freq", "depends_on": "task_n2h_opt",
  "params": {"software": "vasp", "freeze_mode": "layers",
             "freeze_layers": 4, "system_name": "*N2H"}
}}
{"tool": "catgo_workflow", "arguments": {
  "action": "add_node", "workflow_id": "wf_nrr",
  "node_type": "gibbs_energy",
  "params": {"phase": "adsorbed", "system_name": "*N2H"}
}}

4. Add gas-phase references (N2, H2, NH3)

All gas-phase references need geo_opt --> freq --> gibbs with phase="gas":

{"tool": "catgo_fetch", "arguments": {
  "action": "molecule", "query": "nitrogen"
}}
{"tool": "catgo_fetch", "arguments": {
  "action": "molecule", "query": "ammonia"
}}

5. Compute overpotential

After all Gibbs energies are computed, calculate the free energy steps and call:

{"tool": "catgo_catalysis", "arguments": {
  "action": "nrr",
  "params": {"dG_N2H": 0.50}
}}

DAG Structure

clean_slab --> geo_opt
*N2H  --> geo_opt --> freq --> gibbs
*NNH2 --> geo_opt --> freq --> gibbs
*N    --> geo_opt --> freq --> gibbs
*NH   --> geo_opt --> freq --> gibbs
*NH2  --> geo_opt --> freq --> gibbs
N2(g)  --> geo_opt --> freq --> gibbs (gas)
H2(g)  --> geo_opt --> freq --> gibbs (gas)
NH3(g) --> geo_opt --> freq --> gibbs (gas)

Total: ~23 tasks. The 8 branches are independent and run in parallel.

Common Pitfalls

  1. NRR competes with HER (hydrogen evolution). A good NRR catalyst must suppress HER, so always compare dG_N2H with dG_H on the same surface.
  2. The distal pathway (most common on metal surfaces) cleaves the N-N bond after partial hydrogenation. The alternating pathway hydrogenates both N atoms alternately before cleaving.
  3. N2 activation is spin-dependent. Always use ISPIN=2 for NRR calculations, especially on Fe, Mo, and other magnetic substrates.
  4. The simplified model uses only dG_N2H as the descriptor. For accurate screening, compute at least dG_N2H and dG_NH3 (desorption step) to check both ends of the pathway.
  5. Gas-phase N2 is extremely stable (bond energy 9.79 eV). Use consistent reference energies: G(N2) from a gas-phase frequency calculation with phase="gas".

Signals

GitHub stars
198
Forks
23
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
nrr-overpotential
Source
github.com/hello-qm/catgo-lrg