{ "info": { "author": "Sepand Haghighi,Kasra Askari,Sarmin Hamidi,Mohammad Mahdi Rahimi", "author_email": "opem@ecsim.ir", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Chemistry", "Topic :: Scientific/Engineering :: Physics" ], "description": "
\n\n
\n\"built\n\n \n\n\"PyPI\n\n\n\n
\n\t\n----------\t\t\t\t\n\n## Table of contents\n * [What is PEM?](http://physics.oregonstate.edu/~hetheriw/energy/topics/doc/electrochemistry/fc/basic/The_Polymer_Electrolyte_Fuel_Cell.htm)\t\t\t\t\t\n * [Overview](https://github.com/ECSIM/opem#overview)\n * [Installation](https://github.com/ECSIM/opem/blob/master/INSTALL.md)\n * [Usage](https://github.com/ECSIM/opem#usage)\n \t\t* [Executable](https://github.com/ECSIM/opem#executable)\n \t\t* [Library](https://github.com/ECSIM/opem#library)\t\n \t\t* [Telegram Bot](https://github.com/ECSIM/opem#telegram-bot)\n \t\t* [Try OPEM in Your Browser!](https://github.com/ECSIM/opem#try-opem-in-your-browser)\n \t\t* [MATLAB](https://github.com/ECSIM/opem/tree/master/MATLAB)\n * [Issues & Bug Reports](https://github.com/ECSIM/opem#issues--bug-reports)\n * [Contribution](https://github.com/ECSIM/opem/blob/master/.github/CONTRIBUTING.md)\n * [Todo](https://github.com/ECSIM/opem#todo)\n * [Outputs](https://github.com/ECSIM/opem#outputs)\n * [Dependencies](https://github.com/ECSIM/opem#dependencies)\n * [Thanks](https://github.com/ECSIM/opem#thanks)\n * [Reference](https://github.com/ECSIM/opem#reference)\n * [Cite](https://github.com/ECSIM/opem#cite)\n * [Authors](https://github.com/ECSIM/opem/blob/master/AUTHORS.md)\n * [License](https://github.com/ECSIM/opem#license)\n * [Donate](https://github.com/ECSIM/opem#donate-to-our-project)\n * [Changelog](https://github.com/ECSIM/opem/blob/master/CHANGELOG.md)\n * [Code of Conduct](https://github.com/ECSIM/opem/blob/master/.github/CODE_OF_CONDUCT.md)\n\n## Overview\t\t\n\n\n

\nModeling 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.\n

\n\n
\n\n\n

Fig1. OPEM Block Diagram

\n\n\n
\n\n\n\t \n\t\t\n\t\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n
Open Hub
PyPI Counter
Github Stars
\n\n\n\t \n\t\t\n\t\t\t\n\t\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n
Branchmasterdevelop
Travis
AppVeyor
\n\n\n\t \n\t\t\n\t\t\t\n\t\t\n\t\n
Code Quality\"CodeFactor\"
\n\n\n## Usage\n\n### Executable\n- Open `CMD` (Windows) or `Terminal` (UNIX)\n- Run `python -m opem` or `python3 -m opem` (or run `OPEM.exe`)\n- Enter PEM cell parameters (or run standard test vectors)\n\t1. Amphlett Static Model\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t
InputDescriptionUnit
TCell operation temperatureK
PH2Partial pressureatm
PO2Partial pressureatm
i-startCell operating current start pointA
i-stepCell operating current stepA
i-stopCell operating current end pointA
AActive areacm^2
lMembrane thicknesscm
lambdaAn adjustable parameter with a min value of 14 and max value of 23--
R(*Optional)R-Electronicohm
BAn empirical constant depending on the cell and its operation state (Tafel slope)V
JMaxMaximum current densityA/(cm^2)
NNumber of single cells--
\n\t\t\n\t\t* For more information about this model visit here\n\t2. Larminie-Dicks Static Model\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t
InputDescriptionUnit
E0Fuel cell reversible no loss voltageV
AThe slope of the Tafel lineV
BConstant in the mass transfer termV
i-startCell operating current start pointA
i-stepCell operating current stepA
i-stopCell operating current end pointA
i_nInternal currentA
i_0Exchange current at which the overvoltage begins to move from zero\tA
i_LLimiting currentA
RMThe membrane and contact resistancesohm
NNumber of single cells--
\n\t\t\n\t\t* For more information about this model visit here\n\t3. Chamberline-Kim Static Model\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t
InputDescriptionUnit
E0Open circuit voltageV
bTafel's parameter for the oxygen reductionV
RResistanceohm.cm^2
i-startCell operating current start pointA
i-stepCell operating current stepA
i-stopCell operating current end pointA
AActive areacm^2
mDiffusion's parametersV
nDiffusion's parameters(A^-1)(cm^2)
NNumber of single cells--
\n\t\t\n\t\t* For more information about this model visit here\n\t4. Padulles Dynamic Model I\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t
InputDescriptionUnit
E0No load voltageV
TFuel cell temperatureK
KH2Hydrogen valve constantkmol.s^(-1).atm^(-1)
KO2Oxygen valve constantkmol.s^(-1).atm^(-1)
tH2Hydrogen time constants
tO2Oxygen time constants
BActivation voltage constantV
CActivation constant parameterA^(-1)
RintFuel cell internal resistanceohm
rhoHydrogen-Oxygen flow ratio--
qH2Molar flow of hydrogenkmol/s
N0Number of cells--
i-startCell operating current start pointA
i-stepCell operating current stepA
i-stopCell operating current end pointA
\n\t\t\n\t\t* For more information about this model visit here\t\t\t\t\n\n\t5. Padulles Dynamic Model II\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t
InputDescriptionUnit
E0No load voltageV
TFuel cell temperatureK
KH2Hydrogen valve constantkmol.s^(-1).atm^(-1)
KH2OWater valve constantkmol.s^(-1).atm^(-1)
KO2Oxygen valve constantkmol.s^(-1).atm^(-1)
tH2Hydrogen time constants
tH2OWater time constants
tO2Oxygen time constants
BActivation voltage constantV
CActivation constant parameterA^(-1)
RintFuel cell internal resistanceohm
rhoHydrogen-Oxygen flow ratio--
qH2Molar flow of hydrogenkmol/s
N0Number of cells--
i-startCell operating current start pointA
i-stepCell operating current stepA
i-stopCell operating current end pointA
\n\t\t\n\t\t* For more information about this model visit here\n\t6. Padulles-Hauer Dynamic Model\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t
InputDescriptionUnit
E0No load voltageV
TFuel cell temperatureK
KH2Hydrogen valve constantkmol.s^(-1).atm^(-1)
KH2OWater valve constantkmol.s^(-1).atm^(-1)
KO2Oxygen valve constantkmol.s^(-1).atm^(-1)
tH2Hydrogen time constants
tH2OWater time constants
tO2Oxygen time constants
t1Reformer time constants
t2Reformer time constants
BActivation voltage constantV
CActivation constant parameterA^(-1)
CVConversion factor--
RintFuel cell internal resistanceohm
rhoHydrogen-Oxygen flow ratio--
qMethanolMolar flow of methanolkmol/s
N0Number of cells--
i-startCell operating current start pointA
i-stepCell operating current stepA
i-stopCell operating current end pointA
\n\t\t\n\t\t* For more information about this model visit here\n\t7. Padulles-Amphlett Dynamic Model\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t
InputDescriptionUnit
E0No load voltageV
TFuel cell temperatureK
KH2Hydrogen valve constantkmol.s^(-1).atm^(-1)
KH2OWater valve constantkmol.s^(-1).atm^(-1)
KO2Oxygen valve constantkmol.s^(-1).atm^(-1)
tH2Hydrogen time constants
tH2OWater time constants
tO2Oxygen time constants
t1Reformer time constants
t2Reformer time constants
AActive areacm^2
lMembrane thicknesscm
lambdaAn adjustable parameter with a min value of 14 and max value of 23--
R(*Optional)R-Electronicohm
BAn empirical constant depending on the cell and its operation state (Tafel slope)V
JMaxMaximum current densityA/(cm^2)
CVConversion factor--
rhoHydrogen-Oxygen flow ratio--
qMethanolMolar flow of methanolkmol/s
N0Number of cells--
i-startCell operating current start pointA
i-stepCell operating current stepA
i-stopCell operating current end pointA
\n\t\t\n\t\t* For more information about this model visit here\n\t\t\n\t\t\n\t- Find your reports in `Model_Name` folder\t\t\t\n\t\n\t#### Screen Record\n\t
\n\t\t\n\t\t

Screen Record

\n\t
\n\n### Library\t\t\t\t\n\n\n1. Amphlett Static Model\n\t```pycon\n\t>>> from opem.Static.Amphlett import Static_Analysis\n\t>>> 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,\"B\": 0.016,\"Name\": \"Amphlett_Test\"}\n\t>>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)\n\t ```\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
Eta_ActiveEta activationList
Eta_ConcEta concentrationList
Eta_OhmicEta ohmicList
VEEstimated FC voltageList
\n\t\t\n\t\t\n\t- For more information about this model visit here\n2. Larminie-Dicks Static Model\n\t```pycon\n\t>>> from opem.Static.Larminie_Dicks import Static_Analysis\n\t>>> Test_Vector = {\"A\": 0.0587,\"E0\": 1.178,\"B\": 0.0517,\"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\"}\n\t>>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)\n\t ```\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
\n\t\t\t\n\t\t\t\n\t- For more information about this model visit here\n3. Chamberline-Kim Static Model\n\t```pycon\n\t>>> from opem.Static.Chamberline_Kim import Static_Analysis\n\t>>> 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\"}\n\t>>> data=Static_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)\n\t```\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
\n\t\t\n\t\t\t\n\t- For more information about this model visit here\n4. Padulles Dynamic Model I\n\t```pycon\n\t>>> from opem.Dynamic.Padulles1 import Dynamic_Analysis\n\t>>> 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\"}\n\t>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)\n\t```\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
\n\t\t\n\t\n\t- For more information about this model visit here\n5. Padulles Dynamic Model II\n\t```pycon\n\t>>> from opem.Dynamic.Padulles2 import Dynamic_Analysis\n\t>>> 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\"}\n\t>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)\n\t```\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
\n\t\t\n\t\t\t\t\n\t- For more information about this model visit here\n6. Padulles-Hauer Dynamic Model\n\t```pycon\n\t>>> from opem.Dynamic.Padulles_Hauer import Dynamic_Analysis\n\t>>> 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\"}\n\t>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)\n\t```\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
VEEstimated FC voltageList
\n\t\t\n\t\t\t\n\t- For more information about this model visit here\n7. Padulles-Amphlett Dynamic Model\n\t```pycon\n\t>>> from opem.Dynamic.Padulles_Amphlett import Dynamic_Analysis\n\t>>> 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,\"B\": 0.016,\"rho\": 1.168,\"qMethanol\": 0.0002,\"CV\": 2,\"i-start\": 0.1,\"i-stop\": 75,\"i-step\": 0.1,\"Name\": \"Padulles_Amphlett_Test\"}\n\t>>> data=Dynamic_Analysis(InputMethod=Test_Vector,TestMode=True,PrintMode=False,ReportMode=False)\n\t```\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
KeyDescriptionType
StatusSimulation statusBool
PPowerList
ICell operating currentList
VFC voltageList
EFFEfficiencyList
PO2Partial pressureList
PH2Partial pressureList
PH2OPartial pressureList
PhThermal powerList
V0Linear-Apx interceptFloat
KLinear-Apx slopeFloat
Eta_ActiveEta activationList
Eta_ConcEta concentrationList
Eta_OhmicEta ohmicList
VEEstimated FC voltageList
\n\t\t\n\t\t\t\t\t\t\t\t\t\n\t- For more information about this model visit here\n\n\t#### Modes\t\n\n\t1. `TestMode` : Active test mode and get/return data as `dict`, (Default : `False`)\n\t2. `ReportMode` : Generate reports(`.csv`,`.opem`,`.html`) and print result in console, (Default : `True`)\n\t3. `PrintMode` : Control printing in console, (Default : `True`)\n\t\n\t#### Note\n\t\n\t- Return type : `dict`\n\n\n### Telegram Bot\n- Send `/start` command to [OPEM BOT](https://t.me/opembot)\n- Choose models from menu\n- Send your test vector according to the template\n- Download your results\n\n\n### Try OPEM in Your Browser!\nOPEM can be used online in interactive Jupyter Notebooks via the Binder service! Try it out now! :\t\n\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ECSIM/opem/master)\n\n- Check `.ipynb` files in `Documents` folder\n- Edit and execute each part of the notes, step by step from the top panel by run button\n- For executing a complete simulation, you can edit `Test_Vector` in `Full Run` section\n\t\t\n\n## Issues & Bug Reports\t\t\t\n\nJust fill an issue and describe it. We'll check it ASAP!\t\t\t\t\t\t\t\nor send an email to [opem@ecsim.ir](mailto:opem@ecsim.ir \"opem@ecsim.ir\"). \n\nGitter is another option :\t\t\t\t\n\n[![Gitter](https://badges.gitter.im/ECSIM/opem.svg)](https://gitter.im/ECSIM/opem?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)\n\n\n## Todo\t\t\n\n- [x] Static Analysis\n - [x] Amphlett Static Model\n \t- [x] Nernst Voltage\n \t- [x] PEMFC losses model\n \t- [x] Power of PEMFC\n \t- [x] Efficiency of PEMFC\n - [x] Larminie-Dicks Static Model\n \t- [x] PEMFC losses model\n \t- [x] Power of PEMFC\n \t- [x] Efficiency of PEMFC\n - [x] Chamberline-Kim Static Model\n \t- [x] PEMFC losses model\n \t- [x] Power of PEMFC\n \t- [x] Efficiency of PEMFC\n- [x] Flat Output\n - [x] Simulation Result\n - [X] CSV File\n - [x] HTML\n- [x] GUI\n - [x] Plot Graphs\n - [x] Input/Output\n- [x] Dynamic Analysis\n - [x] Padulles Dynamic Model I\n - [x] Nernst Voltage\n \t- [x] Voltage of PEMFC\n \t- [x] Power of PEMFC\n \t- [x] Efficiency of PEMFC\n - [x] Padulles Dynamic Model II\n - [x] Nernst Voltage\n \t- [x] Voltage of PEMFC\n \t- [x] Power of PEMFC\n \t- [x] Efficiency of PEMFC\n - [x] Padulles-Hauer Dynamic Model\n - [x] Nernst Voltage\n \t- [x] Voltage of PEMFC\n \t- [x] Power of PEMFC\n \t- [x] Efficiency of PEMFC\n - [x] Padulles-Amphlett Dynamic Model\n - [x] Nernst Voltage\n \t- [x] Voltage of PEMFC\n \t- [x] Power of PEMFC\n \t- [x] Efficiency of PEMFC\n- [x] MATLAB\n\n## Outputs\t\n\n1. [HTML](http://www.ecsim.ir/opem/outputs/test.html)\n2. [CSV](https://github.com/ECSIM/opem/blob/master/otherfile/test.csv)\n3. [OPEM](https://github.com/ECSIM/opem/blob/master/otherfile/test.opem)\t\n\n## Dependencies\n\n\n\t \n\t\t\t\n\t\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n
masterdevelop
\"Requirements\"Requirements
\n\n\n## Thanks\n\n* [Chart.js](https://github.com/chartjs/Chart.js \"Chartjs\")\n* [PyInstaller](https://github.com/pyinstaller/pyinstaller)\n* [Draw.io](https://www.draw.io/)\n\n## Reference\n\n
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.
\n\n
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.
\n\n\n
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.
\n\n
\n4- 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\u2013125. doi:10.1016/j.jpowsour.2005.08.021.\n
\n\n
\n5- 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.\n
\n\t\t\t\t\t\t\n
\n6- 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\nand Policy, University of California Davis.\n
\n\n
\n7- 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.\n
\n\n
\n8- 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\n
\n\n
\n9- Gottesfeld, Shimshon. n.d. The Polymer Electrolyte Fuel Cell: Materials Issues in a Hydrogen Fueled Power Source.\n http://physics.oregonstate.edu/~hetheriw/energy/topics/doc/electrochemistry/fc/basic/The_Polymer_Electrolyte_Fuel_Cell.htm\n
\n\n
\n10- Mohamed Becherif, A\u00efcha Saadi, Daniel Hissel, Abdennacer Aboubou, Mohamed Yacine Ayad. 2011.\n \"Static and dynamic proton exchange membrane fuel cell models.\" Journal of Hydrocarbons Mines and Environmental Research 2 (1)\n
\n\n## Cite\n\nIf you use OPEM in your research , please cite this paper :\n\n
\n\n@article{Haghighi2018,\n  doi = {10.21105/joss.00676},\n  url = {https://doi.org/10.21105/joss.00676},\n  year  = {2018},\n  month = {jul},\n  publisher = {The Open Journal},\n  volume = {3},\n  number = {27},\n  pages = {676},\n  author = {Sepand Haghighi and Kasra Askari and Sarmin Hamidi and Mohammad Mahdi Rahimi},\n  title = {{OPEM} : Open Source {PEM} Cell Simulation Tool},\n  journal = {Journal of Open Source Software}\n}\n\n\n
\n\nDownload [OPEM.bib](http://www.ecsim.ir/opem/OPEM.bib)(BibTeX Format)\n\n\n\n\t \n\t\t\n\t\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n
JOSS\"DOI
Zenodo\"DOI\"
Researchgate
\t\t\t\t\t\t\t\t\t\n\n\n\n\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FECSIM%2Fopem.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FECSIM%2Fopem?ref=badge_large)\n\n\n## Donate to our project\n\t\t\t\t\t\t\t\t\n

Bitcoin :

\t\t\t\t\t\n\n```12Xm1qL4MXYWiY9sRMoa3VpfTfw6su3vNq```\t\t\t\n\n\n\n

Payping (For Iranian citizens) :

\n\n\t\n\n\n

Say Thanks!

\n\n\n\n# Changelog\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)\nand this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n## [1.1] - 2019-07-05\n### Added\n- MATLAB examples\n### Changed\n- Menu updated\n- Test system modified\n- Docstrings modified\n- Drop Python 3.4 support\n- `description_control` function modified\n- `version_check.py` modified\n- `README.md` modified\n- Padulles-Amphlett model import bug fixed\n- `dev-requirements.txt` modified\n- Website switched to HTTPS\n## [1.0] - 2019-03-01\n### Added\n- Interactive notebooks section\n- `version_check.py`\n- `CODE_OF_CONDUCT.md`\n- `ISSUE_TEMPLATE.md`\n- `PULL_REQUEST_TEMPLATE.md`\n- `build_exe.bat`\n- `build_unix.sh`\n- Anaconda cloud package\n\n### Changed\n- Document modified\n- Test system modified\n- `README.md` modified\n- `dev-requirements.txt` modified\n- `requirements.txt` modified\n- `CONTRIBUTING.md` modified\n- `linear_plot` function bug fixed\n- `INSTALL.md` modified\n\n\n## [0.9] - 2018-07-14\n### Added\n- JOSS paper\n\n### Changed\n- Test system updated\n- `setup.py` file modified\n- Exceptions modified\n\n### Removed\n- `PEM.md`\n\n## [0.8] - 2018-04-10\n### Added\n- Overall parameters\n- Linear approximation\n- Thermal power parameter\n- Efficiency vs I plot\n- PH2 vs I plot\n- PO2 vs I plot\n- Power vs Efficiency plot\n- Loss vs I plot\n- Power-Thermal vs I plot\n- macOS version\n\n### Changed\n- Simulation error response\n\n## [0.7] - 2018-03-17\n### Added\n- Standard test vectors\n- Model description\n- Help page\n- Warning system\n- System block diagram\n\n### Changed\n- HTML report layout\n\n## [0.6] - 2018-03-1\n### Added\n- Padulles-Amphlett dynamic model\n- `check_update` function\n- Webpage document section\n\n### Changed\n- `Get_Input` function default params\n- Exe-File incompatibility fixed\n\n\n## [0.5] - 2018-02-16\n### Added\n- Padulles-Hauer dynamic model\n- Simulation name\n- Interactive HTML report\n### Changed\n- qH2O and qH2 in Padulles dynamic model 2 merged\n- `Static_Analysis` function output\n- `Dynamic_Analysis` function output\n- `ReportMode` & `PrintMode` flags\n\n## [0.4] - 2018-02-06\n### Added\n- Test case of Padulles model 2\n- Padulles dynamic model 2\n\n\n### Changed\n- Travis and Appveyor configs\n- Jupyter notebook documentation\n\n### Removed\n- RHO in Larmninee model\n\n## [0.3] - 2018-01-31\n### Added\n- Padulles dynamic model 1\n- GUI folder\n\n\n### Changed\n- Test cases for static models\n- Padulles refactored\n- Jupyter notebook Padulles\n\n## [0.2] - 2018-01-05\n### Added\n- Test case and CI\n- Jupyter notebook and documentation\n- Exe-Version\n- Badges\n- Larminie-Dicks static model\n- Chamberline-Kim static model\n- pyqt5 to requirments\n\n### Removed\n- python2.7 setup for pyqt\n\n### Changed\n - Style to PEP8\n - Stack power\n\n## [0.1] - 2017-12-25\n### Added\n- `Static_Analyze` prototype\n- Amphlett analyze\n- CSV output files\n- Documents and `README.md`\n\n[Unreleased]: https://github.com/ECSIM/opem/compare/v1.1...develop\n[1.1]: https://github.com/ECSIM/opem/compare/v1.0...v1.1\n[1.0]: https://github.com/ECSIM/opem/compare/v0.9...v1.0\n[0.9]: https://github.com/ECSIM/opem/compare/v0.8...v0.9\n[0.8]: https://github.com/ECSIM/opem/compare/v0.7...v0.8\n[0.7]: https://github.com/ECSIM/opem/compare/v0.6...v0.7\n[0.6]: https://github.com/ECSIM/opem/compare/v0.5...v0.6\n[0.5]: https://github.com/ECSIM/opem/compare/v0.4...v0.5\n[0.4]: https://github.com/ECSIM/opem/compare/v0.3...v0.4\n[0.3]: https://github.com/ECSIM/opem/compare/v0.2...v0.3\n[0.2]: https://github.com/ECSIM/opem/compare/v0.1...v0.2\n[0.1]: https://github.com/ECSIM/opem/compare/1e238cd...v0.1", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/ecsim/opem/tarball/v1.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ecsim/opem", "keywords": "OPEM PEM FC CELL Fuel-Cell Chemistry", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "opem", "package_url": "https://pypi.org/project/opem/", "platform": "any", "project_url": "https://pypi.org/project/opem/", "project_urls": { "Download": "https://github.com/ecsim/opem/tarball/v1.1", "Homepage": "https://github.com/ecsim/opem", "Say Thanks!": "https://saythanks.io/to/ecsim", "Source": "https://github.com/ecsim/opem", "Webpage": "http://opem.ecsim.ir" }, "release_url": "https://pypi.org/project/opem/1.1/", "requires_dist": null, "requires_python": ">=3.5", "summary": "Open Source PEM Cell Simulation Tool", "version": "1.1" }, "last_serial": 5491736, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d0522829165596a0fa146e4a539fa0a8", "sha256": "9202dd366eec1a78a4fb15ad8becf3165833e72e8183574f7a48f5841b624889" }, "downloads": -1, "filename": "opem-0.1.tar.gz", "has_sig": false, "md5_digest": "d0522829165596a0fa146e4a539fa0a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65202, "upload_time": "2017-12-25T15:55:41", "url": "https://files.pythonhosted.org/packages/2f/c2/8f146c427db214956dab67e9a914208f1772eab1b06782768918e637d78e/opem-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "61ff9b210d0b20dfcca49fa04d524e3a", "sha256": "715d3e621fcfe9949b87baf7f0a7c0b64eab53954b3189edd5eef64603156dce" }, "downloads": -1, "filename": "opem-0.2.tar.gz", "has_sig": false, "md5_digest": "61ff9b210d0b20dfcca49fa04d524e3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15777, "upload_time": "2018-01-05T23:39:00", "url": "https://files.pythonhosted.org/packages/6c/86/61a4b3562c5a010e2b3df9c40eda1a70844d4898c0ebea4da83ddaecf607/opem-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "c32230fc220c270b028b59d99c381ad5", "sha256": "3f247ebbb171d586bac732b94fa9f3af7b8fbcf2561dfd422139efe355645887" }, "downloads": -1, "filename": "opem-0.3.tar.gz", "has_sig": false, "md5_digest": "c32230fc220c270b028b59d99c381ad5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19236, "upload_time": "2018-01-31T13:53:20", "url": "https://files.pythonhosted.org/packages/2a/f3/cc472c5c9e2274c107c96674649899d7d4a46d6bec0f1e35b5dd96fdeeb1/opem-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "753c94d3c8c949a1e47abdb60cdb9d67", "sha256": "3480a5b9fafce4e4b3821d9c255cbd7ab8aa5d9df92aafbe9090f7c366884516" }, "downloads": -1, "filename": "opem-0.4.tar.gz", "has_sig": false, "md5_digest": "753c94d3c8c949a1e47abdb60cdb9d67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22470, "upload_time": "2018-02-06T05:46:05", "url": "https://files.pythonhosted.org/packages/13/01/7618616d2e384b68479ee24fa7891145e1599e6f229d59f1ab9cb545fbb7/opem-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "6a176903249897951808ad6a70916c40", "sha256": "521778bf1f5b47e8daff6c86bd64dea00a89ebdd0279a68e44afb2d6dd39517a" }, "downloads": -1, "filename": "opem-0.5.tar.gz", "has_sig": false, "md5_digest": "6a176903249897951808ad6a70916c40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91053, "upload_time": "2018-02-16T13:46:33", "url": "https://files.pythonhosted.org/packages/1f/59/8271a136e54ef669cc57d81236f43c2fcc2ebebef26f6cba14f612ef9358/opem-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "361eceac72fbe2168ed542bb2215a0f4", "sha256": "ac029d2c29a4d1606f6f49ec735ada095580f505800f62eb011cd1919efde6fb" }, "downloads": -1, "filename": "opem-0.6.tar.gz", "has_sig": false, "md5_digest": "361eceac72fbe2168ed542bb2215a0f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100368, "upload_time": "2018-03-01T19:58:04", "url": "https://files.pythonhosted.org/packages/10/64/84cdcd68c8ba892f2249af4eda51c75deb7b7b911e4a11b2e98b3702ef1e/opem-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "2196ddafd1a6bd162eefd051c91277fd", "sha256": "fa436909fd199ec0546647ce6d9a0c175dbb345a995c951bdb9c5fbaf837c3bf" }, "downloads": -1, "filename": "opem-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "2196ddafd1a6bd162eefd051c91277fd", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 114267, "upload_time": "2018-03-17T19:00:53", "url": "https://files.pythonhosted.org/packages/7f/21/3a63dd1db0dd42e4f63a4f0970647e2d3cfdebf6c7e9dd18ee667cba38c3/opem-0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9e01f649e8ae3ab02b4933f9284f6ab", "sha256": "10a700c85bf6a14d33a3ede4970921bee98a6ef44e4fa65b65a27d81d26daafd" }, "downloads": -1, "filename": "opem-0.7.tar.gz", "has_sig": false, "md5_digest": "e9e01f649e8ae3ab02b4933f9284f6ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107440, "upload_time": "2018-03-17T19:00:44", "url": "https://files.pythonhosted.org/packages/7a/ec/7998ae5626bcc2eae9d9042e38451894bb2f42ad81febc273b53a789a82a/opem-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "39e3965015ee9df4dde48d2351eecb0b", "sha256": "2f1cf4e1ca68cc5ba0e1835c8f8eb8aff5e19ec31ae4c599c2566e43057a3245" }, "downloads": -1, "filename": "opem-0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "39e3965015ee9df4dde48d2351eecb0b", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 123663, "upload_time": "2018-04-10T14:51:16", "url": "https://files.pythonhosted.org/packages/88/5a/db9f562bd3a9052d5592aa2ab4b91190736c9c49fd0c7da5fc85c65c8eb5/opem-0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4478f0609b34aa039ddbe020f48870e2", "sha256": "d06bfde95b4d376a6c8ae922074d48daf024f6418cf34c7b92a091702ba288d3" }, "downloads": -1, "filename": "opem-0.8.tar.gz", "has_sig": false, "md5_digest": "4478f0609b34aa039ddbe020f48870e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113898, "upload_time": "2018-04-10T14:51:08", "url": "https://files.pythonhosted.org/packages/9c/1f/28af9ee678a782ba982bee9f98e26382d3a0d382f2133d71689d0d7007b9/opem-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "32193d288de92cbfbb1a909d8fcca1db", "sha256": "5890e7a3cfc6bb29bd4a5672b75c49a8e607bc3bbeea208ebdcf5987d6161408" }, "downloads": -1, "filename": "opem-0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "32193d288de92cbfbb1a909d8fcca1db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 133265, "upload_time": "2018-07-13T19:48:32", "url": "https://files.pythonhosted.org/packages/35/e8/b433992cb514af578a7b70413e64425eb95ee9a9916917aef4cc6e0d8c9a/opem-0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46b985cb17a1917b1e9faa85a70287e6", "sha256": "68fdb3fd43877214fdf985e54d08b5191bd0ed255d4d660eb7774c29d8a95bfd" }, "downloads": -1, "filename": "opem-0.9.tar.gz", "has_sig": false, "md5_digest": "46b985cb17a1917b1e9faa85a70287e6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 999447, "upload_time": "2018-07-13T19:48:24", "url": "https://files.pythonhosted.org/packages/b1/92/9d6bf59e6ab145c7f1797d18c3e47d1d972edd70a5bde7854e6133043730/opem-0.9.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "b6689faa393cc7cdec3819ab35e2f2a1", "sha256": "ad834317ed42242fbb59571a620ab3f4e12b9b74afb06a7475cc393fd2e82e6f" }, "downloads": -1, "filename": "opem-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b6689faa393cc7cdec3819ab35e2f2a1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 140163, "upload_time": "2019-02-28T22:55:21", "url": "https://files.pythonhosted.org/packages/e3/b8/777c3107e12813fdb1d3825112d42fc99d7fe229ded30ec7d82d9e1ccee0/opem-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d48ee614692c8975e74f6a5cda6cef4", "sha256": "a738d688f8db50b88058b97843342197cce9e222d9d9a570bbf9a99e86b56f18" }, "downloads": -1, "filename": "opem-1.0.tar.gz", "has_sig": false, "md5_digest": "8d48ee614692c8975e74f6a5cda6cef4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 2326327, "upload_time": "2019-02-28T22:54:59", "url": "https://files.pythonhosted.org/packages/4c/aa/4bca0901cc80e715e630b2f75c4fcdeb15351fd6e1b736cfd23299bd82d0/opem-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "1db9df270e6a0f3f2f583c7793f9faa4", "sha256": "6e378bba971f7f71ee269c47ad74bbc97041d3e504d393a93c61aee09aa62db8" }, "downloads": -1, "filename": "opem-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1db9df270e6a0f3f2f583c7793f9faa4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 140571, "upload_time": "2019-07-05T14:21:20", "url": "https://files.pythonhosted.org/packages/26/3b/31ef97cd398a421437defc72f2bd6826775239d99fafc661ca22c4a45508/opem-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d40dfc84803dcdede65b81fba31b4f4", "sha256": "44659170bbe90e4e65875191b6a5a5e05c6cce3b28f9fca69a6212dc20e90594" }, "downloads": -1, "filename": "opem-1.1.tar.gz", "has_sig": false, "md5_digest": "3d40dfc84803dcdede65b81fba31b4f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2327385, "upload_time": "2019-07-05T14:20:59", "url": "https://files.pythonhosted.org/packages/c7/8f/8559e2468d28036488624f733d2fef7aeebde1a97c8c27dfbc2d0ee0b83b/opem-1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1db9df270e6a0f3f2f583c7793f9faa4", "sha256": "6e378bba971f7f71ee269c47ad74bbc97041d3e504d393a93c61aee09aa62db8" }, "downloads": -1, "filename": "opem-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1db9df270e6a0f3f2f583c7793f9faa4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 140571, "upload_time": "2019-07-05T14:21:20", "url": "https://files.pythonhosted.org/packages/26/3b/31ef97cd398a421437defc72f2bd6826775239d99fafc661ca22c4a45508/opem-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d40dfc84803dcdede65b81fba31b4f4", "sha256": "44659170bbe90e4e65875191b6a5a5e05c6cce3b28f9fca69a6212dc20e90594" }, "downloads": -1, "filename": "opem-1.1.tar.gz", "has_sig": false, "md5_digest": "3d40dfc84803dcdede65b81fba31b4f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2327385, "upload_time": "2019-07-05T14:20:59", "url": "https://files.pythonhosted.org/packages/c7/8f/8559e2468d28036488624f733d2fef7aeebde1a97c8c27dfbc2d0ee0b83b/opem-1.1.tar.gz" } ] }