Opem
OPEM (Open Source PEM Fuel Cell Simulation Tool)
Install / Use
/learn @ECSIM/OpemREADME
Table of Contents
- What is PEM?
- Overview
- Installation
- Usage
- Issues & Bug Reports
- Contribution
- Outputs
- Thanks
- Reference
- Cite
- Authors
- License
- Show Your Support
- Changelog
- Code of Conduct
Overview
<p align="justify"> Modeling and simulation of proton-exchange membrane fuel cells (PEMFC) may work as a powerful tool in the research & development of renewable energy sources. The Open-Source PEMFC Simulation Tool (OPEM) is a modeling tool for evaluating the performance of proton exchange membrane fuel cells. This package is a combination of models (static/dynamic) that predict the optimum operating parameters of PEMFC. OPEM contained generic models that will accept as input, not only values of the operating variables such as anode and cathode feed gas, pressure and compositions, cell temperature and current density, but also cell parameters including the active area and membrane thickness. In addition, some of the different models of PEMFC that have been proposed in the OPEM, just focus on one particular FC stack, and some others take into account a part or all auxiliaries such as reformers. OPEM is a platform for collaborative development of PEMFC models. </p> <div align="center"> <img src="https://github.com/ECSIM/opem/raw/master/otherfile/OPEM_BLOCK_DIAGRAM.jpg"> <p>Fig1. OPEM Block Diagram</p> </div> <table> <tr> <td align="center">Open Hub</td> <td align="center"><a href="https://www.openhub.net/p/opem"><img src="https://www.openhub.net/p/opem/widgets/project_thin_badge.gif"></a></td> </tr> <tr> <td align="center">PyPI Counter</td> <td align="center"><a href="http://pepy.tech/project/opem"><img src="http://pepy.tech/badge/opem"></a></td> </tr> <tr> <td align="center">Github Stars</td> <td align="center"><a href="https://github.com/ecsim/opem"><img src="https://img.shields.io/github/stars/ECSIM/opem.svg?style=social&label=Stars"></a></td> </tr> </table> <table> <tr> <td align="center">Branch</td> <td align="center">master</td> <td align="center">develop</td> </tr> <tr> <td align="center">CI</td> <td align="center"><img src="https://github.com/ECSIM/opem/actions/workflows/test.yml/badge.svg?branch=master"></td> <td align="center"><img src="https://github.com/ECSIM/opem/actions/workflows/test.yml/badge.svg?branch=develop"></td> </tr> </table> <table> <tr> <td align="center">Code Quality</td> <td align="center"><a href="https://www.codacy.com/gh/ECSIM/opem/dashboard?utm_source=github.com&utm_medium=referral&utm_content=ECSIM/opem&utm_campaign=Badge_Grade"><img src="https://app.codacy.com/project/badge/Grade/7e8bf5e11c0b455da3807ee4e493713e"/></a></td> <td align="center"><a href="https://www.codefactor.io/repository/github/ecsim/opem"><img src="https://www.codefactor.io/repository/github/ecsim/opem/badge" alt="CodeFactor" /></a></td> </tr> </table>Usage
Executable
- Open
CMD(Windows) orTerminal(UNIX) - Run
opemorpython -m opem(or runOPEM.exe) - Enter PEM cell parameters (or run standard test vectors)
-
Amphlett Static Model
<html> <table> <tr> <td align="center">Input</td> <td align="center">Description</td> <td align="center">Unit</td> </tr> <tr> <td align="center">T</td> <td align="center">Cell operation temperature</td> <td align="center">K</td> </tr> <tr> <td align="center">PH2</td> <td align="center">Partial pressure</td> <td align="center">atm</td> </tr> <tr> <td align="center">PO2</td> <td align="center">Partial pressure</td> <td align="center">atm</td> </tr> <tr> <td align="center">i-start</td> <td align="center">Cell operating current start point</td> <td align="center">A</td> </tr> <tr> <td align="center">i-step</td> <td align="center">Cell operating current step</td> <td align="center">A</td> </tr> <tr> <td align="center">i-stop</td> <td align="center">Cell operating current end point</td> <td align="center">A</td> </tr> <tr> <td align="center">A</td> <td align="center">Active area</td> <td align="center">cm^2</td> </tr> <tr> <td align="center">l</td> <td align="center">Membrane thickness</td> <td align="center">cm</td> </tr> <tr> <td align="center">lambda</td> <td align="center">An adjustable parameter with a min value of 14 and max value of 23</td> <td align="center">--</td> </tr> <tr> <td align="center">R(*Optional)</td> <td align="center">R-Electronic</td> <td align="center">ohm</td> </tr> <tr> <td align="center">JMax</td> <td align="center">Maximum current density</td> <td align="center">A/(cm^2)</td> </tr> <tr> <td align="center">N</td> <td align="center">Number of single cells</td> <td align="center">--</td> </tr> </table> </html> * For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Static/Amphlett.html">here</a> -
Larminie-Dicks Static Model
<html> <table> <tr> <td align="center">Input</td> <td align="center">Description</td> <td align="center">Unit</td> </tr> <tr> <td align="center">E0</td> <td align="center">Fuel cell reversible no loss voltage</td> <td align="center">V</td> </tr> <tr> <td align="center">A</td> <td align="center">The slope of the Tafel line</td> <td align="center">V</td> </tr> <tr> <td align="center">T</td> <td align="center">Cell operation temperature</td> <td align="center">K</td> </tr> <tr> <td align="center">i-start</td> <td align="center">Cell operating current start point</td> <td align="center">A</td> </tr> <tr> <td align="center">i-step</td> <td align="center">Cell operating current step</td> <td align="center">A</td> </tr> <tr> <td align="center">i-stop</td> <td align="center">Cell operating current end point</td> <td align="center">A</td> </tr> <tr> <td align="center">i_n</td> <td align="center">Internal current</td> <td align="center">A</td> </tr> <tr> <td align="center">i_0</td> <td align="center">Exchange current at which the overvoltage begins to move from zero </td> <td align="center">A</td> </tr> <tr> <td align="center">i_L</td> <td align="center">Limiting current</td> <td align="center">A</td> </tr> <tr> <td align="center">RM</td> <td align="center">The membrane and contact resistances</td> <td align="center">ohm</td> </tr> <tr> <td align="center">N</td> <td align="center">Number of single cells</td> <td align="center">--</td> </tr> </table> </html> * For more information about this model visit <a href="https://www.ecsim.site/opem/doc/Static/Larminie_Dicks.html">here</a> -
Chamberline-Kim Static Model
<html> <table> <tr> <td align="center" >Input</td> <td align="center">Description</td> <td align="center">Unit</td> </tr> <tr> <td align="center">E0</td> <td align="center">Open circuit voltage</td> <td align="center">V</td> </tr> <tr> <td align="center">b</td> <td align="center">Tafel's parameter for the oxygen reduction</td> <td align="center">V</td> </tr> <tr> <td align="center">R</td> <td align="center">Resistance</td> <td align="center">ohm.cm^2</td> </tr> <tr> <td align="center">i-start</td> <td align="center">Cell operating current start point</td> <td align="center">A</td> </tr> <tr> <td align="center">i-step</td> <td align="center">Cell operating current step</td> <td align="center">A</td> </tr> <tr> <td align="center">i-stop</td> <td align="center">Cell operating current end point</td> <td align="center">A</td> </tr> <tr> <td align=
-
Related Skills
node-connect
341.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
84.6kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
341.8kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
