mat3ra-esse 2025.4.22.post0__py3-none-any.whl → 2025.5.13.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.
- mat3ra/esse/data/examples.py +1 -1
- mat3ra/esse/data/schemas.py +1 -1
- mat3ra/esse/models/core/abstract/coordinate_2d.py +13 -0
- mat3ra/esse/models/core/reusable/energy.py +2 -2
- mat3ra/esse/models/element.py +6 -6
- mat3ra/esse/models/material/__init__.py +12 -12
- mat3ra/esse/models/material/reusable/__init__.py +3 -0
- mat3ra/esse/models/material/reusable/repetitions.py +25 -0
- mat3ra/esse/models/material/reusable/slab/__init__.py +3 -0
- mat3ra/esse/models/material/reusable/slab/enums.py +13 -0
- mat3ra/esse/models/material/reusable/slab/miller_indices.py +16 -0
- mat3ra/esse/models/material/reusable/slab/number_of_layers.py +16 -0
- mat3ra/esse/models/material/reusable/slab/termination.py +18 -0
- mat3ra/esse/models/material/reusable/slab/thickness.py +16 -0
- mat3ra/esse/models/material/reusable/slab/vacuum.py +16 -0
- mat3ra/esse/models/material/reusable/supercell_matrix_2d.py +25 -0
- mat3ra/esse/models/material/reusable/supercell_matrix_3d.py +27 -0
- mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/__init__.py +3 -0
- mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +445 -0
- mat3ra/esse/models/properties_directory/derived_properties.py +13 -13
- mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
- mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
- mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
- mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
- {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/METADATA +1 -1
- {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/RECORD +41 -27
- {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/WHEEL +1 -1
- {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.4.22.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/top_level.txt +0 -0
|
@@ -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
|
|
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,
|
|
29
|
+
units: Union[Units, Units24]
|
|
30
30
|
value: float
|
mat3ra/esse/models/element.py
CHANGED
|
@@ -33,20 +33,20 @@ class AtomicRadius(BaseModel):
|
|
|
33
33
|
value: float
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
class
|
|
36
|
+
class Name31(Enum):
|
|
37
37
|
electronegativity = "electronegativity"
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
class Electronegativity(BaseModel):
|
|
41
|
-
name: Optional[
|
|
41
|
+
name: Optional[Name31] = None
|
|
42
42
|
value: float
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
class
|
|
45
|
+
class Name32(Enum):
|
|
46
46
|
ionization_potential = "ionization_potential"
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
class
|
|
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[
|
|
61
|
-
units: Optional[
|
|
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
|
|
162
|
+
class Name53(Enum):
|
|
163
163
|
density = "density"
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
class
|
|
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[
|
|
172
|
+
units: Optional[Units39] = None
|
|
173
173
|
value: float
|
|
174
174
|
|
|
175
175
|
|
|
176
|
-
class
|
|
176
|
+
class Units40(Enum):
|
|
177
177
|
angstrom = "angstrom"
|
|
178
178
|
|
|
179
179
|
|
|
180
180
|
class ScalarSchema(BaseModel):
|
|
181
|
-
units: Optional[
|
|
181
|
+
units: Optional[Units40] = None
|
|
182
182
|
value: float
|
|
183
183
|
|
|
184
184
|
|
|
185
|
-
class
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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,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,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/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 number_of_layersSchema(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,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
|
+
"""
|