mat3ra-esse 2025.7.15.post0__py3-none-any.whl → 2025.7.29.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 +6039 -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 +6043 -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 +2116 -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 +6039 -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 +2888 -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 +2892 -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 +1582 -0
  30. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +1148 -0
  31. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +78 -94
  32. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +1147 -0
  33. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -0
  34. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/__init__.py +3 -0
  35. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +1232 -0
  36. mat3ra/esse/models/materials_category_components/entities/auxiliary/one_dimensional/__init__.py +3 -0
  37. mat3ra/esse/models/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.py +16 -0
  38. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +527 -2
  39. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +676 -0
  40. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +555 -0
  41. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_site.py +1576 -0
  42. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +14 -14
  43. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +14 -14
  44. mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/vacancy.py +22 -0
  45. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/__init__.py +3 -0
  46. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_base.py +541 -0
  47. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +545 -0
  48. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +708 -0
  49. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +541 -0
  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 +1561 -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 +3 -947
  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.7.29.post0.dist-info}/METADATA +1 -1
  82. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/RECORD +85 -44
  83. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/WHEEL +0 -0
  84. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/licenses/LICENSE.md +0 -0
  85. {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2116 @@
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 Value55(Enum):
269
+ X = "X"
270
+ Vac = "Vac"
271
+
272
+
273
+ class AtomicElementSchema(BaseModel):
274
+ value: Union[Value, Value55]
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 Name192(Enum):
423
+ density = "density"
424
+
425
+
426
+ class Units79(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[Units79] = None
433
+ value: float
434
+
435
+
436
+ class Units80(Enum):
437
+ angstrom = "angstrom"
438
+
439
+
440
+ class ScalarSchema(BaseModel):
441
+ units: Optional[Units80] = None
442
+ value: float
443
+
444
+
445
+ class Name193(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 Name194(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 Name195(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 Name196(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 Name197(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 Name198(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: Name198
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 Value56(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 Value57(Enum):
818
+ X = "X"
819
+ Vac = "Vac"
820
+
821
+
822
+ class AtomicElementSchema27(BaseModel):
823
+ value: Union[Value56, Value57]
824
+ """
825
+ All elements, including extra elements
826
+ """
827
+ id: int
828
+ """
829
+ integer id of this entry
830
+ """
831
+
832
+
833
+ class BasisSchema25(BaseModel):
834
+ elements: List[AtomicElementSchema27] = 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 LatticeVectorsSchema24(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 LatticeUnitsSchema24(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 LatticeSchema24(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[LatticeVectorsSchema24] = Field(None, title="lattice vectors schema")
891
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
892
+ units: Optional[LatticeUnitsSchema24] = Field(
893
+ default_factory=lambda: LatticeUnitsSchema24.model_validate({"length": "angstrom", "angle": "degree"}),
894
+ title="Lattice units schema",
895
+ )
896
+
897
+
898
+ class Name199(Enum):
899
+ volume = "volume"
900
+
901
+
902
+ class Units81(Enum):
903
+ angstrom_3 = "angstrom^3"
904
+
905
+
906
+ class VolumeSchema24(BaseModel):
907
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
908
+ units: Optional[Units81] = None
909
+ value: float
910
+
911
+
912
+ class Name200(Enum):
913
+ density = "density"
914
+
915
+
916
+ class Units82(Enum):
917
+ g_cm_3 = "g/cm^3"
918
+
919
+
920
+ class DensitySchema24(BaseModel):
921
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
922
+ units: Optional[Units82] = None
923
+ value: float
924
+
925
+
926
+ class Units83(Enum):
927
+ angstrom = "angstrom"
928
+
929
+
930
+ class ScalarSchema25(BaseModel):
931
+ units: Optional[Units83] = None
932
+ value: float
933
+
934
+
935
+ class Name201(Enum):
936
+ symmetry = "symmetry"
937
+
938
+
939
+ class SymmetrySchema24(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[ScalarSchema25] = 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 Name202(Enum):
956
+ elemental_ratio = "elemental_ratio"
957
+
958
+
959
+ class ElementalRatio24(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 Name203(Enum):
969
+ p_norm = "p-norm"
970
+
971
+
972
+ class PNorm24(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 Name204(Enum):
982
+ inchi = "inchi"
983
+
984
+
985
+ class InChIRepresentationSchema24(BaseModel):
986
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
987
+ value: str
988
+
989
+
990
+ class Name205(Enum):
991
+ inchi_key = "inchi_key"
992
+
993
+
994
+ class InChIKeyRepresentationSchema24(BaseModel):
995
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
996
+ value: str
997
+
998
+
999
+ class DerivedPropertiesSchema24(
1000
+ RootModel[
1001
+ Union[
1002
+ VolumeSchema24,
1003
+ DensitySchema24,
1004
+ SymmetrySchema24,
1005
+ ElementalRatio24,
1006
+ PNorm24,
1007
+ InChIRepresentationSchema24,
1008
+ InChIKeyRepresentationSchema24,
1009
+ ]
1010
+ ]
1011
+ ):
1012
+ root: Union[
1013
+ VolumeSchema24,
1014
+ DensitySchema24,
1015
+ SymmetrySchema24,
1016
+ ElementalRatio24,
1017
+ PNorm24,
1018
+ InChIRepresentationSchema24,
1019
+ InChIKeyRepresentationSchema24,
1020
+ ] = Field(..., discriminator="name")
1021
+
1022
+
1023
+ class Name206(Enum):
1024
+ default = "default"
1025
+ atomsTooClose = "atomsTooClose"
1026
+ atomsOverlap = "atomsOverlap"
1027
+
1028
+
1029
+ class MaterialConsistencyCheckSchema24(BaseModel):
1030
+ name: Name206
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 CrystalSchema24(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: BasisSchema25 = Field(..., title="basis schema")
1058
+ lattice: LatticeSchema24 = Field(..., title="lattice schema")
1059
+ derivedProperties: Optional[List[DerivedPropertiesSchema24]] = 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[MaterialConsistencyCheckSchema24]] = 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: CrystalSchema24 = Field(..., title="Crystal Schema")
1115
+ """
1116
+ A crystal structure, referencing the base material schema
1117
+ """
1118
+
1119
+
1120
+ class SlabConfigurationSchema(BaseModel):
1121
+ stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field(
1122
+ ..., max_length=2, min_length=2
1123
+ )
1124
+ direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
1125
+ """
1126
+ Enum for axis types
1127
+ """
1128
+
1129
+
1130
+ class Value58(Enum):
1131
+ H = "H"
1132
+ He = "He"
1133
+ Li = "Li"
1134
+ Be = "Be"
1135
+ B = "B"
1136
+ C = "C"
1137
+ N = "N"
1138
+ O = "O"
1139
+ F = "F"
1140
+ Ne = "Ne"
1141
+ Na = "Na"
1142
+ Mg = "Mg"
1143
+ Al = "Al"
1144
+ Si = "Si"
1145
+ P = "P"
1146
+ S = "S"
1147
+ Cl = "Cl"
1148
+ Ar = "Ar"
1149
+ K = "K"
1150
+ Ca = "Ca"
1151
+ Sc = "Sc"
1152
+ Ti = "Ti"
1153
+ V = "V"
1154
+ Cr = "Cr"
1155
+ Mn = "Mn"
1156
+ Fe = "Fe"
1157
+ Co = "Co"
1158
+ Ni = "Ni"
1159
+ Cu = "Cu"
1160
+ Zn = "Zn"
1161
+ Ga = "Ga"
1162
+ Ge = "Ge"
1163
+ As = "As"
1164
+ Se = "Se"
1165
+ Br = "Br"
1166
+ Kr = "Kr"
1167
+ Rb = "Rb"
1168
+ Sr = "Sr"
1169
+ Y = "Y"
1170
+ Zr = "Zr"
1171
+ Nb = "Nb"
1172
+ Mo = "Mo"
1173
+ Tc = "Tc"
1174
+ Ru = "Ru"
1175
+ Rh = "Rh"
1176
+ Pd = "Pd"
1177
+ Ag = "Ag"
1178
+ Cd = "Cd"
1179
+ In = "In"
1180
+ Sn = "Sn"
1181
+ Sb = "Sb"
1182
+ Te = "Te"
1183
+ I = "I"
1184
+ Xe = "Xe"
1185
+ Cs = "Cs"
1186
+ Ba = "Ba"
1187
+ La = "La"
1188
+ Ce = "Ce"
1189
+ Pr = "Pr"
1190
+ Nd = "Nd"
1191
+ Pm = "Pm"
1192
+ Sm = "Sm"
1193
+ Eu = "Eu"
1194
+ Gd = "Gd"
1195
+ Tb = "Tb"
1196
+ Dy = "Dy"
1197
+ Ho = "Ho"
1198
+ Er = "Er"
1199
+ Tm = "Tm"
1200
+ Yb = "Yb"
1201
+ Lu = "Lu"
1202
+ Hf = "Hf"
1203
+ Ta = "Ta"
1204
+ W = "W"
1205
+ Re = "Re"
1206
+ Os = "Os"
1207
+ Ir = "Ir"
1208
+ Pt = "Pt"
1209
+ Au = "Au"
1210
+ Hg = "Hg"
1211
+ Tl = "Tl"
1212
+ Pb = "Pb"
1213
+ Bi = "Bi"
1214
+ Po = "Po"
1215
+ At = "At"
1216
+ Rn = "Rn"
1217
+ Fr = "Fr"
1218
+ Ra = "Ra"
1219
+ Ac = "Ac"
1220
+ Th = "Th"
1221
+ Pa = "Pa"
1222
+ U = "U"
1223
+ Np = "Np"
1224
+ Pu = "Pu"
1225
+ Am = "Am"
1226
+ Cm = "Cm"
1227
+ Bk = "Bk"
1228
+ Cf = "Cf"
1229
+ Es = "Es"
1230
+ Fm = "Fm"
1231
+ Md = "Md"
1232
+ No = "No"
1233
+ Lr = "Lr"
1234
+ Rf = "Rf"
1235
+ Db = "Db"
1236
+ Sg = "Sg"
1237
+ Bh = "Bh"
1238
+ Hs = "Hs"
1239
+ Mt = "Mt"
1240
+ Ds = "Ds"
1241
+ Rg = "Rg"
1242
+ Cn = "Cn"
1243
+ Nh = "Nh"
1244
+ Fl = "Fl"
1245
+ Mc = "Mc"
1246
+ Lv = "Lv"
1247
+ Ts = "Ts"
1248
+ Og = "Og"
1249
+
1250
+
1251
+ class Value59(Enum):
1252
+ X = "X"
1253
+ Vac = "Vac"
1254
+
1255
+
1256
+ class AtomicElementSchema28(BaseModel):
1257
+ value: Union[Value58, Value59]
1258
+ """
1259
+ All elements, including extra elements
1260
+ """
1261
+ id: int
1262
+ """
1263
+ integer id of this entry
1264
+ """
1265
+
1266
+
1267
+ class BasisSchema26(BaseModel):
1268
+ elements: List[AtomicElementSchema28] = Field(..., title="atomic elements schema")
1269
+ """
1270
+ atomic elements schema
1271
+ """
1272
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
1273
+ """
1274
+ atomic coordinates schema
1275
+ """
1276
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
1277
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
1278
+ """
1279
+ atomic labels schema
1280
+ """
1281
+
1282
+
1283
+ class LatticeVectorsSchema25(BaseModel):
1284
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1285
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1286
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1287
+ alat: Optional[float] = 1
1288
+ """
1289
+ lattice parameter for fractional coordinates
1290
+ """
1291
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
1292
+
1293
+
1294
+ class LatticeUnitsSchema25(BaseModel):
1295
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
1296
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
1297
+
1298
+
1299
+ class LatticeSchema25(BaseModel):
1300
+ a: float
1301
+ """
1302
+ length of the first lattice vector
1303
+ """
1304
+ b: float
1305
+ """
1306
+ length of the second lattice vector
1307
+ """
1308
+ c: float
1309
+ """
1310
+ length of the third lattice vector
1311
+ """
1312
+ alpha: float
1313
+ """
1314
+ angle between first and second lattice vector
1315
+ """
1316
+ beta: float
1317
+ """
1318
+ angle between second and third lattice vector
1319
+ """
1320
+ gamma: float
1321
+ """
1322
+ angle between first and third lattice vector
1323
+ """
1324
+ vectors: Optional[LatticeVectorsSchema25] = Field(None, title="lattice vectors schema")
1325
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
1326
+ units: Optional[LatticeUnitsSchema25] = Field(
1327
+ default_factory=lambda: LatticeUnitsSchema25.model_validate({"length": "angstrom", "angle": "degree"}),
1328
+ title="Lattice units schema",
1329
+ )
1330
+
1331
+
1332
+ class Name207(Enum):
1333
+ volume = "volume"
1334
+
1335
+
1336
+ class Units84(Enum):
1337
+ angstrom_3 = "angstrom^3"
1338
+
1339
+
1340
+ class VolumeSchema25(BaseModel):
1341
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1342
+ units: Optional[Units84] = None
1343
+ value: float
1344
+
1345
+
1346
+ class Name208(Enum):
1347
+ density = "density"
1348
+
1349
+
1350
+ class Units85(Enum):
1351
+ g_cm_3 = "g/cm^3"
1352
+
1353
+
1354
+ class DensitySchema25(BaseModel):
1355
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1356
+ units: Optional[Units85] = None
1357
+ value: float
1358
+
1359
+
1360
+ class Units86(Enum):
1361
+ angstrom = "angstrom"
1362
+
1363
+
1364
+ class ScalarSchema26(BaseModel):
1365
+ units: Optional[Units86] = None
1366
+ value: float
1367
+
1368
+
1369
+ class Name209(Enum):
1370
+ symmetry = "symmetry"
1371
+
1372
+
1373
+ class SymmetrySchema25(BaseModel):
1374
+ pointGroupSymbol: Optional[str] = None
1375
+ """
1376
+ point group symbol in Schoenflies notation
1377
+ """
1378
+ spaceGroupSymbol: Optional[str] = None
1379
+ """
1380
+ space group symbol in Hermann–Mauguin notation
1381
+ """
1382
+ tolerance: Optional[ScalarSchema26] = Field(None, title="scalar schema")
1383
+ """
1384
+ tolerance used for symmetry calculation
1385
+ """
1386
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
1387
+
1388
+
1389
+ class Name210(Enum):
1390
+ elemental_ratio = "elemental_ratio"
1391
+
1392
+
1393
+ class ElementalRatio25(BaseModel):
1394
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
1395
+ value: confloat(ge=0.0, le=1.0)
1396
+ element: Optional[str] = None
1397
+ """
1398
+ the element this ratio is for
1399
+ """
1400
+
1401
+
1402
+ class Name211(Enum):
1403
+ p_norm = "p-norm"
1404
+
1405
+
1406
+ class PNorm25(BaseModel):
1407
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1408
+ degree: Optional[int] = None
1409
+ """
1410
+ degree of the dimensionality of the norm
1411
+ """
1412
+ value: float
1413
+
1414
+
1415
+ class Name212(Enum):
1416
+ inchi = "inchi"
1417
+
1418
+
1419
+ class InChIRepresentationSchema25(BaseModel):
1420
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1421
+ value: str
1422
+
1423
+
1424
+ class Name213(Enum):
1425
+ inchi_key = "inchi_key"
1426
+
1427
+
1428
+ class InChIKeyRepresentationSchema25(BaseModel):
1429
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1430
+ value: str
1431
+
1432
+
1433
+ class DerivedPropertiesSchema25(
1434
+ RootModel[
1435
+ Union[
1436
+ VolumeSchema25,
1437
+ DensitySchema25,
1438
+ SymmetrySchema25,
1439
+ ElementalRatio25,
1440
+ PNorm25,
1441
+ InChIRepresentationSchema25,
1442
+ InChIKeyRepresentationSchema25,
1443
+ ]
1444
+ ]
1445
+ ):
1446
+ root: Union[
1447
+ VolumeSchema25,
1448
+ DensitySchema25,
1449
+ SymmetrySchema25,
1450
+ ElementalRatio25,
1451
+ PNorm25,
1452
+ InChIRepresentationSchema25,
1453
+ InChIKeyRepresentationSchema25,
1454
+ ] = Field(..., discriminator="name")
1455
+
1456
+
1457
+ class Name214(Enum):
1458
+ default = "default"
1459
+ atomsTooClose = "atomsTooClose"
1460
+ atomsOverlap = "atomsOverlap"
1461
+
1462
+
1463
+ class MaterialConsistencyCheckSchema25(BaseModel):
1464
+ name: Name214
1465
+ """
1466
+ Name of the consistency check that is performed, which is listed in an enum.
1467
+ """
1468
+ key: str
1469
+ """
1470
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
1471
+ """
1472
+ severity: Severity
1473
+ """
1474
+ Severity level of the problem, which is used in UI to differentiate.
1475
+ """
1476
+ message: str
1477
+ """
1478
+ Message generated by the consistency check describing the problem.
1479
+ """
1480
+
1481
+
1482
+ class CrystalSchema25(BaseModel):
1483
+ formula: Optional[str] = None
1484
+ """
1485
+ reduced chemical formula
1486
+ """
1487
+ unitCellFormula: Optional[str] = None
1488
+ """
1489
+ chemical formula based on the number of atoms of each element in the supercell
1490
+ """
1491
+ basis: BasisSchema26 = Field(..., title="basis schema")
1492
+ lattice: LatticeSchema25 = Field(..., title="lattice schema")
1493
+ derivedProperties: Optional[List[DerivedPropertiesSchema25]] = Field(None, title="derived properties schema")
1494
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
1495
+ """
1496
+ information about a database source
1497
+ """
1498
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
1499
+ """
1500
+ file source with the information inside
1501
+ """
1502
+ scaledHash: Optional[str] = None
1503
+ """
1504
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
1505
+ """
1506
+ icsdId: Optional[int] = None
1507
+ """
1508
+ Corresponding ICSD id of the material
1509
+ """
1510
+ isNonPeriodic: Optional[bool] = None
1511
+ """
1512
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
1513
+ """
1514
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema25]] = None
1515
+ field_id: Optional[str] = Field(None, alias="_id")
1516
+ """
1517
+ entity identity
1518
+ """
1519
+ slug: Optional[str] = None
1520
+ """
1521
+ entity slug
1522
+ """
1523
+ systemName: Optional[str] = None
1524
+ schemaVersion: Optional[str] = "2022.8.16"
1525
+ """
1526
+ entity's schema version. Used to distinct between different schemas.
1527
+ """
1528
+ name: Optional[str] = None
1529
+ """
1530
+ entity name
1531
+ """
1532
+ isDefault: Optional[bool] = False
1533
+ """
1534
+ Identifies that entity is defaultable
1535
+ """
1536
+ metadata: Optional[Dict[str, Any]] = None
1537
+
1538
+
1539
+ class ChemicalElement(Enum):
1540
+ H = "H"
1541
+ He = "He"
1542
+ Li = "Li"
1543
+ Be = "Be"
1544
+ B = "B"
1545
+ C = "C"
1546
+ N = "N"
1547
+ O = "O"
1548
+ F = "F"
1549
+ Ne = "Ne"
1550
+ Na = "Na"
1551
+ Mg = "Mg"
1552
+ Al = "Al"
1553
+ Si = "Si"
1554
+ P = "P"
1555
+ S = "S"
1556
+ Cl = "Cl"
1557
+ Ar = "Ar"
1558
+ K = "K"
1559
+ Ca = "Ca"
1560
+ Sc = "Sc"
1561
+ Ti = "Ti"
1562
+ V = "V"
1563
+ Cr = "Cr"
1564
+ Mn = "Mn"
1565
+ Fe = "Fe"
1566
+ Co = "Co"
1567
+ Ni = "Ni"
1568
+ Cu = "Cu"
1569
+ Zn = "Zn"
1570
+ Ga = "Ga"
1571
+ Ge = "Ge"
1572
+ As = "As"
1573
+ Se = "Se"
1574
+ Br = "Br"
1575
+ Kr = "Kr"
1576
+ Rb = "Rb"
1577
+ Sr = "Sr"
1578
+ Y = "Y"
1579
+ Zr = "Zr"
1580
+ Nb = "Nb"
1581
+ Mo = "Mo"
1582
+ Tc = "Tc"
1583
+ Ru = "Ru"
1584
+ Rh = "Rh"
1585
+ Pd = "Pd"
1586
+ Ag = "Ag"
1587
+ Cd = "Cd"
1588
+ In = "In"
1589
+ Sn = "Sn"
1590
+ Sb = "Sb"
1591
+ Te = "Te"
1592
+ I = "I"
1593
+ Xe = "Xe"
1594
+ Cs = "Cs"
1595
+ Ba = "Ba"
1596
+ La = "La"
1597
+ Ce = "Ce"
1598
+ Pr = "Pr"
1599
+ Nd = "Nd"
1600
+ Pm = "Pm"
1601
+ Sm = "Sm"
1602
+ Eu = "Eu"
1603
+ Gd = "Gd"
1604
+ Tb = "Tb"
1605
+ Dy = "Dy"
1606
+ Ho = "Ho"
1607
+ Er = "Er"
1608
+ Tm = "Tm"
1609
+ Yb = "Yb"
1610
+ Lu = "Lu"
1611
+ Hf = "Hf"
1612
+ Ta = "Ta"
1613
+ W = "W"
1614
+ Re = "Re"
1615
+ Os = "Os"
1616
+ Ir = "Ir"
1617
+ Pt = "Pt"
1618
+ Au = "Au"
1619
+ Hg = "Hg"
1620
+ Tl = "Tl"
1621
+ Pb = "Pb"
1622
+ Bi = "Bi"
1623
+ Po = "Po"
1624
+ At = "At"
1625
+ Rn = "Rn"
1626
+ Fr = "Fr"
1627
+ Ra = "Ra"
1628
+ Ac = "Ac"
1629
+ Th = "Th"
1630
+ Pa = "Pa"
1631
+ U = "U"
1632
+ Np = "Np"
1633
+ Pu = "Pu"
1634
+ Am = "Am"
1635
+ Cm = "Cm"
1636
+ Bk = "Bk"
1637
+ Cf = "Cf"
1638
+ Es = "Es"
1639
+ Fm = "Fm"
1640
+ Md = "Md"
1641
+ No = "No"
1642
+ Lr = "Lr"
1643
+ Rf = "Rf"
1644
+ Db = "Db"
1645
+ Sg = "Sg"
1646
+ Bh = "Bh"
1647
+ Hs = "Hs"
1648
+ Mt = "Mt"
1649
+ Ds = "Ds"
1650
+ Rg = "Rg"
1651
+ Cn = "Cn"
1652
+ Nh = "Nh"
1653
+ Fl = "Fl"
1654
+ Mc = "Mc"
1655
+ Lv = "Lv"
1656
+ Ts = "Ts"
1657
+ Og = "Og"
1658
+
1659
+
1660
+ class AtomSchema(BaseModel):
1661
+ chemical_element: ChemicalElement
1662
+
1663
+
1664
+ class ChemicalElement2(Enum):
1665
+ X = "X"
1666
+ Vac = "Vac"
1667
+
1668
+
1669
+ class VacancySchema(BaseModel):
1670
+ chemical_element: Optional[ChemicalElement2] = "Vac"
1671
+ """
1672
+ Extra elements, used for convenience purposed
1673
+ """
1674
+
1675
+
1676
+ class PointDefectSiteSchema(BaseModel):
1677
+ crystal: CrystalSchema25 = Field(..., title="Crystal Schema")
1678
+ """
1679
+ A crystal structure, referencing the base material schema
1680
+ """
1681
+ coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
1682
+ element: Union[AtomSchema, VacancySchema]
1683
+
1684
+
1685
+ class Value60(Enum):
1686
+ H = "H"
1687
+ He = "He"
1688
+ Li = "Li"
1689
+ Be = "Be"
1690
+ B = "B"
1691
+ C = "C"
1692
+ N = "N"
1693
+ O = "O"
1694
+ F = "F"
1695
+ Ne = "Ne"
1696
+ Na = "Na"
1697
+ Mg = "Mg"
1698
+ Al = "Al"
1699
+ Si = "Si"
1700
+ P = "P"
1701
+ S = "S"
1702
+ Cl = "Cl"
1703
+ Ar = "Ar"
1704
+ K = "K"
1705
+ Ca = "Ca"
1706
+ Sc = "Sc"
1707
+ Ti = "Ti"
1708
+ V = "V"
1709
+ Cr = "Cr"
1710
+ Mn = "Mn"
1711
+ Fe = "Fe"
1712
+ Co = "Co"
1713
+ Ni = "Ni"
1714
+ Cu = "Cu"
1715
+ Zn = "Zn"
1716
+ Ga = "Ga"
1717
+ Ge = "Ge"
1718
+ As = "As"
1719
+ Se = "Se"
1720
+ Br = "Br"
1721
+ Kr = "Kr"
1722
+ Rb = "Rb"
1723
+ Sr = "Sr"
1724
+ Y = "Y"
1725
+ Zr = "Zr"
1726
+ Nb = "Nb"
1727
+ Mo = "Mo"
1728
+ Tc = "Tc"
1729
+ Ru = "Ru"
1730
+ Rh = "Rh"
1731
+ Pd = "Pd"
1732
+ Ag = "Ag"
1733
+ Cd = "Cd"
1734
+ In = "In"
1735
+ Sn = "Sn"
1736
+ Sb = "Sb"
1737
+ Te = "Te"
1738
+ I = "I"
1739
+ Xe = "Xe"
1740
+ Cs = "Cs"
1741
+ Ba = "Ba"
1742
+ La = "La"
1743
+ Ce = "Ce"
1744
+ Pr = "Pr"
1745
+ Nd = "Nd"
1746
+ Pm = "Pm"
1747
+ Sm = "Sm"
1748
+ Eu = "Eu"
1749
+ Gd = "Gd"
1750
+ Tb = "Tb"
1751
+ Dy = "Dy"
1752
+ Ho = "Ho"
1753
+ Er = "Er"
1754
+ Tm = "Tm"
1755
+ Yb = "Yb"
1756
+ Lu = "Lu"
1757
+ Hf = "Hf"
1758
+ Ta = "Ta"
1759
+ W = "W"
1760
+ Re = "Re"
1761
+ Os = "Os"
1762
+ Ir = "Ir"
1763
+ Pt = "Pt"
1764
+ Au = "Au"
1765
+ Hg = "Hg"
1766
+ Tl = "Tl"
1767
+ Pb = "Pb"
1768
+ Bi = "Bi"
1769
+ Po = "Po"
1770
+ At = "At"
1771
+ Rn = "Rn"
1772
+ Fr = "Fr"
1773
+ Ra = "Ra"
1774
+ Ac = "Ac"
1775
+ Th = "Th"
1776
+ Pa = "Pa"
1777
+ U = "U"
1778
+ Np = "Np"
1779
+ Pu = "Pu"
1780
+ Am = "Am"
1781
+ Cm = "Cm"
1782
+ Bk = "Bk"
1783
+ Cf = "Cf"
1784
+ Es = "Es"
1785
+ Fm = "Fm"
1786
+ Md = "Md"
1787
+ No = "No"
1788
+ Lr = "Lr"
1789
+ Rf = "Rf"
1790
+ Db = "Db"
1791
+ Sg = "Sg"
1792
+ Bh = "Bh"
1793
+ Hs = "Hs"
1794
+ Mt = "Mt"
1795
+ Ds = "Ds"
1796
+ Rg = "Rg"
1797
+ Cn = "Cn"
1798
+ Nh = "Nh"
1799
+ Fl = "Fl"
1800
+ Mc = "Mc"
1801
+ Lv = "Lv"
1802
+ Ts = "Ts"
1803
+ Og = "Og"
1804
+
1805
+
1806
+ class Value61(Enum):
1807
+ X = "X"
1808
+ Vac = "Vac"
1809
+
1810
+
1811
+ class AtomicElementSchema29(BaseModel):
1812
+ value: Union[Value60, Value61]
1813
+ """
1814
+ All elements, including extra elements
1815
+ """
1816
+ id: int
1817
+ """
1818
+ integer id of this entry
1819
+ """
1820
+
1821
+
1822
+ class BasisSchema27(BaseModel):
1823
+ elements: List[AtomicElementSchema29] = Field(..., title="atomic elements schema")
1824
+ """
1825
+ atomic elements schema
1826
+ """
1827
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
1828
+ """
1829
+ atomic coordinates schema
1830
+ """
1831
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
1832
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
1833
+ """
1834
+ atomic labels schema
1835
+ """
1836
+
1837
+
1838
+ class LatticeVectorsSchema26(BaseModel):
1839
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1840
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1841
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1842
+ alat: Optional[float] = 1
1843
+ """
1844
+ lattice parameter for fractional coordinates
1845
+ """
1846
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
1847
+
1848
+
1849
+ class LatticeUnitsSchema26(BaseModel):
1850
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
1851
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
1852
+
1853
+
1854
+ class LatticeSchema26(BaseModel):
1855
+ a: float
1856
+ """
1857
+ length of the first lattice vector
1858
+ """
1859
+ b: float
1860
+ """
1861
+ length of the second lattice vector
1862
+ """
1863
+ c: float
1864
+ """
1865
+ length of the third lattice vector
1866
+ """
1867
+ alpha: float
1868
+ """
1869
+ angle between first and second lattice vector
1870
+ """
1871
+ beta: float
1872
+ """
1873
+ angle between second and third lattice vector
1874
+ """
1875
+ gamma: float
1876
+ """
1877
+ angle between first and third lattice vector
1878
+ """
1879
+ vectors: Optional[LatticeVectorsSchema26] = Field(None, title="lattice vectors schema")
1880
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
1881
+ units: Optional[LatticeUnitsSchema26] = Field(
1882
+ default_factory=lambda: LatticeUnitsSchema26.model_validate({"length": "angstrom", "angle": "degree"}),
1883
+ title="Lattice units schema",
1884
+ )
1885
+
1886
+
1887
+ class Name215(Enum):
1888
+ volume = "volume"
1889
+
1890
+
1891
+ class Units87(Enum):
1892
+ angstrom_3 = "angstrom^3"
1893
+
1894
+
1895
+ class VolumeSchema26(BaseModel):
1896
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1897
+ units: Optional[Units87] = None
1898
+ value: float
1899
+
1900
+
1901
+ class Name216(Enum):
1902
+ density = "density"
1903
+
1904
+
1905
+ class Units88(Enum):
1906
+ g_cm_3 = "g/cm^3"
1907
+
1908
+
1909
+ class DensitySchema26(BaseModel):
1910
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1911
+ units: Optional[Units88] = None
1912
+ value: float
1913
+
1914
+
1915
+ class Units89(Enum):
1916
+ angstrom = "angstrom"
1917
+
1918
+
1919
+ class ScalarSchema27(BaseModel):
1920
+ units: Optional[Units89] = None
1921
+ value: float
1922
+
1923
+
1924
+ class Name217(Enum):
1925
+ symmetry = "symmetry"
1926
+
1927
+
1928
+ class SymmetrySchema26(BaseModel):
1929
+ pointGroupSymbol: Optional[str] = None
1930
+ """
1931
+ point group symbol in Schoenflies notation
1932
+ """
1933
+ spaceGroupSymbol: Optional[str] = None
1934
+ """
1935
+ space group symbol in Hermann–Mauguin notation
1936
+ """
1937
+ tolerance: Optional[ScalarSchema27] = Field(None, title="scalar schema")
1938
+ """
1939
+ tolerance used for symmetry calculation
1940
+ """
1941
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
1942
+
1943
+
1944
+ class Name218(Enum):
1945
+ elemental_ratio = "elemental_ratio"
1946
+
1947
+
1948
+ class ElementalRatio26(BaseModel):
1949
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
1950
+ value: confloat(ge=0.0, le=1.0)
1951
+ element: Optional[str] = None
1952
+ """
1953
+ the element this ratio is for
1954
+ """
1955
+
1956
+
1957
+ class Name219(Enum):
1958
+ p_norm = "p-norm"
1959
+
1960
+
1961
+ class PNorm26(BaseModel):
1962
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1963
+ degree: Optional[int] = None
1964
+ """
1965
+ degree of the dimensionality of the norm
1966
+ """
1967
+ value: float
1968
+
1969
+
1970
+ class Name220(Enum):
1971
+ inchi = "inchi"
1972
+
1973
+
1974
+ class InChIRepresentationSchema26(BaseModel):
1975
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1976
+ value: str
1977
+
1978
+
1979
+ class Name221(Enum):
1980
+ inchi_key = "inchi_key"
1981
+
1982
+
1983
+ class InChIKeyRepresentationSchema26(BaseModel):
1984
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1985
+ value: str
1986
+
1987
+
1988
+ class DerivedPropertiesSchema26(
1989
+ RootModel[
1990
+ Union[
1991
+ VolumeSchema26,
1992
+ DensitySchema26,
1993
+ SymmetrySchema26,
1994
+ ElementalRatio26,
1995
+ PNorm26,
1996
+ InChIRepresentationSchema26,
1997
+ InChIKeyRepresentationSchema26,
1998
+ ]
1999
+ ]
2000
+ ):
2001
+ root: Union[
2002
+ VolumeSchema26,
2003
+ DensitySchema26,
2004
+ SymmetrySchema26,
2005
+ ElementalRatio26,
2006
+ PNorm26,
2007
+ InChIRepresentationSchema26,
2008
+ InChIKeyRepresentationSchema26,
2009
+ ] = Field(..., discriminator="name")
2010
+
2011
+
2012
+ class Name222(Enum):
2013
+ default = "default"
2014
+ atomsTooClose = "atomsTooClose"
2015
+ atomsOverlap = "atomsOverlap"
2016
+
2017
+
2018
+ class MaterialConsistencyCheckSchema26(BaseModel):
2019
+ name: Name222
2020
+ """
2021
+ Name of the consistency check that is performed, which is listed in an enum.
2022
+ """
2023
+ key: str
2024
+ """
2025
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
2026
+ """
2027
+ severity: Severity
2028
+ """
2029
+ Severity level of the problem, which is used in UI to differentiate.
2030
+ """
2031
+ message: str
2032
+ """
2033
+ Message generated by the consistency check describing the problem.
2034
+ """
2035
+
2036
+
2037
+ class CrystalSchema26(BaseModel):
2038
+ formula: Optional[str] = None
2039
+ """
2040
+ reduced chemical formula
2041
+ """
2042
+ unitCellFormula: Optional[str] = None
2043
+ """
2044
+ chemical formula based on the number of atoms of each element in the supercell
2045
+ """
2046
+ basis: BasisSchema27 = Field(..., title="basis schema")
2047
+ lattice: LatticeSchema26 = Field(..., title="lattice schema")
2048
+ derivedProperties: Optional[List[DerivedPropertiesSchema26]] = Field(None, title="derived properties schema")
2049
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
2050
+ """
2051
+ information about a database source
2052
+ """
2053
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
2054
+ """
2055
+ file source with the information inside
2056
+ """
2057
+ scaledHash: Optional[str] = None
2058
+ """
2059
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
2060
+ """
2061
+ icsdId: Optional[int] = None
2062
+ """
2063
+ Corresponding ICSD id of the material
2064
+ """
2065
+ isNonPeriodic: Optional[bool] = None
2066
+ """
2067
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
2068
+ """
2069
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema26]] = None
2070
+ field_id: Optional[str] = Field(None, alias="_id")
2071
+ """
2072
+ entity identity
2073
+ """
2074
+ slug: Optional[str] = None
2075
+ """
2076
+ entity slug
2077
+ """
2078
+ systemName: Optional[str] = None
2079
+ schemaVersion: Optional[str] = "2022.8.16"
2080
+ """
2081
+ entity's schema version. Used to distinct between different schemas.
2082
+ """
2083
+ name: Optional[str] = None
2084
+ """
2085
+ entity name
2086
+ """
2087
+ isDefault: Optional[bool] = False
2088
+ """
2089
+ Identifies that entity is defaultable
2090
+ """
2091
+ metadata: Optional[Dict[str, Any]] = None
2092
+
2093
+
2094
+ class VacuumConfigurationSchema11(BaseModel):
2095
+ direction: AxisEnum = Field(..., title="Axis Enum")
2096
+ """
2097
+ Enum for axis types
2098
+ """
2099
+ size: Optional[confloat(ge=0.0)] = 10
2100
+ """
2101
+ Size of the vacuum slab in angstroms
2102
+ """
2103
+ crystal: CrystalSchema26 = Field(..., title="Crystal Schema")
2104
+ """
2105
+ A crystal structure, referencing the base material schema
2106
+ """
2107
+
2108
+
2109
+ class AdatomDefectConfigurationSchema(BaseModel):
2110
+ stack_components: List[Union[SlabConfigurationSchema, PointDefectSiteSchema, VacuumConfigurationSchema11]] = Field(
2111
+ ..., max_length=3, min_length=3
2112
+ )
2113
+ direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
2114
+ """
2115
+ Enum for axis types
2116
+ """