mat3ra-esse 2025.7.29.post0__py3-none-any.whl → 2025.8.6.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 (60) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw_x.py +6 -6
  4. mat3ra/esse/models/core/reusable/energy.py +2 -2
  5. mat3ra/esse/models/element.py +6 -6
  6. mat3ra/esse/models/material/__init__.py +14 -14
  7. mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +549 -2319
  8. mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +537 -2307
  9. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +206 -190
  10. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +56 -1826
  11. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +331 -311
  12. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +331 -311
  13. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +72 -72
  14. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +72 -72
  15. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +14 -14
  16. mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +14 -14
  17. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +150 -134
  18. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +86 -74
  19. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +84 -72
  20. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +84 -72
  21. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +70 -70
  22. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +14 -14
  23. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +14 -14
  24. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +14 -14
  25. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +14 -14
  26. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +14 -14
  27. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +14 -14
  28. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +16 -16
  29. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +14 -14
  30. mat3ra/esse/models/materials_category_components/entities/reusable/{repetitions.py → three_dimensional/repetitions.py} +1 -1
  31. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +14 -14
  32. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +14 -14
  33. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +14 -14
  34. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +14 -14
  35. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +148 -132
  36. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack.py +14 -2
  37. mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +14 -14
  38. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  39. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  40. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  41. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  42. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  43. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  44. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  45. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  46. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  47. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  48. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  49. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  50. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  51. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  52. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  53. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  54. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  55. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/METADATA +1 -1
  56. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/RECORD +59 -60
  57. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +0 -1151
  58. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/WHEEL +0 -0
  59. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/licenses/LICENSE.md +0 -0
  60. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/top_level.txt +0 -0
@@ -265,13 +265,13 @@ class Value(Enum):
265
265
  Og = "Og"
266
266
 
267
267
 
268
- class Value75(Enum):
268
+ class Value67(Enum):
269
269
  X = "X"
270
270
  Vac = "Vac"
271
271
 
272
272
 
273
273
  class AtomicElementSchema(BaseModel):
274
- value: Union[Value, Value75]
274
+ value: Union[Value, Value67]
275
275
  """
276
276
  All elements, including extra elements
277
277
  """
@@ -419,30 +419,30 @@ class VolumeSchema(BaseModel):
419
419
  value: float
420
420
 
421
421
 
422
- class Name272(Enum):
422
+ class Name240(Enum):
423
423
  density = "density"
424
424
 
425
425
 
426
- class Units109(Enum):
426
+ class Units97(Enum):
427
427
  g_cm_3 = "g/cm^3"
428
428
 
429
429
 
430
430
  class DensitySchema(BaseModel):
431
431
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
432
- units: Optional[Units109] = None
432
+ units: Optional[Units97] = None
433
433
  value: float
434
434
 
435
435
 
436
- class Units110(Enum):
436
+ class Units98(Enum):
437
437
  angstrom = "angstrom"
438
438
 
439
439
 
440
440
  class ScalarSchema(BaseModel):
441
- units: Optional[Units110] = None
441
+ units: Optional[Units98] = None
442
442
  value: float
443
443
 
444
444
 
445
- class Name273(Enum):
445
+ class Name241(Enum):
446
446
  symmetry = "symmetry"
447
447
 
448
448
 
@@ -462,7 +462,7 @@ class SymmetrySchema(BaseModel):
462
462
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
463
463
 
464
464
 
465
- class Name274(Enum):
465
+ class Name242(Enum):
466
466
  elemental_ratio = "elemental_ratio"
467
467
 
468
468
 
@@ -475,7 +475,7 @@ class ElementalRatio(BaseModel):
475
475
  """
476
476
 
477
477
 
478
- class Name275(Enum):
478
+ class Name243(Enum):
479
479
  p_norm = "p-norm"
480
480
 
481
481
 
@@ -488,7 +488,7 @@ class PNorm(BaseModel):
488
488
  value: float
489
489
 
490
490
 
491
- class Name276(Enum):
491
+ class Name244(Enum):
492
492
  inchi = "inchi"
493
493
 
494
494
 
@@ -497,7 +497,7 @@ class InChIRepresentationSchema(BaseModel):
497
497
  value: str
498
498
 
499
499
 
500
- class Name277(Enum):
500
+ class Name245(Enum):
501
501
  inchi_key = "inchi_key"
502
502
 
503
503
 
@@ -576,7 +576,7 @@ class FileSourceSchema(BaseModel):
576
576
  """
577
577
 
578
578
 
579
- class Name278(Enum):
579
+ class Name246(Enum):
580
580
  default = "default"
581
581
  atomsTooClose = "atomsTooClose"
582
582
  atomsOverlap = "atomsOverlap"
@@ -589,7 +589,7 @@ class Severity(Enum):
589
589
 
590
590
 
591
591
  class MaterialConsistencyCheckSchema(BaseModel):
592
- name: Name278
592
+ name: Name246
593
593
  """
594
594
  Name of the consistency check that is performed, which is listed in an enum.
595
595
  """
@@ -693,7 +693,7 @@ class AxisEnum(Enum):
693
693
  z = "z"
694
694
 
695
695
 
696
- class Value76(Enum):
696
+ class Value68(Enum):
697
697
  H = "H"
698
698
  He = "He"
699
699
  Li = "Li"
@@ -814,13 +814,13 @@ class Value76(Enum):
814
814
  Og = "Og"
815
815
 
816
816
 
817
- class Value77(Enum):
817
+ class Value69(Enum):
818
818
  X = "X"
819
819
  Vac = "Vac"
820
820
 
821
821
 
822
- class AtomicElementSchema37(BaseModel):
823
- value: Union[Value76, Value77]
822
+ class AtomicElementSchema33(BaseModel):
823
+ value: Union[Value68, Value69]
824
824
  """
825
825
  All elements, including extra elements
826
826
  """
@@ -830,8 +830,8 @@ class AtomicElementSchema37(BaseModel):
830
830
  """
831
831
 
832
832
 
833
- class BasisSchema35(BaseModel):
834
- elements: List[AtomicElementSchema37] = Field(..., title="atomic elements schema")
833
+ class BasisSchema31(BaseModel):
834
+ elements: List[AtomicElementSchema33] = Field(..., title="atomic elements schema")
835
835
  """
836
836
  atomic elements schema
837
837
  """
@@ -846,7 +846,7 @@ class BasisSchema35(BaseModel):
846
846
  """
847
847
 
848
848
 
849
- class LatticeVectorsSchema34(BaseModel):
849
+ class LatticeVectorsSchema30(BaseModel):
850
850
  a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
851
851
  b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
852
852
  c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
@@ -857,12 +857,12 @@ class LatticeVectorsSchema34(BaseModel):
857
857
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
858
858
 
859
859
 
860
- class LatticeUnitsSchema34(BaseModel):
860
+ class LatticeUnitsSchema30(BaseModel):
861
861
  length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
862
862
  angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
863
863
 
864
864
 
865
- class LatticeSchema34(BaseModel):
865
+ class LatticeSchema30(BaseModel):
866
866
  a: float
867
867
  """
868
868
  length of the first lattice vector
@@ -887,56 +887,56 @@ class LatticeSchema34(BaseModel):
887
887
  """
888
888
  angle between first and third lattice vector
889
889
  """
890
- vectors: Optional[LatticeVectorsSchema34] = Field(None, title="lattice vectors schema")
890
+ vectors: Optional[LatticeVectorsSchema30] = Field(None, title="lattice vectors schema")
891
891
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
892
- units: Optional[LatticeUnitsSchema34] = Field(
893
- default_factory=lambda: LatticeUnitsSchema34.model_validate({"length": "angstrom", "angle": "degree"}),
892
+ units: Optional[LatticeUnitsSchema30] = Field(
893
+ default_factory=lambda: LatticeUnitsSchema30.model_validate({"length": "angstrom", "angle": "degree"}),
894
894
  title="Lattice units schema",
895
895
  )
896
896
 
897
897
 
898
- class Name279(Enum):
898
+ class Name247(Enum):
899
899
  volume = "volume"
900
900
 
901
901
 
902
- class Units111(Enum):
902
+ class Units99(Enum):
903
903
  angstrom_3 = "angstrom^3"
904
904
 
905
905
 
906
- class VolumeSchema34(BaseModel):
906
+ class VolumeSchema30(BaseModel):
907
907
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
908
- units: Optional[Units111] = None
908
+ units: Optional[Units99] = None
909
909
  value: float
910
910
 
911
911
 
912
- class Name280(Enum):
912
+ class Name248(Enum):
913
913
  density = "density"
914
914
 
915
915
 
916
- class Units112(Enum):
916
+ class Units100(Enum):
917
917
  g_cm_3 = "g/cm^3"
918
918
 
919
919
 
920
- class DensitySchema34(BaseModel):
920
+ class DensitySchema30(BaseModel):
921
921
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
922
- units: Optional[Units112] = None
922
+ units: Optional[Units100] = None
923
923
  value: float
924
924
 
925
925
 
926
- class Units113(Enum):
926
+ class Units101(Enum):
927
927
  angstrom = "angstrom"
928
928
 
929
929
 
930
- class ScalarSchema35(BaseModel):
931
- units: Optional[Units113] = None
930
+ class ScalarSchema31(BaseModel):
931
+ units: Optional[Units101] = None
932
932
  value: float
933
933
 
934
934
 
935
- class Name281(Enum):
935
+ class Name249(Enum):
936
936
  symmetry = "symmetry"
937
937
 
938
938
 
939
- class SymmetrySchema34(BaseModel):
939
+ class SymmetrySchema30(BaseModel):
940
940
  pointGroupSymbol: Optional[str] = None
941
941
  """
942
942
  point group symbol in Schoenflies notation
@@ -945,18 +945,18 @@ class SymmetrySchema34(BaseModel):
945
945
  """
946
946
  space group symbol in Hermann–Mauguin notation
947
947
  """
948
- tolerance: Optional[ScalarSchema35] = Field(None, title="scalar schema")
948
+ tolerance: Optional[ScalarSchema31] = Field(None, title="scalar schema")
949
949
  """
950
950
  tolerance used for symmetry calculation
951
951
  """
952
952
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
953
953
 
954
954
 
955
- class Name282(Enum):
955
+ class Name250(Enum):
956
956
  elemental_ratio = "elemental_ratio"
957
957
 
958
958
 
959
- class ElementalRatio34(BaseModel):
959
+ class ElementalRatio30(BaseModel):
960
960
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
961
961
  value: confloat(ge=0.0, le=1.0)
962
962
  element: Optional[str] = None
@@ -965,11 +965,11 @@ class ElementalRatio34(BaseModel):
965
965
  """
966
966
 
967
967
 
968
- class Name283(Enum):
968
+ class Name251(Enum):
969
969
  p_norm = "p-norm"
970
970
 
971
971
 
972
- class PNorm34(BaseModel):
972
+ class PNorm30(BaseModel):
973
973
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
974
974
  degree: Optional[int] = None
975
975
  """
@@ -978,56 +978,56 @@ class PNorm34(BaseModel):
978
978
  value: float
979
979
 
980
980
 
981
- class Name284(Enum):
981
+ class Name252(Enum):
982
982
  inchi = "inchi"
983
983
 
984
984
 
985
- class InChIRepresentationSchema34(BaseModel):
985
+ class InChIRepresentationSchema30(BaseModel):
986
986
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
987
987
  value: str
988
988
 
989
989
 
990
- class Name285(Enum):
990
+ class Name253(Enum):
991
991
  inchi_key = "inchi_key"
992
992
 
993
993
 
994
- class InChIKeyRepresentationSchema34(BaseModel):
994
+ class InChIKeyRepresentationSchema30(BaseModel):
995
995
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
996
996
  value: str
997
997
 
998
998
 
999
- class DerivedPropertiesSchema34(
999
+ class DerivedPropertiesSchema30(
1000
1000
  RootModel[
1001
1001
  Union[
1002
- VolumeSchema34,
1003
- DensitySchema34,
1004
- SymmetrySchema34,
1005
- ElementalRatio34,
1006
- PNorm34,
1007
- InChIRepresentationSchema34,
1008
- InChIKeyRepresentationSchema34,
1002
+ VolumeSchema30,
1003
+ DensitySchema30,
1004
+ SymmetrySchema30,
1005
+ ElementalRatio30,
1006
+ PNorm30,
1007
+ InChIRepresentationSchema30,
1008
+ InChIKeyRepresentationSchema30,
1009
1009
  ]
1010
1010
  ]
1011
1011
  ):
1012
1012
  root: Union[
1013
- VolumeSchema34,
1014
- DensitySchema34,
1015
- SymmetrySchema34,
1016
- ElementalRatio34,
1017
- PNorm34,
1018
- InChIRepresentationSchema34,
1019
- InChIKeyRepresentationSchema34,
1013
+ VolumeSchema30,
1014
+ DensitySchema30,
1015
+ SymmetrySchema30,
1016
+ ElementalRatio30,
1017
+ PNorm30,
1018
+ InChIRepresentationSchema30,
1019
+ InChIKeyRepresentationSchema30,
1020
1020
  ] = Field(..., discriminator="name")
1021
1021
 
1022
1022
 
1023
- class Name286(Enum):
1023
+ class Name254(Enum):
1024
1024
  default = "default"
1025
1025
  atomsTooClose = "atomsTooClose"
1026
1026
  atomsOverlap = "atomsOverlap"
1027
1027
 
1028
1028
 
1029
- class MaterialConsistencyCheckSchema34(BaseModel):
1030
- name: Name286
1029
+ class MaterialConsistencyCheckSchema30(BaseModel):
1030
+ name: Name254
1031
1031
  """
1032
1032
  Name of the consistency check that is performed, which is listed in an enum.
1033
1033
  """
@@ -1045,7 +1045,7 @@ class MaterialConsistencyCheckSchema34(BaseModel):
1045
1045
  """
1046
1046
 
1047
1047
 
1048
- class CrystalSchema34(BaseModel):
1048
+ class CrystalSchema30(BaseModel):
1049
1049
  formula: Optional[str] = None
1050
1050
  """
1051
1051
  reduced chemical formula
@@ -1054,9 +1054,9 @@ class CrystalSchema34(BaseModel):
1054
1054
  """
1055
1055
  chemical formula based on the number of atoms of each element in the supercell
1056
1056
  """
1057
- basis: BasisSchema35 = Field(..., title="basis schema")
1058
- lattice: LatticeSchema34 = Field(..., title="lattice schema")
1059
- derivedProperties: Optional[List[DerivedPropertiesSchema34]] = Field(None, title="derived properties schema")
1057
+ basis: BasisSchema31 = Field(..., title="basis schema")
1058
+ lattice: LatticeSchema30 = Field(..., title="lattice schema")
1059
+ derivedProperties: Optional[List[DerivedPropertiesSchema30]] = Field(None, title="derived properties schema")
1060
1060
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
1061
1061
  """
1062
1062
  information about a database source
@@ -1077,7 +1077,7 @@ class CrystalSchema34(BaseModel):
1077
1077
  """
1078
1078
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
1079
1079
  """
1080
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema34]] = None
1080
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema30]] = None
1081
1081
  field_id: Optional[str] = Field(None, alias="_id")
1082
1082
  """
1083
1083
  entity identity
@@ -1111,12 +1111,20 @@ class VacuumConfigurationSchema(BaseModel):
1111
1111
  """
1112
1112
  Size of the vacuum slab in angstroms
1113
1113
  """
1114
- crystal: CrystalSchema34 = Field(..., title="Crystal Schema")
1114
+ crystal: CrystalSchema30 = Field(..., title="Crystal Schema")
1115
1115
  """
1116
1116
  A crystal structure, referencing the base material schema
1117
1117
  """
1118
1118
 
1119
1119
 
1120
+ class ObjectWithId(BaseModel):
1121
+ value: Optional[confloat(ge=0.0)] = None
1122
+ id: int
1123
+ """
1124
+ integer id of this entry
1125
+ """
1126
+
1127
+
1120
1128
  class SlabConfigurationSchema(BaseModel):
1121
1129
  stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field(
1122
1130
  ..., max_length=2, min_length=2
@@ -1125,6 +1133,10 @@ class SlabConfigurationSchema(BaseModel):
1125
1133
  """
1126
1134
  Enum for axis types
1127
1135
  """
1136
+ gaps: Optional[List[ObjectWithId]] = None
1137
+ """
1138
+ Gap distances between stack components as an array of objects with id and value
1139
+ """
1128
1140
 
1129
1141
 
1130
1142
  class SupercellMatrix2DSchemaItem(RootModel[List[int]]):
@@ -1135,7 +1147,7 @@ class ArrayOf3NumberElementsSchema(RootModel[List[float]]):
1135
1147
  root: List[float] = Field(..., title="array of 3 number elements schema")
1136
1148
 
1137
1149
 
1138
- class TerminationSchema15(BaseModel):
1150
+ class TerminationSchema13(BaseModel):
1139
1151
  chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
1140
1152
  ..., title="Chemical Elements"
1141
1153
  )
@@ -1148,7 +1160,7 @@ class TerminationSchema15(BaseModel):
1148
1160
  """
1149
1161
 
1150
1162
 
1151
- class Value78(Enum):
1163
+ class Value70(Enum):
1152
1164
  H = "H"
1153
1165
  He = "He"
1154
1166
  Li = "Li"
@@ -1269,13 +1281,13 @@ class Value78(Enum):
1269
1281
  Og = "Og"
1270
1282
 
1271
1283
 
1272
- class Value79(Enum):
1284
+ class Value71(Enum):
1273
1285
  X = "X"
1274
1286
  Vac = "Vac"
1275
1287
 
1276
1288
 
1277
- class AtomicElementSchema38(BaseModel):
1278
- value: Union[Value78, Value79]
1289
+ class AtomicElementSchema34(BaseModel):
1290
+ value: Union[Value70, Value71]
1279
1291
  """
1280
1292
  All elements, including extra elements
1281
1293
  """
@@ -1285,8 +1297,8 @@ class AtomicElementSchema38(BaseModel):
1285
1297
  """
1286
1298
 
1287
1299
 
1288
- class BasisSchema36(BaseModel):
1289
- elements: List[AtomicElementSchema38] = Field(..., title="atomic elements schema")
1300
+ class BasisSchema32(BaseModel):
1301
+ elements: List[AtomicElementSchema34] = Field(..., title="atomic elements schema")
1290
1302
  """
1291
1303
  atomic elements schema
1292
1304
  """
@@ -1301,7 +1313,7 @@ class BasisSchema36(BaseModel):
1301
1313
  """
1302
1314
 
1303
1315
 
1304
- class LatticeVectorsSchema35(BaseModel):
1316
+ class LatticeVectorsSchema31(BaseModel):
1305
1317
  a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1306
1318
  b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1307
1319
  c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
@@ -1312,12 +1324,12 @@ class LatticeVectorsSchema35(BaseModel):
1312
1324
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
1313
1325
 
1314
1326
 
1315
- class LatticeUnitsSchema35(BaseModel):
1327
+ class LatticeUnitsSchema31(BaseModel):
1316
1328
  length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
1317
1329
  angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
1318
1330
 
1319
1331
 
1320
- class LatticeSchema35(BaseModel):
1332
+ class LatticeSchema31(BaseModel):
1321
1333
  a: float
1322
1334
  """
1323
1335
  length of the first lattice vector
@@ -1342,56 +1354,56 @@ class LatticeSchema35(BaseModel):
1342
1354
  """
1343
1355
  angle between first and third lattice vector
1344
1356
  """
1345
- vectors: Optional[LatticeVectorsSchema35] = Field(None, title="lattice vectors schema")
1357
+ vectors: Optional[LatticeVectorsSchema31] = Field(None, title="lattice vectors schema")
1346
1358
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
1347
- units: Optional[LatticeUnitsSchema35] = Field(
1348
- default_factory=lambda: LatticeUnitsSchema35.model_validate({"length": "angstrom", "angle": "degree"}),
1359
+ units: Optional[LatticeUnitsSchema31] = Field(
1360
+ default_factory=lambda: LatticeUnitsSchema31.model_validate({"length": "angstrom", "angle": "degree"}),
1349
1361
  title="Lattice units schema",
1350
1362
  )
1351
1363
 
1352
1364
 
1353
- class Name287(Enum):
1365
+ class Name255(Enum):
1354
1366
  volume = "volume"
1355
1367
 
1356
1368
 
1357
- class Units114(Enum):
1369
+ class Units102(Enum):
1358
1370
  angstrom_3 = "angstrom^3"
1359
1371
 
1360
1372
 
1361
- class VolumeSchema35(BaseModel):
1373
+ class VolumeSchema31(BaseModel):
1362
1374
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1363
- units: Optional[Units114] = None
1375
+ units: Optional[Units102] = None
1364
1376
  value: float
1365
1377
 
1366
1378
 
1367
- class Name288(Enum):
1379
+ class Name256(Enum):
1368
1380
  density = "density"
1369
1381
 
1370
1382
 
1371
- class Units115(Enum):
1383
+ class Units103(Enum):
1372
1384
  g_cm_3 = "g/cm^3"
1373
1385
 
1374
1386
 
1375
- class DensitySchema35(BaseModel):
1387
+ class DensitySchema31(BaseModel):
1376
1388
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1377
- units: Optional[Units115] = None
1389
+ units: Optional[Units103] = None
1378
1390
  value: float
1379
1391
 
1380
1392
 
1381
- class Units116(Enum):
1393
+ class Units104(Enum):
1382
1394
  angstrom = "angstrom"
1383
1395
 
1384
1396
 
1385
- class ScalarSchema36(BaseModel):
1386
- units: Optional[Units116] = None
1397
+ class ScalarSchema32(BaseModel):
1398
+ units: Optional[Units104] = None
1387
1399
  value: float
1388
1400
 
1389
1401
 
1390
- class Name289(Enum):
1402
+ class Name257(Enum):
1391
1403
  symmetry = "symmetry"
1392
1404
 
1393
1405
 
1394
- class SymmetrySchema35(BaseModel):
1406
+ class SymmetrySchema31(BaseModel):
1395
1407
  pointGroupSymbol: Optional[str] = None
1396
1408
  """
1397
1409
  point group symbol in Schoenflies notation
@@ -1400,18 +1412,18 @@ class SymmetrySchema35(BaseModel):
1400
1412
  """
1401
1413
  space group symbol in Hermann–Mauguin notation
1402
1414
  """
1403
- tolerance: Optional[ScalarSchema36] = Field(None, title="scalar schema")
1415
+ tolerance: Optional[ScalarSchema32] = Field(None, title="scalar schema")
1404
1416
  """
1405
1417
  tolerance used for symmetry calculation
1406
1418
  """
1407
1419
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
1408
1420
 
1409
1421
 
1410
- class Name290(Enum):
1422
+ class Name258(Enum):
1411
1423
  elemental_ratio = "elemental_ratio"
1412
1424
 
1413
1425
 
1414
- class ElementalRatio35(BaseModel):
1426
+ class ElementalRatio31(BaseModel):
1415
1427
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
1416
1428
  value: confloat(ge=0.0, le=1.0)
1417
1429
  element: Optional[str] = None
@@ -1420,11 +1432,11 @@ class ElementalRatio35(BaseModel):
1420
1432
  """
1421
1433
 
1422
1434
 
1423
- class Name291(Enum):
1435
+ class Name259(Enum):
1424
1436
  p_norm = "p-norm"
1425
1437
 
1426
1438
 
1427
- class PNorm35(BaseModel):
1439
+ class PNorm31(BaseModel):
1428
1440
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1429
1441
  degree: Optional[int] = None
1430
1442
  """
@@ -1433,56 +1445,56 @@ class PNorm35(BaseModel):
1433
1445
  value: float
1434
1446
 
1435
1447
 
1436
- class Name292(Enum):
1448
+ class Name260(Enum):
1437
1449
  inchi = "inchi"
1438
1450
 
1439
1451
 
1440
- class InChIRepresentationSchema35(BaseModel):
1452
+ class InChIRepresentationSchema31(BaseModel):
1441
1453
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1442
1454
  value: str
1443
1455
 
1444
1456
 
1445
- class Name293(Enum):
1457
+ class Name261(Enum):
1446
1458
  inchi_key = "inchi_key"
1447
1459
 
1448
1460
 
1449
- class InChIKeyRepresentationSchema35(BaseModel):
1461
+ class InChIKeyRepresentationSchema31(BaseModel):
1450
1462
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1451
1463
  value: str
1452
1464
 
1453
1465
 
1454
- class DerivedPropertiesSchema35(
1466
+ class DerivedPropertiesSchema31(
1455
1467
  RootModel[
1456
1468
  Union[
1457
- VolumeSchema35,
1458
- DensitySchema35,
1459
- SymmetrySchema35,
1460
- ElementalRatio35,
1461
- PNorm35,
1462
- InChIRepresentationSchema35,
1463
- InChIKeyRepresentationSchema35,
1469
+ VolumeSchema31,
1470
+ DensitySchema31,
1471
+ SymmetrySchema31,
1472
+ ElementalRatio31,
1473
+ PNorm31,
1474
+ InChIRepresentationSchema31,
1475
+ InChIKeyRepresentationSchema31,
1464
1476
  ]
1465
1477
  ]
1466
1478
  ):
1467
1479
  root: Union[
1468
- VolumeSchema35,
1469
- DensitySchema35,
1470
- SymmetrySchema35,
1471
- ElementalRatio35,
1472
- PNorm35,
1473
- InChIRepresentationSchema35,
1474
- InChIKeyRepresentationSchema35,
1480
+ VolumeSchema31,
1481
+ DensitySchema31,
1482
+ SymmetrySchema31,
1483
+ ElementalRatio31,
1484
+ PNorm31,
1485
+ InChIRepresentationSchema31,
1486
+ InChIKeyRepresentationSchema31,
1475
1487
  ] = Field(..., discriminator="name")
1476
1488
 
1477
1489
 
1478
- class Name294(Enum):
1490
+ class Name262(Enum):
1479
1491
  default = "default"
1480
1492
  atomsTooClose = "atomsTooClose"
1481
1493
  atomsOverlap = "atomsOverlap"
1482
1494
 
1483
1495
 
1484
- class MaterialConsistencyCheckSchema35(BaseModel):
1485
- name: Name294
1496
+ class MaterialConsistencyCheckSchema31(BaseModel):
1497
+ name: Name262
1486
1498
  """
1487
1499
  Name of the consistency check that is performed, which is listed in an enum.
1488
1500
  """
@@ -1500,7 +1512,7 @@ class MaterialConsistencyCheckSchema35(BaseModel):
1500
1512
  """
1501
1513
 
1502
1514
 
1503
- class CrystalSchema35(BaseModel):
1515
+ class CrystalSchema31(BaseModel):
1504
1516
  formula: Optional[str] = None
1505
1517
  """
1506
1518
  reduced chemical formula
@@ -1509,9 +1521,9 @@ class CrystalSchema35(BaseModel):
1509
1521
  """
1510
1522
  chemical formula based on the number of atoms of each element in the supercell
1511
1523
  """
1512
- basis: BasisSchema36 = Field(..., title="basis schema")
1513
- lattice: LatticeSchema35 = Field(..., title="lattice schema")
1514
- derivedProperties: Optional[List[DerivedPropertiesSchema35]] = Field(None, title="derived properties schema")
1524
+ basis: BasisSchema32 = Field(..., title="basis schema")
1525
+ lattice: LatticeSchema31 = Field(..., title="lattice schema")
1526
+ derivedProperties: Optional[List[DerivedPropertiesSchema31]] = Field(None, title="derived properties schema")
1515
1527
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
1516
1528
  """
1517
1529
  information about a database source
@@ -1532,7 +1544,7 @@ class CrystalSchema35(BaseModel):
1532
1544
  """
1533
1545
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
1534
1546
  """
1535
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema35]] = None
1547
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema31]] = None
1536
1548
  field_id: Optional[str] = Field(None, alias="_id")
