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
@@ -1663,7 +1663,7 @@ class CardOption(Enum):
1663
1663
  crystal_sg = "crystal_sg"
1664
1664
 
1665
1665
 
1666
- class Value27(BaseModel):
1666
+ class Value29(BaseModel):
1667
1667
  model_config = ConfigDict(
1668
1668
  extra="forbid",
1669
1669
  )
@@ -1693,7 +1693,7 @@ class AtomicPositionsSchema(BaseModel):
1693
1693
  extra="forbid",
1694
1694
  )
1695
1695
  card_option: Optional[CardOption] = "alat"
1696
- values: Optional[List[Value27]] = None
1696
+ values: Optional[List[Value29]] = None
1697
1697
 
1698
1698
 
1699
1699
  class CardOption5(Enum):
@@ -1707,7 +1707,7 @@ class CardOption5(Enum):
1707
1707
  crystal_c = "crystal_c"
1708
1708
 
1709
1709
 
1710
- class Value28(BaseModel):
1710
+ class Value30(BaseModel):
1711
1711
  model_config = ConfigDict(
1712
1712
  extra="forbid",
1713
1713
  )
@@ -1756,7 +1756,7 @@ class KPointsSchema(BaseModel):
1756
1756
  extra="forbid",
1757
1757
  )
1758
1758
  card_option: Optional[CardOption5] = None
1759
- values: Optional[Union[List[Value28], Values]] = None
1759
+ values: Optional[Union[List[Value30], Values]] = None
1760
1760
 
1761
1761
 
1762
1762
  class CardOption6(Enum):
@@ -1853,7 +1853,7 @@ class ParamType(Enum):
1853
1853
  E3 = "E3"
1854
1854
 
1855
1855
 
1856
- class Value29(BaseModel):
1856
+ class Value31(BaseModel):
1857
1857
  model_config = ConfigDict(
1858
1858
  extra="forbid",
1859
1859
  )
@@ -1967,7 +1967,7 @@ class HubbardSchema(BaseModel):
1967
1967
  )
1968
1968
  card_option: Optional[CardOption7] = None
1969
1969
  values: Optional[
1970
- Union[List[Union[Values9, Values10]], List[Value29], List[Union[Values11, Values12, Values13]]]
1970
+ Union[List[Union[Values9, Values10]], List[Value31], List[Union[Values11, Values12, Values13]]]
1971
1971
  ] = None
1972
1972
 
1973
1973
 
@@ -136,7 +136,7 @@ class ChemicalElements(Enum):
136
136
 
137
137
 
138
138
  class TerminationSchema(BaseModel):
139
- chemical_elements: Union[ChemicalElements, constr(pattern=r"^[A-Z][a-z]?([A-Z][a-z]?)*$")] = Field(
139
+ chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
140
140
  ..., title="Chemical Elements"
141
141
  )
142
142
  """
@@ -269,13 +269,13 @@ class Value(Enum):
269
269
  Og = "Og"
270
270
 
271
271
 
272
- class Value31(Enum):
272
+ class Value33(Enum):
273
273
  X = "X"
274
274
  Vac = "Vac"
275
275
 
276
276
 
277
277
  class AtomicElementSchema(BaseModel):
278
- value: Union[Value, Value31]
278
+ value: Union[Value, Value33]
279
279
  """
280
280
  All elements, including extra elements
