mat3ra-esse 2025.7.15.post0__py3-none-any.whl → 2025.8.6.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 (85) 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/core/abstract/vector_2d.py +13 -0
  5. mat3ra/esse/models/core/primitive/array_of_2_numbers.py +13 -0
  6. mat3ra/esse/models/core/reusable/energy.py +2 -2
  7. mat3ra/esse/models/element.py +6 -6
  8. mat3ra/esse/models/material/__init__.py +14 -14
  9. mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/__init__.py +3 -0
  10. mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +4269 -0
  11. mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/__init__.py +3 -0
  12. mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +4273 -0
  13. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/__init__.py +3 -0
  14. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/__init__.py +3 -0
  15. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +2132 -0
  16. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/base_configuration.py +1561 -0
  17. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/__init__.py +3 -0
  18. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +4269 -0
  19. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/__init__.py +3 -0
  20. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +2908 -0
  21. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/__init__.py +3 -0
  22. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +2912 -0
  23. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/__init__.py +3 -0
  24. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.py +544 -0
  25. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +1099 -0
  26. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +1099 -0
  27. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +556 -0
  28. mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +14 -14
  29. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +1598 -0
  30. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +1160 -0
  31. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +88 -92
  32. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +1159 -0
  33. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/__init__.py +3 -0
  34. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +1232 -0
  35. mat3ra/esse/models/materials_category_components/entities/auxiliary/one_dimensional/__init__.py +3 -0
  36. mat3ra/esse/models/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.py +16 -0
  37. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +527 -2
  38. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +676 -0
  39. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +555 -0
  40. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_site.py +1576 -0
  41. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +14 -14
  42. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +14 -14
  43. mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/vacancy.py +22 -0
  44. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/__init__.py +3 -0
  45. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_base.py +541 -0
  46. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +545 -0
  47. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +708 -0
  48. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +541 -0
  49. mat3ra/esse/models/materials_category_components/entities/reusable/{repetitions.py → three_dimensional/repetitions.py} +1 -1
  50. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +14 -14
  51. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +14 -14
  52. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +14 -14
  53. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py +4 -4
  54. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py +4 -4
  55. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py +4 -4
  56. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +18 -18
  57. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +1577 -0
  58. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.py +74 -77
  59. mat3ra/esse/models/materials_category_components/operations/core/combinations/enums.py +13 -0
  60. mat3ra/esse/models/materials_category_components/operations/core/combinations/merge.py +9 -981
  61. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack.py +8 -940
  62. mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +538 -0
  63. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  64. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  65. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  66. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  67. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  68. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  69. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  70. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  71. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  72. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  73. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  74. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  75. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  76. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  77. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  78. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +2 -2
  79. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  80. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  81. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/METADATA +1 -1
  82. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/RECORD +85 -45
  83. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/WHEEL +0 -0
  84. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/licenses/LICENSE.md +0 -0
  85. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2132 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category/defective_structures/two_dimensional/adatom/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 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]?[0-9]*)+$")] = 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