1537
1549
  """
1538
1550
  entity identity
@@ -1557,8 +1569,8 @@ class CrystalSchema35(BaseModel):
1557
1569
  metadata: Optional[Dict[str, Any]] = None
1558
1570
 
1559
1571
 
1560
- class AtomicLayersUniqueRepeatedSchema13(BaseModel):
1561
- termination_top: TerminationSchema15 = Field(..., title="Termination Schema")
1572
+ class AtomicLayersUniqueRepeatedSchema11(BaseModel):
1573
+ termination_top: TerminationSchema13 = Field(..., title="Termination Schema")
1562
1574
  """
1563
1575
  Defines a specific termination of a slab
1564
1576
  """
@@ -1570,7 +1582,7 @@ class AtomicLayersUniqueRepeatedSchema13(BaseModel):
1570
1582
  """
1571
1583
  Miller indices [h, k, l] defining crystallographic planes
1572
1584
  """
1573
- crystal: CrystalSchema35 = Field(..., title="Crystal Schema")
1585
+ crystal: CrystalSchema31 = Field(..., title="Crystal Schema")
1574
1586
  """
1575
1587
  A crystal structure, referencing the base material schema
1576
1588
  """
@@ -1580,7 +1592,7 @@ class AtomicLayersUniqueRepeatedSchema13(BaseModel):
1580
1592
  """
1581
1593
 
1582
1594
 
1583
- class Value80(Enum):
1595
+ class Value72(Enum):
1584
1596
  H = "H"
1585
1597
  He = "He"
1586
1598
  Li = "Li"
@@ -1701,13 +1713,13 @@ class Value80(Enum):
1701
1713
  Og = "Og"
1702
1714
 
1703
1715
 
1704
- class Value81(Enum):
1716
+ class Value73(Enum):
1705
1717
  X = "X"
1706
1718
  Vac = "Vac"
1707
1719
 
1708
1720
 
1709
- class AtomicElementSchema39(BaseModel):
1710
- value: Union[Value80, Value81]
1721
+ class AtomicElementSchema35(BaseModel):
1722
+ value: Union[Value72, Value73]
1711
1723
  """
1712
1724
  All elements, including extra elements
1713
1725
  """
@@ -1717,8 +1729,8 @@ class AtomicElementSchema39(BaseModel):
1717
1729
  """
1718
1730
 
1719
1731
 
1720
- class BasisSchema37(BaseModel):
1721
- elements: List[AtomicElementSchema39] = Field(..., title="atomic elements schema")
1732
+ class BasisSchema33(BaseModel):
1733
+ elements: List[AtomicElementSchema35] = Field(..., title="atomic elements schema")
1722
1734
  """
1723
1735
  atomic elements schema
1724
1736
  """
@@ -1733,7 +1745,7 @@ class BasisSchema37(BaseModel):
1733
1745
  """
1734
1746
 
1735
1747
 
1736
- class LatticeVectorsSchema36(BaseModel):
1748
+ class LatticeVectorsSchema32(BaseModel):
1737
1749
  a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1738
1750
  b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1739
1751
  c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
@@ -1744,12 +1756,12 @@ class LatticeVectorsSchema36(BaseModel):
1744
1756
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
1745
1757
 
1746
1758
 
1747
- class LatticeUnitsSchema36(BaseModel):
1759
+ class LatticeUnitsSchema32(BaseModel):
1748
1760
  length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
1749
1761
  angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
1750
1762
 
1751
1763
 
1752
- class LatticeSchema36(BaseModel):
1764
+ class LatticeSchema32(BaseModel):
1753
1765
  a: float
1754
1766
  """
1755
1767
  length of the first lattice vector
@@ -1774,56 +1786,56 @@ class LatticeSchema36(BaseModel):
1774
1786
  """
1775
1787
  angle between first and third lattice vector
1776
1788
  """
1777
- vectors: Optional[LatticeVectorsSchema36] = Field(None, title="lattice vectors schema")
1789
+ vectors: Optional[LatticeVectorsSchema32] = Field(None, title="lattice vectors schema")
1778
1790
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
1779
- units: Optional[LatticeUnitsSchema36] = Field(
1780
- default_factory=lambda: LatticeUnitsSchema36.model_validate({"length": "angstrom", "angle": "degree"}),
1791
+ units: Optional[LatticeUnitsSchema32] = Field(
1792
+ default_factory=lambda: LatticeUnitsSchema32.model_validate({"length": "angstrom", "angle": "degree"}),
1781
1793
  title="Lattice units schema",
1782
1794
  )
1783
1795
 
1784
1796
 
1785
- class Name295(Enum):
1797
+ class Name263(Enum):
1786
1798
  volume = "volume"
1787
1799
 
1788
1800
 
1789
- class Units117(Enum):
1801
+ class Units105(Enum):
1790
1802
  angstrom_3 = "angstrom^3"
1791
1803
 
1792
1804
 
1793
- class VolumeSchema36(BaseModel):
1805
+ class VolumeSchema32(BaseModel):
1794
1806
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1795
- units: Optional[Units117] = None
1807
+ units: Optional[Units105] = None
1796
1808
  value: float
1797
1809
 
1798
1810
 
1799
- class Name296(Enum):
1811
+ class Name264(Enum):
1800
1812
  density = "density"
1801
1813
 
1802
1814
 
1803
- class Units118(Enum):
1815
+ class Units106(Enum):
1804
1816
  g_cm_3 = "g/cm^3"
1805
1817
 
1806
1818
 
1807
- class DensitySchema36(BaseModel):
1819
+ class DensitySchema32(BaseModel):
1808
1820
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1809
- units: Optional[Units118] = None
1821
+ units: Optional[Units106] = None
1810
1822
  value: float
1811
1823
 
1812
1824
 
1813
- class Units119(Enum):
1825
+ class Units107(Enum):
1814
1826
  angstrom = "angstrom"
1815
1827
 
1816
1828
 
1817
- class ScalarSchema37(BaseModel):
1818
- units: Optional[Units119] = None
1829
+ class ScalarSchema33(BaseModel):
1830
+ units: Optional[Units107] = None
1819
1831
  value: float
1820
1832
 
1821
1833
 
1822
- class Name297(Enum):
1834
+ class Name265(Enum):
1823
1835
  symmetry = "symmetry"
1824
1836
 
1825
1837
 
1826
- class SymmetrySchema36(BaseModel):
1838
+ class SymmetrySchema32(BaseModel):
1827
1839
  pointGroupSymbol: Optional[str] = None
1828
1840
  """
1829
1841
  point group symbol in Schoenflies notation
@@ -1832,18 +1844,18 @@ class SymmetrySchema36(BaseModel):
1832
1844
  """
1833
1845
  space group symbol in Hermann–Mauguin notation
1834
1846
  """
1835
- tolerance: Optional[ScalarSchema37] = Field(None, title="scalar schema")
1847
+ tolerance: Optional[ScalarSchema33] = Field(None, title="scalar schema")
1836
1848
  """
1837
1849
  tolerance used for symmetry calculation
1838
1850
  """
1839
1851
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
1840
1852
 
1841
1853
 
1842
- class Name298(Enum):
1854
+ class Name266(Enum):
1843
1855
  elemental_ratio = "elemental_ratio"
1844
1856
 
1845
1857
 
1846
- class ElementalRatio36(BaseModel):
1858
+ class ElementalRatio32(BaseModel):
1847
1859
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
1848
1860
  value: confloat(ge=0.0, le=1.0)
1849
1861
  element: Optional[str] = None
@@ -1852,11 +1864,11 @@ class ElementalRatio36(BaseModel):
1852
1864
  """
1853
1865
 
1854
1866
 
1855
- class Name299(Enum):
1867
+ class Name267(Enum):
1856
1868
  p_norm = "p-norm"
1857
1869
 
1858
1870
 
1859
- class PNorm36(BaseModel):
1871
+ class PNorm32(BaseModel):
1860
1872
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1861
1873
  degree: Optional[int] = None
1862
1874
  """
@@ -1865,56 +1877,56 @@ class PNorm36(BaseModel):
1865
1877
  value: float
1866
1878
 
1867
1879
 
1868
- class Name300(Enum):
1880
+ class Name268(Enum):
1869
1881
  inchi = "inchi"
1870
1882
 
1871
1883
 
1872
- class InChIRepresentationSchema36(BaseModel):
1884
+ class InChIRepresentationSchema32(BaseModel):
1873
1885
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1874
1886
  value: str
1875
1887
 
1876
1888
 
1877
- class Name301(Enum):
1889
+ class Name269(Enum):
1878
1890
  inchi_key = "inchi_key"
1879
1891
 
1880
1892
 
1881
- class InChIKeyRepresentationSchema36(BaseModel):
1893
+ class InChIKeyRepresentationSchema32(BaseModel):
1882
1894
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1883
1895
  value: str
1884
1896
 
1885
1897
 
