mat3ra-esse 2025.5.16.post0__py3-none-any.whl → 2025.5.17.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 (81) 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 +8 -8
  4. mat3ra/esse/models/core/reusable/energy.py +2 -2
  5. mat3ra/esse/models/definitions/chemical_elements.py +13 -0
  6. mat3ra/esse/models/definitions/materials.py +13 -0
  7. mat3ra/esse/models/element.py +128 -10
  8. mat3ra/esse/models/enums/__init__.py +3 -0
  9. mat3ra/esse/models/enums/chemical_elements.py +13 -0
  10. mat3ra/esse/models/material/__init__.py +140 -14
  11. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/selector_parameters.py +128 -4
  12. mat3ra/esse/models/material/reusable/slab/enums/__init__.py +3 -0
  13. mat3ra/esse/models/material/reusable/slab/enums/exposed_face.py +13 -0
  14. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +1 -1
  15. mat3ra/esse/models/material/reusable/slab/termination.py +129 -3
  16. mat3ra/esse/models/material/reusable/slab/vacuum.py +2 -2
  17. mat3ra/esse/models/materials_category/defects/__init__.py +3 -0
  18. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/__init__.py +3 -0
  19. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/__init__.py +3 -0
  20. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +672 -0
  21. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/configuration.py +546 -0
  22. mat3ra/esse/models/materials_category/defects/configuration.py +541 -0
  23. mat3ra/esse/models/materials_category/defects/enums/__init__.py +3 -0
  24. mat3ra/esse/models/materials_category/defects/enums/atom_placement_method.py +22 -0
  25. mat3ra/esse/models/materials_category/defects/enums/complex_defect_type.py +18 -0
  26. mat3ra/esse/models/materials_category/defects/enums/coordinates_shape.py +21 -0
  27. mat3ra/esse/models/materials_category/defects/enums/point_defect_type.py +13 -0
  28. mat3ra/esse/models/materials_category/defects/enums/slab_defect_type.py +19 -0
  29. mat3ra/esse/models/materials_category/defects/enums.py +13 -0
  30. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/__init__.py +3 -0
  31. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +425 -0
  32. mat3ra/esse/models/materials_category/defects/slab/__init__.py +3 -0
  33. mat3ra/esse/models/materials_category/defects/slab/configuration.py +412 -0
  34. mat3ra/esse/models/materials_category/defects/two_dimensional/island/__init__.py +3 -0
  35. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +449 -0
  36. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/__init__.py +3 -0
  37. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/configuration.py +1105 -0
  38. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/__init__.py +3 -0
  39. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/base_configuration.py +418 -0
  40. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/configuration.py +418 -0
  41. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/__init__.py +3 -0
  42. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair.py +1534 -0
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/__init__.py +3 -0
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +1026 -0
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/__init__.py +3 -0
  46. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +30 -0
  47. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +672 -0
  48. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/__init__.py +3 -0
  49. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +672 -0
  50. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/__init__.py +3 -0
  51. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +672 -0
  52. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/__init__.py +3 -0
  53. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +672 -0
  54. mat3ra/esse/models/materials_category/defects/zero_dimensional/slab/__init__.py +3 -0
  55. mat3ra/esse/models/materials_category/defects/zero_dimensional/slab/configuration.py +434 -0
  56. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +142 -16
  57. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  58. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  59. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  60. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  61. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  62. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  63. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  64. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  65. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  66. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  67. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  68. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  69. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  70. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  71. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  72. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +128 -2
  73. mat3ra/esse/models/properties_directory/structural/basis/atomic_element.py +131 -2
  74. mat3ra/esse/models/properties_directory/structural/basis/atomic_elements.py +130 -3
  75. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  76. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  77. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/METADATA +1 -1
  78. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/RECORD +81 -36
  79. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/WHEEL +0 -0
  80. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/licenses/LICENSE.md +0 -0
  81. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.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 Value5(BaseModel):
