mat3ra-esse 2025.5.17.post1__py3-none-any.whl → 2025.6.5.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 (125) 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/apse/materials/builders/slab/pymatgen/parameters.py +3 -3
  5. mat3ra/esse/models/coordinates_shape_enum.py +15 -0
  6. mat3ra/esse/models/core/primitive/array_of_3_integers.py +13 -0
  7. mat3ra/esse/models/core/reusable/axis_enum.py +13 -0
  8. mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +31 -0
  9. mat3ra/esse/models/core/reusable/coordinate_conditions/base.py +21 -0
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/box.py +24 -0
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/cylinder.py +26 -0
  12. mat3ra/esse/models/core/reusable/coordinate_conditions/enum.py +15 -0
  13. mat3ra/esse/models/core/reusable/coordinate_conditions/plane.py +24 -0
  14. mat3ra/esse/models/core/reusable/coordinate_conditions/sphere.py +24 -0
  15. mat3ra/esse/models/core/reusable/coordinate_conditions/triangular_prism.py +27 -0
  16. mat3ra/esse/models/core/reusable/energy.py +2 -2
  17. mat3ra/esse/models/element.py +6 -6
  18. mat3ra/esse/models/material/__init__.py +14 -14
  19. mat3ra/esse/models/material/reusable/coordinate_conditions/base.py +21 -0
  20. mat3ra/esse/models/material/reusable/coordinate_conditions/box.py +24 -0
  21. mat3ra/esse/models/material/reusable/coordinate_conditions/cylinder.py +26 -0
  22. mat3ra/esse/models/material/reusable/coordinate_conditions/plane.py +24 -0
  23. mat3ra/esse/models/material/reusable/coordinate_conditions/sphere.py +24 -0
  24. mat3ra/esse/models/material/reusable/coordinate_conditions/triangular_prism.py +27 -0
  25. mat3ra/esse/models/material/reusable/slab/slab_configuration_with_termination.py +589 -0
  26. mat3ra/esse/models/material/reusable/slab/slab_with_termination.py +593 -0
  27. mat3ra/esse/models/material/reusable/slab/two_slabs_stack.py +618 -0
  28. mat3ra/esse/models/material/reusable/slab_configuration_with_termination.py +712 -0
  29. mat3ra/esse/models/material/reusable/stack/slab_configuration_with_termination.py +593 -0
  30. mat3ra/esse/models/material/reusable/stack/slab_in_stack.py +720 -0
  31. mat3ra/esse/models/material/reusable/stack/stack_of_slabs.py +737 -0
  32. mat3ra/esse/models/material/reusable/stack/stack_of_two_slabs.py +737 -0
  33. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_2d.py +25 -0
  34. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_3d.py +27 -0
  35. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +14 -14
  36. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/configuration.py +14 -14
  37. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/configuration.py +14 -14
  38. mat3ra/esse/models/materials_category/defects/configuration.py +14 -14
  39. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +14 -14
  40. mat3ra/esse/models/materials_category/defects/{zero_dimensional/complex/pair.py → two_dimensional/grain_boundary_plane/configuration.py} +163 -497
  41. mat3ra/esse/models/materials_category/defects/two_dimensional/island/condition_json.py +28 -0
  42. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +163 -48
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/configuration.py +130 -130
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +14 -14
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +14 -14
  46. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +14 -14
  47. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +14 -14
  48. mat3ra/esse/models/materials_category/multi_material/interfaces/configuration.py +737 -0
  49. mat3ra/esse/models/materials_category/{defects/slab/configuration.py → pristine_structures/three_dimensional/ideal_crystal.py} +142 -24
  50. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +730 -0
  51. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +17 -21
  52. mat3ra/esse/models/materials_category_components/entities/auxiliary/three_dimensional/__init__.py +3 -0
  53. mat3ra/esse/models/materials_category_components/entities/auxiliary/three_dimensional/supercell_matrix_3d.py +27 -0
  54. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/__init__.py +3 -0
  55. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/miller_indices.py +16 -0
  56. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/supercell_matrix_2d.py +25 -0
  57. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/termination.py +144 -0
  58. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/__init__.py +3 -0
  59. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +13 -0
  60. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/__init__.py +3 -0
  61. mat3ra/esse/models/{materials_category/defects/zero_dimensional/slab/configuration.py → materials_category_components/entities/core/three_dimensional/crystal.py} +142 -46
  62. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/void.py +32 -0
  63. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/__init__.py +3 -0
  64. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +27 -0
  65. mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/__init__.py +3 -0
  66. mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/atom.py +134 -0
  67. mat3ra/esse/models/materials_category_components/entities/reusable/__init__.py +3 -0
  68. mat3ra/esse/models/materials_category_components/entities/reusable/repetitions.py +25 -0
  69. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/__init__.py +3 -0
  70. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +544 -0
  71. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/base_configuration.py → materials_category_components/entities/reusable/three_dimensional/strained_uniform.py} +147 -24
  72. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/configuration.py → materials_category_components/entities/reusable/three_dimensional/supercell.py} +150 -26
  73. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/__init__.py +3 -0
  74. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py +683 -0
  75. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py +683 -0
  76. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py +687 -0
  77. mat3ra/esse/models/{materials_category/defects/by_host/two_dimensional/configuration.py → materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py} +23 -28
  78. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.py +717 -0
  79. mat3ra/esse/models/materials_category_components/operations/core/combinations/__init__.py +3 -0
  80. mat3ra/esse/models/materials_category_components/operations/core/combinations/merge.py +583 -0
  81. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack.py +555 -0
  82. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack_component.py +554 -0
  83. mat3ra/esse/models/materials_category_components/operations/core/modifications/__init__.py +3 -0
  84. mat3ra/esse/models/materials_category_components/operations/core/modifications/repeat.py +27 -0
  85. mat3ra/esse/models/materials_category_components/operations/core/modifications/strain.py +19 -0
  86. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  87. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +2 -2
  88. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +2 -2
  89. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  90. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  91. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  92. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  93. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  94. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  95. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  96. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  97. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  98. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  99. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  100. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  101. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  102. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  103. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +2 -2
  104. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  105. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  106. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/METADATA +1 -1
  107. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/RECORD +117 -65
  108. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/WHEEL +1 -1
  109. mat3ra/esse/models/materials_category/defects/enums/atom_placement_method.py +0 -22
  110. mat3ra/esse/models/materials_category/defects/enums/complex_defect_type.py +0 -18
  111. mat3ra/esse/models/materials_category/defects/enums/coordinates_shape.py +0 -21
  112. mat3ra/esse/models/materials_category/defects/enums/slab_defect_type.py +0 -19
  113. mat3ra/esse/models/materials_category/defects/enums.py +0 -13
  114. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/configuration.py +0 -1105
  115. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +0 -1026
  116. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +0 -30
  117. /mat3ra/esse/models/{materials_category/defects/by_host/two_dimensional → material/reusable/coordinate_conditions}/__init__.py +0 -0
  118. /mat3ra/esse/models/{materials_category/defects/slab → material/reusable/stack}/__init__.py +0 -0
  119. /mat3ra/esse/models/{materials_category/defects/two_dimensional/slab_grain_boundary → material/reusable/supercell}/__init__.py +0 -0
  120. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/adatom → two_dimensional/grain_boundary_plane}/__init__.py +0 -0
  121. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/complex → multi_material/interfaces}/__init__.py +0 -0
  122. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/defect_pair → pristine_structures/three_dimensional}/__init__.py +0 -0
  123. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/slab → pristine_structures/two_dimensional}/__init__.py +0 -0
  124. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/licenses/LICENSE.md +0 -0
  125. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/top_level.txt +0 -0
