mat3ra-esse 2025.5.17.post0__py3-none-any.whl → 2025.5.17.post2__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 (84) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw_x.py +6 -6
  4. mat3ra/esse/models/coordinates_shape_enum.py +15 -0
  5. mat3ra/esse/models/core/reusable/axis_enum.py +13 -0
  6. mat3ra/esse/models/core/reusable/coordinate_conditions/base.py +21 -0
  7. mat3ra/esse/models/core/reusable/coordinate_conditions/box.py +24 -0
  8. mat3ra/esse/models/core/reusable/coordinate_conditions/cylinder.py +26 -0
  9. mat3ra/esse/models/core/reusable/coordinate_conditions/enum.py +15 -0
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/plane.py +24 -0
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/sphere.py +24 -0
  12. mat3ra/esse/models/core/reusable/coordinate_conditions/triangular_prism.py +27 -0
  13. mat3ra/esse/models/core/reusable/energy.py +2 -2
  14. mat3ra/esse/models/element.py +6 -6
  15. mat3ra/esse/models/material/__init__.py +14 -14
  16. mat3ra/esse/models/material/reusable/coordinate_conditions/base.py +21 -0
  17. mat3ra/esse/models/material/reusable/coordinate_conditions/box.py +24 -0
  18. mat3ra/esse/models/material/reusable/coordinate_conditions/cylinder.py +26 -0
  19. mat3ra/esse/models/material/reusable/coordinate_conditions/plane.py +24 -0
  20. mat3ra/esse/models/material/reusable/coordinate_conditions/sphere.py +24 -0
  21. mat3ra/esse/models/material/reusable/coordinate_conditions/triangular_prism.py +27 -0
  22. mat3ra/esse/models/{materials_category/defects/slab/configuration.py → material/reusable/slab/slab_configuration_with_termination.py} +195 -18
  23. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/configuration.py → material/reusable/slab/slab_with_termination.py} +198 -23
  24. mat3ra/esse/models/material/reusable/slab/two_slabs_stack.py +618 -0
  25. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/base_configuration.py → material/reusable/slab_configuration_with_termination.py} +318 -24
  26. mat3ra/esse/models/material/reusable/stack/slab_configuration_with_termination.py +593 -0
  27. mat3ra/esse/models/material/reusable/stack/slab_in_stack.py +720 -0
  28. mat3ra/esse/models/material/reusable/stack/stack_of_slabs.py +737 -0
  29. mat3ra/esse/models/material/reusable/stack/stack_of_two_slabs.py +737 -0
  30. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_2d.py +25 -0
  31. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_3d.py +27 -0
  32. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +14 -14
  33. mat3ra/esse/models/materials_category/defects/{zero_dimensional/slab → by_host/two_dimensional/layered}/configuration.py +149 -34
  34. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/{configuration.py → point/configuration.py} +19 -15
  35. mat3ra/esse/models/materials_category/defects/configuration.py +18 -14
  36. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +157 -19
  37. mat3ra/esse/models/materials_category/defects/two_dimensional/{slab_grain_boundary → grain_boundary_plane}/configuration.py +499 -404
  38. mat3ra/esse/models/materials_category/defects/two_dimensional/island/condition_json.py +28 -0
  39. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +163 -48
  40. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/__init__.py +3 -0
  41. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/{pair.py → pair/configuration.py} +137 -133
  42. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +14 -14
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +14 -14
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +14 -14
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +14 -14
  46. mat3ra/esse/models/materials_category/multi_material/interfaces/__init__.py +3 -0
  47. mat3ra/esse/models/materials_category/multi_material/interfaces/configuration.py +737 -0
  48. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +17 -21
  49. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  50. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  51. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  52. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  53. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  54. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  55. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  56. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  57. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  58. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  59. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  60. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  61. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  62. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  63. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  64. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  65. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  66. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/METADATA +1 -1
  67. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/RECORD +77 -58
  68. mat3ra/esse/models/materials_category/defects/enums/atom_placement_method.py +0 -22
  69. mat3ra/esse/models/materials_category/defects/enums/complex_defect_type.py +0 -18
  70. mat3ra/esse/models/materials_category/defects/enums/coordinates_shape.py +0 -21
  71. mat3ra/esse/models/materials_category/defects/enums/slab_defect_type.py +0 -19
  72. mat3ra/esse/models/materials_category/defects/enums.py +0 -13
  73. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +0 -1026
  74. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +0 -30
  75. /mat3ra/esse/models/{materials_category/defects/by_host/two_dimensional → core/reusable/coordinate_conditions}/__init__.py +0 -0
  76. /mat3ra/esse/models/{materials_category/defects/slab → material/reusable/coordinate_conditions}/__init__.py +0 -0
  77. /mat3ra/esse/models/{materials_category/defects/two_dimensional/slab_grain_boundary → material/reusable/stack}/__init__.py +0 -0
  78. /mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom → material/reusable/supercell}/__init__.py +0 -0
  79. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/complex → by_host/two_dimensional/layered}/__init__.py +0 -0
  80. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/defect_pair → by_host/two_dimensional/point}/__init__.py +0 -0
  81. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/slab → two_dimensional/grain_boundary_plane}/__init__.py +0 -0
  82. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/WHEEL +0 -0
  83. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/licenses/LICENSE.md +0 -0
  84. {mat3ra_esse-2025.5.17.post0.dist-info → mat3ra_esse-2025.5.17.post2.dist-info}/top_level.txt +0 -0