281
281
  """
@@ -423,30 +423,30 @@ class VolumeSchema(BaseModel):
423
423
  value: float
424
424
 
425
425
 
426
- class Name125(Enum):
426
+ class Name133(Enum):
427
427
  density = "density"
428
428
 
429
429
 
430
- class Units69(Enum):
430
+ class Units72(Enum):
431
431
  g_cm_3 = "g/cm^3"
432
432
 
433
433
 
434
434
  class DensitySchema(BaseModel):
435
435
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
436
- units: Optional[Units69] = None
436
+ units: Optional[Units72] = None
437
437
  value: float
438
438
 
439
439
 
440
- class Units70(Enum):
440
+ class Units73(Enum):
441
441
  angstrom = "angstrom"
442
442
 
443
443
 
444
444
  class ScalarSchema(BaseModel):
445
- units: Optional[Units70] = None
445
+ units: Optional[Units73] = None
446
446
  value: float
447
447
 
448
448
 
449
- class Name126(Enum):
449
+ class Name134(Enum):
450
450
  symmetry = "symmetry"
451
451
 
452
452
 
@@ -466,7 +466,7 @@ class SymmetrySchema(BaseModel):
466
466
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
467
467
 
468
468
 
469
- class Name127(Enum):
469
+ class Name135(Enum):
470
470
  elemental_ratio = "elemental_ratio"
471
471
 
472
472
 
@@ -479,7 +479,7 @@ class ElementalRatio(BaseModel):
479
479
  """
480
480
 
481
481
 
482
- class Name128(Enum):
482
+ class Name136(Enum):
483
483
  p_norm = "p-norm"
484
484
 
485
485
 
@@ -492,7 +492,7 @@ class PNorm(BaseModel):
492
492
  value: float
493
493
 
494
494
 
495
- class Name129(Enum):
495
+ class Name137(Enum):
496
496
  inchi = "inchi"
497
497
 
498
498
 
@@ -501,7 +501,7 @@ class InChIRepresentationSchema(BaseModel):
501
501
  value: str
502
502
 
503
503
 
504
- class Name130(Enum):
504
+ class Name138(Enum):
505
505
  inchi_key = "inchi_key"
506
506
 
507
507
 
@@ -580,7 +580,7 @@ class FileSourceSchema(BaseModel):
580
580
  """
581
581
 
582
582
 
583
- class Name131(Enum):
583
+ class Name139(Enum):
584
584
  default = "default"
585
585
  atomsTooClose = "atomsTooClose"
586
586
  atomsOverlap = "atomsOverlap"
@@ -593,7 +593,7 @@ class Severity(Enum):
593
593
 
594
594
 
595
595
  class MaterialConsistencyCheckSchema(BaseModel):
596
- name: Name131
596
+ name: Name139
597
597
  """
598
598
  Name of the consistency check that is performed, which is listed in an enum.
