mat3ra-esse 2025.4.22.post0__py3-none-any.whl → 2025.5.16.post0__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.

Potentially problematic release.


This version of mat3ra-esse might be problematic. Click here for more details.

Files changed (47) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/apse/materials/builders/slab/pymatgen/__init__.py +3 -0
  4. mat3ra/esse/models/apse/materials/builders/slab/pymatgen/parameters.py +28 -0
  5. mat3ra/esse/models/core/abstract/coordinate_2d.py +13 -0
  6. mat3ra/esse/models/core/reusable/energy.py +2 -2
  7. mat3ra/esse/models/element.py +6 -6
  8. mat3ra/esse/models/material/__init__.py +12 -12
  9. mat3ra/esse/models/material/builders/base/__init__.py +3 -0
  10. mat3ra/esse/models/material/builders/base/selector_parameters.py +16 -0
  11. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/__init__.py +3 -0
  12. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/builder_parameters.py +28 -0
  13. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/selector_parameters.py +27 -0
  14. mat3ra/esse/models/material/reusable/__init__.py +3 -0
  15. mat3ra/esse/models/material/reusable/repetitions.py +25 -0
  16. mat3ra/esse/models/material/reusable/slab/__init__.py +3 -0
  17. mat3ra/esse/models/material/reusable/slab/enums.py +13 -0
  18. mat3ra/esse/models/material/reusable/slab/miller_indices.py +16 -0
  19. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +16 -0
  20. mat3ra/esse/models/material/reusable/slab/termination.py +18 -0
  21. mat3ra/esse/models/material/reusable/slab/vacuum.py +16 -0
  22. mat3ra/esse/models/material/reusable/supercell_matrix_2d.py +25 -0
  23. mat3ra/esse/models/material/reusable/supercell_matrix_3d.py +27 -0
  24. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/__init__.py +3 -0
  25. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +445 -0
  26. mat3ra/esse/models/properties_directory/derived_properties.py +13 -13
  27. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  28. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  29. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  30. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  31. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  32. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  33. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  34. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  35. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  36. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  37. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  38. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  39. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  40. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  41. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  42. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  43. {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.16.post0.dist-info}/METADATA +1 -1
  44. {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.16.post0.dist-info}/RECORD +47 -27
  45. {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.16.post0.dist-info}/WHEEL +1 -1
  46. {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.16.post0.dist-info}/licenses/LICENSE.md +0 -0
  47. {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.16.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -0,0 +1,28 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: apse/materials/builders/slab/pymatgen/parameters.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional, Union
8
+
9
+ from pydantic import BaseModel, confloat, conint
10
+
11
+
12
+ class PymatgenSlabGeneratorParametersSchema(BaseModel):
13
+ min_vacuum_size: Optional[Union[conint(ge=0), confloat(ge=0.0)]] = 1
14
+ """
15
+ Minimum size of the vacuum in layers or angstroms
16
+ """
17
+ in_unit_planes: Optional[bool] = True
18
+ """
19
+ Whether to cleave in unit planes
20
+ """
21
+ reorient_lattice: Optional[bool] = True
22
+ """
23
+ Whether to reorient the lattice
24
+ """
25
+ symmetrize: Optional[bool] = True
26
+ """
27
+ Whether to symmetrize the slab
28
+ """
@@ -0,0 +1,13 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/abstract/coordinate_2d.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import List
8
+
9
+ from pydantic import Field, RootModel
10
+
11
+
12
+ class Coordinate2dSchema(RootModel[List[float]]):
13
+ root: List[float] = Field(..., max_length=2, min_length=2, title="coordinate 2d schema")
@@ -20,11 +20,11 @@ class Units(Enum):
20
20
  eV_atom = "eV/atom"
21
21
 
22
22
 
23
- class Units21(Enum):
23
+ class Units24(Enum):
24
24
  eV_A_2 = "eV/A^2"
25
25
 
26
26
 
27
27
  class EnergySchema(BaseModel):
28
28
  name: str
29
- units: Union[Units, Units21]
29
+ units: Union[Units, Units24]
30
30
  value: float
@@ -33,20 +33,20 @@ class AtomicRadius(BaseModel):
33
33
  value: float
34
34
 
35
35
 
36
- class Name23(Enum):
36
+ class Name31(Enum):
37
37
  electronegativity = "electronegativity"
38
38
 
39
39
 
40
40
  class Electronegativity(BaseModel):
41
- name: Optional[Name23] = None
41
+ name: Optional[Name31] = None
42
42
  value: float
43
43
 
44
44
 
45
- class Name24(Enum):
45
+ class Name32(Enum):
46
46
  ionization_potential = "ionization_potential"
47
47
 
48
48
 
49
- class Units19(Enum):
49
+ class Units22(Enum):
50
50
  kJ_mol = "kJ/mol"
51
51
  eV = "eV"
52
52
  J_mol = "J/mol"
@@ -57,8 +57,8 @@ class Units19(Enum):
57
57
 
58
58
 
59
59
  class IonizationPotential(BaseModel):
60
- name: Optional[Name24] = None
61
- units: Optional[Units19] = None
60
+ name: Optional[Name32] = None
61
+ units: Optional[Units22] = None
62
62
  value: float
63
63
 
64
64
 
@@ -159,30 +159,30 @@ class VolumeSchema(BaseModel):
159
159
  value: float
160
160
 
161
161
 
162
- class Name45(Enum):
162
+ class Name53(Enum):
163
163
  density = "density"
164
164
 
165
165
 
166
- class Units36(Enum):
166
+ class Units39(Enum):
167
167
  g_cm_3 = "g/cm^3"
168
168
 
169
169
 
170
170
  class DensitySchema(BaseModel):
171
171
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
172
- units: Optional[Units36] = None
172
+ units: Optional[Units39] = None
173
173
  value: float
174
174
 
175
175
 
176
- class Units37(Enum):
176
+ class Units40(Enum):
177
177
  angstrom = "angstrom"
178
178
 
179
179
 
180
180
  class ScalarSchema(BaseModel):
181
- units: Optional[Units37] = None
181
+ units: Optional[Units40] = None
182
182
  value: float
183
183
 
184
184
 
185
- class Name46(Enum):
185
+ class Name54(Enum):
186
186
  symmetry = "symmetry"
187
187
 
188
188
 
@@ -202,7 +202,7 @@ class SymmetrySchema(BaseModel):
202
202
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
203
203
 
204
204
 
205
- class Name47(Enum):
205
+ class Name55(Enum):
206
206
  elemental_ratio = "elemental_ratio"
207
207
 
208
208
 
@@ -215,7 +215,7 @@ class ElementalRatio(BaseModel):
215
215
  """
216
216
 
217
217
 
218
- class Name48(Enum):
218
+ class Name56(Enum):
219
219
  p_norm = "p-norm"
220
220
 
221
221
 
@@ -228,7 +228,7 @@ class PNorm(BaseModel):
228
228
  value: float
229
229
 
230
230
 
231
- class Name49(Enum):
231
+ class Name57(Enum):
232
232
  inchi = "inchi"
233
233
 
234
234
 
@@ -237,7 +237,7 @@ class InChIRepresentationSchema(BaseModel):
237
237
  value: str
238
238
 
239
239
 
240
- class Name50(Enum):
240
+ class Name58(Enum):
241
241
  inchi_key = "inchi_key"
242
242
 
243
243
 
@@ -316,7 +316,7 @@ class FileSourceSchema(BaseModel):
316
316
  """
317
317
 
318
318
 
319
- class Name51(Enum):
319
+ class Name59(Enum):
320
320
  default = "default"
321
321
  atomsTooClose = "atomsTooClose"
322
322
  atomsOverlap = "atomsOverlap"
@@ -329,7 +329,7 @@ class Severity(Enum):
329
329
 
330
330
 
331
331
  class MaterialConsistencyCheckSchema(BaseModel):
332
- name: Name51
332
+ name: Name59
333
333
  """
334
334
  Name of the consistency check that is performed, which is listed in an enum.
335
335
  """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -0,0 +1,16 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/builders/base/selector_parameters.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional
8
+
9
+ from pydantic import BaseModel, conint
10
+
11
+
12
+ class BaseSelectorParametersSchema(BaseModel):
13
+ default_index: Optional[conint(ge=0)] = 0
14
+ """
15
+ Default index for the selector
16
+ """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -0,0 +1,28 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/builders/single_material/two_dimensional/slab/builder_parameters.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional, Union
8
+
9
+ from pydantic import BaseModel, confloat, conint
10
+
11
+
12
+ class SlabBuilderParametersSchema(BaseModel):
13
+ min_vacuum_size: Optional[Union[conint(ge=0), confloat(ge=0.0)]] = 1
14
+ """
15
+ Minimum size of the vacuum in layers or angstroms
16
+ """
17
+ in_unit_planes: Optional[bool] = True
18
+ """
19
+ Whether to cleave in unit planes
20
+ """
21
+ reorient_lattice: Optional[bool] = True
22
+ """
23
+ Whether to reorient the lattice
24
+ """
25
+ symmetrize: Optional[bool] = True
26
+ """
27
+ Whether to symmetrize the slab
28
+ """
@@ -0,0 +1,27 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/builders/single_material/two_dimensional/slab/selector_parameters.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional
8
+
9
+ from pydantic import BaseModel, Field
10
+
11
+
12
+ class TerminationSchema(BaseModel):
13
+ chemical_elements: str = Field(..., title="Chemical Elements")
14
+ """
15
+ Chemical elements at the termination
16
+ """
17
+ space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
18
+ """
19
+ Space group symmetry designation for the termination
20
+ """
21
+
22
+
23
+ class SlabSelectorParametersSchema(BaseModel):
24
+ termination: Optional[TerminationSchema] = Field(None, title="Termination Schema")
25
+ """
26
+ Defines a specific termination of a slab
27
+ """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -0,0 +1,25 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/repetitions.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import List, Optional
8
+
9
+ from pydantic import Field, RootModel, conint
10
+
11
+
12
+ class CrystalRepetitionsSchemaItem(RootModel[conint(ge=1)]):
13
+ root: conint(ge=1)
14
+
15
+
16
+ class CrystalRepetitionsSchema(RootModel[Optional[List[CrystalRepetitionsSchemaItem]]]):
17
+ root: Optional[List[CrystalRepetitionsSchemaItem]] = Field(
18
+ default_factory=lambda: [CrystalRepetitionsSchemaItem.model_validate(v) for v in [1, 1, 1]],
19
+ max_length=3,
20
+ min_length=3,
21
+ title="Crystal Repetitions Schema",
22
+ )
23
+ """
24
+ Number of unit cells to repeat in each direction for a crystal structure.
25
+ """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -0,0 +1,13 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/slab/enums.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class SurfaceTypesEnum(Enum):
11
+ top = "top"
12
+ bottom = "bottom"
13
+ both = "both"
@@ -0,0 +1,16 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/slab/miller_indices.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import List, Optional
8
+
9
+ from pydantic import Field, RootModel
10
+
11
+
12
+ class MillerIndicesSchema(RootModel[Optional[List[int]]]):
13
+ root: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
14
+ """
15
+ Miller indices for crystallographic plane designation
16
+ """
@@ -0,0 +1,16 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/slab/number_of_layers.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional
8
+
9
+ from pydantic import Field, RootModel, conint
10
+
11
+
12
+ class NumberOfLayersSchema(RootModel[Optional[conint(ge=1)]]):
13
+ root: Optional[conint(ge=1)] = Field(1, title="number_of_layers Schema")
14
+ """
15
+ Number of atomic layers in a structural component
16
+ """
@@ -0,0 +1,18 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/slab/termination.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from pydantic import BaseModel, Field
8
+
9
+
10
+ class TerminationSchema(BaseModel):
11
+ chemical_elements: str = Field(..., title="Chemical Elements")
12
+ """
13
+ Chemical elements at the termination
14
+ """
15
+ space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
16
+ """
17
+ Space group symmetry designation for the termination
18
+ """
@@ -0,0 +1,16 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/slab/vacuum.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Optional
8
+
9
+ from pydantic import Field, RootModel, confloat
10
+
11
+
12
+ class VacuumSchema(RootModel[Optional[confloat(ge=0.0)]]):
13
+ root: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Schema")
14
+ """
15
+ Vacuum thickness in Angstroms
16
+ """
@@ -0,0 +1,25 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/supercell_matrix_2d.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import List, Optional
8
+
9
+ from pydantic import Field, RootModel
10
+
11
+
12
+ class SupercellMatrix2DSchemaItem(RootModel[List[int]]):
13
+ root: List[int]
14
+
15
+
16
+ class SupercellMatrix2DSchema(RootModel[Optional[List[SupercellMatrix2DSchemaItem]]]):
17
+ root: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
18
+ default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
19
+ max_length=2,
20
+ min_length=2,
21
+ title="Supercell Matrix 2D Schema",
22
+ )
23
+ """
24
+ Supercell matrix for xy plane transformations
25
+ """
@@ -0,0 +1,27 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/supercell_matrix_3d.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import List, Optional
8
+
9
+ from pydantic import Field, RootModel
10
+
11
+
12
+ class SupercellMatrix3DSchemaItem(RootModel[List[int]]):
13
+ root: List[int]
14
+
15
+
16
+ class SupercellMatrix3DSchema(RootModel[Optional[List[SupercellMatrix3DSchemaItem]]]):
17
+ root: Optional[List[SupercellMatrix3DSchemaItem]] = Field(
18
+ default_factory=lambda: [
19
+ SupercellMatrix3DSchemaItem.model_validate(v) for v in [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
20
+ ],
21
+ max_length=3,
22
+ min_length=3,
23
+ title="Supercell Matrix 3D Schema",
24
+ )
25
+ """
26
+ 3x3 matrix of integers for transforming a unit cell into a supercell
27
+ """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5