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
@@ -1117,6 +1117,14 @@ class VacuumConfigurationSchema(BaseModel):
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]]):
@@ -2024,6 +2036,10 @@ class SlabStrainedSupercellConfigurationSchema(BaseModel):
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
2045
  class TerminationSchema5(BaseModel):
@@ -2895,23 +2911,7 @@ class VacuumConfigurationSchema2(BaseModel):
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
- )
2914
+ class SlabConfigurationSchema1(BaseModel):
2915
2915
  stack_components: List[Union[AtomicLayersUniqueRepeatedSchema3, VacuumConfigurationSchema2]] = Field(
2916
2916
  ..., max_length=2, min_length=2
2917
2917
  )
@@ -2919,6 +2919,10 @@ class SlabStrainedSupercellWithGapConfigurationSchema(BaseModel):
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
2928
  class TerminationSchema6(BaseModel):
@@ -3790,7 +3794,19 @@ class VacuumConfigurationSchema3(BaseModel):
3790
3794
  """
3791
3795
 
3792
3796
 
3793
- class SlabConfigurationSchema1(BaseModel):
3797
+ class SlabStrainedSupercellConfigurationSchema1(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",
3803
+ )
3804
+ """
3805
+ Supercell matrix for xy plane transformations
3806
+ """
3807
+ strain_matrix: List[ArrayOf3NumberElementsSchema] = Field(
3808
+ ..., max_length=3, min_length=3, title="matrix 3x3 schema"
3809
+ )
3794
3810
  stack_components: List[Union[AtomicLayersUniqueRepeatedSchema4, VacuumConfigurationSchema3]] = Field(
3795
3811
  ..., max_length=2, min_length=2
3796
3812
  )
@@ -3798,18 +3814,9 @@ class SlabConfigurationSchema1(BaseModel):
3798
3814
  """
3799
3815
  Enum for axis types
3800
3816
  """
3801
-
3802
-
3803
- class TerminationSchema7(BaseModel):
3804
- chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
3805
- ..., title="Chemical Elements"
3806
- )
3807
- """
3808
- Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
3809
- """
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
 
@@ -4222,1818 +4229,41 @@ class CrystalSchema12(BaseModel):
4222
4229
  metadata: Optional[Dict[str, Any]] = None
4223
4230
 
4224
4231
 
4225
- class AtomicLayersUniqueRepeatedSchema5(BaseModel):
4226
- termination_top: TerminationSchema7 = Field(..., title="Termination Schema")
4227
- """
4228
- Defines a specific termination of a slab
4229
- """
4230
- number_of_repetitions: conint(ge=1)
4232
+ class VacuumConfigurationSchema4(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
4241
  crystal: CrystalSchema12 = 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 Value34(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 Value35(Enum):
4370
- X = "X"
4371
- Vac = "Vac"
4372
-
4373
-
4374
- class AtomicElementSchema16(BaseModel):
4375
- value: Union[Value34, Value35]
4376
- """
4377
- All elements, including extra elements
4378
- """
4379
- id: int
4380
- """
4381
- integer id of this entry
4382
- """
4383
-
4384
-
4385
- class BasisSchema14(BaseModel):
4386
- elements: List[AtomicElementSchema16] = Field(..., title="atomic elements schema")
4387
- """
4388
- atomic elements schema
4389
- """
4390
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
4391
- """
4392
- atomic coordinates schema
4393
- """
4394
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
4395
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
4396
- """
4397
- atomic labels schema
4398
- """
4399
-
4400
-
4401
- class LatticeVectorsSchema13(BaseModel):
4402
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4403
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4404
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
4405
- alat: Optional[float] = 1
4406
- """
4407
- lattice parameter for fractional coordinates
4408
- """
4409
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
4410
4245
 
4411
4246
 
4412
- class LatticeUnitsSchema13(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 LatticeSchema13(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
4247
+ class GrainBoundaryPlanarConfigurationSchema(BaseModel):
4248
+ direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
4429
4249
  """
