mat3ra-esse 2025.7.29.post0__py3-none-any.whl → 2025.8.6.post1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (65) 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/models/software/template.py +4 -0
  56. mat3ra/esse/models/software_directory/modeling/unit/execution.py +4 -0
  57. mat3ra/esse/models/software_directory/scripting/unit/execution.py +4 -0
  58. mat3ra/esse/models/workflow/unit/input/_input.py +4 -0
  59. mat3ra/esse/models/workflow/unit/input/_inputItem.py +4 -0
  60. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post1.dist-info}/METADATA +1 -1
  61. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post1.dist-info}/RECORD +64 -65
  62. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +0 -1151
  63. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post1.dist-info}/WHEEL +0 -0
  64. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post1.dist-info}/licenses/LICENSE.md +0 -0
  65. {mat3ra_esse-2025.7.29.post0.dist-info → mat3ra_esse-2025.8.6.post1.dist-info}/top_level.txt +0 -0
@@ -265,13 +265,13 @@ class Value(Enum):
265
265
  Og = "Og"
266
266
 
267
267
 
268
- class Value101(Enum):
268
+ class Value85(Enum):
269
269
  X = "X"
270
270
  Vac = "Vac"
271
271
 
272
272
 
273
273
  class AtomicElementSchema(BaseModel):
274
- value: Union[Value, Value101]
274
+ value: Union[Value, Value85]
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 Name376(Enum):
422
+ class Name312(Enum):
423
423
  density = "density"
424
424
 
425
425
 
