STEER OpenCell Design¶
A Python package for designing and modeling lithium-ion and sodium-ion battery cells.
Part of the STEER platform, OpenCell Design provides a hierarchical, composable API for building virtual battery cells from raw materials up to complete cell assemblies—with built-in cost, mass, and electrochemical performance calculations.
-
:material-layers-outline: Hierarchical Modeling
Compose cells from materials → formulations → electrodes → assemblies → complete cells
-
:material-battery-charging: Four Cell Formats
Cylindrical, prismatic, pouch, and flex-frame architectures
-
:material-chart-line: Electrochemical Curves
Half-cell voltage–capacity curves combined into full-cell curves with N/P ratio control
-
:material-scale-balance: Cost & Mass Breakdowns
Automatic roll-up from component level to cell level
-
:material-chart-donut: Interactive Visualization
Plotly-based cross-sections, top-down views, capacity plots, and sunburst breakdowns
-
:material-database: Database Integration
Load reference materials and pre-configured cell designs from the STEER database
Quick Example¶
import steer_opencell_design as ocd
# Load materials from the database
cathode_active = ocd.CathodeMaterial.from_database("NMC811")
anode_active = ocd.AnodeMaterial.from_database("Synthetic Graphite")
# Build up the hierarchy: formulations → electrodes → layup → assembly → cell
# ... (see Getting Started for the full walkthrough)
# Inspect results
print(f"Energy: {cell.energy:.1f} Wh")
print(f"Specific energy: {cell.specific_energy:.1f} Wh/kg")
print(f"Cost per energy: {cell.cost_per_energy:.1f} $/kWh")
# Interactive visualization
cell.get_cross_section().show()
cell.plot_mass_breakdown().show()
Installation¶
Requires Python ≥ 3.10. Dependencies (steer-core, steer-materials, numba) are installed automatically.
Modeling Hierarchy¶
The package mirrors the physical hierarchy of a battery cell:
Cell
└── Electrode Assembly (jelly roll or stack)
└── Layup (laminate or mono-layer)
├── Cathode
│ ├── Formulation (active materials + binder + additive)
│ └── Current Collector
├── Anode
│ ├── Formulation
│ └── Current Collector
└── Separator(s)
Every level exposes settable properties (mass loading, calender density, N/P ratio, etc.) and computed read-only properties (energy, mass, cost, breakdowns). Changes at any level propagate automatically through the hierarchy.
Next Steps¶
- Getting Started — full walkthrough building a cylindrical cell from scratch
- Concepts — understand the modeling hierarchy, change propagation, and units
- API Reference — detailed class and method documentation