Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ECSIM/opem
OPEM (Open Source PEM Fuel Cell Simulation Tool)
https://github.com/ECSIM/opem
chemistry dynamic-analysis electrochemistry fuel-cell opem pem physics physics-simulation python script simulation simulator static-analysis static-analyzer
Last synced: about 1 month ago
JSON representation
OPEM (Open Source PEM Fuel Cell Simulation Tool)
- Host: GitHub
- URL: https://github.com/ECSIM/opem
- Owner: ECSIM
- License: mit
- Created: 2017-12-16T15:42:52.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-26T08:56:13.000Z (about 2 months ago)
- Last Synced: 2024-10-29T19:53:09.207Z (about 1 month ago)
- Topics: chemistry, dynamic-analysis, electrochemistry, fuel-cell, opem, pem, physics, physics-simulation, python, script, simulation, simulator, static-analysis, static-analyzer
- Language: Python
- Homepage: http://opem.ecsim.site
- Size: 17.8 MB
- Stars: 201
- Watchers: 12
- Forks: 58
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Authors: AUTHORS.md
Awesome Lists containing this project
- awesome-python-applications - Repo - exchange_membrane_fuel_cell). `(linux, windows, mac)` (<a id="tag-science" href="#tag-science">Science</a>)
- open-sustainable-technology - OPEM - A modeling tool for evaluating the performance of proton exchange membrane fuel cells. (Energy Storage / Hydrogen)
- awesome-robotic-tooling - opem - The Open-Source PEMFC Simulation Tool (OPEM) is a modeling tool for evaluating the performance of proton exchange membrane fuel cells. (Electronics and Mechanics / Version Control)
- awesome-python-applications - Repo - exchange_membrane_fuel_cell). `(linux, windows, mac)` (<a id="tag-science" href="#tag-science">Science</a>)
README
----------## Table of Contents
* [What is PEM?](http://physics.oregonstate.edu/~hetheriw/energy/topics/doc/electrochemistry/fc/basic/The_Polymer_Electrolyte_Fuel_Cell.htm)
* [Overview](https://github.com/ECSIM/opem#overview)
* [Installation](https://github.com/ECSIM/opem/blob/master/INSTALL.md)
* [Usage](https://github.com/ECSIM/opem#usage)
* [Executable](https://github.com/ECSIM/opem#executable)
* [Library](https://github.com/ECSIM/opem#library)
* [Telegram Bot](https://github.com/ECSIM/opem#telegram-bot)
* [Try OPEM in Your Browser!](https://github.com/ECSIM/opem#try-opem-in-your-browser)
* [MATLAB](https://github.com/ECSIM/opem/tree/master/MATLAB)
* [Issues & Bug Reports](https://github.com/ECSIM/opem#issues--bug-reports)
* [Contribution](https://github.com/ECSIM/opem/blob/master/.github/CONTRIBUTING.md)
* [Outputs](https://github.com/ECSIM/opem#outputs)
* [Thanks](https://github.com/ECSIM/opem#thanks)
* [Reference](https://github.com/ECSIM/opem#reference)
* [Cite](https://github.com/ECSIM/opem#cite)
* [Authors](https://github.com/ECSIM/opem/blob/master/AUTHORS.md)
* [License](https://github.com/ECSIM/opem/blob/master/LICENSE)
* [Show Your Support](https://github.com/ECSIM/opem#show-your-support)
* [Changelog](https://github.com/ECSIM/opem/blob/master/CHANGELOG.md)
* [Code of Conduct](https://github.com/ECSIM/opem/blob/master/.github/CODE_OF_CONDUCT.md)## Overview
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.
Fig1. OPEM Block Diagram
Open Hub
PyPI Counter
Github Stars
Branch
master
develop
CI
## Usage
### Executable
- Open `CMD` (Windows) or `Terminal` (UNIX)
- Run `opem` or `python -m opem` (or run `OPEM.exe`)
- Enter PEM cell parameters (or run standard test vectors)
1. Amphlett Static Model
Input
Description
Unit
T
Cell operation temperature
K
PH2
Partial pressure
atm
PO2
Partial pressure
atm
i-start
Cell operating current start point
A
i-step
Cell operating current step
A
i-stop
Cell operating current end point
A
A
Active area
cm^2
l
Membrane thickness
cm
lambda
An adjustable parameter with a min value of 14 and max value of 23
--
R(*Optional)
R-Electronic
ohm
JMax
Maximum current density
A/(cm^2)
N
Number of single cells
--
* For more information about this model visit here
2. Larminie-Dicks Static Model
Input
Description
Unit
E0
Fuel cell reversible no loss voltage
V
A
The slope of the Tafel line
V
T
Cell operation temperature
K
i-start
Cell operating current start point
A
i-step
Cell operating current step
A
i-stop
Cell operating current end point
A
i_n
Internal current
A
i_0
Exchange current at which the overvoltage begins to move from zero
A
i_L
Limiting current
A
RM
The membrane and contact resistances
ohm
N
Number of single cells
--
* For more information about this model visit here
3. Chamberline-Kim Static Model
Input
Description
Unit
E0
Open circuit voltage
V
b
Tafel's parameter for the oxygen reduction
V
R
Resistance
ohm.cm^2
i-start
Cell operating current start point
A
i-step
Cell operating current step
A
i-stop
Cell operating current end point
A
A
Active area
cm^2
m
Diffusion's parameters
V
n
Diffusion's parameters
(A^-1)(cm^2)
N
Number of single cells
--
* For more information about this model visit here
4. Padulles Dynamic Model I
Input
Description
Unit
E0
No load voltage
V
T
Fuel cell temperature
K
KH2
Hydrogen valve constant
kmol.s^(-1).atm^(-1)
KO2
Oxygen valve constant
kmol.s^(-1).atm^(-1)
tH2
Hydrogen time constant
s
tO2
Oxygen time constant
s
B
Activation voltage constant
V
C
Activation constant parameter
A^(-1)
Rint
Fuel cell internal resistance
ohm
rho
Hydrogen-Oxygen flow ratio
--
qH2
Molar flow of hydrogen
kmol/s
N0
Number of cells
--
i-start
Cell operating current start point
A
i-step
Cell operating current step
A
i-stop
Cell operating current end point
A
* For more information about this model visit here5. Padulles Dynamic Model II
Input
Description
Unit
E0
No load voltage
V
T
Fuel cell temperature
K
KH2
Hydrogen valve constant
kmol.s^(-1).atm^(-1)
KH2O
Water valve constant
kmol.s^(-1).atm^(-1)
KO2
Oxygen valve constant
kmol.s^(-1).atm^(-1)
tH2
Hydrogen time constant
s
tH2O
Water time constant
s
tO2
Oxygen time constant
s
B
Activation voltage constant
V
C
Activation constant parameter
A^(-1)
Rint
Fuel cell internal resistance
ohm
rho
Hydrogen-Oxygen flow ratio
--
qH2
Molar flow of hydrogen
kmol/s
N0
Number of cells
--
i-start
Cell operating current start point
A
i-step
Cell operating current step
A
i-stop
Cell operating current end point
A
* For more information about this model visit here
6. Padulles-Hauer Dynamic Model
Input
Description
Unit
E0
No load voltage
V
T
Fuel cell temperature
K
KH2
Hydrogen valve constant
kmol.s^(-1).atm^(-1)
KH2O
Water valve constant
kmol.s^(-1).atm^(-1)
KO2
Oxygen valve constant
kmol.s^(-1).atm^(-1)
tH2
Hydrogen time constant
s
tH2O
Water time constant
s
tO2
Oxygen time constant
s
t1
Reformer time constant
s
t2
Reformer time constant
s
B
Activation voltage constant
V
C
Activation constant parameter
A^(-1)
CV
Conversion factor
--
Rint
Fuel cell internal resistance
ohm
rho
Hydrogen-Oxygen flow ratio
--
qMethanol
Molar flow of methanol
kmol/s
N0
Number of cells
--
i-start
Cell operating current start point
A
i-step
Cell operating current step
A
i-stop
Cell operating current end point
A
* For more information about this model visit here
7. Padulles-Amphlett Dynamic Model
Input
Description
Unit
E0
No load voltage
V
T
Fuel cell temperature
K
KH2
Hydrogen valve constant
kmol.s^(-1).atm^(-1)
KH2O
Water valve constant
kmol.s^(-1).atm^(-1)
KO2
Oxygen valve constant
kmol.s^(-1).atm^(-1)
tH2
Hydrogen time constant
s
tH2O
Water time constant
s
tO2
Oxygen time constant
s
t1
Reformer time constant
s
t2
Reformer time constant
s
A
Active area
cm^2
l
Membrane thickness
cm
lambda
An adjustable parameter with a min value of 14 and max value of 23
--
R(*Optional)
R-Electronic
ohm
JMax
Maximum current density
A/(cm^2)
CV
Conversion factor
--
rho
Hydrogen-Oxygen flow ratio
--
qMethanol
Molar flow of methanol
kmol/s
N0
Number of cells
--
i-start
Cell operating current start point
A
i-step
Cell operating current step
A
i-stop
Cell operating current end point
A
* For more information about this model visit here
8. Chakraborty Dynamic Model
Input
Description
Unit
E0
No load voltage
V
T
Cell operation temperature
K
KH2
Hydrogen valve constant
kmol.s^(-1).atm^(-1)
KH2O
Water valve constant
kmol.s^(-1).atm^(-1)
KO2
Oxygen valve constant
kmol.s^(-1).atm^(-1)
rho
Hydrogen-Oxygen flow ratio
--
Rint
Fuel cell internal resistance
ohm
N0
Number of cells
--
u
Fuel utilization ratio
--
i-start
Cell operating current start point
A
i-step
Cell operating current step
A
i-stop
Cell operating current end point
A
* For more information about this model visit here
- Find your reports in `Model_Name` folder
#### Screen Record
### Library
1. Amphlett Static Model
```pycon
>>> from opem.Static.Amphlett import Static_Analysis
>>> Test_Vector={"T": 343.15,"PH2": 1,"PO2": 1,"i-start": 0,"i-stop": 75,"i-step": 0.1,"A": 50.6,"l": 0.0178,"lambda": 23,"N": 1,"R": 0,"JMax": 1.5,"Name": "Amphlett_Test"}
>>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
```
Key
Description
Type
Status
Simulation status
Bool
P
Power
List
I
Cell operating current
List
V
FC voltage
List
EFF
Efficiency
List
Ph
Thermal power
List
V0
Linear-Apx intercept
Float
K
Linear-Apx slope
Float
Eta_Active
Eta activation
List
Eta_Conc
Eta concentration
List
Eta_Ohmic
Eta ohmic
List
VE
Estimated FC voltage
List
- For more information about this model visit here
2. Larminie-Dicks Static Model
```pycon
>>> from opem.Static.Larminie_Dicks import Static_Analysis
>>> Test_Vector = {"A": 0.06,"E0": 1.178,"T": 328.15,"RM": 0.0018,"i_0": 0.00654,"i_L": 100.0,"i_n": 0.23,"N": 23,"i-start": 0.1,"i-stop": 98,"i-step": 0.1,"Name": "Larminiee_Test"}
>>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
```
Key
Description
Type
Status
Simulation status
Bool
P
Power
List
I
Cell operating current
List
V
FC voltage
List
EFF
Efficiency
List
Ph
Thermal power
List
V0
Linear-Apx intercept
Float
K
Linear-Apx slope
Float
VE
Estimated FC voltage
List
- For more information about this model visit here
3. Chamberline-Kim Static Model
```pycon
>>> from opem.Static.Chamberline_Kim import Static_Analysis
>>> Test_Vector = {"A": 50.0,"E0": 0.982,"b": 0.0689,"R": 0.328,"m": 0.000125,"n": 9.45,"N": 1,"i-start": 1,"i-stop": 42.5,"i-step": 0.1,"Name": "Chamberline_Test"}
>>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
```
Key
Description
Type
Status
Simulation status
Bool
P
Power
List
I
Cell operating current
List
V
FC voltage
List
EFF
Efficiency
List
Ph
Thermal power
List
V0
Linear-Apx intercept
Float
K
Linear-Apx slope
Float
VE
Estimated FC voltage
List
- For more information about this model visit here
4. Padulles Dynamic Model I
```pycon
>>> from opem.Dynamic.Padulles1 import Dynamic_Analysis
>>> Test_Vector = {"T": 343,"E0": 0.6,"N0": 88,"KO2": 0.0000211,"KH2": 0.0000422,"tH2": 3.37,"tO2": 6.74,"B": 0.04777,"C": 0.0136,"Rint": 0.00303,"rho": 1.168,"qH2": 0.0004,"i-start": 0,"i-stop": 100,"i-step": 0.1,"Name": "PadullesI_Test"}
>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
```
Key
Description
Type
Status
Simulation status
Bool
P
Power
List
I
Cell operating current
List
V
FC voltage
List
EFF
Efficiency
List
PO2
Partial pressure
List
PH2
Partial pressure
List
Ph
Thermal power
List
V0
Linear-Apx intercept
Float
K
Linear-Apx slope
Float
VE
Estimated FC voltage
List
- For more information about this model visit here
5. Padulles Dynamic Model II
```pycon
>>> from opem.Dynamic.Padulles2 import Dynamic_Analysis
>>> Test_Vector = {"T": 343,"E0": 0.6,"N0": 5,"KO2": 0.0000211,"KH2": 0.0000422,"KH2O": 0.000007716,"tH2": 3.37,"tO2": 6.74,"tH2O": 18.418,"B": 0.04777,"C": 0.0136,"Rint": 0.00303,"rho": 1.168,"qH2": 0.0004,"i-start": 0.1,"i-stop": 100,"i-step": 0.1,"Name": "Padulles2_Test"}
>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
```
Key
Description
Type
Status
Simulation status
Bool
P
Power
List
I
Cell operating current
List
V
FC voltage
List
EFF
Efficiency
List
PO2
Partial pressure
List
PH2
Partial pressure
List
PH2O
Partial pressure
List
Ph
Thermal power
List
V0
Linear-Apx intercept
Float
K
Linear-Apx slope
Float
VE
Estimated FC voltage
List
- For more information about this model visit here
6. Padulles-Hauer Dynamic Model
```pycon
>>> from opem.Dynamic.Padulles_Hauer import Dynamic_Analysis
>>> Test_Vector = {"T": 343,"E0": 0.6,"N0": 5,"KO2": 0.0000211,"KH2": 0.0000422,"KH2O": 0.000007716,"tH2": 3.37,"tO2": 6.74,"t1": 2,"t2": 2,"tH2O": 18.418,"B": 0.04777,"C": 0.0136,"Rint": 0.00303,"rho": 1.168,"qMethanol": 0.0002,"CV": 2,"i-start": 0.1,"i-stop": 100,"i-step": 0.1,"Name": "Padulles_Hauer_Test"}
>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
```
Key
Description
Type
Status
Simulation status
Bool
P
Power
List
I
Cell operating current
List
V
FC voltage
List
EFF
Efficiency
List
PO2
Partial pressure
List
PH2
Partial pressure
List
PH2O
Partial pressure
List
Ph
Thermal power
List
V0
Linear-Apx intercept
Float
K
Linear-Apx slope
Float
VE
Estimated FC voltage
List
- For more information about this model visit here
7. Padulles-Amphlett Dynamic Model
```pycon
>>> from opem.Dynamic.Padulles_Amphlett import Dynamic_Analysis
>>> Test_Vector = {"A": 50.6,"l": 0.0178,"lambda": 23,"JMax": 1.5,"T": 343,"N0": 5,"KO2": 0.0000211,"KH2": 0.0000422,"KH2O": 0.000007716,"tH2": 3.37,"tO2": 6.74,"t1": 2,"t2": 2,"tH2O": 18.418,"rho": 1.168,"qMethanol": 0.0002,"CV": 2,"i-start": 0.1,"i-stop": 75,"i-step": 0.1,"Name": "Padulles_Amphlett_Test"}
>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
```
Key
Description
Type
Status
Simulation status
Bool
P
Power
List
I
Cell operating current
List
V
FC voltage
List
EFF
Efficiency
List
PO2
Partial pressure
List
PH2
Partial pressure
List
PH2O
Partial pressure
List
Ph
Thermal power
List
V0
Linear-Apx intercept
Float
K
Linear-Apx slope
Float
Eta_Active
Eta activation
List
Eta_Conc
Eta concentration
List
Eta_Ohmic
Eta ohmic
List
VE
Estimated FC voltage
List
- For more information about this model visit here8. Chakraborty Dynamic Model
```pycon
>>> from opem.Dynamic.Chakraborty import Dynamic_Analysis
>>> Test_Vector = {"T": 1273,"E0": 0.6,"u":0.8,"N0": 1,"R": 3.28125 * 10**(-3),"KH2O": 0.000281,"KH2": 0.000843,"KO2": 0.00252,"rho": 1.145,"i-start": 0.1,"i-stop": 300,"i-step": 0.1,"Name": "Chakraborty_Test"}
>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)
```
Key
Description
Type
Status
Simulation status
Bool
P
Power
List
I
Cell operating current
List
V
FC voltage
List
EFF
Efficiency
List
PO2
Partial pressure
List
PH2
Partial pressure
List
PH2O
Partial pressure
List
Ph
Thermal power
List
Nernst Gain
Nernst Gain
List
Ohmic Loss
Ohmic Loss
List
V0
Linear-Apx intercept
Float
K
Linear-Apx slope
Float
VE
Estimated FC voltage
List
- For more information about this model visit here#### Parameters
1. `TestMode` : Active test mode and get/return data as `dict`, (Default : `False`)
2. `ReportMode` : Generate reports(`.csv`,`.opem`,`.html`) and print result in console, (Default : `True`)
3. `PrintMode` : Control printing in console, (Default : `True`)
4. `Folder` : Reports folder, (Default : `os.getcwd()`)
#### Note
- Return type : `dict`### Telegram Bot
- Send `/start` command to [OPEM BOT](https://t.me/opembot)
- Choose models from menu
- Send your test vector according to the template
- Download your results### Try OPEM in Your Browser!
OPEM can be used online in interactive Jupyter Notebooks via the Binder service! Try it out now! :[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ECSIM/opem/master)
- Check `.ipynb` files in `Documents` folder
- Edit and execute each part of the notes, step by step from the top panel by run button
- For executing a complete simulation, you can edit `Test_Vector` in `Full Run` section
## Issues & Bug Reports
Just fill an issue and describe it. We'll check it ASAP!
or send an email to [[email protected]](mailto:[email protected] "[email protected]").You can also join our discord server
## Outputs
1. [HTML](http://www.ecsim.site/opem/outputs/test.html)
2. [CSV](https://github.com/ECSIM/opem/blob/master/otherfile/test.csv)
3. [OPEM](https://github.com/ECSIM/opem/blob/master/otherfile/test.opem)## Thanks
* [Chart.js](https://github.com/chartjs/Chart.js "Chartjs")
* [PyInstaller](https://github.com/pyinstaller/pyinstaller)
* [Draw.io](https://www.draw.io/)
* [Zahra Mobasher](https://www.instagram.com/littleblackoyster/?hl=en) (Logo design)## Reference
1- J. C. Amphlett, R. M. Baumert, R. F. Mann, B. A. Peppley, and P. R. Roberge. 1995. "Performance Modeling of the Ballard Mark IV Solid Polymer Electrolyte Fuel Cell." J. Electrochem. Soc. (The Electrochemical Society, Inc.) 142 (1): 9-15. doi: 10.1149/1.2043959.2- Jeferson M. Correa, Felix A. Farret, Vladimir A. Popov, Marcelo G. Simoes. 2005. "Sensitivity Analysis of the Modeling Parameters Used in Simulation of Proton Exchange Membrane Fuel Cells." IEEE Transactions on Energy Conversion (IEEE) 20 (1): 211-218. doi:10.1109/TEC.2004.842382.3- Junbom Kim, Seong-Min Lee, Supramaniam Srinivasan, Charles E. Chamberlin. 1995. "Modeling of Proton Exchange Membrane Fuel Cell Performance with an Empirical Equation." Journal of The Electrochemical Society (The Electrochemical Society) 142 (8): 2670-2674. doi:10.1149/1.2050072.
4- I. Sadli, P. Thounthong, J.-P. Martin, S. Rael, B. Davat. 2006. "Behaviour of a PEMFC supplying a low voltage static converter." Journal of Power Sources (Elsevier) 156: 119–125. doi:10.1016/j.jpowsour.2005.08.021.
5- J. Padulles, G.W. Ault, J.R. McDonald. 2000. "An integrated SOFC plant dynamic model for power systems simulation." Journal of Power Sources (Elsevier) 86 (1-2): 495-500. doi:10.1016/S0378-7753(99)00430-9.
6- Hauer, K.-H. 2001. "Analysis tool for fuel cell vehicle hardware and software (controls) with an application to fuel economy comparisons of alternative system designs." Ph.D. dissertation, Transportation Technology
and Policy, University of California Davis.
7- A. Saadi, M. Becherif, A. Aboubou, M.Y. Ayad. 2013. "Comparison of proton exchange membrane fuel cell static models." Renewable Energy (Elsevier) 56: 64-71. doi:dx.doi.org/10.1016/j.renene.2012.10.012.
8- Diego Feroldi, Marta Basualdo. 2012. "Description of PEM Fuel Cells System." Green Energy and Technology (Springer) 49-72. doi:10.1007/978-1-84996-184-4_2
9- Gottesfeld, Shimshon. n.d. The Polymer Electrolyte Fuel Cell: Materials Issues in a Hydrogen Fueled Power Source.
http://physics.oregonstate.edu/~hetheriw/energy/topics/doc/electrochemistry/fc/basic/The_Polymer_Electrolyte_Fuel_Cell.htm
10- Mohamed Becherif, Aïcha Saadi, Daniel Hissel, Abdennacer Aboubou, Mohamed Yacine Ayad. 2011.
"Static and dynamic proton exchange membrane fuel cell models." Journal of Hydrocarbons Mines and Environmental Research 2 (1)
11- Larminie, J., Dicks, A., & McDonald, M. S. 2003. Fuel cell systems explained (Vol. 2, pp. 207-225). Chichester, UK: J. Wiley. doi: 10.1002/9781118706992.
12- Rho, Y. W., Srinivasan, S., & Kho, Y. T. 1994. ''Mass transport phenomena in proton exchange membrane fuel cells using o 2/he, o 2/ar, and o 2/n 2 mixtures ii. Theoretical analysis.'' Journal of the Electrochemical Society, 141(8), 2089-2096. doi: 10.1149/1.2055066.
13- U. Chakraborty, A New Model for Constant Fuel Utilization and Constant Fuel Flow in Fuel Cells, Appl. Sci. 9 (2019) 1066. https://doi.org/10.3390/app9061066.## Cite
If you use OPEM in your research , please cite this paper :
@article{Haghighi2018,
doi = {10.21105/joss.00676},
url = {https://doi.org/10.21105/joss.00676},
year = {2018},
month = {jul},
publisher = {The Open Journal},
volume = {3},
number = {27},
pages = {676},
author = {Sepand Haghighi and Kasra Askari and Sarmin Hamidi and Mohammad Mahdi Rahimi},
title = {{OPEM} : Open Source {PEM} Cell Simulation Tool},
journal = {Journal of Open Source Software}
}Download [OPEM.bib](http://www.ecsim.site/opem/OPEM.bib)(BibTeX Format)
## Show Your Support
Star This Repo
Give a ⭐️ if this project helped you!
Donate to Our Project
If you do like our project and we hope that you do, can you please support us? Our project is not and is never going to be working for profit. We need the money just so we can continue doing what we do ;-) .