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