1886
- class DerivedPropertiesSchema36(
1898
+ class DerivedPropertiesSchema32(
1887
1899
  RootModel[
1888
1900
  Union[
1889
- VolumeSchema36,
1890
- DensitySchema36,
1891
- SymmetrySchema36,
1892
- ElementalRatio36,
1893
- PNorm36,
1894
- InChIRepresentationSchema36,
1895
- InChIKeyRepresentationSchema36,
1901
+ VolumeSchema32,
1902
+ DensitySchema32,
1903
+ SymmetrySchema32,
1904
+ ElementalRatio32,
1905
+ PNorm32,
1906
+ InChIRepresentationSchema32,
1907
+ InChIKeyRepresentationSchema32,
1896
1908
  ]
1897
1909
  ]
1898
1910
  ):
1899
1911
  root: Union[
1900
- VolumeSchema36,
1901
- DensitySchema36,
1902
- SymmetrySchema36,
1903
- ElementalRatio36,
1904
- PNorm36,
1905
- InChIRepresentationSchema36,
1906
- InChIKeyRepresentationSchema36,
1912
+ VolumeSchema32,
1913
+ DensitySchema32,
1914
+ SymmetrySchema32,
1915
+ ElementalRatio32,
1916
+ PNorm32,
1917
+ InChIRepresentationSchema32,
1918
+ InChIKeyRepresentationSchema32,
1907
1919
  ] = Field(..., discriminator="name")
1908
1920
 
1909
1921
 
1910
- class Name302(Enum):
1922
+ class Name270(Enum):
1911
1923
  default = "default"
1912
1924
  atomsTooClose = "atomsTooClose"
1913
1925
  atomsOverlap = "atomsOverlap"
1914
1926
 
1915
1927
 
1916
- class MaterialConsistencyCheckSchema36(BaseModel):
1917
- name: Name302
1928
+ class MaterialConsistencyCheckSchema32(BaseModel):
1929
+ name: Name270
1918
1930
  """
1919
1931
  Name of the consistency check that is performed, which is listed in an enum.
1920
1932
  """
@@ -1932,7 +1944,7 @@ class MaterialConsistencyCheckSchema36(BaseModel):
1932
1944
  """
1933
1945
 
1934
1946
 
1935
- class CrystalSchema36(BaseModel):
1947
+ class CrystalSchema32(BaseModel):
1936
1948
  formula: Optional[str] = None
1937
1949
  """
1938
1950
  reduced chemical formula
@@ -1941,9 +1953,9 @@ class CrystalSchema36(BaseModel):
1941
1953
  """
1942
1954
  chemical formula based on the number of atoms of each element in the supercell
1943
1955
  """
1944
- basis: BasisSchema37 = Field(..., title="basis schema")
1945
- lattice: LatticeSchema36 = Field(..., title="lattice schema")
1946
- derivedProperties: Optional[List[DerivedPropertiesSchema36]] = Field(None, title="derived properties schema")
1956
+ basis: BasisSchema33 = Field(..., title="basis schema")
1957
+ lattice: LatticeSchema32 = Field(..., title="lattice schema")
1958
+ derivedProperties: Optional[List[DerivedPropertiesSchema32]] = Field(None, title="derived properties schema")
1947
1959
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
1948
1960
  """
1949
1961
  information about a database source
@@ -1964,7 +1976,7 @@ class CrystalSchema36(BaseModel):
1964
1976
  """
1965
1977
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
1966
1978
  """
1967
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema36]] = None
1979
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema32]] = None
1968
1980
  field_id: Optional[str] = Field(None, alias="_id")
1969
1981
  """
1970
1982
  entity identity
@@ -1989,7 +2001,7 @@ class CrystalSchema36(BaseModel):
1989
2001
  metadata: Optional[Dict[str, Any]] = None
1990
2002
 
1991
2003
 
1992
- class VacuumConfigurationSchema16(BaseModel):
2004
+ class VacuumConfigurationSchema14(BaseModel):
1993
2005
  direction: AxisEnum = Field(..., title="Axis Enum")
1994
2006
  """
1995
2007
  Enum for axis types
@@ -1998,7 +2010,7 @@ class VacuumConfigurationSchema16(BaseModel):
1998
2010
  """
1999
2011
  Size of the vacuum slab in angstroms
2000
2012
  """
2001
- crystal: CrystalSchema36 = Field(..., title="Crystal Schema")
2013
+ crystal: CrystalSchema32 = Field(..., title="Crystal Schema")
2002
2014
  """
2003
2015
  A crystal structure, referencing the base material schema
2004
2016
  """
@@ -2017,16 +2029,20 @@ class SlabStrainedSupercellConfigurationSchema(BaseModel):
2017
2029
  strain_matrix: List[ArrayOf3NumberElementsSchema] = Field(
2018
2030
  ..., max_length=3, min_length=3, title="matrix 3x3 schema"
2019
2031
  )
2020
- stack_components: List[Union[AtomicLayersUniqueRepeatedSchema13, VacuumConfigurationSchema16]] = Field(
2032
+ stack_components: List[Union[AtomicLayersUniqueRepeatedSchema11, VacuumConfigurationSchema14]] = Field(
2021
2033
  ..., max_length=2, min_length=2
2022
2034
  )
2023
2035
  direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
2024
2036
  """
2025
2037
  Enum for axis types
2026
2038
  """
2039
+ gaps: Optional[List[ObjectWithId]] = None
2040
+ """
2041
+ Gap distances between stack components as an array of objects with id and value
2042
+ """
2027
2043
 
2028
2044
 
2029
- class TerminationSchema16(BaseModel):
2045
+ class TerminationSchema14(BaseModel):
2030
2046
  chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
2031
2047
  ..., title="Chemical Elements"
2032
2048
  )
@@ -2039,7 +2055,7 @@ class TerminationSchema16(BaseModel):
2039
2055
  """
2040
2056
 
2041
2057
 
2042
- class Value82(Enum):
2058
+ class Value74(Enum):
2043
2059
  H = "H"
2044
2060
  He = "He"
2045
2061
  Li = "Li"
@@ -2160,13 +2176,13 @@ class Value82(Enum):
2160
2176
  Og = "Og"
2161
2177
 
2162
2178
 
2163
- class Value83(Enum):
2179
+ class Value75(Enum):
2164
2180
  X = "X"
2165
2181
  Vac = "Vac"
2166
2182
 
2167
2183
 
2168
- class AtomicElementSchema40(BaseModel):
2169
- value: Union[Value82, Value83]
2184
+ class AtomicElementSchema36(BaseModel):
2185
+ value: Union[Value74, Value75]
2170
2186
  """
2171
2187
  All elements, including extra elements
2172
2188
  """
@@ -2176,8 +2192,8 @@ class AtomicElementSchema40(BaseModel):
2176
2192
  """
2177
2193
 
2178
2194
 
2179
- class BasisSchema38(BaseModel):
2180
- elements: List[AtomicElementSchema40] = Field(..., title="atomic elements schema")
2195
+ class BasisSchema34(BaseModel):
2196
+ elements: List[AtomicElementSchema36] = Field(..., title="atomic elements schema")
2181
2197
  """
2182
2198
  atomic elements schema
2183
2199
  """
@@ -2192,7 +2208,7 @@ class BasisSchema38(BaseModel):
2192
2208
  """
2193
2209
 
2194
2210
 
2195
- class LatticeVectorsSchema37(BaseModel):
2211
+ class LatticeVectorsSchema33(BaseModel):
2196
2212
  a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
2197
2213
  b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
2198
2214
  c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
@@ -2203,12 +2219,12 @@ class LatticeVectorsSchema37(BaseModel):
2203
2219
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
2204
2220
 
2205
2221
 
2206
- class LatticeUnitsSchema37(BaseModel):
2222
+ class LatticeUnitsSchema33(BaseModel):
2207
2223
  length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
2208
2224
  angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
2209
2225
 
2210
2226
 
2211
- class LatticeSchema37(BaseModel):
2227
+ class LatticeSchema33(BaseModel):
2212
2228
  a: float
2213
2229
  """
2214
2230
  length of the first lattice vector
@@ -2233,56 +2249,56 @@ class LatticeSchema37(BaseModel):
2233
2249
  """
2234
2250
  angle between first and third lattice vector
2235
2251
  """
2236
- vectors: Optional[LatticeVectorsSchema37] = Field(None, title="lattice vectors schema")
2252
+ vectors: Optional[LatticeVectorsSchema33] = Field(None, title="lattice vectors schema")
2237
2253
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
2238
- units: Optional[LatticeUnitsSchema37] = Field(
2239
- default_factory=lambda: LatticeUnitsSchema37.model_validate({"length": "angstrom", "angle": "degree"}),
2254
+ units: Optional[LatticeUnitsSchema33] = Field(
2255
+ default_factory=lambda: LatticeUnitsSchema33.model_validate({"length": "angstrom", "angle": "degree"}),
2240
2256
  title="Lattice units schema",
2241
2257
  )
2242
2258
 
2243
2259
 
2244
- class Name303(Enum):
2260
+ class Name271(Enum):
2245
2261
  volume = "volume"
2246
2262
 
2247
2263
 
2248
- class Units120(Enum):
2264
+ class Units108(Enum):
2249
2265
  angstrom_3 = "angstrom^3"
2250
2266
 
2251
2267
 
2252
- class VolumeSchema37(BaseModel):
2268
+ class VolumeSchema33(BaseModel):
2253
2269
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
2254
- units: Optional[Units120] = None
2270
+ units: Optional[Units108] = None
2255
2271
  value: float
2256
2272
 
2257
2273
 
2258
- class Name304(Enum):
2274
+ class Name272(Enum):
2259
2275
  density = "density"
2260
2276
 
2261
2277
 
2262
- class Units121(Enum):
2278
+ class Units109(Enum):
2263
2279
  g_cm_3 = "g/cm^3"
2264
2280
 
2265
2281
 
2266
- class DensitySchema37(BaseModel):
2282
+ class DensitySchema33(BaseModel):
2267
2283
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
2268
- units: Optional[Units121] = None
2284
+ units: Optional[Units109] = None
2269
2285
  value: float
2270
2286
 
2271
2287
 
2272
- class Units122(Enum):
2288
+ class Units110(Enum):
2273
2289
  angstrom = "angstrom"
2274
2290
 
2275
2291
 
2276
- class ScalarSchema38(BaseModel):
2277
- units: Optional[Units122] = None
2292
+ class ScalarSchema34(BaseModel):
2293
+ units: Optional[Units110] = None
2278
2294
  value: float
2279
2295
 
2280
2296
 
2281
- class Name305(Enum):
2297
+ class Name273(Enum):
2282
2298
  symmetry = "symmetry"
2283
2299
 
2284
2300
 
2285
- class SymmetrySchema37(BaseModel):
2301
+ class SymmetrySchema33(BaseModel):
2286
2302
  pointGroupSymbol: Optional[str] = None
2287
2303
  """
2288
2304
  point group symbol in Schoenflies notation
@@ -2291,18 +2307,18 @@ class SymmetrySchema37(BaseModel):
2291
2307
  """
2292
2308
  space group symbol in Hermann–Mauguin notation
2293
2309
  """
2294
- tolerance: Optional[ScalarSchema38] = Field(None, title="scalar schema")
2310
+ tolerance: Optional[ScalarSchema34] = Field(None, title="scalar schema")
2295
2311
  """
2296
2312
  tolerance used for symmetry calculation
2297
2313
  """
2298
2314
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
2299
2315
 
2300
2316
 
2301
- class Name306(Enum):
2317
+ class Name274(Enum):
2302
2318
  elemental_ratio = "elemental_ratio"
2303
2319
 
2304
2320
 
2305
- class ElementalRatio37(BaseModel):
2321
+ class ElementalRatio33(BaseModel):
2306
2322
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
2307
2323
  value: confloat(ge=0.0, le=1.0)
2308
2324
  element: Optional[str] = None
@@ -2311,11 +2327,11 @@ class ElementalRatio37(BaseModel):
2311
2327
  """
2312
2328
 
2313
2329
 
2314
- class Name307(Enum):
2330
+ class Name275(Enum):
2315
2331
  p_norm = "p-norm"
2316
2332
 
2317
2333
 
2318
- class PNorm37(BaseModel):
2334
+ class PNorm33(BaseModel):
2319
2335
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
2320
2336
  degree: Optional[int] = None
2321
2337
  """
@@ -2324,56 +2340,56 @@ class PNorm37(BaseModel):
2324
2340
  value: float
2325
2341
 
2326
2342
 
2327
- class Name308(Enum):
2343
+ class Name276(Enum):
2328
2344
  inchi = "inchi"
2329
2345
 
2330
2346
 
2331
- class InChIRepresentationSchema37(BaseModel):
2347
+ class InChIRepresentationSchema33(BaseModel):
2332
2348
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
2333
2349
  value: str
2334
2350
 
2335
2351
 
2336
- class Name309(Enum):
2352
+ class Name277(Enum):
2337
2353
  inchi_key = "inchi_key"
2338
2354
 
2339
2355
 
2340
- class InChIKeyRepresentationSchema37(BaseModel):
2356
+ class InChIKeyRepresentationSchema33(BaseModel):
2341
2357
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
2342
2358
  value: str
2343
2359
 
2344
2360
 
2345
- class DerivedPropertiesSchema37(
2361
+ class DerivedPropertiesSchema33(
2346
2362
  RootModel[
2347
2363
  Union[
2348
- VolumeSchema37,
2349
- DensitySchema37,
2350
- SymmetrySchema37,
2351
- ElementalRatio37,
2352
- PNorm37,
2353
- InChIRepresentationSchema37,
2354
- InChIKeyRepresentationSchema37,
2364
+ VolumeSchema33,
2365
+ DensitySchema33,
2366
+ SymmetrySchema33,
2367
+ ElementalRatio33,
2368
+ PNorm33,
2369
+ InChIRepresentationSchema33,
2370
+ InChIKeyRepresentationSchema33,
2355
2371
  ]
2356
2372
  ]
2357
2373
  ):
2358
2374
  root: Union[
2359
- VolumeSchema37,
2360
- DensitySchema37,
2361
- SymmetrySchema37,
2362
- ElementalRatio37,
2363
- PNorm37,
2364
- InChIRepresentationSchema37,
2365
- InChIKeyRepresentationSchema37,
2375
+ VolumeSchema33,
2376
+ DensitySchema33,
2377
+ SymmetrySchema33,
2378
+ ElementalRatio33,
2379
+ PNorm33,
2380
+ InChIRepresentationSchema33,
2381
+ InChIKeyRepresentationSchema33,
2366
2382
  ] = Field(..., discriminator="name")
2367
2383
 
2368
2384
 
2369
- class Name310(Enum):
2385
+ class Name278(Enum):
2370
2386
  default = "default"
2371
2387
  atomsTooClose = "atomsTooClose"
2372
2388
  atomsOverlap = "atomsOverlap"
2373
2389
 
2374
2390
 
2375
- class MaterialConsistencyCheckSchema37(BaseModel):
2376
- name: Name310
2391
+ class MaterialConsistencyCheckSchema33(BaseModel):
2392
+ name: Name278
2377
2393
  """
2378
2394
  Name of the consistency check that is performed, which is listed in an enum.
2379
2395
  """
@@ -2391,7 +2407,7 @@ class MaterialConsistencyCheckSchema37(BaseModel):
2391
2407
  """
2392
2408
 
2393
2409
 
2394
- class CrystalSchema37(BaseModel):
2410
+ class CrystalSchema33(BaseModel):
2395
2411
  formula: Optional[str] = None
2396
2412
  """
2397
2413
  reduced chemical formula
@@ -2400,9 +2416,9 @@ class CrystalSchema37(BaseModel):
2400
2416
  """
2401
2417
  chemical formula based on the number of atoms of each element in the supercell
2402
2418
  """
2403
- basis: BasisSchema38 = Field(..., title="basis schema")
2404
- lattice: LatticeSchema37 = Field(..., title="lattice schema")
2405
- derivedProperties: Optional[List[DerivedPropertiesSchema37]] = Field(None, title="derived properties schema")
2419
+ basis: BasisSchema34 = Field(..., title="basis schema")
2420
+ lattice: LatticeSchema33 = Field(..., title="lattice schema")
2421
+ derivedProperties: Optional[List[DerivedPropertiesSchema33]] = Field(None, title="derived properties schema")
2406
2422
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
2407
2423
  """
2408
2424
  information about a database source
@@ -2423,7 +2439,7 @@ class CrystalSchema37(BaseModel):
2423
2439
  """
2424
2440
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
2425
2441
  """
2426
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema37]] = None
2442
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema33]] = None
2427
2443
  field_id: Optional[str] = Field(None, alias="_id")
2428
2444
  """
2429
2445
  entity identity
@@ -2448,8 +2464,8 @@ class CrystalSchema37(BaseModel):
2448
2464
  metadata: Optional[Dict[str, Any]] = None
2449
2465
 
2450
2466
 
2451
- class AtomicLayersUniqueRepeatedSchema14(BaseModel):
2452
- termination_top: TerminationSchema16 = Field(..., title="Termination Schema")
2467
+ class AtomicLayersUniqueRepeatedSchema12(BaseModel):
2468
+ termination_top: TerminationSchema14 = Field(..., title="Termination Schema")
2453
2469
  """
2454
2470
  Defines a specific termination of a slab
2455
2471
  """
@@ -2461,7 +2477,7 @@ class AtomicLayersUniqueRepeatedSchema14(BaseModel):
2461
2477
  """
2462
2478
  Miller indices [h, k, l] defining crystallographic planes
2463
2479
  """
2464
- crystal: CrystalSchema37 = Field(..., title="Crystal Schema")
2480
+ crystal: CrystalSchema33 = Field(..., title="Crystal Schema")
2465
2481
  """
2466
2482
  A crystal structure, referencing the base material schema
2467
2483
  """
@@ -2471,7 +2487,7 @@ class AtomicLayersUniqueRepeatedSchema14(BaseModel):
2471
2487
  """
2472
2488
 
2473
2489
 
2474
- class Value84(Enum):
2490
+ class Value76(Enum):
2475
2491
  H = "H"
2476
2492
  He = "He"
2477
2493
  Li = "Li"
@@ -2592,13 +2608,13 @@ class Value84(Enum):
2592
2608
  Og = "Og"
2593
2609
 
2594
2610
 
2595
- class Value85(Enum):
2611
+ class Value77(Enum):
2596
2612
  X = "X"
2597
2613
  Vac = "Vac"
2598
2614
 
2599
2615
 
2600
- class AtomicElementSchema41(BaseModel):
2601
- value: Union[Value84, Value85]
2616
+ class AtomicElementSchema37(BaseModel):
2617
+ value: Union[Value76, Value77]
2602
2618
  """
2603
2619
  All elements, including extra elements
2604
2620
  """
@@ -2608,8 +2624,8 @@ class AtomicElementSchema41(BaseModel):
2608
2624
  """
2609
2625
 
2610
2626
 
2611
- class BasisSchema39(BaseModel):
2612
- elements: List[AtomicElementSchema41] = Field(..., title="atomic elements schema")
2627
+ class BasisSchema35(BaseModel):
2628
+ elements: List[AtomicElementSchema37] = Field(..., title="atomic elements schema")
2613
2629
  """
2614
2630
  atomic elements schema
2615
2631
  """
@@ -2624,7 +2640,7 @@ class BasisSchema39(BaseModel):
2624
2640
  """
2625
2641
 
2626
2642
 
2627
- class LatticeVectorsSchema38(BaseModel):
2643
+ class LatticeVectorsSchema34(BaseModel):
2628
2644
  a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
2629
2645
  b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
2630
2646
  c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
@@ -2635,12 +2651,12 @@ class LatticeVectorsSchema38(BaseModel):
2635
2651
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
2636
2652
 
2637
2653
 
2638
- class LatticeUnitsSchema38(BaseModel):
2654
+ class LatticeUnitsSchema34(BaseModel):
2639
2655
  length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
2640
2656
  angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
2641
2657
 
2642
2658
 
2643
- class LatticeSchema38(BaseModel):
2659
+ class LatticeSchema34(BaseModel):
2644
2660
  a: float
2645
2661
  """
2646
2662
  length of the first lattice vector
@@ -2665,56 +2681,56 @@ class LatticeSchema38(BaseModel):
2665
2681
  """
2666
2682
  angle between first and third lattice vector
2667
2683
  """
2668
- vectors: Optional[LatticeVectorsSchema38] = Field(None, title="lattice vectors schema")
2684
+ vectors: Optional[LatticeVectorsSchema34] = Field(None, title="lattice vectors schema")
2669
2685
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
2670
- units: Optional[LatticeUnitsSchema38] = Field(
2671
- default_factory=lambda: LatticeUnitsSchema38.model_validate({"length": "angstrom", "angle": "degree"}),
2686
+ units: Optional[LatticeUnitsSchema34] = Field(
2687
+ default_factory=lambda: LatticeUnitsSchema34.model_validate({"length": "angstrom", "angle": "degree"}),
2672
2688
  title="Lattice units schema",
2673
2689
  )
2674
2690
 
2675
2691
 
2676
- class Name311(Enum):
2692
+ class Name279(Enum):
2677
2693
  volume = "volume"
2678
2694
 
2679
2695
 
2680
- class Units123(Enum):
2696
+ class Units111(Enum):
2681
2697
  angstrom_3 = "angstrom^3"
2682
2698
 
2683
2699
 
2684
- class VolumeSchema38(BaseModel):
2700
+ class VolumeSchema34(BaseModel):
2685
2701
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
2686
- units: Optional[Units123] = None
2702
+ units: Optional[Units111] = None
2687
2703
  value: float
2688
2704
 
2689
2705
 
2690
- class Name312(Enum):
2706
+ class Name280(Enum):
2691
2707
  density = "density"
2692
2708
 
2693
2709
 
2694
- class Units124(Enum):
2710
+ class Units112(Enum):
2695
2711
  g_cm_3 = "g/cm^3"
2696
2712
 
2697
2713
 
2698
- class DensitySchema38(BaseModel):
2714
+ class DensitySchema34(BaseModel):
2699
2715
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
2700
- units: Optional[Units124] = None
2716
+ units: Optional[Units112] = None
2701
2717
  value: float
2702
2718
 
2703
2719
 
2704
- class Units125(Enum):
2720
+ class Units113(Enum):
2705
2721
  angstrom = "angstrom"
2706
2722
 
2707
2723
 
2708
- class ScalarSchema39(BaseModel):
2709
- units: Optional[Units125] = None
2724
+ class ScalarSchema35(BaseModel):
2725
+ units: Optional[Units113] = None
2710
2726
  value: float
2711
2727
 
2712
2728
 
2713
- class Name313(Enum):
2729
+ class Name281(Enum):
2714
2730
  symmetry = "symmetry"
2715
2731
 
2716
2732
 
2717
- class SymmetrySchema38(BaseModel):
2733
+ class SymmetrySchema34(BaseModel):
2718
2734
  pointGroupSymbol: Optional[str] = None
2719
2735
  """
2720
2736
  point group symbol in Schoenflies notation
@@ -2723,18 +2739,18 @@ class SymmetrySchema38(BaseModel):
2723
2739
  """
2724
2740
  space group symbol in Hermann–Mauguin notation
2725
2741
  """
2726
- tolerance: Optional[ScalarSchema39] = Field(None, title="scalar schema")
2742
+ tolerance: Optional[ScalarSchema35] = Field(None, title="scalar schema")
2727
2743
  """
2728
2744
  tolerance used for symmetry calculation
2729
2745
  """
2730
2746
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
2731
2747
 
2732
2748
 
2733
- class Name314(Enum):
2749
+ class Name282(Enum):
2734
2750
  elemental_ratio = "elemental_ratio"
2735
2751
 
2736
2752
 
2737
- class ElementalRatio38(BaseModel):
2753
+ class ElementalRatio34(BaseModel):
2738
2754
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
2739
2755
  value: confloat(ge=0.0, le=1.0)
2740
2756
  element: Optional[str] = None
@@ -2743,11 +2759,11 @@ class ElementalRatio38(BaseModel):
2743
2759
  """
2744
2760
 
2745
2761
 
2746
- class Name315(Enum):
2762
+ class Name283(Enum):
2747
2763
  p_norm = "p-norm"
2748
2764
 
2749
2765
 
2750
- class PNorm38(BaseModel):
2766
+ class PNorm34(BaseModel):
2751
2767
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
2752
2768
  degree: Optional[int] = None
2753
2769
  """
@@ -2756,56 +2772,56 @@ class PNorm38(BaseModel):
2756
2772
  value: float
2757
2773
 
2758
2774
 
2759
- class Name316(Enum):
2775
+ class Name284(Enum):
2760
2776
  inchi = "inchi"
2761
2777
 
2762
2778
 
2763
- class InChIRepresentationSchema38(BaseModel):
2779
+ class InChIRepresentationSchema34(BaseModel):
2764
2780
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
2765
2781
  value: str
2766
2782
 
2767
2783
 
2768
- class Name317(Enum):
2784
+ class Name285(Enum):
2769
2785
  inchi_key = "inchi_key"
2770
2786
 
2771
2787
 
2772
- class InChIKeyRepresentationSchema38(BaseModel):
2788
+ class InChIKeyRepresentationSchema34(BaseModel):
2773
2789
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
2774
2790
  value: str
2775
2791
 
2776
2792
 
2777
- class DerivedPropertiesSchema38(
2793
+ class DerivedPropertiesSchema34(
2778
2794
  RootModel[
2779
2795
  Union[
2780
- VolumeSchema38,
2781
- DensitySchema38,
2782
- SymmetrySchema38,
2783
- ElementalRatio38,
2784
- PNorm38,
2785
- InChIRepresentationSchema38,
2786
- InChIKeyRepresentationSchema38,
2796
+ VolumeSchema34,
2797
+ DensitySchema34,
2798
+ SymmetrySchema34,
2799
+ ElementalRatio34,
2800
+ PNorm34,
2801
+ InChIRepresentationSchema34,
2802
+ InChIKeyRepresentationSchema34,
2787
2803
  ]
2788
2804
  ]
2789
2805
  ):
2790
2806
  root: Union[
2791
- VolumeSchema38,
2792
- DensitySchema38,
2793
- SymmetrySchema38,
2794
- ElementalRatio38,
2795
- PNorm38,
2796
- InChIRepresentationSchema38,
2797
- InChIKeyRepresentationSchema38,
2807
+ VolumeSchema34,
2808
+ DensitySchema34,
2809
+ SymmetrySchema34,
2810
+ ElementalRatio34,
2811
+ PNorm34,
2812
+ InChIRepresentationSchema34,
2813
+ InChIKeyRepresentationSchema34,
2798
2814
  ] = Field(..., discriminator="name")
2799
2815
 
2800
2816
 
2801
- class Name318(Enum):
2817
+ class Name286(Enum):
2802
2818
  default = "default"
2803
2819
  atomsTooClose = "atomsTooClose"
2804
2820
  atomsOverlap = "atomsOverlap"
2805
2821
 
2806
2822
 
2807
- class MaterialConsistencyCheckSchema38(BaseModel):
2808
- name: Name318
2823
+ class MaterialConsistencyCheckSchema34(BaseModel):
2824
+ name: Name286
2809
2825
  """
2810
2826
  Name of the consistency check that is performed, which is listed in an enum.
2811
2827
  """
@@ -2823,7 +2839,7 @@ class MaterialConsistencyCheckSchema38(BaseModel):
2823
2839
  """
2824
2840
 
2825
2841
 
2826
- class CrystalSchema38(BaseModel):
2842
+ class CrystalSchema34(BaseModel):
2827
2843
  formula: Optional[str] = None
2828
2844
  """
2829
2845
  reduced chemical formula
@@ -2832,9 +2848,9 @@ class CrystalSchema38(BaseModel):
2832
2848
  """
2833
2849
  chemical formula based on the number of atoms of each element in the supercell
2834
2850
  """
2835
- basis: BasisSchema39 = Field(..., title="basis schema")
2836
- lattice: LatticeSchema38 = Field(..., title="lattice schema")
2837
- derivedProperties: Optional[List[DerivedPropertiesSchema38]] = Field(None, title="derived properties schema")
2851
+ basis: BasisSchema35 = Field(..., title="basis schema")
2852
+ lattice: LatticeSchema34 = Field(..., title="lattice schema")
2853
+ derivedProperties: Optional[List[DerivedPropertiesSchema34]] = Field(None, title="derived properties schema")
2838
2854
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
2839
2855
  """
2840
2856
  information about a database source
@@ -2855,7 +2871,7 @@ class CrystalSchema38(BaseModel):
2855
2871
  """
2856
2872
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
2857
2873
  """
2858
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema38]] = None
2874
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema34]] = None
2859
2875
  field_id: Optional[str] = Field(None, alias="_id")
