NRR Overpotential Calculation
SkillDev toolsUse 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.
No other account needed.
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
| Parameter | Type | Default | Description |
|---|---|---|---|
| dG_N2H | float | -- | Free energy of first protonation (eV), required |
| dG_NNH2 | float | null | Free energy of *NNH2 intermediate (eV) |
| dG_N | float | null | Free energy of *N intermediate (eV) |
| dG_NH | float | null | Free energy of *NH intermediate (eV) |
| dG_NH2 | float | null | Free energy of *NH2 intermediate (eV) |
| dG_NH3 | float | null | Free energy of NH3 desorption step (eV) |
| pathway | string | "distal" | Pathway: distal, alternating, or enzymatic |
| equilibrium_potential | float | -0.16 | Thermodynamic 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
- 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.
- 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.
- N2 activation is spin-dependent. Always use ISPIN=2 for NRR calculations, especially on Fe, Mo, and other magnetic substrates.
- 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.
- 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
- 196
- Forks
- 23
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
nrr-overpotential- Source
- github.com/hello-qm/catgo-lrg