1666
+ class Value35(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[Value5]] = None
1696
+ values: Optional[List[Value35]] = 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 Value6(BaseModel):
1710
+ class Value36(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[Value6], Values]] = None
1759
+ values: Optional[Union[List[Value36], 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 Value7(BaseModel):
1856
+ class Value37(BaseModel):
1857
1857
  model_config = ConfigDict(
1858
1858
  extra="forbid",
1859
1859
  )
@@ -1966,9 +1966,9 @@ class HubbardSchema(BaseModel):
1966
1966
  extra="forbid",
1967
1967
  )
1968
1968
  card_option: Optional[CardOption7] = None
1969
- values: Optional[Union[List[Union[Values9, Values10]], List[Value7], List[Union[Values11, Values12, Values13]]]] = (
1970
- None
1971
- )
1969
+ values: Optional[
1970
+ Union[List[Union[Values9, Values10]], List[Value37], List[Union[Values11, Values12, Values13]]]
1971
+ ] = None
1972
1972
 
1973
1973
 
1974
1974
  class PwxMainSchema(BaseModel):
@@ -20,11 +20,11 @@ class Units(Enum):
20
20
  eV_atom = "eV/atom"
21
21
 
22
22
 
23
- class Units24(Enum):
23
+ class Units45(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, Units24]
29
+ units: Union[Units, Units45]
30
30
  value: float
@@ -0,0 +1,13 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: definitions/chemical_elements.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 ChemicalElementSymbols(RootModel[Any]):
13
+ root: Any = Field(..., title="Chemical Element Symbols")
@@ -0,0 +1,13 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: definitions/materials.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")
@@ -10,6 +10,127 @@ from typing import List, Optional, Union
10
10
  from pydantic import BaseModel
11
11
 
12
12
 
13
+ class Symbol(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
+
13
134
  class Name(Enum):
14
135
  atomic_radius = "atomic_radius"
15
136
 
@@ -33,20 +154,20 @@ class AtomicRadius(BaseModel):
33
154
  value: float
34
155
 
35
156
 
36
- class Name31(Enum):
157
+ class Name87(Enum):
37
158
  electronegativity = "electronegativity"
38
159
 
39
160
 
40
161
  class Electronegativity(BaseModel):
41
- name: Optional[Name31] = None
162
+ name: Optional[Name87] = None
42
163
  value: float
43
164
 
44
165
 
45
- class Name32(Enum):
166
+ class Name88(Enum):
46
167
  ionization_potential = "ionization_potential"
47
168
 
48
169
 
49
- class Units22(Enum):
170
+ class Units43(Enum):
50
171
  kJ_mol = "kJ/mol"
51
172
  eV = "eV"
52
173
  J_mol = "J/mol"
@@ -57,16 +178,13 @@ class Units22(Enum):
57
178
 
58
179
 
59
180
  class IonizationPotential(BaseModel):
60
- name: Optional[Name32] = None
61
- units: Optional[Units22] = None
181
+ name: Optional[Name88] = None
182
+ units: Optional[Units43] = None
62
183
  value: float
63
184
 
64
185
 
65
186
  class ElementSchema(BaseModel):
66
- symbol: Optional[str] = None
67
- """
68
- Element symbol.
69
- """
187
+ symbol: Optional[Symbol] = None
70
188
  properties: Optional[List[Union[AtomicRadius, Electronegativity, IonizationPotential]]] = None
71
189
  """
72
190
  list of elemental properties
@@ -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: enums/chemical_elements.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 ChemicalElementSymbols(RootModel[Any]):
13
+ root: Any = Field(..., title="Chemical Element Symbols")
@@ -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 Value27(Enum):
135
+ X = "X"
136
+ Vac = "Vac"
137
+
138
+
13
139
  class AtomicElementSchema(BaseModel):
14
- value: str
140
+ value: Union[Value, Value27]
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 Name53(Enum):
288
+ class Name109(Enum):
163
289
  density = "density"
164
290
 
165
291
 
166
- class Units39(Enum):
292
+ class Units60(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[Units39] = None
298
+ units: Optional[Units60] = None
173
299
  value: float
174
300
 
175
301
 
176
- class Units40(Enum):
302
+ class Units61(Enum):
177
303
  angstrom = "angstrom"
178
304
 
179
305
 
180
306
  class ScalarSchema(BaseModel):
181
- units: Optional[Units40] = None
307
+ units: Optional[Units61] = None
182
308
  value: float
183
309
 
184
310
 
185
- class Name54(Enum):
311
+ class Name110(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 Name55(Enum):
331
+ class Name111(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 Name56(Enum):
344
+ class Name112(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 Name57(Enum):
357
+ class Name113(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 Name58(Enum):
366
+ class Name114(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 Name59(Enum):
445
+ class Name115(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: Name59
458
+ name: Name115
333
459
  """
334
460
  Name of the consistency check that is performed, which is listed in an enum.
335
461
  """
@@ -4,15 +4,139 @@
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- from typing import Optional
7
+ from enum import Enum
8
+ from typing import Optional, Union
8
9
 
9
- from pydantic import BaseModel, Field
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"
10
132
 
11
133
 
12
134
  class TerminationSchema(BaseModel):
13
- chemical_elements: str = Field(..., title="Chemical Elements")
135
+ chemical_elements: Union[ChemicalElements, constr(pattern=r"^[A-Z][a-z]?([A-Z][a-z]?)*$")] = Field(
136
+ ..., title="Chemical Elements"
137
+ )
14
138
  """
15
- Chemical elements at the termination
139
+ Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
16
140
  """
17
141
  space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
18
142
  """
@@ -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: material/reusable/slab/enums/exposed_face.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class SlabExposedFaceEnum(Enum):
11
+ top = "top"
12
+ bottom = "bottom"
13
+ both = "both"
@@ -10,7 +10,7 @@ from pydantic import Field, RootModel, conint
10
10
 
11
11
 
12
12
  class NumberOfLayersSchema(RootModel[Optional[conint(ge=1)]]):
13
- root: Optional[conint(ge=1)] = Field(1, title="number_of_layers Schema")
13
+ root: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
14
14
  """
15
15
  Number of atomic layers in a structural component
16
16
  """