2860
2876
  """
2861
2877
  entity identity
@@ -2880,7 +2896,7 @@ class CrystalSchema38(BaseModel):
2880
2896
  metadata: Optional[Dict[str, Any]] = None
2881
2897
 
2882
2898
 
2883
- class VacuumConfigurationSchema17(BaseModel):
2899
+ class VacuumConfigurationSchema15(BaseModel):
2884
2900
  direction: AxisEnum = Field(..., title="Axis Enum")
2885
2901
  """
2886
2902
  Enum for axis types
@@ -2889,39 +2905,27 @@ class VacuumConfigurationSchema17(BaseModel):
2889
2905
  """
2890
2906
  Size of the vacuum slab in angstroms
2891
2907
  """
2892
- crystal: CrystalSchema38 = Field(..., title="Crystal Schema")
2908
+ crystal: CrystalSchema34 = Field(..., title="Crystal Schema")
2893
2909
  """
2894
2910
  A crystal structure, referencing the base material schema
2895
2911
  """
2896
2912
 
2897
2913
 
2898
- class SlabStrainedSupercellWithGapConfigurationSchema(BaseModel):
2899
- gap: Optional[confloat(ge=0.0)] = None
2900
- """
2901
- If provided, the film is shifted to have it as smallest distance to the substrate
2902
- """
2903
- xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
2904
- default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
2905
- max_length=2,
2906
- min_length=2,
2907
- title="Supercell Matrix 2D Schema",
2908
- )
2909
- """
2910
- Supercell matrix for xy plane transformations
2911
- """
2912
- strain_matrix: List[ArrayOf3NumberElementsSchema] = Field(
2913
- ..., max_length=3, min_length=3, title="matrix 3x3 schema"
2914
- )
2915
- stack_components: List[Union[AtomicLayersUniqueRepeatedSchema14, VacuumConfigurationSchema17]] = Field(
2914
+ class SlabConfigurationSchema8(BaseModel):
2915
+ stack_components: List[Union[AtomicLayersUniqueRepeatedSchema12, VacuumConfigurationSchema15]] = Field(
2916
2916
  ..., max_length=2, min_length=2
2917
2917
  )
2918
2918
  direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
2919
2919
  """
2920
2920
  Enum for axis types
2921
2921
  """
2922
+ gaps: Optional[List[ObjectWithId]] = None
2923
+ """
2924
+ Gap distances between stack components as an array of objects with id and value
2925
+ """
2922
2926
 
2923
2927
 
2924
- class TerminationSchema17(BaseModel):
2928
+ class TerminationSchema15(BaseModel):
2925
2929
  chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
2926
2930
  ..., title="Chemical Elements"
2927
2931
  )
@@ -2934,7 +2938,7 @@ class TerminationSchema17(BaseModel):
2934
2938
  """
2935
2939
 
2936
2940
 
2937
- class Value86(Enum):
2941
+ class Value78(Enum):
2938
2942
  H = "H"
2939
2943
  He = "He"
2940
2944
  Li = "Li"
@@ -3055,13 +3059,13 @@ class Value86(Enum):
3055
3059
  Og = "Og"
3056
3060
 
3057
3061
 
3058
- class Value87(Enum):
3062
+ class Value79(Enum):
3059
3063
  X = "X"
3060
3064
  Vac = "Vac"
3061
3065
 
3062
3066
 
3063
- class AtomicElementSchema42(BaseModel):
3064
- value: Union[Value86, Value87]
3067
+ class AtomicElementSchema38(BaseModel):
3068
+ value: Union[Value78, Value79]
3065
3069
  """
3066
3070
  All elements, including extra elements
3067
3071
  """
@@ -3071,8 +3075,8 @@ class AtomicElementSchema42(BaseModel):
3071
3075
  """
3072
3076
 
3073
3077
 
3074
- class BasisSchema40(BaseModel):
3075
- elements: List[AtomicElementSchema42] = Field(..., title="atomic elements schema")
3078
+ class BasisSchema36(BaseModel):
3079
+ elements: List[AtomicElementSchema38] = Field(..., title="atomic elements schema")
3076
3080
  """
3077
3081
  atomic elements schema
3078
3082
  """
@@ -3087,7 +3091,7 @@ class BasisSchema40(BaseModel):
3087
3091
  """
3088
3092
 
3089
3093
 
3090
- class LatticeVectorsSchema39(BaseModel):
3094
+ class LatticeVectorsSchema35(BaseModel):
3091
3095
  a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
3092
3096
  b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
3093
3097
  c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
@@ -3098,12 +3102,12 @@ class LatticeVectorsSchema39(BaseModel):
3098
3102
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
3099
3103
 
3100
3104
 
3101
- class LatticeUnitsSchema39(BaseModel):
3105
+ class LatticeUnitsSchema35(BaseModel):
3102
3106
  length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
3103
3107
  angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
3104
3108
 
3105
3109
 
3106
- class LatticeSchema39(BaseModel):
3110
+ class LatticeSchema35(BaseModel):
3107
3111
  a: float
3108
3112
  """
3109
3113
  length of the first lattice vector
@@ -3128,56 +3132,56 @@ class LatticeSchema39(BaseModel):
3128
3132
  """
3129
3133
  angle between first and third lattice vector
3130
3134
  """
3131
- vectors: Optional[LatticeVectorsSchema39] = Field(None, title="lattice vectors schema")
3135
+ vectors: Optional[LatticeVectorsSchema35] = Field(None, title="lattice vectors schema")
3132
3136
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
3133
- units: Optional[LatticeUnitsSchema39] = Field(
3134
- default_factory=lambda: LatticeUnitsSchema39.model_validate({"length": "angstrom", "angle": "degree"}),
3137
+ units: Optional[LatticeUnitsSchema35] = Field(
3138
+ default_factory=lambda: LatticeUnitsSchema35.model_validate({"length": "angstrom", "angle": "degree"}),
3135
3139
  title="Lattice units schema",
3136
3140
  )
3137
3141
 
3138
3142
 
3139
- class Name319(Enum):
3143
+ class Name287(Enum):
3140
3144
  volume = "volume"
3141
3145
 
3142
3146
 
3143
- class Units126(Enum):
3147
+ class Units114(Enum):
3144
3148
  angstrom_3 = "angstrom^3"
3145
3149
 
3146
3150
 
3147
- class VolumeSchema39(BaseModel):
3151
+ class VolumeSchema35(BaseModel):
3148
3152
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
3149
- units: Optional[Units126] = None
3153
+ units: Optional[Units114] = None
3150
3154
  value: float
3151
3155
 
3152
3156
 
3153
- class Name320(Enum):
3157
+ class Name288(Enum):
3154
3158
  density = "density"
3155
3159
 
3156
3160
 
3157
- class Units127(Enum):
3161
+ class Units115(Enum):
3158
3162
  g_cm_3 = "g/cm^3"
3159
3163
 
3160
3164
 
3161
- class DensitySchema39(BaseModel):
3165
+ class DensitySchema35(BaseModel):
3162
3166
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
3163
- units: Optional[Units127] = None
3167
+ units: Optional[Units115] = None
3164
3168
  value: float
3165
3169
 
3166
3170
 
3167
- class Units128(Enum):
3171
+ class Units116(Enum):
3168
3172
  angstrom = "angstrom"
3169
3173
 
3170
3174
 
3171
- class ScalarSchema40(BaseModel):
3172
- units: Optional[Units128] = None
3175
+ class ScalarSchema36(BaseModel):
3176
+ units: Optional[Units116] = None
3173
3177
  value: float
3174
3178
 
3175
3179
 
3176
- class Name321(Enum):
3180
+ class Name289(Enum):
3177
3181
  symmetry = "symmetry"
3178
3182
 
3179
3183
 
3180
- class SymmetrySchema39(BaseModel):
3184
+ class SymmetrySchema35(BaseModel):
3181
3185
  pointGroupSymbol: Optional[str] = None
3182
3186
  """
3183
3187
  point group symbol in Schoenflies notation
@@ -3186,18 +3190,18 @@ class SymmetrySchema39(BaseModel):
3186
3190
  """
3187
3191
  space group symbol in Hermann–Mauguin notation
3188
3192
  """
3189
- tolerance: Optional[ScalarSchema40] = Field(None, title="scalar schema")
3193
+ tolerance: Optional[ScalarSchema36] = Field(None, title="scalar schema")
3190
3194
  """
3191
3195
  tolerance used for symmetry calculation
3192
3196
  """
3193
3197
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
3194
3198
 
3195
3199
 
3196
- class Name322(Enum):
3200
+ class Name290(Enum):
3197
3201
  elemental_ratio = "elemental_ratio"
3198
3202
 
3199
3203
 
3200
- class ElementalRatio39(BaseModel):
3204
+ class ElementalRatio35(BaseModel):
3201
3205
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
3202
3206
  value: confloat(ge=0.0, le=1.0)
3203
3207
  element: Optional[str] = None
@@ -3206,11 +3210,11 @@ class ElementalRatio39(BaseModel):
3206
3210
  """
3207
3211
 
3208
3212
 
3209
- class Name323(Enum):
3213
+ class Name291(Enum):
3210
3214
  p_norm = "p-norm"
3211
3215
 
3212
3216
 
3213
- class PNorm39(BaseModel):
3217
+ class PNorm35(BaseModel):
3214
3218
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
3215
3219
  degree: Optional[int] = None
3216
3220
  """
@@ -3219,56 +3223,56 @@ class PNorm39(BaseModel):
3219
3223
  value: float
3220
3224
 
3221
3225
 
3222
- class Name324(Enum):
3226
+ class Name292(Enum):
3223
3227
  inchi = "inchi"
3224
3228
 
3225
3229
 
3226
- class InChIRepresentationSchema39(BaseModel):
3230
+ class InChIRepresentationSchema35(BaseModel):
3227
3231
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
3228
3232
  value: str
3229
3233
 
3230
3234
 
3231
- class Name325(Enum):
3235
+ class Name293(Enum):
3232
3236
  inchi_key = "inchi_key"
3233
3237
 
3234
3238
 
3235
- class InChIKeyRepresentationSchema39(BaseModel):
3239
+ class InChIKeyRepresentationSchema35(BaseModel):
3236
3240
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
3237
3241
  value: str
3238
3242
 
3239
3243
 
3240
- class DerivedPropertiesSchema39(
3244
+ class DerivedPropertiesSchema35(
3241
3245
  RootModel[
3242
3246
  Union[
3243
- VolumeSchema39,
3244
- DensitySchema39,
3245
- SymmetrySchema39,
3246
- ElementalRatio39,
3247
- PNorm39,
3248
- InChIRepresentationSchema39,
3249
- InChIKeyRepresentationSchema39,
3247
+ VolumeSchema35,
3248
+ DensitySchema35,
3249
+ SymmetrySchema35,
3250
+ ElementalRatio35,
3251
+ PNorm35,
3252
+ InChIRepresentationSchema35,
3253
+ InChIKeyRepresentationSchema35,
3250
3254
  ]
3251
3255
  ]
3252
3256
  ):
3253
3257
  root: Union[
3254
- VolumeSchema39,
3255
- DensitySchema39,
3256
- SymmetrySchema39,
3257
- ElementalRatio39,
3258
- PNorm39,
3259
- InChIRepresentationSchema39,
3260
- InChIKeyRepresentationSchema39,
3258
+ VolumeSchema35,
3259
+ DensitySchema35,
3260
+ SymmetrySchema35,
3261
+ ElementalRatio35,
3262
+ PNorm35,
3263
+ InChIRepresentationSchema35,
3264
+ InChIKeyRepresentationSchema35,
3261
3265
  ] = Field(..., discriminator="name")
3262
3266
 
3263
3267
 
3264
- class Name326(Enum):
3268
+ class Name294(Enum):
3265
3269
  default = "default"
3266
3270
  atomsTooClose = "atomsTooClose"
3267
3271
  atomsOverlap = "atomsOverlap"
3268
3272
 
3269
3273
 
3270
- class MaterialConsistencyCheckSchema39(BaseModel):
3271
- name: Name326
3274
+ class MaterialConsistencyCheckSchema35(BaseModel):
3275
+ name: Name294
3272
3276
  """
3273
3277
  Name of the consistency check that is performed, which is listed in an enum.
3274
3278
  """
@@ -3286,7 +3290,7 @@ class MaterialConsistencyCheckSchema39(BaseModel):
3286
3290
  """
3287
3291
 
3288
3292
 
3289
- class CrystalSchema39(BaseModel):
3293
+ class CrystalSchema35(BaseModel):
3290
3294
  formula: Optional[str] = None
3291
3295
  """
3292
3296
  reduced chemical formula
@@ -3295,9 +3299,9 @@ class CrystalSchema39(BaseModel):
3295
3299
  """
3296
3300
  chemical formula based on the number of atoms of each element in the supercell
3297
3301
  """
3298
- basis: BasisSchema40 = Field(..., title="basis schema")
3299
- lattice: LatticeSchema39 = Field(..., title="lattice schema")
3300
- derivedProperties: Optional[List[DerivedPropertiesSchema39]] = Field(None, title="derived properties schema")
3302
+ basis: BasisSchema36 = Field(..., title="basis schema")
3303
+ lattice: LatticeSchema35 = Field(..., title="lattice schema")
3304
+ derivedProperties: Optional[List[DerivedPropertiesSchema35]] = Field(None, title="derived properties schema")
3301
3305
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
3302
3306
  """
3303
3307
  information about a database source
@@ -3318,7 +3322,7 @@ class CrystalSchema39(BaseModel):
3318
3322
  """
3319
3323
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
3320
3324
  """
3321
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema39]] = None
3325
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema35]] = None
3322
3326
  field_id: Optional[str] = Field(None, alias="_id")
