mat3ra-esse 2025.8.20.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.

Files changed (123) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/core/abstract/_2d_data.py +2 -2
  4. mat3ra/esse/models/core/abstract/_2d_plot.py +2 -6
  5. mat3ra/esse/models/core/primitive/_1d_data_series.py +3 -3
  6. mat3ra/esse/models/core/primitive/axis_3d_names_enum.py +13 -0
  7. mat3ra/esse/models/core/reference/__init__.py +8 -8
  8. mat3ra/esse/models/core/reference/exabyte.py +2 -8
  9. mat3ra/esse/models/core/reference/experiment/__init__.py +2 -2
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +1 -78
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/index.py +80 -0
  12. mat3ra/esse/models/core/reusable/hubbard_parameters.py +48 -0
  13. mat3ra/esse/models/core/reusable/kpoint.py +16 -0
  14. mat3ra/esse/models/core/reusable/repetition.py +14 -0
  15. mat3ra/esse/models/definitions/material.py +13 -0
  16. mat3ra/esse/models/element.py +10 -8
  17. mat3ra/esse/models/job/__init__.py +62 -62
  18. mat3ra/esse/models/material/__init__.py +12 -12
  19. mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +80 -80
  20. mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +80 -80
  21. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +35 -35
  22. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +80 -80
  23. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +53 -53
  24. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +53 -53
  25. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +29 -29
  26. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +32 -32
  27. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +12 -12
  28. mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +12 -12
  29. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +52 -52
  30. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +32 -32
  31. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +32 -32
  32. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +32 -32
  33. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -0
  34. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +17 -17
  35. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +8 -8
  36. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +12 -12
  37. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +12 -12
  38. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +8 -8
  39. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +12 -12
  40. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +8 -8
  41. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +8 -8
  42. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +8 -8
  43. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +12 -12
  44. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +12 -12
  45. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +12 -12
  46. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +8 -8
  47. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +52 -52
  48. mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +12 -12
  49. mat3ra/esse/models/methods_directory/physical/psp/__init__.py +2 -2
  50. mat3ra/esse/models/methods_directory/physical/psp/file.py +2 -2
  51. mat3ra/esse/models/methods_directory/physical/psp/file_data_item.py +2 -2
  52. mat3ra/esse/models/properties_directory/derived_properties.py +6 -6
  53. mat3ra/esse/models/properties_directory/elemental/atomic_radius.py +1 -1
  54. mat3ra/esse/models/properties_directory/elemental/electronegativity.py +1 -2
  55. mat3ra/esse/models/properties_directory/elemental/ionization_potential.py +3 -4
  56. mat3ra/esse/models/properties_directory/jupyter_notebook_endpoint.py +20 -0
  57. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +4 -8
  58. mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +2 -2
  59. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +5 -9
  60. mat3ra/esse/models/properties_directory/non_scalar/charge_density_profile.py +4 -8
  61. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +5 -8
  62. mat3ra/esse/models/properties_directory/non_scalar/dielectric_tensor.py +2 -2
  63. mat3ra/esse/models/properties_directory/non_scalar/file_content.py +2 -2
  64. mat3ra/esse/models/properties_directory/non_scalar/final_structure.py +22 -0
  65. mat3ra/esse/models/properties_directory/non_scalar/hubbard_u.py +4 -4
  66. mat3ra/esse/models/properties_directory/non_scalar/hubbard_v.py +3 -4
  67. mat3ra/esse/models/properties_directory/non_scalar/hubbard_v_nn.py +3 -4
  68. mat3ra/esse/models/properties_directory/non_scalar/is_relaxed.py +22 -0
  69. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +10 -14
  70. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +10 -14
  71. mat3ra/esse/models/properties_directory/non_scalar/potential_profile.py +8 -12
  72. mat3ra/esse/models/properties_directory/non_scalar/reaction_energy_profile.py +8 -12
  73. mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +5 -7
  74. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +64 -51
  75. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +10 -14
  76. mat3ra/esse/models/properties_directory/non_scalar/workflow.py +2234 -0
  77. mat3ra/esse/models/properties_directory/reusable/__init__.py +3 -0
  78. mat3ra/esse/models/properties_directory/reusable/hubbard_parameters.py +48 -0
  79. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +1 -1
  80. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +1 -1
  81. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +1 -1
  82. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +3 -3
  83. mat3ra/esse/models/properties_directory/scalar/pressure.py +3 -4
  84. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +3 -3
  85. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +3 -3
  86. mat3ra/esse/models/properties_directory/scalar/total_energy.py +3 -3
  87. mat3ra/esse/models/properties_directory/scalar/total_force.py +3 -4
  88. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +3 -3
  89. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +3 -3
  90. mat3ra/esse/models/properties_directory/structural/atomic_forces.py +5 -5
  91. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +3 -3
  92. mat3ra/esse/models/properties_directory/structural/basis/boundary_conditions.py +30 -0
  93. mat3ra/esse/models/properties_directory/structural/basis/predicted_properties.py +82 -0
  94. mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +23 -1
  95. mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +5 -5
  96. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +5 -5
  97. mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +1 -1
  98. mat3ra/esse/models/properties_directory/structural/patterns/ring.py +1 -1
  99. mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +1 -1
  100. mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +4 -4
  101. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +6 -6
  102. mat3ra/esse/models/property/base.py +1492 -14
  103. mat3ra/esse/models/property/holder.py +3568 -0
  104. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py +3 -0
  105. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py +31 -0
  106. mat3ra/esse/models/property/meta_holder.py +140 -0
  107. mat3ra/esse/models/property/proto_holder.py +86 -0
  108. mat3ra/esse/models/property/raw.py +27 -11
  109. mat3ra/esse/models/property/source.py +26 -3
  110. mat3ra/esse/models/workflow/__init__.py +54 -54
  111. mat3ra/esse/models/workflow/base_flow.py +4 -4
  112. mat3ra/esse/models/workflow/subworkflow/__init__.py +13 -13
  113. mat3ra/esse/models/workflow/subworkflow/unit.py +10 -10
  114. mat3ra/esse/models/workflow/unit/__init__.py +12 -12
  115. mat3ra/esse/models/workflow/unit/io/__init__.py +4 -4
  116. mat3ra/esse/models/workflow/unit/io/db.py +2 -2
  117. mat3ra/esse/models/workflow/unit/io/object_storage.py +1 -1
  118. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/METADATA +1 -1
  119. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/RECORD +122 -103
  120. mat3ra/esse/models/property/meta.py +0 -200
  121. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/WHEEL +0 -0
  122. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/licenses/LICENSE.md +0 -0
  123. {mat3ra_esse-2025.8.20.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[Union[float, str]]] = Field(..., title="1 dimension data series schema")
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
- legend: Optional[List] = Field(None, min_length=1)
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[Union[float, str]]] = Field(..., title="1 dimension data series schema")
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, Union
7
+ from typing import List
8
8
 