@@ -1663,7 +1663,7 @@ class CardOption(Enum):
1663
1663
  crystal_sg = "crystal_sg"
1664
1664
 
1665
1665
 
1666
- class Value35(BaseModel):
1666
+ class Value47(BaseModel):
1667
1667
  model_config = ConfigDict(
1668
1668
  extra="forbid",
1669
1669
  )
@@ -1693,7 +1693,7 @@ class AtomicPositionsSchema(BaseModel):
1693
1693
  extra="forbid",
1694
1694
  )
1695
1695
  card_option: Optional[CardOption] = "alat"
1696
- values: Optional[List[Value35]] = None
1696
+ values: Optional[List[Value47]] = None
1697
1697
 
1698
1698
 
1699
1699
  class CardOption5(Enum):
@@ -1707,7 +1707,7 @@ class CardOption5(Enum):
1707
1707
  crystal_c = "crystal_c"
1708
1708
 
1709
1709
 
1710
- class Value36(BaseModel):
1710
+ class Value48(BaseModel):
1711
1711
  model_config = ConfigDict(
1712
1712
  extra="forbid",
1713
1713
  )
@@ -1756,7 +1756,7 @@ class KPointsSchema(BaseModel):
1756
1756
  extra="forbid",
1757
1757
  )
1758
1758
  card_option: Optional[CardOption5] = None
1759
- values: Optional[Union[List[Value36], Values]] = None
1759
+ values: Optional[Union[List[Value48], Values]] = None
1760
1760
 
1761
1761
 
1762
1762
  class CardOption6(Enum):
@@ -1853,7 +1853,7 @@ class ParamType(Enum):
1853
1853
  E3 = "E3"
1854
1854
 
1855
1855
 
1856
- class Value37(BaseModel):
1856
+ class Value49(BaseModel):
1857
1857
  model_config = ConfigDict(
1858
1858
  extra="forbid",
1859
1859
  )
@@ -1967,7 +1967,7 @@ class HubbardSchema(BaseModel):
1967
1967
  )
1968
1968
  card_option: Optional[CardOption7] = None
1969
1969
  values: Optional[
1970
- Union[List[Union[Values9, Values10]], List[Value37], List[Union[Values11, Values12, Values13]]]
1970
+ Union[List[Union[Values9, Values10]], List[Value49], List[Union[Values11, Values12, Values13]]]
1971
1971
  ] = None
1972
1972
 
1973
1973
 
