Code Monkey home page Code Monkey logo

opem's Introduction


Table of Contents

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
Code Quality CodeFactor

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 here
    5. 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

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

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

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

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

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

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

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

Discord Channel

Outputs

  1. HTML
  2. CSV
  3. OPEM

Thanks

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(BibTeX Format)

JOSS DOI badge
Zenodo DOI

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

OPEM Donation

opem's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opem's Issues

Why not use SciPy or NumPy?

SciPy and NumPy are considered the gold-standard and foundations of the Python scientific stack. Several functions can easily be replaced by these well-documented and tested packages.

E.g.,

opem/opem/Functions.py

Lines 14 to 34 in 41ed7e4

def integrate(y_vals, h):
'''
This function calculate integral with Simpson's Rule
:param y_vals: output values
:type y_valS : list
:param h: interval
:type h : float
:return: integrate output as float
'''
try:
i = 1
total = y_vals[0] + y_vals[-1]
for y in y_vals[1:-1]:
if i % 2 == 0:
total += 2 * y
else:
total += 4 * y
i += 1
return total * (h / 3.0)
except Exception:
return None

Can easily be replaced by numpy.trapz or scipy.integrate.trapz

General syntax/grammar fixes in `opem/Documents/Amphlett.ipynb`

  • There are several grammar/syntax errors throughout the example that reduce the readability of the document.
  • E.g.,:
    • is a parametric model that predicting the performance
    • Main concepts in the Amphlett model includes Nernst voltage, PEMFC
    • This parametric model of PEMFC using a combination of mechanistic and empirical approach.
    • For most fuel cells and their practical operating range, a linear approximation

Add New Plots To App

  • Efficiency vs I
  • PH2 vs I
  • PO2 vs I
  • Power vs R
  • Anode/Cathode
  • Power vs Efficiency

General grammar/syntax fixes in paper

E.g.,:

  • In addition to the decreasing fuel sources, also pollution and global ...

  • reaction between hydrogen-rich fuel source and oxygen

  • ... of these devices owing to high efficiency relative

  • PEM fuel cells are a high-efficiency power source without pollution for urban vehicles, corroborated by recent legislative initiatives, That’s why these devices have become a great deal of attention to the option of fuel-cell-powered vehicles

  • Best fuel for fuel cell powered vehicle is hydrogen,

  • because the water is an only product of the reaction between hydrogen and air

  • protons that, flow via the membrane to the cathode

  • An external circuit that linked to the two electrodes containing the collection of electrons as electrical current

  • water and heat will be produced from the protons that flowing via the electrolyte membrane

  • The OPEM (software named based on open proton exchange membrane) written in Python, Python is a language that is very powerful for developers, but is also accessible to scientists.

  • In addition, dynamic models improve static models and complete the simulation process.

  • fluid science and material merge

  • make the simulation of fuel cell more

  • Simple linear regression used for this approximation and useful overall parameters such P(Thermal) and P(Elec) calculated by Simpson’s Rule

  • The method for using in this software is the specified inputs are presented according to the equations of each model by the user and outputs is in

  • That is represented by means of its voltage-current characteristic obtained in static operating mode

  • That the electrodes channel temperatures/pressures, t...

  • variables or constants and in model II, N... (split sentence)

  • Also, watch out for arbitrary capitalization, e.g.,: hydrogen vs Hydrogen

Nitpick: Modelling vs. Modeling

  • Modelling/Modeling used interchangeably throughout documentation and source code
  • Pick one:
    • Modelling = international
    • Modeling = US

Exe File Crash

Error : The application was unable to start correctly (0xc000007b). Click OK to close the application.

`check-manifest`: List of files in version control and sdist do not match

$ check-manifest
lists of files in version control and sdist do not match!
missing from sdist:
  AUTHORS.md
  CHANGELOG.md
  CONTRIBUTING.md
  Documents
  Documents/Amphlett.ipynb
  Documents/Chamberline_Kim.ipynb
  Documents/Larminie_Dicks.ipynb
  Documents/Padulles1.ipynb
  Documents/Padulles2.ipynb
  Documents/Padulles_Amphlett.ipynb
  Documents/Padulles_Hauer.ipynb
  Documents/README.md
  Documents/images
  Documents/images/Padulles-Amphlett-Diagram.jpg
  Documents/images/Padulles-Diagram.jpg
  Documents/images/Padulles-Hauer-Diagram.jpg
  Documents/images/Padulles2-Diagram.jpg
  Documents/images/Static-Model-Graphic.jpg
  INSTALL.md
  OPEM.spec
  PEM.md
  appveyor.yml
  otherfile
  otherfile/Fuel Cell Graphic.gif
  otherfile/OPEM_BLOCK_DIAGRAM.jpg
  otherfile/PEMFC1.jpg
  otherfile/PEMFC2.jpg
  otherfile/Version.rc
  otherfile/icon.ico
  otherfile/logo.png
  otherfile/test.csv
  otherfile/test.html
  otherfile/test.opem
  paper
  paper/paper.bib
  paper/paper.md
  requirements.txt
suggested MANIFEST.in rules:
  include *.md
  include *.spec
  include *.txt
  include *.yml
  recursive-include Documents *.ipynb
  recursive-include Documents *.jpg
  recursive-include Documents *.md
  recursive-include otherfile *.csv
  recursive-include otherfile *.gif
  recursive-include otherfile *.html
  recursive-include otherfile *.ico
  recursive-include otherfile *.jpg
  recursive-include otherfile *.opem
  recursive-include otherfile *.png
  recursive-include otherfile *.rc
  recursive-include paper *.bib
  recursive-include paper *.md
  • Files and directories should be explicitly included/excluded/pruned from MANIFEST.ini

Follow PEP8 style guidelines (or explicitly define your own)

  • It would be preferable if the package followed PEP8 guidelines
  • From the PEP8 documentation:
One of Guido's key insights is that code is read much more often than it is written. The guidelines provided here are intended to improve the readability of code and make it consistent across the wide spectrum of Python code. As PEP 20 says, "Readability counts".

A style guide is about consistency. Consistency with this style guide is important. Consistency within a project is more important. Consistency within one module or function is the most important.

Reference past research

The statement Previously, some research on modeling and simulation of PEMFC has been performed is not backed with references.

Do not use `except Exception`

Requirements should be pinned

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.