9
9
  from pydantic import Field, RootModel
10
10
 
11
11
 
12
- class Field1DimensionDataSeriesSchema(RootModel[List[List[Union[float, str]]]]):
13
- root: List[List[Union[float, str]]] = Field(..., title="1 dimension data series schema")
12
+ class Field1DimensionDataSeriesSchema(RootModel[List[List[float]]]):
13
+ root: List[List[float]] = Field(..., title="1 dimension data series schema")
@@ -0,0 +1,13 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/primitive/axis_3d_names_enum.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class AxisEnum(Enum):
11
+ x = "x"
12
+ y = "y"
13
+ z = "z"
@@ -42,7 +42,7 @@ class InfoForCharacteristicObtainedByExabyteCalculation(BaseModel):
42
42
  owner: EntityReferenceSchema = Field(..., title="entity reference schema")
43
43
 
44
44
 
45
- class Type59(Enum):
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 Type60(Enum):
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[Type60] = None
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[Type59] = None
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 LiteratureReferenceSchema15(BaseModel):
186
- type: Optional[Type60] = None
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
- LiteratureReferenceSchema15,
250
+ LiteratureReferenceSchema12,
251
251
  ]
252
252
  ]
253
253
  ):
254
254
  root: Union[
255
255
  InfoForCharacteristicObtainedByExabyteCalculation,
256
256
  InfoForCharacteristicObtainedByExperiment,
257
- LiteratureReferenceSchema15,
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
- materialId: Optional[str] = None
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: Optional[str] = None
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 Type17(Enum):
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[Type17] = None
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: core/reusable/coordinate_conditions.json
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")
@@ -149,21 +149,21 @@ class Units(Enum):
149
149
 
150
150
 
151
151
  class AtomicRadius(BaseModel):
152
- name: Optional[Name] = None
152
+ name: Name
153
153
  units: Optional[Units] = None
154
154
  value: float
155
155
 
156
156
 
157
- class Name463(Enum):
157
+ class Name464(Enum):
158
158
  electronegativity = "electronegativity"
159
159
 
160
160
 
161
161
  class Electronegativity(BaseModel):
162
- name: Optional[Name463] = None
162
+ name: Name464
163
163
  value: float
164
164
 
165
165
 
166
- class Name464(Enum):
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 IonizationPotential(BaseModel):
181
- name: Optional[Name464] = None
182
- units: Optional[Units184] = None
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, IonizationPotential]]] = None
188
+ properties: Optional[List[Union[AtomicRadius, Electronegativity, IonizationPotentialElementalPropertySchema]]] = (
189
+ None
190
+ )
189
191
  """
190
192
  list of elemental properties
191
193
  """