@@ -0,0 +1,15 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: coordinates_shape_enum.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class CoordinateShapeEnum(Enum):
11
+ cylinder = "cylinder"
12
+ sphere = "sphere"
13
+ box = "box"
14
+ triangular_prism = "triangular_prism"
15
+ plane = "plane"
@@ -0,0 +1,13 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/reusable/axis_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"
@@ -0,0 +1,21 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/reusable/coordinate_conditions/base.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+ from pydantic import BaseModel, Field
10
+
11
+
12
+ class CoordinateShapeEnum(Enum):
13
+ cylinder = "cylinder"
14
+ sphere = "sphere"
15
+ box = "box"
16
+ triangular_prism = "triangular_prism"
17
+ plane = "plane"
18
+
19
+
20
+ class CoordinateConditionSchema(BaseModel):
21
+ shape: CoordinateShapeEnum = Field(..., title="Coordinate Shape Enum")
@@ -0,0 +1,24 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/reusable/coordinate_conditions/box.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal
9
+
10
+ from pydantic import BaseModel, Field
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(..., 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")
@@ -0,0 +1,26 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/reusable/coordinate_conditions/cylinder.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal, Optional
9
+
10
+ from pydantic import BaseModel, Field
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 CylinderCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["cylinder"] = Field(..., title="Coordinate Shape Enum")
23
+ center_coordinate: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="coordinate 3d schema")
24
+ radius: float
25
+ min_z: float
26
+ max_z: float
@@ -0,0 +1,15 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/reusable/coordinate_conditions/enum.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class CoordinateShapeEnum(Enum):
11
+ cylinder = "cylinder"
12
+ sphere = "sphere"
13
+ box = "box"
14
+ triangular_prism = "triangular_prism"
15
+ plane = "plane"
@@ -0,0 +1,24 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/reusable/coordinate_conditions/plane.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal
9
+
10
+ from pydantic import BaseModel, Field
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 PlaneCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["plane"] = Field(..., title="Coordinate Shape Enum")
23
+ plane_normal: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
24
+ plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
@@ -0,0 +1,24 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/reusable/coordinate_conditions/sphere.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal
9
+
10
+ from pydantic import BaseModel, Field
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 SphereCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["sphere"] = Field(..., title="Coordinate Shape Enum")
23
+ center_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
24
+ radius: float
@@ -0,0 +1,27 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: core/reusable/coordinate_conditions/triangular_prism.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal
9
+
10
+ from pydantic import BaseModel, Field
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 TriangularPrismCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["triangular_prism"] = Field(..., title="Coordinate Shape Enum")
23
+ position_on_surface_1: List[float] = Field(..., max_length=2, min_length=2, title="coordinate 2d schema")
24
+ position_on_surface_2: List[float] = Field(..., max_length=2, min_length=2, title="coordinate 2d schema")
25
+ position_on_surface_3: List[float] = Field(..., max_length=2, min_length=2, title="coordinate 2d schema")
26
+ min_z: float
27
+ max_z: float
@@ -20,11 +20,11 @@ class Units(Enum):
20
20
  eV_atom = "eV/atom"
21
21
 
22
22
 
23
- class Units45(Enum):
23
+ class Units72(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, Units45]
29
+ units: Union[Units, Units72]
30
30
  value: float
@@ -154,20 +154,20 @@ class AtomicRadius(BaseModel):
154
154
  value: float
155
155
 
156
156
 
157
- class Name87(Enum):
157
+ class Name159(Enum):
158
158
  electronegativity = "electronegativity"
159
159
 
160
160
 
161
161
  class Electronegativity(BaseModel):
162
- name: Optional[Name87] = None
162
+ name: Optional[Name159] = None
163
163
  value: float
164
164
 
165
165
 
166
- class Name88(Enum):
166
+ class Name160(Enum):
167
167
  ionization_potential = "ionization_potential"
168
168
 
169
169
 
170
- class Units43(Enum):
170
+ class Units70(Enum):
171
171
  kJ_mol = "kJ/mol"
172
172
  eV = "eV"
173
173
  J_mol = "J/mol"
@@ -178,8 +178,8 @@ class Units43(Enum):
178
178
 
179
179
 
180
180
  class IonizationPotential(BaseModel):
181
- name: Optional[Name88] = None
182
- units: Optional[Units43] = None
181
+ name: Optional[Name160] = None
182
+ units: Optional[Units70] = None
183
183
  value: float
184
184
 
185
185
 
@@ -131,13 +131,13 @@ class Value(Enum):
131
131
  Og = "Og"
132
132
 
133
133
 
134
- class Value27(Enum):
134
+ class Value45(Enum):
135
135
  X = "X"
136
136
  Vac = "Vac"
137
137
 
138
138
 
139
139
  class AtomicElementSchema(BaseModel):
140
- value: Union[Value, Value27]
140
+ value: Union[Value, Value45]
141
141
  """
142
142
  All elements, including extra elements
143
143
  """
@@ -285,30 +285,30 @@ class VolumeSchema(BaseModel):
285
285
  value: float
286
286
 
287
287
 
288
- class Name109(Enum):
288
+ class Name181(Enum):
289
289
  density = "density"
290
290
 
291
291
 
292
- class Units60(Enum):
292
+ class Units87(Enum):
293
293
  g_cm_3 = "g/cm^3"
294
294
 
295
295
 
296
296
  class DensitySchema(BaseModel):
297
297
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
298
- units: Optional[Units60] = None
298
+ units: Optional[Units87] = None
299
299
  value: float
300
300
 
301
301
 
302
- class Units61(Enum):
302
+ class Units88(Enum):
303
303
  angstrom = "angstrom"
304
304
 
305
305
 
306
306
  class ScalarSchema(BaseModel):
307
- units: Optional[Units61] = None
307
+ units: Optional[Units88] = None
308
308
  value: float
309
309
 
310
310
 
311
- class Name110(Enum):
311
+ class Name182(Enum):
312
312
  symmetry = "symmetry"