4430
- alpha: float
4250
+ Enum for axis types
4431
4251
  """
4432
- angle between first and second lattice vector
4252
+ stack_components: List[
4253
+ Union[
4254
+ Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema],
4255
+ Union[SlabConfigurationSchema1, SlabStrainedSupercellConfigurationSchema1],
4256
+ VacuumConfigurationSchema4,
4257
+ ]
4258
+ ] = Field(..., max_length=3, min_length=2)
4433
4259
  """
4434
- beta: float
4260
+ Components of the interface: slab, slab and vacuum
4435
4261
  """
4436
- angle between second and third lattice vector
4262
+ xy_shift: Optional[List[float]] = Field([0, 0], max_length=2, min_length=2, title="vector 2d schema")
4437
4263
  """
4438
- gamma: float
4264
+ xy shift for the film as cartesian 2D vector on the xy plane.
4439
4265
  """
4440
- angle between first and third lattice vector
4266
+ gaps: Optional[List[ObjectWithId]] = None
4441
4267
  """
4442
- vectors: Optional[LatticeVectorsSchema13] = Field(None, title="lattice vectors schema")
4443
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
4444
- units: Optional[LatticeUnitsSchema13] = Field(
4445
- default_factory=lambda: LatticeUnitsSchema13.model_validate({"length": "angstrom", "angle": "degree"}),
4446
- title="Lattice units schema",
4447
- )
4448
-
4449
-
4450
- class Name111(Enum):
4451
- volume = "volume"
4452
-
4453
-
4454
- class Units48(Enum):
4455
- angstrom_3 = "angstrom^3"
4456
-
4457
-
4458
- class VolumeSchema13(BaseModel):
4459
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
4460
- units: Optional[Units48] = None
4461
- value: float
4462
-
4463
-
4464
- class Name112(Enum):
4465
- density = "density"
4466
-
4467
-
4468
- class Units49(Enum):
4469
- g_cm_3 = "g/cm^3"
4470
-
4471
-
4472
- class DensitySchema13(BaseModel):
4473
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
4474
- units: Optional[Units49] = None
4475
- value: float
4476
-
4477
-
4478
- class Units50(Enum):
4479
- angstrom = "angstrom"
4480
-
4481
-
4482
- class ScalarSchema14(BaseModel):
4483
- units: Optional[Units50] = None
4484
- value: float
4485
-
4486
-
4487
- class Name113(Enum):
4488
- symmetry = "symmetry"
4489
-
4490
-
4491
- class SymmetrySchema13(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[ScalarSchema14] = 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 Name114(Enum):
4508
- elemental_ratio = "elemental_ratio"
4509
-
4510
-
4511
- class ElementalRatio13(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 Name115(Enum):
4521
- p_norm = "p-norm"
4522
-
4523
-
4524
- class PNorm13(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 Name116(Enum):
4534
- inchi = "inchi"
4535
-
4536
-
4537
- class InChIRepresentationSchema13(BaseModel):
4538
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
4539
- value: str
4540
-
4541
-
4542
- class Name117(Enum):
4543
- inchi_key = "inchi_key"
4544
-
4545
-
4546
- class InChIKeyRepresentationSchema13(BaseModel):
4547
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
4548
- value: str
4549
-
4550
-
4551
- class DerivedPropertiesSchema13(
4552
- RootModel[
4553
- Union[
4554
- VolumeSchema13,
4555
- DensitySchema13,
4556
- SymmetrySchema13,
4557
- ElementalRatio13,
4558
- PNorm13,
4559
- InChIRepresentationSchema13,
4560
- InChIKeyRepresentationSchema13,
4561
- ]
4562
- ]
4563
- ):
4564
- root: Union[
4565
- VolumeSchema13,
4566
- DensitySchema13,
4567
- SymmetrySchema13,
4568
- ElementalRatio13,
4569
- PNorm13,
4570
- InChIRepresentationSchema13,
4571
- InChIKeyRepresentationSchema13,
4572
- ] = Field(..., discriminator="name")
4573
-
4574
-
4575
- class Name118(Enum):
4576
- default = "default"
4577
- atomsTooClose = "atomsTooClose"
4578
- atomsOverlap = "atomsOverlap"
4579
-
4580
-
4581
- class MaterialConsistencyCheckSchema13(BaseModel):
4582
- name: Name118
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 CrystalSchema13(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: BasisSchema14 = Field(..., title="basis schema")
4610
- lattice: LatticeSchema13 = Field(..., title="lattice schema")
4611
- derivedProperties: Optional[List[DerivedPropertiesSchema13]] = 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[MaterialConsistencyCheckSchema13]] = 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 VacuumConfigurationSchema4(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: CrystalSchema13 = Field(..., title="Crystal Schema")
4667
- """
4668
- A crystal structure, referencing the base material schema
4669
- """
4670
-
4671
-
4672
- class SlabStrainedSupercellConfigurationSchema1(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[AtomicLayersUniqueRepeatedSchema5, VacuumConfigurationSchema4]] = 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 TerminationSchema8(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 Value36(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 Value37(Enum):
4829
- X = "X"
4830
- Vac = "Vac"
4831
-
4832
-
4833
- class AtomicElementSchema17(BaseModel):
4834
- value: Union[Value36, Value37]
4835
- """
4836
- All elements, including extra elements
4837
- """
4838
- id: int
4839
- """
4840
- integer id of this entry
4841
- """
4842
-
4843
-
4844
- class BasisSchema15(BaseModel):
4845
- elements: List[AtomicElementSchema17] = 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 LatticeVectorsSchema14(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 LatticeUnitsSchema14(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 LatticeSchema14(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[LatticeVectorsSchema14] = Field(None, title="lattice vectors schema")
4902
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
4903
- units: Optional[LatticeUnitsSchema14] = Field(
4904
- default_factory=lambda: LatticeUnitsSchema14.model_validate({"length": "angstrom", "angle": "degree"}),
4905
- title="Lattice units schema",
4906
- )
4907
-
4908
-
4909
- class Name119(Enum):
4910
- volume = "volume"
4911
-
4912
-
4913
- class Units51(Enum):
4914
- angstrom_3 = "angstrom^3"
4915
-
4916
-
4917
- class VolumeSchema14(BaseModel):
4918
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
4919
- units: Optional[Units51] = None
4920
- value: float
4921
-
4922
-
4923
- class Name120(Enum):
4924
- density = "density"
4925
-
4926
-
4927
- class Units52(Enum):
4928
- g_cm_3 = "g/cm^3"
4929
-
4930
-
4931
- class DensitySchema14(BaseModel):
4932
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
4933
- units: Optional[Units52] = None
4934
- value: float
4935
-
4936
-
4937
- class Units53(Enum):
4938
- angstrom = "angstrom"
4939
-
4940
-
4941
- class ScalarSchema15(BaseModel):
4942
- units: Optional[Units53] = None
4943
- value: float
4944
-
4945
-
4946
- class Name121(Enum):
4947
- symmetry = "symmetry"
4948
-
4949
-
4950
- class SymmetrySchema14(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[ScalarSchema15] = 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 Name122(Enum):
4967
- elemental_ratio = "elemental_ratio"
4968
-
4969
-
4970
- class ElementalRatio14(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 Name123(Enum):
4980
- p_norm = "p-norm"
4981
-
4982
-
4983
- class PNorm14(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 Name124(Enum):
4993
- inchi = "inchi"
4994
-
4995
-
4996
- class InChIRepresentationSchema14(BaseModel):
4997
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
4998
- value: str
4999
-
5000
-
5001
- class Name125(Enum):
5002
- inchi_key = "inchi_key"
5003
-
5004
-
5005
- class InChIKeyRepresentationSchema14(BaseModel):
5006
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5007
- value: str
5008
-
5009
-
5010
- class DerivedPropertiesSchema14(
5011
- RootModel[
5012
- Union[
5013
- VolumeSchema14,
5014
- DensitySchema14,
5015
- SymmetrySchema14,
5016
- ElementalRatio14,
5017
- PNorm14,
5018
- InChIRepresentationSchema14,
5019
- InChIKeyRepresentationSchema14,
5020
- ]
5021
- ]
5022
- ):
5023
- root: Union[
5024
- VolumeSchema14,
5025
- DensitySchema14,
5026
- SymmetrySchema14,
5027
- ElementalRatio14,
5028
- PNorm14,
5029
- InChIRepresentationSchema14,
5030
- InChIKeyRepresentationSchema14,
5031
- ] = Field(..., discriminator="name")
5032
-
5033
-
5034
- class Name126(Enum):
5035
- default = "default"
5036
- atomsTooClose = "atomsTooClose"
5037
- atomsOverlap = "atomsOverlap"
5038
-
5039
-
5040
- class MaterialConsistencyCheckSchema14(BaseModel):
5041
- name: Name126
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 CrystalSchema14(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: BasisSchema15 = Field(..., title="basis schema")
5069
- lattice: LatticeSchema14 = Field(..., title="lattice schema")
5070
- derivedProperties: Optional[List[DerivedPropertiesSchema14]] = 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[MaterialConsistencyCheckSchema14]] = 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 AtomicLayersUniqueRepeatedSchema6(BaseModel):
5117
- termination_top: TerminationSchema8 = 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: CrystalSchema14 = 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 Value38(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 Value39(Enum):
5261
- X = "X"
5262
- Vac = "Vac"
5263
-
5264
-
5265
- class AtomicElementSchema18(BaseModel):
5266
- value: Union[Value38, Value39]
5267
- """
5268
- All elements, including extra elements
5269
- """
5270
- id: int
5271
- """
5272
- integer id of this entry
5273
- """
5274
-
5275
-
5276
- class BasisSchema16(BaseModel):
5277
- elements: List[AtomicElementSchema18] = 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 LatticeVectorsSchema15(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 LatticeUnitsSchema15(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 LatticeSchema15(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[LatticeVectorsSchema15] = Field(None, title="lattice vectors schema")
5334
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
5335
- units: Optional[LatticeUnitsSchema15] = Field(
5336
- default_factory=lambda: LatticeUnitsSchema15.model_validate({"length": "angstrom", "angle": "degree"}),
5337
- title="Lattice units schema",
5338
- )
5339
-
5340
-
5341
- class Name127(Enum):
5342
- volume = "volume"
5343
-
5344
-
5345
- class Units54(Enum):
5346
- angstrom_3 = "angstrom^3"
5347
-
5348
-
5349
- class VolumeSchema15(BaseModel):
5350
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
5351
- units: Optional[Units54] = None
5352
- value: float
5353
-
5354
-
5355
- class Name128(Enum):
5356
- density = "density"
5357
-
5358
-
5359
- class Units55(Enum):
5360
- g_cm_3 = "g/cm^3"
5361
-
5362
-
5363
- class DensitySchema15(BaseModel):
5364
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
5365
- units: Optional[Units55] = None
5366
- value: float
5367
-
5368
-
5369
- class Units56(Enum):
5370
- angstrom = "angstrom"
5371
-
5372
-
5373
- class ScalarSchema16(BaseModel):
5374
- units: Optional[Units56] = None
5375
- value: float
5376
-
5377
-
5378
- class Name129(Enum):
5379
- symmetry = "symmetry"
5380
-
5381
-
5382
- class SymmetrySchema15(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[ScalarSchema16] = 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 Name130(Enum):
5399
- elemental_ratio = "elemental_ratio"
5400
-
5401
-
5402
- class ElementalRatio15(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 Name131(Enum):
5412
- p_norm = "p-norm"
5413
-
5414
-
5415
- class PNorm15(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 Name132(Enum):
5425
- inchi = "inchi"
5426
-
5427
-
5428
- class InChIRepresentationSchema15(BaseModel):
5429
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
5430
- value: str
5431
-
5432
-
5433
- class Name133(Enum):
5434
- inchi_key = "inchi_key"
5435
-
5436
-
5437
- class InChIKeyRepresentationSchema15(BaseModel):
5438
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5439
- value: str
5440
-
5441
-
5442
- class DerivedPropertiesSchema15(
5443
- RootModel[
5444
- Union[
5445
- VolumeSchema15,
5446
- DensitySchema15,
5447
- SymmetrySchema15,
5448
- ElementalRatio15,
5449
- PNorm15,
5450
- InChIRepresentationSchema15,
5451
- InChIKeyRepresentationSchema15,
5452
- ]
5453
- ]
5454
- ):
5455
- root: Union[
5456
- VolumeSchema15,
5457
- DensitySchema15,
5458
- SymmetrySchema15,
5459
- ElementalRatio15,
5460
- PNorm15,
5461
- InChIRepresentationSchema15,
5462
- InChIKeyRepresentationSchema15,
5463
- ] = Field(..., discriminator="name")
5464
-
5465
-
5466
- class Name134(Enum):
5467
- default = "default"
5468
- atomsTooClose = "atomsTooClose"
5469
- atomsOverlap = "atomsOverlap"
5470
-
5471
-
5472
- class MaterialConsistencyCheckSchema15(BaseModel):
5473
- name: Name134
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 CrystalSchema15(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: BasisSchema16 = Field(..., title="basis schema")
5501
- lattice: LatticeSchema15 = Field(..., title="lattice schema")
5502
- derivedProperties: Optional[List[DerivedPropertiesSchema15]] = 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[MaterialConsistencyCheckSchema15]] = 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 VacuumConfigurationSchema5(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: CrystalSchema15 = Field(..., title="Crystal Schema")
5558
- """
5559
- A crystal structure, referencing the base material schema
5560
- """
5561
-
5562
-
5563
- class SlabStrainedSupercellWithGapConfigurationSchema1(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[AtomicLayersUniqueRepeatedSchema6, VacuumConfigurationSchema5]] = 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 Value40(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 Value41(Enum):
5711
- X = "X"
5712
- Vac = "Vac"
5713
-
5714
-
5715
- class AtomicElementSchema19(BaseModel):
5716
- value: Union[Value40, Value41]
5717
- """
5718
- All elements, including extra elements
5719
- """
5720
- id: int
5721
- """
5722
- integer id of this entry
5723
- """
5724
-
5725
-
5726
- class BasisSchema17(BaseModel):
5727
- elements: List[AtomicElementSchema19] = 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 LatticeVectorsSchema16(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 LatticeUnitsSchema16(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 LatticeSchema16(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[LatticeVectorsSchema16] = Field(None, title="lattice vectors schema")
5784
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
5785
- units: Optional[LatticeUnitsSchema16] = Field(
5786
- default_factory=lambda: LatticeUnitsSchema16.model_validate({"length": "angstrom", "angle": "degree"}),
5787
- title="Lattice units schema",
5788
- )
5789
-
5790
-
5791
- class Name135(Enum):
5792
- volume = "volume"
5793
-
5794
-
5795
- class Units57(Enum):
5796
- angstrom_3 = "angstrom^3"
5797
-
5798
-
5799
- class VolumeSchema16(BaseModel):
5800
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
5801
- units: Optional[Units57] = None
5802
- value: float
5803
-
5804
-
5805
- class Name136(Enum):
5806
- density = "density"
5807
-
5808
-
5809
- class Units58(Enum):
5810
- g_cm_3 = "g/cm^3"
5811
-
5812
-
5813
- class DensitySchema16(BaseModel):
5814
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
5815
- units: Optional[Units58] = None
5816
- value: float
5817
-
5818
-
5819
- class Units59(Enum):
5820
- angstrom = "angstrom"
5821
-
5822
-
5823
- class ScalarSchema17(BaseModel):
5824
- units: Optional[Units59] = None
5825
- value: float
5826
-
5827
-
5828
- class Name137(Enum):
5829
- symmetry = "symmetry"
5830
-
5831
-
5832
- class SymmetrySchema16(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[ScalarSchema17] = 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 Name138(Enum):
5849
- elemental_ratio = "elemental_ratio"
5850
-
5851
-
5852
- class ElementalRatio16(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 Name139(Enum):
5862
- p_norm = "p-norm"
5863
-
5864
-
5865
- class PNorm16(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 Name140(Enum):
5875
- inchi = "inchi"
5876
-
5877
-
5878
- class InChIRepresentationSchema16(BaseModel):
5879
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
5880
- value: str
5881
-
5882
-
5883
- class Name141(Enum):
5884
- inchi_key = "inchi_key"
5885
-
5886
-
5887
- class InChIKeyRepresentationSchema16(BaseModel):
5888
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
5889
- value: str
5890
-
5891
-
5892
- class DerivedPropertiesSchema16(
5893
- RootModel[
5894
- Union[
5895
- VolumeSchema16,
5896
- DensitySchema16,
5897
- SymmetrySchema16,
5898
- ElementalRatio16,
5899
- PNorm16,
5900
- InChIRepresentationSchema16,
5901
- InChIKeyRepresentationSchema16,
5902
- ]
5903
- ]
5904
- ):
5905
- root: Union[
5906
- VolumeSchema16,
5907
- DensitySchema16,
5908
- SymmetrySchema16,
5909
- ElementalRatio16,
5910
- PNorm16,
5911
- InChIRepresentationSchema16,
5912
- InChIKeyRepresentationSchema16,
5913
- ] = Field(..., discriminator="name")
5914
-
5915
-
5916
- class Name142(Enum):
5917
- default = "default"
5918
- atomsTooClose = "atomsTooClose"
5919
- atomsOverlap = "atomsOverlap"
5920
-
5921
-
5922
- class MaterialConsistencyCheckSchema16(BaseModel):
5923
- name: Name142
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 CrystalSchema16(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: BasisSchema17 = Field(..., title="basis schema")
5951
- lattice: LatticeSchema16 = Field(..., title="lattice schema")
5952
- derivedProperties: Optional[List[DerivedPropertiesSchema16]] = 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[MaterialConsistencyCheckSchema16]] = 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 VacuumConfigurationSchema6(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: CrystalSchema16 = Field(..., title="Crystal Schema")
6008
- """
6009
- A crystal structure, referencing the base material schema
6010
- """
6011
-
6012
-
6013
- class GrainBoundaryPlanarConfigurationSchema(BaseModel):
6014
- direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
6015
- """
6016
- Enum for axis types
6017
- """
6018
- stack_components: List[
6019
- Union[
6020
- Union[
6021
- SlabConfigurationSchema,
6022
- SlabStrainedSupercellConfigurationSchema,
6023
- SlabStrainedSupercellWithGapConfigurationSchema,
6024
- ],
6025
- Union[
6026
- SlabConfigurationSchema1,
6027
- SlabStrainedSupercellConfigurationSchema1,
6028
- SlabStrainedSupercellWithGapConfigurationSchema1,
6029
- ],
6030
- VacuumConfigurationSchema6,
6031
- ]
6032
- ] = Field(..., max_length=3, min_length=2)
6033
- """
6034
- Components of the interface: slab, slab and vacuum
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
  """