RFBzero

RFBzero: A Python package for zero-dimensional simulation of redox flow battery cycling - Published in JOSS (2024)

https://github.com/ericfell/rfbzero

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

batteries battery-models microkinetics python rfbzero simulation
Last synced: 4 months ago · JSON representation ·

Repository

Redox flow battery electrochemical cycling models in Python

Basic Info
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 2
  • Open Issues: 3
  • Releases: 1
Topics
batteries battery-models microkinetics python rfbzero simulation
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Citation Authors

README.md

Documentation Status codecov Checked with mypy linting: pylint pypi

DOI DOI

RFBzero

rfbzero is a Python package for zero dimensional simulation of electrochemical cycling in redox flow batteries (RFBs).

This package includes modules to describe the initial flow cell setup, chemical and electrochemical properties of the redox-active electrolytes being cycled, cell cycling protocol selection, and optional inputs for capacity degradation mechanisms and active species crossover.

Installation

rfbzero can be installed from PyPI using pip.

bash pip install rfbzero

See Getting started with rfbzero.py for instructions on simulating RFBs.

Dependencies

rfbzero.py requires:

  • Python (>=3.10)
  • SciPy

Examples and Documentation

Several simulated RFB examples can be found in a notebook in docs/source/examples (requires Jupyter notebook/lab). The documentation can be found at rfbzero.readthedocs.

Package Structure

  • redox_flow_cell.py: Configures flow cell and electrolyte parameters
  • experiment.py: Specifies electrochemical cycling protocol
  • degradation.py: Optional degradation mechanism functions
  • crossover.py: Optional crossover mechanism

Examples

To simulate a full cell with constant current (CC) cycling:

```python from rfbzero.redoxflowcell import ZeroDModel from rfbzero.experiment import ConstantCurrent

define full cell and electrolyte parameters

cell = ZeroDModel( volumecls=0.005, # liters volumencls=0.010, # liters coxcls=0.01, # molar credcls=0.01, # molar coxncls=0.01, # molar credncls=0.01, # molar ocv50soc=1.0, # volts resistance=0.5, # ohms k0cls=1e-3, # cm/s k0ncls=1e-3, # cm/s )

define cycling protocol

protocol = ConstantCurrent( voltagelimitcharge=1.5, # volts voltagelimitdischarge=0.5, # volts current=0.1, # amps )

simulate cell via protocol for 1000 seconds

results = protocol.run(cell_model=cell, duration=1000) ```

or a symmetric cell with constant current constant voltage (CCCV) cycling, with an electrolyte undergoing a first order chemical degradation in the reduced form:

```python from rfbzero.redoxflowcell import ZeroDModel from rfbzero.degradation import ChemicalDegradationReduced from rfbzero.experiment import ConstantCurrentConstantVoltage

define symmetric cell and electrolyte parameters

cell = ZeroDModel( volumecls=0.005, # liters volumencls=0.010, # liters coxcls=0.01, # molar credcls=0.01, # molar coxncls=0.01, # molar credncls=0.01, # molar ocv50soc=0.0, # volts resistance=0.5, # ohms k0cls=1e-3, # cm/s k0ncls=1e-3, # cm/s )

define cycling protocol

protocol = ConstantCurrentConstantVoltage( voltagelimitcharge=0.2, # volts voltagelimitdischarge=-0.2, # volts currentcutoffcharge=0.005, # amps currentcutoffdischarge=-0.005, # amps current=0.1, # amps )

define first order chemical degradation mechanism

chemdeg = ChemicalDegradationReduced(rateorder=1, rate_constant=1e-5)

simulate cell via protocol for 1000 seconds

results = protocol.run(cellmodel=cell, degradation=chemdeg, duration=1000) ```

📖 Citing RFBzero

If you use RFBzero in your work, please cite our paper

Fell, E. M., Fell, J. A., & Aziz, M. J. (2024). RFBzero: A Python package for zero-dimensional simulation of redox flow battery cycling. Journal of Open Source Software, 9, 6537.

You can use the BibTeX

