A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

OPEM

A modeling tool for evaluating the performance of proton exchange membrane fuel cells.
https://github.com/ecsim/opem

Category: Energy Storage
Sub Category: Hydrogen

Keywords

chemistry dynamic-analysis electrochemistry fuel-cell opem pem physics physics-simulation python script simulation simulator static-analysis static-analyzer

Keywords from Contributors

measuring pypi mathematics transformations archives compose follow reporter robot breath

Last synced: about 12 hours ago
JSON representation

Repository metadata

OPEM (Open Source PEM Fuel Cell Simulation Tool)

README.md


Table of Contents

Overview

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

    2. Larminie-Dicks Static Model

    3. Chamberline-Kim Static Model

    4. Padulles Dynamic Model I

    5. Padulles Dynamic Model II

    6. Padulles-Hauer Dynamic Model

    7. Padulles-Amphlett Dynamic Model

    8. Chakraborty Dynamic Model

    • Find your reports in Model_Name folder

    Screen Record

Library

  1. Amphlett Static Model

    >>> 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)
    
    • For more information about this model visit here
  2. Larminie-Dicks Static Model

    >>> 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)
    
    • For more information about this model visit here
  3. Chamberline-Kim Static Model

    >>> 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)
    
    • For more information about this model visit here
  4. Padulles Dynamic Model I

    >>> 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)
    
    • For more information about this model visit here
  5. Padulles Dynamic Model II

    >>> 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)
    
    • For more information about this model visit here
  6. Padulles-Hauer Dynamic Model

    >>> 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)
    
    • For more information about this model visit here
  7. Padulles-Amphlett Dynamic Model

    >>> 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)
    
    • For more information about this model visit here
  8. Chakraborty Dynamic Model

    >>> 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)
    
    • 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
  • 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

  • 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].

You can also join our discord server

Outputs

  1. HTML
  2. CSV
  3. OPEM

Thanks

Reference

Cite

If you use OPEM in your research , please cite this paper :

Download OPEM.bib(BibTeX Format)

Show Your Support

Give a ⭐️ if this project helped you!

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 ;-) .


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 1,099
Total Committers: 11
Avg Commits per committer: 99.909
Development Distribution Score (DDS): 0.122

Commits in past year: 23
Committers in past year: 4
Avg Commits per committer in past year: 5.75
Development Distribution Score (DDS) in past year: 0.391

Name Email Commits
sepandhaghighi s****i@y****m 965
pyup-bot g****t@p****o 39
Mohammad Mahdi Rahimi m****6@G****m 31
dependabot-preview[bot] 2****] 20
sadrasabouri s****a@g****m 19
dependabot[bot] 4****] 16
Nicholas Nadeau, P.Eng., AVS n****u 4
Nicholas Nadeau n****u@g****m 2
Nicholas Nadeau n****s@r****m 1
Giovanni Rosa g****3@y****m 1
Kasra Askari 3****i 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 70
Total pull requests: 165
Average time to close issues: 3 months
Average time to close pull requests: 6 days
Total issue authors: 7
Total pull request authors: 11
Average comments per issue: 0.93
Average comments per pull request: 0.96
Merged pull request: 139
Bot issues: 0
Bot pull requests: 45

Past year issues: 1
Past year pull requests: 17
Past year average time to close issues: N/A
Past year average time to close pull requests: 1 day
Past year issue authors: 1
Past year pull request authors: 3
Past year average comments per issue: 0.0
Past year average comments per pull request: 1.29
Past year merged pull request: 15
Past year bot issues: 0
Past year bot pull requests: 7

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/ecsim/opem

Top Issue Authors

  • sepandhaghighi (48)
  • engnadeau (16)
  • DanWBR (2)
  • NGC2023 (1)
  • kasraaskari (1)
  • mahi97 (1)
  • eamanu (1)

Top Pull Request Authors

  • sepandhaghighi (53)
  • pyup-bot (49)
  • dependabot[bot] (25)
  • dependabot-preview[bot] (20)
  • mahi97 (6)
  • engnadeau (4)
  • sadrasabouri (3)
  • AHReccese (2)
  • fossabot (1)
  • codacy-badger (1)
  • grosa1 (1)

Top Issue Labels

  • enhancement (31)
  • bug (8)
  • document (7)
  • test (6)
  • good first issue (1)
  • support (1)
  • setup (1)

Top Pull Request Labels

  • dependencies (46)
  • document (20)
  • test (17)
  • enhancement (11)
  • minor (3)
  • bug (2)
  • release (2)
  • setup (2)
  • refactoring (2)
  • new model (1)
  • support (1)
  • python (1)

Package metadata

pypi.org: opem

Open Source PEM Cell Simulation Tool

  • Homepage: https://github.com/ecsim/opem
  • Documentation: https://opem.readthedocs.io/
  • Licenses: MIT
  • Latest release: 1.4 (published about 1 year ago)
  • Last Synced: 2025-04-25T14:01:40.385Z (1 day ago)
  • Versions: 14
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 696 Last month
  • Rankings:
    • Stargazers count: 5.723%
    • Forks count: 5.774%
    • Dependent packages count: 7.306%
    • Average: 12.347%
    • Downloads: 20.853%
    • Dependent repos count: 22.077%
  • Maintainers (1)

Dependencies

.github/workflows/publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
.github/workflows/test.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
docker/Dockerfile docker
  • ubuntu 16.04 build
dev-requirements.txt pypi
  • art ==5.2 development
  • bandit >=1.5.1 development
  • codecov >=2.0.15 development
  • notebook >=5.2.2 development
  • pydocstyle >=3.0.0 development
  • pytest >=5.1.0 development
  • pytest-cov >=2.6.1 development
  • requests ==2.26.0 development
  • setuptools >=40.8.3 development
  • vulture >=1.0 development
requirements.txt pypi
  • art >0.7
  • requests >=2.20.0
setup.py pypi

Score: 14.327443368572641