mat3ra-esse 2025.5.17.post1__py3-none-any.whl → 2025.6.5.post0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (125) 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/apse/materials/builders/slab/pymatgen/parameters.py +3 -3
  5. mat3ra/esse/models/coordinates_shape_enum.py +15 -0
  6. mat3ra/esse/models/core/primitive/array_of_3_integers.py +13 -0
  7. mat3ra/esse/models/core/reusable/axis_enum.py +13 -0
  8. mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +31 -0
  9. mat3ra/esse/models/core/reusable/coordinate_conditions/base.py +21 -0
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/box.py +24 -0
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/cylinder.py +26 -0
  12. mat3ra/esse/models/core/reusable/coordinate_conditions/enum.py +15 -0
  13. mat3ra/esse/models/core/reusable/coordinate_conditions/plane.py +24 -0
  14. mat3ra/esse/models/core/reusable/coordinate_conditions/sphere.py +24 -0
  15. mat3ra/esse/models/core/reusable/coordinate_conditions/triangular_prism.py +27 -0
  16. mat3ra/esse/models/core/reusable/energy.py +2 -2
  17. mat3ra/esse/models/element.py +6 -6
  18. mat3ra/esse/models/material/__init__.py +14 -14
  19. mat3ra/esse/models/material/reusable/coordinate_conditions/base.py +21 -0
  20. mat3ra/esse/models/material/reusable/coordinate_conditions/box.py +24 -0
  21. mat3ra/esse/models/material/reusable/coordinate_conditions/cylinder.py +26 -0
  22. mat3ra/esse/models/material/reusable/coordinate_conditions/plane.py +24 -0
  23. mat3ra/esse/models/material/reusable/coordinate_conditions/sphere.py +24 -0
  24. mat3ra/esse/models/material/reusable/coordinate_conditions/triangular_prism.py +27 -0
  25. mat3ra/esse/models/material/reusable/slab/slab_configuration_with_termination.py +589 -0
  26. mat3ra/esse/models/material/reusable/slab/slab_with_termination.py +593 -0
  27. mat3ra/esse/models/material/reusable/slab/two_slabs_stack.py +618 -0
  28. mat3ra/esse/models/material/reusable/slab_configuration_with_termination.py +712 -0
  29. mat3ra/esse/models/material/reusable/stack/slab_configuration_with_termination.py +593 -0
  30. mat3ra/esse/models/material/reusable/stack/slab_in_stack.py +720 -0
  31. mat3ra/esse/models/material/reusable/stack/stack_of_slabs.py +737 -0
  32. mat3ra/esse/models/material/reusable/stack/stack_of_two_slabs.py +737 -0
  33. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_2d.py +25 -0
  34. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_3d.py +27 -0
  35. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +14 -14
  36. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/configuration.py +14 -14
  37. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/configuration.py +14 -14
  38. mat3ra/esse/models/materials_category/defects/configuration.py +14 -14
  39. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +14 -14
  40. mat3ra/esse/models/materials_category/defects/{zero_dimensional/complex/pair.py → two_dimensional/grain_boundary_plane/configuration.py} +163 -497
  41. mat3ra/esse/models/materials_category/defects/two_dimensional/island/condition_json.py +28 -0
  42. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +163 -48
  43. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/configuration.py +130 -130
  44. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +14 -14
  45. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +14 -14
  46. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +14 -14
  47. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +14 -14
  48. mat3ra/esse/models/materials_category/multi_material/interfaces/configuration.py +737 -0
  49. mat3ra/esse/models/materials_category/{defects/slab/configuration.py → pristine_structures/three_dimensional/ideal_crystal.py} +142 -24
  50. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +730 -0
  51. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +17 -21
  52. mat3ra/esse/models/materials_category_components/entities/auxiliary/three_dimensional/__init__.py +3 -0
  53. mat3ra/esse/models/materials_category_components/entities/auxiliary/three_dimensional/supercell_matrix_3d.py +27 -0
  54. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/__init__.py +3 -0
  55. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/miller_indices.py +16 -0
  56. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/supercell_matrix_2d.py +25 -0
  57. mat3ra/esse/models/materials_category_components/entities/auxiliary/two_dimensional/termination.py +144 -0
  58. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/__init__.py +3 -0
  59. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +13 -0
  60. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/__init__.py +3 -0
  61. mat3ra/esse/models/{materials_category/defects/zero_dimensional/slab/configuration.py → materials_category_components/entities/core/three_dimensional/crystal.py} +142 -46
  62. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/void.py +32 -0
  63. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/__init__.py +3 -0
  64. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +27 -0
  65. mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/__init__.py +3 -0
  66. mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/atom.py +134 -0
  67. mat3ra/esse/models/materials_category_components/entities/reusable/__init__.py +3 -0
  68. mat3ra/esse/models/materials_category_components/entities/reusable/repetitions.py +25 -0
  69. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/__init__.py +3 -0
  70. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +544 -0
  71. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/base_configuration.py → materials_category_components/entities/reusable/three_dimensional/strained_uniform.py} +147 -24
  72. mat3ra/esse/models/{materials_category/defects/zero_dimensional/adatom/configuration.py → materials_category_components/entities/reusable/three_dimensional/supercell.py} +150 -26
  73. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/__init__.py +3 -0
  74. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py +683 -0
  75. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py +683 -0
  76. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py +687 -0
  77. mat3ra/esse/models/{materials_category/defects/by_host/two_dimensional/configuration.py → materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py} +23 -28
  78. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.py +717 -0
  79. mat3ra/esse/models/materials_category_components/operations/core/combinations/__init__.py +3 -0
  80. mat3ra/esse/models/materials_category_components/operations/core/combinations/merge.py +583 -0
  81. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack.py +555 -0
  82. mat3ra/esse/models/materials_category_components/operations/core/combinations/stack_component.py +554 -0
  83. mat3ra/esse/models/materials_category_components/operations/core/modifications/__init__.py +3 -0
  84. mat3ra/esse/models/materials_category_components/operations/core/modifications/repeat.py +27 -0
  85. mat3ra/esse/models/materials_category_components/operations/core/modifications/strain.py +19 -0
  86. mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
  87. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +2 -2
  88. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +2 -2
  89. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  90. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  91. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  92. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  93. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  94. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  95. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  96. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  97. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  98. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  99. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  100. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  101. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  102. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  103. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +2 -2
  104. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
  105. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  106. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/METADATA +1 -1
  107. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/RECORD +117 -65
  108. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/WHEEL +1 -1
  109. mat3ra/esse/models/materials_category/defects/enums/atom_placement_method.py +0 -22
  110. mat3ra/esse/models/materials_category/defects/enums/complex_defect_type.py +0 -18
  111. mat3ra/esse/models/materials_category/defects/enums/coordinates_shape.py +0 -21
  112. mat3ra/esse/models/materials_category/defects/enums/slab_defect_type.py +0 -19
  113. mat3ra/esse/models/materials_category/defects/enums.py +0 -13
  114. mat3ra/esse/models/materials_category/defects/two_dimensional/slab_grain_boundary/configuration.py +0 -1105
  115. mat3ra/esse/models/materials_category/defects/zero_dimensional/defect_pair/configuration.py +0 -1026
  116. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/base_configuration.py +0 -30
  117. /mat3ra/esse/models/{materials_category/defects/by_host/two_dimensional → material/reusable/coordinate_conditions}/__init__.py +0 -0
  118. /mat3ra/esse/models/{materials_category/defects/slab → material/reusable/stack}/__init__.py +0 -0
  119. /mat3ra/esse/models/{materials_category/defects/two_dimensional/slab_grain_boundary → material/reusable/supercell}/__init__.py +0 -0
  120. /mat3ra/esse/models/materials_category/defects/{zero_dimensional/adatom → two_dimensional/grain_boundary_plane}/__init__.py +0 -0
  121. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/complex → multi_material/interfaces}/__init__.py +0 -0
  122. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/defect_pair → pristine_structures/three_dimensional}/__init__.py +0 -0
  123. /mat3ra/esse/models/materials_category/{defects/zero_dimensional/slab → pristine_structures/two_dimensional}/__init__.py +0 -0
  124. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/licenses/LICENSE.md +0 -0
  125. {mat3ra_esse-2025.5.17.post1.dist-info → mat3ra_esse-2025.6.5.post0.dist-info}/top_level.txt +0 -0
