mat3ra-esse 2025.6.5.post0__py3-none-any.whl → 2025.6.30.post0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (144) 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/materials_category/pristine_structures/two_dimensional/slab.py +428 -15
  5. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/termination.py +1 -1
  6. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +526 -2
  7. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +14 -14
  8. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +14 -14
  9. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +14 -14
  10. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py +1 -1
  11. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py +1 -1
  12. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py +1 -1
  13. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.py +428 -15
  14. mat3ra/esse/models/materials_category_components/operations/core/combinations/merge.py +413 -0
  15. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack.py +427 -14
  16. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack_component.py +427 -14
  17. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  18. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  19. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  20. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  21. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  22. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  23. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  24. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  25. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  26. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  27. {mat3ra_esse-2025.6.5.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/METADATA +1 -1
  28. {mat3ra_esse-2025.6.5.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/RECORD +31 -144
  29. mat3ra/esse/models/coordinates_shape_enum.py +0 -15
  30. mat3ra/esse/models/core/abstract/2d_data.py +0 -17
  31. mat3ra/esse/models/core/abstract/2d_plot.py +0 -34
  32. mat3ra/esse/models/core/abstract/3d_grid.py +0 -14
  33. mat3ra/esse/models/core/abstract/3d_tensor.py +0 -19
  34. mat3ra/esse/models/core/abstract/3d_vector_basis.py +0 -15
  35. mat3ra/esse/models/core/abstract/_3d_tensor.py +0 -19
  36. mat3ra/esse/models/core/abstract/_3d_vector_basis.py +0 -15
  37. mat3ra/esse/models/core/abstract/point.py +0 -13
  38. mat3ra/esse/models/core/abstract/vector.py +0 -13
  39. mat3ra/esse/models/core/primitive/1d_data_series.py +0 -13
  40. mat3ra/esse/models/core/primitive/3d_lattice.py +0 -34
  41. mat3ra/esse/models/core/primitive/_3d_lattice.py +0 -34
  42. mat3ra/esse/models/core/reusable/accuracy_level.py +0 -27
  43. mat3ra/esse/models/core/reusable/atomic_strings.py +0 -24
  44. mat3ra/esse/models/core/reusable/coordinate_conditions/cylinder.py +0 -26
  45. mat3ra/esse/models/core/reusable/coordinate_conditions/plane.py +0 -24
  46. mat3ra/esse/models/core/reusable/coordinate_conditions/sphere.py +0 -24
  47. mat3ra/esse/models/core/reusable/coordinate_conditions/triangular_prism.py +0 -27
  48. mat3ra/esse/models/core/reusable/energy_accuracy_levels/__init__.py +0 -3
  49. mat3ra/esse/models/core/reusable/energy_accuracy_levels.py +0 -31
  50. mat3ra/esse/models/enums/__init__.py +0 -3
  51. mat3ra/esse/models/enums/chemical_elements.py +0 -13
  52. mat3ra/esse/models/material/builders/base/__init__.py +0 -3
  53. mat3ra/esse/models/material/builders/base/selector_parameters.py +0 -16
  54. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/__init__.py +0 -3
  55. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/builder_parameters.py +0 -28
  56. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/selector_parameters.py +0 -151
  57. mat3ra/esse/models/material/reusable/__init__.py +0 -3
  58. mat3ra/esse/models/material/reusable/coordinate_conditions/__init__.py +0 -3
  59. mat3ra/esse/models/material/reusable/coordinate_conditions/base.py +0 -21
  60. mat3ra/esse/models/material/reusable/coordinate_conditions/box.py +0 -24
  61. mat3ra/esse/models/material/reusable/coordinate_conditions/cylinder.py +0 -26
  62. mat3ra/esse/models/material/reusable/coordinate_conditions/plane.py +0 -24
  63. mat3ra/esse/models/material/reusable/coordinate_conditions/sphere.py +0 -24
  64. mat3ra/esse/models/material/reusable/coordinate_conditions/triangular_prism.py +0 -27
  65. mat3ra/esse/models/material/reusable/repetitions.py +0 -25
  66. mat3ra/esse/models/material/reusable/slab/__init__.py +0 -3
  67. mat3ra/esse/models/material/reusable/slab/enums/__init__.py +0 -3
  68. mat3ra/esse/models/material/reusable/slab/enums/exposed_face.py +0 -13
  69. mat3ra/esse/models/material/reusable/slab/enums.py +0 -13
  70. mat3ra/esse/models/material/reusable/slab/miller_indices.py +0 -16
  71. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +0 -16
  72. mat3ra/esse/models/material/reusable/slab/slab_configuration_with_termination.py +0 -589
  73. mat3ra/esse/models/material/reusable/slab/slab_with_termination.py +0 -593
  74. mat3ra/esse/models/material/reusable/slab/termination.py +0 -144
  75. mat3ra/esse/models/material/reusable/slab/two_slabs_stack.py +0 -618
  76. mat3ra/esse/models/material/reusable/slab/vacuum.py +0 -16
  77. mat3ra/esse/models/material/reusable/slab_configuration_with_termination.py +0 -712
  78. mat3ra/esse/models/material/reusable/stack/__init__.py +0 -3
  79. mat3ra/esse/models/material/reusable/stack/slab_configuration_with_termination.py +0 -593
  80. mat3ra/esse/models/material/reusable/stack/slab_in_stack.py +0 -720
  81. mat3ra/esse/models/material/reusable/stack/stack_of_slabs.py +0 -737
  82. mat3ra/esse/models/material/reusable/stack/stack_of_two_slabs.py +0 -737
  83. mat3ra/esse/models/material/reusable/supercell/__init__.py +0 -3
  84. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_2d.py +0 -25
  85. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_3d.py +0 -27
  86. mat3ra/esse/models/material/reusable/supercell_matrix_2d.py +0 -25
  87. mat3ra/esse/models/material/reusable/supercell_matrix_3d.py +0 -27
  88. mat3ra/esse/models/materials_category/defects/__init__.py +0 -3
  89. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/__init__.py +0 -3
  90. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +0 -672
  91. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/__init__.py +0 -3
  92. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/configuration.py +0 -549
  93. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/__init__.py +0 -3
  94. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/configuration.py +0 -550
  95. mat3ra/esse/models/materials_category/defects/configuration.py +0 -545
  96. mat3ra/esse/models/materials_category/defects/enums/__init__.py +0 -3
  97. mat3ra/esse/models/materials_category/defects/enums/point_defect_type.py +0 -13
  98. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/__init__.py +0 -3
  99. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +0 -563
  100. mat3ra/esse/models/materials_category/defects/two_dimensional/grain_boundary_plane/__init__.py +0 -3
  101. mat3ra/esse/models/materials_category/defects/two_dimensional/grain_boundary_plane/configuration.py +0 -1200
  102. mat3ra/esse/models/materials_category/defects/two_dimensional/island/__init__.py +0 -3
  103. mat3ra/esse/models/materials_category/defects/two_dimensional/island/condition_json.py +0 -28
  104. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +0 -564
  105. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/__init__.py +0 -3
  106. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/configuration.py +0 -1538
  107. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/__init__.py +0 -3
  108. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +0 -672
  109. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/__init__.py +0 -3
  110. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +0 -672
  111. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/__init__.py +0 -3
  112. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +0 -672
  113. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/__init__.py +0 -3
  114. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +0 -672
  115. mat3ra/esse/models/materials_category/multi_material/interfaces/__init__.py +0 -3
  116. mat3ra/esse/models/materials_category/multi_material/interfaces/configuration.py +0 -737
  117. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/__init__.py +0 -3
  118. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +0 -567
  119. mat3ra/esse/models/methods_directory/physical/psp/file/__init__.py +0 -129
  120. mat3ra/esse/models/methods_directory/physical/psp/file_data_item/__init__.py +0 -111
  121. mat3ra/esse/models/properties_directory/structural/lattice/lattice_bravais.py +0 -74
  122. mat3ra/esse/models/property/base/__init__.py +0 -200
  123. mat3ra/esse/models/property/meta/__init__.py +0 -200
  124. mat3ra/esse/models/property/raw/__init__.py +0 -200
  125. mat3ra/esse/models/property/source/__init__.py +0 -150
  126. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/__init__.py +0 -3
  127. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/atoms.py +0 -41
  128. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/db_entry.py +0 -55
  129. mat3ra/esse/models/third_party/file/applications/espresso/7.2/__init__.py +0 -3
  130. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/__init__.py +0 -3
  131. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/atomic_positions.py +0 -51
  132. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/atomic_species.py +0 -34
  133. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/cell.py +0 -111
  134. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/cell_parameters.py +0 -36
  135. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/control.py +0 -169
  136. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/electrons.py +0 -139
  137. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/hubbard.py +0 -194
  138. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/ions.py +0 -422
  139. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/k_points.py +0 -73
  140. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/system.py +0 -841
  141. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw_x.py +0 -1990
  142. {mat3ra_esse-2025.6.5.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/WHEEL +0 -0
  143. {mat3ra_esse-2025.6.5.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/licenses/LICENSE.md +0 -0
  144. {mat3ra_esse-2025.6.5.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/top_level.txt +0 -0
@@ -131,13 +131,13 @@ class Value(Enum):
131
131
  Og = "Og"
132
132
 
133
133
 
134
- class Value37(Enum):
134
+ class Value45(Enum):
135
135
  X = "X"
136
136
  Vac = "Vac"
137
137
 
138
138
 
139
139
  class AtomicElementSchema(BaseModel):
140
- value: Union[Value, Value37]
140
+ value: Union[Value, Value45]
141
141
  """
142
142
  All elements, including extra elements
143
143
  """
@@ -285,30 +285,30 @@ class VolumeSchema(BaseModel):
285
285
  value: float
286
286
 
287
287
 
288
- class Name150(Enum):
288
+ class Name182(Enum):
289
289
  density = "density"
290
290
 
291
291
 
292
- class Units78(Enum):
292
+ class Units90(Enum):
293
293
  g_cm_3 = "g/cm^3"
294
294
 
295
295
 
296
296
  class DensitySchema(BaseModel):
297
297
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
298
- units: Optional[Units78] = None
298
+ units: Optional[Units90] = None
299
299
  value: float
300
300
 
301
301
 
302
- class Units79(Enum):
302
+ class Units91(Enum):
303
303
  angstrom = "angstrom"
304
304
 
305
305
 
306
306
  class ScalarSchema(BaseModel):
307
- units: Optional[Units79] = None
307
+ units: Optional[Units91] = None
308
308
  value: float
309
309
 
310
310
 
311
- class Name151(Enum):
311
+ class Name183(Enum):
312
312
  symmetry = "symmetry"
313
313
 
314
314
 
@@ -328,7 +328,7 @@ class SymmetrySchema(BaseModel):
328
328
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
329
329
 
330
330
 
331
- class Name152(Enum):
331
+ class Name184(Enum):
332
332
  elemental_ratio = "elemental_ratio"
333
333
 
334
334
 
@@ -341,7 +341,7 @@ class ElementalRatio(BaseModel):
341
341
  """
342
342
 
343
343
 
344
- class Name153(Enum):
344
+ class Name185(Enum):
345
345
  p_norm = "p-norm"
346
346
 
347
347
 
@@ -354,7 +354,7 @@ class PNorm(BaseModel):
354
354
  value: float
355
355
 
356
356
 
357
- class Name154(Enum):
357
+ class Name186(Enum):
358
358
  inchi = "inchi"
359
359
 
360
360
 
@@ -363,7 +363,7 @@ class InChIRepresentationSchema(BaseModel):
363
363
  value: str
364
364
 
365
365
 
366
- class Name155(Enum):
366
+ class Name187(Enum):
367
367
  inchi_key = "inchi_key"
368
368
 
369
369
 
@@ -442,7 +442,7 @@ class FileSourceSchema(BaseModel):
442
442
  """
443
443
 
444
444
 
445
- class Name156(Enum):
445
+ class Name188(Enum):
446
446
  default = "default"
447
447
  atomsTooClose = "atomsTooClose"
448
448
  atomsOverlap = "atomsOverlap"
@@ -455,7 +455,7 @@ class Severity(Enum):
455
455
 
456
456
 
457
457
  class MaterialConsistencyCheckSchema(BaseModel):
458
- name: Name156
458
+ name: Name188
459
459
  """
460
460
  Name of the consistency check that is performed, which is listed in an enum.
461
461
  """
@@ -536,6 +536,415 @@ class AxisEnum(Enum):
536
536
  z = "z"
537
537
 
538
538
 
539
+ class Value46(Enum):
540
+ H = "H"
541
+ He = "He"
542
+ Li = "Li"
543
+ Be = "Be"
544
+ B = "B"
545
+ C = "C"
546
+ N = "N"
547
+ O = "O"
548
+ F = "F"
549
+ Ne = "Ne"
550
+ Na = "Na"
551
+ Mg = "Mg"
552
+ Al = "Al"
553
+ Si = "Si"
554
+ P = "P"
555
+ S = "S"
556
+ Cl = "Cl"
557
+ Ar = "Ar"
558
+ K = "K"
559
+ Ca = "Ca"
560
+ Sc = "Sc"
561
+ Ti = "Ti"
562
+ V = "V"
563
+ Cr = "Cr"
564
+ Mn = "Mn"
565
+ Fe = "Fe"
566
+ Co = "Co"
567
+ Ni = "Ni"
568
+ Cu = "Cu"
569
+ Zn = "Zn"
570
+ Ga = "Ga"
571
+ Ge = "Ge"
572
+ As = "As"
573
+ Se = "Se"
574
+ Br = "Br"
575
+ Kr = "Kr"
576
+ Rb = "Rb"
577
+ Sr = "Sr"
578
+ Y = "Y"
579
+ Zr = "Zr"
580
+ Nb = "Nb"
581
+ Mo = "Mo"
582
+ Tc = "Tc"
583
+ Ru = "Ru"
584
+ Rh = "Rh"
585
+ Pd = "Pd"
586
+ Ag = "Ag"
587
+ Cd = "Cd"
588
+ In = "In"
589
+ Sn = "Sn"
590
+ Sb = "Sb"
591
+ Te = "Te"
592
+ I = "I"
593
+ Xe = "Xe"
594
+ Cs = "Cs"
595
+ Ba = "Ba"
596
+ La = "La"
597
+ Ce = "Ce"
598
+ Pr = "Pr"
599
+ Nd = "Nd"
600
+ Pm = "Pm"
601
+ Sm = "Sm"
602
+ Eu = "Eu"
603
+ Gd = "Gd"
604
+ Tb = "Tb"
605
+ Dy = "Dy"
606
+ Ho = "Ho"
607
+ Er = "Er"
608
+ Tm = "Tm"
609
+ Yb = "Yb"
610
+ Lu = "Lu"
611
+ Hf = "Hf"
612
+ Ta = "Ta"
613
+ W = "W"
614
+ Re = "Re"
615
+ Os = "Os"
616
+ Ir = "Ir"
617
+ Pt = "Pt"
618
+ Au = "Au"
619
+ Hg = "Hg"
620
+ Tl = "Tl"
621
+ Pb = "Pb"
622
+ Bi = "Bi"
623
+ Po = "Po"
624
+ At = "At"
625
+ Rn = "Rn"
626
+ Fr = "Fr"
627
+ Ra = "Ra"
628
+ Ac = "Ac"
629
+ Th = "Th"
630
+ Pa = "Pa"
631
+ U = "U"
632
+ Np = "Np"
633
+ Pu = "Pu"
634
+ Am = "Am"
635
+ Cm = "Cm"
636
+ Bk = "Bk"
637
+ Cf = "Cf"
638
+ Es = "Es"
639
+ Fm = "Fm"
640
+ Md = "Md"
641
+ No = "No"
642
+ Lr = "Lr"
643
+ Rf = "Rf"
644
+ Db = "Db"
645
+ Sg = "Sg"
646
+ Bh = "Bh"
647
+ Hs = "Hs"
648
+ Mt = "Mt"
649
+ Ds = "Ds"
650
+ Rg = "Rg"
651
+ Cn = "Cn"
652
+ Nh = "Nh"
653
+ Fl = "Fl"
654
+ Mc = "Mc"
655
+ Lv = "Lv"
656
+ Ts = "Ts"
657
+ Og = "Og"
658
+
659
+
660
+ class Value47(Enum):
661
+ X = "X"
662
+ Vac = "Vac"
663
+
664
+
665
+ class AtomicElementSchema19(BaseModel):
666
+ value: Union[Value46, Value47]
667
+ """
668
+ All elements, including extra elements
669
+ """
670
+ id: int
671
+ """
672
+ integer id of this entry
673
+ """
674
+
675
+
676
+ class BasisSchema17(BaseModel):
677
+ elements: List[AtomicElementSchema19] = Field(..., title="atomic elements schema")
678
+ """
679
+ atomic elements schema
680
+ """
681
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
682
+ """
683
+ atomic coordinates schema
684
+ """
685
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
686
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
687
+ """
688
+ atomic labels schema
689
+ """
690
+
691
+
692
+ class LatticeVectorsSchema17(BaseModel):
693
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
694
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
695
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
696
+ alat: Optional[float] = 1
697
+ """
698
+ lattice parameter for fractional coordinates
699
+ """
700
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
701
+
702
+
703
+ class LatticeUnitsSchema18(BaseModel):
704
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
705
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
706
+
707
+
708
+ class LatticeSchema17(BaseModel):
709
+ a: float
710
+ """
711
+ length of the first lattice vector
712
+ """
713
+ b: float
714
+ """
715
+ length of the second lattice vector
716
+ """
717
+ c: float
718
+ """
719
+ length of the third lattice vector
720
+ """
721
+ alpha: float
722
+ """
723
+ angle between first and second lattice vector
724
+ """
725
+ beta: float
726
+ """
727
+ angle between second and third lattice vector
728
+ """
729
+ gamma: float
730
+ """
731
+ angle between first and third lattice vector
732
+ """
733
+ vectors: Optional[LatticeVectorsSchema17] = Field(None, title="lattice vectors schema")
734
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
735
+ units: Optional[LatticeUnitsSchema18] = Field(
736
+ default_factory=lambda: LatticeUnitsSchema18.model_validate({"length": "angstrom", "angle": "degree"}),
737
+ title="Lattice units schema",
738
+ )
739
+
740
+
741
+ class Name189(Enum):
742
+ volume = "volume"
743
+
744
+
745
+ class Units92(Enum):
746
+ angstrom_3 = "angstrom^3"
747
+
748
+
749
+ class VolumeSchema17(BaseModel):
750
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
751
+ units: Optional[Units92] = None
752
+ value: float
753
+
754
+
755
+ class Name190(Enum):
756
+ density = "density"
757
+
758
+
759
+ class Units93(Enum):
760
+ g_cm_3 = "g/cm^3"
761
+
762
+
763
+ class DensitySchema18(BaseModel):
764
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
765
+ units: Optional[Units93] = None
766
+ value: float
767
+
768
+
769
+ class Units94(Enum):
770
+ angstrom = "angstrom"
771
+
772
+
773
+ class ScalarSchema19(BaseModel):
774
+ units: Optional[Units94] = None
775
+ value: float
776
+
777
+
778
+ class Name191(Enum):
779
+ symmetry = "symmetry"
780
+
781
+
782
+ class SymmetrySchema17(BaseModel):
783
+ pointGroupSymbol: Optional[str] = None
784
+ """
785
+ point group symbol in Schoenflies notation
786
+ """
787
+ spaceGroupSymbol: Optional[str] = None
788
+ """
789
+ space group symbol in Hermann–Mauguin notation
790
+ """
791
+ tolerance: Optional[ScalarSchema19] = Field(None, title="scalar schema")
792
+ """
793
+ tolerance used for symmetry calculation
794
+ """
795
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
796
+
797
+
798
+ class Name192(Enum):
799
+ elemental_ratio = "elemental_ratio"
800
+
801
+
802
+ class ElementalRatio18(BaseModel):
803
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
804
+ value: confloat(ge=0.0, le=1.0)
805
+ element: Optional[str] = None
806
+ """
807
+ the element this ratio is for
808
+ """
809
+
810
+
811
+ class Name193(Enum):
812
+ p_norm = "p-norm"
813
+
814
+
815
+ class PNorm18(BaseModel):
816
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
817
+ degree: Optional[int] = None
818
+ """
819
+ degree of the dimensionality of the norm
820
+ """
821
+ value: float
822
+
823
+
824
+ class Name194(Enum):
825
+ inchi = "inchi"
826
+
827
+
828
+ class InChIRepresentationSchema18(BaseModel):
829
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
830
+ value: str
831
+
832
+
833
+ class Name195(Enum):
834
+ inchi_key = "inchi_key"
835
+
836
+
837
+ class InChIKeyRepresentationSchema18(BaseModel):
838
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
839
+ value: str
840
+
841
+
842
+ class DerivedPropertiesSchema18(
843
+ RootModel[
844
+ Union[
845
+ VolumeSchema17,
846
+ DensitySchema18,
847
+ SymmetrySchema17,
848
+ ElementalRatio18,
849
+ PNorm18,
850
+ InChIRepresentationSchema18,
851
+ InChIKeyRepresentationSchema18,
852
+ ]
853
+ ]
854
+ ):
855
+ root: Union[
856
+ VolumeSchema17,
857
+ DensitySchema18,
858
+ SymmetrySchema17,
859
+ ElementalRatio18,
860
+ PNorm18,
861
+ InChIRepresentationSchema18,
862
+ InChIKeyRepresentationSchema18,
863
+ ] = Field(..., discriminator="name")
864
+
865
+
866
+ class Name196(Enum):
867
+ default = "default"
868
+ atomsTooClose = "atomsTooClose"
869
+ atomsOverlap = "atomsOverlap"
870
+
871
+
872
+ class MaterialConsistencyCheckSchema17(BaseModel):
873
+ name: Name196
874
+ """
875
+ Name of the consistency check that is performed, which is listed in an enum.
876
+ """
877
+ key: str
878
+ """
879
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
880
+ """
881
+ severity: Severity
882
+ """
883
+ Severity level of the problem, which is used in UI to differentiate.
884
+ """
885
+ message: str
886
+ """
887
+ Message generated by the consistency check describing the problem.
888
+ """
889
+
890
+
891
+ class CrystalSchema14(BaseModel):
892
+ formula: Optional[str] = None
893
+ """
894
+ reduced chemical formula
895
+ """
896
+ unitCellFormula: Optional[str] = None
897
+ """
898
+ chemical formula based on the number of atoms of each element in the supercell
899
+ """
900
+ basis: BasisSchema17 = Field(..., title="basis schema")
901
+ lattice: LatticeSchema17 = Field(..., title="lattice schema")
902
+ derivedProperties: Optional[List[DerivedPropertiesSchema18]] = Field(None, title="derived properties schema")
903
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
904
+ """
905
+ information about a database source
906
+ """
907
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
908
+ """
909
+ file source with the information inside
910
+ """
911
+ scaledHash: Optional[str] = None
912
+ """
913
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
914
+ """
915
+ icsdId: Optional[int] = None
916
+ """
917
+ Corresponding ICSD id of the material
918
+ """
919
+ isNonPeriodic: Optional[bool] = None
920
+ """
921
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
922
+ """
923
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema17]] = None
924
+ field_id: Optional[str] = Field(None, alias="_id")
925
+ """
926
+ entity identity
927
+ """
928
+ slug: Optional[str] = None
929
+ """
930
+ entity slug
931
+ """
932
+ systemName: Optional[str] = None
933
+ schemaVersion: Optional[str] = "2022.8.16"
934
+ """
935
+ entity's schema version. Used to distinct between different schemas.
936
+ """
937
+ name: Optional[str] = None
938
+ """
939
+ entity name
940
+ """
941
+ isDefault: Optional[bool] = False
942
+ """
943
+ Identifies that entity is defaultable
944
+ """
945
+ metadata: Optional[Dict[str, Any]] = None
946
+
947
+
539
948
  class VacuumConfigurationSchema(BaseModel):
540
949
  direction: AxisEnum = Field(..., title="Axis Enum")
541
950
  """
@@ -545,6 +954,10 @@ class VacuumConfigurationSchema(BaseModel):
545
954
  """
546
955
  Size of the vacuum slab in angstroms
547
956
  """
957
+ crystal: CrystalSchema14 = Field(..., title="Crystal Schema")
958
+ """
959
+ A crystal structure, referencing the base material schema
960
+ """
548
961
 
549
962
 
550
963
  class ESSE(RootModel[Union[CrystalSchema, VacuumConfigurationSchema]]):
@@ -34,7 +34,7 @@ class Label9(Enum):
34
34
  frequency = "frequency"
35
35
 
36
36
 
37
- class Units60(Enum):
37
+ class Units63(Enum):
38
38
  cm_1 = "cm-1"
39
39
  THz = "THz"
40
40
  meV = "meV"
@@ -45,7 +45,7 @@ class AxisSchema12(BaseModel):
45
45
  """
46
46
  label of an axis object
47
47
  """
48
- units: Optional[Units60] = None
48
+ units: Optional[Units63] = None
49
49
  """
50
50
  units for an axis
51
51
  """
@@ -35,7 +35,7 @@ class Label11(Enum):
35
35
  Phonon_DOS = "Phonon DOS"
36
36
 
37
37
 
38
- class Units62(Enum):
38
+ class Units65(Enum):
39
39
  states_cm_1 = "states/cm-1"
40
40
  states_THz = "states/THz"
41
41
  states_meV = "states/meV"
@@ -46,7 +46,7 @@ class AxisSchema14(BaseModel):
46
46
  """
47
47
  label of an axis object
48
48
  """
49
- units: Optional[Units62] = None
49
+ units: Optional[Units65] = None
50
50
  """
51
51
  units for an axis
52
52
  """