Metadata-Version: 2.4
Name: steer-materials
Version: 0.1.40
Summary: Modelling energy storage from cell to site - STEER OpenCell Design
Author-email: Nicholas Siemons <nsiemons@stanford.edu>
Maintainer-email: Nicholas Siemons <nsiemons@stanford.edu>
License: AGPL-3.0-or-later
Project-URL: Homepage, https://github.com/stanford-developers/steer-materials/
Project-URL: Repository, https://github.com/stanford-developers/steer-materials/
Project-URL: Bug Tracker, https://github.com/stanford-developers/steer-materials/issues
Project-URL: Documentation, https://github.com/stanford-developers
Keywords: battery,materials,simulation,electrochemistry,energy-storage
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENCE.txt
Requires-Dist: steer-core==0.2.12
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.5; extra == "docs"
Requires-Dist: mkdocs-material>=9.0; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.24; extra == "docs"
Dynamic: license-file

# steer-materials

[![Tests](https://github.com/stanford-developers/steer-materials/actions/workflows/tests.yml/badge.svg)](https://github.com/stanford-developers/steer-materials/actions/workflows/tests.yml)
[![Lint](https://github.com/stanford-developers/steer-materials/actions/workflows/lint.yml/badge.svg)](https://github.com/stanford-developers/steer-materials/actions/workflows/lint.yml)
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
[![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)

Material definitions for the **STEER** (Storage Technology for Energy and Economic Research) simulation framework. This package provides base classes for representing physical materials — metals, solvents, and other substances — with built-in unit conversion, validation, and cost tracking.

`steer-materials` is a support package within the broader [STEER ecosystem](https://github.com/stanford-developers).

## Installation

```bash
pip install steer-materials
```

For development:

```bash
git clone https://github.com/stanford-developers/steer-materials.git
cd steer-materials
pip install -e ".[dev]"
```

## Quick Start

```python
from steer_materials.Base import Metal, Solvent

# Create a metal material (density in g/cm³, cost in $/kg)
aluminum = Metal(name="Aluminum", density=2.7, specific_cost=2.50, color="silver")
print(aluminum.density)         # 2.7 g/cm³
print(aluminum.specific_cost)   # 2.50 $/kg

# Create a solvent
water = Solvent(name="Water", density=1.0, specific_cost=0.01, color="clear")
```

## Testing

```bash
pip install -e ".[test]"
pytest
```

With coverage:

```bash
pytest --cov=steer_materials
```

## Documentation

Full documentation for the STEER ecosystem is available at the [STEER documentation site](https://github.com/stanford-developers).

## Contributing

Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

## Citation

If you use this software in your research, please cite it using the metadata in [CITATION.cff](CITATION.cff).

## License

This project is dual-licensed:

1. **Open source** — [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0) (AGPL-3.0-or-later)
2. **Commercial** — A separate commercial license is available for use without AGPL-3.0 copyleft requirements. Contact [nsiemons@stanford.edu](mailto:nsiemons@stanford.edu) for details.

See [LICENCE.txt](LICENCE.txt) for full terms.