3323
3327
  """
3324
3328
  entity identity
@@ -3343,8 +3347,8 @@ class CrystalSchema39(BaseModel):
3343
3347
  metadata: Optional[Dict[str, Any]] = None
3344
3348
 
3345
3349
 
3346
- class AtomicLayersUniqueRepeatedSchema15(BaseModel):
3347
- termination_top: TerminationSchema17 = Field(..., title="Termination Schema")
3350
+ class AtomicLayersUniqueRepeatedSchema13(BaseModel):
3351
+ termination_top: TerminationSchema15 = Field(..., title="Termination Schema")
3348
3352
  """
3349
3353
  Defines a specific termination of a slab
3350
3354
  """
@@ -3356,7 +3360,7 @@ class AtomicLayersUniqueRepeatedSchema15(BaseModel):
3356
3360
  """
3357
3361
  Miller indices [h, k, l] defining crystallographic planes
3358
3362
  """
3359
- crystal: CrystalSchema39 = Field(..., title="Crystal Schema")
3363
+ crystal: CrystalSchema35 = Field(..., title="Crystal Schema")
3360
3364
  """
3361
3365
  A crystal structure, referencing the base material schema
3362
3366
  """
@@ -3366,7 +3370,7 @@ class AtomicLayersUniqueRepeatedSchema15(BaseModel):
3366
3370
  """
3367
3371
 
3368
3372
 
3369
- class Value88(Enum):
3373
+ class Value80(Enum):
3370
3374
  H = "H"
3371
3375
  He = "He"
3372
3376
  Li = "Li"
@@ -3487,13 +3491,13 @@ class Value88(Enum):
3487
3491
  Og = "Og"
3488
3492
 
3489
3493
 
3490
- class Value89(Enum):
3494
+ class Value81(Enum):
3491
3495
  X = "X"
3492
3496
  Vac = "Vac"
3493
3497
 
3494
3498
 
3495
- class AtomicElementSchema43(BaseModel):
3496
- value: Union[Value88, Value89]
3499
+ class AtomicElementSchema39(BaseModel):
3500
+ value: Union[Value80, Value81]
3497
3501
  """
3498
3502
  All elements, including extra elements
3499
3503
  """
@@ -3503,8 +3507,8 @@ class AtomicElementSchema43(BaseModel):
3503
3507
  """
3504
3508
 
3505
3509
 
3506
- class BasisSchema41(BaseModel):
3507
- elements: List[AtomicElementSchema43] = Field(..., title="atomic elements schema")
3510
+ class BasisSchema37(BaseModel):
3511
+ elements: List[AtomicElementSchema39] = Field(..., title="atomic elements schema")
3508
3512
  """
3509
3513
  atomic elements schema
3510
3514
  """
@@ -3519,7 +3523,7 @@ class BasisSchema41(BaseModel):
3519
3523
  """
3520
3524
 
3521
3525
 
3522
- class LatticeVectorsSchema40(BaseModel):
3526
+ class LatticeVectorsSchema36(BaseModel):
3523
3527
  a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
3524
3528
  b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
3525
3529
  c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
@@ -3530,12 +3534,12 @@ class LatticeVectorsSchema40(BaseModel):
3530
3534
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
3531
3535
 
3532
3536
 
3533
- class LatticeUnitsSchema40(BaseModel):
3537
+ class LatticeUnitsSchema36(BaseModel):
3534
3538
  length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
3535
3539
  angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
3536
3540
 
3537
3541
 
3538
- class LatticeSchema40(BaseModel):
3542
+ class LatticeSchema36(BaseModel):
3539
3543
  a: float
3540
3544
  """
3541
3545
  length of the first lattice vector
@@ -3560,56 +3564,56 @@ class LatticeSchema40(BaseModel):
3560
3564
  """
3561
3565
  angle between first and third lattice vector
3562
3566
  """
3563
- vectors: Optional[LatticeVectorsSchema40] = Field(None, title="lattice vectors schema")
3567
+ vectors: Optional[LatticeVectorsSchema36] = Field(None, title="lattice vectors schema")
3564
3568
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
3565
- units: Optional[LatticeUnitsSchema40] = Field(
3566
- default_factory=lambda: LatticeUnitsSchema40.model_validate({"length": "angstrom", "angle": "degree"}),
3569
+ units: Optional[LatticeUnitsSchema36] = Field(
3570
+ default_factory=lambda: LatticeUnitsSchema36.model_validate({"length": "angstrom", "angle": "degree"}),
3567
3571
  title="Lattice units schema",
3568
3572
  )
3569
3573
 
3570
3574
 
3571
- class Name327(Enum):
3575
+ class Name295(Enum):
3572
3576
  volume = "volume"
3573
3577
 
3574
3578
 
3575
- class Units129(Enum):
3579
+ class Units117(Enum):
3576
3580
  angstrom_3 = "angstrom^3"
3577
3581
 
3578
3582
 
3579
- class VolumeSchema40(BaseModel):
3583
+ class VolumeSchema36(BaseModel):
3580
3584
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
3581
- units: Optional[Units129] = None
3585
+ units: Optional[Units117] = None
3582
3586
  value: float
3583
3587
 
3584
3588
 
3585
- class Name328(Enum):
3589
+ class Name296(Enum):
3586
3590
  density = "density"
3587
3591
 
3588
3592
 
3589
- class Units130(Enum):
3593
+ class Units118(Enum):
3590
3594
  g_cm_3 = "g/cm^3"
3591
3595
 
3592
3596
 
3593
- class DensitySchema40(BaseModel):
3597
+ class DensitySchema36(BaseModel):
3594
3598
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
3595
- units: Optional[Units130] = None
3599
+ units: Optional[Units118] = None
3596
3600
  value: float
3597
3601
 
3598
3602
 
3599
- class Units131(Enum):
3603
+ class Units119(Enum):
3600
3604
  angstrom = "angstrom"
3601
3605
 
3602
3606
 
3603
- class ScalarSchema41(BaseModel):
3604
- units: Optional[Units131] = None
3607
+ class ScalarSchema37(BaseModel):
3608
+ units: Optional[Units119] = None
3605
3609
  value: float
3606
3610
 
3607
3611
 
3608
- class Name329(Enum):
3612
+ class Name297(Enum):
3609
3613
  symmetry = "symmetry"
3610
3614
 
3611
3615
 
3612
- class SymmetrySchema40(BaseModel):
3616
+ class SymmetrySchema36(BaseModel):
3613
3617
  pointGroupSymbol: Optional[str] = None
3614
3618
  """
3615
3619
  point group symbol in Schoenflies notation
@@ -3618,18 +3622,18 @@ class SymmetrySchema40(BaseModel):
3618
3622
  """
3619
3623
  space group symbol in Hermann–Mauguin notation
3620
3624
  """
3621
- tolerance: Optional[ScalarSchema41] = Field(None, title="scalar schema")
3625
+ tolerance: Optional[ScalarSchema37] = Field(None, title="scalar schema")
3622
3626
  """
3623
3627
  tolerance used for symmetry calculation
3624
3628
  """
3625
3629
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
3626
3630
 
3627
3631
 
3628
- class Name330(Enum):
3632
+ class Name298(Enum):
3629
3633
  elemental_ratio = "elemental_ratio"
3630
3634
 
3631
3635
 
3632
- class ElementalRatio40(BaseModel):
3636
+ class ElementalRatio36(BaseModel):
3633
3637
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
3634
3638
  value: confloat(ge=0.0, le=1.0)
3635
3639
  element: Optional[str] = None
@@ -3638,11 +3642,11 @@ class ElementalRatio40(BaseModel):
3638
3642
  """
3639
3643
 
3640
3644
 
3641
- class Name331(Enum):
3645
+ class Name299(Enum):
3642
3646
  p_norm = "p-norm"
3643
3647
 
3644
3648
 
3645
- class PNorm40(BaseModel):
3649
+ class PNorm36(BaseModel):
3646
3650
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
3647
3651
  degree: Optional[int] = None
3648
3652
  """
@@ -3651,56 +3655,56 @@ class PNorm40(BaseModel):
3651
3655
  value: float
3652
3656
 
3653
3657
 
3654
- class Name332(Enum):
3658
+ class Name300(Enum):
3655
3659
  inchi = "inchi"
3656
3660
 
3657
3661
 
3658
- class InChIRepresentationSchema40(BaseModel):
3662
+ class InChIRepresentationSchema36(BaseModel):
3659
3663
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
3660
3664
  value: str
3661
3665
 
3662
3666
 
3663
- class Name333(Enum):
3667
+ class Name301(Enum):
3664
3668
  inchi_key = "inchi_key"
3665
3669
 
3666
3670
 
3667
- class InChIKeyRepresentationSchema40(BaseModel):
3671
+ class InChIKeyRepresentationSchema36(BaseModel):
3668
3672
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
3669
3673
  value: str
3670
3674
 
3671
3675
 
