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.
@@ -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 steer_core.Mixins.Dunder import DunderMixin
2
+ from steer_materials.Base import _Material
3
3
 
4
4
 
5
- class Electrolyte(DunderMixin):
5
+ class Electrolyte(_Material):
6
6
 
7
- def __init__(self, specific_cost: float, density: float, name: str = "Electrolyte"):
8
- """
9
- Initialize an object that represents an electrolyte
7
+ def __init__(
8
+ self,
9
+ name: str,
10
+ density: float,
11
+ specific_cost: float,
12
+ color: str
13
+ ):
10
14
 
11
- :param name: str: name of the material
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
 
@@ -1 +1,6 @@
1
- __version__ = "0.1.13"
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,,
@@ -1,2 +1 @@
1
- data_scripts
2
1
  steer_materials
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,,