599
599
  """
@@ -697,6 +697,415 @@ class AxisEnum(Enum):
697
697
  z = "z"
698
698
 
699
699
 
700
+ class Value34(Enum):
701
+ H = "H"
702
+ He = "He"
703
+ Li = "Li"
704
+ Be = "Be"
705
+ B = "B"
706
+ C = "C"
707
+ N = "N"
708
+ O = "O"
709
+ F = "F"
710
+ Ne = "Ne"
711
+ Na = "Na"
712
+ Mg = "Mg"
713
+ Al = "Al"
714
+ Si = "Si"
715
+ P = "P"
716
+ S = "S"
717
+ Cl = "Cl"
718
+ Ar = "Ar"
719
+ K = "K"
720
+ Ca = "Ca"
721
+ Sc = "Sc"
722
+ Ti = "Ti"
723
+ V = "V"
724
+ Cr = "Cr"
725
+ Mn = "Mn"
726
+ Fe = "Fe"
727
+ Co = "Co"
728
+ Ni = "Ni"
729
+ Cu = "Cu"
730
+ Zn = "Zn"
731
+ Ga = "Ga"
732
+ Ge = "Ge"
733
+ As = "As"
734
+ Se = "Se"
735
+ Br = "Br"
736
+ Kr = "Kr"
737
+ Rb = "Rb"
738
+ Sr = "Sr"
739
+ Y = "Y"
740
+ Zr = "Zr"
741
+ Nb = "Nb"
742
+ Mo = "Mo"
743
+ Tc = "Tc"
744
+ Ru = "Ru"
745
+ Rh = "Rh"
746
+ Pd = "Pd"
747
+ Ag = "Ag"
748
+ Cd = "Cd"
749
+ In = "In"
750
+ Sn = "Sn"
751
+ Sb = "Sb"
752
+ Te = "Te"
753
+ I = "I"
754
+ Xe = "Xe"
755
+ Cs = "Cs"
756
+ Ba = "Ba"
757
+ La = "La"
758
+ Ce = "Ce"
759
+ Pr = "Pr"
760
+ Nd = "Nd"
761
+ Pm = "Pm"
762
+ Sm = "Sm"
763
+ Eu = "Eu"
764
+ Gd = "Gd"
765
+ Tb = "Tb"
766
+ Dy = "Dy"
767
+ Ho = "Ho"
768
+ Er = "Er"
769
+ Tm = "Tm"
770
+ Yb = "Yb"
771
+ Lu = "Lu"
772
+ Hf = "Hf"
773
+ Ta = "Ta"
774
+ W = "W"
775
+ Re = "Re"
776
+ Os = "Os"
777
+ Ir = "Ir"
778
+ Pt = "Pt"
779
+ Au = "Au"
780
+ Hg = "Hg"
781
+ Tl = "Tl"
782
+ Pb = "Pb"
783
+ Bi = "Bi"
784
+ Po = "Po"
785
+ At = "At"
786
+ Rn = "Rn"
787
+ Fr = "Fr"
788
+ Ra = "Ra"
789
+ Ac = "Ac"
790
+ Th = "Th"
791
+ Pa = "Pa"
792
+ U = "U"
793
+ Np = "Np"
794
+ Pu = "Pu"
795
+ Am = "Am"
796
+ Cm = "Cm"
797
+ Bk = "Bk"
798
+ Cf = "Cf"
799
+ Es = "Es"
800
+ Fm = "Fm"
801
+ Md = "Md"
802
+ No = "No"
803
+ Lr = "Lr"
804
+ Rf = "Rf"
805
+ Db = "Db"
806
+ Sg = "Sg"
807
+ Bh = "Bh"
808
+ Hs = "Hs"
809
+ Mt = "Mt"
810
+ Ds = "Ds"
811
+ Rg = "Rg"
812
+ Cn = "Cn"
813
+ Nh = "Nh"
814
+ Fl = "Fl"
815
+ Mc = "Mc"
816
+ Lv = "Lv"
817
+ Ts = "Ts"
818
+ Og = "Og"
819
+
820
+
821
+ class Value35(Enum):
822
+ X = "X"
823
+ Vac = "Vac"
824
+
825
+
826
+ class AtomicElementSchema13(BaseModel):
827
+ value: Union[Value34, Value35]
828
+ """
829
+ All elements, including extra elements
830
+ """
831
+ id: int
832
+ """
833
+ integer id of this entry
834
+ """
835
+
836
+
837
+ class BasisSchema11(BaseModel):
838
+ elements: List[AtomicElementSchema13] = Field(..., title="atomic elements schema")
839
+ """
840
+ atomic elements schema
841
+ """
842
+ coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
843
+ """
844
+ atomic coordinates schema
845
+ """
846
+ units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
847
+ labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
848
+ """
849
+ atomic labels schema
850
+ """
851
+
852
+
853
+ class LatticeVectorsSchema11(BaseModel):
854
+ a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
855
+ b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
856
+ c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
857
+ alat: Optional[float] = 1
858
+ """
859
+ lattice parameter for fractional coordinates
860
+ """
861
+ units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
862
+
863
+
864
+ class LatticeUnitsSchema12(BaseModel):
865
+ length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
866
+ angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
867
+
868
+
869
+ class LatticeSchema11(BaseModel):
870
+ a: float
871
+ """
872
+ length of the first lattice vector
873
+ """
874
+ b: float
875
+ """
876
+ length of the second lattice vector
877
+ """
878
+ c: float
879
+ """
880
+ length of the third lattice vector
881
+ """
882
+ alpha: float
883
+ """
884
+ angle between first and second lattice vector
885
+ """
886
+ beta: float
887
+ """
888
+ angle between second and third lattice vector
889
+ """
890
+ gamma: float
891
+ """
892
+ angle between first and third lattice vector
893
+ """
894
+ vectors: Optional[LatticeVectorsSchema11] = Field(None, title="lattice vectors schema")
895
+ type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
896
+ units: Optional[LatticeUnitsSchema12] = Field(
897
+ default_factory=lambda: LatticeUnitsSchema12.model_validate({"length": "angstrom", "angle": "degree"}),
898
+ title="Lattice units schema",
899
+ )
900
+
901
+
902
+ class Name140(Enum):
903
+ volume = "volume"
904
+
905
+
906
+ class Units74(Enum):
907
+ angstrom_3 = "angstrom^3"
908
+
909
+
910
+ class VolumeSchema11(BaseModel):
911
+ name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
912
+ units: Optional[Units74] = None
913
+ value: float
914
+
915
+
916
+ class Name141(Enum):
917
+ density = "density"
918
+
919
+
920
+ class Units75(Enum):
921
+ g_cm_3 = "g/cm^3"
922
+
923
+
924
+ class DensitySchema12(BaseModel):
925
+ name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
926
+ units: Optional[Units75] = None
927
+ value: float
928
+
929
+
930
+ class Units76(Enum):
931
+ angstrom = "angstrom"
932
+
933
+
934
+ class ScalarSchema13(BaseModel):
935
+ units: Optional[Units76] = None
936
+ value: float
937
+
938
+
939
+ class Name142(Enum):
940
+ symmetry = "symmetry"
941
+
942
+
943
+ class SymmetrySchema11(BaseModel):
944
+ pointGroupSymbol: Optional[str] = None
945
+ """
946
+ point group symbol in Schoenflies notation
947
+ """
948
+ spaceGroupSymbol: Optional[str] = None
949
+ """
950
+ space group symbol in Hermann–Mauguin notation
951
+ """
952
+ tolerance: Optional[ScalarSchema13] = Field(None, title="scalar schema")
953
+ """
954
+ tolerance used for symmetry calculation
955
+ """
956
+ name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
957
+
958
+
959
+ class Name143(Enum):
960
+ elemental_ratio = "elemental_ratio"
961
+
962
+
963
+ class ElementalRatio12(BaseModel):
964
+ name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
965
+ value: confloat(ge=0.0, le=1.0)
966
+ element: Optional[str] = None
967
+ """
968
+ the element this ratio is for
969
+ """
970
+
971
+
972
+ class Name144(Enum):
973
+ p_norm = "p-norm"
974
+
975
+
976
+ class PNorm12(BaseModel):
977
+ name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
978
+ degree: Optional[int] = None
979
+ """
980
+ degree of the dimensionality of the norm
981
+ """
982
+ value: float
983
+
984
+
985
+ class Name145(Enum):
986
+ inchi = "inchi"
987
+
988
+
989
+ class InChIRepresentationSchema12(BaseModel):
990
+ name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
991
+ value: str
992
+
993
+
994
+ class Name146(Enum):
995
+ inchi_key = "inchi_key"
996
+
997
+
998
+ class InChIKeyRepresentationSchema12(BaseModel):
999
+ name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1000
+ value: str
1001
+
1002
+
1003
+ class DerivedPropertiesSchema12(
1004
+ RootModel[
1005
+ Union[
1006
+ VolumeSchema11,
1007
+ DensitySchema12,
1008
+ SymmetrySchema11,
1009
+ ElementalRatio12,
1010
+ PNorm12,
1011
+ InChIRepresentationSchema12,
1012
+ InChIKeyRepresentationSchema12,
1013
+ ]
1014
+ ]
1015
+ ):
1016
+ root: Union[
1017
+ VolumeSchema11,
1018
+ DensitySchema12,
1019
+ SymmetrySchema11,
1020
+ ElementalRatio12,
1021
+ PNorm12,
1022
+ InChIRepresentationSchema12,
1023
+ InChIKeyRepresentationSchema12,
1024
+ ] = Field(..., discriminator="name")
1025
+
1026
+
1027
+ class Name147(Enum):
1028
+ default = "default"
1029
+ atomsTooClose = "atomsTooClose"
1030
+ atomsOverlap = "atomsOverlap"
1031
+
1032
+
1033
+ class MaterialConsistencyCheckSchema11(BaseModel):
1034
+ name: Name147
1035
+ """
1036
+ Name of the consistency check that is performed, which is listed in an enum.
1037
+ """
1038
+ key: str
1039
+ """
1040
+ Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
1041
+ """
1042
+ severity: Severity
1043
+ """
1044
+ Severity level of the problem, which is used in UI to differentiate.
1045
+ """
1046
+ message: str
1047
+ """
1048
+ Message generated by the consistency check describing the problem.
1049
+ """
1050
+
1051
+
1052
+ class CrystalSchema8(BaseModel):
1053
+ formula: Optional[str] = None
1054
+ """
1055
+ reduced chemical formula
1056
+ """
1057
+ unitCellFormula: Optional[str] = None
1058
+ """
1059
+ chemical formula based on the number of atoms of each element in the supercell
1060
+ """
1061
+ basis: BasisSchema11 = Field(..., title="basis schema")
1062
+ lattice: LatticeSchema11 = Field(..., title="lattice schema")
1063
+ derivedProperties: Optional[List[DerivedPropertiesSchema12]] = Field(None, title="derived properties schema")
1064
+ external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
1065
+ """
1066
+ information about a database source
1067
+ """
1068
+ src: Optional[FileSourceSchema] = Field(None, title="file source schema")
1069
+ """
1070
+ file source with the information inside
1071
+ """
1072
+ scaledHash: Optional[str] = None
1073
+ """
1074
+ Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
1075
+ """
1076
+ icsdId: Optional[int] = None
1077
+ """
1078
+ Corresponding ICSD id of the material
1079
+ """
1080
+ isNonPeriodic: Optional[bool] = None
1081
+ """
1082
+ Whether to work in the finite molecular picture (usually with atomic orbital basis)
1083
+ """
1084
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema11]] = None
1085
+ field_id: Optional[str] = Field(None, alias="_id")
1086
+ """
1087
+ entity identity
1088
+ """
1089
+ slug: Optional[str] = None
1090
+ """
1091
+ entity slug
1092
+ """
1093
+ systemName: Optional[str] = None
1094
+ schemaVersion: Optional[str] = "2022.8.16"
1095
+ """
1096
+ entity's schema version. Used to distinct between different schemas.
1097
+ """
1098
+ name: Optional[str] = None
1099
+ """
1100
+ entity name
1101
+ """
1102
+ isDefault: Optional[bool] = False
1103
+ """
1104
+ Identifies that entity is defaultable
1105
+ """
1106
+ metadata: Optional[Dict[str, Any]] = None
1107
+
1108
+
700
1109
  class VacuumConfigurationSchema(BaseModel):
701
1110
  direction: AxisEnum = Field(..., title="Axis Enum")
702
1111
  """
@@ -706,6 +1115,10 @@ class VacuumConfigurationSchema(BaseModel):
706
1115
  """
707
1116
  Size of the vacuum slab in angstroms
708
1117
  """
1118
+ crystal: CrystalSchema8 = Field(..., title="Crystal Schema")
1119
+ """
1120
+ A crystal structure, referencing the base material schema
1121
+ """
709
1122
 
710
1123
 
711
1124
  class SlabConfigurationSchema(BaseModel):
@@ -132,7 +132,7 @@ class ChemicalElements(Enum):
132
132
 
133
133
 
134
134
  class TerminationSchema(BaseModel):
135
- chemical_elements: Union[ChemicalElements, constr(pattern=r"^[A-Z][a-z]?([A-Z][a-z]?)*$")] = Field(
135
+ chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
136
136
  ..., title="Chemical Elements"
137
137
  )
138
138
  """