3672
- class DerivedPropertiesSchema40(
3676
+ class DerivedPropertiesSchema36(
3673
3677
  RootModel[
3674
3678
  Union[
3675
- VolumeSchema40,
3676
- DensitySchema40,
3677
- SymmetrySchema40,
3678
- ElementalRatio40,
3679
- PNorm40,
3680
- InChIRepresentationSchema40,
3681
- InChIKeyRepresentationSchema40,
3679
+ VolumeSchema36,
3680
+ DensitySchema36,
3681
+ SymmetrySchema36,
3682
+ ElementalRatio36,
3683
+ PNorm36,
3684
+ InChIRepresentationSchema36,
3685
+ InChIKeyRepresentationSchema36,
3682
3686
  ]
3683
3687
  ]
3684
3688
  ):
3685
3689
  root: Union[
3686
- VolumeSchema40,
3687
- DensitySchema40,
3688
- SymmetrySchema40,
3689
- ElementalRatio40,
3690
- PNorm40,
3691
- InChIRepresentationSchema40,
3692
- InChIKeyRepresentationSchema40,
3690
+ VolumeSchema36,
3691
+ DensitySchema36,
3692
+ SymmetrySchema36,
3693
+ ElementalRatio36,
3694
+ PNorm36,
3695
+ InChIRepresentationSchema36,
3696
+ InChIKeyRepresentationSchema36,
3693
3697
  ] = Field(..., discriminator="name")
3694
3698
 
3695
3699
 
3696
- class Name334(Enum):
3700
+ class Name302(Enum):
3697
3701
  default = "default"
3698
3702
  atomsTooClose = "atomsTooClose"
3699
3703
  atomsOverlap = "atomsOverlap"
3700
3704
 
3701
3705
 
3702
- class MaterialConsistencyCheckSchema40(BaseModel):
3703
- name: Name334
3706
+ class MaterialConsistencyCheckSchema36(BaseModel):
3707
+ name: Name302
3704
3708
  """
3705
3709
  Name of the consistency check that is performed, which is listed in an enum.
3706
3710
  """
@@ -3718,7 +3722,7 @@ class MaterialConsistencyCheckSchema40(BaseModel):
3718
3722
  """
3719
3723
 
3720
3724
 
3721
- class CrystalSchema40(BaseModel):
3725
+ class CrystalSchema36(BaseModel):
3722
3726
  formula: Optional[str] = None
3723
3727
  """
3724
3728
  reduced chemical formula
@@ -3727,9 +3731,9 @@ class CrystalSchema40(BaseModel):
3727
3731
  """
3728
3732
  chemical formula based on the number of atoms of each element in the supercell
3729
3733
  """
3730
- basis: BasisSchema41 = Field(..., title="basis schema")
3731
- lattice: LatticeSchema40 = Field(..., title="lattice schema")
3732
- derivedProperties: Optional[List[DerivedPropertiesSchema40]] = Field(None, title="derived properties schema")
3734
+ basis: BasisSchema37 = Field(..., title="basis schema")
3735
+ lattice: LatticeSchema36 = Field(..., title="lattice schema")
3736
+ derivedProperties: Optional[List[DerivedPropertiesSchema36]] = Field(None, title="derived properties schema")
3733
3737
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
3734
3738
  """
3735
3739
  information about a database source
@@ -3750,7 +3754,7 @@ class CrystalSchema40(BaseModel):
3750
3754
  """
3751
3755
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
3752
3756
  """
3753
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema40]] = None
3757
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema36]] = None
3754
3758
  field_id: Optional[str] = Field(None, alias="_id")
3755
3759
  """
3756
3760
  entity identity
@@ -3775,7 +3779,7 @@ class CrystalSchema40(BaseModel):
3775
3779
  metadata: Optional[Dict[str, Any]] = None
3776
3780
 
3777
3781
 
3778
- class VacuumConfigurationSchema18(BaseModel):
3782
+ class VacuumConfigurationSchema16(BaseModel):
3779
3783
  direction: AxisEnum = Field(..., title="Axis Enum")
3780
3784
  """
3781
3785
  Enum for axis types
@@ -3784,36 +3788,39 @@ class VacuumConfigurationSchema18(BaseModel):
3784
3788
  """
3785
3789
  Size of the vacuum slab in angstroms
3786
3790
  """
3787
- crystal: CrystalSchema40 = Field(..., title="Crystal Schema")
3791
+ crystal: CrystalSchema36 = Field(..., title="Crystal Schema")
3788
3792
  """
3789
3793
  A crystal structure, referencing the base material schema
3790
3794
  """
3791
3795
 
3792
3796
 
3793
- class SlabConfigurationSchema8(BaseModel):
3794
- stack_components: List[Union[AtomicLayersUniqueRepeatedSchema15, VacuumConfigurationSchema18]] = Field(
3795
- ..., max_length=2, min_length=2
3797
+ class SlabStrainedSupercellConfigurationSchema3(BaseModel):
3798
+ xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
3799
+ default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
3800
+ max_length=2,
3801
+ min_length=2,
3802
+ title="Supercell Matrix 2D Schema",
3796
3803
  )
3797
- direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
3798
3804
  """
3799
- Enum for axis types
3805
+ Supercell matrix for xy plane transformations
3800
3806
  """
3801
-
3802
-
3803
- class TerminationSchema18(BaseModel):
3804
- chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
3805
- ..., title="Chemical Elements"
3807
+ strain_matrix: List[ArrayOf3NumberElementsSchema] = Field(
3808
+ ..., max_length=3, min_length=3, title="matrix 3x3 schema"
3809
+ )
3810
+ stack_components: List[Union[AtomicLayersUniqueRepeatedSchema13, VacuumConfigurationSchema16]] = Field(
3811
+ ..., max_length=2, min_length=2
3806
3812
  )
3813
+ direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
3807
3814
  """
3808
- Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
3815
+ Enum for axis types
3809
3816
  """
3810
- space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
3817
+ gaps: Optional[List[ObjectWithId]] = None
3811
3818
  """
3812
- Space group symmetry designation for the termination
3819
+ Gap distances between stack components as an array of objects with id and value
3813
3820
  """
3814
3821
 
3815
3822
 
3816
- class Value90(Enum):
3823
+ class Value82(Enum):
3817
3824
  H = "H"
3818
3825
  He = "He"
3819
3826
  Li = "Li"
@@ -3934,13 +3941,13 @@ class Value90(Enum):
3934
3941
  Og = "Og"
3935
3942
 
3936
3943
 
3937
- class Value91(Enum):
3944
+ class Value83(Enum):
3938
3945
  X = "X"
3939
3946
  Vac = "Vac"
3940
3947
 
3941
3948
 
3942
- class AtomicElementSchema44(BaseModel):
3943
- value: Union[Value90, Value91]
3949
+ class AtomicElementSchema40(BaseModel):
3950
+ value: Union[Value82, Value83]
3944
3951
  """
3945
3952
  All elements, including extra elements
3946
3953
  """
@@ -3950,8 +3957,8 @@ class AtomicElementSchema44(BaseModel):
3950
3957
  """
3951
3958
 
3952
3959
 
3953
- class BasisSchema42(BaseModel):
3954
- elements: List[AtomicElementSchema44] = Field(..., title="atomic elements schema")
3960
+ class BasisSchema38(BaseModel):
3961
+ elements: List[AtomicElementSchema40] = Field(..., title="atomic elements schema")
3955
3962
  """
3956
3963
  atomic elements schema
3957
3964
  """
@@ -3966,7 +3973,7 @@ class BasisSchema42(BaseModel):
3966
3973
  """
3967
3974
 
3968
3975
 
3969
- class LatticeVectorsSchema41(BaseModel):
3976
+ class LatticeVectorsSchema37(BaseModel):
3970
3977
  a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
3971
3978
  b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
3972
3979
  c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
@@ -3977,12 +3984,12 @@ class LatticeVectorsSchema41(BaseModel):
3977
3984
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
3978
3985
 
3979
3986
 
3980
- class LatticeUnitsSchema41(BaseModel):
3987
+ class LatticeUnitsSchema37(BaseModel):
3981
3988
  length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
3982
3989
  angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
3983
3990
 
3984
3991
 
3985
- class LatticeSchema41(BaseModel):
3992
+ class LatticeSchema37(BaseModel):
3986
3993
  a: float
3987
3994
  """
3988
3995
  length of the first lattice vector
@@ -4007,1829 +4014,56 @@ class LatticeSchema41(BaseModel):
4007
4014
  """
4008
4015
  angle between first and third lattice vector
4009
4016
  """
4010
- vectors: Optional[LatticeVectorsSchema41] = Field(None, title="lattice vectors schema")
4017
+ vectors: Optional[LatticeVectorsSchema37] = Field(None, title="lattice vectors schema")
4011
4018
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
4012
- units: Optional[LatticeUnitsSchema41] = Field(
4013
- default_factory=lambda: LatticeUnitsSchema41.model_validate({"length": "angstrom", "angle": "degree"}),
4019
+ units: Optional[LatticeUnitsSchema37] = Field(
4020
+ default_factory=lambda: LatticeUnitsSchema37.model_validate({"length": "angstrom", "angle": "degree"}),
4014
4021
  title="Lattice units schema",
4015
4022
  )
4016
4023
 
4017
4024
 
4018
- class Name335(Enum):
4025
+ class Name303(Enum):
4019
4026
  volume = "volume"
4020
4027
 
4021
4028
 
4022
- class Units132(Enum):
4029
+ class Units120(Enum):
4023
4030
  angstrom_3 = "angstrom^3"
4024
4031
 
4025
4032
 
4026
- class VolumeSchema41(BaseModel):
4033
+ class VolumeSchema37(BaseModel):
4027
4034
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
4028
- units: Optional[Units132] = None
4035
+ units: Optional[Units120] = None
4029
4036
  value: float
4030
4037
 
4031
4038
 
4032
- class Name336(Enum):
4039
+ class Name304(Enum):
4033
4040
  density = "density"
4034
4041
 
4035
4042
 
4036
- class Units133(Enum):
4043
+ class Units121(Enum):
4037
4044
  g_cm_3 = "g/cm^3"
4038
4045
 
4039
4046
 
4040
- class DensitySchema41(BaseModel):
4041
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
4042
- units: Optional[Units133] = None
4043
- value: float
4044
-
4045
-
4046
- class Units134(Enum):
4047
- angstrom = "angstrom"
4048
-
4049
-
4050
- class ScalarSchema42(BaseModel):
4051
- units: Optional[Units134] = None
4052
- value: float
4053
-
4054
-
4055
- class Name337(Enum):
4056
- symmetry = "symmetry"
4057
-
4058
-
4059
- class SymmetrySchema41(BaseModel):
4060
- pointGroupSymbol: Optional[str] = None
4061
- """
4062
- point group symbol in Schoenflies notation
4063
- """
4064
- spaceGroupSymbol: Optional[str] = None
4065
- """
4066
- space group symbol in Hermann–Mauguin notation
4067
- """
4068
- tolerance: Optional[ScalarSchema42] = Field(None, title="scalar schema")
4069
- """
4070
- tolerance used for symmetry calculation
4071
- """
4072
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
4073
-
4074
-
4075
- class Name338(Enum):
4076
- elemental_ratio = "elemental_ratio"
4077
-
4078
-
4079
- class ElementalRatio41(BaseModel):
4080
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
4081
- value: confloat(ge=0.0, le=1.0)
4082
- element: Optional[str] = None
4083
- """
4084
- the element this ratio is for
4085
- """
4086
-
4087
-
4088
- class Name339(Enum):
4089
- p_norm = "p-norm"
4090
-
4091
-
4092
- class PNorm41(BaseModel):
4093
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
4094
- degree: Optional[int] = None
4095
- """
4096
- degree of the dimensionality of the norm
4097
- """
4098
- value: float
4099
-
4100
-
4101
- class Name340(Enum):
4102
- inchi = "inchi"
4103
-
4104
-
4105
- class InChIRepresentationSchema41(BaseModel):
4106
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
4107
- value: str
4108
-
4109
-
4110
- class Name341(Enum):
4111
- inchi_key = "inchi_key"
4112
-
4113
-
4114
- class InChIKeyRepresentationSchema41(BaseModel):
4115
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
4116
- value: str
4117
-
4118
-
4119
- class DerivedPropertiesSchema41(
4120
- RootModel[
4121
- Union[
4122
- VolumeSchema41,
4123
- DensitySchema41,
4124
- SymmetrySchema41,
4125
- ElementalRatio41,
4126
- PNorm41,
4127
- InChIRepresentationSchema41,
4128
- InChIKeyRepresentationSchema41,
4129
- ]
4130
- ]
4131
- ):
4132
- root: Union[
4133
- VolumeSchema41,
4134
- DensitySchema41,
4135
- SymmetrySchema41,
4136
- ElementalRatio41,
4137
- PNorm41,
4138
- InChIRepresentationSchema41,
4139
- InChIKeyRepresentationSchema41,
4140
- ] = Field(..., discriminator="name")
4141
-
4142
-
4143
- class Name342(Enum):
4144
- default = "default"
4145
- atomsTooClose = "atomsTooClose"
4146
- atomsOverlap = "atomsOverlap"
4147
-
4148
-
4149
- class MaterialConsistencyCheckSchema41(BaseModel):
4150
- name: Name342
4151
- """
4152
- Name of the consistency check that is performed, which is listed in an enum.
4153
- """
4154
- key: str
4155
- """
4156
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
4157
- """
4158
- severity: Severity
4159
- """
4160
- Severity level of the problem, which is used in UI to differentiate.
4161
- """
4162
- message: str
4163
- """
4164
- Message generated by the consistency check describing the problem.
4165
- """
4166
-
4167
-
4168
- class CrystalSchema41(BaseModel):
4169
- formula: Optional[str] = None
4170
- """
4171
- reduced chemical formula
4172
- """
4173
- unitCellFormula: Optional[str] = None
4174
- """
4175
- chemical formula based on the number of atoms of each element in the supercell
4176
- """
4177
- basis: BasisSchema42 = Field(..., title="basis schema")
4178
- lattice: LatticeSchema41 = Field(..., title="lattice schema")
4179
- derivedProperties: Optional[List[DerivedPropertiesSchema41]] = Field(None, title="derived properties schema")
4180
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
4181
- """
4182
- information about a database source
4183
- """
4184
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
4185
- """
4186
- file source with the information inside
4187
- """
4188
- scaledHash: Optional[str] = None
4189
- """
4190
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
4191
- """
4192
- icsdId: Optional[int] = None
4193
- """
4194
- Corresponding ICSD id of the material
4195
- """
4196
- isNonPeriodic: Optional[bool] = None
4197
- """
4198
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
4199
- """
4200
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema41]] = None
4201
- field_id: Optional[str] = Field(None, alias="_id")
4202
- """
4203
- entity identity
4204
- """
4205
- slug: Optional[str] = None
4206
- """
4207
- entity slug
4208
- """
4209
- systemName: Optional[str] = None
4210
- schemaVersion: Optional[str] = "2022.8.16"
4211
- """
4212
- entity's schema version. Used to distinct between different schemas.
4213
- """
4214
- name: Optional[str] = None
4215
- """
4216
- entity name
4217
- """
4218
- isDefault: Optional[bool] = False
4219
- """
4220
- Identifies that entity is defaultable
4221
- """
4222
- metadata: Optional[Dict[str, Any]] = None
4223
-
4224
-
4225
- class AtomicLayersUniqueRepeatedSchema16(BaseModel):
4226
- termination_top: TerminationSchema18 = Field(..., title="Termination Schema")
4227
- """
4228
- Defines a specific termination of a slab
4229
- """
4230
- number_of_repetitions: conint(ge=1)
4231
- """
4232
- Number of repetitions of the unique atomic layers
4233
- """
4234
- miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
4235
- """
4236
- Miller indices [h, k, l] defining crystallographic planes
4237
- """
4238
- crystal: CrystalSchema41 = Field(..., title="Crystal Schema")
4239
- """
4240
- A crystal structure, referencing the base material schema
4241
- """
4242
- use_conventional_cell: Optional[bool] = True
4243
- """
4244
- Use the conventional cell for the crystal structure
4245
- """
4246
-
4247
-
4248
- class Value92(Enum):
4249
- H = "H"
4250
- He = "He"
4251
- Li = "Li"
4252
- Be = "Be"
4253
- B = "B"
4254
- C = "C"
4255
- N = "N"
4256
- O = "O"
4257
- F = "F"
4258
- Ne = "Ne"
4259
- Na = "Na"
4260
- Mg = "Mg"
4261
- Al = "Al"
4262
- Si = "Si"
4263
- P = "P"
4264
- S = "S"
4265
- Cl = "Cl"
4266
- Ar = "Ar"
4267
- K = "K"
4268
- Ca = "Ca"
4269
- Sc = "Sc"
4270
- Ti = "Ti"
4271
- V = "V"
4272
- Cr = "Cr"
4273
- Mn = "Mn"
4274
- Fe = "Fe"
4275
- Co = "Co"
4276
- Ni = "Ni"
4277
- Cu = "Cu"
4278
- Zn = "Zn"
4279
- Ga = "Ga"
4280
- Ge = "Ge"
4281
- As = "As"
4282
- Se = "Se"
4283
- Br = "Br"
4284
- Kr = "Kr"
4285
- Rb = "Rb"
4286
- Sr = "Sr"
4287
- Y = "Y"
4288
- Zr = "Zr"
4289
- Nb = "Nb"
4290
- Mo = "Mo"
4291
- Tc = "Tc"
4292
- Ru = "Ru"
4293
- Rh = "Rh"
4294
- Pd = "Pd"
4295
- Ag = "Ag"
4296
- Cd = "Cd"
4297
- In = "In"
4298
- Sn = "Sn"
4299
- Sb = "Sb"
4300
- Te = "Te"
4301
- I = "I"
4302
- Xe = "Xe"
4303
- Cs = "Cs"
4304
- Ba = "Ba"
4305
- La = "La"
4306
- Ce = "Ce"
4307
- Pr = "Pr"
4308
- Nd = "Nd"
4309
- Pm = "Pm"
4310
- Sm = "Sm"
4311
- Eu = "Eu"
4312
- Gd = "Gd"
4313
- Tb = "Tb"
4314
- Dy = "Dy"
4315
- Ho = "Ho"
4316
- Er = "Er"
4317
- Tm = "Tm"
4318
- Yb = "Yb"
4319
- Lu = "Lu"
4320
- Hf = "Hf"
4321
- Ta = "Ta"
4322
- W = "W"
4323
- Re = "Re"
4324
- Os = "Os"
4325
- Ir = "Ir"
4326
- Pt = "Pt"
4327
- Au = "Au"
4328
- Hg = "Hg"
4329
- Tl = "Tl"
4330
- Pb = "Pb"
4331
- Bi = "Bi"
4332
- Po = "Po"
4333
- At = "At"
4334
- Rn = "Rn"
4335
- Fr = "Fr"
4336
- Ra = "Ra"
4337
- Ac = "Ac"
4338
- Th = "Th"
4339
- Pa = "Pa"
4340
- U = "U"
4341
- Np = "Np"
4342
- Pu = "Pu"
4343
- Am = "Am"
4344
- Cm = "Cm"
4345
- Bk = "Bk"
4346
- Cf = "Cf"
4347
- Es = "Es"
4348
- Fm = "Fm"
4349
- Md = "Md"
4350
- No = "No"
4351
- Lr = "Lr"
4352
- Rf = "Rf"
4353
- Db = "Db"
4354
- Sg = "Sg"
4355
- Bh = "Bh"
4356
- Hs = "Hs"
4357
- Mt = "Mt"
4358
- Ds = "Ds"
4359
- Rg = "Rg"
4360
- Cn = "Cn"
4361
- Nh = "Nh"
4362
- Fl = "Fl"
4363
- Mc = "Mc"
4364
- Lv = "Lv"
4365
- Ts = "Ts"
4366
- Og = "Og"
4367
-
4368
-
4369
- class Value93(Enum):
4370
- X = "X"
4371
- Vac = "Vac"
4372
-
4373
-
4374
- class AtomicElementSchema45(BaseModel):
4375
- value: Union[Value92, Value93]
4376
- """
4377
- All elements, including extra elements
4378
- """
4379
- id: int
4380
- """
4381
- integer id of this entry
4382
- """
4383
-
4384
-
4385
- class BasisSchema43(BaseModel):
4386
- elements: List[AtomicElementSchema45] = Field(..., title="atomic elements schema")
4387
- """
4388
- atomic elements schema
4389
- """
4390
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
4391
- """
4392
- atomic coordinates schema
4393
- """
4394
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
4395
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
4396
- """
4397
- atomic labels schema
4398
- """
4399
-
4400
-
4401
- class LatticeVectorsSchema42(BaseModel):
4402
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4403
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4404
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4405
- alat: Optional[float] = 1
4406
- """
4407
- lattice parameter for fractional coordinates
4408
- """
4409
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
4410
-
4411
-
4412
- class LatticeUnitsSchema42(BaseModel):
4413
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
4414
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
4415
-
4416
-
4417
- class LatticeSchema42(BaseModel):
4418
- a: float
4419
- """
4420
- length of the first lattice vector
4421
- """
4422
- b: float
4423
- """
4424
- length of the second lattice vector
4425
- """
4426
- c: float
4427
- """
4428
- length of the third lattice vector
4429
- """
4430
- alpha: float
4431
- """
4432
- angle between first and second lattice vector
4433
- """
4434
- beta: float
4435
- """
4436
- angle between second and third lattice vector
4437
- """
4438
- gamma: float
4439
- """
4440
- angle between first and third lattice vector
4441
- """
4442
- vectors: Optional[LatticeVectorsSchema42] = Field(None, title="lattice vectors schema")
4443
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
4444
- units: Optional[LatticeUnitsSchema42] = Field(
4445
- default_factory=lambda: LatticeUnitsSchema42.model_validate({"length": "angstrom", "angle": "degree"}),
4446
- title="Lattice units schema",
4447
- )
4448
-
4449
-
4450
- class Name343(Enum):
4451
- volume = "volume"
4452
-
4453
-
4454
- class Units135(Enum):
4455
- angstrom_3 = "angstrom^3"
4456
-
4457
-
4458
- class VolumeSchema42(BaseModel):
4459
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
4460
- units: Optional[Units135] = None
4461
- value: float
4462
-
4463
-
4464
- class Name344(Enum):
4465
- density = "density"
4466
-
4467
-
4468
- class Units136(Enum):
4469
- g_cm_3 = "g/cm^3"
4470
-
4471
-
4472
- class DensitySchema42(BaseModel):
4473
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
4474
- units: Optional[Units136] = None
4475
- value: float
4476
-
4477
-
4478
- class Units137(Enum):
4479
- angstrom = "angstrom"
4480
-
4481
-
4482
- class ScalarSchema43(BaseModel):
4483
- units: Optional[Units137] = None
4484
- value: float
4485
-
4486
-
4487
- class Name345(Enum):
4488
- symmetry = "symmetry"
4489
-
4490
-
4491
- class SymmetrySchema42(BaseModel):
4492
- pointGroupSymbol: Optional[str] = None
4493
- """
4494
- point group symbol in Schoenflies notation
4495
- """
4496
- spaceGroupSymbol: Optional[str] = None
4497
- """
4498
- space group symbol in Hermann–Mauguin notation
4499
- """
4500
- tolerance: Optional[ScalarSchema43] = Field(None, title="scalar schema")
4501
- """
4502
- tolerance used for symmetry calculation
4503
- """
4504
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
4505
-
4506
-
4507
- class Name346(Enum):
4508
- elemental_ratio = "elemental_ratio"
4509
-
4510
-
4511
- class ElementalRatio42(BaseModel):
4512
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
4513
- value: confloat(ge=0.0, le=1.0)
4514
- element: Optional[str] = None
4515
- """
4516
- the element this ratio is for
4517
- """
4518
-
4519
-
4520
- class Name347(Enum):
4521
- p_norm = "p-norm"
4522
-
4523
-
4524
- class PNorm42(BaseModel):
4525
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
4526
- degree: Optional[int] = None
4527
- """
4528
- degree of the dimensionality of the norm
4529
- """
4530
- value: float
4531
-
4532
-
4533
- class Name348(Enum):
4534
- inchi = "inchi"
4535
-
4536
-
4537
- class InChIRepresentationSchema42(BaseModel):
4538
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
4539
- value: str
4540
-
4541
-
4542
- class Name349(Enum):
4543
- inchi_key = "inchi_key"
4544
-
4545
-
4546
- class InChIKeyRepresentationSchema42(BaseModel):
4547
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
4548
- value: str
4549
-
4550
-
4551
- class DerivedPropertiesSchema42(
4552
- RootModel[
4553
- Union[
4554
- VolumeSchema42,
4555
- DensitySchema42,
4556
- SymmetrySchema42,
4557
- ElementalRatio42,
4558
- PNorm42,
4559
- InChIRepresentationSchema42,
4560
- InChIKeyRepresentationSchema42,
4561
- ]
4562
- ]
4563
- ):
4564
- root: Union[
4565
- VolumeSchema42,
4566
- DensitySchema42,
4567
- SymmetrySchema42,
4568
- ElementalRatio42,
4569
- PNorm42,
4570
- InChIRepresentationSchema42,
4571
- InChIKeyRepresentationSchema42,
4572
- ] = Field(..., discriminator="name")
4573
-
4574
-
4575
- class Name350(Enum):
4576
- default = "default"
4577
- atomsTooClose = "atomsTooClose"
4578
- atomsOverlap = "atomsOverlap"
4579
-
4580
-
4581
- class MaterialConsistencyCheckSchema42(BaseModel):
4582
- name: Name350
4583
- """
4584
- Name of the consistency check that is performed, which is listed in an enum.
4585
- """
4586
- key: str
4587
- """
4588
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
4589
- """
4590
- severity: Severity
4591
- """
4592
- Severity level of the problem, which is used in UI to differentiate.
4593
- """
4594
- message: str
4595
- """
4596
- Message generated by the consistency check describing the problem.
4597
- """
4598
-
4599
-
4600
- class CrystalSchema42(BaseModel):
4601
- formula: Optional[str] = None
4602
- """
4603
- reduced chemical formula
4604
- """
4605
- unitCellFormula: Optional[str] = None
4606
- """
4607
- chemical formula based on the number of atoms of each element in the supercell
4608
- """
4609
- basis: BasisSchema43 = Field(..., title="basis schema")
4610
- lattice: LatticeSchema42 = Field(..., title="lattice schema")
4611
- derivedProperties: Optional[List[DerivedPropertiesSchema42]] = Field(None, title="derived properties schema")
4612
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
4613
- """
4614
- information about a database source
4615
- """
4616
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
4617
- """
4618
- file source with the information inside
4619
- """
4620
- scaledHash: Optional[str] = None
4621
- """
4622
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
4623
- """
4624
- icsdId: Optional[int] = None
4625
- """
4626
- Corresponding ICSD id of the material
4627
- """
4628
- isNonPeriodic: Optional[bool] = None
4629
- """
4630
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
4631
- """
4632
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema42]] = None
4633
- field_id: Optional[str] = Field(None, alias="_id")
4634
- """
4635
- entity identity
4636
- """
4637
- slug: Optional[str] = None
4638
- """
4639
- entity slug
4640
- """
4641
- systemName: Optional[str] = None
4642
- schemaVersion: Optional[str] = "2022.8.16"
4643
- """
4644
- entity's schema version. Used to distinct between different schemas.
4645
- """
4646
- name: Optional[str] = None
4647
- """
4648
- entity name
4649
- """
4650
- isDefault: Optional[bool] = False
4651
- """
4652
- Identifies that entity is defaultable
4653
- """
4654
- metadata: Optional[Dict[str, Any]] = None
4655
-
4656
-
4657
- class VacuumConfigurationSchema19(BaseModel):
4658
- direction: AxisEnum = Field(..., title="Axis Enum")
4659
- """
4660
- Enum for axis types
4661
- """
4662
- size: Optional[confloat(ge=0.0)] = 10
4663
- """
4664
- Size of the vacuum slab in angstroms
4665
- """
4666
- crystal: CrystalSchema42 = Field(..., title="Crystal Schema")
4667
- """
4668
- A crystal structure, referencing the base material schema
4669
- """
4670
-
4671
-
4672
- class SlabStrainedSupercellConfigurationSchema3(BaseModel):
4673
- xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
4674
- default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
4675
- max_length=2,
4676
- min_length=2,
4677
- title="Supercell Matrix 2D Schema",
4678
- )
4679
- """
4680
- Supercell matrix for xy plane transformations
4681
- """
4682
- strain_matrix: List[ArrayOf3NumberElementsSchema] = Field(
4683
- ..., max_length=3, min_length=3, title="matrix 3x3 schema"
4684
- )
4685
- stack_components: List[Union[AtomicLayersUniqueRepeatedSchema16, VacuumConfigurationSchema19]] = Field(
4686
- ..., max_length=2, min_length=2
4687
- )
4688
- direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
4689
- """
4690
- Enum for axis types
4691
- """
4692
-
4693
-
4694
- class TerminationSchema19(BaseModel):
4695
- chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
4696
- ..., title="Chemical Elements"
4697
- )
4698
- """
4699
- Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
4700
- """
4701
- space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
4702
- """
4703
- Space group symmetry designation for the termination
4704
- """
4705
-
4706
-
4707
- class Value94(Enum):
4708
- H = "H"
4709
- He = "He"
4710
- Li = "Li"
4711
- Be = "Be"
4712
- B = "B"
4713
- C = "C"
4714
- N = "N"
4715
- O = "O"
4716
- F = "F"
4717
- Ne = "Ne"
4718
- Na = "Na"
4719
- Mg = "Mg"
4720
- Al = "Al"
4721
- Si = "Si"
4722
- P = "P"
4723
- S = "S"
4724
- Cl = "Cl"
4725
- Ar = "Ar"
4726
- K = "K"
4727
- Ca = "Ca"
4728
- Sc = "Sc"
4729
- Ti = "Ti"
4730
- V = "V"
4731
- Cr = "Cr"
4732
- Mn = "Mn"
4733
- Fe = "Fe"
4734
- Co = "Co"
4735
- Ni = "Ni"
4736
- Cu = "Cu"
4737
- Zn = "Zn"
4738
- Ga = "Ga"
4739
- Ge = "Ge"
4740
- As = "As"
4741
- Se = "Se"
4742
- Br = "Br"
4743
- Kr = "Kr"
4744
- Rb = "Rb"
4745
- Sr = "Sr"
4746
- Y = "Y"
4747
- Zr = "Zr"
4748
- Nb = "Nb"
4749
- Mo = "Mo"
4750
- Tc = "Tc"
4751
- Ru = "Ru"
4752
- Rh = "Rh"
4753
- Pd = "Pd"
4754
- Ag = "Ag"
4755
- Cd = "Cd"
4756
- In = "In"
4757
- Sn = "Sn"
4758
- Sb = "Sb"
4759
- Te = "Te"
4760
- I = "I"
4761
- Xe = "Xe"
4762
- Cs = "Cs"
4763
- Ba = "Ba"
4764
- La = "La"
4765
- Ce = "Ce"
4766
- Pr = "Pr"
4767
- Nd = "Nd"
4768
- Pm = "Pm"
4769
- Sm = "Sm"
4770
- Eu = "Eu"
4771
- Gd = "Gd"
4772
- Tb = "Tb"
4773
- Dy = "Dy"
4774
- Ho = "Ho"
4775
- Er = "Er"
4776
- Tm = "Tm"
4777
- Yb = "Yb"
4778
- Lu = "Lu"
4779
- Hf = "Hf"
4780
- Ta = "Ta"
4781
- W = "W"
4782
- Re = "Re"
4783
- Os = "Os"
4784
- Ir = "Ir"
4785
- Pt = "Pt"
4786
- Au = "Au"
4787
- Hg = "Hg"
4788
- Tl = "Tl"
4789
- Pb = "Pb"
4790
- Bi = "Bi"
4791
- Po = "Po"
4792
- At = "At"
4793
- Rn = "Rn"
4794
- Fr = "Fr"
4795
- Ra = "Ra"
4796
- Ac = "Ac"
4797
- Th = "Th"
4798
- Pa = "Pa"
4799
- U = "U"
4800
- Np = "Np"
4801
- Pu = "Pu"
4802
- Am = "Am"
4803
- Cm = "Cm"
4804
- Bk = "Bk"
4805
- Cf = "Cf"
4806
- Es = "Es"
4807
- Fm = "Fm"
4808
- Md = "Md"
4809
- No = "No"
4810
- Lr = "Lr"
4811
- Rf = "Rf"
4812
- Db = "Db"
4813
- Sg = "Sg"
4814
- Bh = "Bh"
4815
- Hs = "Hs"
4816
- Mt = "Mt"
4817
- Ds = "Ds"
4818
- Rg = "Rg"
4819
- Cn = "Cn"
4820
- Nh = "Nh"
4821
- Fl = "Fl"
4822
- Mc = "Mc"
4823
- Lv = "Lv"
4824
- Ts = "Ts"
4825
- Og = "Og"
4826
-
4827
-
4828
- class Value95(Enum):
4829
- X = "X"
4830
- Vac = "Vac"
4831
-
4832
-
4833
- class AtomicElementSchema46(BaseModel):
4834
- value: Union[Value94, Value95]
4835
- """
4836
- All elements, including extra elements
4837
- """
4838
- id: int
4839
- """
4840
- integer id of this entry
4841
- """
4842
-
4843
-
4844
- class BasisSchema44(BaseModel):
4845
- elements: List[AtomicElementSchema46] = Field(..., title="atomic elements schema")
4846
- """
4847
- atomic elements schema
4848
- """
4849
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
4850
- """
4851
- atomic coordinates schema
4852
- """
4853
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
4854
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
4855
- """
4856
- atomic labels schema
4857
- """
4858
-
4859
-
4860
- class LatticeVectorsSchema43(BaseModel):
4861
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4862
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4863
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4864
- alat: Optional[float] = 1
4865
- """
4866
- lattice parameter for fractional coordinates
4867
- """
4868
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
4869
-
4870
-
4871
- class LatticeUnitsSchema43(BaseModel):
4872
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
4873
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
4874
-
4875
-
4876
- class LatticeSchema43(BaseModel):
4877
- a: float
4878
- """
4879
- length of the first lattice vector
4880
- """
4881
- b: float
4882
- """
4883
- length of the second lattice vector
4884
- """
4885
- c: float
4886
- """
4887
- length of the third lattice vector
4888
- """
4889
- alpha: float
4890
- """
4891
- angle between first and second lattice vector
4892
- """
4893
- beta: float
4894
- """
4895
- angle between second and third lattice vector
4896
- """
4897
- gamma: float
4898
- """
4899
- angle between first and third lattice vector
4900
- """
4901
- vectors: Optional[LatticeVectorsSchema43] = Field(None, title="lattice vectors schema")
4902
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
4903
- units: Optional[LatticeUnitsSchema43] = Field(
4904
- default_factory=lambda: LatticeUnitsSchema43.model_validate({"length": "angstrom", "angle": "degree"}),
4905
- title="Lattice units schema",
4906
- )
4907
-
4908
-
4909
- class Name351(Enum):
4910
- volume = "volume"
4911
-
4912
-
4913
- class Units138(Enum):
4914
- angstrom_3 = "angstrom^3"
4915
-
4916
-
4917
- class VolumeSchema43(BaseModel):
4918
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
4919
- units: Optional[Units138] = None
4920
- value: float
4921
-
4922
-
4923
- class Name352(Enum):
4924
- density = "density"
4925
-
4926
-
4927
- class Units139(Enum):
4928
- g_cm_3 = "g/cm^3"
4929
-
4930
-
4931
- class DensitySchema43(BaseModel):
4932
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
4933
- units: Optional[Units139] = None
4934
- value: float
4935
-
4936
-
4937
- class Units140(Enum):
4938
- angstrom = "angstrom"
4939
-
4940
-
4941
- class ScalarSchema44(BaseModel):
4942
- units: Optional[Units140] = None
4943
- value: float
4944
-
4945
-
4946
- class Name353(Enum):
4947
- symmetry = "symmetry"
4948
-
4949
-
4950
- class SymmetrySchema43(BaseModel):
4951
- pointGroupSymbol: Optional[str] = None
4952
- """
4953
- point group symbol in Schoenflies notation
4954
- """
4955
- spaceGroupSymbol: Optional[str] = None
4956
- """
4957
- space group symbol in Hermann–Mauguin notation
4958
- """
4959
- tolerance: Optional[ScalarSchema44] = Field(None, title="scalar schema")
4960
- """
4961
- tolerance used for symmetry calculation
4962
- """
4963
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
4964
-
4965
-
4966
- class Name354(Enum):
4967
- elemental_ratio = "elemental_ratio"
4968
-
4969
-
4970
- class ElementalRatio43(BaseModel):
4971
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
4972
- value: confloat(ge=0.0, le=1.0)
4973
- element: Optional[str] = None
4974
- """
4975
- the element this ratio is for
4976
- """
4977
-
4978
-
4979
- class Name355(Enum):
4980
- p_norm = "p-norm"
4981
-
4982
-
4983
- class PNorm43(BaseModel):
4984
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
4985
- degree: Optional[int] = None
4986
- """
4987
- degree of the dimensionality of the norm
4988
- """
4989
- value: float
4990
-
4991
-
4992
- class Name356(Enum):
4993
- inchi = "inchi"
4994
-
4995
-
4996
- class InChIRepresentationSchema43(BaseModel):
4997
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
4998
- value: str
4999
-
5000
-
5001
- class Name357(Enum):
5002
- inchi_key = "inchi_key"
5003
-
5004
-
5005
- class InChIKeyRepresentationSchema43(BaseModel):
5006
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5007
- value: str
5008
-
5009
-
5010
- class DerivedPropertiesSchema43(
5011
- RootModel[
5012
- Union[
5013
- VolumeSchema43,
5014
- DensitySchema43,
5015
- SymmetrySchema43,
5016
- ElementalRatio43,
5017
- PNorm43,
5018
- InChIRepresentationSchema43,
5019
- InChIKeyRepresentationSchema43,
5020
- ]
5021
- ]
5022
- ):
5023
- root: Union[
5024
- VolumeSchema43,
5025
- DensitySchema43,
5026
- SymmetrySchema43,
5027
- ElementalRatio43,
5028
- PNorm43,
5029
- InChIRepresentationSchema43,
5030
- InChIKeyRepresentationSchema43,
5031
- ] = Field(..., discriminator="name")
5032
-
5033
-
5034
- class Name358(Enum):
5035
- default = "default"
5036
- atomsTooClose = "atomsTooClose"
5037
- atomsOverlap = "atomsOverlap"
5038
-
5039
-
5040
- class MaterialConsistencyCheckSchema43(BaseModel):
5041
- name: Name358
5042
- """
5043
- Name of the consistency check that is performed, which is listed in an enum.
5044
- """
5045
- key: str
5046
- """
5047
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
5048
- """
5049
- severity: Severity
5050
- """
5051
- Severity level of the problem, which is used in UI to differentiate.
5052
- """
5053
- message: str
5054
- """
5055
- Message generated by the consistency check describing the problem.
5056
- """
5057
-
5058
-
5059
- class CrystalSchema43(BaseModel):
5060
- formula: Optional[str] = None
5061
- """
5062
- reduced chemical formula
5063
- """
5064
- unitCellFormula: Optional[str] = None
5065
- """
5066
- chemical formula based on the number of atoms of each element in the supercell
5067
- """
5068
- basis: BasisSchema44 = Field(..., title="basis schema")
5069
- lattice: LatticeSchema43 = Field(..., title="lattice schema")
5070
- derivedProperties: Optional[List[DerivedPropertiesSchema43]] = Field(None, title="derived properties schema")
5071
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
5072
- """
5073
- information about a database source
5074
- """
5075
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
5076
- """
5077
- file source with the information inside
5078
- """
5079
- scaledHash: Optional[str] = None
5080
- """
5081
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
5082
- """
5083
- icsdId: Optional[int] = None
5084
- """
5085
- Corresponding ICSD id of the material
5086
- """
5087
- isNonPeriodic: Optional[bool] = None
5088
- """
5089
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
5090
- """
5091
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema43]] = None
5092
- field_id: Optional[str] = Field(None, alias="_id")
5093
- """
5094
- entity identity
5095
- """
5096
- slug: Optional[str] = None
5097
- """
5098
- entity slug
5099
- """
5100
- systemName: Optional[str] = None
5101
- schemaVersion: Optional[str] = "2022.8.16"
5102
- """
5103
- entity's schema version. Used to distinct between different schemas.
5104
- """
5105
- name: Optional[str] = None
5106
- """
5107
- entity name
5108
- """
5109
- isDefault: Optional[bool] = False
5110
- """
5111
- Identifies that entity is defaultable
5112
- """
5113
- metadata: Optional[Dict[str, Any]] = None
5114
-
5115
-
5116
- class AtomicLayersUniqueRepeatedSchema17(BaseModel):
5117
- termination_top: TerminationSchema19 = Field(..., title="Termination Schema")
5118
- """
5119
- Defines a specific termination of a slab
5120
- """
5121
- number_of_repetitions: conint(ge=1)
5122
- """
5123
- Number of repetitions of the unique atomic layers
5124
- """
5125
- miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
5126
- """
5127
- Miller indices [h, k, l] defining crystallographic planes
5128
- """
5129
- crystal: CrystalSchema43 = Field(..., title="Crystal Schema")
5130
- """
5131
- A crystal structure, referencing the base material schema
5132
- """
5133
- use_conventional_cell: Optional[bool] = True
5134
- """
5135
- Use the conventional cell for the crystal structure
5136
- """
5137
-
5138
-
5139
- class Value96(Enum):
5140
- H = "H"
5141
- He = "He"
5142
- Li = "Li"
5143
- Be = "Be"
5144
- B = "B"
5145
- C = "C"
5146
- N = "N"
5147
- O = "O"
5148
- F = "F"
5149
- Ne = "Ne"
5150
- Na = "Na"
5151
- Mg = "Mg"
5152
- Al = "Al"
5153
- Si = "Si"
5154
- P = "P"
5155
- S = "S"
5156
- Cl = "Cl"
5157
- Ar = "Ar"
5158
- K = "K"
5159
- Ca = "Ca"
5160
- Sc = "Sc"
5161
- Ti = "Ti"
5162
- V = "V"
5163
- Cr = "Cr"
5164
- Mn = "Mn"
5165
- Fe = "Fe"
5166
- Co = "Co"
5167
- Ni = "Ni"
5168
- Cu = "Cu"
5169
- Zn = "Zn"
5170
- Ga = "Ga"
5171
- Ge = "Ge"
5172
- As = "As"
5173
- Se = "Se"
5174
- Br = "Br"
5175
- Kr = "Kr"
5176
- Rb = "Rb"
5177
- Sr = "Sr"
5178
- Y = "Y"
5179
- Zr = "Zr"
5180
- Nb = "Nb"
5181
- Mo = "Mo"
5182
- Tc = "Tc"
5183
- Ru = "Ru"
5184
- Rh = "Rh"
5185
- Pd = "Pd"
5186
- Ag = "Ag"
5187
- Cd = "Cd"
5188
- In = "In"
5189
- Sn = "Sn"
5190
- Sb = "Sb"
5191
- Te = "Te"
5192
- I = "I"
5193
- Xe = "Xe"
5194
- Cs = "Cs"
5195
- Ba = "Ba"
5196
- La = "La"
5197
- Ce = "Ce"
5198
- Pr = "Pr"
5199
- Nd = "Nd"
5200
- Pm = "Pm"
5201
- Sm = "Sm"
5202
- Eu = "Eu"
5203
- Gd = "Gd"
5204
- Tb = "Tb"
5205
- Dy = "Dy"
5206
- Ho = "Ho"
5207
- Er = "Er"
5208
- Tm = "Tm"
5209
- Yb = "Yb"
5210
- Lu = "Lu"
5211
- Hf = "Hf"
5212
- Ta = "Ta"
5213
- W = "W"
5214
- Re = "Re"
5215
- Os = "Os"
5216
- Ir = "Ir"
5217
- Pt = "Pt"
5218
- Au = "Au"
5219
- Hg = "Hg"
5220
- Tl = "Tl"
5221
- Pb = "Pb"
5222
- Bi = "Bi"
5223
- Po = "Po"
5224
- At = "At"
5225
- Rn = "Rn"
5226
- Fr = "Fr"
5227
- Ra = "Ra"
5228
- Ac = "Ac"
5229
- Th = "Th"
5230
- Pa = "Pa"
5231
- U = "U"
5232
- Np = "Np"
5233
- Pu = "Pu"
5234
- Am = "Am"
5235
- Cm = "Cm"
5236
- Bk = "Bk"
5237
- Cf = "Cf"
5238
- Es = "Es"
5239
- Fm = "Fm"
5240
- Md = "Md"
5241
- No = "No"
5242
- Lr = "Lr"
5243
- Rf = "Rf"
5244
- Db = "Db"
5245
- Sg = "Sg"
5246
- Bh = "Bh"
5247
- Hs = "Hs"
5248
- Mt = "Mt"
5249
- Ds = "Ds"
5250
- Rg = "Rg"
5251
- Cn = "Cn"
5252
- Nh = "Nh"
5253
- Fl = "Fl"
5254
- Mc = "Mc"
5255
- Lv = "Lv"
5256
- Ts = "Ts"
5257
- Og = "Og"
5258
-
5259
-
5260
- class Value97(Enum):
5261
- X = "X"
5262
- Vac = "Vac"
5263
-
5264
-
5265
- class AtomicElementSchema47(BaseModel):
5266
- value: Union[Value96, Value97]
5267
- """
5268
- All elements, including extra elements
5269
- """
5270
- id: int
5271
- """
5272
- integer id of this entry
5273
- """
5274
-
5275
-
5276
- class BasisSchema45(BaseModel):
5277
- elements: List[AtomicElementSchema47] = Field(..., title="atomic elements schema")
5278
- """
5279
- atomic elements schema
5280
- """
5281
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
5282
- """
5283
- atomic coordinates schema
5284
- """
5285
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
5286
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
5287
- """
5288
- atomic labels schema
5289
- """
5290
-
5291
-
5292
- class LatticeVectorsSchema44(BaseModel):
5293
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
5294
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
5295
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
5296
- alat: Optional[float] = 1
5297
- """
5298
- lattice parameter for fractional coordinates
5299
- """
5300
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
5301
-
5302
-
5303
- class LatticeUnitsSchema44(BaseModel):
5304
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
5305
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
5306
-
5307
-
5308
- class LatticeSchema44(BaseModel):
5309
- a: float
5310
- """
5311
- length of the first lattice vector
5312
- """
5313
- b: float
5314
- """
5315
- length of the second lattice vector
5316
- """
5317
- c: float
5318
- """
5319
- length of the third lattice vector
5320
- """
5321
- alpha: float
5322
- """
5323
- angle between first and second lattice vector
5324
- """
5325
- beta: float
5326
- """
5327
- angle between second and third lattice vector
5328
- """
5329
- gamma: float
5330
- """
5331
- angle between first and third lattice vector
5332
- """
5333
- vectors: Optional[LatticeVectorsSchema44] = Field(None, title="lattice vectors schema")
5334
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
5335
- units: Optional[LatticeUnitsSchema44] = Field(
5336
- default_factory=lambda: LatticeUnitsSchema44.model_validate({"length": "angstrom", "angle": "degree"}),
5337
- title="Lattice units schema",
5338
- )
5339
-
5340
-
5341
- class Name359(Enum):
5342
- volume = "volume"
5343
-
5344
-
5345
- class Units141(Enum):
5346
- angstrom_3 = "angstrom^3"
5347
-
5348
-
5349
- class VolumeSchema44(BaseModel):
5350
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
5351
- units: Optional[Units141] = None
5352
- value: float
5353
-
5354
-
5355
- class Name360(Enum):
5356
- density = "density"
5357
-
5358
-
5359
- class Units142(Enum):
5360
- g_cm_3 = "g/cm^3"
5361
-
5362
-
5363
- class DensitySchema44(BaseModel):
5364
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
5365
- units: Optional[Units142] = None
5366
- value: float
5367
-
5368
-
5369
- class Units143(Enum):
5370
- angstrom = "angstrom"
5371
-
5372
-
5373
- class ScalarSchema45(BaseModel):
5374
- units: Optional[Units143] = None
5375
- value: float
5376
-
5377
-
5378
- class Name361(Enum):
5379
- symmetry = "symmetry"
5380
-
5381
-
5382
- class SymmetrySchema44(BaseModel):
5383
- pointGroupSymbol: Optional[str] = None
5384
- """
5385
- point group symbol in Schoenflies notation
5386
- """
5387
- spaceGroupSymbol: Optional[str] = None
5388
- """
5389
- space group symbol in Hermann–Mauguin notation
5390
- """
5391
- tolerance: Optional[ScalarSchema45] = Field(None, title="scalar schema")
5392
- """
5393
- tolerance used for symmetry calculation
5394
- """
5395
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
5396
-
5397
-
5398
- class Name362(Enum):
5399
- elemental_ratio = "elemental_ratio"
5400
-
5401
-
5402
- class ElementalRatio44(BaseModel):
5403
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
5404
- value: confloat(ge=0.0, le=1.0)
5405
- element: Optional[str] = None
5406
- """
5407
- the element this ratio is for
5408
- """
5409
-
5410
-
5411
- class Name363(Enum):
5412
- p_norm = "p-norm"
5413
-
5414
-
5415
- class PNorm44(BaseModel):
5416
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
5417
- degree: Optional[int] = None
5418
- """
5419
- degree of the dimensionality of the norm
5420
- """
5421
- value: float
5422
-
5423
-
5424
- class Name364(Enum):
5425
- inchi = "inchi"
5426
-
5427
-
5428
- class InChIRepresentationSchema44(BaseModel):
5429
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
5430
- value: str
5431
-
5432
-
5433
- class Name365(Enum):
5434
- inchi_key = "inchi_key"
5435
-
5436
-
5437
- class InChIKeyRepresentationSchema44(BaseModel):
5438
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5439
- value: str
5440
-
5441
-
5442
- class DerivedPropertiesSchema44(
5443
- RootModel[
5444
- Union[
5445
- VolumeSchema44,
5446
- DensitySchema44,
5447
- SymmetrySchema44,
5448
- ElementalRatio44,
5449
- PNorm44,
5450
- InChIRepresentationSchema44,
5451
- InChIKeyRepresentationSchema44,
5452
- ]
5453
- ]
5454
- ):
5455
- root: Union[
5456
- VolumeSchema44,
5457
- DensitySchema44,
5458
- SymmetrySchema44,
5459
- ElementalRatio44,
5460
- PNorm44,
5461
- InChIRepresentationSchema44,
5462
- InChIKeyRepresentationSchema44,
5463
- ] = Field(..., discriminator="name")
5464
-
5465
-
5466
- class Name366(Enum):
5467
- default = "default"
5468
- atomsTooClose = "atomsTooClose"
5469
- atomsOverlap = "atomsOverlap"
5470
-
5471
-
5472
- class MaterialConsistencyCheckSchema44(BaseModel):
5473
- name: Name366
5474
- """
5475
- Name of the consistency check that is performed, which is listed in an enum.
5476
- """
5477
- key: str
5478
- """
5479
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
5480
- """
5481
- severity: Severity
5482
- """
5483
- Severity level of the problem, which is used in UI to differentiate.
5484
- """
5485
- message: str
5486
- """
5487
- Message generated by the consistency check describing the problem.
5488
- """
5489
-
5490
-
5491
- class CrystalSchema44(BaseModel):
5492
- formula: Optional[str] = None
5493
- """
5494
- reduced chemical formula
5495
- """
5496
- unitCellFormula: Optional[str] = None
5497
- """
5498
- chemical formula based on the number of atoms of each element in the supercell
5499
- """
5500
- basis: BasisSchema45 = Field(..., title="basis schema")
5501
- lattice: LatticeSchema44 = Field(..., title="lattice schema")
5502
- derivedProperties: Optional[List[DerivedPropertiesSchema44]] = Field(None, title="derived properties schema")
5503
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
5504
- """
5505
- information about a database source
5506
- """
5507
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
5508
- """
5509
- file source with the information inside
5510
- """
5511
- scaledHash: Optional[str] = None
5512
- """
5513
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
5514
- """
5515
- icsdId: Optional[int] = None
5516
- """
5517
- Corresponding ICSD id of the material
5518
- """
5519
- isNonPeriodic: Optional[bool] = None
5520
- """
5521
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
5522
- """
5523
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema44]] = None
5524
- field_id: Optional[str] = Field(None, alias="_id")
5525
- """
5526
- entity identity
5527
- """
5528
- slug: Optional[str] = None
5529
- """
5530
- entity slug
5531
- """
5532
- systemName: Optional[str] = None
5533
- schemaVersion: Optional[str] = "2022.8.16"
5534
- """
5535
- entity's schema version. Used to distinct between different schemas.
5536
- """
5537
- name: Optional[str] = None
5538
- """
5539
- entity name
5540
- """
5541
- isDefault: Optional[bool] = False
5542
- """
5543
- Identifies that entity is defaultable
5544
- """
5545
- metadata: Optional[Dict[str, Any]] = None
5546
-
5547
-
5548
- class VacuumConfigurationSchema20(BaseModel):
5549
- direction: AxisEnum = Field(..., title="Axis Enum")
5550
- """
5551
- Enum for axis types
5552
- """
5553
- size: Optional[confloat(ge=0.0)] = 10
5554
- """
5555
- Size of the vacuum slab in angstroms
5556
- """
5557
- crystal: CrystalSchema44 = Field(..., title="Crystal Schema")
5558
- """
5559
- A crystal structure, referencing the base material schema
5560
- """
5561
-
5562
-
5563
- class SlabStrainedSupercellWithGapConfigurationSchema3(BaseModel):
5564
- gap: Optional[confloat(ge=0.0)] = None
5565
- """
5566
- If provided, the film is shifted to have it as smallest distance to the substrate
5567
- """
5568
- xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
5569
- default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
5570
- max_length=2,
5571
- min_length=2,
5572
- title="Supercell Matrix 2D Schema",
5573
- )
5574
- """
5575
- Supercell matrix for xy plane transformations
5576
- """
5577
- strain_matrix: List[ArrayOf3NumberElementsSchema] = Field(
5578
- ..., max_length=3, min_length=3, title="matrix 3x3 schema"
5579
- )
5580
- stack_components: List[Union[AtomicLayersUniqueRepeatedSchema17, VacuumConfigurationSchema20]] = Field(
5581
- ..., max_length=2, min_length=2
5582
- )
5583
- direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
5584
- """
5585
- Enum for axis types
5586
- """
5587
-
5588
-
5589
- class Value98(Enum):
5590
- H = "H"
5591
- He = "He"
5592
- Li = "Li"
5593
- Be = "Be"
5594
- B = "B"
5595
- C = "C"
5596
- N = "N"
5597
- O = "O"
5598
- F = "F"
5599
- Ne = "Ne"
5600
- Na = "Na"
5601
- Mg = "Mg"
5602
- Al = "Al"
5603
- Si = "Si"
5604
- P = "P"
5605
- S = "S"
5606
- Cl = "Cl"
5607
- Ar = "Ar"
5608
- K = "K"
5609
- Ca = "Ca"
5610
- Sc = "Sc"
5611
- Ti = "Ti"
5612
- V = "V"
5613
- Cr = "Cr"
5614
- Mn = "Mn"
5615
- Fe = "Fe"
5616
- Co = "Co"
5617
- Ni = "Ni"
5618
- Cu = "Cu"
5619
- Zn = "Zn"
5620
- Ga = "Ga"
5621
- Ge = "Ge"
5622
- As = "As"
5623
- Se = "Se"
5624
- Br = "Br"
5625
- Kr = "Kr"
5626
- Rb = "Rb"
5627
- Sr = "Sr"
5628
- Y = "Y"
5629
- Zr = "Zr"
5630
- Nb = "Nb"
5631
- Mo = "Mo"
5632
- Tc = "Tc"
5633
- Ru = "Ru"
5634
- Rh = "Rh"
5635
- Pd = "Pd"
5636
- Ag = "Ag"
5637
- Cd = "Cd"
5638
- In = "In"
5639
- Sn = "Sn"
5640
- Sb = "Sb"
5641
- Te = "Te"
5642
- I = "I"
5643
- Xe = "Xe"
5644
- Cs = "Cs"
5645
- Ba = "Ba"
5646
- La = "La"
5647
- Ce = "Ce"
5648
- Pr = "Pr"
5649
- Nd = "Nd"
5650
- Pm = "Pm"
5651
- Sm = "Sm"
5652
- Eu = "Eu"
5653
- Gd = "Gd"
5654
- Tb = "Tb"
5655
- Dy = "Dy"
5656
- Ho = "Ho"
5657
- Er = "Er"
5658
- Tm = "Tm"
5659
- Yb = "Yb"
5660
- Lu = "Lu"
5661
- Hf = "Hf"
5662
- Ta = "Ta"
5663
- W = "W"
5664
- Re = "Re"
5665
- Os = "Os"
5666
- Ir = "Ir"
5667
- Pt = "Pt"
5668
- Au = "Au"
5669
- Hg = "Hg"
5670
- Tl = "Tl"
5671
- Pb = "Pb"
5672
- Bi = "Bi"
5673
- Po = "Po"
5674
- At = "At"
5675
- Rn = "Rn"
5676
- Fr = "Fr"
5677
- Ra = "Ra"
5678
- Ac = "Ac"
5679
- Th = "Th"
5680
- Pa = "Pa"
5681
- U = "U"
5682
- Np = "Np"
5683
- Pu = "Pu"
5684
- Am = "Am"
5685
- Cm = "Cm"
5686
- Bk = "Bk"
5687
- Cf = "Cf"
5688
- Es = "Es"
5689
- Fm = "Fm"
5690
- Md = "Md"
5691
- No = "No"
5692
- Lr = "Lr"
5693
- Rf = "Rf"
5694
- Db = "Db"
5695
- Sg = "Sg"
5696
- Bh = "Bh"
5697
- Hs = "Hs"
5698
- Mt = "Mt"
5699
- Ds = "Ds"
5700
- Rg = "Rg"
5701
- Cn = "Cn"
5702
- Nh = "Nh"
5703
- Fl = "Fl"
5704
- Mc = "Mc"
5705
- Lv = "Lv"
5706
- Ts = "Ts"
5707
- Og = "Og"
5708
-
5709
-
5710
- class Value99(Enum):
5711
- X = "X"
5712
- Vac = "Vac"
5713
-
5714
-
5715
- class AtomicElementSchema48(BaseModel):
5716
- value: Union[Value98, Value99]
5717
- """
5718
- All elements, including extra elements
5719
- """
5720
- id: int
5721
- """
5722
- integer id of this entry
5723
- """
5724
-
5725
-
5726
- class BasisSchema46(BaseModel):
5727
- elements: List[AtomicElementSchema48] = Field(..., title="atomic elements schema")
5728
- """
5729
- atomic elements schema
5730
- """
5731
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
5732
- """
5733
- atomic coordinates schema
5734
- """
5735
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
5736
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
5737
- """
5738
- atomic labels schema
5739
- """
5740
-
5741
-
5742
- class LatticeVectorsSchema45(BaseModel):
5743
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
5744
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
5745
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
5746
- alat: Optional[float] = 1
5747
- """
5748
- lattice parameter for fractional coordinates
5749
- """
5750
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
5751
-
5752
-
5753
- class LatticeUnitsSchema45(BaseModel):
5754
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
5755
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
5756
-
5757
-
5758
- class LatticeSchema45(BaseModel):
5759
- a: float
5760
- """
5761
- length of the first lattice vector
5762
- """
5763
- b: float
5764
- """
5765
- length of the second lattice vector
5766
- """
5767
- c: float
5768
- """
5769
- length of the third lattice vector
5770
- """
5771
- alpha: float
5772
- """
5773
- angle between first and second lattice vector
5774
- """
5775
- beta: float
5776
- """
5777
- angle between second and third lattice vector
5778
- """
5779
- gamma: float
5780
- """
5781
- angle between first and third lattice vector
5782
- """
5783
- vectors: Optional[LatticeVectorsSchema45] = Field(None, title="lattice vectors schema")
5784
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
5785
- units: Optional[LatticeUnitsSchema45] = Field(
5786
- default_factory=lambda: LatticeUnitsSchema45.model_validate({"length": "angstrom", "angle": "degree"}),
5787
- title="Lattice units schema",
5788
- )
5789
-
5790
-
5791
- class Name367(Enum):
5792
- volume = "volume"
5793
-
5794
-
5795
- class Units144(Enum):
5796
- angstrom_3 = "angstrom^3"
5797
-
5798
-
5799
- class VolumeSchema45(BaseModel):
5800
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
5801
- units: Optional[Units144] = None
5802
- value: float
5803
-
5804
-
5805
- class Name368(Enum):
5806
- density = "density"
5807
-
5808
-
5809
- class Units145(Enum):
5810
- g_cm_3 = "g/cm^3"
5811
-
5812
-
5813
- class DensitySchema45(BaseModel):
4047
+ class DensitySchema37(BaseModel):
5814
4048
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
5815
- units: Optional[Units145] = None
4049
+ units: Optional[Units121] = None
5816
4050
  value: float
