A Python library for interating with the Breathe Design api and analyzing and visualizing Breathe Design data
Project description
Breathe Design
A python based api wrapper for running the breathe design model.
Installation
To set up everything in one go, just run .\setupEnvironment.ps1
Alternatively, run
python -m venv venv
Activate the virtual environment
.\venv\Scripts\activate
Install the package in developer mode by cloning the repository and navigating to the main folder in a terminal
pip install breathe_design
Running the models
The app requires a connection to our server for which you must log in to receive an api key. Once logged in you can fetch the batteies in your library.
from breathe_design import api_interface as api
batteries = api.get_batteries()
print(batteries)
Access the base parameters for your battery
base_params = api.get_design_parameters("Molicel P45B")
print(base_params)
See the equilibrium KPIs and there sensitivities to changes in the base parameters
eqm_kpis, fig = api.get_eqm_kpis("Molicel P45B")
print(eqm_kpis)
fig.show()
Add any number of new designs
designs = [
{
"designName": "Lower NP",
"NPratio": base_params["NPratio"]*0.95
},
{
"designName": "Higher Vmax",
"Vmax_V": base_params["Vmax_V"]+0.05
},
{
"designName": "Thicker Cathode",
"cathodeThickness_um": base_params["cathodeThickness_um"]*1.05
},
{
"designName": "Less Porous Anode",
"anodePorosity": base_params["anodePorosity"]*0.95
},
{
"designName": "Thinner Separator",
"separatorThickness_um": base_params["separatorThickness_um"]*0.95
},
]
Recompute the KPIs
eqm_kpis, fig = api.get_eqm_kpis("Molicel P45B", designs)
print(eqm_kpis)
Plot the KPIs for all designs relative or delta with the baseline
from breathe_design import plot_kpis
plot_kpis(eqm_kpis, "relative")
plot_kpis(eqm_kpis, "delta")
Perform dynamic analysis for your designs
from breathe_design import Cycler
from breathe_design import plot_dynamic_kpis
from breathe_design import extract_dynamic_kpis
baseline_capacity = eqm_kpis.loc["Capacity [Ah]", "Baseline"]
cycler = Cycler(selected_unit="C", cell_capacity=baseline_capacity)
cycler_input = cycler.cccv(1.0, -1.0, 0.01, 4.2, 2.6, 60.0, 60.0)
output = api.run_sim(
base_battery="Molicel P45B",
cycler=cycler.cccv(1.0, -1.0, 0.01, 4.2, 2.6, 60.0, 60.0),
designs=designs,
initialSoC=0.5,
initialTemperature_degC=21.0,
ambientTemperature_degC=21.0
)
plot_dynamic_kpis(output["dynamicData"])
Let's now try changing the form factor
base_format = api.get_battery_format("Molicel P45B")
smaller_format = base_format.copy()
smaller_format["name"] = "Smaller Format"
smaller_format["height_mm"] = 0.9 * base_format["height_mm"]
thinner_format = base_format.copy()
thinner_format["name"] = "Thinner Format"
thinner_format["diameter_mm"] = 0.9 * base_format["diameter_mm"]
formats = [smaller_format, thinner_format]
eqm_kpis, fig = api.get_eqm_kpis("Molicel P45B", designs=[], formats=formats)
eqm_kpis
Examples
Check out the python notebooks in docs/examples for how to use the api.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file breathe_design-0.6.7.tar.gz.
File metadata
- Download URL: breathe_design-0.6.7.tar.gz
- Upload date:
- Size: 9.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7306991a47a478430608b2905f6421f51f9ac60da1a2302fcb299ba00261fa2d
|
|
| MD5 |
2bafc39a04934fc46fa94af56724633d
|
|
| BLAKE2b-256 |
437620ba368cbff9d37b5ac2fc81d792ec5aabe28926d8df931aadc91ac6f2dc
|
File details
Details for the file breathe_design-0.6.7-py3-none-any.whl.
File metadata
- Download URL: breathe_design-0.6.7-py3-none-any.whl
- Upload date:
- Size: 28.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6412009abe5f4917d77c66c42f44e3fc3e0c32b16a1473a98107cccbd4ca6c04
|
|
| MD5 |
b04caae886b046605ee7dbc46d9d80d4
|
|
| BLAKE2b-256 |
1a89f5de208945066db8fbd60421d33b3554b095572d96dfd29409a7d2c2d8f5
|