+ """
145
+
146
+
147
+ class Value(Enum):
148
+ H = "H"
149
+ He = "He"
150
+ Li = "Li"
151
+ Be = "Be"
152
+ B = "B"
153
+ C = "C"
154
+ N = "N"
155
+ O = "O"
156
+ F = "F"
157
+ Ne = "Ne"
158
+ Na = "Na"
159
+ Mg = "Mg"
160
+ Al = "Al"
161
+ Si = "Si"
162
+ P = "P"
163
+ S = "S"
164
+ Cl = "Cl"
165
+ Ar = "Ar"
166
+ K = "K"
167
+ Ca = "Ca"
168
+ Sc = "Sc"
169
+ Ti = "Ti"
170
+ V = "V"
171
+ Cr = "Cr"
172
+ Mn = "Mn"
173
+ Fe = "Fe"
174
+ Co = "Co"
175
+ Ni = "Ni"
176
+ Cu = "Cu"
177
+ Zn = "Zn"
178
+ Ga = "Ga"
179
+ Ge = "Ge"
180
+ As = "As"
181
+ Se = "Se"
182
+ Br = "Br"
183
+ Kr = "Kr"
184
+ Rb = "Rb"
185
+ Sr = "Sr"
186
+ Y = "Y"
187
+ Zr = "Zr"
188
+ Nb = "Nb"
189
+ Mo = "Mo"
190
+ Tc = "Tc"
191
+ Ru = "Ru"
192
+ Rh = "Rh"
193
+ Pd = "Pd"
194
+ Ag = "Ag"
195
+ Cd = "Cd"
196
+ In = "In"
197
+ Sn = "Sn"
198
+ Sb = "Sb"
199
+ Te = "Te"
200
+ I = "I"
201
+ Xe = "Xe"
202
+ Cs = "Cs"
203
+ Ba = "Ba"
204
+ La = "La"
205
+ Ce = "Ce"
206
+ Pr = "Pr"
207
+ Nd = "Nd"
208
+ Pm = "Pm"
209
+ Sm = "Sm"
210
+ Eu = "Eu"
211
+ Gd = "Gd"
212
+ Tb = "Tb"
213
+ Dy = "Dy"
214
+ Ho = "Ho"
215
+ Er = "Er"
216
+ Tm = "Tm"
217
+ Yb = "Yb"
218
+ Lu = "Lu"
219
+ Hf = "Hf"
220
+ Ta = "Ta"
221
+ W = "W"
222
+ Re = "Re"
223
+ Os = "Os"
224
+ Ir = "Ir"
225
+ Pt = "Pt"
226
+ Au = "Au"
227
+ Hg = "Hg"
228
+ Tl = "Tl"
229
+ Pb = "Pb"
230
+ Bi = "Bi"
231
+ Po = "Po"
232
+ At = "At"
233
+ Rn = "Rn"
234
+ Fr = "Fr"
235
+ Ra = "Ra"
236
+ Ac = "Ac"
237
+ Th = "Th"
238
+ Pa = "Pa"
239
+ U = "U"
240
+ Np = "Np"
241
+ Pu = "Pu"
242
+ Am = "Am"
243
+ Cm = "Cm"
244
+ Bk = "Bk"
245
+ Cf = "Cf"
246
+ Es = "Es"
247
+ Fm = "Fm"
248
+ Md = "Md"
249
+ No = "No"
250
+ Lr = "Lr"
251
+ Rf = "Rf"
252
+ Db = "Db"
253
+ Sg = "Sg"
254
+ Bh = "Bh"
255
+ Hs = "Hs"
256
+ Mt = "Mt"
257
+ Ds = "Ds"
258
+ Rg = "Rg"
259
+ Cn = "Cn"
260
+ Nh = "Nh"
261
+ Fl = "Fl"
262
+ Mc = "Mc"
263
+ Lv = "Lv"
264
+ Ts = "Ts"
265
+ Og = "Og"
266
+
267
+
268
+ class Value47(Enum):
269
+ X = "X"
270
+ Vac = "Vac"
271
+
272
+
273
+ class AtomicElementSchema(BaseModel):
274
+ value: Union[Value, Value47]
275
+ """
276
+ All elements, including extra elements
277
+ """
278
+ id: int
279
+ """
280
+ integer id of this entry
281
+ """
282
+
283
+
284
+ class AtomicCoordinateSchema(BaseModel):
285
+ value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
286
+ """
287
+ value of this entry
288
+ """
289
+ id: int
290
+ """
291
+ integer id of this entry
292
+ """
293
+
294
+
295
+ class BasisUnitsEnum(Enum):
296
+ crystal = "crystal"
297
+ cartesian = "cartesian"
298
+
299
+
300
+ class AtomicLabelSchema(BaseModel):
301
+ value: Union[Union[int, str, float], conint(ge=1, le=9)]
302
+ """
303
+ value of this entry
304
+ """
305
+ id: int
306
+ """
307
+ integer id of this entry
308
+ """
309
+
310
+
311
+ class BasisSchema(BaseModel):
312
+ elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
313
+ """
314
+ atomic elements schema
315
+ """
316
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
317
+ """
318
+ atomic coordinates schema
319
+ """
320
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
321
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
322
+ """
323
+ atomic labels schema
324
+ """
325
+
326
+
327
+ class LatticeVectorsUnitsEnum(Enum):
328
+ angstrom = "angstrom"
329
+ bohr = "bohr"
330
+
331
+
332
+ class LatticeVectorsSchema(BaseModel):
333
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
334
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
335
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
336
+ alat: Optional[float] = 1
337
+ """
338
+ lattice parameter for fractional coordinates
339
+ """
340
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
341
+
342
+
343
+ class LatticeTypeEnum(Enum):
344
+ CUB = "CUB"
345
+ BCC = "BCC"
346
+ FCC = "FCC"
347
+ TET = "TET"
348
+ MCL = "MCL"
349
+ ORC = "ORC"
350
+ ORCC = "ORCC"
351
+ ORCF = "ORCF"
352
+ ORCI = "ORCI"
353
+ HEX = "HEX"
354
+ BCT = "BCT"
355
+ TRI = "TRI"
356
+ MCLC = "MCLC"
357
+ RHL = "RHL"
358
+
359
+
360
+ class LatticeUnitsLengthEnum(Enum):
361
+ angstrom = "angstrom"
362
+ bohr = "bohr"
363
+
364
+
365
+ class LatticeUnitsAngleEnum(Enum):
366
+ degree = "degree"
367
+ radian = "radian"
368
+
369
+
370
+ class LatticeUnitsSchema(BaseModel):
371
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
372
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
373
+
374
+
375
+ class LatticeSchema(BaseModel):
376
+ a: float
377
+ """
378
+ length of the first lattice vector
379
+ """
380
+ b: float
381
+ """
382
+ length of the second lattice vector
383
+ """
384
+ c: float
385
+ """
386
+ length of the third lattice vector
387
+ """
388
+ alpha: float
389
+ """
390
+ angle between first and second lattice vector
391
+ """
392
+ beta: float
393
+ """
394
+ angle between second and third lattice vector
395
+ """
396
+ gamma: float
397
+ """
398
+ angle between first and third lattice vector
399
+ """
400
+ vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
401
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
402
+ units: Optional[LatticeUnitsSchema] = Field(
403
+ default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
404
+ title="Lattice units schema",
405
+ )
406
+
407
+
408
+ class Name(Enum):
409
+ volume = "volume"
410
+
411
+
412
+ class Units(Enum):
413
+ angstrom_3 = "angstrom^3"
414
+
415
+
416
+ class VolumeSchema(BaseModel):
417
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
418
+ units: Optional[Units] = None
419
+ value: float
420
+
421
+
422
+ class Name160(Enum):
423
+ density = "density"
424
+
425
+
426
+ class Units67(Enum):
427
+ g_cm_3 = "g/cm^3"
428
+
429
+
430
+ class DensitySchema(BaseModel):
431
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
432
+ units: Optional[Units67] = None
433
+ value: float
434
+
435
+
436
+ class Units68(Enum):
437
+ angstrom = "angstrom"
438
+
439
+
440
+ class ScalarSchema(BaseModel):
441
+ units: Optional[Units68] = None
442
+ value: float
443
+
444
+
445
+ class Name161(Enum):
446
+ symmetry = "symmetry"
447
+
448
+
449
+ class SymmetrySchema(BaseModel):
450
+ pointGroupSymbol: Optional[str] = None
451
+ """
452
+ point group symbol in Schoenflies notation
453
+ """
454
+ spaceGroupSymbol: Optional[str] = None
455
+ """
456
+ space group symbol in Hermann–Mauguin notation
457
+ """
458
+ tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
459
+ """
460
+ tolerance used for symmetry calculation
461
+ """
462
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
463
+
464
+
465
+ class Name162(Enum):
466
+ elemental_ratio = "elemental_ratio"
467
+
468
+
469
+ class ElementalRatio(BaseModel):
470
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
471
+ value: confloat(ge=0.0, le=1.0)
472
+ element: Optional[str] = None
473
+ """
474
+ the element this ratio is for
475
+ """
476
+
477
+
478
+ class Name163(Enum):
479
+ p_norm = "p-norm"
480
+
481
+
482
+ class PNorm(BaseModel):
483
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
484
+ degree: Optional[int] = None
485
+ """
486
+ degree of the dimensionality of the norm
487
+ """
488
+ value: float
489
+
490
+
491
+ class Name164(Enum):
492
+ inchi = "inchi"
493
+
494
+
495
+ class InChIRepresentationSchema(BaseModel):
496
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
497
+ value: str
498
+
499
+
500
+ class Name165(Enum):
501
+ inchi_key = "inchi_key"
502
+
503
+
504
+ class InChIKeyRepresentationSchema(BaseModel):
505
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
506
+ value: str
507
+
508
+
509
+ class DerivedPropertiesSchema(
510
+ RootModel[
511
+ Union[
512
+ VolumeSchema,
513
+ DensitySchema,
514
+ SymmetrySchema,
515
+ ElementalRatio,
516
+ PNorm,
517
+ InChIRepresentationSchema,
518
+ InChIKeyRepresentationSchema,
519
+ ]
520
+ ]
521
+ ):
522
+ root: Union[
523
+ VolumeSchema,
524
+ DensitySchema,
525
+ SymmetrySchema,
526
+ ElementalRatio,
527
+ PNorm,
528
+ InChIRepresentationSchema,
529
+ InChIKeyRepresentationSchema,
530
+ ] = Field(..., discriminator="name")
531
+
532
+
533
+ class DatabaseSourceSchema(BaseModel):
534
+ id: Union[str, float]
535
+ """
536
+ 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
537
+ """
538
+ source: str
539
+ """
540
+ Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
541
+ """
542
+ origin: bool
543
+ """
544
+ 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).
545
+ """
546
+ data: Optional[Dict[str, Any]] = None
547
+ """
548
+ Original response from external source.
549
+ """
550
+ doi: Optional[str] = None
551
+ """
552
+ Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
553
+ """
554
+ url: Optional[str] = None
555
+ """
556
+ 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
557
+ """
558
+
559
+
560
+ class FileSourceSchema(BaseModel):
561
+ extension: Optional[str] = None
562
+ """
563
+ file extension
564
+ """
565
+ filename: str
566
+ """
567
+ file name without extension
568
+ """
569
+ text: str
570
+ """
571
+ file content as raw text
572
+ """
573
+ hash: str
574
+ """
575
+ MD5 hash based on file content
576
+ """
577
+
578
+
579
+ class Name166(Enum):
580
+ default = "default"
581
+ atomsTooClose = "atomsTooClose"
582
+ atomsOverlap = "atomsOverlap"
583
+
584
+
585
+ class Severity(Enum):
586
+ info = "info"
587
+ warning = "warning"
588
+ error = "error"
589
+
590
+
591
+ class MaterialConsistencyCheckSchema(BaseModel):
592
+ name: Name166
593
+ """
594
+ Name of the consistency check that is performed, which is listed in an enum.
595
+ """
596
+ key: str
597
+ """
598
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
599
+ """
600
+ severity: Severity
601
+ """
602
+ Severity level of the problem, which is used in UI to differentiate.
603
+ """
604
+ message: str
605
+ """
606
+ Message generated by the consistency check describing the problem.
607
+ """
608
+
609
+
610
+ class CrystalSchema(BaseModel):
611
+ formula: Optional[str] = None
612
+ """
613
+ reduced chemical formula
614
+ """
615
+ unitCellFormula: Optional[str] = None
616
+ """
617
+ chemical formula based on the number of atoms of each element in the supercell
618
+ """
619
+ basis: BasisSchema = Field(..., title="basis schema")
620
+ lattice: LatticeSchema = Field(..., title="lattice schema")
621
+ derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
622
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
623
+ """
624
+ information about a database source
625
+ """
626
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
627
+ """
628
+ file source with the information inside
629
+ """
630
+ scaledHash: Optional[str] = None
631
+ """
632
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
633
+ """
634
+ icsdId: Optional[int] = None
635
+ """
636
+ Corresponding ICSD id of the material
637
+ """
638
+ isNonPeriodic: Optional[bool] = None
639
+ """
640
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
641
+ """
642
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
643
+ field_id: Optional[str] = Field(None, alias="_id")
644
+ """
645
+ entity identity
646
+ """
647
+ slug: Optional[str] = None
648
+ """
649
+ entity slug
650
+ """
651
+ systemName: Optional[str] = None
652
+ schemaVersion: Optional[str] = "2022.8.16"
653
+ """
654
+ entity's schema version. Used to distinct between different schemas.
655
+ """
656
+ name: Optional[str] = None
657
+ """
658
+ entity name
659
+ """
660
+ isDefault: Optional[bool] = False
661
+ """
662
+ Identifies that entity is defaultable
663
+ """
664
+ metadata: Optional[Dict[str, Any]] = None
665
+
666
+
667
+ class AtomicLayersUniqueRepeatedSchema(BaseModel):
668
+ termination_top: TerminationSchema = Field(..., title="Termination Schema")
669
+ """
670
+ Defines a specific termination of a slab
671
+ """
672
+ number_of_repetitions: conint(ge=1)
673
+ """
674
+ Number of repetitions of the unique atomic layers
675
+ """
676
+ miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
677
+ """
678
+ Miller indices [h, k, l] defining crystallographic planes
679
+ """
680
+ crystal: CrystalSchema = Field(..., title="Crystal Schema")
681
+ """
682
+ A crystal structure, referencing the base material schema
683
+ """
684
+ use_conventional_cell: Optional[bool] = True
685
+ """
686
+ Use the conventional cell for the crystal structure
687
+ """
688
+
689
+
690
+ class AxisEnum(Enum):
691
+ x = "x"
692
+ y = "y"
693
+ z = "z"
694
+
695
+
696
+ class Value48(Enum):
697
+ H = "H"
698
+ He = "He"
699
+ Li = "Li"
700
+ Be = "Be"
701
+ B = "B"
702
+ C = "C"
703
+ N = "N"
704
+ O = "O"
705
+ F = "F"
706
+ Ne = "Ne"
707
+ Na = "Na"
708
+ Mg = "Mg"
709
+ Al = "Al"
710
+ Si = "Si"
711
+ P = "P"
712
+ S = "S"
713
+ Cl = "Cl"
714
+ Ar = "Ar"
715
+ K = "K"
716
+ Ca = "Ca"
717
+ Sc = "Sc"
718
+ Ti = "Ti"
719
+ V = "V"
720
+ Cr = "Cr"
721
+ Mn = "Mn"
722
+ Fe = "Fe"
723
+ Co = "Co"
724
+ Ni = "Ni"
725
+ Cu = "Cu"
726
+ Zn = "Zn"
727
+ Ga = "Ga"
728
+ Ge = "Ge"
729
+ As = "As"
730
+ Se = "Se"
731
+ Br = "Br"
732
+ Kr = "Kr"
733
+ Rb = "Rb"
734
+ Sr = "Sr"
735
+ Y = "Y"
736
+ Zr = "Zr"
737
+ Nb = "Nb"
738
+ Mo = "Mo"
739
+ Tc = "Tc"
740
+ Ru = "Ru"
741
+ Rh = "Rh"
742
+ Pd = "Pd"
743
+ Ag = "Ag"
744
+ Cd = "Cd"
745
+ In = "In"
746
+ Sn = "Sn"
747
+ Sb = "Sb"
748
+ Te = "Te"
749
+ I = "I"
750
+ Xe = "Xe"
751
+ Cs = "Cs"
752
+ Ba = "Ba"
753
+ La = "La"
754
+ Ce = "Ce"
755
+ Pr = "Pr"
756
+ Nd = "Nd"
757
+ Pm = "Pm"
758
+ Sm = "Sm"
759
+ Eu = "Eu"
760
+ Gd = "Gd"
761
+ Tb = "Tb"
762
+ Dy = "Dy"
763
+ Ho = "Ho"
764
+ Er = "Er"
765
+ Tm = "Tm"
766
+ Yb = "Yb"
767
+ Lu = "Lu"
768
+ Hf = "Hf"
769
+ Ta = "Ta"
770
+ W = "W"
771
+ Re = "Re"
772
+ Os = "Os"
773
+ Ir = "Ir"
774
+ Pt = "Pt"
775
+ Au = "Au"
776
+ Hg = "Hg"
777
+ Tl = "Tl"
778
+ Pb = "Pb"
779
+ Bi = "Bi"
780
+ Po = "Po"
781
+ At = "At"
782
+ Rn = "Rn"
783
+ Fr = "Fr"
784
+ Ra = "Ra"
785
+ Ac = "Ac"
786
+ Th = "Th"
787
+ Pa = "Pa"
788
+ U = "U"
789
+ Np = "Np"
790
+ Pu = "Pu"
791
+ Am = "Am"
792
+ Cm = "Cm"
793
+ Bk = "Bk"
794
+ Cf = "Cf"
795
+ Es = "Es"
796
+ Fm = "Fm"
797
+ Md = "Md"
798
+ No = "No"
799
+ Lr = "Lr"
800
+ Rf = "Rf"
801
+ Db = "Db"
802
+ Sg = "Sg"
803
+ Bh = "Bh"
804
+ Hs = "Hs"
805
+ Mt = "Mt"
806
+ Ds = "Ds"
807
+ Rg = "Rg"
808
+ Cn = "Cn"
809
+ Nh = "Nh"
810
+ Fl = "Fl"
811
+ Mc = "Mc"
812
+ Lv = "Lv"
813
+ Ts = "Ts"
814
+ Og = "Og"
815
+
816
+
817
+ class Value49(Enum):
818
+ X = "X"
819
+ Vac = "Vac"
820
+
821
+
822
+ class AtomicElementSchema23(BaseModel):
823
+ value: Union[Value48, Value49]
824
+ """
825
+ All elements, including extra elements
826
+ """
827
+ id: int
828
+ """
829
+ integer id of this entry
830
+ """
831
+
832
+
833
+ class BasisSchema21(BaseModel):
834
+ elements: List[AtomicElementSchema23] = Field(..., title="atomic elements schema")
835
+ """
836
+ atomic elements schema
837
+ """
838
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
839
+ """
840
+ atomic coordinates schema
841
+ """
842
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
843
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
844
+ """
845
+ atomic labels schema
846
+ """
847
+
848
+
849
+ class LatticeVectorsSchema20(BaseModel):
850
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
851
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
852
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
853
+ alat: Optional[float] = 1
854
+ """
855
+ lattice parameter for fractional coordinates
856
+ """
857
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
858
+
859
+
860
+ class LatticeUnitsSchema20(BaseModel):
861
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
862
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
863
+
864
+
865
+ class LatticeSchema20(BaseModel):
866
+ a: float
867
+ """
868
+ length of the first lattice vector
869
+ """
870
+ b: float
871
+ """
872
+ length of the second lattice vector
873
+ """
874
+ c: float
875
+ """
876
+ length of the third lattice vector
877
+ """
878
+ alpha: float
879
+ """
880
+ angle between first and second lattice vector
881
+ """
882
+ beta: float
883
+ """
884
+ angle between second and third lattice vector
885
+ """
886
+ gamma: float
887
+ """
888
+ angle between first and third lattice vector
889
+ """
890
+ vectors: Optional[LatticeVectorsSchema20] = Field(None, title="lattice vectors schema")
891
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
892
+ units: Optional[LatticeUnitsSchema20] = Field(
893
+ default_factory=lambda: LatticeUnitsSchema20.model_validate({"length": "angstrom", "angle": "degree"}),
894
+ title="Lattice units schema",
895
+ )
896
+
897
+
898
+ class Name167(Enum):
899
+ volume = "volume"
900
+
901
+
902
+ class Units69(Enum):
903
+ angstrom_3 = "angstrom^3"
904
+
905
+
906
+ class VolumeSchema20(BaseModel):
907
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
908
+ units: Optional[Units69] = None
909
+ value: float
910
+
911
+
912
+ class Name168(Enum):
913
+ density = "density"
914
+
915
+
916
+ class Units70(Enum):
917
+ g_cm_3 = "g/cm^3"
918
+
919
+
920
+ class DensitySchema20(BaseModel):
921
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
922
+ units: Optional[Units70] = None
923
+ value: float
924
+
925
+
926
+ class Units71(Enum):
927
+ angstrom = "angstrom"
928
+
929
+
930
+ class ScalarSchema21(BaseModel):
931
+ units: Optional[Units71] = None
932
+ value: float
933
+
934
+
935
+ class Name169(Enum):
936
+ symmetry = "symmetry"
937
+
938
+
939
+ class SymmetrySchema20(BaseModel):
940
+ pointGroupSymbol: Optional[str] = None
941
+ """
942
+ point group symbol in Schoenflies notation
943
+ """
944
+ spaceGroupSymbol: Optional[str] = None
945
+ """
946
+ space group symbol in Hermann–Mauguin notation
947
+ """
948
+ tolerance: Optional[ScalarSchema21] = Field(None, title="scalar schema")
949
+ """
950
+ tolerance used for symmetry calculation
951
+ """
952
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
953
+
954
+
955
+ class Name170(Enum):
956
+ elemental_ratio = "elemental_ratio"
957
+
958
+
959
+ class ElementalRatio20(BaseModel):
960
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
961
+ value: confloat(ge=0.0, le=1.0)
962
+ element: Optional[str] = None
963
+ """
964
+ the element this ratio is for
965
+ """
966
+
967
+
968
+ class Name171(Enum):
969
+ p_norm = "p-norm"
970
+
971
+
972
+ class PNorm20(BaseModel):
973
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
974
+ degree: Optional[int] = None
975
+ """
976
+ degree of the dimensionality of the norm
977
+ """
978
+ value: float
979
+
980
+
981
+ class Name172(Enum):
982
+ inchi = "inchi"
983
+
984
+
985
+ class InChIRepresentationSchema20(BaseModel):
986
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
987
+ value: str
988
+
989
+
990
+ class Name173(Enum):
991
+ inchi_key = "inchi_key"
992
+
993
+
994
+ class InChIKeyRepresentationSchema20(BaseModel):
995
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
996
+ value: str
997
+
998
+
999
+ class DerivedPropertiesSchema20(
1000
+ RootModel[
1001
+ Union[
1002
+ VolumeSchema20,
1003
+ DensitySchema20,
1004
+ SymmetrySchema20,
1005
+ ElementalRatio20,
1006
+ PNorm20,
1007
+ InChIRepresentationSchema20,
1008
+ InChIKeyRepresentationSchema20,
1009
+ ]
1010
+ ]
1011
+ ):
1012
+ root: Union[
1013
+ VolumeSchema20,
1014
+ DensitySchema20,
1015
+ SymmetrySchema20,
1016
+ ElementalRatio20,
1017
+ PNorm20,
1018
+ InChIRepresentationSchema20,
1019
+ InChIKeyRepresentationSchema20,
1020
+ ] = Field(..., discriminator="name")
1021
+
1022
+
1023
+ class Name174(Enum):
1024
+ default = "default"
1025
+ atomsTooClose = "atomsTooClose"
1026
+ atomsOverlap = "atomsOverlap"
1027
+
1028
+
1029
+ class MaterialConsistencyCheckSchema20(BaseModel):
1030
+ name: Name174
1031
+ """
1032
+ Name of the consistency check that is performed, which is listed in an enum.
1033
+ """
1034
+ key: str
1035
+ """
1036
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
1037
+ """
1038
+ severity: Severity
1039
+ """
1040
+ Severity level of the problem, which is used in UI to differentiate.
1041
+ """
1042
+ message: str
1043
+ """
1044
+ Message generated by the consistency check describing the problem.
1045
+ """
1046
+
1047
+
1048
+ class CrystalSchema20(BaseModel):
1049
+ formula: Optional[str] = None
1050
+ """
1051
+ reduced chemical formula
1052
+ """
1053
+ unitCellFormula: Optional[str] = None
1054
+ """
1055
+ chemical formula based on the number of atoms of each element in the supercell
1056
+ """
1057
+ basis: BasisSchema21 = Field(..., title="basis schema")
1058
+ lattice: LatticeSchema20 = Field(..., title="lattice schema")
1059
+ derivedProperties: Optional[List[DerivedPropertiesSchema20]] = Field(None, title="derived properties schema")
1060
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
1061
+ """
1062
+ information about a database source
1063
+ """
1064
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
1065
+ """
1066
+ file source with the information inside
1067
+ """
1068
+ scaledHash: Optional[str] = None
1069
+ """
1070
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
1071
+ """
1072
+ icsdId: Optional[int] = None
1073
+ """
1074
+ Corresponding ICSD id of the material
1075
+ """
1076
+ isNonPeriodic: Optional[bool] = None
1077
+ """
1078
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
1079
+ """
1080
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema20]] = None
1081
+ field_id: Optional[str] = Field(None, alias="_id")
1082
+ """
1083
+ entity identity
1084
+ """
1085
+ slug: Optional[str] = None
1086
+ """
1087
+ entity slug
1088
+ """
1089
+ systemName: Optional[str] = None
1090
+ schemaVersion: Optional[str] = "2022.8.16"
1091
+ """
1092
+ entity's schema version. Used to distinct between different schemas.
1093
+ """
1094
+ name: Optional[str] = None
1095
+ """
1096
+ entity name
1097
+ """
1098
+ isDefault: Optional[bool] = False
1099
+ """
1100
+ Identifies that entity is defaultable
1101
+ """
1102
+ metadata: Optional[Dict[str, Any]] = None
1103
+
1104
+
1105
+ class VacuumConfigurationSchema(BaseModel):
1106
+ direction: AxisEnum = Field(..., title="Axis Enum")
1107
+ """
1108
+ Enum for axis types
1109
+ """
1110
+ size: Optional[confloat(ge=0.0)] = 10
1111
+ """
1112
+ Size of the vacuum slab in angstroms
1113
+ """
1114
+ crystal: CrystalSchema20 = Field(..., title="Crystal Schema")
1115
+ """
1116
+ A crystal structure, referencing the base material schema
1117
+ """
1118
+
1119
+
1120
+ class ObjectWithId(BaseModel):
1121
+ value: Optional[confloat(ge=0.0)] = None
1122
+ id: int
1123
+ """
1124
+ integer id of this entry
1125
+ """
1126
+
1127
+
1128
+ class SlabConfigurationSchema(BaseModel):
1129
+ stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field(
1130
+ ..., max_length=2, min_length=2
1131
+ )
1132
+ direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
1133
+ """
1134
+ Enum for axis types
1135
+ """
1136
+ gaps: Optional[List[ObjectWithId]] = None
1137
+ """
1138
+ Gap distances between stack components as an array of objects with id and value
1139
+ """
1140
+
1141
+
1142
+ class Value50(Enum):
1143
+ H = "H"
1144
+ He = "He"
1145
+ Li = "Li"
1146
+ Be = "Be"
1147
+ B = "B"
1148
+ C = "C"
1149
+ N = "N"
1150
+ O = "O"
1151
+ F = "F"
1152
+ Ne = "Ne"
1153
+ Na = "Na"
1154
+ Mg = "Mg"
1155
+ Al = "Al"
1156
+ Si = "Si"
1157
+ P = "P"
1158
+ S = "S"
1159
+ Cl = "Cl"
1160
+ Ar = "Ar"
1161
+ K = "K"
1162
+ Ca = "Ca"
1163
+ Sc = "Sc"
1164
+ Ti = "Ti"
1165
+ V = "V"
1166
+ Cr = "Cr"
1167
+ Mn = "Mn"
1168
+ Fe = "Fe"
1169
+ Co = "Co"
1170
+ Ni = "Ni"
1171
+ Cu = "Cu"
1172
+ Zn = "Zn"
1173
+ Ga = "Ga"
1174
+ Ge = "Ge"
1175
+ As = "As"
1176
+ Se = "Se"
1177
+ Br = "Br"
1178
+ Kr = "Kr"
1179
+ Rb = "Rb"
1180
+ Sr = "Sr"
1181
+ Y = "Y"
1182
+ Zr = "Zr"
1183
+ Nb = "Nb"
1184
+ Mo = "Mo"
1185
+ Tc = "Tc"
1186
+ Ru = "Ru"
1187
+ Rh = "Rh"
1188
+ Pd = "Pd"
1189
+ Ag = "Ag"
1190
+ Cd = "Cd"
1191
+ In = "In"
1192
+ Sn = "Sn"
1193
+ Sb = "Sb"
1194
+ Te = "Te"
1195
+ I = "I"
1196
+ Xe = "Xe"
1197
+ Cs = "Cs"
1198
+ Ba = "Ba"
1199
+ La = "La"
1200
+ Ce = "Ce"
1201
+ Pr = "Pr"
1202
+ Nd = "Nd"
1203
+ Pm = "Pm"
1204
+ Sm = "Sm"
1205
+ Eu = "Eu"
1206
+ Gd = "Gd"
1207
+ Tb = "Tb"
1208
+ Dy = "Dy"
1209
+ Ho = "Ho"
1210
+ Er = "Er"
1211
+ Tm = "Tm"
1212
+ Yb = "Yb"
1213
+ Lu = "Lu"
1214
+ Hf = "Hf"
1215
+ Ta = "Ta"
1216
+ W = "W"
1217
+ Re = "Re"
1218
+ Os = "Os"
1219
+ Ir = "Ir"
1220
+ Pt = "Pt"
1221
+ Au = "Au"
1222
+ Hg = "Hg"
1223
+ Tl = "Tl"
1224
+ Pb = "Pb"
1225
+ Bi = "Bi"
1226
+ Po = "Po"
1227
+ At = "At"
1228
+ Rn = "Rn"
1229
+ Fr = "Fr"
1230
+ Ra = "Ra"
1231
+ Ac = "Ac"
1232
+ Th = "Th"
1233
+ Pa = "Pa"
1234
+ U = "U"
1235
+ Np = "Np"
1236
+ Pu = "Pu"
1237
+ Am = "Am"
1238
+ Cm = "Cm"
1239
+ Bk = "Bk"
1240
+ Cf = "Cf"
1241
+ Es = "Es"
1242
+ Fm = "Fm"
1243
+ Md = "Md"
1244
+ No = "No"
1245
+ Lr = "Lr"
1246
+ Rf = "Rf"
1247
+ Db = "Db"
1248
+ Sg = "Sg"
1249
+ Bh = "Bh"
1250
+ Hs = "Hs"
1251
+ Mt = "Mt"
1252
+ Ds = "Ds"
1253
+ Rg = "Rg"
1254
+ Cn = "Cn"
1255
+ Nh = "Nh"
1256
+ Fl = "Fl"
1257
+ Mc = "Mc"
1258
+ Lv = "Lv"
1259
+ Ts = "Ts"
1260
+ Og = "Og"
1261
+
1262
+
1263
+ class Value51(Enum):
1264
+ X = "X"
1265
+ Vac = "Vac"
1266
+
1267
+
1268
+ class AtomicElementSchema24(BaseModel):
1269
+ value: Union[Value50, Value51]
1270
+ """
1271
+ All elements, including extra elements
1272
+ """
1273
+ id: int
1274
+ """
1275
+ integer id of this entry
1276
+ """
1277
+
1278
+
1279
+ class BasisSchema22(BaseModel):
1280
+ elements: List[AtomicElementSchema24] = Field(..., title="atomic elements schema")
1281
+ """
1282
+ atomic elements schema
1283
+ """
1284
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
1285
+ """
1286
+ atomic coordinates schema
1287
+ """
1288
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
1289
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
1290
+ """
1291
+ atomic labels schema
1292
+ """
1293
+
1294
+
1295
+ class LatticeVectorsSchema21(BaseModel):
1296
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1297
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1298
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1299
+ alat: Optional[float] = 1
1300
+ """
1301
+ lattice parameter for fractional coordinates
1302
+ """
1303
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
1304
+
1305
+
1306
+ class LatticeUnitsSchema21(BaseModel):
1307
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
1308
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
1309
+
1310
+
1311
+ class LatticeSchema21(BaseModel):
1312
+ a: float
1313
+ """
1314
+ length of the first lattice vector
1315
+ """
1316
+ b: float
1317
+ """
1318
+ length of the second lattice vector
1319
+ """
1320
+ c: float
1321
+ """
1322
+ length of the third lattice vector
1323
+ """
1324
+ alpha: float
1325
+ """
1326
+ angle between first and second lattice vector
1327
+ """
1328
+ beta: float
1329
+ """
1330
+ angle between second and third lattice vector
1331
+ """
1332
+ gamma: float
1333
+ """
1334
+ angle between first and third lattice vector
1335
+ """
1336
+ vectors: Optional[LatticeVectorsSchema21] = Field(None, title="lattice vectors schema")
1337
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
1338
+ units: Optional[LatticeUnitsSchema21] = Field(
1339
+ default_factory=lambda: LatticeUnitsSchema21.model_validate({"length": "angstrom", "angle": "degree"}),
1340
+ title="Lattice units schema",
1341
+ )
1342
+
1343
+
1344
+ class Name175(Enum):
1345
+ volume = "volume"
1346
+
1347
+
1348
+ class Units72(Enum):
1349
+ angstrom_3 = "angstrom^3"
1350
+
1351
+
1352
+ class VolumeSchema21(BaseModel):
1353
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1354
+ units: Optional[Units72] = None
1355
+ value: float
1356
+
1357
+
1358
+ class Name176(Enum):
1359
+ density = "density"
1360
+
1361
+
1362
+ class Units73(Enum):
1363
+ g_cm_3 = "g/cm^3"
1364
+
1365
+
1366
+ class DensitySchema21(BaseModel):
1367
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1368
+ units: Optional[Units73] = None
1369
+ value: float
1370
+
1371
+
1372
+ class Units74(Enum):
1373
+ angstrom = "angstrom"
1374
+
1375
+
1376
+ class ScalarSchema22(BaseModel):
1377
+ units: Optional[Units74] = None
1378
+ value: float
1379
+
1380
+
1381
+ class Name177(Enum):
1382
+ symmetry = "symmetry"
1383
+
1384
+
1385
+ class SymmetrySchema21(BaseModel):
1386
+ pointGroupSymbol: Optional[str] = None
1387
+ """
1388
+ point group symbol in Schoenflies notation
1389
+ """
1390
+ spaceGroupSymbol: Optional[str] = None
1391
+ """
1392
+ space group symbol in Hermann–Mauguin notation
1393
+ """
1394
+ tolerance: Optional[ScalarSchema22] = Field(None, title="scalar schema")
1395
+ """
1396
+ tolerance used for symmetry calculation
1397
+ """
1398
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
1399
+
1400
+
1401
+ class Name178(Enum):
1402
+ elemental_ratio = "elemental_ratio"
1403
+
1404
+
1405
+ class ElementalRatio21(BaseModel):
1406
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
1407
+ value: confloat(ge=0.0, le=1.0)
1408
+ element: Optional[str] = None
1409
+ """
1410
+ the element this ratio is for
1411
+ """
1412
+
1413
+
1414
+ class Name179(Enum):
1415
+ p_norm = "p-norm"
1416
+
1417
+
1418
+ class PNorm21(BaseModel):
1419
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1420
+ degree: Optional[int] = None
1421
+ """
1422
+ degree of the dimensionality of the norm
1423
+ """
1424
+ value: float
1425
+
1426
+
1427
+ class Name180(Enum):
1428
+ inchi = "inchi"
1429
+
1430
+
1431
+ class InChIRepresentationSchema21(BaseModel):
1432
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1433
+ value: str
1434
+
1435
+
1436
+ class Name181(Enum):
1437
+ inchi_key = "inchi_key"
1438
+
1439
+
1440
+ class InChIKeyRepresentationSchema21(BaseModel):
1441
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1442
+ value: str
1443
+
1444
+
1445
+ class DerivedPropertiesSchema21(
1446
+ RootModel[
1447
+ Union[
1448
+ VolumeSchema21,
1449
+ DensitySchema21,
1450
+ SymmetrySchema21,
1451
+ ElementalRatio21,
1452
+ PNorm21,
1453
+ InChIRepresentationSchema21,
1454
+ InChIKeyRepresentationSchema21,
1455
+ ]
1456
+ ]
1457
+ ):
1458
+ root: Union[
1459
+ VolumeSchema21,
1460
+ DensitySchema21,
1461
+ SymmetrySchema21,
1462
+ ElementalRatio21,
1463
+ PNorm21,
1464
+ InChIRepresentationSchema21,
1465
+ InChIKeyRepresentationSchema21,
1466
+ ] = Field(..., discriminator="name")
1467
+
1468
+
1469
+ class Name182(Enum):
1470
+ default = "default"
1471
+ atomsTooClose = "atomsTooClose"
1472
+ atomsOverlap = "atomsOverlap"
1473
+
1474
+
1475
+ class MaterialConsistencyCheckSchema21(BaseModel):
1476
+ name: Name182
1477
+ """
1478
+ Name of the consistency check that is performed, which is listed in an enum.
1479
+ """
1480
+ key: str
1481
+ """
1482
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
1483
+ """
1484
+ severity: Severity
1485
+ """
1486
+ Severity level of the problem, which is used in UI to differentiate.
1487
+ """
1488
+ message: str
1489
+ """
1490
+ Message generated by the consistency check describing the problem.
1491
+ """
1492
+
1493
+
1494
+ class CrystalSchema21(BaseModel):
1495
+ formula: Optional[str] = None
1496
+ """
1497
+ reduced chemical formula
1498
+ """
1499
+ unitCellFormula: Optional[str] = None
1500
+ """
1501
+ chemical formula based on the number of atoms of each element in the supercell
1502
+ """
1503
+ basis: BasisSchema22 = Field(..., title="basis schema")
1504
+ lattice: LatticeSchema21 = Field(..., title="lattice schema")
1505
+ derivedProperties: Optional[List[DerivedPropertiesSchema21]] = Field(None, title="derived properties schema")
1506
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
1507
+ """
1508
+ information about a database source
1509
+ """
1510
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
1511
+ """
1512
+ file source with the information inside
1513
+ """
1514
+ scaledHash: Optional[str] = None
1515
+ """
1516
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
1517
+ """
1518
+ icsdId: Optional[int] = None
1519
+ """
1520
+ Corresponding ICSD id of the material
1521
+ """
1522
+ isNonPeriodic: Optional[bool] = None
1523
+ """
1524
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
1525
+ """
1526
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema21]] = None
1527
+ field_id: Optional[str] = Field(None, alias="_id")
1528
+ """
1529
+ entity identity
1530
+ """
1531
+ slug: Optional[str] = None
1532
+ """
1533
+ entity slug
1534
+ """
1535
+ systemName: Optional[str] = None
1536
+ schemaVersion: Optional[str] = "2022.8.16"
1537
+ """
1538
+ entity's schema version. Used to distinct between different schemas.
1539
+ """
1540
+ name: Optional[str] = None
1541
+ """
1542
+ entity name
1543
+ """
1544
+ isDefault: Optional[bool] = False
1545
+ """
1546
+ Identifies that entity is defaultable
1547
+ """
1548
+ metadata: Optional[Dict[str, Any]] = None
1549
+
1550
+
1551
+ class ChemicalElement(Enum):
1552
+ H = "H"
1553
+ He = "He"
1554
+ Li = "Li"
1555
+ Be = "Be"
1556
+ B = "B"
1557
+ C = "C"
1558
+ N = "N"
1559
+ O = "O"
1560
+ F = "F"
1561
+ Ne = "Ne"
1562
+ Na = "Na"
1563
+ Mg = "Mg"
1564
+ Al = "Al"
1565
+ Si = "Si"
1566
+ P = "P"
1567
+ S = "S"
1568
+ Cl = "Cl"
1569
+ Ar = "Ar"
1570
+ K = "K"
1571
+ Ca = "Ca"
1572
+ Sc = "Sc"
1573
+ Ti = "Ti"
1574
+ V = "V"
1575
+ Cr = "Cr"
1576
+ Mn = "Mn"
1577
+ Fe = "Fe"
1578
+ Co = "Co"
1579
+ Ni = "Ni"
1580
+ Cu = "Cu"
1581
+ Zn = "Zn"
1582
+ Ga = "Ga"
1583
+ Ge = "Ge"
1584
+ As = "As"
1585
+ Se = "Se"
1586
+ Br = "Br"
1587
+ Kr = "Kr"
1588
+ Rb = "Rb"
1589
+ Sr = "Sr"
1590
+ Y = "Y"
1591
+ Zr = "Zr"
1592
+ Nb = "Nb"
1593
+ Mo = "Mo"
1594
+ Tc = "Tc"
1595
+ Ru = "Ru"
1596
+ Rh = "Rh"
1597
+ Pd = "Pd"
1598
+ Ag = "Ag"
1599
+ Cd = "Cd"
1600
+ In = "In"
1601
+ Sn = "Sn"
1602
+ Sb = "Sb"
1603
+ Te = "Te"
1604
+ I = "I"
1605
+ Xe = "Xe"
1606
+ Cs = "Cs"
1607
+ Ba = "Ba"
1608
+ La = "La"
1609
+ Ce = "Ce"
1610
+ Pr = "Pr"
1611
+ Nd = "Nd"
1612
+ Pm = "Pm"
1613
+ Sm = "Sm"
1614
+ Eu = "Eu"
1615
+ Gd = "Gd"
1616
+ Tb = "Tb"
1617
+ Dy = "Dy"
1618
+ Ho = "Ho"
1619
+ Er = "Er"
1620
+ Tm = "Tm"
1621
+ Yb = "Yb"
1622
+ Lu = "Lu"
1623
+ Hf = "Hf"
1624
+ Ta = "Ta"
1625
+ W = "W"
1626
+ Re = "Re"
1627
+ Os = "Os"
1628
+ Ir = "Ir"
1629
+ Pt = "Pt"
1630
+ Au = "Au"
1631
+ Hg = "Hg"
1632
+ Tl = "Tl"
1633
+ Pb = "Pb"
1634
+ Bi = "Bi"
1635
+ Po = "Po"
1636
+ At = "At"
1637
+ Rn = "Rn"
1638
+ Fr = "Fr"
1639
+ Ra = "Ra"
1640
+ Ac = "Ac"
1641
+ Th = "Th"
1642
+ Pa = "Pa"
1643
+ U = "U"
1644
+ Np = "Np"
1645
+ Pu = "Pu"
1646
+ Am = "Am"
1647
+ Cm = "Cm"
1648
+ Bk = "Bk"
1649
+ Cf = "Cf"
1650
+ Es = "Es"
1651
+ Fm = "Fm"
1652
+ Md = "Md"
1653
+ No = "No"
1654
+ Lr = "Lr"
1655
+ Rf = "Rf"
1656
+ Db = "Db"
1657
+ Sg = "Sg"
1658
+ Bh = "Bh"
1659
+ Hs = "Hs"
1660
+ Mt = "Mt"
1661
+ Ds = "Ds"
1662
+ Rg = "Rg"
1663
+ Cn = "Cn"
1664
+ Nh = "Nh"
1665
+ Fl = "Fl"
1666
+ Mc = "Mc"
1667
+ Lv = "Lv"
1668
+ Ts = "Ts"
1669
+ Og = "Og"
1670
+
1671
+
1672
+ class AtomSchema(BaseModel):
1673
+ chemical_element: ChemicalElement
1674
+
1675
+
1676
+ class ChemicalElement2(Enum):
1677
+ X = "X"
1678
+ Vac = "Vac"
1679
+
1680
+
1681
+ class VacancySchema(BaseModel):
1682
+ chemical_element: Optional[ChemicalElement2] = "Vac"
1683
+ """
1684
+ Extra elements, used for convenience purposed
1685
+ """
1686
+
1687
+
1688
+ class PointDefectSiteSchema(BaseModel):
1689
+ crystal: CrystalSchema21 = Field(..., title="Crystal Schema")
1690
+ """
1691
+ A crystal structure, referencing the base material schema
1692
+ """
1693
+ coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
1694
+ element: Union[AtomSchema, VacancySchema]
1695
+
1696
+
1697
+ class Value52(Enum):
1698
+ H = "H"
1699
+ He = "He"
1700
+ Li = "Li"
1701
+ Be = "Be"
1702
+ B = "B"
1703
+ C = "C"
1704
+ N = "N"
1705
+ O = "O"
1706
+ F = "F"
1707
+ Ne = "Ne"
1708
+ Na = "Na"
1709
+ Mg = "Mg"
1710
+ Al = "Al"
1711
+ Si = "Si"
1712
+ P = "P"
1713
+ S = "S"
1714
+ Cl = "Cl"
1715
+ Ar = "Ar"
1716
+ K = "K"
1717
+ Ca = "Ca"
1718
+ Sc = "Sc"
1719
+ Ti = "Ti"
1720
+ V = "V"
1721
+ Cr = "Cr"
1722
+ Mn = "Mn"
1723
+ Fe = "Fe"
1724
+ Co = "Co"
1725
+ Ni = "Ni"
1726
+ Cu = "Cu"
1727
+ Zn = "Zn"
1728
+ Ga = "Ga"
1729
+ Ge = "Ge"
1730
+ As = "As"
1731
+ Se = "Se"
1732
+ Br = "Br"
1733
+ Kr = "Kr"
1734
+ Rb = "Rb"
1735
+ Sr = "Sr"
1736
+ Y = "Y"
1737
+ Zr = "Zr"
1738
+ Nb = "Nb"
1739
+ Mo = "Mo"
1740
+ Tc = "Tc"
1741
+ Ru = "Ru"
1742
+ Rh = "Rh"
1743
+ Pd = "Pd"
1744
+ Ag = "Ag"
1745
+ Cd = "Cd"
1746
+ In = "In"
1747
+ Sn = "Sn"
1748
+ Sb = "Sb"
1749
+ Te = "Te"
1750
+ I = "I"
1751
+ Xe = "Xe"
1752
+ Cs = "Cs"
1753
+ Ba = "Ba"
1754
+ La = "La"
1755
+ Ce = "Ce"
1756
+ Pr = "Pr"
1757
+ Nd = "Nd"
1758
+ Pm = "Pm"
1759
+ Sm = "Sm"
1760
+ Eu = "Eu"
1761
+ Gd = "Gd"
1762
+ Tb = "Tb"
1763
+ Dy = "Dy"
1764
+ Ho = "Ho"
1765
+ Er = "Er"
1766
+ Tm = "Tm"
1767
+ Yb = "Yb"
1768
+ Lu = "Lu"
1769
+ Hf = "Hf"
1770
+ Ta = "Ta"
1771
+ W = "W"
1772
+ Re = "Re"
1773
+ Os = "Os"
1774
+ Ir = "Ir"
1775
+ Pt = "Pt"
1776
+ Au = "Au"
1777
+ Hg = "Hg"
1778
+ Tl = "Tl"
1779
+ Pb = "Pb"
1780
+ Bi = "Bi"
1781
+ Po = "Po"
1782
+ At = "At"
1783
+ Rn = "Rn"
1784
+ Fr = "Fr"
1785
+ Ra = "Ra"
1786
+ Ac = "Ac"
1787
+ Th = "Th"
1788
+ Pa = "Pa"
1789
+ U = "U"
1790
+ Np = "Np"
1791
+ Pu = "Pu"
1792
+ Am = "Am"
1793
+ Cm = "Cm"
1794
+ Bk = "Bk"
1795
+ Cf = "Cf"
1796
+ Es = "Es"
1797
+ Fm = "Fm"
1798
+ Md = "Md"
1799
+ No = "No"
1800
+ Lr = "Lr"
1801
+ Rf = "Rf"
1802
+ Db = "Db"
1803
+ Sg = "Sg"
1804
+ Bh = "Bh"
1805
+ Hs = "Hs"
1806
+ Mt = "Mt"
1807
+ Ds = "Ds"
1808
+ Rg = "Rg"
1809
+ Cn = "Cn"
1810
+ Nh = "Nh"
1811
+ Fl = "Fl"
1812
+ Mc = "Mc"
1813
+ Lv = "Lv"
1814
+ Ts = "Ts"
1815
+ Og = "Og"
1816
+
1817
+
1818
+ class Value53(Enum):
1819
+ X = "X"
1820
+ Vac = "Vac"
1821
+
1822
+
1823
+ class AtomicElementSchema25(BaseModel):
1824
+ value: Union[Value52, Value53]
1825
+ """
1826
+ All elements, including extra elements
1827
+ """
1828
+ id: int
1829
+ """
1830
+ integer id of this entry
1831
+ """
1832
+
1833
+
1834
+ class BasisSchema23(BaseModel):
1835
+ elements: List[AtomicElementSchema25] = Field(..., title="atomic elements schema")
1836
+ """
1837
+ atomic elements schema
1838
+ """
1839
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
1840
+ """
1841
+ atomic coordinates schema
1842
+ """
1843
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
1844
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
1845
+ """
1846
+ atomic labels schema
1847
+ """
1848
+
1849
+
1850
+ class LatticeVectorsSchema22(BaseModel):
1851
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1852
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1853
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1854
+ alat: Optional[float] = 1
1855
+ """
1856
+ lattice parameter for fractional coordinates
1857
+ """
1858
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
1859
+
1860
+
1861
+ class LatticeUnitsSchema22(BaseModel):
1862
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
1863
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
1864
+
1865
+
1866
+ class LatticeSchema22(BaseModel):
1867
+ a: float
1868
+ """
1869
+ length of the first lattice vector
1870
+ """
1871
+ b: float
1872
+ """
1873
+ length of the second lattice vector
1874
+ """
1875
+ c: float
1876
+ """
1877
+ length of the third lattice vector
1878
+ """
1879
+ alpha: float
1880
+ """
1881
+ angle between first and second lattice vector
1882
+ """
1883
+ beta: float
1884
+ """
1885
+ angle between second and third lattice vector
1886
+ """
1887
+ gamma: float
1888
+ """
1889
+ angle between first and third lattice vector
1890
+ """
1891
+ vectors: Optional[LatticeVectorsSchema22] = Field(None, title="lattice vectors schema")
1892
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
1893
+ units: Optional[LatticeUnitsSchema22] = Field(
1894
+ default_factory=lambda: LatticeUnitsSchema22.model_validate({"length": "angstrom", "angle": "degree"}),
1895
+ title="Lattice units schema",
1896
+ )
1897
+
1898
+
1899
+ class Name183(Enum):
1900
+ volume = "volume"
1901
+
1902
+
1903
+ class Units75(Enum):
1904
+ angstrom_3 = "angstrom^3"
1905
+
1906
+
1907
+ class VolumeSchema22(BaseModel):
1908
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1909
+ units: Optional[Units75] = None
1910
+ value: float
1911
+
1912
+
1913
+ class Name184(Enum):
1914
+ density = "density"
1915
+
1916
+
1917
+ class Units76(Enum):
1918
+ g_cm_3 = "g/cm^3"
1919
+
1920
+
1921
+ class DensitySchema22(BaseModel):
1922
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1923
+ units: Optional[Units76] = None
1924
+ value: float
1925
+
1926
+
1927
+ class Units77(Enum):
1928
+ angstrom = "angstrom"
1929
+
1930
+
1931
+ class ScalarSchema23(BaseModel):
1932
+ units: Optional[Units77] = None
1933
+ value: float
1934
+
1935
+
1936
+ class Name185(Enum):
1937
+ symmetry = "symmetry"
1938
+
1939
+
1940
+ class SymmetrySchema22(BaseModel):
1941
+ pointGroupSymbol: Optional[str] = None
1942
+ """
1943
+ point group symbol in Schoenflies notation
1944
+ """
1945
+ spaceGroupSymbol: Optional[str] = None
1946
+ """
1947
+ space group symbol in Hermann–Mauguin notation
1948
+ """
1949
+ tolerance: Optional[ScalarSchema23] = Field(None, title="scalar schema")
1950
+ """
1951
+ tolerance used for symmetry calculation
1952
+ """
1953
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
1954
+
1955
+
1956
+ class Name186(Enum):
1957
+ elemental_ratio = "elemental_ratio"
1958
+
1959
+
1960
+ class ElementalRatio22(BaseModel):
1961
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
1962
+ value: confloat(ge=0.0, le=1.0)
1963
+ element: Optional[str] = None
1964
+ """
1965
+ the element this ratio is for
1966
+ """
1967
+
1968
+
1969
+ class Name187(Enum):
1970
+ p_norm = "p-norm"
1971
+
1972
+
1973
+ class PNorm22(BaseModel):
1974
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1975
+ degree: Optional[int] = None
1976
+ """
1977
+ degree of the dimensionality of the norm
1978
+ """
1979
+ value: float
1980
+
1981
+
1982
+ class Name188(Enum):
1983
+ inchi = "inchi"
1984
+
1985
+
1986
+ class InChIRepresentationSchema22(BaseModel):
1987
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1988
+ value: str
1989
+
1990
+
1991
+ class Name189(Enum):
1992
+ inchi_key = "inchi_key"
1993
+
1994
+
1995
+ class InChIKeyRepresentationSchema22(BaseModel):
1996
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1997
+ value: str
1998
+
1999
+
2000
+ class DerivedPropertiesSchema22(
2001
+ RootModel[
2002
+ Union[
2003
+ VolumeSchema22,
2004
+ DensitySchema22,
2005
+ SymmetrySchema22,
2006
+ ElementalRatio22,
2007
+ PNorm22,
2008
+ InChIRepresentationSchema22,
2009
+ InChIKeyRepresentationSchema22,
2010
+ ]
2011
+ ]
2012
+ ):
2013
+ root: Union[
2014
+ VolumeSchema22,
2015
+ DensitySchema22,
2016
+ SymmetrySchema22,
2017
+ ElementalRatio22,
2018
+ PNorm22,
2019
+ InChIRepresentationSchema22,
2020
+ InChIKeyRepresentationSchema22,
2021
+ ] = Field(..., discriminator="name")
2022
+
2023
+
2024
+ class Name190(Enum):
2025
+ default = "default"
2026
+ atomsTooClose = "atomsTooClose"
2027
+ atomsOverlap = "atomsOverlap"
2028
+
2029
+
2030
+ class MaterialConsistencyCheckSchema22(BaseModel):
2031
+ name: Name190
2032
+ """
2033
+ Name of the consistency check that is performed, which is listed in an enum.
2034
+ """
2035
+ key: str
2036
+ """
2037
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
2038
+ """
2039
+ severity: Severity
2040
+ """
2041
+ Severity level of the problem, which is used in UI to differentiate.
2042
+ """
2043
+ message: str
2044
+ """
2045
+ Message generated by the consistency check describing the problem.
2046
+ """
2047
+
2048
+
2049
+ class CrystalSchema22(BaseModel):
2050
+ formula: Optional[str] = None
2051
+ """
2052
+ reduced chemical formula
2053
+ """
2054
+ unitCellFormula: Optional[str] = None
2055
+ """
2056
+ chemical formula based on the number of atoms of each element in the supercell
2057
+ """
2058
+ basis: BasisSchema23 = Field(..., title="basis schema")
2059
+ lattice: LatticeSchema22 = Field(..., title="lattice schema")
2060
+ derivedProperties: Optional[List[DerivedPropertiesSchema22]] = Field(None, title="derived properties schema")
2061
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
2062
+ """
2063
+ information about a database source
2064
+ """
2065
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
2066
+ """
2067
+ file source with the information inside
2068
+ """
2069
+ scaledHash: Optional[str] = None
2070
+ """
2071
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
2072
+ """
2073
+ icsdId: Optional[int] = None
2074
+ """
2075
+ Corresponding ICSD id of the material
2076
+ """
2077
+ isNonPeriodic: Optional[bool] = None
2078
+ """
2079
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
2080
+ """
2081
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema22]] = None
2082
+ field_id: Optional[str] = Field(None, alias="_id")
2083
+ """
2084
+ entity identity
2085
+ """
2086
+ slug: Optional[str] = None
2087
+ """
2088
+ entity slug
2089
+ """
2090
+ systemName: Optional[str] = None
2091
+ schemaVersion: Optional[str] = "2022.8.16"
2092
+ """
2093
+ entity's schema version. Used to distinct between different schemas.
2094
+ """
2095
+ name: Optional[str] = None
2096
+ """
2097
+ entity name
2098
+ """
2099
+ isDefault: Optional[bool] = False
2100
+ """
2101
+ Identifies that entity is defaultable
2102
+ """
2103
+ metadata: Optional[Dict[str, Any]] = None
2104
+
2105
+
2106
+ class VacuumConfigurationSchema9(BaseModel):
2107
+ direction: AxisEnum = Field(..., title="Axis Enum")
2108
+ """
2109
+ Enum for axis types
2110
+ """
2111
+ size: Optional[confloat(ge=0.0)] = 10
2112
+ """
2113
+ Size of the vacuum slab in angstroms
2114
+ """
2115
+ crystal: CrystalSchema22 = Field(..., title="Crystal Schema")
2116
+ """
2117
+ A crystal structure, referencing the base material schema
2118
+ """
2119
+
2120
+
2121
+ class AdatomDefectConfigurationSchema(BaseModel):
2122
+ stack_components: List[Union[SlabConfigurationSchema, PointDefectSiteSchema, VacuumConfigurationSchema9]] = Field(
2123
+ ..., max_length=3, min_length=3
2124
+ )
2125
+ direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
2126
+ """
2127
+ Enum for axis types
2128
+ """
2129
+ gaps: Optional[List[ObjectWithId]] = None
2130
+ """
2131
+ Gap distances between stack components as an array of objects with id and value
2132
+ """