Cell-level, first-principles modeling of Solid Oxide Electrolysis Cells (SOEC) for
green hydrogen production at laboratory scale. The repo combines electrochemical
first-principles models (Nernst equilibrium potential + activation, ohmic, and concentration
overpotentials), an equation-oriented cell model built with IDAES / Pyomo, and process
operability analysis using opyrability.
This repository is part of my PhD research on multi-physics-simulation-informed AI for high-temperature electrolysis. A companion repository, SOEC-Stack-Flowsheet-TEA, extends this to stack/system-level flowsheet modeling and techno-economics at industrial scale.
A SOEC uses high-temperature steam and electricity to split water into hydrogen and oxygen. This repo models the cell from first principles and studies how operating conditions map to achievable performance:
- Electrochemical cell model — computes the cell voltage as the sum of the Nernst (equilibrium) potential and the activation, ohmic, and concentration overpotentials, and reproduces the SOEC polarization curves across a range of temperatures (873–1123 K).
- Process-systems model — a steady-state SOEC flowsheet built with IDAES unit models on top of Pyomo, suitable for simulation and optimization.
- Operability analysis — uses
opyrabilityto map the Available Input Set (AIS) of operating variables (e.g. inlet steam mole fraction and temperature) to the Achievable Output Set (AOS), and to evaluate the Operability Index (OI) against a Desired Output Set (DOS) such as a target hydrogen production rate.
RCG-SOEC-Modeling/
├── notebooks/ # Jupyter notebooks (main analysis)
│ ├── SOEC_pyomo_model.ipynb # IDAES + Pyomo steady-state SOEC flowsheet
│ ├── H2_prod_SOEC.ipynb # H2 production model + AIS→AOS operability mapping
│ ├── SOEC_Opy_H2.ipynb # Operability study focused on H2 output
│ ├── SOEC_Opy_Real.ipynb # Operability with the detailed (real) cell model
│ ├── H_SOEC_H2_prod.ipynb # Compact H2-production model used by opyrability
│ └── shower_opyrability.ipynb # Worked operability example (shower problem) — tutorial
├── src/
│ └── SOEC_MODEL.py # Standalone electrochemical polarization-curve model
├── docs/
│ └── RCG Multi-physics simulation informed AI.pptx # Project presentation
├── requirements.txt
├── LICENSE
└── README.md
- Python 3.10+ and Jupyter
- For the standalone model (
src/SOEC_MODEL.py) you only neednumpy,scipy,matplotlib. - The IDAES/Pyomo notebook additionally needs a solver (e.g. IPOPT), most easily installed via the IDAES extensions.
# (recommended) create a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# Install IDAES solvers (needed for SOEC_pyomo_model.ipynb)
idaes get-extensions# Quick start — reproduce the SOEC polarization curves:
python src/SOEC_MODEL.py
# Or explore the notebooks:
jupyter lab| Area | Tools |
|---|---|
| Numerics & ODEs | numpy, scipy |
| Process modeling & optimization | IDAES-PSE, Pyomo |
| Operability analysis | opyrability |
| Visualization | matplotlib, graphviz |
Key publications informing this work (PDFs are not redistributed here, to respect publisher copyright — please access them through their original sources):
- Wang et al., ECS Transactions 103, 2283 (2021).
- Towards online optimisation of solid oxide fuel cell performance: combining deep learning with multi-physics simulation.
- A data-driven output voltage control of solid oxide fuel cell using multi-agent deep reinforcement learning.
- Machine learning based soft sensor and long-term calibration scheme: a solid oxide fuel cell system case.
- Machine learning in materials science / Catalyze Materials Science with Machine Learning / Five High-Impact Research Areas in Machine Learning for Materials.
- Holistic computational structure screening of more than 12 000 candidates for solid lithium-ion conductor materials.
Krishnamurthy Busam — PhD research, hydrogen / solid-oxide electrolysis systems.
Original code in this repository is released under the MIT License.
The presentation in docs/ is not covered by this license and remains the property of its
respective owners.