steer-materials 0.1.13__py3-none-any.whl → 0.1.15__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- steer_materials/CellMaterials/Base.py +69 -0
- steer_materials/CellMaterials/Electrode.py +13 -0
- steer_materials/Electrolytes/Electrolytes.py +10 -49
- steer_materials/__init__.py +6 -1
- steer_materials-0.1.15.dist-info/METADATA +36 -0
- steer_materials-0.1.15.dist-info/RECORD +14 -0
- {steer_materials-0.1.13.dist-info → steer_materials-0.1.15.dist-info}/top_level.txt +0 -1
- data_scripts/__init__.py +0 -0
- steer_materials-0.1.13.dist-info/METADATA +0 -24
- steer_materials-0.1.13.dist-info/RECORD +0 -15
- {steer_materials-0.1.13.dist-info → steer_materials-0.1.15.dist-info}/WHEEL +0 -0
|
@@ -207,3 +207,72 @@ class SeparatorMaterial(_Material):
|
|
|
207
207
|
string_data = data["object"].iloc[0]
|
|
208
208
|
material = SerializerMixin.deserialize(string_data)
|
|
209
209
|
return material
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
class TapeMaterial(_Material):
|
|
214
|
+
"""
|
|
215
|
+
Materials from which tapes are made.
|
|
216
|
+
"""
|
|
217
|
+
|
|
218
|
+
def __init__(
|
|
219
|
+
self,
|
|
220
|
+
name: str,
|
|
221
|
+
density: float,
|
|
222
|
+
specific_cost: float,
|
|
223
|
+
color: str,
|
|
224
|
+
):
|
|
225
|
+
"""
|
|
226
|
+
Separator material for encapsulation of the cell
|
|
227
|
+
|
|
228
|
+
Parameters
|
|
229
|
+
----------
|
|
230
|
+
name : str
|
|
231
|
+
Name of the tape material.
|
|
232
|
+
density : float
|
|
233
|
+
Density of the material in g/cm^3.
|
|
234
|
+
specific_cost : float
|
|
235
|
+
Specific cost of the material in $/kg.
|
|
236
|
+
color : str
|
|
237
|
+
Color of the material.
|
|
238
|
+
"""
|
|
239
|
+
super().__init__(
|
|
240
|
+
name,
|
|
241
|
+
density,
|
|
242
|
+
specific_cost,
|
|
243
|
+
color
|
|
244
|
+
)
|
|
245
|
+
|
|
246
|
+
@staticmethod
|
|
247
|
+
def from_database(name) -> "TapeMaterial":
|
|
248
|
+
"""
|
|
249
|
+
Pull object from the database.
|
|
250
|
+
|
|
251
|
+
Parameters
|
|
252
|
+
----------
|
|
253
|
+
name : str
|
|
254
|
+
Name of the tape material.
|
|
255
|
+
|
|
256
|
+
Returns
|
|
257
|
+
-------
|
|
258
|
+
TapeMaterial: Instance of the class.
|
|
259
|
+
Raises
|
|
260
|
+
------
|
|
261
|
+
ValueError: If the material is not found in the database.
|
|
262
|
+
"""
|
|
263
|
+
database = DataManager()
|
|
264
|
+
|
|
265
|
+
available_materials = database.get_unique_values("tape_materials", "name")
|
|
266
|
+
|
|
267
|
+
if name not in available_materials:
|
|
268
|
+
raise ValueError(
|
|
269
|
+
f"Material '{name}' not found in the database. Available materials: {available_materials}"
|
|
270
|
+
)
|
|
271
|
+
|
|
272
|
+
data = database.get_data(table_name="tape_materials").query(
|
|
273
|
+
f"name == '{name}'"
|
|
274
|
+
)
|
|
275
|
+
|
|
276
|
+
string_data = data["object"].iloc[0]
|
|
277
|
+
material = SerializerMixin.deserialize(string_data)
|
|
278
|
+
return material
|
|
@@ -9,6 +9,7 @@ from steer_materials.Base import _Material
|
|
|
9
9
|
import pandas as pd
|
|
10
10
|
import numpy as np
|
|
11
11
|
import plotly.express as px
|
|
12
|
+
from plotly import graph_objects as go
|
|
12
13
|
from typing import List, Tuple, Union, Optional
|
|
13
14
|
from copy import deepcopy
|
|
14
15
|
|
|
@@ -789,6 +790,18 @@ class _ActiveMaterial(_Material, DataMixin):
|
|
|
789
790
|
def reversible_capacity_scaling_hard_range(self) -> Tuple:
|
|
790
791
|
return 0, 2
|
|
791
792
|
|
|
793
|
+
@property
|
|
794
|
+
def half_cell_curve_trace(self) -> go.Scatter:
|
|
795
|
+
|
|
796
|
+
return go.Scatter(
|
|
797
|
+
x=self.half_cell_curve["Specific Capacity (mAh/g)"],
|
|
798
|
+
y=self.half_cell_curve["Voltage (V)"],
|
|
799
|
+
name=self.name,
|
|
800
|
+
line=dict(color=self._color, width=2),
|
|
801
|
+
mode="lines",
|
|
802
|
+
hovertemplate="<b>%{fullData.name}</b><br>" + "Capacity: %{x:.2f} mAh/g<br>" + "Voltage: %{y:.3f} V<br>" + "<i>Individual Material</i><extra></extra>",
|
|
803
|
+
)
|
|
804
|
+
|
|
792
805
|
@reference.setter
|
|
793
806
|
def reference(self, reference: str):
|
|
794
807
|
self.validate_electrochemical_reference(reference)
|
|
@@ -1,55 +1,16 @@
|
|
|
1
1
|
from steer_core.Constants.Units import *
|
|
2
|
-
from
|
|
2
|
+
from steer_materials.Base import _Material
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
class Electrolyte(
|
|
5
|
+
class Electrolyte(_Material):
|
|
6
6
|
|
|
7
|
-
def __init__(
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
def __init__(
|
|
8
|
+
self,
|
|
9
|
+
name: str,
|
|
10
|
+
density: float,
|
|
11
|
+
specific_cost: float,
|
|
12
|
+
color: str
|
|
13
|
+
):
|
|
10
14
|
|
|
11
|
-
|
|
12
|
-
:param specific_cost: float: specific cost of the material $/kg
|
|
13
|
-
:param density: float: density of the material in g/cm^3
|
|
14
|
-
"""
|
|
15
|
-
self._name = name
|
|
16
|
-
self._specific_cost = specific_cost
|
|
17
|
-
self._density = density * (G_TO_KG / CM_TO_M**3)
|
|
18
|
-
|
|
19
|
-
@property
|
|
20
|
-
def name(self):
|
|
21
|
-
return self._name
|
|
22
|
-
|
|
23
|
-
@property
|
|
24
|
-
def formula(self):
|
|
25
|
-
return self._formula
|
|
26
|
-
|
|
27
|
-
@property
|
|
28
|
-
def specific_cost(self):
|
|
29
|
-
return self._specific_cost
|
|
30
|
-
|
|
31
|
-
@property
|
|
32
|
-
def mass(self):
|
|
33
|
-
try:
|
|
34
|
-
return round(self._mass * KG_TO_G, 2)
|
|
35
|
-
except AttributeError:
|
|
36
|
-
return AttributeError("Mass not calculated yet")
|
|
37
|
-
|
|
38
|
-
@property
|
|
39
|
-
def volume(self):
|
|
40
|
-
try:
|
|
41
|
-
return round(self._volume * M_TO_CM**3, 2)
|
|
42
|
-
except AttributeError:
|
|
43
|
-
return AttributeError("Volume not calculated yet")
|
|
44
|
-
|
|
45
|
-
@property
|
|
46
|
-
def cost(self):
|
|
47
|
-
try:
|
|
48
|
-
return self._cost
|
|
49
|
-
except AttributeError:
|
|
50
|
-
return AttributeError("Cost not calculated yet")
|
|
51
|
-
|
|
52
|
-
@property
|
|
53
|
-
def density(self):
|
|
54
|
-
return round(self._density * (KG_TO_G / M_TO_CM**3), 2)
|
|
15
|
+
super().__init__(name, density, specific_cost, color)
|
|
55
16
|
|
steer_materials/__init__.py
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
-
__version__ = "0.1.
|
|
1
|
+
__version__ = "0.1.15"
|
|
2
|
+
|
|
3
|
+
# import base materials
|
|
4
|
+
from .CellMaterials.Base import TapeMaterial, SeparatorMaterial, CurrentCollectorMaterial, InsulationMaterial
|
|
5
|
+
from .CellMaterials.Electrode import AnodeMaterial, CathodeMaterial, ConductiveAdditive, Binder
|
|
6
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: steer-materials
|
|
3
|
+
Version: 0.1.15
|
|
4
|
+
Summary: Modelling energy storage from cell to site - STEER OpenCell Design
|
|
5
|
+
Author-email: Nicholas Siemons <nsiemons@stanford.edu>
|
|
6
|
+
Maintainer-email: Nicholas Siemons <nsiemons@stanford.edu>
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/stanford-developers/steer-materials/
|
|
9
|
+
Project-URL: Repository, https://github.com/stanford-developers/steer-materials/
|
|
10
|
+
Project-URL: Bug Tracker, https://github.com/stanford-developers/steer-materials/issues
|
|
11
|
+
Keywords: battery,materials,simulation,electrochemistry,energy-storage
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Operating System :: OS Independent
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
Requires-Dist: steer-core==0.1.26
|
|
26
|
+
Provides-Extra: dev
|
|
27
|
+
Requires-Dist: pytest; extra == "dev"
|
|
28
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
29
|
+
Requires-Dist: black; extra == "dev"
|
|
30
|
+
Requires-Dist: flake8; extra == "dev"
|
|
31
|
+
Requires-Dist: mypy; extra == "dev"
|
|
32
|
+
Requires-Dist: build; extra == "dev"
|
|
33
|
+
Requires-Dist: twine; extra == "dev"
|
|
34
|
+
Provides-Extra: test
|
|
35
|
+
Requires-Dist: pytest; extra == "test"
|
|
36
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
steer_materials/Base.py,sha256=JY2zDuFInbOKsgfEmGFGGnlpiBGxhK7A22pKYeakEr0,3169
|
|
2
|
+
steer_materials/__init__.py,sha256=bhUdCgOYQYVfHQb5EEt7RtjVjZW7Z6iC4-KA207x0RE,255
|
|
3
|
+
steer_materials/CellMaterials/Base.py,sha256=PElTtN_l2VkwLVwmlDzLWfaB38-49PsQCdM23xTyM0U,7361
|
|
4
|
+
steer_materials/CellMaterials/Electrode.py,sha256=afeIEe0mbH-BS5GTms5Na5sjcrzliMV2Qdj21Jnqfxw,45332
|
|
5
|
+
steer_materials/CellMaterials/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
steer_materials/Electrolytes/Electrolytes.py,sha256=6NOJ4wqgd1WKSMQ_ROupnRg6cqLi0hUHOKL57gj5O6I,340
|
|
7
|
+
steer_materials/Electrolytes/Ions.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
steer_materials/Electrolytes/Salts.py,sha256=izZPekYqFkCdNDXOyn2TUR7l5SBxwnnN00sm1G_jaRs,769
|
|
9
|
+
steer_materials/Electrolytes/Solvents.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
steer_materials/Electrolytes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
steer_materials-0.1.15.dist-info/METADATA,sha256=oSRHjwt6j3EsPiNkhb34_9xybxQ9NnsAPVis0yoDrzk,1622
|
|
12
|
+
steer_materials-0.1.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
13
|
+
steer_materials-0.1.15.dist-info/top_level.txt,sha256=vlZIS_XS59tP1rltDORHZbwi6KZ99QjnPoPN46hpsP0,16
|
|
14
|
+
steer_materials-0.1.15.dist-info/RECORD,,
|
data_scripts/__init__.py
DELETED
|
File without changes
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: steer-materials
|
|
3
|
-
Version: 0.1.13
|
|
4
|
-
Summary: Modelling energy storage from cell to site - STEER OpenCell Design
|
|
5
|
-
Home-page: https://github.com/stanford-developers/steer-materials/
|
|
6
|
-
Author: Nicholas Siemons
|
|
7
|
-
Author-email: nsiemons@stanford.edu
|
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
|
9
|
-
Classifier: Operating System :: OS Independent
|
|
10
|
-
Requires-Python: >=3.10
|
|
11
|
-
Requires-Dist: pandas==2.1.4
|
|
12
|
-
Requires-Dist: numpy==1.26.4
|
|
13
|
-
Requires-Dist: datetime==5.5
|
|
14
|
-
Requires-Dist: plotly==6.2.0
|
|
15
|
-
Requires-Dist: dash==3.1.1
|
|
16
|
-
Requires-Dist: dash_bootstrap_components==2.0.3
|
|
17
|
-
Requires-Dist: flask_caching==2.3.1
|
|
18
|
-
Dynamic: author
|
|
19
|
-
Dynamic: author-email
|
|
20
|
-
Dynamic: classifier
|
|
21
|
-
Dynamic: home-page
|
|
22
|
-
Dynamic: requires-dist
|
|
23
|
-
Dynamic: requires-python
|
|
24
|
-
Dynamic: summary
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
data_scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
steer_materials/Base.py,sha256=JY2zDuFInbOKsgfEmGFGGnlpiBGxhK7A22pKYeakEr0,3169
|
|
3
|
-
steer_materials/__init__.py,sha256=khDKUuWafURKVs5EAZkpOMiUHI2-V7axlqrWLPUpuZo,23
|
|
4
|
-
steer_materials/CellMaterials/Base.py,sha256=Kb1C420CaaB5asT0Quh4d8ThfX8z8lWnzqU_xGmP4Xc,5674
|
|
5
|
-
steer_materials/CellMaterials/Electrode.py,sha256=ABju7kmCaaR7P7XfIYQOy3mn7OOVsrZMfNpcu0FqOSc,44804
|
|
6
|
-
steer_materials/CellMaterials/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
steer_materials/Electrolytes/Electrolytes.py,sha256=CVL6HVij8Hpi4pDtwJT5t3-7e7Mwx6QwRprCLidM7GY,1479
|
|
8
|
-
steer_materials/Electrolytes/Ions.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
-
steer_materials/Electrolytes/Salts.py,sha256=izZPekYqFkCdNDXOyn2TUR7l5SBxwnnN00sm1G_jaRs,769
|
|
10
|
-
steer_materials/Electrolytes/Solvents.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
steer_materials/Electrolytes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
steer_materials-0.1.13.dist-info/METADATA,sha256=E155hbu2n5J0_Vvrm1cwUHFqZ5L58FNzuYKUHdJd7uY,752
|
|
13
|
-
steer_materials-0.1.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
14
|
-
steer_materials-0.1.13.dist-info/top_level.txt,sha256=KY6YPTcgpQ6A55y83JjGZlE-VcUHU6dQHOj18KNUkTA,29
|
|
15
|
-
steer_materials-0.1.13.dist-info/RECORD,,
|
|
File without changes
|