mat3ra-esse 2025.6.14.post0__py3-none-any.whl → 2025.6.30.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 (118) hide show
  1. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/METADATA +1 -1
  2. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/RECORD +5 -118
  3. mat3ra/esse/models/coordinates_shape_enum.py +0 -15
  4. mat3ra/esse/models/core/abstract/2d_data.py +0 -17
  5. mat3ra/esse/models/core/abstract/2d_plot.py +0 -34
  6. mat3ra/esse/models/core/abstract/3d_grid.py +0 -14
  7. mat3ra/esse/models/core/abstract/3d_tensor.py +0 -19
  8. mat3ra/esse/models/core/abstract/3d_vector_basis.py +0 -15
  9. mat3ra/esse/models/core/abstract/_3d_tensor.py +0 -19
  10. mat3ra/esse/models/core/abstract/_3d_vector_basis.py +0 -15
  11. mat3ra/esse/models/core/abstract/point.py +0 -13
  12. mat3ra/esse/models/core/abstract/vector.py +0 -13
  13. mat3ra/esse/models/core/primitive/1d_data_series.py +0 -13
  14. mat3ra/esse/models/core/primitive/3d_lattice.py +0 -34
  15. mat3ra/esse/models/core/primitive/_3d_lattice.py +0 -34
  16. mat3ra/esse/models/core/reusable/accuracy_level.py +0 -27
  17. mat3ra/esse/models/core/reusable/atomic_strings.py +0 -24
  18. mat3ra/esse/models/core/reusable/coordinate_conditions/cylinder.py +0 -26
  19. mat3ra/esse/models/core/reusable/coordinate_conditions/plane.py +0 -24
  20. mat3ra/esse/models/core/reusable/coordinate_conditions/sphere.py +0 -24
  21. mat3ra/esse/models/core/reusable/coordinate_conditions/triangular_prism.py +0 -27
  22. mat3ra/esse/models/core/reusable/energy_accuracy_levels/__init__.py +0 -3
  23. mat3ra/esse/models/core/reusable/energy_accuracy_levels.py +0 -31
  24. mat3ra/esse/models/enums/__init__.py +0 -3
  25. mat3ra/esse/models/enums/chemical_elements.py +0 -13
  26. mat3ra/esse/models/material/builders/base/__init__.py +0 -3
  27. mat3ra/esse/models/material/builders/base/selector_parameters.py +0 -16
  28. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/__init__.py +0 -3
  29. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/builder_parameters.py +0 -28
  30. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/selector_parameters.py +0 -151
  31. mat3ra/esse/models/material/reusable/__init__.py +0 -3
  32. mat3ra/esse/models/material/reusable/coordinate_conditions/__init__.py +0 -3
  33. mat3ra/esse/models/material/reusable/coordinate_conditions/base.py +0 -21
  34. mat3ra/esse/models/material/reusable/coordinate_conditions/box.py +0 -24
  35. mat3ra/esse/models/material/reusable/coordinate_conditions/cylinder.py +0 -26
  36. mat3ra/esse/models/material/reusable/coordinate_conditions/plane.py +0 -24
  37. mat3ra/esse/models/material/reusable/coordinate_conditions/sphere.py +0 -24
  38. mat3ra/esse/models/material/reusable/coordinate_conditions/triangular_prism.py +0 -27
  39. mat3ra/esse/models/material/reusable/repetitions.py +0 -25
  40. mat3ra/esse/models/material/reusable/slab/__init__.py +0 -3
  41. mat3ra/esse/models/material/reusable/slab/enums/__init__.py +0 -3
  42. mat3ra/esse/models/material/reusable/slab/enums/exposed_face.py +0 -13
  43. mat3ra/esse/models/material/reusable/slab/enums.py +0 -13
  44. mat3ra/esse/models/material/reusable/slab/miller_indices.py +0 -16
  45. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +0 -16
  46. mat3ra/esse/models/material/reusable/slab/slab_configuration_with_termination.py +0 -589
  47. mat3ra/esse/models/material/reusable/slab/slab_with_termination.py +0 -593
  48. mat3ra/esse/models/material/reusable/slab/termination.py +0 -144
  49. mat3ra/esse/models/material/reusable/slab/two_slabs_stack.py +0 -618
  50. mat3ra/esse/models/material/reusable/slab/vacuum.py +0 -16
  51. mat3ra/esse/models/material/reusable/slab_configuration_with_termination.py +0 -712
  52. mat3ra/esse/models/material/reusable/stack/__init__.py +0 -3
  53. mat3ra/esse/models/material/reusable/stack/slab_configuration_with_termination.py +0 -593
  54. mat3ra/esse/models/material/reusable/stack/slab_in_stack.py +0 -720
  55. mat3ra/esse/models/material/reusable/stack/stack_of_slabs.py +0 -737
  56. mat3ra/esse/models/material/reusable/stack/stack_of_two_slabs.py +0 -737
  57. mat3ra/esse/models/material/reusable/supercell/__init__.py +0 -3
  58. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_2d.py +0 -25
  59. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_3d.py +0 -27
  60. mat3ra/esse/models/material/reusable/supercell_matrix_2d.py +0 -25
  61. mat3ra/esse/models/material/reusable/supercell_matrix_3d.py +0 -27
  62. mat3ra/esse/models/materials_category/defects/__init__.py +0 -3
  63. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/__init__.py +0 -3
  64. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +0 -672
  65. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/__init__.py +0 -3
  66. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/configuration.py +0 -549
  67. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/__init__.py +0 -3
  68. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/configuration.py +0 -550
  69. mat3ra/esse/models/materials_category/defects/configuration.py +0 -545
  70. mat3ra/esse/models/materials_category/defects/enums/__init__.py +0 -3
  71. mat3ra/esse/models/materials_category/defects/enums/point_defect_type.py +0 -13
  72. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/__init__.py +0 -3
  73. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +0 -563
  74. mat3ra/esse/models/materials_category/defects/two_dimensional/grain_boundary_plane/__init__.py +0 -3
  75. mat3ra/esse/models/materials_category/defects/two_dimensional/grain_boundary_plane/configuration.py +0 -1200
  76. mat3ra/esse/models/materials_category/defects/two_dimensional/island/__init__.py +0 -3
  77. mat3ra/esse/models/materials_category/defects/two_dimensional/island/condition_json.py +0 -28
  78. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +0 -564
  79. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/__init__.py +0 -3
  80. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/configuration.py +0 -1538
  81. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/__init__.py +0 -3
  82. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +0 -672
  83. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/__init__.py +0 -3
  84. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +0 -672
  85. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/__init__.py +0 -3
  86. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +0 -672
  87. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/__init__.py +0 -3
  88. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +0 -672
  89. mat3ra/esse/models/materials_category/multi_material/interfaces/__init__.py +0 -3
  90. mat3ra/esse/models/materials_category/multi_material/interfaces/configuration.py +0 -737
  91. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/__init__.py +0 -3
  92. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +0 -567
  93. mat3ra/esse/models/methods_directory/physical/psp/file/__init__.py +0 -129
  94. mat3ra/esse/models/methods_directory/physical/psp/file_data_item/__init__.py +0 -111
  95. mat3ra/esse/models/properties_directory/structural/lattice/lattice_bravais.py +0 -74
  96. mat3ra/esse/models/property/base/__init__.py +0 -200
  97. mat3ra/esse/models/property/meta/__init__.py +0 -200
  98. mat3ra/esse/models/property/raw/__init__.py +0 -200
  99. mat3ra/esse/models/property/source/__init__.py +0 -150
  100. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/__init__.py +0 -3
  101. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/atoms.py +0 -41
  102. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/db_entry.py +0 -55
  103. mat3ra/esse/models/third_party/file/applications/espresso/7.2/__init__.py +0 -3
  104. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/__init__.py +0 -3
  105. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/atomic_positions.py +0 -51
  106. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/atomic_species.py +0 -34
  107. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/cell.py +0 -111
  108. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/cell_parameters.py +0 -36
  109. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/control.py +0 -169
  110. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/electrons.py +0 -139
  111. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/hubbard.py +0 -194
  112. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/ions.py +0 -422
  113. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/k_points.py +0 -73
  114. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/system.py +0 -841
  115. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw_x.py +0 -1990
  116. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/WHEEL +0 -0
  117. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/licenses/LICENSE.md +0 -0
  118. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/top_level.txt +0 -0