5817
4051
 
5818
4052
 
5819
- class Units146(Enum):
4053
+ class Units122(Enum):
5820
4054
  angstrom = "angstrom"
5821
4055
 
5822
4056
 
5823
- class ScalarSchema46(BaseModel):
5824
- units: Optional[Units146] = None
4057
+ class ScalarSchema38(BaseModel):
4058
+ units: Optional[Units122] = None
5825
4059
  value: float
5826
4060
 
5827
4061
 
5828
- class Name369(Enum):
4062
+ class Name305(Enum):
5829
4063
  symmetry = "symmetry"
5830
4064
 
5831
4065
 
5832
- class SymmetrySchema45(BaseModel):
4066
+ class SymmetrySchema37(BaseModel):
5833
4067
  pointGroupSymbol: Optional[str] = None
5834
4068
  """
5835
4069
  point group symbol in Schoenflies notation
@@ -5838,18 +4072,18 @@ class SymmetrySchema45(BaseModel):
5838
4072
  """
5839
4073
  space group symbol in Hermann–Mauguin notation
5840
4074
  """
5841
- tolerance: Optional[ScalarSchema46] = Field(None, title="scalar schema")
4075
+ tolerance: Optional[ScalarSchema38] = Field(None, title="scalar schema")
5842
4076
  """