@@ -1,1105 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: materials_category/defects/two_dimensional/slab_grain_boundary/configuration.json
3
- # version: 0.28.5
4
-
5
- from __future__ import annotations
6
-
7
- from enum import Enum
8
- from typing import Any, Dict, List, Literal, Optional, Union
9
-
10
- from pydantic import BaseModel, Field, RootModel, confloat, conint
11
-
12
-
13
- class AtomicElementSchema(BaseModel):
14
- value: str
15
- """
16
- value of this entry
17
- """
18
- id: int
19
- """
20
- integer id of this entry
21
- """
22
-
23
-
24
- class AtomicCoordinateSchema(BaseModel):
25
- value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
26
- """
27
- value of this entry
28
- """
29
- id: int
30
- """
31
- integer id of this entry
32
- """
33
-
34
-
35
- class BasisUnitsEnum(Enum):
36
- crystal = "crystal"
37
- cartesian = "cartesian"
38
-
39
-
40
- class AtomicLabelSchema(BaseModel):
41
- value: Union[Union[int, str, float], conint(ge=1, le=9)]
42
- """
43
- value of this entry
44
- """
45
- id: int
46
- """
47
- integer id of this entry
48
- """
49
-
50
-
51
- class BasisSchema(BaseModel):
52
- elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
53
- """
54
- atomic elements schema
55
- """
56
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
57
- """
58
- atomic coordinates schema
59
- """
60
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
61
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
62
- """
63
- atomic labels schema
64
- """
65
-
66
-
67
- class LatticeVectorsUnitsEnum(Enum):
68
- angstrom = "angstrom"
69
- bohr = "bohr"
70
-
71
-
72
- class LatticeVectorsSchema(BaseModel):
73
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
74
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
75
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
76
- alat: Optional[float] = 1
77
- """
78
- lattice parameter for fractional coordinates
79
- """
80
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
81
-
82
-
83
- class LatticeTypeEnum(Enum):
84
- CUB = "CUB"
85
- BCC = "BCC"
86
- FCC = "FCC"
87
- TET = "TET"
88
- MCL = "MCL"
89
- ORC = "ORC"
90
- ORCC = "ORCC"
91
- ORCF = "ORCF"
92
- ORCI = "ORCI"
93
- HEX = "HEX"
94
- BCT = "BCT"
95
- TRI = "TRI"
96
- MCLC = "MCLC"
97
- RHL = "RHL"
98
-
99
-
100
- class LatticeUnitsLengthEnum(Enum):
101
- angstrom = "angstrom"
102
- bohr = "bohr"
103
-
104
-
105
- class LatticeUnitsAngleEnum(Enum):
106
- degree = "degree"
107
- radian = "radian"
108
-
109
-
110
- class LatticeUnitsSchema(BaseModel):
111
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
112
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
113
-
114
-
115
- class LatticeSchema(BaseModel):
116
- a: float
117
- """
118
- length of the first lattice vector
119
- """
120
- b: float
121
- """
122
- length of the second lattice vector
123
- """
124
- c: float
125
- """
126
- length of the third lattice vector
127
- """
128
- alpha: float
129
- """
130
- angle between first and second lattice vector
131
- """
132
- beta: float
133
- """
134
- angle between second and third lattice vector
135
- """
136
- gamma: float
137
- """
138
- angle between first and third lattice vector
139
- """
140
- vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
141
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
142
- units: Optional[LatticeUnitsSchema] = Field(
143
- default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
144
- title="Lattice units schema",
145
- )
146
-
147
-
148
- class Name(Enum):
149
- volume = "volume"
150
-
151
-
152
- class Units(Enum):
153
- angstrom_3 = "angstrom^3"
154
-
155
-
156
- class VolumeSchema(BaseModel):
157
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
158
- units: Optional[Units] = None
159
- value: float
160
-
161
-
162
- class Name80(Enum):
163
- density = "density"
164
-
165
-
166
- class Units37(Enum):
167
- g_cm_3 = "g/cm^3"
168
-
169
-
170
- class DensitySchema(BaseModel):
171
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
172
- units: Optional[Units37] = None
173
- value: float
174
-
175
-
176
- class Units38(Enum):
177
- angstrom = "angstrom"
178
-
179
-
180
- class ScalarSchema(BaseModel):
181
- units: Optional[Units38] = None
182
- value: float
183
-
184
-
185
- class Name81(Enum):
186
- symmetry = "symmetry"
187
-
188
-
189
- class SymmetrySchema(BaseModel):
190
- pointGroupSymbol: Optional[str] = None
191
- """
192
- point group symbol in Schoenflies notation
193
- """
194
- spaceGroupSymbol: Optional[str] = None
195
- """
196
- space group symbol in Hermann–Mauguin notation
197
- """
198
- tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
199
- """
200
- tolerance used for symmetry calculation
201
- """
202
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
203
-
204
-
205
- class Name82(Enum):
206
- elemental_ratio = "elemental_ratio"
207
-
208
-
209
- class ElementalRatio(BaseModel):
210
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
211
- value: confloat(ge=0.0, le=1.0)
212
- element: Optional[str] = None
213
- """
214
- the element this ratio is for
215
- """
216
-
217
-
218
- class Name83(Enum):
219
- p_norm = "p-norm"
220
-
221
-
222
- class PNorm(BaseModel):
223
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
224
- degree: Optional[int] = None
225
- """
226
- degree of the dimensionality of the norm
227
- """
228
- value: float
229
-
230
-
231
- class Name84(Enum):
232
- inchi = "inchi"
233
-
234
-
235
- class InChIRepresentationSchema(BaseModel):
236
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
237
- value: str
238
-
239
-
240
- class Name85(Enum):
241
- inchi_key = "inchi_key"
242
-
243
-
244
- class InChIKeyRepresentationSchema(BaseModel):
245
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
246
- value: str
247
-
248
-
249
- class DerivedPropertiesSchema(
250
- RootModel[
251
- Union[
252
- VolumeSchema,
253
- DensitySchema,
254
- SymmetrySchema,
255
- ElementalRatio,
256
- PNorm,
257
- InChIRepresentationSchema,
258
- InChIKeyRepresentationSchema,
259
- ]
260
- ]
261
- ):
262
- root: Union[
263
- VolumeSchema,
264
- DensitySchema,
265
- SymmetrySchema,
266
- ElementalRatio,
267
- PNorm,
268
- InChIRepresentationSchema,
269
- InChIKeyRepresentationSchema,
270
- ] = Field(..., discriminator="name")
271
-
272
-
273
- class DatabaseSourceSchema(BaseModel):
274
- id: Union[str, float]
275
- """
276
- ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32
277
- """
278
- source: str
279
- """
280
- Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
281
- """
282
- origin: bool
283
- """
284
- Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).
285
- """
286
- data: Optional[Dict[str, Any]] = None
287
- """
288
- Original response from external source.
289
- """
290
- doi: Optional[str] = None
291
- """
292
- Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
293
- """
294
- url: Optional[str] = None
295
- """
296
- The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers
297
- """
298
-
299
-
300
- class FileSourceSchema(BaseModel):
301
- extension: Optional[str] = None
302
- """
303
- file extension
304
- """
305
- filename: str
306
- """
307
- file name without extension
308
- """
309
- text: str
310
- """
311
- file content as raw text
312
- """
313
- hash: str
314
- """
315
- MD5 hash based on file content
316
- """
317
-
318
-
319
- class Name86(Enum):
320
- default = "default"
321
- atomsTooClose = "atomsTooClose"
322
- atomsOverlap = "atomsOverlap"
323
-
324
-
325
- class Severity(Enum):
326
- info = "info"
327
- warning = "warning"
328
- error = "error"
329
-
330
-
331
- class MaterialConsistencyCheckSchema(BaseModel):
332
- name: Name86
333
- """
334
- Name of the consistency check that is performed, which is listed in an enum.
335
- """
336
- key: str
337
- """
338
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
339
- """
340
- severity: Severity
341
- """
342
- Severity level of the problem, which is used in UI to differentiate.
343
- """
344
- message: str
345
- """
346
- Message generated by the consistency check describing the problem.
347
- """
348
-
349
-
350
- class MaterialSchema(BaseModel):
351
- formula: Optional[str] = None
352
- """
353
- reduced chemical formula
354
- """
355
- unitCellFormula: Optional[str] = None
356
- """
357
- chemical formula based on the number of atoms of each element in the supercell
358
- """
359
- basis: BasisSchema = Field(..., title="basis schema")
360
- lattice: LatticeSchema = Field(..., title="lattice schema")
361
- derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
362
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
363
- """
364
- information about a database source
365
- """
366
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
367
- """
368
- file source with the information inside
369
- """
370
- scaledHash: Optional[str] = None
371
- """
372
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
373
- """
374
- icsdId: Optional[int] = None
375
- """
376
- Corresponding ICSD id of the material
377
- """
378
- isNonPeriodic: Optional[bool] = None
379
- """
380
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
381
- """
382
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
383
- field_id: Optional[str] = Field(None, alias="_id")
384
- """
385
- entity identity
386
- """
387
- slug: Optional[str] = None
388
- """
389
- entity slug
390
- """
391
- systemName: Optional[str] = None
392
- schemaVersion: Optional[str] = "2022.8.16"
393
- """
394
- entity's schema version. Used to distinct between different schemas.
395
- """
396
- name: Optional[str] = None
397
- """
398
- entity name
399
- """
400
- isDefault: Optional[bool] = False
401
- """
402
- Identifies that entity is defaultable
403
- """
404
- metadata: Optional[Dict[str, Any]] = None
405
-
406
-
407
- class SupercellMatrix2DSchemaItem(RootModel[List[int]]):
408
- root: List[int]
409
-
410
-
411
- class SlabConfigurationSchema(BaseModel):
412
- bulk: Optional[MaterialSchema] = Field(None, title="material schema")
413
- miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
414
- """
415
- Miller indices for crystallographic plane designation
416
- """
417
- number_of_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
418
- """
419
- Number of atomic layers in a structural component
420
- """
421
- vacuum: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Thickness Schema")
422
- """
423
- Vacuum thickness in Angstroms
424
- """
425
- xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
426
- default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
427
- max_length=2,
428
- min_length=2,
429
- title="Supercell Matrix 2D Schema",
430
- )
431
- """
432
- Supercell matrix for xy plane transformations
433
- """
434
- use_conventional_cell: Optional[bool] = Field(True, title="Use Conventional Cell")
435
- """
436
- Whether to use conventional cell
437
- """
438
- use_orthogonal_z: Optional[bool] = Field(False, title="Use Orthogonal Z")
439
- """
440
- Whether to make z-axis orthogonal
441
- """
442
- make_primitive: Optional[bool] = Field(False, title="Make Primitive")
443
- """
444
- Whether to make the slab primitive
445
- """
446
-
447
-
448
- class BasisSchema11(BaseModel):
449
- elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
450
- """
451
- atomic elements schema
452
- """
453
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
454
- """
455
- atomic coordinates schema
456
- """
457
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
458
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
459
- """
460
- atomic labels schema
461
- """
462
-
463
-
464
- class LatticeVectorsSchema10(BaseModel):
465
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
466
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
467
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
468
- alat: Optional[float] = 1
469
- """
470
- lattice parameter for fractional coordinates
471
- """
472
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
473
-
474
-
475
- class LatticeUnitsSchema10(BaseModel):
476
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
477
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
478
-
479
-
480
- class LatticeSchema10(BaseModel):
481
- a: float
482
- """
483
- length of the first lattice vector
484
- """
485
- b: float
486
- """
487
- length of the second lattice vector
488
- """
489
- c: float
490
- """
491
- length of the third lattice vector
492
- """
493
- alpha: float
494
- """
495
- angle between first and second lattice vector
496
- """
497
- beta: float
498
- """
499
- angle between second and third lattice vector
500
- """
501
- gamma: float
502
- """
503
- angle between first and third lattice vector
504
- """
505
- vectors: Optional[LatticeVectorsSchema10] = Field(None, title="lattice vectors schema")
506
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
507
- units: Optional[LatticeUnitsSchema10] = Field(
508
- default_factory=lambda: LatticeUnitsSchema10.model_validate({"length": "angstrom", "angle": "degree"}),
509
- title="Lattice units schema",
510
- )
511
-
512
-
513
- class Name87(Enum):
514
- volume = "volume"
515
-
516
-
517
- class Units39(Enum):
518
- angstrom_3 = "angstrom^3"
519
-
520
-
521
- class VolumeSchema10(BaseModel):
522
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
523
- units: Optional[Units39] = None
524
- value: float
525
-
526
-
527
- class Name88(Enum):
528
- density = "density"
529
-
530
-
531
- class Units40(Enum):
532
- g_cm_3 = "g/cm^3"
533
-
534
-
535
- class DensitySchema10(BaseModel):
536
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
537
- units: Optional[Units40] = None
538
- value: float
539
-
540
-
541
- class Units41(Enum):
542
- angstrom = "angstrom"
543
-
544
-
545
- class ScalarSchema11(BaseModel):
546
- units: Optional[Units41] = None
547
- value: float
548
-
549
-
550
- class Name89(Enum):
551
- symmetry = "symmetry"
552
-
553
-
554
- class SymmetrySchema10(BaseModel):
555
- pointGroupSymbol: Optional[str] = None
556
- """
557
- point group symbol in Schoenflies notation
558
- """
559
- spaceGroupSymbol: Optional[str] = None
560
- """
561
- space group symbol in Hermann–Mauguin notation
562
- """
563
- tolerance: Optional[ScalarSchema11] = Field(None, title="scalar schema")
564
- """
565
- tolerance used for symmetry calculation
566
- """
567
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
568
-
569
-
570
- class Name90(Enum):
571
- elemental_ratio = "elemental_ratio"
572
-
573
-
574
- class ElementalRatio10(BaseModel):
575
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
576
- value: confloat(ge=0.0, le=1.0)
577
- element: Optional[str] = None
578
- """
579
- the element this ratio is for
580
- """
581
-
582
-
583
- class Name91(Enum):
584
- p_norm = "p-norm"
585
-
586
-
587
- class PNorm10(BaseModel):
588
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
589
- degree: Optional[int] = None
590
- """
591
- degree of the dimensionality of the norm
592
- """
593
- value: float
594
-
595
-
596
- class Name92(Enum):
597
- inchi = "inchi"
598
-
599
-
600
- class InChIRepresentationSchema10(BaseModel):
601
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
602
- value: str
603
-
604
-
605
- class Name93(Enum):
606
- inchi_key = "inchi_key"
607
-
608
-
609
- class InChIKeyRepresentationSchema10(BaseModel):
610
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
611
- value: str
612
-
613
-
614
- class DerivedPropertiesSchema10(
615
- RootModel[
616
- Union[
617
- VolumeSchema10,
618
- DensitySchema10,
619
- SymmetrySchema10,
620
- ElementalRatio10,
621
- PNorm10,
622
- InChIRepresentationSchema10,
623
- InChIKeyRepresentationSchema10,
624
- ]
625
- ]
626
- ):
627
- root: Union[
628
- VolumeSchema10,
629
- DensitySchema10,
630
- SymmetrySchema10,
631
- ElementalRatio10,
632
- PNorm10,
633
- InChIRepresentationSchema10,
634
- InChIKeyRepresentationSchema10,
635
- ] = Field(..., discriminator="name")
636
-
637
-
638
- class Name94(Enum):
639
- default = "default"
640
- atomsTooClose = "atomsTooClose"
641
- atomsOverlap = "atomsOverlap"
642
-
643
-
644
- class MaterialConsistencyCheckSchema10(BaseModel):
645
- name: Name94
646
- """
647
- Name of the consistency check that is performed, which is listed in an enum.
648
- """
649
- key: str
650
- """
651
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
652
- """
653
- severity: Severity
654
- """
655
- Severity level of the problem, which is used in UI to differentiate.
656
- """
657
- message: str
658
- """
659
- Message generated by the consistency check describing the problem.
660
- """
661
-
662
-
663
- class MaterialSchema10(BaseModel):
664
- formula: Optional[str] = None
665
- """
666
- reduced chemical formula
667
- """
668
- unitCellFormula: Optional[str] = None
669
- """
670
- chemical formula based on the number of atoms of each element in the supercell
671
- """
672
- basis: BasisSchema11 = Field(..., title="basis schema")
673
- lattice: LatticeSchema10 = Field(..., title="lattice schema")
674
- derivedProperties: Optional[List[DerivedPropertiesSchema10]] = Field(None, title="derived properties schema")
675
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
676
- """
677
- information about a database source
678
- """
679
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
680
- """
681
- file source with the information inside
682
- """
683
- scaledHash: Optional[str] = None
684
- """
685
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
686
- """
687
- icsdId: Optional[int] = None
688
- """
689
- Corresponding ICSD id of the material
690
- """
691
- isNonPeriodic: Optional[bool] = None
692
- """
693
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
694
- """
695
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema10]] = None
696
- field_id: Optional[str] = Field(None, alias="_id")
697
- """
698
- entity identity
699
- """
700
- slug: Optional[str] = None
701
- """
702
- entity slug
703
- """
704
- systemName: Optional[str] = None
705
- schemaVersion: Optional[str] = "2022.8.16"
706
- """
707
- entity's schema version. Used to distinct between different schemas.
708
- """
709
- name: Optional[str] = None
710
- """
711
- entity name
712
- """
713
- isDefault: Optional[bool] = False
714
- """
715
- Identifies that entity is defaultable
716
- """
717
- metadata: Optional[Dict[str, Any]] = None
718
-
719
-
720
- class SlabConfigurationSchema1(BaseModel):
721
- bulk: Optional[MaterialSchema10] = Field(None, title="material schema")
722
- miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
723
- """
724
- Miller indices for crystallographic plane designation
725
- """
726
- number_of_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
727
- """
728
- Number of atomic layers in a structural component
729
- """
730
- vacuum: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Thickness Schema")
731
- """
732
- Vacuum thickness in Angstroms
733
- """
734
- xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
735
- default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
736
- max_length=2,
737
- min_length=2,
738
- title="Supercell Matrix 2D Schema",
739
- )
740
- """
741
- Supercell matrix for xy plane transformations
742
- """
743
- use_conventional_cell: Optional[bool] = Field(True, title="Use Conventional Cell")
744
- """
745
- Whether to use conventional cell
746
- """
747
- use_orthogonal_z: Optional[bool] = Field(False, title="Use Orthogonal Z")
748
- """
749
- Whether to make z-axis orthogonal
750
- """
751
- make_primitive: Optional[bool] = Field(False, title="Make Primitive")
752
- """
753
- Whether to make the slab primitive
754
- """
755
-
756
-
757
- class TerminationSchema(BaseModel):
758
- chemical_elements: str = Field(..., title="Chemical Elements")
759
- """
760
- Chemical elements at the termination
761
- """
762
- space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
763
- """
764
- Space group symmetry designation for the termination
765
- """
766
-
767
-
768
- class BasisSchema12(BaseModel):
769
- elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
770
- """
771
- atomic elements schema
772
- """
773
- coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
774
- """
775
- atomic coordinates schema
776
- """
777
- units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
778
- labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
779
- """
780
- atomic labels schema
781
- """
782
-
783
-
784
- class LatticeVectorsSchema11(BaseModel):
785
- a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
786
- b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
787
- c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
788
- alat: Optional[float] = 1
789
- """
790
- lattice parameter for fractional coordinates
791
- """
792
- units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
793
-
794
-
795
- class LatticeUnitsSchema11(BaseModel):
796
- length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
797
- angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
798
-
799
-
800
- class LatticeSchema11(BaseModel):
801
- a: float
802
- """
803
- length of the first lattice vector
804
- """
805
- b: float
806
- """
807
- length of the second lattice vector
808
- """
809
- c: float
810
- """
811
- length of the third lattice vector
812
- """
813
- alpha: float
814
- """
815
- angle between first and second lattice vector
816
- """
817
- beta: float
818
- """
819
- angle between second and third lattice vector
820
- """
821
- gamma: float
822
- """
823
- angle between first and third lattice vector
824
- """
825
- vectors: Optional[LatticeVectorsSchema11] = Field(None, title="lattice vectors schema")
826
- type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
827
- units: Optional[LatticeUnitsSchema11] = Field(
828
- default_factory=lambda: LatticeUnitsSchema11.model_validate({"length": "angstrom", "angle": "degree"}),
829
- title="Lattice units schema",
830
- )
831
-
832
-
833
- class Name95(Enum):
834
- volume = "volume"
835
-
836
-
837
- class Units42(Enum):
838
- angstrom_3 = "angstrom^3"
839
-
840
-
841
- class VolumeSchema11(BaseModel):
842
- name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
843
- units: Optional[Units42] = None
844
- value: float
845
-
846
-
847
- class Name96(Enum):
848
- density = "density"
849
-
850
-
851
- class Units43(Enum):
852
- g_cm_3 = "g/cm^3"
853
-
854
-
855
- class DensitySchema11(BaseModel):
856
- name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
857
- units: Optional[Units43] = None
858
- value: float
859
-
860
-
861
- class Units44(Enum):
862
- angstrom = "angstrom"
863
-
864
-
865
- class ScalarSchema12(BaseModel):
866
- units: Optional[Units44] = None
867
- value: float
868
-
869
-
870
- class Name97(Enum):
871
- symmetry = "symmetry"
872
-
873
-
874
- class SymmetrySchema11(BaseModel):
875
- pointGroupSymbol: Optional[str] = None
876
- """
877
- point group symbol in Schoenflies notation
878
- """
879
- spaceGroupSymbol: Optional[str] = None
880
- """
881
- space group symbol in Hermann–Mauguin notation
882
- """
883
- tolerance: Optional[ScalarSchema12] = Field(None, title="scalar schema")
884
- """
885
- tolerance used for symmetry calculation
886
- """
887
- name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
888
-
889
-
890
- class Name98(Enum):
891
- elemental_ratio = "elemental_ratio"
892
-
893
-
894
- class ElementalRatio11(BaseModel):
895
- name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
896
- value: confloat(ge=0.0, le=1.0)
897
- element: Optional[str] = None
898
- """
899
- the element this ratio is for
900
- """
901
-
902
-
903
- class Name99(Enum):
904
- p_norm = "p-norm"
905
-
906
-
907
- class PNorm11(BaseModel):
908
- name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
909
- degree: Optional[int] = None
910
- """
911
- degree of the dimensionality of the norm
912
- """
913
- value: float
914
-
915
-
916
- class Name100(Enum):
917
- inchi = "inchi"
918
-
919
-
920
- class InChIRepresentationSchema11(BaseModel):
921
- name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
922
- value: str
923
-
924
-
925
- class Name101(Enum):
926
- inchi_key = "inchi_key"
927
-
928
-
929
- class InChIKeyRepresentationSchema11(BaseModel):
930
- name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
931
- value: str
932
-
933
-
934
- class DerivedPropertiesSchema11(
935
- RootModel[
936
- Union[
937
- VolumeSchema11,
938
- DensitySchema11,
939
- SymmetrySchema11,
940
- ElementalRatio11,
941
- PNorm11,
942
- InChIRepresentationSchema11,
943
- InChIKeyRepresentationSchema11,
944
- ]
945
- ]
946
- ):
947
- root: Union[
948
- VolumeSchema11,
949
- DensitySchema11,
950
- SymmetrySchema11,
951
- ElementalRatio11,
952
- PNorm11,
953
- InChIRepresentationSchema11,
954
- InChIKeyRepresentationSchema11,
955
- ] = Field(..., discriminator="name")
956
-
957
-
958
- class Name102(Enum):
959
- default = "default"
960
- atomsTooClose = "atomsTooClose"
961
- atomsOverlap = "atomsOverlap"
962
-
963
-
964
- class MaterialConsistencyCheckSchema11(BaseModel):
965
- name: Name102
966
- """
967
- Name of the consistency check that is performed, which is listed in an enum.
968
- """
969
- key: str
970
- """
971
- Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
972
- """
973
- severity: Severity
974
- """
975
- Severity level of the problem, which is used in UI to differentiate.
976
- """
977
- message: str
978
- """
979
- Message generated by the consistency check describing the problem.
980
- """
981
-
982
-
983
- class MaterialSchema11(BaseModel):
984
- formula: Optional[str] = None
985
- """
986
- reduced chemical formula
987
- """
988
- unitCellFormula: Optional[str] = None
989
- """
990
- chemical formula based on the number of atoms of each element in the supercell
991
- """
992
- basis: BasisSchema12 = Field(..., title="basis schema")
993
- lattice: LatticeSchema11 = Field(..., title="lattice schema")
994
- derivedProperties: Optional[List[DerivedPropertiesSchema11]] = Field(None, title="derived properties schema")
995
- external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
996
- """
997
- information about a database source
998
- """
999
- src: Optional[FileSourceSchema] = Field(None, title="file source schema")
1000
- """
1001
- file source with the information inside
1002
- """
1003
- scaledHash: Optional[str] = None
1004
- """
1005
- Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
1006
- """
1007
- icsdId: Optional[int] = None
1008
- """
1009
- Corresponding ICSD id of the material
1010
- """
1011
- isNonPeriodic: Optional[bool] = None
1012
- """
1013
- Whether to work in the finite molecular picture (usually with atomic orbital basis)
1014
- """
1015
- consistencyChecks: Optional[List[MaterialConsistencyCheckSchema11]] = None
1016
- field_id: Optional[str] = Field(None, alias="_id")
1017
- """
1018
- entity identity
1019
- """
1020
- slug: Optional[str] = None
1021
- """
1022
- entity slug
1023
- """
1024
- systemName: Optional[str] = None
1025
- schemaVersion: Optional[str] = "2022.8.16"
1026
- """
1027
- entity's schema version. Used to distinct between different schemas.
1028
- """
1029
- name: Optional[str] = None
1030
- """
1031
- entity name
1032
- """
1033
- isDefault: Optional[bool] = False
1034
- """
1035
- Identifies that entity is defaultable
1036
- """
1037
- metadata: Optional[Dict[str, Any]] = None
1038
-
1039
-
1040
- class SlabConfigurationSchema2(BaseModel):
1041
- bulk: Optional[MaterialSchema11] = Field(None, title="material schema")
1042
- miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
1043
- """
1044
- Miller indices for crystallographic plane designation
1045
- """
1046
- number_of_layers: Optional[conint(ge=1)] = Field(1, title="Number of Layers Schema")
1047
- """
1048
- Number of atomic layers in a structural component
1049
- """
1050
- vacuum: Optional[confloat(ge=0.0)] = Field(5, title="Vacuum Thickness Schema")
1051
- """
1052
- Vacuum thickness in Angstroms
1053
- """
1054
- xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
1055
- default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
1056
- max_length=2,
1057
- min_length=2,
1058
- title="Supercell Matrix 2D Schema",
1059
- )
1060
- """
1061
- Supercell matrix for xy plane transformations
1062
- """
1063
- use_conventional_cell: Optional[bool] = Field(True, title="Use Conventional Cell")
1064
- """
1065
- Whether to use conventional cell
1066
- """
1067
- use_orthogonal_z: Optional[bool] = Field(False, title="Use Orthogonal Z")
1068
- """
1069
- Whether to make z-axis orthogonal
1070
- """
1071
- make_primitive: Optional[bool] = Field(False, title="Make Primitive")
1072
- """
1073
- Whether to make the slab primitive
1074
- """
1075
-
1076
-
1077
- class SlabGrainBoundaryConfigurationSchema(BaseModel):
1078
- phase_1_configuration: SlabConfigurationSchema = Field(..., title="Slab Configuration Schema")
1079
- """
1080
- Configuration for creating a slab from a bulk material
1081
- """
1082
- phase_2_configuration: SlabConfigurationSchema1 = Field(..., title="Slab Configuration Schema")
1083
- """
1084
- Configuration for creating a slab from a bulk material
1085
- """
1086
- phase_1_termination: TerminationSchema = Field(..., title="Termination Schema")
1087
- """
1088
- Defines a specific termination of a slab
1089
- """
1090
- phase_2_termination: TerminationSchema = Field(..., title="Termination Schema")
1091
- """
1092
- Defines a specific termination of a slab
1093
- """
1094
- gap: Optional[float] = 3
1095
- """
1096
- The gap between the two phases, in Angstroms
1097
- """
1098
- slab_configuration: SlabConfigurationSchema2 = Field(..., title="Slab Configuration Schema")
1099
- """
1100
- Configuration for creating a slab from a bulk material
1101
- """
1102
- slab_termination: Optional[TerminationSchema] = Field(None, title="Termination Schema")
1103
- """
1104
- Defines a specific termination of a slab
1105
- """