RFBzero
RFBzero: A Python package for zero-dimensional simulation of redox flow battery cycling - Published in JOSS (2024)
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
Repository
Redox flow battery electrochemical cycling models in Python
Basic Info
- Host: GitHub
- Owner: ericfell
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://rfbzero.readthedocs.io/en/latest/index.html
- Size: 1.5 MB
Statistics
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 3
- Releases: 1
Topics
Metadata Files
README.md
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 parametersexperiment.py: Specifies electrochemical cycling protocoldegradation.py: Optional degradation mechanism functionscrossover.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
Owner
- Name: Eric Fell
- Login: ericfell
- Kind: user
- Repositories: 1
- Profile: https://github.com/ericfell
JOSS Publication
RFBzero: A Python package for zero-dimensional simulation of redox flow battery cycling
Authors
Tags
electrochemistry redox flow batteries capacity fadeCitation (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
Top Committers
| Name | 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
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
- Homepage: https://github.com/ericfell/rfbzero
- Documentation: https://rfbzero.readthedocs.io/en/latest/index.html#
- License: MIT License
-
Latest release: 1.0.1
published over 1 year ago
Rankings
Maintainers (1)
Dependencies
- sphinx-rtd-theme ==1.2.2
- actions/checkout v4 composite
- actions/setup-python v4 composite
- codecov/codecov-action v4-beta composite
- coverage * development
- mypy * development
- numpy * development
- pylint * development
- pytest * development
- pytest-cov * development
- sphinx-rtd-theme ==1.2.2 development