@article{Fell2024, title = {{RFBzero: A Python package for zero-dimensional simulation of redox flow battery cycling}}, author = {Fell, Eric M. and Fell, Jeremy A. and Aziz, Michael J.}, doi = {10.21105/joss.06537}, journal = {Journal of Open Source Software}, publisher = {The Open Journal}, volume = {9}, number = {98}, pages = {6537}, year = {2024}, url = {https://doi.org/10.21105/joss.06537}, }

License

MIT

Owner

  • Name: Eric Fell
  • Login: ericfell
  • Kind: user

JOSS Publication

RFBzero: A Python package for zero-dimensional simulation of redox flow battery cycling
Published
June 25, 2024
Volume 9, Issue 98, Page 6537
Authors
Eric M. Fell ORCID
Harvard John A. Paulson School of Engineering and Applied Sciences, 29 Oxford Street, Cambridge, MA, 02138, USA
Jeremy A. Fell ORCID
Simon Fraser University, 8888 University Dr W, Burnaby, BC V5A 1S6, Canada
Michael J. Aziz ORCID
Harvard John A. Paulson School of Engineering and Applied Sciences, 29 Oxford Street, Cambridge, MA, 02138, USA
Editor
Jeff Gostick ORCID
Tags
electrochemistry redox flow batteries capacity fade

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- email: efell@g.harvard.edu
  family-names: Fell
  given-names: Eric M.
  orcid: "https://orcid.org/0000-0003-2046-1480"
- email: jfell@sfu.ca
  family-names: Fell
  given-names: Jeremy A.
  orcid: "https://orcid.org/0009-0001-0968-8564"
- email: maziz@harvard.edu
  family-names: Aziz
  given-names: Michael J.
  orcid: "https://orcid.org/0000-0001-9657-9456"
doi: 10.5281/zenodo.11594955
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - email: efell@g.harvard.edu
    family-names: Fell
    given-names: Eric M.
    orcid: "https://orcid.org/0000-0003-2046-1480"
  - email: jfell@sfu.ca
    family-names: Fell
    given-names: Jeremy A.
    orcid: "https://orcid.org/0009-0001-0968-8564"
  - email: maziz@harvard.edu
    family-names: Aziz
    given-names: Michael J.
    orcid: "https://orcid.org/0000-0001-9657-9456"
  date-published: 2024-06-25
  doi: 10.21105/joss.06537
  issn: 2475-9066
  issue: 98
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 6537
  title: "RFBzero: A Python package for zero-dimensional simulation of
    redox flow battery cycling"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.06537"
  volume: 9
title: "RFBzero: A Python package for zero-dimensional simulation of
  redox flow battery cycling"

GitHub Events

Total
  • Issues event: 1
  • Watch event: 3
Last Year
  • Issues event: 1
  • Watch event: 3

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 278
  • Total Committers: 2
  • Avg Commits per committer: 139.0
  • Development Distribution Score (DDS): 0.277
Past Year
  • Commits: 278
  • Committers: 2
  • Avg Commits per committer: 139.0
  • Development Distribution Score (DDS): 0.277
Top Committers
Name Email Commits
Eric Fell e****l@g****u 201
Jeremy Fell j****l@g****m 77
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 6
  • Total pull requests: 40
  • Average time to close issues: 22 days
  • Average time to close pull requests: 5 days
  • Total issue authors: 4
  • Total pull request authors: 2
  • Average comments per issue: 0.83
  • Average comments per pull request: 0.68
  • Merged pull requests: 38
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • MaximevdHeijden (3)
  • ericfell (2)
  • nholub (1)
  • hjelmj (1)
Pull Request Authors
  • ericfell (39)
  • jeremyfell (20)
Top Labels
Issue Labels
feature (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 19 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
pypi.org: rfbzero

A package for zero dimensional simulation of electrochemical cycling in redox flow batteries

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 19 Last month
Rankings
Dependent packages count: 9.9%
Average: 37.7%
Dependent repos count: 65.5%
Maintainers (1)
Last synced: 4 months ago

Dependencies

requirements.txt pypi
  • sphinx-rtd-theme ==1.2.2
.github/workflows/ci.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v4-beta composite
pyproject.toml pypi
requirements-dev.txt pypi
  • coverage * development
  • mypy * development
  • numpy * development
  • pylint * development
  • pytest * development
  • pytest-cov * development
  • sphinx-rtd-theme ==1.2.2 development