@@ -1,1200 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: materials_category/defects/two_dimensional/grain_boundary_plane/configuration.json
3
- # version: 0.28.5
4
-
5
- from __future__ import annotations
6
-
7
- from enum import Enum
8
- from typing import Any, Dict, List, Literal, Optional, Union
9
-
10
- from pydantic import BaseModel, Field, RootModel, confloat, conint, constr
11
-
12
-
13
- class AxisEnum(Enum):
14
- x = "x"
15
- y = "y"
16
- z = "z"
17
-
18
-
19
- class Value(Enum):
20
- H = "H"
21
- He = "He"
22
- Li = "Li"
23
- Be = "Be"
24
- B = "B"
25
- C = "C"
26
- N = "N"
27
- O = "O"
28
- F = "F"
29
- Ne = "Ne"
30
- Na = "Na"
31
- Mg = "Mg"
32
- Al = "Al"
33
- Si = "Si"
34
- P = "P"
35
- S = "S"
36
- Cl = "Cl"
37
- Ar = "Ar"
38
- K = "K"
39
- Ca = "Ca"
40
- Sc = "Sc"
41
- Ti = "Ti"
42
- V = "V"
43
- Cr = "Cr"
44
- Mn = "Mn"
45
- Fe = "Fe"
46
- Co = "Co"
47
- Ni = "Ni"
48
- Cu = "Cu"
49
- Zn = "Zn"
50
- Ga = "Ga"
51
- Ge = "Ge"
52
- As = "As"
53
- Se = "Se"
54
- Br = "Br"
55
- Kr = "Kr"
56
- Rb = "Rb"
57
- Sr = "Sr"
58
- Y = "Y"
59
- Zr = "Zr"
60
- Nb = "Nb"
61
- Mo = "Mo"
62
- Tc = "Tc"
63
- Ru = "Ru"
64
- Rh = "Rh"
65
- Pd = "Pd"
66
- Ag = "Ag"
67
- Cd = "Cd"
68
- In = "In"
69
- Sn = "Sn"
70
- Sb = "Sb"
71
- Te = "Te"
72
- I = "I"
73
- Xe = "Xe"
74
- Cs = "Cs"
75
- Ba = "Ba"
76
- La = "La"
77
- Ce = "Ce"
78
- Pr = "Pr"
79
- Nd = "Nd"
80
- Pm = "Pm"
81
- Sm = "Sm"
82
- Eu = "Eu"
83
- Gd = "Gd"
84
- Tb = "Tb"
85
- Dy = "Dy"
86
- Ho = "Ho"
87
- Er = "Er"
88
- Tm = "Tm"
89
- Yb = "Yb"
90
- Lu = "Lu"
91
- Hf = "Hf"
92
- Ta = "Ta"
93
- W = "W"
94
- Re = "Re"
95
- Os = "Os"
96
- Ir = "Ir"
97
- Pt = "Pt"
98
- Au = "Au"
99
- Hg = "Hg"
100
- Tl = "Tl"
101
- Pb = "Pb"
102
- Bi = "Bi"
103
- Po = "Po"
104
- At = "At"
105
- Rn = "Rn"
106
- Fr = "Fr"
107
- Ra = "Ra"
108
- Ac = "Ac"
109
- Th = "Th"
110
- Pa = "Pa"
111
- U = "U"
112
- Np = "Np"
113
- Pu = "Pu"
114
- Am = "Am"
115
- Cm = "Cm"
116
- Bk = "Bk"
117
- Cf = "Cf"
118
- Es = "Es"
119
- Fm = "Fm"
120
- Md = "Md"
121
- No = "No"
122
- Lr = "Lr"
123
- Rf = "Rf"
124
- Db = "Db"
125
- Sg = "Sg"
126
- Bh = "Bh"
127
- Hs = "Hs"
128
- Mt = "Mt"
129
- Ds = "Ds"
130
- Rg = "Rg"
131
- Cn = "Cn"
132
- Nh = "Nh"
133
- Fl = "Fl"
134
- Mc = "Mc"
135
- Lv = "Lv"
136
- Ts = "Ts"
137
- Og = "Og"
138
-
139
-
140
- class Value33(Enum):
141
- X = "X"
142
- Vac = "Vac"
143
-
144
-
145
- class AtomicElementSchema(BaseModel):
146
- value: Union[Value, Value33]
147
- """
148
- All elements, including extra elements
149
- """
150
- id: int
151
- """
152
- integer id of this entry
153
- """
154
-
155
-
156
- class AtomicCoordinateSchema(BaseModel):
157
- value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
158
- """
159
- value of this entry
160
- """
161
- id: int
162
- """
163
- integer id of this entry
164
- """
165
-
166
-
167
- class BasisUnitsEnum(Enum):
168
- crystal = "crystal"
169
- cartesian = "cartesian"
170
-
171
-
172
- class AtomicLabelSchema(BaseModel):
173
- value: Union[Union[int, str, float], conint(ge=1, le=9)]
174
- """
175
- value of this entry
176
- """
177
- id: int
178
- """
179
- integer id of this entry
180
- """
181
-
182
-
183
- class BasisSchema(BaseModel):
184
- elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
185
- """
186
- atomic elements schema
187
- """
188
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
189
- """
190
- atomic coordinates schema
191
- """
192
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
193
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
194
- """
195
- atomic labels schema
196
- """
197
-
198
-
199
- class LatticeVectorsUnitsEnum(Enum):
200
- angstrom = "angstrom"
201
- bohr = "bohr"
202
-
203
-
204
- class LatticeVectorsSchema(BaseModel):
205
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
206
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
207
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
208
- alat: Optional[float] = 1
209
- """
210
- lattice parameter for fractional coordinates
211
- """
212
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
213
-
214
-
215
- class LatticeTypeEnum(Enum):
216
- CUB = "CUB"
217
- BCC = "BCC"
218
- FCC = "FCC"
219
- TET = "TET"
220
- MCL = "MCL"
221
- ORC = "ORC"
222
- ORCC = "ORCC"
223
- ORCF = "ORCF"
224
- ORCI = "ORCI"
225
- HEX = "HEX"
226
- BCT = "BCT"
227
- TRI = "TRI"
228
- MCLC = "MCLC"
229
- RHL = "RHL"
230
-
231
-
232
- class LatticeUnitsLengthEnum(Enum):
233
- angstrom = "angstrom"
234
- bohr = "bohr"
235
-
236
-
237
- class LatticeUnitsAngleEnum(Enum):
238
- degree = "degree"
239
- radian = "radian"
240
-
241
-
242
- class LatticeUnitsSchema(BaseModel):
243
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
244
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
245
-
246
-
247
- class LatticeSchema(BaseModel):
248
- a: float
249
- """
250
- length of the first lattice vector
251
- """
252
- b: float
253
- """
254
- length of the second lattice vector
255
- """
256
- c: float
257
- """
258
- length of the third lattice vector
259
- """
260
- alpha: float
261
- """
262
- angle between first and second lattice vector
263
- """
264
- beta: float
265
- """
266
- angle between second and third lattice vector
267
- """
268
- gamma: float
269
- """
270
- angle between first and third lattice vector
271
- """
272
- vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
273
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
274
- units: Optional[LatticeUnitsSchema] = Field(
275
- default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
276
- title="Lattice units schema",
277
- )
278
-
279
-
280
- class Name(Enum):
281
- volume = "volume"
282
-
283
-
284
- class Units(Enum):
285
- angstrom_3 = "angstrom^3"
286
-
287
-
288
- class VolumeSchema(BaseModel):
289
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
290
- units: Optional[Units] = None
291
- value: float
292
-
293
-
294
- class Name104(Enum):
295
- density = "density"
296
-
297
-
298
- class Units46(Enum):
299
- g_cm_3 = "g/cm^3"
300
-
301
-
302
- class DensitySchema(BaseModel):
303
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
304
- units: Optional[Units46] = None
305
- value: float
306
-
307
-
308
- class Units47(Enum):
309
- angstrom = "angstrom"
310
-
311
-
312
- class ScalarSchema(BaseModel):
313
- units: Optional[Units47] = None
314
- value: float
315
-
316
-
317
- class Name105(Enum):
318
- symmetry = "symmetry"
319
-
320
-
321
- class SymmetrySchema(BaseModel):
322
- pointGroupSymbol: Optional[str] = None
323
- """
324
- point group symbol in Schoenflies notation
325
- """
326
- spaceGroupSymbol: Optional[str] = None
327
- """
328
- space group symbol in Hermann–Mauguin notation
329
- """
330
- tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
331
- """
332
- tolerance used for symmetry calculation
333
- """
334
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
335
-
336
-
337
- class Name106(Enum):
338
- elemental_ratio = "elemental_ratio"
339
-
340
-
341
- class ElementalRatio(BaseModel):
342
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
343
- value: confloat(ge=0.0, le=1.0)
344
- element: Optional[str] = None
345
- """
346
- the element this ratio is for
347
- """
348
-
349
-
350
- class Name107(Enum):
351
- p_norm = "p-norm"
352
-
353
-
354
- class PNorm(BaseModel):
355
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
356
- degree: Optional[int] = None
357
- """
358
- degree of the dimensionality of the norm
359
- """
360
- value: float
361
-
362
-
363
- class Name108(Enum):
364
- inchi = "inchi"
365
-
366
-
367
- class InChIRepresentationSchema(BaseModel):
368
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
369
- value: str
370
-
371
-
372
- class Name109(Enum):
373
- inchi_key = "inchi_key"
374
-
375
-
376
- class InChIKeyRepresentationSchema(BaseModel):
377
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
378
- value: str
379
-
380
-
381
- class DerivedPropertiesSchema(
382
- RootModel[
383
- Union[
384
- VolumeSchema,
385
- DensitySchema,
386
- SymmetrySchema,
387
- ElementalRatio,
388
- PNorm,
389
- InChIRepresentationSchema,
390
- InChIKeyRepresentationSchema,
391
- ]
392
- ]
393
- ):
394
- root: Union[
395
- VolumeSchema,
396
- DensitySchema,
397
- SymmetrySchema,
398
- ElementalRatio,
399
- PNorm,
400
- InChIRepresentationSchema,
401
- InChIKeyRepresentationSchema,
402
- ] = Field(..., discriminator="name")
403
-
404
-
405
- class DatabaseSourceSchema(BaseModel):
406
- id: Union[str, float]
407
- """
408
- ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32
409
- """
410
- source: str
411
- """
412
- Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
413
- """
414
- origin: bool
415
- """
416
- Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).
417
- """
418
- data: Optional[Dict[str, Any]] = None
419
- """
420
- Original response from external source.
421
- """
422
- doi: Optional[str] = None
423
- """
424
- Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
425
- """
426
- url: Optional[str] = None
427
- """
428
- The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers
429
- """
430
-
431
-
432
- class FileSourceSchema(BaseModel):
433
- extension: Optional[str] = None
434
- """
435
- file extension
436
- """
437
- filename: str
438
- """
439
- file name without extension
440
- """
441
- text: str
442
- """
443
- file content as raw text
444
- """
445
- hash: str
446
- """
447
- MD5 hash based on file content
448
- """
449
-
450
-
451
- class Name110(Enum):
452
- default = "default"
453
- atomsTooClose = "atomsTooClose"
454
- atomsOverlap = "atomsOverlap"
455
-
456
-
457
- class Severity(Enum):
458
- info = "info"
459
- warning = "warning"
460
- error = "error"
461
-
462
-
463
- class MaterialConsistencyCheckSchema(BaseModel):
464
- name: Name110
465
- """
466
- Name of the consistency check that is performed, which is listed in an enum.
467
- """
468
- key: str
469
- """
470
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
471
- """
472
- severity: Severity
473
- """
474
- Severity level of the problem, which is used in UI to differentiate.
475
- """
476
- message: str
477
- """
478
- Message generated by the consistency check describing the problem.
479
- """
480
-
481
-
482
- class MaterialSchema(BaseModel):
483
- formula: Optional[str] = None
484
- """
485
- reduced chemical formula
486
- """
487
- unitCellFormula: Optional[str] = None
488
- """
489
- chemical formula based on the number of atoms of each element in the supercell
490
- """
491
- basis: BasisSchema = Field(..., title="basis schema")
492
- lattice: LatticeSchema = Field(..., title="lattice schema")
493
- derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
494
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
495
- """
496
- information about a database source
497
- """
498
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
499
- """
500
- file source with the information inside
501
- """
502
- scaledHash: Optional[str] = None
503
- """
504
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
505
- """
506
- icsdId: Optional[int] = None
507
- """
508
- Corresponding ICSD id of the material
509
- """
510
- isNonPeriodic: Optional[bool] = None
511
- """
512
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
513
- """
514
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
515
- field_id: Optional[str] = Field(None, alias="_id")
516
- """
517
- entity identity
518
- """
519
- slug: Optional[str] = None
520
- """
521
- entity slug
522
- """
523
- systemName: Optional[str] = None
524
- schemaVersion: Optional[str] = "2022.8.16"
525
- """
526
- entity's schema version. Used to distinct between different schemas.
527
- """
528
- name: Optional[str] = None
529
- """
530
- entity name
531
- """
532
- isDefault: Optional[bool] = False
533
- """
534
- Identifies that entity is defaultable
535
- """
536
- metadata: Optional[Dict[str, Any]] = None
537
-
538
-
539
- class SupercellMatrix2DSchemaItem(RootModel[List[int]]):
540
- root: List[int]
541
-
542
-
543
- class SlabConfigurationSchema(BaseModel):
544
- bulk: Optional[MaterialSchema] = Field(None, title="material schema")
545
- miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
546
- """
547
- Miller indices for crystallographic plane designation
548
- """
549
- number_of_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
550
- """
551
- Number of atomic layers in a structural component
552
- """
553
- vacuum: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Thickness Schema")
554
- """
555
- Vacuum thickness in Angstroms
556
- """
557
- xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
558
- default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
559
- max_length=2,
560
- min_length=2,
561
- title="Supercell Matrix 2D Schema",
562
- )
563
- """
564
- Supercell matrix for xy plane transformations
565
- """
566
- use_conventional_cell: Optional[bool] = Field(True, title="Use Conventional Cell")
567
- """
568
- Whether to use conventional cell when generating the slab.
569
- """
570
- use_orthogonal_z: Optional[bool] = Field(True, title="Use Orthogonal Z")
571
- """
572
- Whether to make vector c orthogonal to ab plane for the slab cell.
573
- """
574
-
575
-
576
- class ChemicalElements(Enum):
577
- H = "H"
578
- He = "He"
579
- Li = "Li"
580
- Be = "Be"
581
- B = "B"
582
- C = "C"
583
- N = "N"
584
- O = "O"
585
- F = "F"
586
- Ne = "Ne"
587
- Na = "Na"
588
- Mg = "Mg"
589
- Al = "Al"
590
- Si = "Si"
591
- P = "P"
592
- S = "S"
593
- Cl = "Cl"
594
- Ar = "Ar"
595
- K = "K"
596
- Ca = "Ca"
597
- Sc = "Sc"
598
- Ti = "Ti"
599
- V = "V"
600
- Cr = "Cr"
601
- Mn = "Mn"
602
- Fe = "Fe"
603
- Co = "Co"
604
- Ni = "Ni"
605
- Cu = "Cu"
606
- Zn = "Zn"
607
- Ga = "Ga"
608
- Ge = "Ge"
609
- As = "As"
610
- Se = "Se"
611
- Br = "Br"
612
- Kr = "Kr"
613
- Rb = "Rb"
614
- Sr = "Sr"
615
- Y = "Y"
616
- Zr = "Zr"
617
- Nb = "Nb"
618
- Mo = "Mo"
619
- Tc = "Tc"
620
- Ru = "Ru"
621
- Rh = "Rh"
622
- Pd = "Pd"
623
- Ag = "Ag"
624
- Cd = "Cd"
625
- In = "In"
626
- Sn = "Sn"
627
- Sb = "Sb"
628
- Te = "Te"
629
- I = "I"
630
- Xe = "Xe"
631
- Cs = "Cs"
632
- Ba = "Ba"
633
- La = "La"
634
- Ce = "Ce"
635
- Pr = "Pr"
636
- Nd = "Nd"
637
- Pm = "Pm"
638
- Sm = "Sm"
639
- Eu = "Eu"
640
- Gd = "Gd"
641
- Tb = "Tb"
642
- Dy = "Dy"
643
- Ho = "Ho"
644
- Er = "Er"
645
- Tm = "Tm"
646
- Yb = "Yb"
647
- Lu = "Lu"
648
- Hf = "Hf"
649
- Ta = "Ta"
650
- W = "W"
651
- Re = "Re"
652
- Os = "Os"
653
- Ir = "Ir"
654
- Pt = "Pt"
655
- Au = "Au"
656
- Hg = "Hg"
657
- Tl = "Tl"
658
- Pb = "Pb"
659
- Bi = "Bi"
660
- Po = "Po"
661
- At = "At"
662
- Rn = "Rn"
663
- Fr = "Fr"
664
- Ra = "Ra"
665
- Ac = "Ac"
666
- Th = "Th"
667
- Pa = "Pa"
668
- U = "U"
669
- Np = "Np"
670
- Pu = "Pu"
671
- Am = "Am"
672
- Cm = "Cm"
673
- Bk = "Bk"
674
- Cf = "Cf"
675
- Es = "Es"
676
- Fm = "Fm"
677
- Md = "Md"
678
- No = "No"
679
- Lr = "Lr"
680
- Rf = "Rf"
681
- Db = "Db"
682
- Sg = "Sg"
683
- Bh = "Bh"
684
- Hs = "Hs"
685
- Mt = "Mt"
686
- Ds = "Ds"
687
- Rg = "Rg"
688
- Cn = "Cn"
689
- Nh = "Nh"
690
- Fl = "Fl"
691
- Mc = "Mc"
692
- Lv = "Lv"
693
- Ts = "Ts"
694
- Og = "Og"
695
-
696
-
697
- class TerminationSchema(BaseModel):
698
- chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
699
- ..., title="Chemical Elements"
700
- )
701
- """
702
- Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
703
- """
704
- space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
705
- """
706
- Space group symmetry designation for the termination
707
- """
708
-
709
-
710
- class Value34(Enum):
711
- H = "H"
712
- He = "He"
713
- Li = "Li"
714
- Be = "Be"
715
- B = "B"
716
- C = "C"
717
- N = "N"
718
- O = "O"
719
- F = "F"
720
- Ne = "Ne"
721
- Na = "Na"
722
- Mg = "Mg"
723
- Al = "Al"
724
- Si = "Si"
725
- P = "P"
726
- S = "S"
727
- Cl = "Cl"
728
- Ar = "Ar"
729
- K = "K"
730
- Ca = "Ca"
731
- Sc = "Sc"
732
- Ti = "Ti"
733
- V = "V"
734
- Cr = "Cr"
735
- Mn = "Mn"
736
- Fe = "Fe"
737
- Co = "Co"
738
- Ni = "Ni"
739
- Cu = "Cu"
740
- Zn = "Zn"
741
- Ga = "Ga"
742
- Ge = "Ge"
743
- As = "As"
744
- Se = "Se"
745
- Br = "Br"
746
- Kr = "Kr"
747
- Rb = "Rb"
748
- Sr = "Sr"
749
- Y = "Y"
750
- Zr = "Zr"
751
- Nb = "Nb"
752
- Mo = "Mo"
753
- Tc = "Tc"
754
- Ru = "Ru"
755
- Rh = "Rh"
756
- Pd = "Pd"
757
- Ag = "Ag"
758
- Cd = "Cd"
759
- In = "In"
760
- Sn = "Sn"
761
- Sb = "Sb"
762
- Te = "Te"
763
- I = "I"
764
- Xe = "Xe"
765
- Cs = "Cs"
766
- Ba = "Ba"
767
- La = "La"
768
- Ce = "Ce"
769
- Pr = "Pr"
770
- Nd = "Nd"
771
- Pm = "Pm"
772
- Sm = "Sm"
773
- Eu = "Eu"
774
- Gd = "Gd"
775
- Tb = "Tb"
776
- Dy = "Dy"
777
- Ho = "Ho"
778
- Er = "Er"
779
- Tm = "Tm"
780
- Yb = "Yb"
781
- Lu = "Lu"
782
- Hf = "Hf"
783
- Ta = "Ta"
784
- W = "W"
785
- Re = "Re"
786
- Os = "Os"
787
- Ir = "Ir"
788
- Pt = "Pt"
789
- Au = "Au"
790
- Hg = "Hg"
791
- Tl = "Tl"
792
- Pb = "Pb"
793
- Bi = "Bi"
794
- Po = "Po"
795
- At = "At"
796
- Rn = "Rn"
797
- Fr = "Fr"
798
- Ra = "Ra"
799
- Ac = "Ac"
800
- Th = "Th"
801
- Pa = "Pa"
802
- U = "U"
803
- Np = "Np"
804
- Pu = "Pu"
805
- Am = "Am"
806
- Cm = "Cm"
807
- Bk = "Bk"
808
- Cf = "Cf"
809
- Es = "Es"
810
- Fm = "Fm"
811
- Md = "Md"
812
- No = "No"
813
- Lr = "Lr"
814
- Rf = "Rf"
815
- Db = "Db"
816
- Sg = "Sg"
817
- Bh = "Bh"
818
- Hs = "Hs"
819
- Mt = "Mt"
820
- Ds = "Ds"
821
- Rg = "Rg"
822
- Cn = "Cn"
823
- Nh = "Nh"
824
- Fl = "Fl"
825
- Mc = "Mc"
826
- Lv = "Lv"
827
- Ts = "Ts"
828
- Og = "Og"
829
-
830
-
831
- class Value35(Enum):
832
- X = "X"
833
- Vac = "Vac"
834
-
835
-
836
- class AtomicElementSchema16(BaseModel):
837
- value: Union[Value34, Value35]
838
- """
839
- All elements, including extra elements
840
- """
841
- id: int
842
- """
843
- integer id of this entry
844
- """
845
-
846
-
847
- class BasisSchema14(BaseModel):
848
- elements: List[AtomicElementSchema16] = Field(..., title="atomic elements schema")
849
- """
850
- atomic elements schema
851
- """
852
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
853
- """
854
- atomic coordinates schema
855
- """
856
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
857
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
858
- """
859
- atomic labels schema
860
- """
861
-
862
-
863
- class LatticeVectorsSchema13(BaseModel):
864
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
865
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
866
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
867
- alat: Optional[float] = 1
868
- """
869
- lattice parameter for fractional coordinates
870
- """
871
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
872
-
873
-
874
- class LatticeUnitsSchema13(BaseModel):
875
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
876
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
877
-
878
-
879
- class LatticeSchema13(BaseModel):
880
- a: float
881
- """
882
- length of the first lattice vector
883
- """
884
- b: float
885
- """
886
- length of the second lattice vector
887
- """
888
- c: float
889
- """
890
- length of the third lattice vector
891
- """
892
- alpha: float
893
- """
894
- angle between first and second lattice vector
895
- """
896
- beta: float
897
- """
898
- angle between second and third lattice vector
899
- """
900
- gamma: float
901
- """
902
- angle between first and third lattice vector
903
- """
904
- vectors: Optional[LatticeVectorsSchema13] = Field(None, title="lattice vectors schema")
905
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
906
- units: Optional[LatticeUnitsSchema13] = Field(
907
- default_factory=lambda: LatticeUnitsSchema13.model_validate({"length": "angstrom", "angle": "degree"}),
908
- title="Lattice units schema",
909
- )
910
-
911
-
912
- class Name111(Enum):
913
- volume = "volume"
914
-
915
-
916
- class Units48(Enum):
917
- angstrom_3 = "angstrom^3"
918
-
919
-
920
- class VolumeSchema13(BaseModel):
921
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
922
- units: Optional[Units48] = None
923
- value: float
924
-
925
-
926
- class Name112(Enum):
927
- density = "density"
928
-
929
-
930
- class Units49(Enum):
931
- g_cm_3 = "g/cm^3"
932
-
933
-
934
- class DensitySchema13(BaseModel):
935
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
936
- units: Optional[Units49] = None
937
- value: float
938
-
939
-
940
- class Units50(Enum):
941
- angstrom = "angstrom"
942
-
943
-
944
- class ScalarSchema14(BaseModel):
945
- units: Optional[Units50] = None
946
- value: float
947
-
948
-
949
- class Name113(Enum):
950
- symmetry = "symmetry"
951
-
952
-
953
- class SymmetrySchema13(BaseModel):
954
- pointGroupSymbol: Optional[str] = None
955
- """
956
- point group symbol in Schoenflies notation
957
- """
958
- spaceGroupSymbol: Optional[str] = None
959
- """
960
- space group symbol in Hermann–Mauguin notation
961
- """
962
- tolerance: Optional[ScalarSchema14] = Field(None, title="scalar schema")
963
- """
964
- tolerance used for symmetry calculation
965
- """
966
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
967
-
968
-
969
- class Name114(Enum):
970
- elemental_ratio = "elemental_ratio"
971
-
972
-
973
- class ElementalRatio13(BaseModel):
974
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
975
- value: confloat(ge=0.0, le=1.0)
976
- element: Optional[str] = None
977
- """
978
- the element this ratio is for
979
- """
980
-
981
-
982
- class Name115(Enum):
983
- p_norm = "p-norm"
984
-
985
-
986
- class PNorm13(BaseModel):
987
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
988
- degree: Optional[int] = None
989
- """
990
- degree of the dimensionality of the norm
991
- """
992
- value: float
993
-
994
-
995
- class Name116(Enum):
996
- inchi = "inchi"
997
-
998
-
999
- class InChIRepresentationSchema13(BaseModel):
1000
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1001
- value: str
1002
-
1003
-
1004
- class Name117(Enum):
1005
- inchi_key = "inchi_key"
1006
-
1007
-
1008
- class InChIKeyRepresentationSchema13(BaseModel):
1009
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1010
- value: str
1011
-
1012
-
1013
- class DerivedPropertiesSchema13(
1014
- RootModel[
1015
- Union[
1016
- VolumeSchema13,
1017
- DensitySchema13,
1018
- SymmetrySchema13,
1019
- ElementalRatio13,
1020
- PNorm13,
1021
- InChIRepresentationSchema13,
1022
- InChIKeyRepresentationSchema13,
1023
- ]
1024
- ]
1025
- ):
1026
- root: Union[
1027
- VolumeSchema13,
1028
- DensitySchema13,
1029
- SymmetrySchema13,
1030
- ElementalRatio13,
1031
- PNorm13,
1032
- InChIRepresentationSchema13,
1033
- InChIKeyRepresentationSchema13,
1034
- ] = Field(..., discriminator="name")
1035
-
1036
-
1037
- class Name118(Enum):
1038
- default = "default"
1039
- atomsTooClose = "atomsTooClose"
1040
- atomsOverlap = "atomsOverlap"
1041
-
1042
-
1043
- class MaterialConsistencyCheckSchema13(BaseModel):
1044
- name: Name118
1045
- """
1046
- Name of the consistency check that is performed, which is listed in an enum.
1047
- """
1048
- key: str
1049
- """
1050
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
1051
- """
1052
- severity: Severity
1053
- """
1054
- Severity level of the problem, which is used in UI to differentiate.
1055
- """
1056
- message: str
1057
- """
1058
- Message generated by the consistency check describing the problem.
1059
- """
1060
-
1061
-
1062
- class MaterialSchema13(BaseModel):
1063
- formula: Optional[str] = None
1064
- """
1065
- reduced chemical formula
1066
- """
1067
- unitCellFormula: Optional[str] = None
1068
- """
1069
- chemical formula based on the number of atoms of each element in the supercell
1070
- """
1071
- basis: BasisSchema14 = Field(..., title="basis schema")
1072
- lattice: LatticeSchema13 = Field(..., title="lattice schema")
1073
- derivedProperties: Optional[List[DerivedPropertiesSchema13]] = Field(None, title="derived properties schema")
1074
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
1075
- """
1076
- information about a database source
1077
- """
1078
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
1079
- """
1080
- file source with the information inside
1081
- """
1082
- scaledHash: Optional[str] = None
1083
- """
1084
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
1085
- """
1086
- icsdId: Optional[int] = None
1087
- """
1088
- Corresponding ICSD id of the material
1089
- """
1090
- isNonPeriodic: Optional[bool] = None
1091
- """
1092
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
1093
- """
1094
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema13]] = None
1095
- field_id: Optional[str] = Field(None, alias="_id")
1096
- """
1097
- entity identity
1098
- """
1099
- slug: Optional[str] = None
1100
- """
1101
- entity slug
1102
- """
1103
- systemName: Optional[str] = None
1104
- schemaVersion: Optional[str] = "2022.8.16"
1105
- """
1106
- entity's schema version. Used to distinct between different schemas.
1107
- """
1108
- name: Optional[str] = None
1109
- """
1110
- entity name
1111
- """
1112
- isDefault: Optional[bool] = False
1113
- """
1114
- Identifies that entity is defaultable
1115
- """
1116
- metadata: Optional[Dict[str, Any]] = None
1117
-
1118
-
1119
- class SlabConfigurationSchema2(BaseModel):
1120
- bulk: Optional[MaterialSchema13] = Field(None, title="material schema")
1121
- miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
1122
- """
1123
- Miller indices for crystallographic plane designation
1124
- """
1125
- number_of_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
1126
- """
1127
- Number of atomic layers in a structural component
1128
- """
1129
- vacuum: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Thickness Schema")
1130
- """
1131
- Vacuum thickness in Angstroms
1132
- """
1133
- xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
1134
- default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
1135
- max_length=2,
1136
- min_length=2,
1137
- title="Supercell Matrix 2D Schema",
1138
- )
1139
- """
1140
- Supercell matrix for xy plane transformations
1141
- """
1142
- use_conventional_cell: Optional[bool] = Field(True, title="Use Conventional Cell")
1143
- """
1144
- Whether to use conventional cell when generating the slab.
1145
- """
1146
- use_orthogonal_z: Optional[bool] = Field(True, title="Use Orthogonal Z")
1147
- """
1148
- Whether to make vector c orthogonal to ab plane for the slab cell.
1149
- """
1150
-
1151
-
1152
- class TerminationSchema2(BaseModel):
1153
- chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
1154
- ..., title="Chemical Elements"
1155
- )
1156
- """
1157
- Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
1158
- """
1159
- space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
1160
- """
1161
- Space group symmetry designation for the termination
1162
- """
1163
-
1164
-
1165
- class SlabInStackConfigurationSchema(BaseModel):
1166
- stack_component: Optional[str] = None
1167
- """
1168
- Component of the stack (e.g., slab1, slab2)
1169
- """
1170
- distance_to_next_slab: Optional[float] = 3
1171
- """
1172
- Distance to the next slab in the stack, in Angstroms
1173
- """
1174
- slab_configuration: SlabConfigurationSchema2 = Field(..., title="Slab Configuration Schema")
1175
- """
1176
- Configuration for creating a slab from a bulk material
1177
- """
1178
- termination: TerminationSchema2 = Field(..., title="Termination Schema")
1179
- """
1180
- Defines a specific termination of a slab
1181
- """
1182
-
1183
-
1184
- class GrainBoundaryPlaneConfigurationSchema(BaseModel):
1185
- stacking_direction: Optional[AxisEnum] = Field("x", title="Axis Enum")
1186
- """
1187
- The axis along which the slabs are stacked
1188
- """
1189
- slab_configuration: SlabConfigurationSchema = Field(..., title="Slab Configuration Schema")
1190
- """
1191
- Configuration for creating a slab from a bulk material
1192
- """
1193
- termination: TerminationSchema = Field(..., title="Termination Schema")
1194
- """
1195
- Defines a specific termination of a slab
1196
- """
1197
- stack_slab_configurations: List[SlabInStackConfigurationSchema] = Field(..., max_length=2, min_length=2)
1198
- """
1199
- List of slab configurations for the slabs in the stack
1200
- """