313
313
 
314
314
 
@@ -328,7 +328,7 @@ class SymmetrySchema(BaseModel):
328
328
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
329
329
 
330
330
 
331
- class Name111(Enum):
331
+ class Name183(Enum):
332
332
  elemental_ratio = "elemental_ratio"
333
333
 
334
334
 
@@ -341,7 +341,7 @@ class ElementalRatio(BaseModel):
341
341
  """
342
342
 
343
343
 
344
- class Name112(Enum):
344
+ class Name184(Enum):
345
345
  p_norm = "p-norm"
346
346
 
347
347
 
@@ -354,7 +354,7 @@ class PNorm(BaseModel):
354
354
  value: float
355
355
 
356
356
 
357
- class Name113(Enum):
357
+ class Name185(Enum):
358
358
  inchi = "inchi"
359
359
 
360
360
 
@@ -363,7 +363,7 @@ class InChIRepresentationSchema(BaseModel):
363
363
  value: str
364
364
 
365
365
 
366
- class Name114(Enum):
366
+ class Name186(Enum):
367
367
  inchi_key = "inchi_key"
368
368
 
369
369
 
@@ -442,7 +442,7 @@ class FileSourceSchema(BaseModel):
442
442
  """
443
443
 
444
444
 
445
- class Name115(Enum):
445
+ class Name187(Enum):
446
446
  default = "default"
447
447
  atomsTooClose = "atomsTooClose"
448
448
  atomsOverlap = "atomsOverlap"
@@ -455,7 +455,7 @@ class Severity(Enum):
455
455
 
456
456
 
457
457
  class MaterialConsistencyCheckSchema(BaseModel):
458
- name: Name115
458
+ name: Name187
459
459
  """
460
460
  Name of the consistency check that is performed, which is listed in an enum.
461
461
  """
@@ -0,0 +1,21 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/coordinate_conditions/base.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+ from pydantic import BaseModel, Field
10
+
11
+
12
+ class CoordinateShapeEnum(Enum):
13
+ cylinder = "cylinder"
14
+ sphere = "sphere"
15
+ box = "box"
16
+ triangular_prism = "triangular_prism"
17
+ plane = "plane"
18
+
19
+
20
+ class CoordinateConditionSchema(BaseModel):
21
+ shape: CoordinateShapeEnum = Field(..., title="Coordinate Shape Enum")
@@ -0,0 +1,24 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/coordinate_conditions/box.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal
9
+
10
+ from pydantic import BaseModel, Field
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(..., title="Coordinate Shape Enum")
23
+ min_coordinate: List[float] = Field(..., max_length=3, min_length=3)
24
+ max_coordinate: List[float] = Field(..., max_length=3, min_length=3)
@@ -0,0 +1,26 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/coordinate_conditions/cylinder.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal, Optional
9
+
10
+ from pydantic import BaseModel, Field
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 CylinderCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["cylinder"] = Field(..., title="Coordinate Shape Enum")
23
+ center_position: Optional[List[float]] = Field([0.5, 0.5], max_length=2, min_length=2)
24
+ radius: Optional[float] = 0.25
25
+ min_z: Optional[float] = 0
26
+ max_z: Optional[float] = 1
@@ -0,0 +1,24 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/coordinate_conditions/plane.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal
9
+
10
+ from pydantic import BaseModel, Field
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 PlaneCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["plane"] = Field(..., title="Coordinate Shape Enum")
23
+ plane_normal: List[float] = Field(..., max_length=3, min_length=3)
24
+ plane_point_coordinate: List[float] = Field(..., max_length=3, min_length=3)
@@ -0,0 +1,24 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/coordinate_conditions/sphere.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal, Optional
9
+
10
+ from pydantic import BaseModel, Field
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 SphereCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["sphere"] = Field(..., title="Coordinate Shape Enum")
23
+ center_position: Optional[List[float]] = Field([0.5, 0.5], max_length=2, min_length=2)
24
+ radius: Optional[float] = 0.25
@@ -0,0 +1,27 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: material/reusable/coordinate_conditions/triangular_prism.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Literal
9
+
10
+ from pydantic import BaseModel, Field
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 TriangularPrismCoordinateConditionSchema(BaseModel):
22
+ shape: Literal["triangular_prism"] = Field(..., title="Coordinate Shape Enum")
23
+ position_on_surface_1: List[float] = Field(..., max_length=2, min_length=2)
24
+ position_on_surface_2: List[float] = Field(..., max_length=2, min_length=2)
25
+ position_on_surface_3: List[float] = Field(..., max_length=2, min_length=2)
26
+ min_z: float
27
+ max_z: float