mat3ra-esse 2025.8.14.post0__py3-none-any.whl → 2025.10.8.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/_2d_data.py +2 -2
- mat3ra/esse/models/core/abstract/_2d_plot.py +2 -6
- mat3ra/esse/models/core/primitive/_1d_data_series.py +3 -3
- mat3ra/esse/models/core/primitive/axis_3d_names_enum.py +13 -0
- mat3ra/esse/models/core/reference/__init__.py +8 -8
- mat3ra/esse/models/core/reference/exabyte.py +2 -8
- mat3ra/esse/models/core/reference/experiment/__init__.py +2 -2
- mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +1 -78
- mat3ra/esse/models/core/reusable/coordinate_conditions/index.py +80 -0
- mat3ra/esse/models/core/reusable/hubbard_parameters.py +48 -0
- mat3ra/esse/models/core/reusable/kpoint.py +16 -0
- mat3ra/esse/models/core/reusable/repetition.py +14 -0
- mat3ra/esse/models/definitions/material.py +13 -0
- mat3ra/esse/models/element.py +10 -8
- mat3ra/esse/models/job/__init__.py +62 -62
- mat3ra/esse/models/material/__init__.py +12 -12
- mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +35 -35
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +80 -80
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +53 -53
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +53 -53
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +29 -29
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +32 -32
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +12 -12
- mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +12 -12
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +52 -52
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +32 -32
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -0
- mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +17 -17
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +12 -12
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +8 -8
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +52 -52
- mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +12 -12
- mat3ra/esse/models/methods_directory/physical/psp/__init__.py +2 -2
- mat3ra/esse/models/methods_directory/physical/psp/file.py +2 -2
- mat3ra/esse/models/methods_directory/physical/psp/file_data_item.py +2 -2
- mat3ra/esse/models/properties_directory/derived_properties.py +6 -6
- mat3ra/esse/models/properties_directory/elemental/atomic_radius.py +1 -1
- mat3ra/esse/models/properties_directory/elemental/electronegativity.py +1 -2
- mat3ra/esse/models/properties_directory/elemental/ionization_potential.py +3 -4
- mat3ra/esse/models/properties_directory/jupyter_notebook_endpoint.py +20 -0
- mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +4 -8
- mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +5 -9
- mat3ra/esse/models/properties_directory/non_scalar/charge_density_profile.py +4 -8
- mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +5 -8
- mat3ra/esse/models/properties_directory/non_scalar/dielectric_tensor.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/file_content.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/final_structure.py +22 -0
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_u.py +4 -4
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_v.py +3 -4
- mat3ra/esse/models/properties_directory/non_scalar/hubbard_v_nn.py +3 -4
- mat3ra/esse/models/properties_directory/non_scalar/is_relaxed.py +22 -0
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/potential_profile.py +8 -12
- mat3ra/esse/models/properties_directory/non_scalar/reaction_energy_profile.py +8 -12
- mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +5 -7
- mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +64 -51
- mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +10 -14
- mat3ra/esse/models/properties_directory/non_scalar/workflow.py +2234 -0
- mat3ra/esse/models/properties_directory/reusable/hubbard_parameters.py +48 -0
- mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/formation_energy.py +1 -1
- mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/pressure.py +3 -4
- mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/surface_energy.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/total_energy.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/total_force.py +3 -4
- mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +3 -3
- mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +3 -3
- mat3ra/esse/models/properties_directory/structural/atomic_forces.py +5 -5
- mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +3 -3
- mat3ra/esse/models/properties_directory/structural/basis/boundary_conditions.py +30 -0
- mat3ra/esse/models/properties_directory/structural/basis/predicted_properties.py +82 -0
- mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +23 -1
- mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +5 -5
- mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +5 -5
- mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +1 -1
- mat3ra/esse/models/properties_directory/structural/patterns/ring.py +1 -1
- mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +1 -1
- mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +4 -4
- mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +6 -6
- mat3ra/esse/models/property/base.py +1492 -14
- mat3ra/esse/models/property/holder.py +3568 -0
- mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py +31 -0
- mat3ra/esse/models/property/meta_holder.py +140 -0
- mat3ra/esse/models/property/proto_holder.py +86 -0
- mat3ra/esse/models/property/raw.py +27 -11
- mat3ra/esse/models/property/source.py +24 -1
- mat3ra/esse/models/workflow/__init__.py +54 -54
- mat3ra/esse/models/workflow/base_flow.py +4 -4
- mat3ra/esse/models/workflow/subworkflow/__init__.py +7 -7
- mat3ra/esse/models/workflow/subworkflow/unit.py +10 -10
- mat3ra/esse/models/workflow/unit/__init__.py +12 -12
- mat3ra/esse/models/workflow/unit/io/__init__.py +4 -4
- mat3ra/esse/models/workflow/unit/io/db.py +2 -2
- mat3ra/esse/models/workflow/unit/io/object_storage.py +1 -1
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/METADATA +1 -1
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/RECORD +122 -118
- mat3ra/esse/models/property/meta.py +0 -200
- mat3ra/esse/models/software_directory/ml/exabyteml.py +0 -28
- mat3ra/esse/models/software_directory/ml/unit/execution/__init__.py +0 -879
- mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/__init__.py +0 -3
- mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/cross_validate.py +0 -293
- mat3ra/esse/models/software_directory/ml/unit/execution/initialize.py +0 -293
- mat3ra/esse/models/software_directory/ml/unit/execution/score.py +0 -286
- mat3ra/esse/models/software_directory/ml/unit/execution/train.py +0 -297
- mat3ra/esse/models/software_directory/ml/unit/processing/__init__.py +0 -276
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/__init__.py +0 -167
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/manipulation.py +0 -144
- mat3ra/esse/models/software_directory/ml/unit/processing/data_transformation/scale_and_reduce.py +0 -163
- mat3ra/esse/models/software_directory/ml/unit/processing/feature_selection/__init__.py +0 -148
- mat3ra/esse/models/software_directory/ml/unit/processing/feature_selection/filter_based.py +0 -144
- /mat3ra/esse/models/{software_directory/ml → properties_directory/reusable}/__init__.py +0 -0
- /mat3ra/esse/models/{software_directory/ml/unit → property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e}/__init__.py +0 -0
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/WHEEL +0 -0
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.8.14.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/top_level.txt +0 -0
|
@@ -10,8 +10,8 @@ from pydantic import BaseModel, Field
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class Field2DimensionDataSchema(BaseModel):
|
|
13
|
-
xDataArray: List
|
|
13
|
+
xDataArray: List[Union[float, List[float]]]
|
|
14
14
|
"""
|
|
15
15
|
array containing values of x Axis
|
|
16
16
|
"""
|
|
17
|
-
yDataSeries: List[List[
|
|
17
|
+
yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
|
|
@@ -23,12 +23,8 @@ class AxisSchema(BaseModel):
|
|
|
23
23
|
class Field2DimensionPlotSchema(BaseModel):
|
|
24
24
|
xAxis: AxisSchema = Field(..., title="axis schema")
|
|
25
25
|
yAxis: AxisSchema = Field(..., title="axis schema")
|
|
26
|
-
|
|
27
|
-
"""
|
|
28
|
-
Legend of y Axis data series
|
|
29
|
-
"""
|
|
30
|
-
xDataArray: List
|
|
26
|
+
xDataArray: List[Union[float, List[float]]]
|
|
31
27
|
"""
|
|
32
28
|
array containing values of x Axis
|
|
33
29
|
"""
|
|
34
|
-
yDataSeries: List[List[
|
|
30
|
+
yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import List
|
|
7
|
+
from typing import List
|
|
8
8
|
|
|
9
9
|
from pydantic import Field, RootModel
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class Field1DimensionDataSeriesSchema(RootModel[List[List[
|
|
13
|
-
root: List[List[
|
|
12
|
+
class Field1DimensionDataSeriesSchema(RootModel[List[List[float]]]):
|
|
13
|
+
root: List[List[float]] = Field(..., title="1 dimension data series schema")
|
|
@@ -42,7 +42,7 @@ class InfoForCharacteristicObtainedByExabyteCalculation(BaseModel):
|
|
|
42
42
|
owner: EntityReferenceSchema = Field(..., title="entity reference schema")
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
class
|
|
45
|
+
class Type73(Enum):
|
|
46
46
|
experiment = "experiment"
|
|
47
47
|
|
|
48
48
|
|
|
@@ -83,7 +83,7 @@ class LocationSchema(BaseModel):
|
|
|
83
83
|
"""
|
|
84
84
|
|
|
85
85
|
|
|
86
|
-
class
|
|
86
|
+
class Type74(Enum):
|
|
87
87
|
literature = "literature"
|
|
88
88
|
|
|
89
89
|
|
|
@@ -93,7 +93,7 @@ class PagesSchema(BaseModel):
|
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
class LiteratureReferenceSchema(BaseModel):
|
|
96
|
-
type: Optional[
|
|
96
|
+
type: Optional[Type74] = None
|
|
97
97
|
doi: Optional[str] = None
|
|
98
98
|
"""
|
|
99
99
|
Digital Object Identifier of the reference.
|
|
@@ -153,7 +153,7 @@ class LiteratureReferenceSchema(BaseModel):
|
|
|
153
153
|
|
|
154
154
|
|
|
155
155
|
class InfoForCharacteristicObtainedByExperiment(BaseModel):
|
|
156
|
-
type: Optional[
|
|
156
|
+
type: Optional[Type73] = None
|
|
157
157
|
authors: List[ExperimentAuthorSchema]
|
|
158
158
|
"""
|
|
159
159
|
experiment authors
|
|
@@ -182,8 +182,8 @@ class InfoForCharacteristicObtainedByExperiment(BaseModel):
|
|
|
182
182
|
"""
|
|
183
183
|
|
|
184
184
|
|
|
185
|
-
class
|
|
186
|
-
type: Optional[
|
|
185
|
+
class LiteratureReferenceSchema12(BaseModel):
|
|
186
|
+
type: Optional[Type74] = None
|
|
187
187
|
doi: Optional[str] = None
|
|
188
188
|
"""
|
|
189
189
|
Digital Object Identifier of the reference.
|
|
@@ -247,14 +247,14 @@ class ESSE(
|
|
|
247
247
|
Union[
|
|
248
248
|
InfoForCharacteristicObtainedByExabyteCalculation,
|
|
249
249
|
InfoForCharacteristicObtainedByExperiment,
|
|
250
|
-
|
|
250
|
+
LiteratureReferenceSchema12,
|
|
251
251
|
]
|
|
252
252
|
]
|
|
253
253
|
):
|
|
254
254
|
root: Union[
|
|
255
255
|
InfoForCharacteristicObtainedByExabyteCalculation,
|
|
256
256
|
InfoForCharacteristicObtainedByExperiment,
|
|
257
|
-
|
|
257
|
+
LiteratureReferenceSchema12,
|
|
258
258
|
] = Field(
|
|
259
259
|
..., title="reference schema (using `anyOf` instead of `oneOf` below b/c current reference schemas overlap)"
|
|
260
260
|
)
|
|
@@ -4,21 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Optional
|
|
8
|
-
|
|
9
7
|
from pydantic import BaseModel
|
|
10
8
|
|
|
11
9
|
|
|
12
10
|
class ESSE(BaseModel):
|
|
13
|
-
|
|
14
|
-
"""
|
|
15
|
-
Material's identity. Used for protoProperties.
|
|
16
|
-
"""
|
|
17
|
-
jobId: Optional[str] = None
|
|
11
|
+
jobId: str
|
|
18
12
|
"""
|
|
19
13
|
Job's identity
|
|
20
14
|
"""
|
|
21
|
-
unitId:
|
|
15
|
+
unitId: str
|
|
22
16
|
"""
|
|
23
17
|
Id of the unit that extracted the result
|
|
24
18
|
"""
|
|
@@ -51,7 +51,7 @@ class LocationSchema(BaseModel):
|
|
|
51
51
|
"""
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
class
|
|
54
|
+
class Type16(Enum):
|
|
55
55
|
literature = "literature"
|
|
56
56
|
|
|
57
57
|
|
|
@@ -61,7 +61,7 @@ class PagesSchema(BaseModel):
|
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
class LiteratureReferenceSchema(BaseModel):
|
|
64
|
-
type: Optional[
|
|
64
|
+
type: Optional[Type16] = None
|
|
65
65
|
doi: Optional[str] = None
|
|
66
66
|
"""
|
|
67
67
|
Digital Object Identifier of the reference.
|
|
@@ -1,80 +1,3 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
2
|
+
# filename: schema
|
|
3
3
|
# version: 0.28.5
|
|
4
|
-
|
|
5
|
-
from __future__ import annotations
|
|
6
|
-
|
|
7
|
-
from enum import Enum
|
|
8
|
-
from typing import List, Literal, Union
|
|
9
|
-
|
|
10
|
-
from pydantic import BaseModel, Field, RootModel, confloat
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class CoordinateShapeEnum(Enum):
|
|
14
|
-
cylinder = "cylinder"
|
|
15
|
-
sphere = "sphere"
|
|
16
|
-
box = "box"
|
|
17
|
-
triangular_prism = "triangular_prism"
|
|
18
|
-
plane = "plane"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class BoxCoordinateConditionSchema(BaseModel):
|
|
22
|
-
shape: Literal["box"] = Field("box", title="Coordinate Shape Enum")
|
|
23
|
-
min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
24
|
-
max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class SphereCoordinateConditionSchema(BaseModel):
|
|
28
|
-
shape: Literal["sphere"] = Field("sphere", title="Coordinate Shape Enum")
|
|
29
|
-
radius: confloat(ge=0.0)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
class CylinderCoordinateConditionSchema(BaseModel):
|
|
33
|
-
shape: Literal["cylinder"] = Field("cylinder", title="Coordinate Shape Enum")
|
|
34
|
-
radius: confloat(ge=0.0)
|
|
35
|
-
min_z: float
|
|
36
|
-
max_z: float
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class TriangularPrismCoordinateConditionSchema(BaseModel):
|
|
40
|
-
shape: Literal["triangular_prism"] = Field("triangular_prism", title="Coordinate Shape Enum")
|
|
41
|
-
position_on_surface_1: List[float] = Field(
|
|
42
|
-
..., max_length=2, min_length=2, title="array of 2 number elements schema"
|
|
43
|
-
)
|
|
44
|
-
position_on_surface_2: List[float] = Field(
|
|
45
|
-
..., max_length=2, min_length=2, title="array of 2 number elements schema"
|
|
46
|
-
)
|
|
47
|
-
position_on_surface_3: List[float] = Field(
|
|
48
|
-
..., max_length=2, min_length=2, title="array of 2 number elements schema"
|
|
49
|
-
)
|
|
50
|
-
min_z: float
|
|
51
|
-
max_z: float
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
class PlaneCoordinateConditionSchema(BaseModel):
|
|
55
|
-
shape: Literal["plane"] = Field("plane", title="Coordinate Shape Enum")
|
|
56
|
-
plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
57
|
-
plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
class ESSE(
|
|
61
|
-
RootModel[
|
|
62
|
-
Union[
|
|
63
|
-
BoxCoordinateConditionSchema,
|
|
64
|
-
SphereCoordinateConditionSchema,
|
|
65
|
-
CylinderCoordinateConditionSchema,
|
|
66
|
-
TriangularPrismCoordinateConditionSchema,
|
|
67
|
-
PlaneCoordinateConditionSchema,
|
|
68
|
-
]
|
|
69
|
-
]
|
|
70
|
-
):
|
|
71
|
-
root: Union[
|
|
72
|
-
BoxCoordinateConditionSchema,
|
|
73
|
-
SphereCoordinateConditionSchema,
|
|
74
|
-
CylinderCoordinateConditionSchema,
|
|
75
|
-
TriangularPrismCoordinateConditionSchema,
|
|
76
|
-
PlaneCoordinateConditionSchema,
|
|
77
|
-
] = Field(..., title="Coordinate Conditions Schema")
|
|
78
|
-
"""
|
|
79
|
-
Combined schema for all coordinate condition types
|
|
80
|
-
"""
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/reusable/coordinate_conditions/index.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import List, Literal, Union
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, Field, RootModel, confloat
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CoordinateShapeEnum(Enum):
|
|
14
|
+
cylinder = "cylinder"
|
|
15
|
+
sphere = "sphere"
|
|
16
|
+
box = "box"
|
|
17
|
+
triangular_prism = "triangular_prism"
|
|
18
|
+
plane = "plane"
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class BoxCoordinateConditionSchema(BaseModel):
|
|
22
|
+
shape: Literal["box"] = Field("box", title="Coordinate Shape Enum")
|
|
23
|
+
min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
24
|
+
max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class SphereCoordinateConditionSchema(BaseModel):
|
|
28
|
+
shape: Literal["sphere"] = Field("sphere", title="Coordinate Shape Enum")
|
|
29
|
+
radius: confloat(ge=0.0)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class CylinderCoordinateConditionSchema(BaseModel):
|
|
33
|
+
shape: Literal["cylinder"] = Field("cylinder", title="Coordinate Shape Enum")
|
|
34
|
+
radius: confloat(ge=0.0)
|
|
35
|
+
min_z: float
|
|
36
|
+
max_z: float
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class TriangularPrismCoordinateConditionSchema(BaseModel):
|
|
40
|
+
shape: Literal["triangular_prism"] = Field("triangular_prism", title="Coordinate Shape Enum")
|
|
41
|
+
position_on_surface_1: List[float] = Field(
|
|
42
|
+
..., max_length=2, min_length=2, title="array of 2 number elements schema"
|
|
43
|
+
)
|
|
44
|
+
position_on_surface_2: List[float] = Field(
|
|
45
|
+
..., max_length=2, min_length=2, title="array of 2 number elements schema"
|
|
46
|
+
)
|
|
47
|
+
position_on_surface_3: List[float] = Field(
|
|
48
|
+
..., max_length=2, min_length=2, title="array of 2 number elements schema"
|
|
49
|
+
)
|
|
50
|
+
min_z: float
|
|
51
|
+
max_z: float
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class PlaneCoordinateConditionSchema(BaseModel):
|
|
55
|
+
shape: Literal["plane"] = Field("plane", title="Coordinate Shape Enum")
|
|
56
|
+
plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
57
|
+
plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class ESSE(
|
|
61
|
+
RootModel[
|
|
62
|
+
Union[
|
|
63
|
+
BoxCoordinateConditionSchema,
|
|
64
|
+
SphereCoordinateConditionSchema,
|
|
65
|
+
CylinderCoordinateConditionSchema,
|
|
66
|
+
TriangularPrismCoordinateConditionSchema,
|
|
67
|
+
PlaneCoordinateConditionSchema,
|
|
68
|
+
]
|
|
69
|
+
]
|
|
70
|
+
):
|
|
71
|
+
root: Union[
|
|
72
|
+
BoxCoordinateConditionSchema,
|
|
73
|
+
SphereCoordinateConditionSchema,
|
|
74
|
+
CylinderCoordinateConditionSchema,
|
|
75
|
+
TriangularPrismCoordinateConditionSchema,
|
|
76
|
+
PlaneCoordinateConditionSchema,
|
|
77
|
+
] = Field(..., title="Coordinate Conditions Schema")
|
|
78
|
+
"""
|
|
79
|
+
Combined schema for all coordinate condition types
|
|
80
|
+
"""
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/reusable/hubbard_parameters.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, constr
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Units(Enum):
|
|
14
|
+
eV = "eV"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class AtomicDataPerOrbitalPairNumeric(BaseModel):
|
|
18
|
+
id: int
|
|
19
|
+
"""
|
|
20
|
+
Site number or index in the lattice
|
|
21
|
+
"""
|
|
22
|
+
id2: int
|
|
23
|
+
"""
|
|
24
|
+
Site number or index in the lattice of second site
|
|
25
|
+
"""
|
|
26
|
+
atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
|
|
27
|
+
"""
|
|
28
|
+
Example: Co1, Mn
|
|
29
|
+
"""
|
|
30
|
+
atomicSpecies2: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
|
|
31
|
+
"""
|
|
32
|
+
Example: Co2, O
|
|
33
|
+
"""
|
|
34
|
+
orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
|
|
35
|
+
orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
|
|
36
|
+
distance: Optional[float] = None
|
|
37
|
+
"""
|
|
38
|
+
Distance between two sites in Bohr.
|
|
39
|
+
"""
|
|
40
|
+
value: float
|
|
41
|
+
"""
|
|
42
|
+
Value related to a specific property, e.g., Hubbard U, V etc.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class HubbardParametersReusableSchema(BaseModel):
|
|
47
|
+
units: Units
|
|
48
|
+
values: List[AtomicDataPerOrbitalPairNumeric]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/reusable/kpoint.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 KpointSchema(RootModel[List[float]]):
|
|
13
|
+
root: List[float] = Field(..., max_length=3, min_length=3, title="kpoint schema")
|
|
14
|
+
"""
|
|
15
|
+
A k-point is a point in reciprocal space of a crystal.
|
|
16
|
+
"""
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: core/reusable/repetition.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RepetitionPropertySchema(BaseModel):
|
|
11
|
+
repetition: float
|
|
12
|
+
"""
|
|
13
|
+
Repetition number for the property
|
|
14
|
+
"""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: definitions/material.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from pydantic import Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class MaterialsDefinitions(RootModel[Any]):
|
|
13
|
+
root: Any = Field(..., title="Materials Definitions")
|
mat3ra/esse/models/element.py
CHANGED
|
@@ -149,21 +149,21 @@ class Units(Enum):
|
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
class AtomicRadius(BaseModel):
|
|
152
|
-
name:
|
|
152
|
+
name: Name
|
|
153
153
|
units: Optional[Units] = None
|
|
154
154
|
value: float
|
|
155
155
|
|
|
156
156
|
|
|
157
|
-
class
|
|
157
|
+
class Name464(Enum):
|
|
158
158
|
electronegativity = "electronegativity"
|
|
159
159
|
|
|
160
160
|
|
|
161
161
|
class Electronegativity(BaseModel):
|
|
162
|
-
name:
|
|
162
|
+
name: Name464
|
|
163
163
|
value: float
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
class
|
|
166
|
+
class Name465(Enum):
|
|
167
167
|
ionization_potential = "ionization_potential"
|
|
168
168
|
|
|
169
169
|
|
|
@@ -177,15 +177,17 @@ class Units184(Enum):
|
|
|
177
177
|
eV_atom = "eV/atom"
|
|
178
178
|
|
|
179
179
|
|
|
180
|
-
class
|
|
181
|
-
name:
|
|
182
|
-
units:
|
|
180
|
+
class IonizationPotentialElementalPropertySchema(BaseModel):
|
|
181
|
+
name: Name465
|
|
182
|
+
units: Units184
|
|
183
183
|
value: float
|
|
184
184
|
|
|
185
185
|
|
|
186
186
|
class ElementSchema(BaseModel):
|
|
187
187
|
symbol: Optional[Symbol] = None
|
|
188
|
-
properties: Optional[List[Union[AtomicRadius, Electronegativity,
|
|
188
|
+
properties: Optional[List[Union[AtomicRadius, Electronegativity, IonizationPotentialElementalPropertySchema]]] = (
|
|
189
|
+
None
|
|
190
|
+
)
|
|
189
191
|
"""
|
|
190
192
|
list of elemental properties
|
|
191
193
|
"""
|