@@ -131,13 +131,13 @@ class Value(Enum):
131
131
  Og = "Og"
132
132
 
133
133
 
134
- class Value33(Enum):
134
+ class Value41(Enum):
135
135
  X = "X"
136
136
  Vac = "Vac"
137
137
 
138
138
 
139
139
  class AtomicElementSchema(BaseModel):
140
- value: Union[Value, Value33]
140
+ value: Union[Value, Value41]
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 Name104(Enum):
288
+ class Name136(Enum):
289
289
  density = "density"
290
290
 
291
291
 
292
- class Units46(Enum):
292
+ class Units58(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[Units46] = None
298
+ units: Optional[Units58] = None
299
299
  value: float
300
300
 
301
301
 
302
- class Units47(Enum):
302
+ class Units59(Enum):
303
303
  angstrom = "angstrom"
304
304
 
305
305
 
306
306
  class ScalarSchema(BaseModel):
307
- units: Optional[Units47] = None
307
+ units: Optional[Units59] = None
308
308
  value: float
309
309
 
310
310
 
311
- class Name105(Enum):
311
+ class Name137(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 Name106(Enum):
331
+ class Name138(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 Name107(Enum):
344
+ class Name139(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 Name108(Enum):
357
+ class Name140(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 Name109(Enum):
366
+ class Name141(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 Name110(Enum):
445
+ class Name142(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: Name110
458
+ name: Name142
459
459
  """
460
460
  Name of the consistency check that is performed, which is listed in an enum.
461
461
  """
@@ -559,13 +559,9 @@ class SlabConfigurationSchema(BaseModel):
559
559
  """
560
560
  use_conventional_cell: Optional[bool] = Field(True, title="Use Conventional Cell")
561
561
  """
562
- Whether to use conventional cell
562
+ Whether to use conventional cell when generating the slab.
563
563
  """
564
- use_orthogonal_z: Optional[bool] = Field(False, title="Use Orthogonal Z")
564
+ use_orthogonal_z: Optional[bool] = Field(True, title="Use Orthogonal Z")
565
565
  """
566
- Whether to make z-axis orthogonal
567
- """
568
- make_primitive: Optional[bool] = Field(False, title="Make Primitive")
569
- """
570
- Whether to make the slab primitive
566
+ Whether to make vector c orthogonal to ab plane for the slab cell.
571
567
  """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -0,0 +1,27 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category_components/entities/auxiliary/three_dimensional/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 ArrayOf3IntegerElementsSchema(RootModel[List[int]]):
13
+ root: List[int] = Field(..., title="array of 3 integer elements schema")
14
+
15
+
16
+ class SupercellMatrix3DSchema(RootModel[Optional[List[ArrayOf3IntegerElementsSchema]]]):
17
+ root: Optional[List[ArrayOf3IntegerElementsSchema]] = Field(
18
+ default_factory=lambda: [
19
+ ArrayOf3IntegerElementsSchema.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
@@ -0,0 +1,16 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category_components/entities/auxiliary/two_dimensional/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 [h, k, l] defining crystallographic planes
16
+ """
@@ -0,0 +1,25 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category_components/entities/auxiliary/two_dimensional/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,144 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category_components/entities/auxiliary/two_dimensional/termination.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Union
9
+
10
+ from pydantic import BaseModel, Field, constr
11
+
12
+
13
+ class ChemicalElements(Enum):
14
+ H = "H"
15
+ He = "He"
16
+ Li = "Li"
17
+ Be = "Be"
18
+ B = "B"
19
+ C = "C"
20
+ N = "N"
21
+ O = "O"
22
+ F = "F"
23
+ Ne = "Ne"
24
+ Na = "Na"
25
+ Mg = "Mg"
26
+ Al = "Al"
27
+ Si = "Si"
28
+ P = "P"
29
+ S = "S"
30
+ Cl = "Cl"
31
+ Ar = "Ar"
32
+ K = "K"
33
+ Ca = "Ca"
34
+ Sc = "Sc"
35
+ Ti = "Ti"
36
+ V = "V"
37
+ Cr = "Cr"
38
+ Mn = "Mn"
39
+ Fe = "Fe"
40
+ Co = "Co"
41
+ Ni = "Ni"
42
+ Cu = "Cu"
43
+ Zn = "Zn"
44
+ Ga = "Ga"
45
+ Ge = "Ge"
46
+ As = "As"
47
+ Se = "Se"
48
+ Br = "Br"
49
+ Kr = "Kr"
50
+ Rb = "Rb"
51
+ Sr = "Sr"
52
+ Y = "Y"
53
+ Zr = "Zr"
54
+ Nb = "Nb"
55
+ Mo = "Mo"
56
+ Tc = "Tc"
57
+ Ru = "Ru"
58
+ Rh = "Rh"
59
+ Pd = "Pd"
60
+ Ag = "Ag"
61
+ Cd = "Cd"
62
+ In = "In"
63
+ Sn = "Sn"
64
+ Sb = "Sb"
65
+ Te = "Te"
66
+ I = "I"
67
+ Xe = "Xe"
68
+ Cs = "Cs"
69
+ Ba = "Ba"
70
+ La = "La"
71
+ Ce = "Ce"
72
+ Pr = "Pr"
73
+ Nd = "Nd"
74
+ Pm = "Pm"
75
+ Sm = "Sm"
76
+ Eu = "Eu"
77
+ Gd = "Gd"
78
+ Tb = "Tb"
79
+ Dy = "Dy"
80
+ Ho = "Ho"
81
+ Er = "Er"
82
+ Tm = "Tm"
83
+ Yb = "Yb"
84
+ Lu = "Lu"
85
+ Hf = "Hf"
86
+ Ta = "Ta"
87
+ W = "W"
88
+ Re = "Re"
89
+ Os = "Os"
90
+ Ir = "Ir"
91
+ Pt = "Pt"
92
+ Au = "Au"
93
+ Hg = "Hg"
94
+ Tl = "Tl"
95
+ Pb = "Pb"
96
+ Bi = "Bi"
97
+ Po = "Po"
98
+ At = "At"
99
+ Rn = "Rn"
100
+ Fr = "Fr"
101
+ Ra = "Ra"
102
+ Ac = "Ac"
103
+ Th = "Th"
104
+ Pa = "Pa"
105
+ U = "U"
106
+ Np = "Np"
107
+ Pu = "Pu"
108
+ Am = "Am"
109
+ Cm = "Cm"
110
+ Bk = "Bk"
111
+ Cf = "Cf"
112
+ Es = "Es"
113
+ Fm = "Fm"
114
+ Md = "Md"
115
+ No = "No"
116
+ Lr = "Lr"
117
+ Rf = "Rf"
118
+ Db = "Db"
119
+ Sg = "Sg"
120
+ Bh = "Bh"
121
+ Hs = "Hs"
122
+ Mt = "Mt"
123
+ Ds = "Ds"
124
+ Rg = "Rg"
125
+ Cn = "Cn"
126
+ Nh = "Nh"
127
+ Fl = "Fl"
128
+ Mc = "Mc"
129
+ Lv = "Lv"
130
+ Ts = "Ts"
131
+ Og = "Og"
132
+
133
+
134
+ class TerminationSchema(BaseModel):
135
+ chemical_elements: Union[ChemicalElements, constr(pattern=r"^[A-Z][a-z]?([A-Z][a-z]?)*$")] = Field(
136
+ ..., title="Chemical Elements"
137
+ )
138
+ """
139
+ Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
140
+ """
141
+ space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
142
+ """
143
+ Space group symmetry designation for the termination
144
+ """
@@ -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: materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import List
8
+
9
+ from pydantic import BaseModel, Field
10
+
11
+
12
+ class CrystalSiteSchema(BaseModel):
13
+ coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5
@@ -1,5 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
- # filename: materials_category/defects/zero_dimensional/slab/configuration.json
2
+ # filename: materials_category_components/entities/core/three_dimensional/crystal.json
3
3
  # version: 0.28.5
4
4
 
5
5
  from __future__ import annotations
@@ -10,10 +10,136 @@ from typing import Any, Dict, List, Literal, Optional, Union
10
10
  from pydantic import BaseModel, Field, RootModel, confloat, conint
11
11
 
12
12
 
13
+ class Value(Enum):
14
+ H = "H"
15
+ He = "He"
16
+ Li = "Li"
17
+ Be = "Be"
18
+ B = "B"
19
+ C = "C"
20
+ N = "N"
21
+ O = "O"
22
+ F = "F"
23
+ Ne = "Ne"
24
+ Na = "Na"
25
+ Mg = "Mg"
26
+ Al = "Al"
27
+ Si = "Si"
28
+ P = "P"
29
+ S = "S"
30
+ Cl = "Cl"
31
+ Ar = "Ar"
32
+ K = "K"
33
+ Ca = "Ca"
34
+ Sc = "Sc"
35
+ Ti = "Ti"
36
+ V = "V"
37
+ Cr = "Cr"
38
+ Mn = "Mn"
39
+ Fe = "Fe"
40
+ Co = "Co"
41
+ Ni = "Ni"
42
+ Cu = "Cu"
43
+ Zn = "Zn"
44
+ Ga = "Ga"
45
+ Ge = "Ge"
46
+ As = "As"
47
+ Se = "Se"
48
+ Br = "Br"
49
+ Kr = "Kr"
50
+ Rb = "Rb"
51
+ Sr = "Sr"
52
+ Y = "Y"
53
+ Zr = "Zr"
54
+ Nb = "Nb"
55
+ Mo = "Mo"
56
+ Tc = "Tc"
57
+ Ru = "Ru"
58
+ Rh = "Rh"
59
+ Pd = "Pd"
60
+ Ag = "Ag"
61
+ Cd = "Cd"
62
+ In = "In"
63
+ Sn = "Sn"
64
+ Sb = "Sb"
65
+ Te = "Te"
66
+ I = "I"
67
+ Xe = "Xe"
68
+ Cs = "Cs"
69
+ Ba = "Ba"
70
+ La = "La"
71
+ Ce = "Ce"
72
+ Pr = "Pr"
73
+ Nd = "Nd"
74
+ Pm = "Pm"
75
+ Sm = "Sm"
76
+ Eu = "Eu"
77
+ Gd = "Gd"
78
+ Tb = "Tb"
79
+ Dy = "Dy"
80
+ Ho = "Ho"
81
+ Er = "Er"
82
+ Tm = "Tm"
83
+ Yb = "Yb"
84
+ Lu = "Lu"
85
+ Hf = "Hf"
86
+ Ta = "Ta"
87
+ W = "W"
88
+ Re = "Re"
89
+ Os = "Os"
90
+ Ir = "Ir"
91
+ Pt = "Pt"
92
+ Au = "Au"
93
+ Hg = "Hg"
94
+ Tl = "Tl"
95
+ Pb = "Pb"
96
+ Bi = "Bi"
97
+ Po = "Po"
98
+ At = "At"
99
+ Rn = "Rn"
100
+ Fr = "Fr"
101
+ Ra = "Ra"
102
+ Ac = "Ac"
103
+ Th = "Th"
104
+ Pa = "Pa"
105
+ U = "U"
106
+ Np = "Np"
107
+ Pu = "Pu"
108
+ Am = "Am"
109
+ Cm = "Cm"
110
+ Bk = "Bk"
111
+ Cf = "Cf"
112
+ Es = "Es"
113
+ Fm = "Fm"
114
+ Md = "Md"
115
+ No = "No"
116
+ Lr = "Lr"
117
+ Rf = "Rf"
118
+ Db = "Db"
119
+ Sg = "Sg"
120
+ Bh = "Bh"
121
+ Hs = "Hs"
122
+ Mt = "Mt"
123
+ Ds = "Ds"
124
+ Rg = "Rg"
125
+ Cn = "Cn"
126
+ Nh = "Nh"
127
+ Fl = "Fl"
128
+ Mc = "Mc"
129
+ Lv = "Lv"
130
+ Ts = "Ts"
131
+ Og = "Og"
132
+
133
+
134
+ class Value15(Enum):
135
+ X = "X"
136
+ Vac = "Vac"
137
+
138
+
13
139
  class AtomicElementSchema(BaseModel):
14
- value: str
140
+ value: Union[Value, Value15]
15
141
  """
16
- value of this entry
142
+ All elements, including extra elements
17
143
  """
18
144
  id: int
19
145
  """
@@ -159,30 +285,30 @@ class VolumeSchema(BaseModel):
159
285
  value: float
160
286
 
161
287
 
162
- class Name48(Enum):
288
+ class Name33(Enum):
163
289
  density = "density"
164
290
 
165
291
 
166
- class Units25(Enum):
292
+ class Units19(Enum):
167
293
  g_cm_3 = "g/cm^3"
168
294
 
169
295
 
170
296
  class DensitySchema(BaseModel):
171
297
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
172
- units: Optional[Units25] = None
298
+ units: Optional[Units19] = None
173
299
  value: float
174
300
 
175
301
 
176
- class Units26(Enum):
302
+ class Units20(Enum):
177
303
  angstrom = "angstrom"
178
304
 
179
305
 
180
306
  class ScalarSchema(BaseModel):
181
- units: Optional[Units26] = None
307
+ units: Optional[Units20] = None
182
308
  value: float
183
309
 
184
310
 
185
- class Name49(Enum):
311
+ class Name34(Enum):
186
312
  symmetry = "symmetry"
187
313
 
188
314
 
@@ -202,7 +328,7 @@ class SymmetrySchema(BaseModel):
202
328
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
203
329
 
204
330
 
205
- class Name50(Enum):
331
+ class Name35(Enum):
206
332
  elemental_ratio = "elemental_ratio"
207
333
 
208
334
 
@@ -215,7 +341,7 @@ class ElementalRatio(BaseModel):
215
341
  """
216
342
 
217
343
 
218
- class Name51(Enum):
344
+ class Name36(Enum):
219
345
  p_norm = "p-norm"
220
346
 
221
347
 
@@ -228,7 +354,7 @@ class PNorm(BaseModel):
228
354
  value: float
229
355
 
230
356
 
231
- class Name52(Enum):
357
+ class Name37(Enum):
232
358
  inchi = "inchi"
233
359
 
234
360
 
@@ -237,7 +363,7 @@ class InChIRepresentationSchema(BaseModel):
237
363
  value: str
238
364
 
239
365
 
240
- class Name53(Enum):
366
+ class Name38(Enum):
241
367
  inchi_key = "inchi_key"
242
368
 
243
369
 
@@ -316,7 +442,7 @@ class FileSourceSchema(BaseModel):
316
442
  """
317
443
 
318
444
 
319
- class Name54(Enum):
445
+ class Name39(Enum):
320
446
  default = "default"
321
447
  atomsTooClose = "atomsTooClose"
322
448
  atomsOverlap = "atomsOverlap"
@@ -329,7 +455,7 @@ class Severity(Enum):
329
455
 
330
456
 
331
457
  class MaterialConsistencyCheckSchema(BaseModel):
332
- name: Name54
458
+ name: Name39
333
459
  """
334
460
  Name of the consistency check that is performed, which is listed in an enum.
335
461
  """
@@ -347,7 +473,7 @@ class MaterialConsistencyCheckSchema(BaseModel):
347
473
  """
348
474
 
349
475
 
350
- class MaterialSchema(BaseModel):
476
+ class CrystalSchema(BaseModel):
351
477
  formula: Optional[str] = None
352
478
  """
353
479
  reduced chemical formula
@@ -402,33 +528,3 @@ class MaterialSchema(BaseModel):
402
528
  Identifies that entity is defaultable
403
529
  """
404
530
  metadata: Optional[Dict[str, Any]] = None
405
-
406
-
407
- class DefectType(Enum):
408
- vacancy = "vacancy"
409
- substitution = "substitution"
410
- interstitial = "interstitial"
411
- adatom = "adatom"
412
-
413
-
414
- class SlabPointDefectConfigurationSchema(BaseModel):
415
- position_on_surface: List[float] = Field(..., max_length=2, min_length=2, title="coordinate 2d schema")
416
- distance_z: confloat(ge=0.0)
417
- """
418
- Distance from the surface in Angstroms
419
- """
420
- number_of_added_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
421
- """
422
- Number of atomic layers in a structural component
423
- """
424
- crystal: MaterialSchema = Field(..., title="material schema")
425
- defect_type: DefectType
426
- coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
427
- chemical_element: Optional[str] = None
428
- """
429
- The chemical element for substitution or interstitial defects
430
- """
431
- use_cartesian_coordinates: Optional[bool] = False
432
- """
433
- Whether coordinates are in cartesian rather than fractional coordinates
434
- """
@@ -0,0 +1,32 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category_components/entities/core/three_dimensional/void.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")
25
+
26
+
27
+ class VoidSchema(BaseModel):
28
+ center_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
29
+ shape: BoxCoordinateConditionSchema = Field(..., title="Coordinate Conditions Schema")
30
+ """
31
+ Combined schema for all coordinate condition types
32
+ """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5