mat3ra-esse 2025.5.16.post0__py3-none-any.whl → 2025.5.17.post0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mat3ra-esse might be problematic. Click here for more details.

Files changed (81) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw_x.py +8 -8
  4. mat3ra/esse/models/core/reusable/energy.py +2 -2
  5. mat3ra/esse/models/definitions/chemical_elements.py +13 -0
  6. mat3ra/esse/models/definitions/materials.py +13 -0
  7. mat3ra/esse/models/element.py +128 -10
  8. mat3ra/esse/models/enums/__init__.py +3 -0
  9. mat3ra/esse/models/enums/chemical_elements.py +13 -0
  10. mat3ra/esse/models/material/__init__.py +140 -14
  11. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/selector_parameters.py +128 -4
  12. mat3ra/esse/models/material/reusable/slab/enums/__init__.py +3 -0
  13. mat3ra/esse/models/material/reusable/slab/enums/exposed_face.py +13 -0
  14. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +1 -1
  15. mat3ra/esse/models/material/reusable/slab/termination.py +129 -3
  16. mat3ra/esse/models/material/reusable/slab/vacuum.py +2 -2
  17. mat3ra/esse/models/materials_category/defects/__init__.py +3 -0
  18. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/__init__.py +3 -0
  19. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/__init__.py +3 -0
  20. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +672 -0
  21. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/configuration.py +546 -0
  22. mat3ra/esse/models/materials_category/defects/configuration.py +541 -0
  23. mat3ra/esse/models/materials_category/defects/enums/__init__.py +3 -0
  24. mat3ra/esse/models/materials_category/defects/enums/atom_placement_method.py +22 -0
  25. mat3ra/esse/models/materials_category/defects/enums/complex_defect_type.py +18 -0
  26. mat3ra/esse/models/materials_category/defects/enums/coordinates_shape.py +21 -0
  27. mat3ra/esse/models/materials_category/defects/enums/point_defect_type.py +13 -0
  28. mat3ra/esse/models/materials_category/defects/enums/slab_defect_type.py +19 -0
  29. mat3ra/esse/models/materials_category/defects/enums.py +13 -0
  30. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/__init__.py +3 -0
  31. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +425 -0
  32. mat3ra/esse/models/materials_category/defects/slab/__init__.py +3 -0
  33. mat3ra/esse/models/materials_category/defects/slab/configuration.py +412 -0
  34. mat3ra/esse/models/materials_category/defects/two_dimensional/island/__init__.py +3 -0
  35. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +449 -0
  36. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/__init__.py +3 -0
  37. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/configuration.py +1105 -0
  38. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/__init__.py +3 -0
  39. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/base_configuration.py +418 -0
  40. mat3ra/esse/models/materials_category/defects/zero_dimensional/adatom/configuration.py +418 -0
  41. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/__init__.py +3 -0
  42. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair.py +1534 -0
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/__init__.py +3 -0
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +1026 -0
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/__init__.py +3 -0
  46. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +30 -0
  47. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +672 -0
  48. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/__init__.py +3 -0
  49. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +672 -0
  50. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/__init__.py +3 -0
  51. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +672 -0
  52. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/__init__.py +3 -0
  53. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +672 -0
  54. mat3ra/esse/models/materials_category/defects/zero_dimensional/slab/__init__.py +3 -0
  55. mat3ra/esse/models/materials_category/defects/zero_dimensional/slab/configuration.py +434 -0
  56. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +142 -16
  57. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  58. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  59. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  60. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  61. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  62. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  63. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  64. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  65. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  66. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  67. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  68. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  69. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  70. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  71. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  72. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +128 -2
  73. mat3ra/esse/models/properties_directory/structural/basis/atomic_element.py +131 -2
  74. mat3ra/esse/models/properties_directory/structural/basis/atomic_elements.py +130 -3
  75. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  76. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  77. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/METADATA +1 -1
  78. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/RECORD +81 -36
  79. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/WHEEL +0 -0
  80. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/licenses/LICENSE.md +0 -0
  81. {mat3ra_esse-2025.5.16.post0.dist-info → mat3ra_esse-2025.5.17.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,672 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: materials_category/defects/zero_dimensional/point/vacancy/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
11
+
12
+
13
+ class ChemicalElement(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 Value(Enum):
135
+ H = "H"
136
+ He = "He"
137
+ Li = "Li"
138
+ Be = "Be"
139
+ B = "B"
140
+ C = "C"
141
+ N = "N"
142
+ O = "O"
143
+ F = "F"
144
+ Ne = "Ne"
145
+ Na = "Na"
146
+ Mg = "Mg"
147
+ Al = "Al"
148
+ Si = "Si"
149
+ P = "P"
150
+ S = "S"
151
+ Cl = "Cl"
152
+ Ar = "Ar"
153
+ K = "K"
154
+ Ca = "Ca"
155
+ Sc = "Sc"
156
+ Ti = "Ti"
157
+ V = "V"
158
+ Cr = "Cr"
159
+ Mn = "Mn"
160
+ Fe = "Fe"
161
+ Co = "Co"
162
+ Ni = "Ni"
163
+ Cu = "Cu"
164
+ Zn = "Zn"
165
+ Ga = "Ga"
166
+ Ge = "Ge"
167
+ As = "As"
168
+ Se = "Se"
169
+ Br = "Br"
170
+ Kr = "Kr"
171
+ Rb = "Rb"
172
+ Sr = "Sr"
173
+ Y = "Y"
174
+ Zr = "Zr"
175
+ Nb = "Nb"
176
+ Mo = "Mo"
177
+ Tc = "Tc"
178
+ Ru = "Ru"
179
+ Rh = "Rh"
180
+ Pd = "Pd"
181
+ Ag = "Ag"
182
+ Cd = "Cd"
183
+ In = "In"
184
+ Sn = "Sn"
185
+ Sb = "Sb"
186
+ Te = "Te"
187
+ I = "I"
188
+ Xe = "Xe"
189
+ Cs = "Cs"
190
+ Ba = "Ba"
191
+ La = "La"
192
+ Ce = "Ce"
193
+ Pr = "Pr"
194
+ Nd = "Nd"
195
+ Pm = "Pm"
196
+ Sm = "Sm"
197
+ Eu = "Eu"
198
+ Gd = "Gd"
199
+ Tb = "Tb"
200
+ Dy = "Dy"
201
+ Ho = "Ho"
202
+ Er = "Er"
203
+ Tm = "Tm"
204
+ Yb = "Yb"
205
+ Lu = "Lu"
206
+ Hf = "Hf"
207
+ Ta = "Ta"
208
+ W = "W"
209
+ Re = "Re"
210
+ Os = "Os"
211
+ Ir = "Ir"
212
+ Pt = "Pt"
213
+ Au = "Au"
214
+ Hg = "Hg"
215
+ Tl = "Tl"
216
+ Pb = "Pb"
217
+ Bi = "Bi"
218
+ Po = "Po"
219
+ At = "At"
220
+ Rn = "Rn"
221
+ Fr = "Fr"
222
+ Ra = "Ra"
223
+ Ac = "Ac"
224
+ Th = "Th"
225
+ Pa = "Pa"
226
+ U = "U"
227
+ Np = "Np"
228
+ Pu = "Pu"
229
+ Am = "Am"
230
+ Cm = "Cm"
231
+ Bk = "Bk"
232
+ Cf = "Cf"
233
+ Es = "Es"
234
+ Fm = "Fm"
235
+ Md = "Md"
236
+ No = "No"
237
+ Lr = "Lr"
238
+ Rf = "Rf"
239
+ Db = "Db"
240
+ Sg = "Sg"
241
+ Bh = "Bh"
242
+ Hs = "Hs"
243
+ Mt = "Mt"
244
+ Ds = "Ds"
245
+ Rg = "Rg"
246
+ Cn = "Cn"
247
+ Nh = "Nh"
248
+ Fl = "Fl"
249
+ Mc = "Mc"
250
+ Lv = "Lv"
251
+ Ts = "Ts"
252
+ Og = "Og"
253
+
254
+
255
+ class Value19(Enum):
256
+ X = "X"
257
+ Vac = "Vac"
258
+
259
+
260
+ class AtomicElementSchema(BaseModel):
261
+ value: Union[Value, Value19]
262
+ """
263
+ All elements, including extra elements
264
+ """
265
+ id: int
266
+ """
267
+ integer id of this entry
268
+ """
269
+
270
+
271
+ class AtomicCoordinateSchema(BaseModel):
272
+ value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
273
+ """
274
+ value of this entry
275
+ """
276
+ id: int
277
+ """
278
+ integer id of this entry
279
+ """
280
+
281
+
282
+ class BasisUnitsEnum(Enum):
283
+ crystal = "crystal"
284
+ cartesian = "cartesian"
285
+
286
+
287
+ class AtomicLabelSchema(BaseModel):
288
+ value: Union[Union[int, str, float], conint(ge=1, le=9)]
289
+ """
290
+ value of this entry
291
+ """
292
+ id: int
293
+ """
294
+ integer id of this entry
295
+ """
296
+
297
+
298
+ class BasisSchema(BaseModel):
299
+ elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
300
+ """
301
+ atomic elements schema
302
+ """
303
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
304
+ """
305
+ atomic coordinates schema
306
+ """
307
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
308
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
309
+ """
310
+ atomic labels schema
311
+ """
312
+
313
+
314
+ class LatticeVectorsUnitsEnum(Enum):
315
+ angstrom = "angstrom"
316
+ bohr = "bohr"
317
+
318
+
319
+ class LatticeVectorsSchema(BaseModel):
320
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
321
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
322
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
323
+ alat: Optional[float] = 1
324
+ """
325
+ lattice parameter for fractional coordinates
326
+ """
327
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
328
+
329
+
330
+ class LatticeTypeEnum(Enum):
331
+ CUB = "CUB"
332
+ BCC = "BCC"
333
+ FCC = "FCC"
334
+ TET = "TET"
335
+ MCL = "MCL"
336
+ ORC = "ORC"
337
+ ORCC = "ORCC"
338
+ ORCF = "ORCF"
339
+ ORCI = "ORCI"
340
+ HEX = "HEX"
341
+ BCT = "BCT"
342
+ TRI = "TRI"
343
+ MCLC = "MCLC"
344
+ RHL = "RHL"
345
+
346
+
347
+ class LatticeUnitsLengthEnum(Enum):
348
+ angstrom = "angstrom"
349
+ bohr = "bohr"
350
+
351
+
352
+ class LatticeUnitsAngleEnum(Enum):
353
+ degree = "degree"
354
+ radian = "radian"
355
+
356
+
357
+ class LatticeUnitsSchema(BaseModel):
358
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
359
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
360
+
361
+
362
+ class LatticeSchema(BaseModel):
363
+ a: float
364
+ """
365
+ length of the first lattice vector
366
+ """
367
+ b: float
368
+ """
369
+ length of the second lattice vector
370
+ """
371
+ c: float
372
+ """
373
+ length of the third lattice vector
374
+ """
375
+ alpha: float
376
+ """
377
+ angle between first and second lattice vector
378
+ """
379
+ beta: float
380
+ """
381
+ angle between second and third lattice vector
382
+ """
383
+ gamma: float
384
+ """
385
+ angle between first and third lattice vector
386
+ """
387
+ vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
388
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
389
+ units: Optional[LatticeUnitsSchema] = Field(
390
+ default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
391
+ title="Lattice units schema",
392
+ )
393
+
394
+
395
+ class Name(Enum):
396
+ volume = "volume"
397
+
398
+
399
+ class Units(Enum):
400
+ angstrom_3 = "angstrom^3"
401
+
402
+
403
+ class VolumeSchema(BaseModel):
404
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
405
+ units: Optional[Units] = None
406
+ value: float
407
+
408
+
409
+ class Name48(Enum):
410
+ density = "density"
411
+
412
+
413
+ class Units25(Enum):
414
+ g_cm_3 = "g/cm^3"
415
+
416
+
417
+ class DensitySchema(BaseModel):
418
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
419
+ units: Optional[Units25] = None
420
+ value: float
421
+
422
+
423
+ class Units26(Enum):
424
+ angstrom = "angstrom"
425
+
426
+
427
+ class ScalarSchema(BaseModel):
428
+ units: Optional[Units26] = None
429
+ value: float
430
+
431
+
432
+ class Name49(Enum):
433
+ symmetry = "symmetry"
434
+
435
+
436
+ class SymmetrySchema(BaseModel):
437
+ pointGroupSymbol: Optional[str] = None
438
+ """
439
+ point group symbol in Schoenflies notation
440
+ """
441
+ spaceGroupSymbol: Optional[str] = None
442
+ """
443
+ space group symbol in Hermann–Mauguin notation
444
+ """
445
+ tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
446
+ """
447
+ tolerance used for symmetry calculation
448
+ """
449
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
450
+
451
+
452
+ class Name50(Enum):
453
+ elemental_ratio = "elemental_ratio"
454
+
455
+
456
+ class ElementalRatio(BaseModel):
457
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
458
+ value: confloat(ge=0.0, le=1.0)
459
+ element: Optional[str] = None
460
+ """
461
+ the element this ratio is for
462
+ """
463
+
464
+
465
+ class Name51(Enum):
466
+ p_norm = "p-norm"
467
+
468
+
469
+ class PNorm(BaseModel):
470
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
471
+ degree: Optional[int] = None
472
+ """
473
+ degree of the dimensionality of the norm
474
+ """
475
+ value: float
476
+
477
+
478
+ class Name52(Enum):
479
+ inchi = "inchi"
480
+
481
+
482
+ class InChIRepresentationSchema(BaseModel):
483
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
484
+ value: str
485
+
486
+
487
+ class Name53(Enum):
488
+ inchi_key = "inchi_key"
489
+
490
+
491
+ class InChIKeyRepresentationSchema(BaseModel):
492
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
493
+ value: str
494
+
495
+
496
+ class DerivedPropertiesSchema(
497
+ RootModel[
498
+ Union[
499
+ VolumeSchema,
500
+ DensitySchema,
501
+ SymmetrySchema,
502
+ ElementalRatio,
503
+ PNorm,
504
+ InChIRepresentationSchema,
505
+ InChIKeyRepresentationSchema,
506
+ ]
507
+ ]
508
+ ):
509
+ root: Union[
510
+ VolumeSchema,
511
+ DensitySchema,
512
+ SymmetrySchema,
513
+ ElementalRatio,
514
+ PNorm,
515
+ InChIRepresentationSchema,
516
+ InChIKeyRepresentationSchema,
517
+ ] = Field(..., discriminator="name")
518
+
519
+
520
+ class DatabaseSourceSchema(BaseModel):
521
+ id: Union[str, float]
522
+ """
523
+ 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
524
+ """
525
+ source: str
526
+ """
527
+ Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
528
+ """
529
+ origin: bool
530
+ """
531
+ 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).
532
+ """
533
+ data: Optional[Dict[str, Any]] = None
534
+ """
535
+ Original response from external source.
536
+ """
537
+ doi: Optional[str] = None
538
+ """
539
+ Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
540
+ """
541
+ url: Optional[str] = None
542
+ """
543
+ 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
544
+ """
545
+
546
+
547
+ class FileSourceSchema(BaseModel):
548
+ extension: Optional[str] = None
549
+ """
550
+ file extension
551
+ """
552
+ filename: str
553
+ """
554
+ file name without extension
555
+ """
556
+ text: str
557
+ """
558
+ file content as raw text
559
+ """
560
+ hash: str
561
+ """
562
+ MD5 hash based on file content
563
+ """
564
+
565
+
566
+ class Name54(Enum):
567
+ default = "default"
568
+ atomsTooClose = "atomsTooClose"
569
+ atomsOverlap = "atomsOverlap"
570
+
571
+
572
+ class Severity(Enum):
573
+ info = "info"
574
+ warning = "warning"
575
+ error = "error"
576
+
577
+
578
+ class MaterialConsistencyCheckSchema(BaseModel):
579
+ name: Name54
580
+ """
581
+ Name of the consistency check that is performed, which is listed in an enum.
582
+ """
583
+ key: str
584
+ """
585
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
586
+ """
587
+ severity: Severity
588
+ """
589
+ Severity level of the problem, which is used in UI to differentiate.
590
+ """
591
+ message: str
592
+ """
593
+ Message generated by the consistency check describing the problem.
594
+ """
595
+
596
+
597
+ class MaterialSchema(BaseModel):
598
+ formula: Optional[str] = None
599
+ """
600
+ reduced chemical formula
601
+ """
602
+ unitCellFormula: Optional[str] = None
603
+ """
604
+ chemical formula based on the number of atoms of each element in the supercell
605
+ """
606
+ basis: BasisSchema = Field(..., title="basis schema")
607
+ lattice: LatticeSchema = Field(..., title="lattice schema")
608
+ derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
609
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
610
+ """
611
+ information about a database source
612
+ """
613
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
614
+ """
615
+ file source with the information inside
616
+ """
617
+ scaledHash: Optional[str] = None
618
+ """
619
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
620
+ """
621
+ icsdId: Optional[int] = None
622
+ """
623
+ Corresponding ICSD id of the material
624
+ """
625
+ isNonPeriodic: Optional[bool] = None
626
+ """
627
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
628
+ """
629
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
630
+ field_id: Optional[str] = Field(None, alias="_id")
631
+ """
632
+ entity identity
633
+ """
634
+ slug: Optional[str] = None
635
+ """
636
+ entity slug
637
+ """
638
+ systemName: Optional[str] = None
639
+ schemaVersion: Optional[str] = "2022.8.16"
640
+ """
641
+ entity's schema version. Used to distinct between different schemas.
642
+ """
643
+ name: Optional[str] = None
644
+ """
645
+ entity name
646
+ """
647
+ isDefault: Optional[bool] = False
648
+ """
649
+ Identifies that entity is defaultable
650
+ """
651
+ metadata: Optional[Dict[str, Any]] = None
652
+
653
+
654
+ class VacancyPointDefectConfigurationSchema(BaseModel):
655
+ type: Literal["vacancy"]
656
+ """
657
+ The type of point defect
658
+ """
659
+ coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
660
+ chemical_element: Optional[ChemicalElement] = None
661
+ use_cartesian_coordinates: Optional[bool] = False
662
+ """
663
+ Whether coordinates are in cartesian rather than fractional coordinates
664
+ """
665
+ host: Optional[MaterialSchema] = None
666
+ """
667
+ The base host for the defect
668
+ """
669
+ isExternal: Optional[bool] = False
670
+ """
671
+ Whether the defect is external to the host material
672
+ """
@@ -0,0 +1,3 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: schema
3
+ # version: 0.28.5