Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

breathe_design-0.7.0.tar.gz (9.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

breathe_design-0.7.0-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file breathe_design-0.7.0.tar.gz.

File metadata

  • Download URL: breathe_design-0.7.0.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

Hashes for breathe_design-0.7.0.tar.gz
Algorithm Hash digest
SHA256 5d3568710553d47d9d29909cd8d6066d437d3607f3851443c6085f1434aa7443
MD5 7157febf38085e904e5e74b7fe80ae88
BLAKE2b-256 acc80caf09b3e230c4522c631c11f1aa123e5e3d38b5a485fc4eeaf5a4502a69

See more details on using hashes here.

File details

Details for the file breathe_design-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: breathe_design-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for breathe_design-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e7085107fa18e4b68fa3e975d78ab27f619dbc5e7d33979238e4b7e2af28471
MD5 741602e8350c2323cbbc236d5a2584ca
BLAKE2b-256 bf7266b437486d444985e149c0cf1cd5407fb8afedd22a77a13f95830b9134ec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page