5843
4077
  tolerance used for symmetry calculation
5844
4078
  """
5845
4079
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
5846
4080
 
5847
4081
 
5848
- class Name370(Enum):
4082
+ class Name306(Enum):
5849
4083
  elemental_ratio = "elemental_ratio"
5850
4084
 
5851
4085
 
5852
- class ElementalRatio45(BaseModel):
4086
+ class ElementalRatio37(BaseModel):
5853
4087
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
5854
4088
  value: confloat(ge=0.0, le=1.0)
5855
4089
  element: Optional[str] = None
@@ -5858,11 +4092,11 @@ class ElementalRatio45(BaseModel):
5858
4092
  """
5859
4093
 
5860
4094
 
5861
- class Name371(Enum):
4095
+ class Name307(Enum):
5862
4096
  p_norm = "p-norm"
5863
4097
 
5864
4098
 
5865
- class PNorm45(BaseModel):
4099
+ class PNorm37(BaseModel):
5866
4100
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
5867
4101
  degree: Optional[int] = None
5868
4102
  """
@@ -5871,56 +4105,56 @@ class PNorm45(BaseModel):
5871
4105
  value: float
5872
4106
 
5873
4107
 
5874
- class Name372(Enum):
4108
+ class Name308(Enum):
5875
4109
  inchi = "inchi"
5876
4110
 
5877
4111
 
5878
- class InChIRepresentationSchema45(BaseModel):
4112
+ class InChIRepresentationSchema37(BaseModel):
5879
4113
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
5880
4114
  value: str
5881
4115
 
5882
4116
 
5883
- class Name373(Enum):
4117
+ class Name309(Enum):
5884
4118
  inchi_key = "inchi_key"
5885
4119
 
5886
4120
 
5887
- class InChIKeyRepresentationSchema45(BaseModel):
4121
+ class InChIKeyRepresentationSchema37(BaseModel):
5888
4122
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5889
4123
  value: str
5890
4124
 
5891
4125
 
5892
- class DerivedPropertiesSchema45(
4126
+ class DerivedPropertiesSchema37(
5893
4127
  RootModel[
5894
4128
  Union[
5895
- VolumeSchema45,
5896
- DensitySchema45,
5897
- SymmetrySchema45,
5898
- ElementalRatio45,
5899
- PNorm45,
5900
- InChIRepresentationSchema45,
5901
- InChIKeyRepresentationSchema45,
4129
+ VolumeSchema37,
4130
+ DensitySchema37,
4131
+ SymmetrySchema37,
4132
+ ElementalRatio37,
4133
+ PNorm37,
4134
+ InChIRepresentationSchema37,
4135
+ InChIKeyRepresentationSchema37,
5902
4136
  ]
5903
4137
  ]
5904
4138
  ):
5905
4139
  root: Union[
5906
- VolumeSchema45,
5907
- DensitySchema45,
5908
- SymmetrySchema45,
5909
- ElementalRatio45,
5910
- PNorm45,
5911
- InChIRepresentationSchema45,
5912
- InChIKeyRepresentationSchema45,
4140
+ VolumeSchema37,
4141
+ DensitySchema37,
4142
+ SymmetrySchema37,
4143
+ ElementalRatio37,
4144
+ PNorm37,
4145
+ InChIRepresentationSchema37,
4146
+ InChIKeyRepresentationSchema37,
5913
4147
  ] = Field(..., discriminator="name")
5914
4148
 
5915
4149
 
5916
- class Name374(Enum):
4150
+ class Name310(Enum):
5917
4151
  default = "default"
5918
4152
  atomsTooClose = "atomsTooClose"
5919
4153
  atomsOverlap = "atomsOverlap"
5920
4154
 
5921
4155
 
5922
- class MaterialConsistencyCheckSchema45(BaseModel):
5923
- name: Name374
4156
+ class MaterialConsistencyCheckSchema37(BaseModel):
4157
+ name: Name310
5924
4158
  """
5925
4159
  Name of the consistency check that is performed, which is listed in an enum.
5926
4160
  """
@@ -5938,7 +4172,7 @@ class MaterialConsistencyCheckSchema45(BaseModel):
5938
4172
  """
5939
4173
 
5940
4174
 
5941
- class CrystalSchema45(BaseModel):
4175
+ class CrystalSchema37(BaseModel):
5942
4176
  formula: Optional[str] = None
5943
4177
  """
5944
4178
  reduced chemical formula
@@ -5947,9 +4181,9 @@ class CrystalSchema45(BaseModel):
5947
4181
  """
5948
4182
  chemical formula based on the number of atoms of each element in the supercell
5949
4183
  """
5950
- basis: BasisSchema46 = Field(..., title="basis schema")
5951
- lattice: LatticeSchema45 = Field(..., title="lattice schema")
5952
- derivedProperties: Optional[List[DerivedPropertiesSchema45]] = Field(None, title="derived properties schema")
4184
+ basis: BasisSchema38 = Field(..., title="basis schema")
4185
+ lattice: LatticeSchema37 = Field(..., title="lattice schema")
4186
+ derivedProperties: Optional[List[DerivedPropertiesSchema37]] = Field(None, title="derived properties schema")
5953
4187
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
5954
4188
  """
5955
4189
  information about a database source
@@ -5970,7 +4204,7 @@ class CrystalSchema45(BaseModel):
5970
4204
  """
5971
4205
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
5972
4206
  """
5973
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema45]] = None
4207
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema37]] = None
5974
4208
  field_id: Optional[str] = Field(None, alias="_id")
5975
4209
  """
5976
4210
  entity identity
@@ -5995,7 +4229,7 @@ class CrystalSchema45(BaseModel):
5995
4229
  metadata: Optional[Dict[str, Any]] = None
5996
4230
 
5997
4231
 
5998
- class VacuumConfigurationSchema21(BaseModel):
4232
+ class VacuumConfigurationSchema17(BaseModel):
5999
4233
  direction: AxisEnum = Field(..., title="Axis Enum")
6000
4234
  """
6001
4235
  Enum for axis types
@@ -6004,7 +4238,7 @@ class VacuumConfigurationSchema21(BaseModel):
6004
4238
  """
6005
4239
  Size of the vacuum slab in angstroms
6006
4240
  """
6007
- crystal: CrystalSchema45 = Field(..., title="Crystal Schema")
4241
+ crystal: CrystalSchema37 = Field(..., title="Crystal Schema")
6008
4242
  """
6009
4243
  A crystal structure, referencing the base material schema
6010
4244
  """
@@ -6013,17 +4247,9 @@ class VacuumConfigurationSchema21(BaseModel):
6013
4247
  class GrainBoundaryLinearConfigurationSchema(BaseModel):
6014
4248
  stack_components: List[
6015
4249
  Union[
6016
- Union[
6017
- SlabConfigurationSchema,
6018
- SlabStrainedSupercellConfigurationSchema,
6019
- SlabStrainedSupercellWithGapConfigurationSchema,
6020
- ],
6021
- Union[
6022
- SlabConfigurationSchema8,
6023
- SlabStrainedSupercellConfigurationSchema3,
6024
- SlabStrainedSupercellWithGapConfigurationSchema3,
6025
- ],
6026
- VacuumConfigurationSchema21,
4250
+ Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema],
4251
+ Union[SlabConfigurationSchema8, SlabStrainedSupercellConfigurationSchema3],
4252
+ VacuumConfigurationSchema17,
6027
4253
  ]
6028
4254
  ] = Field(..., max_length=2, min_length=2)
6029
4255
  """
@@ -6041,3 +4267,7 @@ class GrainBoundaryLinearConfigurationSchema(BaseModel):
6041
4267
  """
6042
4268
  xy shift for the film as cartesian 2D vector on the xy plane.
6043
4269
  """
4270
+ gaps: Optional[List[ObjectWithId]] = None
4271
+ """
4272
+ Gap distances between stack components as an array of objects with id and value
4273
+ """