426
- class Units148(Enum):
426
+ class Units124(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[Units148] = None
432
+ units: Optional[Units124] = None
433
433
  value: float
434
434
 
435
435
 
436
- class Units149(Enum):
436
+ class Units125(Enum):
437
437
  angstrom = "angstrom"
438
438
 
439
439
 
440
440
  class ScalarSchema(BaseModel):
441
- units: Optional[Units149] = None
441
+ units: Optional[Units125] = None
442
442
  value: float
443
443
 
444
444
 
445
- class Name377(Enum):
445
+ class Name313(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 Name378(Enum):
465
+ class Name314(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 Name379(Enum):
478
+ class Name315(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 Name380(Enum):
491
+ class Name316(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 Name381(Enum):
500
+ class Name317(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 Name382(Enum):
579
+ class Name318(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: Name382
592
+ name: Name318
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 Value102(Enum):
696
+ class Value86(Enum):
697
697
  H = "H"
698
698
  He = "He"
699
699
  Li = "Li"
@@ -814,13 +814,13 @@ class Value102(Enum):
814
814
  Og = "Og"
815
815
 
816
816
 
817
- class Value103(Enum):
817
+ class Value87(Enum):
818
818
  X = "X"
819
819
  Vac = "Vac"
820
820
 
821
821
 
822
- class AtomicElementSchema50(BaseModel):
823
- value: Union[Value102, Value103]
822
+ class AtomicElementSchema42(BaseModel):
823
+ value: Union[Value86, Value87]
824
824
  """
825
825
  All elements, including extra elements
826
826
  """
@@ -830,8 +830,8 @@ class AtomicElementSchema50(BaseModel):
830
830
  """
831
831
 
832
832
 
833
- class BasisSchema48(BaseModel):
834
- elements: List[AtomicElementSchema50] = Field(..., title="atomic elements schema")
833
+ class BasisSchema40(BaseModel):
834
+ elements: List[AtomicElementSchema42] = Field(..., title="atomic elements schema")
835
835
  """
836
836
  atomic elements schema
837
837
  """
@@ -846,7 +846,7 @@ class BasisSchema48(BaseModel):
846
846
  """
847
847
 
848
848
 
849
- class LatticeVectorsSchema47(BaseModel):
849
+ class LatticeVectorsSchema39(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 LatticeVectorsSchema47(BaseModel):
857
857
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
858
858
 
859
859
 
860
- class LatticeUnitsSchema47(BaseModel):
860
+ class LatticeUnitsSchema39(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 LatticeSchema47(BaseModel):
865
+ class LatticeSchema39(BaseModel):
866
866
  a: float
867
867
  """
868
868
  length of the first lattice vector
@@ -887,56 +887,56 @@ class LatticeSchema47(BaseModel):
887
887
  """
888
888
  angle between first and third lattice vector
889
889
  """
890
- vectors: Optional[LatticeVectorsSchema47] = Field(None, title="lattice vectors schema")
890
+ vectors: Optional[LatticeVectorsSchema39] = Field(None, title="lattice vectors schema")
891
891
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
892
- units: Optional[LatticeUnitsSchema47] = Field(
893
- default_factory=lambda: LatticeUnitsSchema47.model_validate({"length": "angstrom", "angle": "degree"}),
892
+ units: Optional[LatticeUnitsSchema39] = Field(
893
+ default_factory=lambda: LatticeUnitsSchema39.model_validate({"length": "angstrom", "angle": "degree"}),
894
894
  title="Lattice units schema",
895
895
  )
896
896
 
897
897
 
898
- class Name383(Enum):
898
+ class Name319(Enum):
899
899
  volume = "volume"
900
900
 
901
901
 
902
- class Units150(Enum):
902
+ class Units126(Enum):
903
903
  angstrom_3 = "angstrom^3"
904
904
 
905
905
 
906
- class VolumeSchema47(BaseModel):
906
+ class VolumeSchema39(BaseModel):
907
907
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
908
- units: Optional[Units150] = None
908
+ units: Optional[Units126] = None
909
909
  value: float
910
910
 
911
911
 
912
- class Name384(Enum):
912
+ class Name320(Enum):
913
913
  density = "density"
914
914
 
915
915
 
916
- class Units151(Enum):
916
+ class Units127(Enum):
917
917
  g_cm_3 = "g/cm^3"
918
918
 
919
919
 
920
- class DensitySchema47(BaseModel):
920
+ class DensitySchema39(BaseModel):
921
921
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
922
- units: Optional[Units151] = None
922
+ units: Optional[Units127] = None
923
923
  value: float
924
924
 
925
925
 
926
- class Units152(Enum):
926
+ class Units128(Enum):
927
927
  angstrom = "angstrom"
928
928
 
929
929
 
930
- class ScalarSchema48(BaseModel):
931
- units: Optional[Units152] = None
930
+ class ScalarSchema40(BaseModel):
931
+ units: Optional[Units128] = None
932
932
  value: float
933
933
 
934
934
 
935
- class Name385(Enum):
935
+ class Name321(Enum):
936
936
  symmetry = "symmetry"
937
937
 
938
938
 
939
- class SymmetrySchema47(BaseModel):
939
+ class SymmetrySchema39(BaseModel):
940
940
  pointGroupSymbol: Optional[str] = None
941
941
  """
942
942
  point group symbol in Schoenflies notation
@@ -945,18 +945,18 @@ class SymmetrySchema47(BaseModel):
945
945
  """
946
946
  space group symbol in Hermann–Mauguin notation
947
947
  """
948
- tolerance: Optional[ScalarSchema48] = Field(None, title="scalar schema")
948
+ tolerance: Optional[ScalarSchema40] = 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 Name386(Enum):
955
+ class Name322(Enum):
956
956
  elemental_ratio = "elemental_ratio"
957
957
 
958
958
 
959
- class ElementalRatio47(BaseModel):
959
+ class ElementalRatio39(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 ElementalRatio47(BaseModel):
965
965
  """
966
966
 
967
967
 
968
- class Name387(Enum):
968
+ class Name323(Enum):
969
969
  p_norm = "p-norm"
970
970
 
971
971
 
972
- class PNorm47(BaseModel):
972
+ class PNorm39(BaseModel):
973
973
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
974
974
  degree: Optional[int] = None
975
975
  """
@@ -978,56 +978,56 @@ class PNorm47(BaseModel):
978
978
  value: float
979
979
 
980
980
 
981
- class Name388(Enum):
981
+ class Name324(Enum):
982
982
  inchi = "inchi"
983
983
 
984
984
 
985
- class InChIRepresentationSchema47(BaseModel):
985
+ class InChIRepresentationSchema39(BaseModel):
986
986
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
987
987
  value: str
988
988
 
989
989
 
990
- class Name389(Enum):
990
+ class Name325(Enum):
991
991
  inchi_key = "inchi_key"
992
992
 
993
993
 
994
- class InChIKeyRepresentationSchema47(BaseModel):
994
+ class InChIKeyRepresentationSchema39(BaseModel):
995
995
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
996
996
  value: str
997
997
 
998
998
 
999
- class DerivedPropertiesSchema47(
999
+ class DerivedPropertiesSchema39(
1000
1000
  RootModel[
1001
1001
  Union[
1002
- VolumeSchema47,
1003
- DensitySchema47,
1004
- SymmetrySchema47,
1005
- ElementalRatio47,
1006
- PNorm47,
1007
- InChIRepresentationSchema47,
1008
- InChIKeyRepresentationSchema47,
1002
+ VolumeSchema39,
1003
+ DensitySchema39,
1004
+ SymmetrySchema39,
1005
+ ElementalRatio39,
1006
+ PNorm39,
1007
+ InChIRepresentationSchema39,
1008
+ InChIKeyRepresentationSchema39,
1009
1009
  ]
1010
1010
  ]
1011
1011
  ):
1012
1012
  root: Union[
1013
- VolumeSchema47,
1014
- DensitySchema47,
1015
- SymmetrySchema47,
1016
- ElementalRatio47,
1017
- PNorm47,
1018
- InChIRepresentationSchema47,
1019
- InChIKeyRepresentationSchema47,
1013
+ VolumeSchema39,
1014
+ DensitySchema39,
1015
+ SymmetrySchema39,
1016
+ ElementalRatio39,
1017
+ PNorm39,
1018
+ InChIRepresentationSchema39,
1019
+ InChIKeyRepresentationSchema39,
1020
1020
  ] = Field(..., discriminator="name")
1021
1021
 
1022
1022
 
1023
- class Name390(Enum):
1023
+ class Name326(Enum):
1024
1024
  default = "default"
1025
1025
  atomsTooClose = "atomsTooClose"
1026
1026
  atomsOverlap = "atomsOverlap"
1027
1027
 
1028
1028
 
1029
- class MaterialConsistencyCheckSchema47(BaseModel):
1030
- name: Name390
1029
+ class MaterialConsistencyCheckSchema39(BaseModel):
1030
+ name: Name326
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 MaterialConsistencyCheckSchema47(BaseModel):
1045
1045
  """
1046
1046
 
1047
1047
 
1048
- class CrystalSchema47(BaseModel):
1048
+ class CrystalSchema39(BaseModel):
1049
1049
  formula: Optional[str] = None
1050
1050
  """
1051
1051
  reduced chemical formula
@@ -1054,9 +1054,9 @@ class CrystalSchema47(BaseModel):
1054
1054
  """
1055
1055
  chemical formula based on the number of atoms of each element in the supercell
1056
1056
  """
1057
- basis: BasisSchema48 = Field(..., title="basis schema")
1058
- lattice: LatticeSchema47 = Field(..., title="lattice schema")
1059
- derivedProperties: Optional[List[DerivedPropertiesSchema47]] = Field(None, title="derived properties schema")
1057
+ basis: BasisSchema40 = Field(..., title="basis schema")
1058
+ lattice: LatticeSchema39 = Field(..., title="lattice schema")
1059
+ derivedProperties: Optional[List[DerivedPropertiesSchema39]] = 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 CrystalSchema47(BaseModel):
1077
1077
  """
1078
1078
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
1079
1079
  """
1080
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema47]] = None
1080
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema39]] = 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: CrystalSchema47 = Field(..., title="Crystal Schema")
1114
+ crystal: CrystalSchema39 = 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 TerminationSchema21(BaseModel):
1150
+ class TerminationSchema17(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 TerminationSchema21(BaseModel):
1148
1160
  """
1149
1161
 
1150
1162
 
1151
- class Value104(Enum):
1163
+ class Value88(Enum):
1152
1164
  H = "H"
1153
1165
  He = "He"
1154
1166
  Li = "Li"
@@ -1269,13 +1281,13 @@ class Value104(Enum):
1269
1281
  Og = "Og"
1270
1282
 
1271
1283
 
1272
- class Value105(Enum):
1284
+ class Value89(Enum):
1273
1285
  X = "X"
1274
1286
  Vac = "Vac"
1275
1287
 
1276
1288
 
1277
- class AtomicElementSchema51(BaseModel):
1278
- value: Union[Value104, Value105]
1289
+ class AtomicElementSchema43(BaseModel):
1290
+ value: Union[Value88, Value89]
1279
1291
  """
1280
1292
  All elements, including extra elements
1281
1293
  """
@@ -1285,8 +1297,8 @@ class AtomicElementSchema51(BaseModel):
1285
1297
  """
1286
1298
 
1287
1299
 
1288
- class BasisSchema49(BaseModel):
1289
- elements: List[AtomicElementSchema51] = Field(..., title="atomic elements schema")
1300
+ class BasisSchema41(BaseModel):
1301
+ elements: List[AtomicElementSchema43] = Field(..., title="atomic elements schema")
1290
1302
  """
1291
1303
  atomic elements schema
1292
1304
  """
@@ -1301,7 +1313,7 @@ class BasisSchema49(BaseModel):
1301
1313
  """
1302
1314
 
1303
1315
 
1304
- class LatticeVectorsSchema48(BaseModel):
1316
+ class LatticeVectorsSchema40(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 LatticeVectorsSchema48(BaseModel):
1312
1324
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
1313
1325
 
1314
1326
 
1315
- class LatticeUnitsSchema48(BaseModel):
1327
+ class LatticeUnitsSchema40(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 LatticeSchema48(BaseModel):
1332
+ class LatticeSchema40(BaseModel):
1321
1333
  a: float
1322
1334
  """
1323
1335
  length of the first lattice vector
@@ -1342,56 +1354,56 @@ class LatticeSchema48(BaseModel):
1342
1354
  """
1343
1355
  angle between first and third lattice vector
1344
1356
  """
1345
- vectors: Optional[LatticeVectorsSchema48] = Field(None, title="lattice vectors schema")
1357
+ vectors: Optional[LatticeVectorsSchema40] = Field(None, title="lattice vectors schema")
1346
1358
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
1347
- units: Optional[LatticeUnitsSchema48] = Field(
1348
- default_factory=lambda: LatticeUnitsSchema48.model_validate({"length": "angstrom", "angle": "degree"}),
1359
+ units: Optional[LatticeUnitsSchema40] = Field(
1360
+ default_factory=lambda: LatticeUnitsSchema40.model_validate({"length": "angstrom", "angle": "degree"}),
1349
1361
  title="Lattice units schema",
1350
1362
  )
1351
1363
 
1352
1364
 
1353
- class Name391(Enum):
1365
+ class Name327(Enum):
1354
1366
  volume = "volume"
1355
1367
 
1356
1368
 
1357
- class Units153(Enum):
1369
+ class Units129(Enum):
1358
1370
  angstrom_3 = "angstrom^3"
1359
1371
 
1360
1372
 
1361
- class VolumeSchema48(BaseModel):
1373
+ class VolumeSchema40(BaseModel):
1362
1374
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1363
- units: Optional[Units153] = None
1375
+ units: Optional[Units129] = None
1364
1376
  value: float
1365
1377
 
1366
1378
 
1367
- class Name392(Enum):
1379
+ class Name328(Enum):
1368
1380
  density = "density"
1369
1381
 
1370
1382
 
1371
- class Units154(Enum):
1383
+ class Units130(Enum):
1372
1384
  g_cm_3 = "g/cm^3"
1373
1385
 
1374
1386
 
1375
- class DensitySchema48(BaseModel):
1387
+ class DensitySchema40(BaseModel):
1376
1388
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1377
- units: Optional[Units154] = None
1389
+ units: Optional[Units130] = None
1378
1390
  value: float
1379
1391
 
1380
1392
 
1381
- class Units155(Enum):
1393
+ class Units131(Enum):
1382
1394
  angstrom = "angstrom"
1383
1395
 
1384
1396
 
1385
- class ScalarSchema49(BaseModel):
1386
- units: Optional[Units155] = None
1397
+ class ScalarSchema41(BaseModel):
1398
+ units: Optional[Units131] = None
1387
1399
  value: float
1388
1400
 
1389
1401
 
1390
- class Name393(Enum):
1402
+ class Name329(Enum):
1391
1403
  symmetry = "symmetry"
1392
1404
 
1393
1405
 
1394
- class SymmetrySchema48(BaseModel):
1406
+ class SymmetrySchema40(BaseModel):
1395
1407
  pointGroupSymbol: Optional[str] = None
1396
1408
  """
1397
1409
  point group symbol in Schoenflies notation
@@ -1400,18 +1412,18 @@ class SymmetrySchema48(BaseModel):
1400
1412
  """
1401
1413
  space group symbol in Hermann–Mauguin notation
1402
1414
  """
1403
- tolerance: Optional[ScalarSchema49] = Field(None, title="scalar schema")
1415
+ tolerance: Optional[ScalarSchema41] = 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 Name394(Enum):
1422
+ class Name330(Enum):
1411
1423
  elemental_ratio = "elemental_ratio"
1412
1424
 
1413
1425
 
1414
- class ElementalRatio48(BaseModel):
1426
+ class ElementalRatio40(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 ElementalRatio48(BaseModel):
1420
1432
  """
1421
1433
 
1422
1434
 
1423
- class Name395(Enum):
1435
+ class Name331(Enum):
1424
1436
  p_norm = "p-norm"
1425
1437
 
1426
1438
 
1427
- class PNorm48(BaseModel):
1439
+ class PNorm40(BaseModel):
1428
1440
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1429
1441
  degree: Optional[int] = None
1430
1442
  """
@@ -1433,56 +1445,56 @@ class PNorm48(BaseModel):
1433
1445
  value: float
1434
1446
 
1435
1447
 
1436
- class Name396(Enum):
1448
+ class Name332(Enum):
1437
1449
  inchi = "inchi"
1438
1450
 
1439
1451
 
1440
- class InChIRepresentationSchema48(BaseModel):
1452
+ class InChIRepresentationSchema40(BaseModel):
1441
1453
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1442
1454
  value: str
1443
1455
 
1444
1456
 
1445
- class Name397(Enum):
1457
+ class Name333(Enum):
1446
1458
  inchi_key = "inchi_key"
1447
1459
 
1448
1460
 
1449
- class InChIKeyRepresentationSchema48(BaseModel):
1461
+ class InChIKeyRepresentationSchema40(BaseModel):
1450
1462
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1451
1463
  value: str
1452
1464
 
1453
1465
 
1454
- class DerivedPropertiesSchema48(
1466
+ class DerivedPropertiesSchema40(
1455
1467
  RootModel[
1456
1468
  Union[
1457
- VolumeSchema48,
1458
- DensitySchema48,
1459
- SymmetrySchema48,
1460
- ElementalRatio48,
1461
- PNorm48,
1462
- InChIRepresentationSchema48,
1463
- InChIKeyRepresentationSchema48,
1469
+ VolumeSchema40,
1470
+ DensitySchema40,
1471
+ SymmetrySchema40,
1472
+ ElementalRatio40,
1473
+ PNorm40,
1474
+ InChIRepresentationSchema40,
1475
+ InChIKeyRepresentationSchema40,
1464
1476
  ]
1465
1477
  ]
1466
1478
  ):
1467
1479
  root: Union[
1468
- VolumeSchema48,
1469
- DensitySchema48,
1470
- SymmetrySchema48,
1471
- ElementalRatio48,
1472
- PNorm48,
1473
- InChIRepresentationSchema48,
1474
- InChIKeyRepresentationSchema48,
1480
+ VolumeSchema40,
1481
+ DensitySchema40,
1482
+ SymmetrySchema40,
1483
+ ElementalRatio40,
1484
+ PNorm40,
1485
+ InChIRepresentationSchema40,
1486
+ InChIKeyRepresentationSchema40,
1475
1487
  ] = Field(..., discriminator="name")
1476
1488
 
1477
1489
 
1478
- class Name398(Enum):
1490
+ class Name334(Enum):
1479
1491
  default = "default"
1480
1492
  atomsTooClose = "atomsTooClose"
1481
1493
  atomsOverlap = "atomsOverlap"
1482
1494
 
1483
1495
 
1484
- class MaterialConsistencyCheckSchema48(BaseModel):
1485
- name: Name398
1496
+ class MaterialConsistencyCheckSchema40(BaseModel):
1497
+ name: Name334
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 MaterialConsistencyCheckSchema48(BaseModel):
1500
1512
  """
1501
1513
 
1502
1514
 
1503
- class CrystalSchema48(BaseModel):
1515
+ class CrystalSchema40(BaseModel):
1504
1516
  formula: Optional[str] = None
1505
1517
  """
1506
1518
  reduced chemical formula
@@ -1509,9 +1521,9 @@ class CrystalSchema48(BaseModel):
1509
1521
  """
1510
1522
  chemical formula based on the number of atoms of each element in the supercell
1511
1523
  """
1512
- basis: BasisSchema49 = Field(..., title="basis schema")
1513
- lattice: LatticeSchema48 = Field(..., title="lattice schema")
1514
- derivedProperties: Optional[List[DerivedPropertiesSchema48]] = Field(None, title="derived properties schema")
1524
+ basis: BasisSchema41 = Field(..., title="basis schema")
1525
+ lattice: LatticeSchema40 = Field(..., title="lattice schema")
1526
+ derivedProperties: Optional[List[DerivedPropertiesSchema40]] = 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 CrystalSchema48(BaseModel):
1532
1544
  """
1533
1545
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
1534
1546
  """
1535
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema48]] = None
1547
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema40]] = None
1536
1548
  field_id: Optional[str] = Field(None, alias="_id")
1537
1549
  """
1538
1550
  entity identity
@@ -1557,8 +1569,8 @@ class CrystalSchema48(BaseModel):
1557
1569
  metadata: Optional[Dict[str, Any]] = None
1558
1570
 
1559
1571
 
1560
- class AtomicLayersUniqueRepeatedSchema19(BaseModel):
1561
- termination_top: TerminationSchema21 = Field(..., title="Termination Schema")
1572
+ class AtomicLayersUniqueRepeatedSchema15(BaseModel):
1573
+ termination_top: TerminationSchema17 = Field(..., title="Termination Schema")
1562
1574
  """
1563
1575
  Defines a specific termination of a slab
1564
1576
  """
@@ -1570,7 +1582,7 @@ class AtomicLayersUniqueRepeatedSchema19(BaseModel):
1570
1582
  """
1571
1583
  Miller indices [h, k, l] defining crystallographic planes
1572
1584
  """
1573
- crystal: CrystalSchema48 = Field(..., title="Crystal Schema")
1585
+ crystal: CrystalSchema40 = Field(..., title="Crystal Schema")
1574
1586
  """
1575
1587
  A crystal structure, referencing the base material schema
1576
1588
  """
@@ -1580,7 +1592,7 @@ class AtomicLayersUniqueRepeatedSchema19(BaseModel):
1580
1592
  """
1581
1593
 
1582
1594
 
1583
- class Value106(Enum):
1595
+ class Value90(Enum):
1584
1596
  H = "H"
1585
1597
  He = "He"
1586
1598
  Li = "Li"
@@ -1701,13 +1713,13 @@ class Value106(Enum):
1701
1713
  Og = "Og"
1702
1714
 
1703
1715
 
1704
- class Value107(Enum):
1716
+ class Value91(Enum):
1705
1717
  X = "X"
1706
1718
  Vac = "Vac"
1707
1719
 
1708
1720
 
1709
- class AtomicElementSchema52(BaseModel):
1710
- value: Union[Value106, Value107]
1721
+ class AtomicElementSchema44(BaseModel):
1722
+ value: Union[Value90, Value91]
1711
1723
  """
1712
1724
  All elements, including extra elements
1713
1725
  """
@@ -1717,8 +1729,8 @@ class AtomicElementSchema52(BaseModel):
1717
1729
  """
1718
1730
 
1719
1731
 
1720
- class BasisSchema50(BaseModel):
1721
- elements: List[AtomicElementSchema52] = Field(..., title="atomic elements schema")
1732
+ class BasisSchema42(BaseModel):
1733
+ elements: List[AtomicElementSchema44] = Field(..., title="atomic elements schema")
1722
1734
  """
1723
1735
  atomic elements schema
1724
1736
  """
@@ -1733,7 +1745,7 @@ class BasisSchema50(BaseModel):
1733
1745
  """
1734
1746
 
1735
1747
 
1736
- class LatticeVectorsSchema49(BaseModel):
1748
+ class LatticeVectorsSchema41(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 LatticeVectorsSchema49(BaseModel):
1744
1756
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
1745
1757
 
1746
1758
 
1747
- class LatticeUnitsSchema49(BaseModel):
1759
+ class LatticeUnitsSchema41(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 LatticeSchema49(BaseModel):
1764
+ class LatticeSchema41(BaseModel):
1753
1765
  a: float
1754
1766
  """
1755
1767
  length of the first lattice vector
@@ -1774,56 +1786,56 @@ class LatticeSchema49(BaseModel):
1774
1786
  """
1775
1787
  angle between first and third lattice vector
1776
1788
  """
1777
- vectors: Optional[LatticeVectorsSchema49] = Field(None, title="lattice vectors schema")
1789
+ vectors: Optional[LatticeVectorsSchema41] = Field(None, title="lattice vectors schema")
1778
1790
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
1779
- units: Optional[LatticeUnitsSchema49] = Field(
1780
- default_factory=lambda: LatticeUnitsSchema49.model_validate({"length": "angstrom", "angle": "degree"}),
1791
+ units: Optional[LatticeUnitsSchema41] = Field(
1792
+ default_factory=lambda: LatticeUnitsSchema41.model_validate({"length": "angstrom", "angle": "degree"}),
1781
1793
  title="Lattice units schema",
1782
1794
  )
1783
1795
 
1784
1796
 
1785
- class Name399(Enum):
1797
+ class Name335(Enum):
1786
1798
  volume = "volume"
1787
1799
 
1788
1800
 
1789
- class Units156(Enum):
1801
+ class Units132(Enum):
1790
1802
  angstrom_3 = "angstrom^3"
1791
1803
 
1792
1804
 
1793
- class VolumeSchema49(BaseModel):
1805
+ class VolumeSchema41(BaseModel):
1794
1806
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
1795
- units: Optional[Units156] = None
1807
+ units: Optional[Units132] = None
1796
1808
  value: float
1797
1809
 
1798
1810
 
1799
- class Name400(Enum):
1811
+ class Name336(Enum):
1800
1812
  density = "density"
1801
1813
 
1802
1814
 
1803
- class Units157(Enum):
1815
+ class Units133(Enum):
1804
1816
  g_cm_3 = "g/cm^3"
1805
1817
 
1806
1818
 
1807
- class DensitySchema49(BaseModel):
1819
+ class DensitySchema41(BaseModel):
1808
1820
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
1809
- units: Optional[Units157] = None
1821
+ units: Optional[Units133] = None
1810
1822
  value: float
1811
1823
 
1812
1824
 
1813
- class Units158(Enum):
1825
+ class Units134(Enum):
1814
1826
  angstrom = "angstrom"
1815
1827
 
1816
1828
 
1817
- class ScalarSchema50(BaseModel):
1818
- units: Optional[Units158] = None
1829
+ class ScalarSchema42(BaseModel):
1830
+ units: Optional[Units134] = None
1819
1831
  value: float
1820
1832
 
1821
1833
 
1822
- class Name401(Enum):
1834
+ class Name337(Enum):
1823
1835
  symmetry = "symmetry"
1824
1836
 
1825
1837
 
1826
- class SymmetrySchema49(BaseModel):
1838
+ class SymmetrySchema41(BaseModel):
1827
1839
  pointGroupSymbol: Optional[str] = None
1828
1840
  """
1829
1841
  point group symbol in Schoenflies notation
@@ -1832,18 +1844,18 @@ class SymmetrySchema49(BaseModel):
1832
1844
  """
1833
1845
  space group symbol in Hermann–Mauguin notation
1834
1846
  """
1835
- tolerance: Optional[ScalarSchema50] = Field(None, title="scalar schema")
1847
+ tolerance: Optional[ScalarSchema42] = 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 Name402(Enum):
1854
+ class Name338(Enum):
1843
1855
  elemental_ratio = "elemental_ratio"
1844
1856
 
1845
1857
 
1846
- class ElementalRatio49(BaseModel):
1858
+ class ElementalRatio41(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 ElementalRatio49(BaseModel):
1852
1864
  """
1853
1865
 
1854
1866
 
1855
- class Name403(Enum):
1867
+ class Name339(Enum):
1856
1868
  p_norm = "p-norm"
1857
1869
 
1858
1870
 
1859
- class PNorm49(BaseModel):
1871
+ class PNorm41(BaseModel):
1860
1872
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
1861
1873
  degree: Optional[int] = None
1862
1874
  """
@@ -1865,56 +1877,56 @@ class PNorm49(BaseModel):
1865
1877
  value: float
1866
1878
 
1867
1879
 
1868
- class Name404(Enum):
1880
+ class Name340(Enum):
1869
1881
  inchi = "inchi"
1870
1882
 
1871
1883
 
1872
- class InChIRepresentationSchema49(BaseModel):
1884
+ class InChIRepresentationSchema41(BaseModel):
1873
1885
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
1874
1886
  value: str
1875
1887
 
1876
1888
 
1877
- class Name405(Enum):
1889
+ class Name341(Enum):
1878
1890
  inchi_key = "inchi_key"
1879
1891
 
1880
1892
 
1881
- class InChIKeyRepresentationSchema49(BaseModel):
1893
+ class InChIKeyRepresentationSchema41(BaseModel):
1882
1894
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
1883
1895
  value: str
1884
1896
 
1885
1897
 
1886
- class DerivedPropertiesSchema49(
1898
+ class DerivedPropertiesSchema41(
1887
1899
  RootModel[
1888
1900
  Union[
1889
- VolumeSchema49,
1890
- DensitySchema49,
1891
- SymmetrySchema49,
1892
- ElementalRatio49,
1893
- PNorm49,
1894
- InChIRepresentationSchema49,
1895
- InChIKeyRepresentationSchema49,
1901
+ VolumeSchema41,
1902
+ DensitySchema41,
1903
+ SymmetrySchema41,
1904
+ ElementalRatio41,
1905
+ PNorm41,
1906
+ InChIRepresentationSchema41,
1907
+ InChIKeyRepresentationSchema41,
1896
1908
  ]
1897
1909
  ]
1898
1910
  ):
1899
1911
  root: Union[
1900
- VolumeSchema49,
1901
- DensitySchema49,
1902
- SymmetrySchema49,
1903
- ElementalRatio49,
1904
- PNorm49,
1905
- InChIRepresentationSchema49,
1906
- InChIKeyRepresentationSchema49,
1912
+ VolumeSchema41,
1913
+ DensitySchema41,
1914
+ SymmetrySchema41,
1915
+ ElementalRatio41,
1916
+ PNorm41,
1917
+ InChIRepresentationSchema41,
1918
+ InChIKeyRepresentationSchema41,
1907
1919
  ] = Field(..., discriminator="name")
1908
1920
 
1909
1921
 
1910
- class Name406(Enum):
1922
+ class Name342(Enum):
1911
1923
  default = "default"
1912
1924
  atomsTooClose = "atomsTooClose"
1913
1925
  atomsOverlap = "atomsOverlap"
1914
1926
 
1915
1927
 
1916
- class MaterialConsistencyCheckSchema49(BaseModel):
1917
- name: Name406
1928
+ class MaterialConsistencyCheckSchema41(BaseModel):
1929
+ name: Name342
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 MaterialConsistencyCheckSchema49(BaseModel):
1932
1944
  """
1933
1945
 
1934
1946
 
1935
- class CrystalSchema49(BaseModel):
1947
+ class CrystalSchema41(BaseModel):
1936
1948
  formula: Optional[str] = None
1937
1949
  """
1938
1950
  reduced chemical formula
@@ -1941,9 +1953,9 @@ class CrystalSchema49(BaseModel):
1941
1953
  """
1942
1954
  chemical formula based on the number of atoms of each element in the supercell
1943
1955
  """
1944
- basis: BasisSchema50 = Field(..., title="basis schema")
1945
- lattice: LatticeSchema49 = Field(..., title="lattice schema")
1946
- derivedProperties: Optional[List[DerivedPropertiesSchema49]] = Field(None, title="derived properties schema")
1956
+ basis: BasisSchema42 = Field(..., title="basis schema")
1957
+ lattice: LatticeSchema41 = Field(..., title="lattice schema")
1958
+ derivedProperties: Optional[List[DerivedPropertiesSchema41]] = 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 CrystalSchema49(BaseModel):
1964
1976
  """
1965
1977
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
1966
1978
  """
1967
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema49]] = None
1979
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema41]] = None
1968
1980
  field_id: Optional[str] = Field(None, alias="_id")
1969
1981
  """
1970
1982
  entity identity
@@ -1989,7 +2001,7 @@ class CrystalSchema49(BaseModel):
1989
2001
  metadata: Optional[Dict[str, Any]] = None
1990
2002
 
1991
2003
 
1992
- class VacuumConfigurationSchema23(BaseModel):
2004
+ class VacuumConfigurationSchema19(BaseModel):
1993
2005
  direction: AxisEnum = Field(..., title="Axis Enum")
1994
2006
  """
1995
2007
  Enum for axis types
@@ -1998,7 +2010,7 @@ class VacuumConfigurationSchema23(BaseModel):
1998
2010
  """
1999
2011
  Size of the vacuum slab in angstroms
2000
2012
  """
2001
- crystal: CrystalSchema49 = Field(..., title="Crystal Schema")
2013
+ crystal: CrystalSchema41 = 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[AtomicLayersUniqueRepeatedSchema19, VacuumConfigurationSchema23]] = Field(
2032
+ stack_components: List[Union[AtomicLayersUniqueRepeatedSchema15, VacuumConfigurationSchema19]] = 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 TerminationSchema22(BaseModel):
2045
+ class TerminationSchema18(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 TerminationSchema22(BaseModel):
2039
2055
  """
2040
2056
 
2041
2057
 
2042
- class Value108(Enum):
2058
+ class Value92(Enum):
2043
2059
  H = "H"
2044
2060
  He = "He"
2045
2061
  Li = "Li"
@@ -2160,13 +2176,13 @@ class Value108(Enum):
2160
2176
  Og = "Og"
2161
2177
 
2162
2178
 
2163
- class Value109(Enum):
2179
+ class Value93(Enum):
2164
2180
  X = "X"
2165
2181
  Vac = "Vac"
2166
2182
 
2167
2183
 
2168
- class AtomicElementSchema53(BaseModel):
2169
- value: Union[Value108, Value109]
2184
+ class AtomicElementSchema45(BaseModel):
2185
+ value: Union[Value92, Value93]
2170
2186
  """
2171
2187
  All elements, including extra elements
2172
2188
  """
@@ -2176,8 +2192,8 @@ class AtomicElementSchema53(BaseModel):
2176
2192
  """
2177
2193
 
2178
2194
 
2179
- class BasisSchema51(BaseModel):
2180
- elements: List[AtomicElementSchema53] = Field(..., title="atomic elements schema")
2195
+ class BasisSchema43(BaseModel):
2196
+ elements: List[AtomicElementSchema45] = Field(..., title="atomic elements schema")
2181
2197
  """
2182
2198
  atomic elements schema
2183
2199
  """
@@ -2192,7 +2208,7 @@ class BasisSchema51(BaseModel):
2192
2208
  """
2193
2209
 
2194
2210
 
2195
- class LatticeVectorsSchema50(BaseModel):
2211
+ class LatticeVectorsSchema42(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 LatticeVectorsSchema50(BaseModel):
2203
2219
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
2204
2220
 
2205
2221
 
2206
- class LatticeUnitsSchema50(BaseModel):
2222
+ class LatticeUnitsSchema42(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 LatticeSchema50(BaseModel):
2227
+ class LatticeSchema42(BaseModel):
2212
2228
  a: float
2213
2229
  """
2214
2230
  length of the first lattice vector
@@ -2233,56 +2249,56 @@ class LatticeSchema50(BaseModel):
2233
2249
  """
2234
2250
  angle between first and third lattice vector
2235
2251
  """
2236
- vectors: Optional[LatticeVectorsSchema50] = Field(None, title="lattice vectors schema")
2252
+ vectors: Optional[LatticeVectorsSchema42] = Field(None, title="lattice vectors schema")
2237
2253
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
2238
- units: Optional[LatticeUnitsSchema50] = Field(
2239
- default_factory=lambda: LatticeUnitsSchema50.model_validate({"length": "angstrom", "angle": "degree"}),
2254
+ units: Optional[LatticeUnitsSchema42] = Field(
2255
+ default_factory=lambda: LatticeUnitsSchema42.model_validate({"length": "angstrom", "angle": "degree"}),
2240
2256
  title="Lattice units schema",
2241
2257
  )
2242
2258
 
2243
2259
 
2244
- class Name407(Enum):
2260
+ class Name343(Enum):
2245
2261
  volume = "volume"
2246
2262
 
2247
2263
 
2248
- class Units159(Enum):
2264
+ class Units135(Enum):
2249
2265
  angstrom_3 = "angstrom^3"
2250
2266
 
2251
2267
 
2252
- class VolumeSchema50(BaseModel):
2268
+ class VolumeSchema42(BaseModel):
2253
2269
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
2254
- units: Optional[Units159] = None
2270
+ units: Optional[Units135] = None
2255
2271
  value: float
2256
2272
 
2257
2273
 
2258
- class Name408(Enum):
2274
+ class Name344(Enum):
2259
2275
  density = "density"
2260
2276
 
2261
2277
 
2262
- class Units160(Enum):
2278
+ class Units136(Enum):
2263
2279
  g_cm_3 = "g/cm^3"
2264
2280
 
2265
2281
 
2266
- class DensitySchema50(BaseModel):
2282
+ class DensitySchema42(BaseModel):
2267
2283
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
2268
- units: Optional[Units160] = None
2284
+ units: Optional[Units136] = None
2269
2285
  value: float
2270
2286
 
2271
2287
 
2272
- class Units161(Enum):
2288
+ class Units137(Enum):
2273
2289
  angstrom = "angstrom"
2274
2290
 
2275
2291
 
2276
- class ScalarSchema51(BaseModel):
2277
- units: Optional[Units161] = None
2292
+ class ScalarSchema43(BaseModel):
2293
+ units: Optional[Units137] = None
2278
2294
  value: float
2279
2295
 
2280
2296
 
2281
- class Name409(Enum):
2297
+ class Name345(Enum):
2282
2298
  symmetry = "symmetry"
2283
2299
 
2284
2300
 
2285
- class SymmetrySchema50(BaseModel):
2301
+ class SymmetrySchema42(BaseModel):
2286
2302
  pointGroupSymbol: Optional[str] = None
2287
2303
  """
2288
2304
  point group symbol in Schoenflies notation
@@ -2291,18 +2307,18 @@ class SymmetrySchema50(BaseModel):
2291
2307
  """
2292
2308
  space group symbol in Hermann–Mauguin notation
2293
2309
  """
2294
- tolerance: Optional[ScalarSchema51] = Field(None, title="scalar schema")
2310
+ tolerance: Optional[ScalarSchema43] = 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 Name410(Enum):
2317
+ class Name346(Enum):
2302
2318
  elemental_ratio = "elemental_ratio"
2303
2319
 
2304
2320
 
2305
- class ElementalRatio50(BaseModel):
2321
+ class ElementalRatio42(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 ElementalRatio50(BaseModel):
2311
2327
  """
2312
2328
 
2313
2329
 
2314
- class Name411(Enum):
2330
+ class Name347(Enum):
2315
2331
  p_norm = "p-norm"
2316
2332
 
2317
2333
 
2318
- class PNorm50(BaseModel):
2334
+ class PNorm42(BaseModel):
2319
2335
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
2320
2336
  degree: Optional[int] = None
2321
2337
  """
@@ -2324,56 +2340,56 @@ class PNorm50(BaseModel):
2324
2340
  value: float
2325
2341
 
2326
2342
 
2327
- class Name412(Enum):
2343
+ class Name348(Enum):
2328
2344
  inchi = "inchi"
2329
2345
 
2330
2346
 
2331
- class InChIRepresentationSchema50(BaseModel):
2347
+ class InChIRepresentationSchema42(BaseModel):
2332
2348
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
2333
2349
  value: str
2334
2350
 
2335
2351
 
2336
- class Name413(Enum):
2352
+ class Name349(Enum):
2337
2353
  inchi_key = "inchi_key"
2338
2354
 
2339
2355
 
2340
- class InChIKeyRepresentationSchema50(BaseModel):
2356
+ class InChIKeyRepresentationSchema42(BaseModel):
2341
2357
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
2342
2358
  value: str
2343
2359
 
2344
2360
 
2345
- class DerivedPropertiesSchema50(
2361
+ class DerivedPropertiesSchema42(
2346
2362
  RootModel[
2347
2363
  Union[
2348
- VolumeSchema50,
2349
- DensitySchema50,
2350
- SymmetrySchema50,
2351
- ElementalRatio50,
2352
- PNorm50,
2353
- InChIRepresentationSchema50,
2354
- InChIKeyRepresentationSchema50,
2364
+ VolumeSchema42,
2365
+ DensitySchema42,
2366
+ SymmetrySchema42,
2367
+ ElementalRatio42,
2368
+ PNorm42,
2369
+ InChIRepresentationSchema42,
2370
+ InChIKeyRepresentationSchema42,
2355
2371
  ]
2356
2372
  ]
2357
2373
  ):
2358
2374
  root: Union[
2359
- VolumeSchema50,
2360
- DensitySchema50,
2361
- SymmetrySchema50,
2362
- ElementalRatio50,
2363
- PNorm50,
2364
- InChIRepresentationSchema50,
2365
- InChIKeyRepresentationSchema50,
2375
+ VolumeSchema42,
2376
+ DensitySchema42,
2377
+ SymmetrySchema42,
2378
+ ElementalRatio42,
2379
+ PNorm42,
2380
+ InChIRepresentationSchema42,
2381
+ InChIKeyRepresentationSchema42,
2366
2382
  ] = Field(..., discriminator="name")
2367
2383
 
2368
2384
 
2369
- class Name414(Enum):
2385
+ class Name350(Enum):
2370
2386
  default = "default"
2371
2387
  atomsTooClose = "atomsTooClose"
2372
2388
  atomsOverlap = "atomsOverlap"
2373
2389
 
2374
2390
 
2375
- class MaterialConsistencyCheckSchema50(BaseModel):
2376
- name: Name414
2391
+ class MaterialConsistencyCheckSchema42(BaseModel):
2392
+ name: Name350
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 MaterialConsistencyCheckSchema50(BaseModel):
2391
2407
  """
2392
2408
 
2393
2409
 
2394
- class CrystalSchema50(BaseModel):
2410
+ class CrystalSchema42(BaseModel):
2395
2411
  formula: Optional[str] = None
2396
2412
  """
2397
2413
  reduced chemical formula
@@ -2400,9 +2416,9 @@ class CrystalSchema50(BaseModel):
2400
2416
  """
2401
2417
  chemical formula based on the number of atoms of each element in the supercell
2402
2418
  """
2403
- basis: BasisSchema51 = Field(..., title="basis schema")
2404
- lattice: LatticeSchema50 = Field(..., title="lattice schema")
2405
- derivedProperties: Optional[List[DerivedPropertiesSchema50]] = Field(None, title="derived properties schema")
2419
+ basis: BasisSchema43 = Field(..., title="basis schema")
2420
+ lattice: LatticeSchema42 = Field(..., title="lattice schema")
2421
+ derivedProperties: Optional[List[DerivedPropertiesSchema42]] = 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 CrystalSchema50(BaseModel):
2423
2439
  """
2424
2440
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
2425
2441
  """
2426
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema50]] = None
2442
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema42]] = None
2427
2443
  field_id: Optional[str] = Field(None, alias="_id")
2428
2444
  """
2429
2445
  entity identity
@@ -2448,8 +2464,8 @@ class CrystalSchema50(BaseModel):
2448
2464
  metadata: Optional[Dict[str, Any]] = None
2449
2465
 
2450
2466
 
2451
- class AtomicLayersUniqueRepeatedSchema20(BaseModel):
2452
- termination_top: TerminationSchema22 = Field(..., title="Termination Schema")
2467
+ class AtomicLayersUniqueRepeatedSchema16(BaseModel):
2468
+ termination_top: TerminationSchema18 = Field(..., title="Termination Schema")
2453
2469
  """
2454
2470
  Defines a specific termination of a slab
2455
2471
  """
@@ -2461,7 +2477,7 @@ class AtomicLayersUniqueRepeatedSchema20(BaseModel):
2461
2477
  """
2462
2478
  Miller indices [h, k, l] defining crystallographic planes
2463
2479
  """
2464
- crystal: CrystalSchema50 = Field(..., title="Crystal Schema")
2480
+ crystal: CrystalSchema42 = Field(..., title="Crystal Schema")
2465
2481
  """
2466
2482
  A crystal structure, referencing the base material schema
2467
2483
  """
@@ -2471,7 +2487,7 @@ class AtomicLayersUniqueRepeatedSchema20(BaseModel):
2471
2487
  """
2472
2488
 
2473
2489
 
2474
- class Value110(Enum):
2490
+ class Value94(Enum):
2475
2491
  H = "H"
2476
2492
  He = "He"
2477
2493
  Li = "Li"
@@ -2592,13 +2608,13 @@ class Value110(Enum):
2592
2608
  Og = "Og"
2593
2609
 
2594
2610
 
2595
- class Value111(Enum):
2611
+ class Value95(Enum):
2596
2612
  X = "X"
2597
2613
  Vac = "Vac"
2598
2614
 
2599
2615
 
2600
- class AtomicElementSchema54(BaseModel):
2601
- value: Union[Value110, Value111]
2616
+ class AtomicElementSchema46(BaseModel):
2617
+ value: Union[Value94, Value95]
2602
2618
  """
2603
2619
  All elements, including extra elements
2604
2620
  """
@@ -2608,8 +2624,8 @@ class AtomicElementSchema54(BaseModel):
2608
2624
  """
2609
2625
 
2610
2626
 
2611
- class BasisSchema52(BaseModel):
2612
- elements: List[AtomicElementSchema54] = Field(..., title="atomic elements schema")
2627
+ class BasisSchema44(BaseModel):
2628
+ elements: List[AtomicElementSchema46] = Field(..., title="atomic elements schema")
2613
2629
  """
2614
2630
  atomic elements schema
2615
2631
  """
@@ -2624,7 +2640,7 @@ class BasisSchema52(BaseModel):
2624
2640
  """
2625
2641
 
2626
2642
 
2627
- class LatticeVectorsSchema51(BaseModel):
2643
+ class LatticeVectorsSchema43(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 LatticeVectorsSchema51(BaseModel):
2635
2651
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
2636
2652
 
2637
2653
 
2638
- class LatticeUnitsSchema51(BaseModel):
2654
+ class LatticeUnitsSchema43(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 LatticeSchema51(BaseModel):
2659
+ class LatticeSchema43(BaseModel):
2644
2660
  a: float
2645
2661
  """
2646
2662
  length of the first lattice vector
@@ -2665,56 +2681,56 @@ class LatticeSchema51(BaseModel):
2665
2681
  """
2666
2682
  angle between first and third lattice vector
2667
2683
  """
2668
- vectors: Optional[LatticeVectorsSchema51] = Field(None, title="lattice vectors schema")
2684
+ vectors: Optional[LatticeVectorsSchema43] = Field(None, title="lattice vectors schema")
2669
2685
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
2670
- units: Optional[LatticeUnitsSchema51] = Field(
2671
- default_factory=lambda: LatticeUnitsSchema51.model_validate({"length": "angstrom", "angle": "degree"}),
2686
+ units: Optional[LatticeUnitsSchema43] = Field(
2687
+ default_factory=lambda: LatticeUnitsSchema43.model_validate({"length": "angstrom", "angle": "degree"}),
2672
2688
  title="Lattice units schema",
2673
2689
  )
2674
2690
 
2675
2691
 
2676
- class Name415(Enum):
2692
+ class Name351(Enum):
2677
2693
  volume = "volume"
2678
2694
 
2679
2695
 
2680
- class Units162(Enum):
2696
+ class Units138(Enum):
2681
2697
  angstrom_3 = "angstrom^3"
2682
2698
 
2683
2699
 
2684
- class VolumeSchema51(BaseModel):
2700
+ class VolumeSchema43(BaseModel):
2685
2701
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
2686
- units: Optional[Units162] = None
2702
+ units: Optional[Units138] = None
2687
2703
  value: float
2688
2704
 
2689
2705
 
2690
- class Name416(Enum):
2706
+ class Name352(Enum):
2691
2707
  density = "density"
2692
2708
 
2693
2709
 
2694
- class Units163(Enum):
2710
+ class Units139(Enum):
2695
2711
  g_cm_3 = "g/cm^3"
2696
2712
 
2697
2713
 
2698
- class DensitySchema51(BaseModel):
2714
+ class DensitySchema43(BaseModel):
2699
2715
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
2700
- units: Optional[Units163] = None
2716
+ units: Optional[Units139] = None
2701
2717
  value: float
2702
2718
 
2703
2719
 
2704
- class Units164(Enum):
2720
+ class Units140(Enum):
2705
2721
  angstrom = "angstrom"
2706
2722
 
2707
2723
 
2708
- class ScalarSchema52(BaseModel):
2709
- units: Optional[Units164] = None
2724
+ class ScalarSchema44(BaseModel):
2725
+ units: Optional[Units140] = None
2710
2726
  value: float
2711
2727
 
2712
2728
 
2713
- class Name417(Enum):
2729
+ class Name353(Enum):
2714
2730
  symmetry = "symmetry"
2715
2731
 
2716
2732
 
2717
- class SymmetrySchema51(BaseModel):
2733
+ class SymmetrySchema43(BaseModel):
2718
2734
  pointGroupSymbol: Optional[str] = None
2719
2735
  """
2720
2736
  point group symbol in Schoenflies notation
@@ -2723,18 +2739,18 @@ class SymmetrySchema51(BaseModel):
2723
2739
  """
2724
2740
  space group symbol in Hermann–Mauguin notation
2725
2741
  """
2726
- tolerance: Optional[ScalarSchema52] = Field(None, title="scalar schema")
2742
+ tolerance: Optional[ScalarSchema44] = 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 Name418(Enum):
2749
+ class Name354(Enum):
2734
2750
  elemental_ratio = "elemental_ratio"
2735
2751
 
2736
2752
 
2737
- class ElementalRatio51(BaseModel):
2753
+ class ElementalRatio43(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 ElementalRatio51(BaseModel):
2743
2759
  """
2744
2760
 
2745
2761
 
2746
- class Name419(Enum):
2762
+ class Name355(Enum):
2747
2763
  p_norm = "p-norm"
2748
2764
 
2749
2765
 
2750
- class PNorm51(BaseModel):
2766
+ class PNorm43(BaseModel):
2751
2767
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
2752
2768
  degree: Optional[int] = None
2753
2769
  """
@@ -2756,56 +2772,56 @@ class PNorm51(BaseModel):
2756
2772
  value: float
2757
2773
 
2758
2774
 
2759
- class Name420(Enum):
2775
+ class Name356(Enum):
2760
2776
  inchi = "inchi"
2761
2777
 
2762
2778
 
2763
- class InChIRepresentationSchema51(BaseModel):
2779
+ class InChIRepresentationSchema43(BaseModel):
2764
2780
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
2765
2781
  value: str
2766
2782
 
2767
2783
 
2768
- class Name421(Enum):
2784
+ class Name357(Enum):
2769
2785
  inchi_key = "inchi_key"
2770
2786
 
2771
2787
 
2772
- class InChIKeyRepresentationSchema51(BaseModel):
2788
+ class InChIKeyRepresentationSchema43(BaseModel):
2773
2789
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
2774
2790
  value: str
2775
2791
 
2776
2792
 
2777
- class DerivedPropertiesSchema51(
2793
+ class DerivedPropertiesSchema43(
2778
2794
  RootModel[
2779
2795
  Union[
2780
- VolumeSchema51,
2781
- DensitySchema51,
2782
- SymmetrySchema51,
2783
- ElementalRatio51,
2784
- PNorm51,
2785
- InChIRepresentationSchema51,
2786
- InChIKeyRepresentationSchema51,
2796
+ VolumeSchema43,
2797
+ DensitySchema43,
2798
+ SymmetrySchema43,
2799
+ ElementalRatio43,
2800
+ PNorm43,
2801
+ InChIRepresentationSchema43,
2802
+ InChIKeyRepresentationSchema43,
2787
2803
  ]
2788
2804
  ]
2789
2805
  ):
2790
2806
  root: Union[
2791
- VolumeSchema51,
2792
- DensitySchema51,
2793
- SymmetrySchema51,
2794
- ElementalRatio51,
2795
- PNorm51,
2796
- InChIRepresentationSchema51,
2797
- InChIKeyRepresentationSchema51,
2807
+ VolumeSchema43,
2808
+ DensitySchema43,
2809
+ SymmetrySchema43,
2810
+ ElementalRatio43,
2811
+ PNorm43,
2812
+ InChIRepresentationSchema43,
2813
+ InChIKeyRepresentationSchema43,
2798
2814
  ] = Field(..., discriminator="name")
2799
2815
 
2800
2816
 
2801
- class Name422(Enum):
2817
+ class Name358(Enum):
2802
2818
  default = "default"
2803
2819
  atomsTooClose = "atomsTooClose"
2804
2820
  atomsOverlap = "atomsOverlap"
2805
2821
 
2806
2822
 
2807
- class MaterialConsistencyCheckSchema51(BaseModel):
2808
- name: Name422
2823
+ class MaterialConsistencyCheckSchema43(BaseModel):
2824
+ name: Name358
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 MaterialConsistencyCheckSchema51(BaseModel):
2823
2839
  """
2824
2840
 
2825
2841
 
2826
- class CrystalSchema51(BaseModel):
2842
+ class CrystalSchema43(BaseModel):
2827
2843
  formula: Optional[str] = None
2828
2844
  """
2829
2845
  reduced chemical formula
@@ -2832,9 +2848,9 @@ class CrystalSchema51(BaseModel):
2832
2848
  """
2833
2849
  chemical formula based on the number of atoms of each element in the supercell
2834
2850
  """
2835
- basis: BasisSchema52 = Field(..., title="basis schema")
2836
- lattice: LatticeSchema51 = Field(..., title="lattice schema")
2837
- derivedProperties: Optional[List[DerivedPropertiesSchema51]] = Field(None, title="derived properties schema")
2851
+ basis: BasisSchema44 = Field(..., title="basis schema")
2852
+ lattice: LatticeSchema43 = Field(..., title="lattice schema")
2853
+ derivedProperties: Optional[List[DerivedPropertiesSchema43]] = 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 CrystalSchema51(BaseModel):
2855
2871
  """
2856
2872
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
2857
2873
  """
2858
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema51]] = None
2874
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema43]] = None
2859
2875
  field_id: Optional[str] = Field(None, alias="_id")
2860
2876
  """
2861
2877
  entity identity
@@ -2880,7 +2896,7 @@ class CrystalSchema51(BaseModel):
2880
2896
  metadata: Optional[Dict[str, Any]] = None
2881
2897
 
2882
2898
 
2883
- class VacuumConfigurationSchema24(BaseModel):
2899
+ class VacuumConfigurationSchema20(BaseModel):
2884
2900
  direction: AxisEnum = Field(..., title="Axis Enum")
2885
2901
  """
2886
2902
  Enum for axis types
@@ -2889,39 +2905,27 @@ class VacuumConfigurationSchema24(BaseModel):
2889
2905
  """
2890
2906
  Size of the vacuum slab in angstroms
2891
2907
  """
2892
- crystal: CrystalSchema51 = Field(..., title="Crystal Schema")
2908
+ crystal: CrystalSchema43 = 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[AtomicLayersUniqueRepeatedSchema20, VacuumConfigurationSchema24]] = Field(
2914
+ class SlabConfigurationSchema10(BaseModel):
2915
+ stack_components: List[Union[AtomicLayersUniqueRepeatedSchema16, VacuumConfigurationSchema20]] = 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 TerminationSchema23(BaseModel):
2928
+ class TerminationSchema19(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 TerminationSchema23(BaseModel):
2934
2938
  """
2935
2939
 
2936
2940
 
2937
- class Value112(Enum):
2941
+ class Value96(Enum):
2938
2942
  H = "H"
2939
2943
  He = "He"
2940
2944
  Li = "Li"
@@ -3055,13 +3059,13 @@ class Value112(Enum):
3055
3059
  Og = "Og"
3056
3060
 
3057
3061
 
3058
- class Value113(Enum):
3062
+ class Value97(Enum):
3059
3063
  X = "X"
3060
3064
  Vac = "Vac"
3061
3065
 
3062
3066
 
3063
- class AtomicElementSchema55(BaseModel):
3064
- value: Union[Value112, Value113]
3067
+ class AtomicElementSchema47(BaseModel):
3068
+ value: Union[Value96, Value97]
3065
3069
  """
3066
3070
  All elements, including extra elements
3067
3071
  """
@@ -3071,8 +3075,8 @@ class AtomicElementSchema55(BaseModel):
3071
3075
  """
3072
3076
 
3073
3077
 
3074
- class BasisSchema53(BaseModel):
3075
- elements: List[AtomicElementSchema55] = Field(..., title="atomic elements schema")
3078
+ class BasisSchema45(BaseModel):
3079
+ elements: List[AtomicElementSchema47] = Field(..., title="atomic elements schema")
3076
3080
  """
3077
3081
  atomic elements schema
3078
3082
  """
@@ -3087,7 +3091,7 @@ class BasisSchema53(BaseModel):
3087
3091
  """
3088
3092
 
3089
3093
 
3090
- class LatticeVectorsSchema52(BaseModel):
3094
+ class LatticeVectorsSchema44(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 LatticeVectorsSchema52(BaseModel):
3098
3102
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
3099
3103
 
3100
3104
 
3101
- class LatticeUnitsSchema52(BaseModel):
3105
+ class LatticeUnitsSchema44(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 LatticeSchema52(BaseModel):
3110
+ class LatticeSchema44(BaseModel):
3107
3111
  a: float
3108
3112
  """
3109
3113
  length of the first lattice vector
@@ -3128,56 +3132,56 @@ class LatticeSchema52(BaseModel):
3128
3132
  """
3129
3133
  angle between first and third lattice vector
3130
3134
  """
3131
- vectors: Optional[LatticeVectorsSchema52] = Field(None, title="lattice vectors schema")
3135
+ vectors: Optional[LatticeVectorsSchema44] = Field(None, title="lattice vectors schema")
3132
3136
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
3133
- units: Optional[LatticeUnitsSchema52] = Field(
3134
- default_factory=lambda: LatticeUnitsSchema52.model_validate({"length": "angstrom", "angle": "degree"}),
3137
+ units: Optional[LatticeUnitsSchema44] = Field(
3138
+ default_factory=lambda: LatticeUnitsSchema44.model_validate({"length": "angstrom", "angle": "degree"}),
3135
3139
  title="Lattice units schema",
3136
3140
  )
3137
3141
 
3138
3142
 
3139
- class Name423(Enum):
3143
+ class Name359(Enum):
3140
3144
  volume = "volume"
3141
3145
 
3142
3146
 
3143
- class Units165(Enum):
3147
+ class Units141(Enum):
3144
3148
  angstrom_3 = "angstrom^3"
3145
3149
 
3146
3150
 
3147
- class VolumeSchema52(BaseModel):
3151
+ class VolumeSchema44(BaseModel):
3148
3152
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
3149
- units: Optional[Units165] = None
3153
+ units: Optional[Units141] = None
3150
3154
  value: float
3151
3155
 
3152
3156
 
3153
- class Name424(Enum):
3157
+ class Name360(Enum):
3154
3158
  density = "density"
3155
3159
 
3156
3160
 
3157
- class Units166(Enum):
3161
+ class Units142(Enum):
3158
3162
  g_cm_3 = "g/cm^3"
3159
3163
 
3160
3164
 
3161
- class DensitySchema52(BaseModel):
3165
+ class DensitySchema44(BaseModel):
3162
3166
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
3163
- units: Optional[Units166] = None
3167
+ units: Optional[Units142] = None
3164
3168
  value: float
3165
3169
 
3166
3170
 
3167
- class Units167(Enum):
3171
+ class Units143(Enum):
3168
3172
  angstrom = "angstrom"
3169
3173
 
3170
3174
 
3171
- class ScalarSchema53(BaseModel):
3172
- units: Optional[Units167] = None
3175
+ class ScalarSchema45(BaseModel):
3176
+ units: Optional[Units143] = None
3173
3177
  value: float
3174
3178
 
3175
3179
 
3176
- class Name425(Enum):
3180
+ class Name361(Enum):
3177
3181
  symmetry = "symmetry"
3178
3182
 
3179
3183
 
3180
- class SymmetrySchema52(BaseModel):
3184
+ class SymmetrySchema44(BaseModel):
3181
3185
  pointGroupSymbol: Optional[str] = None
3182
3186
  """
3183
3187
  point group symbol in Schoenflies notation
@@ -3186,18 +3190,18 @@ class SymmetrySchema52(BaseModel):
3186
3190
  """
3187
3191
  space group symbol in Hermann–Mauguin notation
3188
3192
  """
3189
- tolerance: Optional[ScalarSchema53] = Field(None, title="scalar schema")
3193
+ tolerance: Optional[ScalarSchema45] = 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 Name426(Enum):
3200
+ class Name362(Enum):
3197
3201
  elemental_ratio = "elemental_ratio"
3198
3202
 
3199
3203
 
3200
- class ElementalRatio52(BaseModel):
3204
+ class ElementalRatio44(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 ElementalRatio52(BaseModel):
3206
3210
  """
3207
3211
 
3208
3212
 
3209
- class Name427(Enum):
3213
+ class Name363(Enum):
3210
3214
  p_norm = "p-norm"
3211
3215
 
3212
3216
 
3213
- class PNorm52(BaseModel):
3217
+ class PNorm44(BaseModel):
3214
3218
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
3215
3219
  degree: Optional[int] = None
3216
3220
  """
@@ -3219,56 +3223,56 @@ class PNorm52(BaseModel):
3219
3223
  value: float
3220
3224
 
3221
3225
 
3222
- class Name428(Enum):
3226
+ class Name364(Enum):
3223
3227
  inchi = "inchi"
3224
3228
 
3225
3229
 
3226
- class InChIRepresentationSchema52(BaseModel):
3230
+ class InChIRepresentationSchema44(BaseModel):
3227
3231
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
3228
3232
  value: str
3229
3233
 
3230
3234
 
3231
- class Name429(Enum):
3235
+ class Name365(Enum):
3232
3236
  inchi_key = "inchi_key"
3233
3237
 
3234
3238
 
3235
- class InChIKeyRepresentationSchema52(BaseModel):
3239
+ class InChIKeyRepresentationSchema44(BaseModel):
3236
3240
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
3237
3241
  value: str
3238
3242
 
3239
3243
 
3240
- class DerivedPropertiesSchema52(
3244
+ class DerivedPropertiesSchema44(
3241
3245
  RootModel[
3242
3246
  Union[
3243
- VolumeSchema52,
3244
- DensitySchema52,
3245
- SymmetrySchema52,
3246
- ElementalRatio52,
3247
- PNorm52,
3248
- InChIRepresentationSchema52,
3249
- InChIKeyRepresentationSchema52,
3247
+ VolumeSchema44,
3248
+ DensitySchema44,
3249
+ SymmetrySchema44,
3250
+ ElementalRatio44,
3251
+ PNorm44,
3252
+ InChIRepresentationSchema44,
3253
+ InChIKeyRepresentationSchema44,
3250
3254
  ]
3251
3255
  ]
3252
3256
  ):
3253
3257
  root: Union[
3254
- VolumeSchema52,
3255
- DensitySchema52,
3256
- SymmetrySchema52,
3257
- ElementalRatio52,
3258
- PNorm52,
3259
- InChIRepresentationSchema52,
3260
- InChIKeyRepresentationSchema52,
3258
+ VolumeSchema44,
3259
+ DensitySchema44,
3260
+ SymmetrySchema44,
3261
+ ElementalRatio44,
3262
+ PNorm44,
3263
+ InChIRepresentationSchema44,
3264
+ InChIKeyRepresentationSchema44,
3261
3265
  ] = Field(..., discriminator="name")
3262
3266
 
3263
3267
 
3264
- class Name430(Enum):
3268
+ class Name366(Enum):
3265
3269
  default = "default"
3266
3270
  atomsTooClose = "atomsTooClose"
3267
3271
  atomsOverlap = "atomsOverlap"
3268
3272
 
3269
3273
 
3270
- class MaterialConsistencyCheckSchema52(BaseModel):
3271
- name: Name430
3274
+ class MaterialConsistencyCheckSchema44(BaseModel):
3275
+ name: Name366
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 MaterialConsistencyCheckSchema52(BaseModel):
3286
3290
  """
3287
3291
 
3288
3292
 
3289
- class CrystalSchema52(BaseModel):
3293
+ class CrystalSchema44(BaseModel):
3290
3294
  formula: Optional[str] = None
3291
3295
  """
3292
3296
  reduced chemical formula
@@ -3295,9 +3299,9 @@ class CrystalSchema52(BaseModel):
3295
3299
  """
3296
3300
  chemical formula based on the number of atoms of each element in the supercell
3297
3301
  """
3298
- basis: BasisSchema53 = Field(..., title="basis schema")
3299
- lattice: LatticeSchema52 = Field(..., title="lattice schema")
3300
- derivedProperties: Optional[List[DerivedPropertiesSchema52]] = Field(None, title="derived properties schema")
3302
+ basis: BasisSchema45 = Field(..., title="basis schema")
3303
+ lattice: LatticeSchema44 = Field(..., title="lattice schema")
3304
+ derivedProperties: Optional[List[DerivedPropertiesSchema44]] = 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 CrystalSchema52(BaseModel):
3318
3322
  """
3319
3323
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
3320
3324
  """
3321
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema52]] = None
3325
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema44]] = None
3322
3326
  field_id: Optional[str] = Field(None, alias="_id")
3323
3327
  """
3324
3328
  entity identity
@@ -3343,8 +3347,8 @@ class CrystalSchema52(BaseModel):
3343
3347
  metadata: Optional[Dict[str, Any]] = None
3344
3348
 
3345
3349
 
3346
- class AtomicLayersUniqueRepeatedSchema21(BaseModel):
3347
- termination_top: TerminationSchema23 = Field(..., title="Termination Schema")
3350
+ class AtomicLayersUniqueRepeatedSchema17(BaseModel):
3351
+ termination_top: TerminationSchema19 = Field(..., title="Termination Schema")
3348
3352
  """
3349
3353
  Defines a specific termination of a slab
3350
3354
  """
@@ -3356,7 +3360,7 @@ class AtomicLayersUniqueRepeatedSchema21(BaseModel):
3356
3360
  """
3357
3361
  Miller indices [h, k, l] defining crystallographic planes
3358
3362
  """
3359
- crystal: CrystalSchema52 = Field(..., title="Crystal Schema")
3363
+ crystal: CrystalSchema44 = Field(..., title="Crystal Schema")
3360
3364
  """
3361
3365
  A crystal structure, referencing the base material schema
3362
3366
  """
@@ -3366,7 +3370,7 @@ class AtomicLayersUniqueRepeatedSchema21(BaseModel):
3366
3370
  """
3367
3371
 
3368
3372
 
3369
- class Value114(Enum):
3373
+ class Value98(Enum):
3370
3374
  H = "H"
3371
3375
  He = "He"
3372
3376
  Li = "Li"
@@ -3487,13 +3491,13 @@ class Value114(Enum):
3487
3491
  Og = "Og"
3488
3492
 
3489
3493
 
3490
- class Value115(Enum):
3494
+ class Value99(Enum):
3491
3495
  X = "X"
3492
3496
  Vac = "Vac"
3493
3497
 
3494
3498
 
3495
- class AtomicElementSchema56(BaseModel):
3496
- value: Union[Value114, Value115]
3499
+ class AtomicElementSchema48(BaseModel):
3500
+ value: Union[Value98, Value99]
3497
3501
  """
3498
3502
  All elements, including extra elements
3499
3503
  """
@@ -3503,8 +3507,8 @@ class AtomicElementSchema56(BaseModel):
3503
3507
  """
3504
3508
 
3505
3509
 
3506
- class BasisSchema54(BaseModel):
3507
- elements: List[AtomicElementSchema56] = Field(..., title="atomic elements schema")
3510
+ class BasisSchema46(BaseModel):
3511
+ elements: List[AtomicElementSchema48] = Field(..., title="atomic elements schema")
3508
3512
  """
3509
3513
  atomic elements schema
3510
3514
  """
@@ -3519,7 +3523,7 @@ class BasisSchema54(BaseModel):
3519
3523
  """
3520
3524
 
3521
3525
 
3522
- class LatticeVectorsSchema53(BaseModel):
3526
+ class LatticeVectorsSchema45(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 LatticeVectorsSchema53(BaseModel):
3530
3534
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
3531
3535
 
3532
3536
 
3533
- class LatticeUnitsSchema53(BaseModel):
3537
+ class LatticeUnitsSchema45(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 LatticeSchema53(BaseModel):
3542
+ class LatticeSchema45(BaseModel):
3539
3543
  a: float
3540
3544
  """
3541
3545
  length of the first lattice vector
@@ -3560,56 +3564,56 @@ class LatticeSchema53(BaseModel):
3560
3564
  """
3561
3565
  angle between first and third lattice vector
3562
3566
  """
3563
- vectors: Optional[LatticeVectorsSchema53] = Field(None, title="lattice vectors schema")
3567
+ vectors: Optional[LatticeVectorsSchema45] = Field(None, title="lattice vectors schema")
3564
3568
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
3565
- units: Optional[LatticeUnitsSchema53] = Field(
3566
- default_factory=lambda: LatticeUnitsSchema53.model_validate({"length": "angstrom", "angle": "degree"}),
3569
+ units: Optional[LatticeUnitsSchema45] = Field(
3570
+ default_factory=lambda: LatticeUnitsSchema45.model_validate({"length": "angstrom", "angle": "degree"}),
3567
3571
  title="Lattice units schema",
3568
3572
  )
3569
3573
 
3570
3574
 
3571
- class Name431(Enum):
3575
+ class Name367(Enum):
3572
3576
  volume = "volume"
3573
3577
 
3574
3578
 
3575
- class Units168(Enum):
3579
+ class Units144(Enum):
3576
3580
  angstrom_3 = "angstrom^3"
3577
3581
 
3578
3582
 
3579
- class VolumeSchema53(BaseModel):
3583
+ class VolumeSchema45(BaseModel):
3580
3584
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
3581
- units: Optional[Units168] = None
3585
+ units: Optional[Units144] = None
3582
3586
  value: float
3583
3587
 
3584
3588
 
3585
- class Name432(Enum):
3589
+ class Name368(Enum):
3586
3590
  density = "density"
3587
3591
 
3588
3592
 
3589
- class Units169(Enum):
3593
+ class Units145(Enum):
3590
3594
  g_cm_3 = "g/cm^3"
3591
3595
 
3592
3596
 
3593
- class DensitySchema53(BaseModel):
3597
+ class DensitySchema45(BaseModel):
3594
3598
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
3595
- units: Optional[Units169] = None
3599
+ units: Optional[Units145] = None
3596
3600
  value: float
3597
3601
 
3598
3602
 
3599
- class Units170(Enum):
3603
+ class Units146(Enum):
3600
3604
  angstrom = "angstrom"
3601
3605
 
3602
3606
 
3603
- class ScalarSchema54(BaseModel):
3604
- units: Optional[Units170] = None
3607
+ class ScalarSchema46(BaseModel):
3608
+ units: Optional[Units146] = None
3605
3609
  value: float
3606
3610
 
3607
3611
 
3608
- class Name433(Enum):
3612
+ class Name369(Enum):
3609
3613
  symmetry = "symmetry"
3610
3614
 
3611
3615
 
3612
- class SymmetrySchema53(BaseModel):
3616
+ class SymmetrySchema45(BaseModel):
3613
3617
  pointGroupSymbol: Optional[str] = None
3614
3618
  """
3615
3619
  point group symbol in Schoenflies notation
@@ -3618,18 +3622,18 @@ class SymmetrySchema53(BaseModel):
3618
3622
  """
3619
3623
  space group symbol in Hermann–Mauguin notation
3620
3624
  """
3621
- tolerance: Optional[ScalarSchema54] = Field(None, title="scalar schema")
3625
+ tolerance: Optional[ScalarSchema46] = 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 Name434(Enum):
3632
+ class Name370(Enum):
3629
3633
  elemental_ratio = "elemental_ratio"
3630
3634
 
3631
3635
 
3632
- class ElementalRatio53(BaseModel):
3636
+ class ElementalRatio45(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 ElementalRatio53(BaseModel):
3638
3642
  """
3639
3643
 
3640
3644
 
3641
- class Name435(Enum):
3645
+ class Name371(Enum):
3642
3646
  p_norm = "p-norm"
3643
3647
 
3644
3648
 
3645
- class PNorm53(BaseModel):
3649
+ class PNorm45(BaseModel):
3646
3650
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
3647
3651
  degree: Optional[int] = None
3648
3652
  """
@@ -3651,56 +3655,56 @@ class PNorm53(BaseModel):
3651
3655
  value: float
3652
3656
 
3653
3657
 
3654
- class Name436(Enum):
3658
+ class Name372(Enum):
3655
3659
  inchi = "inchi"
3656
3660
 
3657
3661
 
3658
- class InChIRepresentationSchema53(BaseModel):
3662
+ class InChIRepresentationSchema45(BaseModel):
3659
3663
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
3660
3664
  value: str
3661
3665
 
3662
3666
 
3663
- class Name437(Enum):
3667
+ class Name373(Enum):
3664
3668
  inchi_key = "inchi_key"
3665
3669
 
3666
3670
 
3667
- class InChIKeyRepresentationSchema53(BaseModel):
3671
+ class InChIKeyRepresentationSchema45(BaseModel):
3668
3672
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
3669
3673
  value: str
3670
3674
 
3671
3675
 
3672
- class DerivedPropertiesSchema53(
3676
+ class DerivedPropertiesSchema45(
3673
3677
  RootModel[
3674
3678
  Union[
3675
- VolumeSchema53,
3676
- DensitySchema53,
3677
- SymmetrySchema53,
3678
- ElementalRatio53,
3679
- PNorm53,
3680
- InChIRepresentationSchema53,
3681
- InChIKeyRepresentationSchema53,
3679
+ VolumeSchema45,
3680
+ DensitySchema45,
3681
+ SymmetrySchema45,
3682
+ ElementalRatio45,
3683
+ PNorm45,
3684
+ InChIRepresentationSchema45,
3685
+ InChIKeyRepresentationSchema45,
3682
3686
  ]
3683
3687
  ]
3684
3688
  ):
3685
3689
  root: Union[
3686
- VolumeSchema53,
3687
- DensitySchema53,
3688
- SymmetrySchema53,
3689
- ElementalRatio53,
3690
- PNorm53,
3691
- InChIRepresentationSchema53,
3692
- InChIKeyRepresentationSchema53,
3690
+ VolumeSchema45,
3691
+ DensitySchema45,
3692
+ SymmetrySchema45,
3693
+ ElementalRatio45,
3694
+ PNorm45,
3695
+ InChIRepresentationSchema45,
3696
+ InChIKeyRepresentationSchema45,
3693
3697
  ] = Field(..., discriminator="name")
3694
3698
 
3695
3699
 
3696
- class Name438(Enum):
3700
+ class Name374(Enum):
3697
3701
  default = "default"
3698
3702
  atomsTooClose = "atomsTooClose"
3699
3703
  atomsOverlap = "atomsOverlap"
3700
3704
 
3701
3705
 
3702
- class MaterialConsistencyCheckSchema53(BaseModel):
3703
- name: Name438
3706
+ class MaterialConsistencyCheckSchema45(BaseModel):
3707
+ name: Name374
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 MaterialConsistencyCheckSchema53(BaseModel):
3718
3722
  """
3719
3723
 
3720
3724
 
3721
- class CrystalSchema53(BaseModel):
3725
+ class CrystalSchema45(BaseModel):
3722
3726
  formula: Optional[str] = None
3723
3727
  """
3724
3728
  reduced chemical formula
@@ -3727,9 +3731,9 @@ class CrystalSchema53(BaseModel):
3727
3731
  """
3728
3732
  chemical formula based on the number of atoms of each element in the supercell
3729
3733
  """
3730
- basis: BasisSchema54 = Field(..., title="basis schema")
3731
- lattice: LatticeSchema53 = Field(..., title="lattice schema")
3732
- derivedProperties: Optional[List[DerivedPropertiesSchema53]] = Field(None, title="derived properties schema")
3734
+ basis: BasisSchema46 = Field(..., title="basis schema")
3735
+ lattice: LatticeSchema45 = Field(..., title="lattice schema")
3736
+ derivedProperties: Optional[List[DerivedPropertiesSchema45]] = 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 CrystalSchema53(BaseModel):
3750
3754
  """
3751
3755
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
3752
3756
  """
3753
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema53]] = None
3757
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema45]] = None
3754
3758
  field_id: Optional[str] = Field(None, alias="_id")
3755
3759
  """
3756
3760
  entity identity
@@ -3775,7 +3779,7 @@ class CrystalSchema53(BaseModel):
3775
3779
  metadata: Optional[Dict[str, Any]] = None
3776
3780
 
3777
3781
 
3778
- class VacuumConfigurationSchema25(BaseModel):
3782
+ class VacuumConfigurationSchema21(BaseModel):
3779
3783
  direction: AxisEnum = Field(..., title="Axis Enum")
3780
3784
  """
3781
3785
  Enum for axis types
@@ -3784,36 +3788,39 @@ class VacuumConfigurationSchema25(BaseModel):
3784
3788
  """
3785
3789
  Size of the vacuum slab in angstroms
3786
3790
  """
3787
- crystal: CrystalSchema53 = Field(..., title="Crystal Schema")
3791
+ crystal: CrystalSchema45 = Field(..., title="Crystal Schema")
3788
3792
  """
3789
3793
  A crystal structure, referencing the base material schema
3790
3794
  """
3791
3795
 
3792
3796
 
3793
- class SlabConfigurationSchema10(BaseModel):
3794
- stack_components: List[Union[AtomicLayersUniqueRepeatedSchema21, VacuumConfigurationSchema25]] = Field(
3795
- ..., max_length=2, min_length=2
3797
+ class SlabStrainedSupercellConfigurationSchema5(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 TerminationSchema24(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[AtomicLayersUniqueRepeatedSchema17, VacuumConfigurationSchema21]] = 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 Value116(Enum):
3823
+ class Value100(Enum):
3817
3824
  H = "H"
3818
3825
  He = "He"
3819
3826
  Li = "Li"
@@ -3934,13 +3941,13 @@ class Value116(Enum):
3934
3941
  Og = "Og"
3935
3942
 
3936
3943
 
3937
- class Value117(Enum):
3944
+ class Value101(Enum):
3938
3945
  X = "X"
3939
3946
  Vac = "Vac"
3940
3947
 
3941
3948
 
3942
- class AtomicElementSchema57(BaseModel):
3943
- value: Union[Value116, Value117]
3949
+ class AtomicElementSchema49(BaseModel):
3950
+ value: Union[Value100, Value101]
3944
3951
  """
3945
3952
  All elements, including extra elements
3946
3953
  """
@@ -3950,8 +3957,8 @@ class AtomicElementSchema57(BaseModel):
3950
3957
  """
3951
3958
 
3952
3959
 
3953
- class BasisSchema55(BaseModel):
3954
- elements: List[AtomicElementSchema57] = Field(..., title="atomic elements schema")
3960
+ class BasisSchema47(BaseModel):
3961
+ elements: List[AtomicElementSchema49] = Field(..., title="atomic elements schema")
3955
3962
  """
3956
3963
  atomic elements schema
3957
3964
  """
@@ -3966,7 +3973,7 @@ class BasisSchema55(BaseModel):
3966
3973
  """
3967
3974
 
3968
3975
 
3969
- class LatticeVectorsSchema54(BaseModel):
3976
+ class LatticeVectorsSchema46(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 LatticeVectorsSchema54(BaseModel):
3977
3984
  units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
3978
3985
 
3979
3986
 
3980
- class LatticeUnitsSchema54(BaseModel):
3987
+ class LatticeUnitsSchema46(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 LatticeSchema54(BaseModel):
3992
+ class LatticeSchema46(BaseModel):
3986
3993
  a: float
3987
3994
  """
3988
3995
  length of the first lattice vector
@@ -4007,56 +4014,56 @@ class LatticeSchema54(BaseModel):
4007
4014
  """
4008
4015
  angle between first and third lattice vector
4009
4016
  """
4010
- vectors: Optional[LatticeVectorsSchema54] = Field(None, title="lattice vectors schema")
4017
+ vectors: Optional[LatticeVectorsSchema46] = Field(None, title="lattice vectors schema")
4011
4018
  type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
4012
- units: Optional[LatticeUnitsSchema54] = Field(
4013
- default_factory=lambda: LatticeUnitsSchema54.model_validate({"length": "angstrom", "angle": "degree"}),
4019
+ units: Optional[LatticeUnitsSchema46] = Field(
4020
+ default_factory=lambda: LatticeUnitsSchema46.model_validate({"length": "angstrom", "angle": "degree"}),
4014
4021
  title="Lattice units schema",
4015
4022
  )
4016
4023
 
4017
4024
 
4018
- class Name439(Enum):
4025
+ class Name375(Enum):
4019
4026
  volume = "volume"
4020
4027
 
4021
4028
 
4022
- class Units171(Enum):
4029
+ class Units147(Enum):
4023
4030
  angstrom_3 = "angstrom^3"
4024
4031
 
4025
4032
 
4026
- class VolumeSchema54(BaseModel):
4033
+ class VolumeSchema46(BaseModel):
4027
4034
  name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
4028
- units: Optional[Units171] = None
4035
+ units: Optional[Units147] = None
4029
4036
  value: float
4030
4037
 
4031
4038
 
4032
- class Name440(Enum):
4039
+ class Name376(Enum):
4033
4040
  density = "density"
4034
4041
 
4035
4042
 
4036
- class Units172(Enum):
4043
+ class Units148(Enum):
4037
4044
  g_cm_3 = "g/cm^3"
4038
4045
 
4039
4046
 
4040
- class DensitySchema54(BaseModel):
4047
+ class DensitySchema46(BaseModel):
4041
4048
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
4042
- units: Optional[Units172] = None
4049
+ units: Optional[Units148] = None
4043
4050
  value: float
4044
4051
 
4045
4052
 
4046
- class Units173(Enum):
4053
+ class Units149(Enum):
4047
4054
  angstrom = "angstrom"
4048
4055
 
4049
4056
 
4050
- class ScalarSchema55(BaseModel):
4051
- units: Optional[Units173] = None
4057
+ class ScalarSchema47(BaseModel):
4058
+ units: Optional[Units149] = None
4052
4059
  value: float
4053
4060
 
4054
4061
 
4055
- class Name441(Enum):
4062
+ class Name377(Enum):
4056
4063
  symmetry = "symmetry"
4057
4064
 
4058
4065
 
4059
- class SymmetrySchema54(BaseModel):
4066
+ class SymmetrySchema46(BaseModel):
4060
4067
  pointGroupSymbol: Optional[str] = None
4061
4068
  """
4062
4069
  point group symbol in Schoenflies notation
@@ -4065,18 +4072,18 @@ class SymmetrySchema54(BaseModel):
4065
4072
  """
4066
4073
  space group symbol in Hermann–Mauguin notation
4067
4074
  """
4068
- tolerance: Optional[ScalarSchema55] = Field(None, title="scalar schema")
4075
+ tolerance: Optional[ScalarSchema47] = Field(None, title="scalar schema")
4069
4076
  """
4070
4077
  tolerance used for symmetry calculation
4071
4078
  """
4072
4079
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
4073
4080
 
4074
4081
 
4075
- class Name442(Enum):
4082
+ class Name378(Enum):
4076
4083
  elemental_ratio = "elemental_ratio"
4077
4084
 
4078
4085
 
4079
- class ElementalRatio54(BaseModel):
4086
+ class ElementalRatio46(BaseModel):
4080
4087
  name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
4081
4088
  value: confloat(ge=0.0, le=1.0)
4082
4089
  element: Optional[str] = None
@@ -4085,11 +4092,11 @@ class ElementalRatio54(BaseModel):
4085
4092
  """
4086
4093
 
4087
4094
 
4088
- class Name443(Enum):
4095
+ class Name379(Enum):
4089
4096
  p_norm = "p-norm"
4090
4097
 
4091
4098
 
4092
- class PNorm54(BaseModel):
4099
+ class PNorm46(BaseModel):
4093
4100
  name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
4094
4101
  degree: Optional[int] = None
4095
4102
  """
@@ -4098,56 +4105,56 @@ class PNorm54(BaseModel):
4098
4105
  value: float
4099
4106
 
4100
4107
 
4101
- class Name444(Enum):
4108
+ class Name380(Enum):
4102
4109
  inchi = "inchi"
4103
4110
 
4104
4111
 
4105
- class InChIRepresentationSchema54(BaseModel):
4112
+ class InChIRepresentationSchema46(BaseModel):
4106
4113
  name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
4107
4114
  value: str
4108
4115
 
4109
4116
 
4110
- class Name445(Enum):
4117
+ class Name381(Enum):
4111
4118
  inchi_key = "inchi_key"
4112
4119
 
4113
4120
 
4114
- class InChIKeyRepresentationSchema54(BaseModel):
4121
+ class InChIKeyRepresentationSchema46(BaseModel):
4115
4122
  name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
4116
4123
  value: str
4117
4124
 
4118
4125
 
4119
- class DerivedPropertiesSchema54(
4126
+ class DerivedPropertiesSchema46(
4120
4127
  RootModel[
4121
4128
  Union[
4122
- VolumeSchema54,
4123
- DensitySchema54,
4124
- SymmetrySchema54,
4125
- ElementalRatio54,
4126
- PNorm54,
4127
- InChIRepresentationSchema54,
4128
- InChIKeyRepresentationSchema54,
4129
+ VolumeSchema46,
4130
+ DensitySchema46,
4131
+ SymmetrySchema46,
4132
+ ElementalRatio46,
4133
+ PNorm46,
4134
+ InChIRepresentationSchema46,
4135
+ InChIKeyRepresentationSchema46,
4129
4136
  ]
4130
4137
  ]
4131
4138
  ):
4132
4139
  root: Union[
4133
- VolumeSchema54,
4134
- DensitySchema54,
4135
- SymmetrySchema54,
4136
- ElementalRatio54,
4137
- PNorm54,
4138
- InChIRepresentationSchema54,
4139
- InChIKeyRepresentationSchema54,
4140
+ VolumeSchema46,
4141
+ DensitySchema46,
4142
+ SymmetrySchema46,
4143
+ ElementalRatio46,
4144
+ PNorm46,
4145
+ InChIRepresentationSchema46,
4146
+ InChIKeyRepresentationSchema46,
4140
4147
  ] = Field(..., discriminator="name")
4141
4148
 
4142
4149
 
4143
- class Name446(Enum):
4150
+ class Name382(Enum):
4144
4151
  default = "default"
4145
4152
  atomsTooClose = "atomsTooClose"
4146
4153
  atomsOverlap = "atomsOverlap"
4147
4154
 
4148
4155
 
4149
- class MaterialConsistencyCheckSchema54(BaseModel):
4150
- name: Name446
4156
+ class MaterialConsistencyCheckSchema46(BaseModel):
4157
+ name: Name382
4151
4158
  """
4152
4159
  Name of the consistency check that is performed, which is listed in an enum.
4153
4160
  """
@@ -4165,7 +4172,7 @@ class MaterialConsistencyCheckSchema54(BaseModel):
4165
4172
  """
4166
4173
 
4167
4174
 
4168
- class CrystalSchema54(BaseModel):
4175
+ class CrystalSchema46(BaseModel):
4169
4176
  formula: Optional[str] = None
4170
4177
  """
4171
4178
  reduced chemical formula
@@ -4174,9 +4181,9 @@ class CrystalSchema54(BaseModel):
4174
4181
  """
4175
4182
  chemical formula based on the number of atoms of each element in the supercell
4176
4183
  """
4177
- basis: BasisSchema55 = Field(..., title="basis schema")
4178
- lattice: LatticeSchema54 = Field(..., title="lattice schema")
4179
- derivedProperties: Optional[List[DerivedPropertiesSchema54]] = Field(None, title="derived properties schema")
4184
+ basis: BasisSchema47 = Field(..., title="basis schema")
4185
+ lattice: LatticeSchema46 = Field(..., title="lattice schema")
4186
+ derivedProperties: Optional[List[DerivedPropertiesSchema46]] = Field(None, title="derived properties schema")
4180
4187
  external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
4181
4188
  """
4182
4189
  information about a database source
@@ -4197,7 +4204,7 @@ class CrystalSchema54(BaseModel):
4197
4204
  """
4198
4205
  Whether to work in the finite molecular picture (usually with atomic orbital basis)
4199
4206
  """
4200
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema54]] = None
4207
+ consistencyChecks: Optional[List[MaterialConsistencyCheckSchema46]] = None
4201
4208
  field_id: Optional[str] = Field(None, alias="_id")
4202
4209
  """
4203
4210
  entity identity
@@ -4222,1818 +4229,41 @@ class CrystalSchema54(BaseModel):
4222
4229
  metadata: Optional[Dict[str, Any]] = None
4223
4230
 
4224
4231
 
4225
- class AtomicLayersUniqueRepeatedSchema22(BaseModel):
4226
- termination_top: TerminationSchema24 = Field(..., title="Termination Schema")
4227
- """
4228
- Defines a specific termination of a slab
4229
- """
4230
- number_of_repetitions: conint(ge=1)
4232
+ class VacuumConfigurationSchema22(BaseModel):
4233
+ direction: AxisEnum = Field(..., title="Axis Enum")
4231
4234
  """
4232
- Number of repetitions of the unique atomic layers
4235
+ Enum for axis types
4233
4236
  """
4234
- miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
4237
+ size: Optional[confloat(ge=0.0)] = 10
4235
4238
  """
4236
- Miller indices [h, k, l] defining crystallographic planes
4239
+ Size of the vacuum slab in angstroms
4237
4240
  """
4238
- crystal: CrystalSchema54 = Field(..., title="Crystal Schema")
4241
+ crystal: CrystalSchema46 = Field(..., title="Crystal Schema")
4239
4242
  """
4240
4243
  A crystal structure, referencing the base material schema
4241
4244
  """
4242
- use_conventional_cell: Optional[bool] = True
4243
- """
4244
- Use the conventional cell for the crystal structure
4245
- """
4246
-
4247
-
4248
- class Value118(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 Value119(Enum):
4370
- X = "X"
4371
- Vac = "Vac"
4372
-
4373
-
4374
- class AtomicElementSchema58(BaseModel):
4375
- value: Union[Value118, Value119]
4376
- """
4377
- All elements, including extra elements
4378
- """
4379
- id: int
4380
- """
4381
- integer id of this entry
4382
- """
4383
4245
 
4384
4246
 
4385
- class BasisSchema56(BaseModel):
4386
- elements: List[AtomicElementSchema58] = Field(..., title="atomic elements schema")
4387
- """
4388
- atomic elements schema
4247
+ class InterfaceConfigurationSchema(BaseModel):
4248
+ stack_components: List[
4249
+ Union[
4250
+ Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema],
4251
+ Union[SlabConfigurationSchema10, SlabStrainedSupercellConfigurationSchema5],
4252
+ VacuumConfigurationSchema22,
4253
+ ]
4254
+ ] = Field(..., max_length=3, min_length=2)
4389
4255
  """
4390
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
4256
+ Components of the interface: slab, slab and vacuum
4391
4257
  """
4392
- atomic coordinates schema
4258
+ direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
4393
4259
  """
4394
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
4395
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
4260
+ Enum for axis types
4396
4261
  """
4397
- atomic labels schema
4262
+ xy_shift: Optional[List[float]] = Field([0, 0], max_length=2, min_length=2, title="vector 2d schema")
4398
4263
  """
4399
-
4400
-
4401
- class LatticeVectorsSchema55(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
4264
+ xy shift for the film as cartesian 2D vector on the xy plane.
4406
4265
  """
4407
- lattice parameter for fractional coordinates
4266
+ gaps: Optional[List[ObjectWithId]] = None
4408
4267
  """
4409
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
4410
-
4411
-
4412
- class LatticeUnitsSchema55(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 LatticeSchema55(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[LatticeVectorsSchema55] = Field(None, title="lattice vectors schema")
4443
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
4444
- units: Optional[LatticeUnitsSchema55] = Field(
4445
- default_factory=lambda: LatticeUnitsSchema55.model_validate({"length": "angstrom", "angle": "degree"}),
4446
- title="Lattice units schema",
4447
- )
4448
-
4449
-
4450
- class Name447(Enum):
4451
- volume = "volume"
4452
-
4453
-
4454
- class Units174(Enum):
4455
- angstrom_3 = "angstrom^3"
4456
-
4457
-
4458
- class VolumeSchema55(BaseModel):
4459
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
4460
- units: Optional[Units174] = None
4461
- value: float
4462
-
4463
-
4464
- class Name448(Enum):
4465
- density = "density"
4466
-
4467
-
4468
- class Units175(Enum):
4469
- g_cm_3 = "g/cm^3"
4470
-
4471
-
4472
- class DensitySchema55(BaseModel):
4473
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
4474
- units: Optional[Units175] = None
4475
- value: float
4476
-
4477
-
4478
- class Units176(Enum):
4479
- angstrom = "angstrom"
4480
-
4481
-
4482
- class ScalarSchema56(BaseModel):
4483
- units: Optional[Units176] = None
4484
- value: float
4485
-
4486
-
4487
- class Name449(Enum):
4488
- symmetry = "symmetry"
4489
-
4490
-
4491
- class SymmetrySchema55(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[ScalarSchema56] = 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 Name450(Enum):
4508
- elemental_ratio = "elemental_ratio"
4509
-
4510
-
4511
- class ElementalRatio55(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 Name451(Enum):
4521
- p_norm = "p-norm"
4522
-
4523
-
4524
- class PNorm55(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 Name452(Enum):
4534
- inchi = "inchi"
4535
-
4536
-
4537
- class InChIRepresentationSchema55(BaseModel):
4538
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
4539
- value: str
4540
-
4541
-
4542
- class Name453(Enum):
4543
- inchi_key = "inchi_key"
4544
-
4545
-
4546
- class InChIKeyRepresentationSchema55(BaseModel):
4547
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
4548
- value: str
4549
-
4550
-
4551
- class DerivedPropertiesSchema55(
4552
- RootModel[
4553
- Union[
4554
- VolumeSchema55,
4555
- DensitySchema55,
4556
- SymmetrySchema55,
4557
- ElementalRatio55,
4558
- PNorm55,
4559
- InChIRepresentationSchema55,
4560
- InChIKeyRepresentationSchema55,
4561
- ]
4562
- ]
4563
- ):
4564
- root: Union[
4565
- VolumeSchema55,
4566
- DensitySchema55,
4567
- SymmetrySchema55,
4568
- ElementalRatio55,
4569
- PNorm55,
4570
- InChIRepresentationSchema55,
4571
- InChIKeyRepresentationSchema55,
4572
- ] = Field(..., discriminator="name")
4573
-
4574
-
4575
- class Name454(Enum):
4576
- default = "default"
4577
- atomsTooClose = "atomsTooClose"
4578
- atomsOverlap = "atomsOverlap"
4579
-
4580
-
4581
- class MaterialConsistencyCheckSchema55(BaseModel):
4582
- name: Name454
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 CrystalSchema55(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: BasisSchema56 = Field(..., title="basis schema")
4610
- lattice: LatticeSchema55 = Field(..., title="lattice schema")
4611
- derivedProperties: Optional[List[DerivedPropertiesSchema55]] = 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[MaterialConsistencyCheckSchema55]] = 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 VacuumConfigurationSchema26(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: CrystalSchema55 = Field(..., title="Crystal Schema")
4667
- """
4668
- A crystal structure, referencing the base material schema
4669
- """
4670
-
4671
-
4672
- class SlabStrainedSupercellConfigurationSchema5(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[AtomicLayersUniqueRepeatedSchema22, VacuumConfigurationSchema26]] = 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 TerminationSchema25(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 Value120(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 Value121(Enum):
4829
- X = "X"
4830
- Vac = "Vac"
4831
-
4832
-
4833
- class AtomicElementSchema59(BaseModel):
4834
- value: Union[Value120, Value121]
4835
- """
4836
- All elements, including extra elements
4837
- """
4838
- id: int
4839
- """
4840
- integer id of this entry
4841
- """
4842
-
4843
-
4844
- class BasisSchema57(BaseModel):
4845
- elements: List[AtomicElementSchema59] = 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 LatticeVectorsSchema56(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 LatticeUnitsSchema56(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 LatticeSchema56(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[LatticeVectorsSchema56] = Field(None, title="lattice vectors schema")
4902
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
4903
- units: Optional[LatticeUnitsSchema56] = Field(
4904
- default_factory=lambda: LatticeUnitsSchema56.model_validate({"length": "angstrom", "angle": "degree"}),
4905
- title="Lattice units schema",
4906
- )
4907
-
4908
-
4909
- class Name455(Enum):
4910
- volume = "volume"
4911
-
4912
-
4913
- class Units177(Enum):
4914
- angstrom_3 = "angstrom^3"
4915
-
4916
-
4917
- class VolumeSchema56(BaseModel):
4918
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
4919
- units: Optional[Units177] = None
4920
- value: float
4921
-
4922
-
4923
- class Name456(Enum):
4924
- density = "density"
4925
-
4926
-
4927
- class Units178(Enum):
4928
- g_cm_3 = "g/cm^3"
4929
-
4930
-
4931
- class DensitySchema56(BaseModel):
4932
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
4933
- units: Optional[Units178] = None
4934
- value: float
4935
-
4936
-
4937
- class Units179(Enum):
4938
- angstrom = "angstrom"
4939
-
4940
-
4941
- class ScalarSchema57(BaseModel):
4942
- units: Optional[Units179] = None
4943
- value: float
4944
-
4945
-
4946
- class Name457(Enum):
4947
- symmetry = "symmetry"
4948
-
4949
-
4950
- class SymmetrySchema56(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[ScalarSchema57] = 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 Name458(Enum):
4967
- elemental_ratio = "elemental_ratio"
4968
-
4969
-
4970
- class ElementalRatio56(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 Name459(Enum):
4980
- p_norm = "p-norm"
4981
-
4982
-
4983
- class PNorm56(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 Name460(Enum):
4993
- inchi = "inchi"
4994
-
4995
-
4996
- class InChIRepresentationSchema56(BaseModel):
4997
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
4998
- value: str
4999
-
5000
-
5001
- class Name461(Enum):
5002
- inchi_key = "inchi_key"
5003
-
5004
-
5005
- class InChIKeyRepresentationSchema56(BaseModel):
5006
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5007
- value: str
5008
-
5009
-
5010
- class DerivedPropertiesSchema56(
5011
- RootModel[
5012
- Union[
5013
- VolumeSchema56,
5014
- DensitySchema56,
5015
- SymmetrySchema56,
5016
- ElementalRatio56,
5017
- PNorm56,
5018
- InChIRepresentationSchema56,
5019
- InChIKeyRepresentationSchema56,
5020
- ]
5021
- ]
5022
- ):
5023
- root: Union[
5024
- VolumeSchema56,
5025
- DensitySchema56,
5026
- SymmetrySchema56,
5027
- ElementalRatio56,
5028
- PNorm56,
5029
- InChIRepresentationSchema56,
5030
- InChIKeyRepresentationSchema56,
5031
- ] = Field(..., discriminator="name")
5032
-
5033
-
5034
- class Name462(Enum):
5035
- default = "default"
5036
- atomsTooClose = "atomsTooClose"
5037
- atomsOverlap = "atomsOverlap"
5038
-
5039
-
5040
- class MaterialConsistencyCheckSchema56(BaseModel):
5041
- name: Name462
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 CrystalSchema56(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: BasisSchema57 = Field(..., title="basis schema")
5069
- lattice: LatticeSchema56 = Field(..., title="lattice schema")
5070
- derivedProperties: Optional[List[DerivedPropertiesSchema56]] = 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[MaterialConsistencyCheckSchema56]] = 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 AtomicLayersUniqueRepeatedSchema23(BaseModel):
5117
- termination_top: TerminationSchema25 = 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: CrystalSchema56 = 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 Value122(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 Value123(Enum):
5261
- X = "X"
5262
- Vac = "Vac"
5263
-
5264
-
5265
- class AtomicElementSchema60(BaseModel):
5266
- value: Union[Value122, Value123]
5267
- """
5268
- All elements, including extra elements
5269
- """
5270
- id: int
5271
- """
5272
- integer id of this entry
5273
- """
5274
-
5275
-
5276
- class BasisSchema58(BaseModel):
5277
- elements: List[AtomicElementSchema60] = 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 LatticeVectorsSchema57(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 LatticeUnitsSchema57(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 LatticeSchema57(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[LatticeVectorsSchema57] = Field(None, title="lattice vectors schema")
5334
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
5335
- units: Optional[LatticeUnitsSchema57] = Field(
5336
- default_factory=lambda: LatticeUnitsSchema57.model_validate({"length": "angstrom", "angle": "degree"}),
5337
- title="Lattice units schema",
5338
- )
5339
-
5340
-
5341
- class Name463(Enum):
5342
- volume = "volume"
5343
-
5344
-
5345
- class Units180(Enum):
5346
- angstrom_3 = "angstrom^3"
5347
-
5348
-
5349
- class VolumeSchema57(BaseModel):
5350
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
5351
- units: Optional[Units180] = None
5352
- value: float
5353
-
5354
-
5355
- class Name464(Enum):
5356
- density = "density"
5357
-
5358
-
5359
- class Units181(Enum):
5360
- g_cm_3 = "g/cm^3"
5361
-
5362
-
5363
- class DensitySchema57(BaseModel):
5364
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
5365
- units: Optional[Units181] = None
5366
- value: float
5367
-
5368
-
5369
- class Units182(Enum):
5370
- angstrom = "angstrom"
5371
-
5372
-
5373
- class ScalarSchema58(BaseModel):
5374
- units: Optional[Units182] = None
5375
- value: float
5376
-
5377
-
5378
- class Name465(Enum):
5379
- symmetry = "symmetry"
5380
-
5381
-
5382
- class SymmetrySchema57(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[ScalarSchema58] = 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 Name466(Enum):
5399
- elemental_ratio = "elemental_ratio"
5400
-
5401
-
5402
- class ElementalRatio57(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 Name467(Enum):
5412
- p_norm = "p-norm"
5413
-
5414
-
5415
- class PNorm57(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 Name468(Enum):
5425
- inchi = "inchi"
5426
-
5427
-
5428
- class InChIRepresentationSchema57(BaseModel):
5429
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
5430
- value: str
5431
-
5432
-
5433
- class Name469(Enum):
5434
- inchi_key = "inchi_key"
5435
-
5436
-
5437
- class InChIKeyRepresentationSchema57(BaseModel):
5438
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5439
- value: str
5440
-
5441
-
5442
- class DerivedPropertiesSchema57(
5443
- RootModel[
5444
- Union[
5445
- VolumeSchema57,
5446
- DensitySchema57,
5447
- SymmetrySchema57,
5448
- ElementalRatio57,
5449
- PNorm57,
5450
- InChIRepresentationSchema57,
5451
- InChIKeyRepresentationSchema57,
5452
- ]
5453
- ]
5454
- ):
5455
- root: Union[
5456
- VolumeSchema57,
5457
- DensitySchema57,
5458
- SymmetrySchema57,
5459
- ElementalRatio57,
5460
- PNorm57,
5461
- InChIRepresentationSchema57,
5462
- InChIKeyRepresentationSchema57,
5463
- ] = Field(..., discriminator="name")
5464
-
5465
-
5466
- class Name470(Enum):
5467
- default = "default"
5468
- atomsTooClose = "atomsTooClose"
5469
- atomsOverlap = "atomsOverlap"
5470
-
5471
-
5472
- class MaterialConsistencyCheckSchema57(BaseModel):
5473
- name: Name470
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 CrystalSchema57(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: BasisSchema58 = Field(..., title="basis schema")
5501
- lattice: LatticeSchema57 = Field(..., title="lattice schema")
5502
- derivedProperties: Optional[List[DerivedPropertiesSchema57]] = 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[MaterialConsistencyCheckSchema57]] = 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 VacuumConfigurationSchema27(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: CrystalSchema57 = Field(..., title="Crystal Schema")
5558
- """
5559
- A crystal structure, referencing the base material schema
5560
- """
5561
-
5562
-
5563
- class SlabStrainedSupercellWithGapConfigurationSchema5(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[AtomicLayersUniqueRepeatedSchema23, VacuumConfigurationSchema27]] = 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 Value124(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 Value125(Enum):
5711
- X = "X"
5712
- Vac = "Vac"
5713
-
5714
-
5715
- class AtomicElementSchema61(BaseModel):
5716
- value: Union[Value124, Value125]
5717
- """
5718
- All elements, including extra elements
5719
- """
5720
- id: int
5721
- """
5722
- integer id of this entry
5723
- """
5724
-
5725
-
5726
- class BasisSchema59(BaseModel):
5727
- elements: List[AtomicElementSchema61] = 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 LatticeVectorsSchema58(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 LatticeUnitsSchema58(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 LatticeSchema58(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[LatticeVectorsSchema58] = Field(None, title="lattice vectors schema")
5784
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
5785
- units: Optional[LatticeUnitsSchema58] = Field(
5786
- default_factory=lambda: LatticeUnitsSchema58.model_validate({"length": "angstrom", "angle": "degree"}),
5787
- title="Lattice units schema",
5788
- )
5789
-
5790
-
5791
- class Name471(Enum):
5792
- volume = "volume"
5793
-
5794
-
5795
- class Units183(Enum):
5796
- angstrom_3 = "angstrom^3"
5797
-
5798
-
5799
- class VolumeSchema58(BaseModel):
5800
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
5801
- units: Optional[Units183] = None
5802
- value: float
5803
-
5804
-
5805
- class Name472(Enum):
5806
- density = "density"
5807
-
5808
-
5809
- class Units184(Enum):
5810
- g_cm_3 = "g/cm^3"
5811
-
5812
-
5813
- class DensitySchema58(BaseModel):
5814
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
5815
- units: Optional[Units184] = None
5816
- value: float
5817
-
5818
-
5819
- class Units185(Enum):
5820
- angstrom = "angstrom"
5821
-
5822
-
5823
- class ScalarSchema59(BaseModel):
5824
- units: Optional[Units185] = None
5825
- value: float
5826
-
5827
-
5828
- class Name473(Enum):
5829
- symmetry = "symmetry"
5830
-
5831
-
5832
- class SymmetrySchema58(BaseModel):
5833
- pointGroupSymbol: Optional[str] = None
5834
- """
5835
- point group symbol in Schoenflies notation
5836
- """
5837
- spaceGroupSymbol: Optional[str] = None
5838
- """
5839
- space group symbol in Hermann–Mauguin notation
5840
- """
5841
- tolerance: Optional[ScalarSchema59] = Field(None, title="scalar schema")
5842
- """
5843
- tolerance used for symmetry calculation
5844
- """
5845
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
5846
-
5847
-
5848
- class Name474(Enum):
5849
- elemental_ratio = "elemental_ratio"
5850
-
5851
-
5852
- class ElementalRatio58(BaseModel):
5853
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
5854
- value: confloat(ge=0.0, le=1.0)
5855
- element: Optional[str] = None
5856
- """
5857
- the element this ratio is for
5858
- """
5859
-
5860
-
5861
- class Name475(Enum):
5862
- p_norm = "p-norm"
5863
-
5864
-
5865
- class PNorm58(BaseModel):
5866
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
5867
- degree: Optional[int] = None
5868
- """
5869
- degree of the dimensionality of the norm
5870
- """
5871
- value: float
5872
-
5873
-
5874
- class Name476(Enum):
5875
- inchi = "inchi"
5876
-
5877
-
5878
- class InChIRepresentationSchema58(BaseModel):
5879
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
5880
- value: str
5881
-
5882
-
5883
- class Name477(Enum):
5884
- inchi_key = "inchi_key"
5885
-
5886
-
5887
- class InChIKeyRepresentationSchema58(BaseModel):
5888
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5889
- value: str
5890
-
5891
-
5892
- class DerivedPropertiesSchema58(
5893
- RootModel[
5894
- Union[
5895
- VolumeSchema58,
5896
- DensitySchema58,
5897
- SymmetrySchema58,
5898
- ElementalRatio58,
5899
- PNorm58,
5900
- InChIRepresentationSchema58,
5901
- InChIKeyRepresentationSchema58,
5902
- ]
5903
- ]
5904
- ):
5905
- root: Union[
5906
- VolumeSchema58,
5907
- DensitySchema58,
5908
- SymmetrySchema58,
5909
- ElementalRatio58,
5910
- PNorm58,
5911
- InChIRepresentationSchema58,
5912
- InChIKeyRepresentationSchema58,
5913
- ] = Field(..., discriminator="name")
5914
-
5915
-
5916
- class Name478(Enum):
5917
- default = "default"
5918
- atomsTooClose = "atomsTooClose"
5919
- atomsOverlap = "atomsOverlap"
5920
-
5921
-
5922
- class MaterialConsistencyCheckSchema58(BaseModel):
5923
- name: Name478
5924
- """
5925
- Name of the consistency check that is performed, which is listed in an enum.
5926
- """
5927
- key: str
5928
- """
5929
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
5930
- """
5931
- severity: Severity
5932
- """
5933
- Severity level of the problem, which is used in UI to differentiate.
5934
- """
5935
- message: str
5936
- """
5937
- Message generated by the consistency check describing the problem.
5938
- """
5939
-
5940
-
5941
- class CrystalSchema58(BaseModel):
5942
- formula: Optional[str] = None
5943
- """
5944
- reduced chemical formula
5945
- """
5946
- unitCellFormula: Optional[str] = None
5947
- """
5948
- chemical formula based on the number of atoms of each element in the supercell
5949
- """
5950
- basis: BasisSchema59 = Field(..., title="basis schema")
5951
- lattice: LatticeSchema58 = Field(..., title="lattice schema")
5952
- derivedProperties: Optional[List[DerivedPropertiesSchema58]] = Field(None, title="derived properties schema")
5953
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
5954
- """
5955
- information about a database source
5956
- """
5957
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
5958
- """
5959
- file source with the information inside
5960
- """
5961
- scaledHash: Optional[str] = None
5962
- """
5963
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
5964
- """
5965
- icsdId: Optional[int] = None
5966
- """
5967
- Corresponding ICSD id of the material
5968
- """
5969
- isNonPeriodic: Optional[bool] = None
5970
- """
5971
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
5972
- """
5973
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema58]] = None
5974
- field_id: Optional[str] = Field(None, alias="_id")
5975
- """
5976
- entity identity
5977
- """
5978
- slug: Optional[str] = None
5979
- """
5980
- entity slug
5981
- """
5982
- systemName: Optional[str] = None
5983
- schemaVersion: Optional[str] = "2022.8.16"
5984
- """
5985
- entity's schema version. Used to distinct between different schemas.
5986
- """
5987
- name: Optional[str] = None
5988
- """
5989
- entity name
5990
- """
5991
- isDefault: Optional[bool] = False
5992
- """
5993
- Identifies that entity is defaultable
5994
- """
5995
- metadata: Optional[Dict[str, Any]] = None
5996
-
5997
-
5998
- class VacuumConfigurationSchema28(BaseModel):
5999
- direction: AxisEnum = Field(..., title="Axis Enum")
6000
- """
6001
- Enum for axis types
6002
- """
6003
- size: Optional[confloat(ge=0.0)] = 10
6004
- """
6005
- Size of the vacuum slab in angstroms
6006
- """
6007
- crystal: CrystalSchema58 = Field(..., title="Crystal Schema")
6008
- """
6009
- A crystal structure, referencing the base material schema
6010
- """
6011
-
6012
-
6013
- class InterfaceConfigurationSchema(BaseModel):
6014
- stack_components: List[
6015
- Union[
6016
- Union[
6017
- SlabConfigurationSchema,
6018
- SlabStrainedSupercellConfigurationSchema,
6019
- SlabStrainedSupercellWithGapConfigurationSchema,
6020
- ],
6021
- Union[
6022
- SlabConfigurationSchema10,
6023
- SlabStrainedSupercellConfigurationSchema5,
6024
- SlabStrainedSupercellWithGapConfigurationSchema5,
6025
- ],
6026
- VacuumConfigurationSchema28,
6027
- ]
6028
- ] = Field(..., max_length=3, min_length=2)
6029
- """
6030
- Components of the interface: slab, slab and vacuum
6031
- """
6032
- direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
6033
- """
6034
- Enum for axis types
6035
- """
6036
- xy_shift: Optional[List[float]] = Field([0, 0], max_length=2, min_length=2, title="vector 2d schema")
6037
- """
6038
- xy shift for the film as cartesian 2D vector on the xy plane.
4268
+ Gap distances between stack components as an array of objects with id and value
6039
4269
  """