mat3ra-esse 2025.7.15.post0__py3-none-any.whl → 2025.8.6.post0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mat3ra-esse might be problematic. Click here for more details.
- mat3ra/esse/data/examples.py +1 -1
- mat3ra/esse/data/schemas.py +1 -1
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw_x.py +6 -6
- mat3ra/esse/models/core/abstract/vector_2d.py +13 -0
- mat3ra/esse/models/core/primitive/array_of_2_numbers.py +13 -0
- mat3ra/esse/models/core/reusable/energy.py +2 -2
- mat3ra/esse/models/element.py +6 -6
- mat3ra/esse/models/material/__init__.py +14 -14
- mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/__init__.py +3 -0
- mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +4269 -0
- mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +4273 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +2132 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/base_configuration.py +1561 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +4269 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +2908 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +2912 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.py +544 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +1099 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +1099 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +556 -0
- mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +14 -14
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +1598 -0
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +1160 -0
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +88 -92
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +1159 -0
- mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/__init__.py +3 -0
- mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +1232 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/one_dimensional/__init__.py +3 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.py +16 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +527 -2
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +676 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +555 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_site.py +1576 -0
- mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/vacancy.py +22 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/__init__.py +3 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_base.py +541 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +545 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +708 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +541 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/{repetitions.py → three_dimensional/repetitions.py} +1 -1
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py +4 -4
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py +4 -4
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py +4 -4
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +18 -18
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +1577 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.py +74 -77
- mat3ra/esse/models/materials_category_components/operations/core/combinations/enums.py +13 -0
- mat3ra/esse/models/materials_category_components/operations/core/combinations/merge.py +9 -981
- mat3ra/esse/models/materials_category_components/operations/core/combinations/stack.py +8 -940
- mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +538 -0
- mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
- mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
- mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
- mat3ra/esse/models/properties_directory/structural/basis/__init__.py +2 -2
- mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
- mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/METADATA +1 -1
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/RECORD +85 -45
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/WHEEL +0 -0
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,4273 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: materials_category/defective_structures/one_dimensional/grain_boundary_linear/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, constr
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ChemicalElements(Enum):
|
|
14
|
+
H = "H"
|
|
15
|
+
He = "He"
|
|
16
|
+
Li = "Li"
|
|
17
|
+
Be = "Be"
|
|
18
|
+
B = "B"
|
|
19
|
+
C = "C"
|
|
20
|
+
N = "N"
|
|
21
|
+
O = "O"
|
|
22
|
+
F = "F"
|
|
23
|
+
Ne = "Ne"
|
|
24
|
+
Na = "Na"
|
|
25
|
+
Mg = "Mg"
|
|
26
|
+
Al = "Al"
|
|
27
|
+
Si = "Si"
|
|
28
|
+
P = "P"
|
|
29
|
+
S = "S"
|
|
30
|
+
Cl = "Cl"
|
|
31
|
+
Ar = "Ar"
|
|
32
|
+
K = "K"
|
|
33
|
+
Ca = "Ca"
|
|
34
|
+
Sc = "Sc"
|
|
35
|
+
Ti = "Ti"
|
|
36
|
+
V = "V"
|
|
37
|
+
Cr = "Cr"
|
|
38
|
+
Mn = "Mn"
|
|
39
|
+
Fe = "Fe"
|
|
40
|
+
Co = "Co"
|
|
41
|
+
Ni = "Ni"
|
|
42
|
+
Cu = "Cu"
|
|
43
|
+
Zn = "Zn"
|
|
44
|
+
Ga = "Ga"
|
|
45
|
+
Ge = "Ge"
|
|
46
|
+
As = "As"
|
|
47
|
+
Se = "Se"
|
|
48
|
+
Br = "Br"
|
|
49
|
+
Kr = "Kr"
|
|
50
|
+
Rb = "Rb"
|
|
51
|
+
Sr = "Sr"
|
|
52
|
+
Y = "Y"
|
|
53
|
+
Zr = "Zr"
|
|
54
|
+
Nb = "Nb"
|
|
55
|
+
Mo = "Mo"
|
|
56
|
+
Tc = "Tc"
|
|
57
|
+
Ru = "Ru"
|
|
58
|
+
Rh = "Rh"
|
|
59
|
+
Pd = "Pd"
|
|
60
|
+
Ag = "Ag"
|
|
61
|
+
Cd = "Cd"
|
|
62
|
+
In = "In"
|
|
63
|
+
Sn = "Sn"
|
|
64
|
+
Sb = "Sb"
|
|
65
|
+
Te = "Te"
|
|
66
|
+
I = "I"
|
|
67
|
+
Xe = "Xe"
|
|
68
|
+
Cs = "Cs"
|
|
69
|
+
Ba = "Ba"
|
|
70
|
+
La = "La"
|
|
71
|
+
Ce = "Ce"
|
|
72
|
+
Pr = "Pr"
|
|
73
|
+
Nd = "Nd"
|
|
74
|
+
Pm = "Pm"
|
|
75
|
+
Sm = "Sm"
|
|
76
|
+
Eu = "Eu"
|
|
77
|
+
Gd = "Gd"
|
|
78
|
+
Tb = "Tb"
|
|
79
|
+
Dy = "Dy"
|
|
80
|
+
Ho = "Ho"
|
|
81
|
+
Er = "Er"
|
|
82
|
+
Tm = "Tm"
|
|
83
|
+
Yb = "Yb"
|
|
84
|
+
Lu = "Lu"
|
|
85
|
+
Hf = "Hf"
|
|
86
|
+
Ta = "Ta"
|
|
87
|
+
W = "W"
|
|
88
|
+
Re = "Re"
|
|
89
|
+
Os = "Os"
|
|
90
|
+
Ir = "Ir"
|
|
91
|
+
Pt = "Pt"
|
|
92
|
+
Au = "Au"
|
|
93
|
+
Hg = "Hg"
|
|
94
|
+
Tl = "Tl"
|
|
95
|
+
Pb = "Pb"
|
|
96
|
+
Bi = "Bi"
|
|
97
|
+
Po = "Po"
|
|
98
|
+
At = "At"
|
|
99
|
+
Rn = "Rn"
|
|
100
|
+
Fr = "Fr"
|
|
101
|
+
Ra = "Ra"
|
|
102
|
+
Ac = "Ac"
|
|
103
|
+
Th = "Th"
|
|
104
|
+
Pa = "Pa"
|
|
105
|
+
U = "U"
|
|
106
|
+
Np = "Np"
|
|
107
|
+
Pu = "Pu"
|
|
108
|
+
Am = "Am"
|
|
109
|
+
Cm = "Cm"
|
|
110
|
+
Bk = "Bk"
|
|
111
|
+
Cf = "Cf"
|
|
112
|
+
Es = "Es"
|
|
113
|
+
Fm = "Fm"
|
|
114
|
+
Md = "Md"
|
|
115
|
+
No = "No"
|
|
116
|
+
Lr = "Lr"
|
|
117
|
+
Rf = "Rf"
|
|
118
|
+
Db = "Db"
|
|
119
|
+
Sg = "Sg"
|
|
120
|
+
Bh = "Bh"
|
|
121
|
+
Hs = "Hs"
|
|
122
|
+
Mt = "Mt"
|
|
123
|
+
Ds = "Ds"
|
|
124
|
+
Rg = "Rg"
|
|
125
|
+
Cn = "Cn"
|
|
126
|
+
Nh = "Nh"
|
|
127
|
+
Fl = "Fl"
|
|
128
|
+
Mc = "Mc"
|
|
129
|
+
Lv = "Lv"
|
|
130
|
+
Ts = "Ts"
|
|
131
|
+
Og = "Og"
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class TerminationSchema(BaseModel):
|
|
135
|
+
chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
|
|
136
|
+
..., title="Chemical Elements"
|
|
137
|
+
)
|
|
138
|
+
"""
|
|
139
|
+
Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
|
|
140
|
+
"""
|
|
141
|
+
space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
|
|
142
|
+
"""
|
|
143
|
+
Space group symmetry designation for the termination
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class Value(Enum):
|
|
148
|
+
H = "H"
|
|
149
|
+
He = "He"
|
|
150
|
+
Li = "Li"
|
|
151
|
+
Be = "Be"
|
|
152
|
+
B = "B"
|
|
153
|
+
C = "C"
|
|
154
|
+
N = "N"
|
|
155
|
+
O = "O"
|
|
156
|
+
F = "F"
|
|
157
|
+
Ne = "Ne"
|
|
158
|
+
Na = "Na"
|
|
159
|
+
Mg = "Mg"
|
|
160
|
+
Al = "Al"
|
|
161
|
+
Si = "Si"
|
|
162
|
+
P = "P"
|
|
163
|
+
S = "S"
|
|
164
|
+
Cl = "Cl"
|
|
165
|
+
Ar = "Ar"
|
|
166
|
+
K = "K"
|
|
167
|
+
Ca = "Ca"
|
|
168
|
+
Sc = "Sc"
|
|
169
|
+
Ti = "Ti"
|
|
170
|
+
V = "V"
|
|
171
|
+
Cr = "Cr"
|
|
172
|
+
Mn = "Mn"
|
|
173
|
+
Fe = "Fe"
|
|
174
|
+
Co = "Co"
|
|
175
|
+
Ni = "Ni"
|
|
176
|
+
Cu = "Cu"
|
|
177
|
+
Zn = "Zn"
|
|
178
|
+
Ga = "Ga"
|
|
179
|
+
Ge = "Ge"
|
|
180
|
+
As = "As"
|
|
181
|
+
Se = "Se"
|
|
182
|
+
Br = "Br"
|
|
183
|
+
Kr = "Kr"
|
|
184
|
+
Rb = "Rb"
|
|
185
|
+
Sr = "Sr"
|
|
186
|
+
Y = "Y"
|
|
187
|
+
Zr = "Zr"
|
|
188
|
+
Nb = "Nb"
|
|
189
|
+
Mo = "Mo"
|
|
190
|
+
Tc = "Tc"
|
|
191
|
+
Ru = "Ru"
|
|
192
|
+
Rh = "Rh"
|
|
193
|
+
Pd = "Pd"
|
|
194
|
+
Ag = "Ag"
|
|
195
|
+
Cd = "Cd"
|
|
196
|
+
In = "In"
|
|
197
|
+
Sn = "Sn"
|
|
198
|
+
Sb = "Sb"
|
|
199
|
+
Te = "Te"
|
|
200
|
+
I = "I"
|
|
201
|
+
Xe = "Xe"
|
|
202
|
+
Cs = "Cs"
|
|
203
|
+
Ba = "Ba"
|
|
204
|
+
La = "La"
|
|
205
|
+
Ce = "Ce"
|
|
206
|
+
Pr = "Pr"
|
|
207
|
+
Nd = "Nd"
|
|
208
|
+
Pm = "Pm"
|
|
209
|
+
Sm = "Sm"
|
|
210
|
+
Eu = "Eu"
|
|
211
|
+
Gd = "Gd"
|
|
212
|
+
Tb = "Tb"
|
|
213
|
+
Dy = "Dy"
|
|
214
|
+
Ho = "Ho"
|
|
215
|
+
Er = "Er"
|
|
216
|
+
Tm = "Tm"
|
|
217
|
+
Yb = "Yb"
|
|
218
|
+
Lu = "Lu"
|
|
219
|
+
Hf = "Hf"
|
|
220
|
+
Ta = "Ta"
|
|
221
|
+
W = "W"
|
|
222
|
+
Re = "Re"
|
|
223
|
+
Os = "Os"
|
|
224
|
+
Ir = "Ir"
|
|
225
|
+
Pt = "Pt"
|
|
226
|
+
Au = "Au"
|
|
227
|
+
Hg = "Hg"
|
|
228
|
+
Tl = "Tl"
|
|
229
|
+
Pb = "Pb"
|
|
230
|
+
Bi = "Bi"
|
|
231
|
+
Po = "Po"
|
|
232
|
+
At = "At"
|
|
233
|
+
Rn = "Rn"
|
|
234
|
+
Fr = "Fr"
|
|
235
|
+
Ra = "Ra"
|
|
236
|
+
Ac = "Ac"
|
|
237
|
+
Th = "Th"
|
|
238
|
+
Pa = "Pa"
|
|
239
|
+
U = "U"
|
|
240
|
+
Np = "Np"
|
|
241
|
+
Pu = "Pu"
|
|
242
|
+
Am = "Am"
|
|
243
|
+
Cm = "Cm"
|
|
244
|
+
Bk = "Bk"
|
|
245
|
+
Cf = "Cf"
|
|
246
|
+
Es = "Es"
|
|
247
|
+
Fm = "Fm"
|
|
248
|
+
Md = "Md"
|
|
249
|
+
No = "No"
|
|
250
|
+
Lr = "Lr"
|
|
251
|
+
Rf = "Rf"
|
|
252
|
+
Db = "Db"
|
|
253
|
+
Sg = "Sg"
|
|
254
|
+
Bh = "Bh"
|
|
255
|
+
Hs = "Hs"
|
|
256
|
+
Mt = "Mt"
|
|
257
|
+
Ds = "Ds"
|
|
258
|
+
Rg = "Rg"
|
|
259
|
+
Cn = "Cn"
|
|
260
|
+
Nh = "Nh"
|
|
261
|
+
Fl = "Fl"
|
|
262
|
+
Mc = "Mc"
|
|
263
|
+
Lv = "Lv"
|
|
264
|
+
Ts = "Ts"
|
|
265
|
+
Og = "Og"
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
class Value67(Enum):
|
|
269
|
+
X = "X"
|
|
270
|
+
Vac = "Vac"
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
class AtomicElementSchema(BaseModel):
|
|
274
|
+
value: Union[Value, Value67]
|
|
275
|
+
"""
|
|
276
|
+
All elements, including extra elements
|
|
277
|
+
"""
|
|
278
|
+
id: int
|
|
279
|
+
"""
|
|
280
|
+
integer id of this entry
|
|
281
|
+
"""
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
class AtomicCoordinateSchema(BaseModel):
|
|
285
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
286
|
+
"""
|
|
287
|
+
value of this entry
|
|
288
|
+
"""
|
|
289
|
+
id: int
|
|
290
|
+
"""
|
|
291
|
+
integer id of this entry
|
|
292
|
+
"""
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
class BasisUnitsEnum(Enum):
|
|
296
|
+
crystal = "crystal"
|
|
297
|
+
cartesian = "cartesian"
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
class AtomicLabelSchema(BaseModel):
|
|
301
|
+
value: Union[Union[int, str, float], conint(ge=1, le=9)]
|
|
302
|
+
"""
|
|
303
|
+
value of this entry
|
|
304
|
+
"""
|
|
305
|
+
id: int
|
|
306
|
+
"""
|
|
307
|
+
integer id of this entry
|
|
308
|
+
"""
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
class BasisSchema(BaseModel):
|
|
312
|
+
elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
|
|
313
|
+
"""
|
|
314
|
+
atomic elements schema
|
|
315
|
+
"""
|
|
316
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
317
|
+
"""
|
|
318
|
+
atomic coordinates schema
|
|
319
|
+
"""
|
|
320
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
321
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
322
|
+
"""
|
|
323
|
+
atomic labels schema
|
|
324
|
+
"""
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
class LatticeVectorsUnitsEnum(Enum):
|
|
328
|
+
angstrom = "angstrom"
|
|
329
|
+
bohr = "bohr"
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
class LatticeVectorsSchema(BaseModel):
|
|
333
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
334
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
335
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
336
|
+
alat: Optional[float] = 1
|
|
337
|
+
"""
|
|
338
|
+
lattice parameter for fractional coordinates
|
|
339
|
+
"""
|
|
340
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
class LatticeTypeEnum(Enum):
|
|
344
|
+
CUB = "CUB"
|
|
345
|
+
BCC = "BCC"
|
|
346
|
+
FCC = "FCC"
|
|
347
|
+
TET = "TET"
|
|
348
|
+
MCL = "MCL"
|
|
349
|
+
ORC = "ORC"
|
|
350
|
+
ORCC = "ORCC"
|
|
351
|
+
ORCF = "ORCF"
|
|
352
|
+
ORCI = "ORCI"
|
|
353
|
+
HEX = "HEX"
|
|
354
|
+
BCT = "BCT"
|
|
355
|
+
TRI = "TRI"
|
|
356
|
+
MCLC = "MCLC"
|
|
357
|
+
RHL = "RHL"
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
class LatticeUnitsLengthEnum(Enum):
|
|
361
|
+
angstrom = "angstrom"
|
|
362
|
+
bohr = "bohr"
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
class LatticeUnitsAngleEnum(Enum):
|
|
366
|
+
degree = "degree"
|
|
367
|
+
radian = "radian"
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
class LatticeUnitsSchema(BaseModel):
|
|
371
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
372
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
class LatticeSchema(BaseModel):
|
|
376
|
+
a: float
|
|
377
|
+
"""
|
|
378
|
+
length of the first lattice vector
|
|
379
|
+
"""
|
|
380
|
+
b: float
|
|
381
|
+
"""
|
|
382
|
+
length of the second lattice vector
|
|
383
|
+
"""
|
|
384
|
+
c: float
|
|
385
|
+
"""
|
|
386
|
+
length of the third lattice vector
|
|
387
|
+
"""
|
|
388
|
+
alpha: float
|
|
389
|
+
"""
|
|
390
|
+
angle between first and second lattice vector
|
|
391
|
+
"""
|
|
392
|
+
beta: float
|
|
393
|
+
"""
|
|
394
|
+
angle between second and third lattice vector
|
|
395
|
+
"""
|
|
396
|
+
gamma: float
|
|
397
|
+
"""
|
|
398
|
+
angle between first and third lattice vector
|
|
399
|
+
"""
|
|
400
|
+
vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
|
|
401
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
402
|
+
units: Optional[LatticeUnitsSchema] = Field(
|
|
403
|
+
default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
404
|
+
title="Lattice units schema",
|
|
405
|
+
)
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
class Name(Enum):
|
|
409
|
+
volume = "volume"
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
class Units(Enum):
|
|
413
|
+
angstrom_3 = "angstrom^3"
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
class VolumeSchema(BaseModel):
|
|
417
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
418
|
+
units: Optional[Units] = None
|
|
419
|
+
value: float
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
class Name240(Enum):
|
|
423
|
+
density = "density"
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
class Units97(Enum):
|
|
427
|
+
g_cm_3 = "g/cm^3"
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
class DensitySchema(BaseModel):
|
|
431
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
432
|
+
units: Optional[Units97] = None
|
|
433
|
+
value: float
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
class Units98(Enum):
|
|
437
|
+
angstrom = "angstrom"
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
class ScalarSchema(BaseModel):
|
|
441
|
+
units: Optional[Units98] = None
|
|
442
|
+
value: float
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
class Name241(Enum):
|
|
446
|
+
symmetry = "symmetry"
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
class SymmetrySchema(BaseModel):
|
|
450
|
+
pointGroupSymbol: Optional[str] = None
|
|
451
|
+
"""
|
|
452
|
+
point group symbol in Schoenflies notation
|
|
453
|
+
"""
|
|
454
|
+
spaceGroupSymbol: Optional[str] = None
|
|
455
|
+
"""
|
|
456
|
+
space group symbol in Hermann–Mauguin notation
|
|
457
|
+
"""
|
|
458
|
+
tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
|
|
459
|
+
"""
|
|
460
|
+
tolerance used for symmetry calculation
|
|
461
|
+
"""
|
|
462
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
class Name242(Enum):
|
|
466
|
+
elemental_ratio = "elemental_ratio"
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
class ElementalRatio(BaseModel):
|
|
470
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
471
|
+
value: confloat(ge=0.0, le=1.0)
|
|
472
|
+
element: Optional[str] = None
|
|
473
|
+
"""
|
|
474
|
+
the element this ratio is for
|
|
475
|
+
"""
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
class Name243(Enum):
|
|
479
|
+
p_norm = "p-norm"
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
class PNorm(BaseModel):
|
|
483
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
484
|
+
degree: Optional[int] = None
|
|
485
|
+
"""
|
|
486
|
+
degree of the dimensionality of the norm
|
|
487
|
+
"""
|
|
488
|
+
value: float
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
class Name244(Enum):
|
|
492
|
+
inchi = "inchi"
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
class InChIRepresentationSchema(BaseModel):
|
|
496
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
497
|
+
value: str
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
class Name245(Enum):
|
|
501
|
+
inchi_key = "inchi_key"
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
class InChIKeyRepresentationSchema(BaseModel):
|
|
505
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
506
|
+
value: str
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
class DerivedPropertiesSchema(
|
|
510
|
+
RootModel[
|
|
511
|
+
Union[
|
|
512
|
+
VolumeSchema,
|
|
513
|
+
DensitySchema,
|
|
514
|
+
SymmetrySchema,
|
|
515
|
+
ElementalRatio,
|
|
516
|
+
PNorm,
|
|
517
|
+
InChIRepresentationSchema,
|
|
518
|
+
InChIKeyRepresentationSchema,
|
|
519
|
+
]
|
|
520
|
+
]
|
|
521
|
+
):
|
|
522
|
+
root: Union[
|
|
523
|
+
VolumeSchema,
|
|
524
|
+
DensitySchema,
|
|
525
|
+
SymmetrySchema,
|
|
526
|
+
ElementalRatio,
|
|
527
|
+
PNorm,
|
|
528
|
+
InChIRepresentationSchema,
|
|
529
|
+
InChIKeyRepresentationSchema,
|
|
530
|
+
] = Field(..., discriminator="name")
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
class DatabaseSourceSchema(BaseModel):
|
|
534
|
+
id: Union[str, float]
|
|
535
|
+
"""
|
|
536
|
+
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
|
|
537
|
+
"""
|
|
538
|
+
source: str
|
|
539
|
+
"""
|
|
540
|
+
Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
|
|
541
|
+
"""
|
|
542
|
+
origin: bool
|
|
543
|
+
"""
|
|
544
|
+
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).
|
|
545
|
+
"""
|
|
546
|
+
data: Optional[Dict[str, Any]] = None
|
|
547
|
+
"""
|
|
548
|
+
Original response from external source.
|
|
549
|
+
"""
|
|
550
|
+
doi: Optional[str] = None
|
|
551
|
+
"""
|
|
552
|
+
Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
|
|
553
|
+
"""
|
|
554
|
+
url: Optional[str] = None
|
|
555
|
+
"""
|
|
556
|
+
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
|
|
557
|
+
"""
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
class FileSourceSchema(BaseModel):
|
|
561
|
+
extension: Optional[str] = None
|
|
562
|
+
"""
|
|
563
|
+
file extension
|
|
564
|
+
"""
|
|
565
|
+
filename: str
|
|
566
|
+
"""
|
|
567
|
+
file name without extension
|
|
568
|
+
"""
|
|
569
|
+
text: str
|
|
570
|
+
"""
|
|
571
|
+
file content as raw text
|
|
572
|
+
"""
|
|
573
|
+
hash: str
|
|
574
|
+
"""
|
|
575
|
+
MD5 hash based on file content
|
|
576
|
+
"""
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
class Name246(Enum):
|
|
580
|
+
default = "default"
|
|
581
|
+
atomsTooClose = "atomsTooClose"
|
|
582
|
+
atomsOverlap = "atomsOverlap"
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
class Severity(Enum):
|
|
586
|
+
info = "info"
|
|
587
|
+
warning = "warning"
|
|
588
|
+
error = "error"
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
class MaterialConsistencyCheckSchema(BaseModel):
|
|
592
|
+
name: Name246
|
|
593
|
+
"""
|
|
594
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
595
|
+
"""
|
|
596
|
+
key: str
|
|
597
|
+
"""
|
|
598
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
599
|
+
"""
|
|
600
|
+
severity: Severity
|
|
601
|
+
"""
|
|
602
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
603
|
+
"""
|
|
604
|
+
message: str
|
|
605
|
+
"""
|
|
606
|
+
Message generated by the consistency check describing the problem.
|
|
607
|
+
"""
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
class CrystalSchema(BaseModel):
|
|
611
|
+
formula: Optional[str] = None
|
|
612
|
+
"""
|
|
613
|
+
reduced chemical formula
|
|
614
|
+
"""
|
|
615
|
+
unitCellFormula: Optional[str] = None
|
|
616
|
+
"""
|
|
617
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
618
|
+
"""
|
|
619
|
+
basis: BasisSchema = Field(..., title="basis schema")
|
|
620
|
+
lattice: LatticeSchema = Field(..., title="lattice schema")
|
|
621
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
|
|
622
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
623
|
+
"""
|
|
624
|
+
information about a database source
|
|
625
|
+
"""
|
|
626
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
627
|
+
"""
|
|
628
|
+
file source with the information inside
|
|
629
|
+
"""
|
|
630
|
+
scaledHash: Optional[str] = None
|
|
631
|
+
"""
|
|
632
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
633
|
+
"""
|
|
634
|
+
icsdId: Optional[int] = None
|
|
635
|
+
"""
|
|
636
|
+
Corresponding ICSD id of the material
|
|
637
|
+
"""
|
|
638
|
+
isNonPeriodic: Optional[bool] = None
|
|
639
|
+
"""
|
|
640
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
641
|
+
"""
|
|
642
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
|
|
643
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
644
|
+
"""
|
|
645
|
+
entity identity
|
|
646
|
+
"""
|
|
647
|
+
slug: Optional[str] = None
|
|
648
|
+
"""
|
|
649
|
+
entity slug
|
|
650
|
+
"""
|
|
651
|
+
systemName: Optional[str] = None
|
|
652
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
653
|
+
"""
|
|
654
|
+
entity's schema version. Used to distinct between different schemas.
|
|
655
|
+
"""
|
|
656
|
+
name: Optional[str] = None
|
|
657
|
+
"""
|
|
658
|
+
entity name
|
|
659
|
+
"""
|
|
660
|
+
isDefault: Optional[bool] = False
|
|
661
|
+
"""
|
|
662
|
+
Identifies that entity is defaultable
|
|
663
|
+
"""
|
|
664
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
class AtomicLayersUniqueRepeatedSchema(BaseModel):
|
|
668
|
+
termination_top: TerminationSchema = Field(..., title="Termination Schema")
|
|
669
|
+
"""
|
|
670
|
+
Defines a specific termination of a slab
|
|
671
|
+
"""
|
|
672
|
+
number_of_repetitions: conint(ge=1)
|
|
673
|
+
"""
|
|
674
|
+
Number of repetitions of the unique atomic layers
|
|
675
|
+
"""
|
|
676
|
+
miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
|
|
677
|
+
"""
|
|
678
|
+
Miller indices [h, k, l] defining crystallographic planes
|
|
679
|
+
"""
|
|
680
|
+
crystal: CrystalSchema = Field(..., title="Crystal Schema")
|
|
681
|
+
"""
|
|
682
|
+
A crystal structure, referencing the base material schema
|
|
683
|
+
"""
|
|
684
|
+
use_conventional_cell: Optional[bool] = True
|
|
685
|
+
"""
|
|
686
|
+
Use the conventional cell for the crystal structure
|
|
687
|
+
"""
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
class AxisEnum(Enum):
|
|
691
|
+
x = "x"
|
|
692
|
+
y = "y"
|
|
693
|
+
z = "z"
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
class Value68(Enum):
|
|
697
|
+
H = "H"
|
|
698
|
+
He = "He"
|
|
699
|
+
Li = "Li"
|
|
700
|
+
Be = "Be"
|
|
701
|
+
B = "B"
|
|
702
|
+
C = "C"
|
|
703
|
+
N = "N"
|
|
704
|
+
O = "O"
|
|
705
|
+
F = "F"
|
|
706
|
+
Ne = "Ne"
|
|
707
|
+
Na = "Na"
|
|
708
|
+
Mg = "Mg"
|
|
709
|
+
Al = "Al"
|
|
710
|
+
Si = "Si"
|
|
711
|
+
P = "P"
|
|
712
|
+
S = "S"
|
|
713
|
+
Cl = "Cl"
|
|
714
|
+
Ar = "Ar"
|
|
715
|
+
K = "K"
|
|
716
|
+
Ca = "Ca"
|
|
717
|
+
Sc = "Sc"
|
|
718
|
+
Ti = "Ti"
|
|
719
|
+
V = "V"
|
|
720
|
+
Cr = "Cr"
|
|
721
|
+
Mn = "Mn"
|
|
722
|
+
Fe = "Fe"
|
|
723
|
+
Co = "Co"
|
|
724
|
+
Ni = "Ni"
|
|
725
|
+
Cu = "Cu"
|
|
726
|
+
Zn = "Zn"
|
|
727
|
+
Ga = "Ga"
|
|
728
|
+
Ge = "Ge"
|
|
729
|
+
As = "As"
|
|
730
|
+
Se = "Se"
|
|
731
|
+
Br = "Br"
|
|
732
|
+
Kr = "Kr"
|
|
733
|
+
Rb = "Rb"
|
|
734
|
+
Sr = "Sr"
|
|
735
|
+
Y = "Y"
|
|
736
|
+
Zr = "Zr"
|
|
737
|
+
Nb = "Nb"
|
|
738
|
+
Mo = "Mo"
|
|
739
|
+
Tc = "Tc"
|
|
740
|
+
Ru = "Ru"
|
|
741
|
+
Rh = "Rh"
|
|
742
|
+
Pd = "Pd"
|
|
743
|
+
Ag = "Ag"
|
|
744
|
+
Cd = "Cd"
|
|
745
|
+
In = "In"
|
|
746
|
+
Sn = "Sn"
|
|
747
|
+
Sb = "Sb"
|
|
748
|
+
Te = "Te"
|
|
749
|
+
I = "I"
|
|
750
|
+
Xe = "Xe"
|
|
751
|
+
Cs = "Cs"
|
|
752
|
+
Ba = "Ba"
|
|
753
|
+
La = "La"
|
|
754
|
+
Ce = "Ce"
|
|
755
|
+
Pr = "Pr"
|
|
756
|
+
Nd = "Nd"
|
|
757
|
+
Pm = "Pm"
|
|
758
|
+
Sm = "Sm"
|
|
759
|
+
Eu = "Eu"
|
|
760
|
+
Gd = "Gd"
|
|
761
|
+
Tb = "Tb"
|
|
762
|
+
Dy = "Dy"
|
|
763
|
+
Ho = "Ho"
|
|
764
|
+
Er = "Er"
|
|
765
|
+
Tm = "Tm"
|
|
766
|
+
Yb = "Yb"
|
|
767
|
+
Lu = "Lu"
|
|
768
|
+
Hf = "Hf"
|
|
769
|
+
Ta = "Ta"
|
|
770
|
+
W = "W"
|
|
771
|
+
Re = "Re"
|
|
772
|
+
Os = "Os"
|
|
773
|
+
Ir = "Ir"
|
|
774
|
+
Pt = "Pt"
|
|
775
|
+
Au = "Au"
|
|
776
|
+
Hg = "Hg"
|
|
777
|
+
Tl = "Tl"
|
|
778
|
+
Pb = "Pb"
|
|
779
|
+
Bi = "Bi"
|
|
780
|
+
Po = "Po"
|
|
781
|
+
At = "At"
|
|
782
|
+
Rn = "Rn"
|
|
783
|
+
Fr = "Fr"
|
|
784
|
+
Ra = "Ra"
|
|
785
|
+
Ac = "Ac"
|
|
786
|
+
Th = "Th"
|
|
787
|
+
Pa = "Pa"
|
|
788
|
+
U = "U"
|
|
789
|
+
Np = "Np"
|
|
790
|
+
Pu = "Pu"
|
|
791
|
+
Am = "Am"
|
|
792
|
+
Cm = "Cm"
|
|
793
|
+
Bk = "Bk"
|
|
794
|
+
Cf = "Cf"
|
|
795
|
+
Es = "Es"
|
|
796
|
+
Fm = "Fm"
|
|
797
|
+
Md = "Md"
|
|
798
|
+
No = "No"
|
|
799
|
+
Lr = "Lr"
|
|
800
|
+
Rf = "Rf"
|
|
801
|
+
Db = "Db"
|
|
802
|
+
Sg = "Sg"
|
|
803
|
+
Bh = "Bh"
|
|
804
|
+
Hs = "Hs"
|
|
805
|
+
Mt = "Mt"
|
|
806
|
+
Ds = "Ds"
|
|
807
|
+
Rg = "Rg"
|
|
808
|
+
Cn = "Cn"
|
|
809
|
+
Nh = "Nh"
|
|
810
|
+
Fl = "Fl"
|
|
811
|
+
Mc = "Mc"
|
|
812
|
+
Lv = "Lv"
|
|
813
|
+
Ts = "Ts"
|
|
814
|
+
Og = "Og"
|
|
815
|
+
|
|
816
|
+
|
|
817
|
+
class Value69(Enum):
|
|
818
|
+
X = "X"
|
|
819
|
+
Vac = "Vac"
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
class AtomicElementSchema33(BaseModel):
|
|
823
|
+
value: Union[Value68, Value69]
|
|
824
|
+
"""
|
|
825
|
+
All elements, including extra elements
|
|
826
|
+
"""
|
|
827
|
+
id: int
|
|
828
|
+
"""
|
|
829
|
+
integer id of this entry
|
|
830
|
+
"""
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
class BasisSchema31(BaseModel):
|
|
834
|
+
elements: List[AtomicElementSchema33] = Field(..., title="atomic elements schema")
|
|
835
|
+
"""
|
|
836
|
+
atomic elements schema
|
|
837
|
+
"""
|
|
838
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
839
|
+
"""
|
|
840
|
+
atomic coordinates schema
|
|
841
|
+
"""
|
|
842
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
843
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
844
|
+
"""
|
|
845
|
+
atomic labels schema
|
|
846
|
+
"""
|
|
847
|
+
|
|
848
|
+
|
|
849
|
+
class LatticeVectorsSchema30(BaseModel):
|
|
850
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
851
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
852
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
853
|
+
alat: Optional[float] = 1
|
|
854
|
+
"""
|
|
855
|
+
lattice parameter for fractional coordinates
|
|
856
|
+
"""
|
|
857
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
858
|
+
|
|
859
|
+
|
|
860
|
+
class LatticeUnitsSchema30(BaseModel):
|
|
861
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
862
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
863
|
+
|
|
864
|
+
|
|
865
|
+
class LatticeSchema30(BaseModel):
|
|
866
|
+
a: float
|
|
867
|
+
"""
|
|
868
|
+
length of the first lattice vector
|
|
869
|
+
"""
|
|
870
|
+
b: float
|
|
871
|
+
"""
|
|
872
|
+
length of the second lattice vector
|
|
873
|
+
"""
|
|
874
|
+
c: float
|
|
875
|
+
"""
|
|
876
|
+
length of the third lattice vector
|
|
877
|
+
"""
|
|
878
|
+
alpha: float
|
|
879
|
+
"""
|
|
880
|
+
angle between first and second lattice vector
|
|
881
|
+
"""
|
|
882
|
+
beta: float
|
|
883
|
+
"""
|
|
884
|
+
angle between second and third lattice vector
|
|
885
|
+
"""
|
|
886
|
+
gamma: float
|
|
887
|
+
"""
|
|
888
|
+
angle between first and third lattice vector
|
|
889
|
+
"""
|
|
890
|
+
vectors: Optional[LatticeVectorsSchema30] = Field(None, title="lattice vectors schema")
|
|
891
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
892
|
+
units: Optional[LatticeUnitsSchema30] = Field(
|
|
893
|
+
default_factory=lambda: LatticeUnitsSchema30.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
894
|
+
title="Lattice units schema",
|
|
895
|
+
)
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
class Name247(Enum):
|
|
899
|
+
volume = "volume"
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
class Units99(Enum):
|
|
903
|
+
angstrom_3 = "angstrom^3"
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
class VolumeSchema30(BaseModel):
|
|
907
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
908
|
+
units: Optional[Units99] = None
|
|
909
|
+
value: float
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
class Name248(Enum):
|
|
913
|
+
density = "density"
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
class Units100(Enum):
|
|
917
|
+
g_cm_3 = "g/cm^3"
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
class DensitySchema30(BaseModel):
|
|
921
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
922
|
+
units: Optional[Units100] = None
|
|
923
|
+
value: float
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
class Units101(Enum):
|
|
927
|
+
angstrom = "angstrom"
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
class ScalarSchema31(BaseModel):
|
|
931
|
+
units: Optional[Units101] = None
|
|
932
|
+
value: float
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
class Name249(Enum):
|
|
936
|
+
symmetry = "symmetry"
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
class SymmetrySchema30(BaseModel):
|
|
940
|
+
pointGroupSymbol: Optional[str] = None
|
|
941
|
+
"""
|
|
942
|
+
point group symbol in Schoenflies notation
|
|
943
|
+
"""
|
|
944
|
+
spaceGroupSymbol: Optional[str] = None
|
|
945
|
+
"""
|
|
946
|
+
space group symbol in Hermann–Mauguin notation
|
|
947
|
+
"""
|
|
948
|
+
tolerance: Optional[ScalarSchema31] = Field(None, title="scalar schema")
|
|
949
|
+
"""
|
|
950
|
+
tolerance used for symmetry calculation
|
|
951
|
+
"""
|
|
952
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
953
|
+
|
|
954
|
+
|
|
955
|
+
class Name250(Enum):
|
|
956
|
+
elemental_ratio = "elemental_ratio"
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
class ElementalRatio30(BaseModel):
|
|
960
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
961
|
+
value: confloat(ge=0.0, le=1.0)
|
|
962
|
+
element: Optional[str] = None
|
|
963
|
+
"""
|
|
964
|
+
the element this ratio is for
|
|
965
|
+
"""
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
class Name251(Enum):
|
|
969
|
+
p_norm = "p-norm"
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
class PNorm30(BaseModel):
|
|
973
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
974
|
+
degree: Optional[int] = None
|
|
975
|
+
"""
|
|
976
|
+
degree of the dimensionality of the norm
|
|
977
|
+
"""
|
|
978
|
+
value: float
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
class Name252(Enum):
|
|
982
|
+
inchi = "inchi"
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
class InChIRepresentationSchema30(BaseModel):
|
|
986
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
987
|
+
value: str
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
class Name253(Enum):
|
|
991
|
+
inchi_key = "inchi_key"
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
class InChIKeyRepresentationSchema30(BaseModel):
|
|
995
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
996
|
+
value: str
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
class DerivedPropertiesSchema30(
|
|
1000
|
+
RootModel[
|
|
1001
|
+
Union[
|
|
1002
|
+
VolumeSchema30,
|
|
1003
|
+
DensitySchema30,
|
|
1004
|
+
SymmetrySchema30,
|
|
1005
|
+
ElementalRatio30,
|
|
1006
|
+
PNorm30,
|
|
1007
|
+
InChIRepresentationSchema30,
|
|
1008
|
+
InChIKeyRepresentationSchema30,
|
|
1009
|
+
]
|
|
1010
|
+
]
|
|
1011
|
+
):
|
|
1012
|
+
root: Union[
|
|
1013
|
+
VolumeSchema30,
|
|
1014
|
+
DensitySchema30,
|
|
1015
|
+
SymmetrySchema30,
|
|
1016
|
+
ElementalRatio30,
|
|
1017
|
+
PNorm30,
|
|
1018
|
+
InChIRepresentationSchema30,
|
|
1019
|
+
InChIKeyRepresentationSchema30,
|
|
1020
|
+
] = Field(..., discriminator="name")
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
class Name254(Enum):
|
|
1024
|
+
default = "default"
|
|
1025
|
+
atomsTooClose = "atomsTooClose"
|
|
1026
|
+
atomsOverlap = "atomsOverlap"
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
class MaterialConsistencyCheckSchema30(BaseModel):
|
|
1030
|
+
name: Name254
|
|
1031
|
+
"""
|
|
1032
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
1033
|
+
"""
|
|
1034
|
+
key: str
|
|
1035
|
+
"""
|
|
1036
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
1037
|
+
"""
|
|
1038
|
+
severity: Severity
|
|
1039
|
+
"""
|
|
1040
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
1041
|
+
"""
|
|
1042
|
+
message: str
|
|
1043
|
+
"""
|
|
1044
|
+
Message generated by the consistency check describing the problem.
|
|
1045
|
+
"""
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
class CrystalSchema30(BaseModel):
|
|
1049
|
+
formula: Optional[str] = None
|
|
1050
|
+
"""
|
|
1051
|
+
reduced chemical formula
|
|
1052
|
+
"""
|
|
1053
|
+
unitCellFormula: Optional[str] = None
|
|
1054
|
+
"""
|
|
1055
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
1056
|
+
"""
|
|
1057
|
+
basis: BasisSchema31 = Field(..., title="basis schema")
|
|
1058
|
+
lattice: LatticeSchema30 = Field(..., title="lattice schema")
|
|
1059
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema30]] = Field(None, title="derived properties schema")
|
|
1060
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
1061
|
+
"""
|
|
1062
|
+
information about a database source
|
|
1063
|
+
"""
|
|
1064
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
1065
|
+
"""
|
|
1066
|
+
file source with the information inside
|
|
1067
|
+
"""
|
|
1068
|
+
scaledHash: Optional[str] = None
|
|
1069
|
+
"""
|
|
1070
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
1071
|
+
"""
|
|
1072
|
+
icsdId: Optional[int] = None
|
|
1073
|
+
"""
|
|
1074
|
+
Corresponding ICSD id of the material
|
|
1075
|
+
"""
|
|
1076
|
+
isNonPeriodic: Optional[bool] = None
|
|
1077
|
+
"""
|
|
1078
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
1079
|
+
"""
|
|
1080
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema30]] = None
|
|
1081
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
1082
|
+
"""
|
|
1083
|
+
entity identity
|
|
1084
|
+
"""
|
|
1085
|
+
slug: Optional[str] = None
|
|
1086
|
+
"""
|
|
1087
|
+
entity slug
|
|
1088
|
+
"""
|
|
1089
|
+
systemName: Optional[str] = None
|
|
1090
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
1091
|
+
"""
|
|
1092
|
+
entity's schema version. Used to distinct between different schemas.
|
|
1093
|
+
"""
|
|
1094
|
+
name: Optional[str] = None
|
|
1095
|
+
"""
|
|
1096
|
+
entity name
|
|
1097
|
+
"""
|
|
1098
|
+
isDefault: Optional[bool] = False
|
|
1099
|
+
"""
|
|
1100
|
+
Identifies that entity is defaultable
|
|
1101
|
+
"""
|
|
1102
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
1103
|
+
|
|
1104
|
+
|
|
1105
|
+
class VacuumConfigurationSchema(BaseModel):
|
|
1106
|
+
direction: AxisEnum = Field(..., title="Axis Enum")
|
|
1107
|
+
"""
|
|
1108
|
+
Enum for axis types
|
|
1109
|
+
"""
|
|
1110
|
+
size: Optional[confloat(ge=0.0)] = 10
|
|
1111
|
+
"""
|
|
1112
|
+
Size of the vacuum slab in angstroms
|
|
1113
|
+
"""
|
|
1114
|
+
crystal: CrystalSchema30 = Field(..., title="Crystal Schema")
|
|
1115
|
+
"""
|
|
1116
|
+
A crystal structure, referencing the base material schema
|
|
1117
|
+
"""
|
|
1118
|
+
|
|
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
|
+
|
|
1128
|
+
class SlabConfigurationSchema(BaseModel):
|
|
1129
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field(
|
|
1130
|
+
..., max_length=2, min_length=2
|
|
1131
|
+
)
|
|
1132
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
1133
|
+
"""
|
|
1134
|
+
Enum for axis types
|
|
1135
|
+
"""
|
|
1136
|
+
gaps: Optional[List[ObjectWithId]] = None
|
|
1137
|
+
"""
|
|
1138
|
+
Gap distances between stack components as an array of objects with id and value
|
|
1139
|
+
"""
|
|
1140
|
+
|
|
1141
|
+
|
|
1142
|
+
class SupercellMatrix2DSchemaItem(RootModel[List[int]]):
|
|
1143
|
+
root: List[int]
|
|
1144
|
+
|
|
1145
|
+
|
|
1146
|
+
class ArrayOf3NumberElementsSchema(RootModel[List[float]]):
|
|
1147
|
+
root: List[float] = Field(..., title="array of 3 number elements schema")
|
|
1148
|
+
|
|
1149
|
+
|
|
1150
|
+
class TerminationSchema13(BaseModel):
|
|
1151
|
+
chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
|
|
1152
|
+
..., title="Chemical Elements"
|
|
1153
|
+
)
|
|
1154
|
+
"""
|
|
1155
|
+
Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
|
|
1156
|
+
"""
|
|
1157
|
+
space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
|
|
1158
|
+
"""
|
|
1159
|
+
Space group symmetry designation for the termination
|
|
1160
|
+
"""
|
|
1161
|
+
|
|
1162
|
+
|
|
1163
|
+
class Value70(Enum):
|
|
1164
|
+
H = "H"
|
|
1165
|
+
He = "He"
|
|
1166
|
+
Li = "Li"
|
|
1167
|
+
Be = "Be"
|
|
1168
|
+
B = "B"
|
|
1169
|
+
C = "C"
|
|
1170
|
+
N = "N"
|
|
1171
|
+
O = "O"
|
|
1172
|
+
F = "F"
|
|
1173
|
+
Ne = "Ne"
|
|
1174
|
+
Na = "Na"
|
|
1175
|
+
Mg = "Mg"
|
|
1176
|
+
Al = "Al"
|
|
1177
|
+
Si = "Si"
|
|
1178
|
+
P = "P"
|
|
1179
|
+
S = "S"
|
|
1180
|
+
Cl = "Cl"
|
|
1181
|
+
Ar = "Ar"
|
|
1182
|
+
K = "K"
|
|
1183
|
+
Ca = "Ca"
|
|
1184
|
+
Sc = "Sc"
|
|
1185
|
+
Ti = "Ti"
|
|
1186
|
+
V = "V"
|
|
1187
|
+
Cr = "Cr"
|
|
1188
|
+
Mn = "Mn"
|
|
1189
|
+
Fe = "Fe"
|
|
1190
|
+
Co = "Co"
|
|
1191
|
+
Ni = "Ni"
|
|
1192
|
+
Cu = "Cu"
|
|
1193
|
+
Zn = "Zn"
|
|
1194
|
+
Ga = "Ga"
|
|
1195
|
+
Ge = "Ge"
|
|
1196
|
+
As = "As"
|
|
1197
|
+
Se = "Se"
|
|
1198
|
+
Br = "Br"
|
|
1199
|
+
Kr = "Kr"
|
|
1200
|
+
Rb = "Rb"
|
|
1201
|
+
Sr = "Sr"
|
|
1202
|
+
Y = "Y"
|
|
1203
|
+
Zr = "Zr"
|
|
1204
|
+
Nb = "Nb"
|
|
1205
|
+
Mo = "Mo"
|
|
1206
|
+
Tc = "Tc"
|
|
1207
|
+
Ru = "Ru"
|
|
1208
|
+
Rh = "Rh"
|
|
1209
|
+
Pd = "Pd"
|
|
1210
|
+
Ag = "Ag"
|
|
1211
|
+
Cd = "Cd"
|
|
1212
|
+
In = "In"
|
|
1213
|
+
Sn = "Sn"
|
|
1214
|
+
Sb = "Sb"
|
|
1215
|
+
Te = "Te"
|
|
1216
|
+
I = "I"
|
|
1217
|
+
Xe = "Xe"
|
|
1218
|
+
Cs = "Cs"
|
|
1219
|
+
Ba = "Ba"
|
|
1220
|
+
La = "La"
|
|
1221
|
+
Ce = "Ce"
|
|
1222
|
+
Pr = "Pr"
|
|
1223
|
+
Nd = "Nd"
|
|
1224
|
+
Pm = "Pm"
|
|
1225
|
+
Sm = "Sm"
|
|
1226
|
+
Eu = "Eu"
|
|
1227
|
+
Gd = "Gd"
|
|
1228
|
+
Tb = "Tb"
|
|
1229
|
+
Dy = "Dy"
|
|
1230
|
+
Ho = "Ho"
|
|
1231
|
+
Er = "Er"
|
|
1232
|
+
Tm = "Tm"
|
|
1233
|
+
Yb = "Yb"
|
|
1234
|
+
Lu = "Lu"
|
|
1235
|
+
Hf = "Hf"
|
|
1236
|
+
Ta = "Ta"
|
|
1237
|
+
W = "W"
|
|
1238
|
+
Re = "Re"
|
|
1239
|
+
Os = "Os"
|
|
1240
|
+
Ir = "Ir"
|
|
1241
|
+
Pt = "Pt"
|
|
1242
|
+
Au = "Au"
|
|
1243
|
+
Hg = "Hg"
|
|
1244
|
+
Tl = "Tl"
|
|
1245
|
+
Pb = "Pb"
|
|
1246
|
+
Bi = "Bi"
|
|
1247
|
+
Po = "Po"
|
|
1248
|
+
At = "At"
|
|
1249
|
+
Rn = "Rn"
|
|
1250
|
+
Fr = "Fr"
|
|
1251
|
+
Ra = "Ra"
|
|
1252
|
+
Ac = "Ac"
|
|
1253
|
+
Th = "Th"
|
|
1254
|
+
Pa = "Pa"
|
|
1255
|
+
U = "U"
|
|
1256
|
+
Np = "Np"
|
|
1257
|
+
Pu = "Pu"
|
|
1258
|
+
Am = "Am"
|
|
1259
|
+
Cm = "Cm"
|
|
1260
|
+
Bk = "Bk"
|
|
1261
|
+
Cf = "Cf"
|
|
1262
|
+
Es = "Es"
|
|
1263
|
+
Fm = "Fm"
|
|
1264
|
+
Md = "Md"
|
|
1265
|
+
No = "No"
|
|
1266
|
+
Lr = "Lr"
|
|
1267
|
+
Rf = "Rf"
|
|
1268
|
+
Db = "Db"
|
|
1269
|
+
Sg = "Sg"
|
|
1270
|
+
Bh = "Bh"
|
|
1271
|
+
Hs = "Hs"
|
|
1272
|
+
Mt = "Mt"
|
|
1273
|
+
Ds = "Ds"
|
|
1274
|
+
Rg = "Rg"
|
|
1275
|
+
Cn = "Cn"
|
|
1276
|
+
Nh = "Nh"
|
|
1277
|
+
Fl = "Fl"
|
|
1278
|
+
Mc = "Mc"
|
|
1279
|
+
Lv = "Lv"
|
|
1280
|
+
Ts = "Ts"
|
|
1281
|
+
Og = "Og"
|
|
1282
|
+
|
|
1283
|
+
|
|
1284
|
+
class Value71(Enum):
|
|
1285
|
+
X = "X"
|
|
1286
|
+
Vac = "Vac"
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
class AtomicElementSchema34(BaseModel):
|
|
1290
|
+
value: Union[Value70, Value71]
|
|
1291
|
+
"""
|
|
1292
|
+
All elements, including extra elements
|
|
1293
|
+
"""
|
|
1294
|
+
id: int
|
|
1295
|
+
"""
|
|
1296
|
+
integer id of this entry
|
|
1297
|
+
"""
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
class BasisSchema32(BaseModel):
|
|
1301
|
+
elements: List[AtomicElementSchema34] = Field(..., title="atomic elements schema")
|
|
1302
|
+
"""
|
|
1303
|
+
atomic elements schema
|
|
1304
|
+
"""
|
|
1305
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
1306
|
+
"""
|
|
1307
|
+
atomic coordinates schema
|
|
1308
|
+
"""
|
|
1309
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
1310
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
1311
|
+
"""
|
|
1312
|
+
atomic labels schema
|
|
1313
|
+
"""
|
|
1314
|
+
|
|
1315
|
+
|
|
1316
|
+
class LatticeVectorsSchema31(BaseModel):
|
|
1317
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1318
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1319
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1320
|
+
alat: Optional[float] = 1
|
|
1321
|
+
"""
|
|
1322
|
+
lattice parameter for fractional coordinates
|
|
1323
|
+
"""
|
|
1324
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
1325
|
+
|
|
1326
|
+
|
|
1327
|
+
class LatticeUnitsSchema31(BaseModel):
|
|
1328
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
1329
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
1330
|
+
|
|
1331
|
+
|
|
1332
|
+
class LatticeSchema31(BaseModel):
|
|
1333
|
+
a: float
|
|
1334
|
+
"""
|
|
1335
|
+
length of the first lattice vector
|
|
1336
|
+
"""
|
|
1337
|
+
b: float
|
|
1338
|
+
"""
|
|
1339
|
+
length of the second lattice vector
|
|
1340
|
+
"""
|
|
1341
|
+
c: float
|
|
1342
|
+
"""
|
|
1343
|
+
length of the third lattice vector
|
|
1344
|
+
"""
|
|
1345
|
+
alpha: float
|
|
1346
|
+
"""
|
|
1347
|
+
angle between first and second lattice vector
|
|
1348
|
+
"""
|
|
1349
|
+
beta: float
|
|
1350
|
+
"""
|
|
1351
|
+
angle between second and third lattice vector
|
|
1352
|
+
"""
|
|
1353
|
+
gamma: float
|
|
1354
|
+
"""
|
|
1355
|
+
angle between first and third lattice vector
|
|
1356
|
+
"""
|
|
1357
|
+
vectors: Optional[LatticeVectorsSchema31] = Field(None, title="lattice vectors schema")
|
|
1358
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1359
|
+
units: Optional[LatticeUnitsSchema31] = Field(
|
|
1360
|
+
default_factory=lambda: LatticeUnitsSchema31.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1361
|
+
title="Lattice units schema",
|
|
1362
|
+
)
|
|
1363
|
+
|
|
1364
|
+
|
|
1365
|
+
class Name255(Enum):
|
|
1366
|
+
volume = "volume"
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
class Units102(Enum):
|
|
1370
|
+
angstrom_3 = "angstrom^3"
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
class VolumeSchema31(BaseModel):
|
|
1374
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1375
|
+
units: Optional[Units102] = None
|
|
1376
|
+
value: float
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
class Name256(Enum):
|
|
1380
|
+
density = "density"
|
|
1381
|
+
|
|
1382
|
+
|
|
1383
|
+
class Units103(Enum):
|
|
1384
|
+
g_cm_3 = "g/cm^3"
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
class DensitySchema31(BaseModel):
|
|
1388
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1389
|
+
units: Optional[Units103] = None
|
|
1390
|
+
value: float
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
class Units104(Enum):
|
|
1394
|
+
angstrom = "angstrom"
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
class ScalarSchema32(BaseModel):
|
|
1398
|
+
units: Optional[Units104] = None
|
|
1399
|
+
value: float
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
class Name257(Enum):
|
|
1403
|
+
symmetry = "symmetry"
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
class SymmetrySchema31(BaseModel):
|
|
1407
|
+
pointGroupSymbol: Optional[str] = None
|
|
1408
|
+
"""
|
|
1409
|
+
point group symbol in Schoenflies notation
|
|
1410
|
+
"""
|
|
1411
|
+
spaceGroupSymbol: Optional[str] = None
|
|
1412
|
+
"""
|
|
1413
|
+
space group symbol in Hermann–Mauguin notation
|
|
1414
|
+
"""
|
|
1415
|
+
tolerance: Optional[ScalarSchema32] = Field(None, title="scalar schema")
|
|
1416
|
+
"""
|
|
1417
|
+
tolerance used for symmetry calculation
|
|
1418
|
+
"""
|
|
1419
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
1420
|
+
|
|
1421
|
+
|
|
1422
|
+
class Name258(Enum):
|
|
1423
|
+
elemental_ratio = "elemental_ratio"
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
class ElementalRatio31(BaseModel):
|
|
1427
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
1428
|
+
value: confloat(ge=0.0, le=1.0)
|
|
1429
|
+
element: Optional[str] = None
|
|
1430
|
+
"""
|
|
1431
|
+
the element this ratio is for
|
|
1432
|
+
"""
|
|
1433
|
+
|
|
1434
|
+
|
|
1435
|
+
class Name259(Enum):
|
|
1436
|
+
p_norm = "p-norm"
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
class PNorm31(BaseModel):
|
|
1440
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
1441
|
+
degree: Optional[int] = None
|
|
1442
|
+
"""
|
|
1443
|
+
degree of the dimensionality of the norm
|
|
1444
|
+
"""
|
|
1445
|
+
value: float
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
class Name260(Enum):
|
|
1449
|
+
inchi = "inchi"
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
class InChIRepresentationSchema31(BaseModel):
|
|
1453
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1454
|
+
value: str
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
class Name261(Enum):
|
|
1458
|
+
inchi_key = "inchi_key"
|
|
1459
|
+
|
|
1460
|
+
|
|
1461
|
+
class InChIKeyRepresentationSchema31(BaseModel):
|
|
1462
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1463
|
+
value: str
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
class DerivedPropertiesSchema31(
|
|
1467
|
+
RootModel[
|
|
1468
|
+
Union[
|
|
1469
|
+
VolumeSchema31,
|
|
1470
|
+
DensitySchema31,
|
|
1471
|
+
SymmetrySchema31,
|
|
1472
|
+
ElementalRatio31,
|
|
1473
|
+
PNorm31,
|
|
1474
|
+
InChIRepresentationSchema31,
|
|
1475
|
+
InChIKeyRepresentationSchema31,
|
|
1476
|
+
]
|
|
1477
|
+
]
|
|
1478
|
+
):
|
|
1479
|
+
root: Union[
|
|
1480
|
+
VolumeSchema31,
|
|
1481
|
+
DensitySchema31,
|
|
1482
|
+
SymmetrySchema31,
|
|
1483
|
+
ElementalRatio31,
|
|
1484
|
+
PNorm31,
|
|
1485
|
+
InChIRepresentationSchema31,
|
|
1486
|
+
InChIKeyRepresentationSchema31,
|
|
1487
|
+
] = Field(..., discriminator="name")
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
class Name262(Enum):
|
|
1491
|
+
default = "default"
|
|
1492
|
+
atomsTooClose = "atomsTooClose"
|
|
1493
|
+
atomsOverlap = "atomsOverlap"
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
class MaterialConsistencyCheckSchema31(BaseModel):
|
|
1497
|
+
name: Name262
|
|
1498
|
+
"""
|
|
1499
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
1500
|
+
"""
|
|
1501
|
+
key: str
|
|
1502
|
+
"""
|
|
1503
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
1504
|
+
"""
|
|
1505
|
+
severity: Severity
|
|
1506
|
+
"""
|
|
1507
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
1508
|
+
"""
|
|
1509
|
+
message: str
|
|
1510
|
+
"""
|
|
1511
|
+
Message generated by the consistency check describing the problem.
|
|
1512
|
+
"""
|
|
1513
|
+
|
|
1514
|
+
|
|
1515
|
+
class CrystalSchema31(BaseModel):
|
|
1516
|
+
formula: Optional[str] = None
|
|
1517
|
+
"""
|
|
1518
|
+
reduced chemical formula
|
|
1519
|
+
"""
|
|
1520
|
+
unitCellFormula: Optional[str] = None
|
|
1521
|
+
"""
|
|
1522
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
1523
|
+
"""
|
|
1524
|
+
basis: BasisSchema32 = Field(..., title="basis schema")
|
|
1525
|
+
lattice: LatticeSchema31 = Field(..., title="lattice schema")
|
|
1526
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema31]] = Field(None, title="derived properties schema")
|
|
1527
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
1528
|
+
"""
|
|
1529
|
+
information about a database source
|
|
1530
|
+
"""
|
|
1531
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
1532
|
+
"""
|
|
1533
|
+
file source with the information inside
|
|
1534
|
+
"""
|
|
1535
|
+
scaledHash: Optional[str] = None
|
|
1536
|
+
"""
|
|
1537
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
1538
|
+
"""
|
|
1539
|
+
icsdId: Optional[int] = None
|
|
1540
|
+
"""
|
|
1541
|
+
Corresponding ICSD id of the material
|
|
1542
|
+
"""
|
|
1543
|
+
isNonPeriodic: Optional[bool] = None
|
|
1544
|
+
"""
|
|
1545
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
1546
|
+
"""
|
|
1547
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema31]] = None
|
|
1548
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
1549
|
+
"""
|
|
1550
|
+
entity identity
|
|
1551
|
+
"""
|
|
1552
|
+
slug: Optional[str] = None
|
|
1553
|
+
"""
|
|
1554
|
+
entity slug
|
|
1555
|
+
"""
|
|
1556
|
+
systemName: Optional[str] = None
|
|
1557
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
1558
|
+
"""
|
|
1559
|
+
entity's schema version. Used to distinct between different schemas.
|
|
1560
|
+
"""
|
|
1561
|
+
name: Optional[str] = None
|
|
1562
|
+
"""
|
|
1563
|
+
entity name
|
|
1564
|
+
"""
|
|
1565
|
+
isDefault: Optional[bool] = False
|
|
1566
|
+
"""
|
|
1567
|
+
Identifies that entity is defaultable
|
|
1568
|
+
"""
|
|
1569
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
1570
|
+
|
|
1571
|
+
|
|
1572
|
+
class AtomicLayersUniqueRepeatedSchema11(BaseModel):
|
|
1573
|
+
termination_top: TerminationSchema13 = Field(..., title="Termination Schema")
|
|
1574
|
+
"""
|
|
1575
|
+
Defines a specific termination of a slab
|
|
1576
|
+
"""
|
|
1577
|
+
number_of_repetitions: conint(ge=1)
|
|
1578
|
+
"""
|
|
1579
|
+
Number of repetitions of the unique atomic layers
|
|
1580
|
+
"""
|
|
1581
|
+
miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
|
|
1582
|
+
"""
|
|
1583
|
+
Miller indices [h, k, l] defining crystallographic planes
|
|
1584
|
+
"""
|
|
1585
|
+
crystal: CrystalSchema31 = Field(..., title="Crystal Schema")
|
|
1586
|
+
"""
|
|
1587
|
+
A crystal structure, referencing the base material schema
|
|
1588
|
+
"""
|
|
1589
|
+
use_conventional_cell: Optional[bool] = True
|
|
1590
|
+
"""
|
|
1591
|
+
Use the conventional cell for the crystal structure
|
|
1592
|
+
"""
|
|
1593
|
+
|
|
1594
|
+
|
|
1595
|
+
class Value72(Enum):
|
|
1596
|
+
H = "H"
|
|
1597
|
+
He = "He"
|
|
1598
|
+
Li = "Li"
|
|
1599
|
+
Be = "Be"
|
|
1600
|
+
B = "B"
|
|
1601
|
+
C = "C"
|
|
1602
|
+
N = "N"
|
|
1603
|
+
O = "O"
|
|
1604
|
+
F = "F"
|
|
1605
|
+
Ne = "Ne"
|
|
1606
|
+
Na = "Na"
|
|
1607
|
+
Mg = "Mg"
|
|
1608
|
+
Al = "Al"
|
|
1609
|
+
Si = "Si"
|
|
1610
|
+
P = "P"
|
|
1611
|
+
S = "S"
|
|
1612
|
+
Cl = "Cl"
|
|
1613
|
+
Ar = "Ar"
|
|
1614
|
+
K = "K"
|
|
1615
|
+
Ca = "Ca"
|
|
1616
|
+
Sc = "Sc"
|
|
1617
|
+
Ti = "Ti"
|
|
1618
|
+
V = "V"
|
|
1619
|
+
Cr = "Cr"
|
|
1620
|
+
Mn = "Mn"
|
|
1621
|
+
Fe = "Fe"
|
|
1622
|
+
Co = "Co"
|
|
1623
|
+
Ni = "Ni"
|
|
1624
|
+
Cu = "Cu"
|
|
1625
|
+
Zn = "Zn"
|
|
1626
|
+
Ga = "Ga"
|
|
1627
|
+
Ge = "Ge"
|
|
1628
|
+
As = "As"
|
|
1629
|
+
Se = "Se"
|
|
1630
|
+
Br = "Br"
|
|
1631
|
+
Kr = "Kr"
|
|
1632
|
+
Rb = "Rb"
|
|
1633
|
+
Sr = "Sr"
|
|
1634
|
+
Y = "Y"
|
|
1635
|
+
Zr = "Zr"
|
|
1636
|
+
Nb = "Nb"
|
|
1637
|
+
Mo = "Mo"
|
|
1638
|
+
Tc = "Tc"
|
|
1639
|
+
Ru = "Ru"
|
|
1640
|
+
Rh = "Rh"
|
|
1641
|
+
Pd = "Pd"
|
|
1642
|
+
Ag = "Ag"
|
|
1643
|
+
Cd = "Cd"
|
|
1644
|
+
In = "In"
|
|
1645
|
+
Sn = "Sn"
|
|
1646
|
+
Sb = "Sb"
|
|
1647
|
+
Te = "Te"
|
|
1648
|
+
I = "I"
|
|
1649
|
+
Xe = "Xe"
|
|
1650
|
+
Cs = "Cs"
|
|
1651
|
+
Ba = "Ba"
|
|
1652
|
+
La = "La"
|
|
1653
|
+
Ce = "Ce"
|
|
1654
|
+
Pr = "Pr"
|
|
1655
|
+
Nd = "Nd"
|
|
1656
|
+
Pm = "Pm"
|
|
1657
|
+
Sm = "Sm"
|
|
1658
|
+
Eu = "Eu"
|
|
1659
|
+
Gd = "Gd"
|
|
1660
|
+
Tb = "Tb"
|
|
1661
|
+
Dy = "Dy"
|
|
1662
|
+
Ho = "Ho"
|
|
1663
|
+
Er = "Er"
|
|
1664
|
+
Tm = "Tm"
|
|
1665
|
+
Yb = "Yb"
|
|
1666
|
+
Lu = "Lu"
|
|
1667
|
+
Hf = "Hf"
|
|
1668
|
+
Ta = "Ta"
|
|
1669
|
+
W = "W"
|
|
1670
|
+
Re = "Re"
|
|
1671
|
+
Os = "Os"
|
|
1672
|
+
Ir = "Ir"
|
|
1673
|
+
Pt = "Pt"
|
|
1674
|
+
Au = "Au"
|
|
1675
|
+
Hg = "Hg"
|
|
1676
|
+
Tl = "Tl"
|
|
1677
|
+
Pb = "Pb"
|
|
1678
|
+
Bi = "Bi"
|
|
1679
|
+
Po = "Po"
|
|
1680
|
+
At = "At"
|
|
1681
|
+
Rn = "Rn"
|
|
1682
|
+
Fr = "Fr"
|
|
1683
|
+
Ra = "Ra"
|
|
1684
|
+
Ac = "Ac"
|
|
1685
|
+
Th = "Th"
|
|
1686
|
+
Pa = "Pa"
|
|
1687
|
+
U = "U"
|
|
1688
|
+
Np = "Np"
|
|
1689
|
+
Pu = "Pu"
|
|
1690
|
+
Am = "Am"
|
|
1691
|
+
Cm = "Cm"
|
|
1692
|
+
Bk = "Bk"
|
|
1693
|
+
Cf = "Cf"
|
|
1694
|
+
Es = "Es"
|
|
1695
|
+
Fm = "Fm"
|
|
1696
|
+
Md = "Md"
|
|
1697
|
+
No = "No"
|
|
1698
|
+
Lr = "Lr"
|
|
1699
|
+
Rf = "Rf"
|
|
1700
|
+
Db = "Db"
|
|
1701
|
+
Sg = "Sg"
|
|
1702
|
+
Bh = "Bh"
|
|
1703
|
+
Hs = "Hs"
|
|
1704
|
+
Mt = "Mt"
|
|
1705
|
+
Ds = "Ds"
|
|
1706
|
+
Rg = "Rg"
|
|
1707
|
+
Cn = "Cn"
|
|
1708
|
+
Nh = "Nh"
|
|
1709
|
+
Fl = "Fl"
|
|
1710
|
+
Mc = "Mc"
|
|
1711
|
+
Lv = "Lv"
|
|
1712
|
+
Ts = "Ts"
|
|
1713
|
+
Og = "Og"
|
|
1714
|
+
|
|
1715
|
+
|
|
1716
|
+
class Value73(Enum):
|
|
1717
|
+
X = "X"
|
|
1718
|
+
Vac = "Vac"
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
class AtomicElementSchema35(BaseModel):
|
|
1722
|
+
value: Union[Value72, Value73]
|
|
1723
|
+
"""
|
|
1724
|
+
All elements, including extra elements
|
|
1725
|
+
"""
|
|
1726
|
+
id: int
|
|
1727
|
+
"""
|
|
1728
|
+
integer id of this entry
|
|
1729
|
+
"""
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
class BasisSchema33(BaseModel):
|
|
1733
|
+
elements: List[AtomicElementSchema35] = Field(..., title="atomic elements schema")
|
|
1734
|
+
"""
|
|
1735
|
+
atomic elements schema
|
|
1736
|
+
"""
|
|
1737
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
1738
|
+
"""
|
|
1739
|
+
atomic coordinates schema
|
|
1740
|
+
"""
|
|
1741
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
1742
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
1743
|
+
"""
|
|
1744
|
+
atomic labels schema
|
|
1745
|
+
"""
|
|
1746
|
+
|
|
1747
|
+
|
|
1748
|
+
class LatticeVectorsSchema32(BaseModel):
|
|
1749
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1750
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1751
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1752
|
+
alat: Optional[float] = 1
|
|
1753
|
+
"""
|
|
1754
|
+
lattice parameter for fractional coordinates
|
|
1755
|
+
"""
|
|
1756
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
1757
|
+
|
|
1758
|
+
|
|
1759
|
+
class LatticeUnitsSchema32(BaseModel):
|
|
1760
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
1761
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
1762
|
+
|
|
1763
|
+
|
|
1764
|
+
class LatticeSchema32(BaseModel):
|
|
1765
|
+
a: float
|
|
1766
|
+
"""
|
|
1767
|
+
length of the first lattice vector
|
|
1768
|
+
"""
|
|
1769
|
+
b: float
|
|
1770
|
+
"""
|
|
1771
|
+
length of the second lattice vector
|
|
1772
|
+
"""
|
|
1773
|
+
c: float
|
|
1774
|
+
"""
|
|
1775
|
+
length of the third lattice vector
|
|
1776
|
+
"""
|
|
1777
|
+
alpha: float
|
|
1778
|
+
"""
|
|
1779
|
+
angle between first and second lattice vector
|
|
1780
|
+
"""
|
|
1781
|
+
beta: float
|
|
1782
|
+
"""
|
|
1783
|
+
angle between second and third lattice vector
|
|
1784
|
+
"""
|
|
1785
|
+
gamma: float
|
|
1786
|
+
"""
|
|
1787
|
+
angle between first and third lattice vector
|
|
1788
|
+
"""
|
|
1789
|
+
vectors: Optional[LatticeVectorsSchema32] = Field(None, title="lattice vectors schema")
|
|
1790
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1791
|
+
units: Optional[LatticeUnitsSchema32] = Field(
|
|
1792
|
+
default_factory=lambda: LatticeUnitsSchema32.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1793
|
+
title="Lattice units schema",
|
|
1794
|
+
)
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
class Name263(Enum):
|
|
1798
|
+
volume = "volume"
|
|
1799
|
+
|
|
1800
|
+
|
|
1801
|
+
class Units105(Enum):
|
|
1802
|
+
angstrom_3 = "angstrom^3"
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
class VolumeSchema32(BaseModel):
|
|
1806
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1807
|
+
units: Optional[Units105] = None
|
|
1808
|
+
value: float
|
|
1809
|
+
|
|
1810
|
+
|
|
1811
|
+
class Name264(Enum):
|
|
1812
|
+
density = "density"
|
|
1813
|
+
|
|
1814
|
+
|
|
1815
|
+
class Units106(Enum):
|
|
1816
|
+
g_cm_3 = "g/cm^3"
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
class DensitySchema32(BaseModel):
|
|
1820
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1821
|
+
units: Optional[Units106] = None
|
|
1822
|
+
value: float
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
class Units107(Enum):
|
|
1826
|
+
angstrom = "angstrom"
|
|
1827
|
+
|
|
1828
|
+
|
|
1829
|
+
class ScalarSchema33(BaseModel):
|
|
1830
|
+
units: Optional[Units107] = None
|
|
1831
|
+
value: float
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
class Name265(Enum):
|
|
1835
|
+
symmetry = "symmetry"
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
class SymmetrySchema32(BaseModel):
|
|
1839
|
+
pointGroupSymbol: Optional[str] = None
|
|
1840
|
+
"""
|
|
1841
|
+
point group symbol in Schoenflies notation
|
|
1842
|
+
"""
|
|
1843
|
+
spaceGroupSymbol: Optional[str] = None
|
|
1844
|
+
"""
|
|
1845
|
+
space group symbol in Hermann–Mauguin notation
|
|
1846
|
+
"""
|
|
1847
|
+
tolerance: Optional[ScalarSchema33] = Field(None, title="scalar schema")
|
|
1848
|
+
"""
|
|
1849
|
+
tolerance used for symmetry calculation
|
|
1850
|
+
"""
|
|
1851
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
1852
|
+
|
|
1853
|
+
|
|
1854
|
+
class Name266(Enum):
|
|
1855
|
+
elemental_ratio = "elemental_ratio"
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
class ElementalRatio32(BaseModel):
|
|
1859
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
1860
|
+
value: confloat(ge=0.0, le=1.0)
|
|
1861
|
+
element: Optional[str] = None
|
|
1862
|
+
"""
|
|
1863
|
+
the element this ratio is for
|
|
1864
|
+
"""
|
|
1865
|
+
|
|
1866
|
+
|
|
1867
|
+
class Name267(Enum):
|
|
1868
|
+
p_norm = "p-norm"
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
class PNorm32(BaseModel):
|
|
1872
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
1873
|
+
degree: Optional[int] = None
|
|
1874
|
+
"""
|
|
1875
|
+
degree of the dimensionality of the norm
|
|
1876
|
+
"""
|
|
1877
|
+
value: float
|
|
1878
|
+
|
|
1879
|
+
|
|
1880
|
+
class Name268(Enum):
|
|
1881
|
+
inchi = "inchi"
|
|
1882
|
+
|
|
1883
|
+
|
|
1884
|
+
class InChIRepresentationSchema32(BaseModel):
|
|
1885
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1886
|
+
value: str
|
|
1887
|
+
|
|
1888
|
+
|
|
1889
|
+
class Name269(Enum):
|
|
1890
|
+
inchi_key = "inchi_key"
|
|
1891
|
+
|
|
1892
|
+
|
|
1893
|
+
class InChIKeyRepresentationSchema32(BaseModel):
|
|
1894
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1895
|
+
value: str
|
|
1896
|
+
|
|
1897
|
+
|
|
1898
|
+
class DerivedPropertiesSchema32(
|
|
1899
|
+
RootModel[
|
|
1900
|
+
Union[
|
|
1901
|
+
VolumeSchema32,
|
|
1902
|
+
DensitySchema32,
|
|
1903
|
+
SymmetrySchema32,
|
|
1904
|
+
ElementalRatio32,
|
|
1905
|
+
PNorm32,
|
|
1906
|
+
InChIRepresentationSchema32,
|
|
1907
|
+
InChIKeyRepresentationSchema32,
|
|
1908
|
+
]
|
|
1909
|
+
]
|
|
1910
|
+
):
|
|
1911
|
+
root: Union[
|
|
1912
|
+
VolumeSchema32,
|
|
1913
|
+
DensitySchema32,
|
|
1914
|
+
SymmetrySchema32,
|
|
1915
|
+
ElementalRatio32,
|
|
1916
|
+
PNorm32,
|
|
1917
|
+
InChIRepresentationSchema32,
|
|
1918
|
+
InChIKeyRepresentationSchema32,
|
|
1919
|
+
] = Field(..., discriminator="name")
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
class Name270(Enum):
|
|
1923
|
+
default = "default"
|
|
1924
|
+
atomsTooClose = "atomsTooClose"
|
|
1925
|
+
atomsOverlap = "atomsOverlap"
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
class MaterialConsistencyCheckSchema32(BaseModel):
|
|
1929
|
+
name: Name270
|
|
1930
|
+
"""
|
|
1931
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
1932
|
+
"""
|
|
1933
|
+
key: str
|
|
1934
|
+
"""
|
|
1935
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
1936
|
+
"""
|
|
1937
|
+
severity: Severity
|
|
1938
|
+
"""
|
|
1939
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
1940
|
+
"""
|
|
1941
|
+
message: str
|
|
1942
|
+
"""
|
|
1943
|
+
Message generated by the consistency check describing the problem.
|
|
1944
|
+
"""
|
|
1945
|
+
|
|
1946
|
+
|
|
1947
|
+
class CrystalSchema32(BaseModel):
|
|
1948
|
+
formula: Optional[str] = None
|
|
1949
|
+
"""
|
|
1950
|
+
reduced chemical formula
|
|
1951
|
+
"""
|
|
1952
|
+
unitCellFormula: Optional[str] = None
|
|
1953
|
+
"""
|
|
1954
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
1955
|
+
"""
|
|
1956
|
+
basis: BasisSchema33 = Field(..., title="basis schema")
|
|
1957
|
+
lattice: LatticeSchema32 = Field(..., title="lattice schema")
|
|
1958
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema32]] = Field(None, title="derived properties schema")
|
|
1959
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
1960
|
+
"""
|
|
1961
|
+
information about a database source
|
|
1962
|
+
"""
|
|
1963
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
1964
|
+
"""
|
|
1965
|
+
file source with the information inside
|
|
1966
|
+
"""
|
|
1967
|
+
scaledHash: Optional[str] = None
|
|
1968
|
+
"""
|
|
1969
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
1970
|
+
"""
|
|
1971
|
+
icsdId: Optional[int] = None
|
|
1972
|
+
"""
|
|
1973
|
+
Corresponding ICSD id of the material
|
|
1974
|
+
"""
|
|
1975
|
+
isNonPeriodic: Optional[bool] = None
|
|
1976
|
+
"""
|
|
1977
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
1978
|
+
"""
|
|
1979
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema32]] = None
|
|
1980
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
1981
|
+
"""
|
|
1982
|
+
entity identity
|
|
1983
|
+
"""
|
|
1984
|
+
slug: Optional[str] = None
|
|
1985
|
+
"""
|
|
1986
|
+
entity slug
|
|
1987
|
+
"""
|
|
1988
|
+
systemName: Optional[str] = None
|
|
1989
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
1990
|
+
"""
|
|
1991
|
+
entity's schema version. Used to distinct between different schemas.
|
|
1992
|
+
"""
|
|
1993
|
+
name: Optional[str] = None
|
|
1994
|
+
"""
|
|
1995
|
+
entity name
|
|
1996
|
+
"""
|
|
1997
|
+
isDefault: Optional[bool] = False
|
|
1998
|
+
"""
|
|
1999
|
+
Identifies that entity is defaultable
|
|
2000
|
+
"""
|
|
2001
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
class VacuumConfigurationSchema14(BaseModel):
|
|
2005
|
+
direction: AxisEnum = Field(..., title="Axis Enum")
|
|
2006
|
+
"""
|
|
2007
|
+
Enum for axis types
|
|
2008
|
+
"""
|
|
2009
|
+
size: Optional[confloat(ge=0.0)] = 10
|
|
2010
|
+
"""
|
|
2011
|
+
Size of the vacuum slab in angstroms
|
|
2012
|
+
"""
|
|
2013
|
+
crystal: CrystalSchema32 = Field(..., title="Crystal Schema")
|
|
2014
|
+
"""
|
|
2015
|
+
A crystal structure, referencing the base material schema
|
|
2016
|
+
"""
|
|
2017
|
+
|
|
2018
|
+
|
|
2019
|
+
class SlabStrainedSupercellConfigurationSchema(BaseModel):
|
|
2020
|
+
xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
|
|
2021
|
+
default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
|
|
2022
|
+
max_length=2,
|
|
2023
|
+
min_length=2,
|
|
2024
|
+
title="Supercell Matrix 2D Schema",
|
|
2025
|
+
)
|
|
2026
|
+
"""
|
|
2027
|
+
Supercell matrix for xy plane transformations
|
|
2028
|
+
"""
|
|
2029
|
+
strain_matrix: List[ArrayOf3NumberElementsSchema] = Field(
|
|
2030
|
+
..., max_length=3, min_length=3, title="matrix 3x3 schema"
|
|
2031
|
+
)
|
|
2032
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema11, VacuumConfigurationSchema14]] = Field(
|
|
2033
|
+
..., max_length=2, min_length=2
|
|
2034
|
+
)
|
|
2035
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
2036
|
+
"""
|
|
2037
|
+
Enum for axis types
|
|
2038
|
+
"""
|
|
2039
|
+
gaps: Optional[List[ObjectWithId]] = None
|
|
2040
|
+
"""
|
|
2041
|
+
Gap distances between stack components as an array of objects with id and value
|
|
2042
|
+
"""
|
|
2043
|
+
|
|
2044
|
+
|
|
2045
|
+
class TerminationSchema14(BaseModel):
|
|
2046
|
+
chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
|
|
2047
|
+
..., title="Chemical Elements"
|
|
2048
|
+
)
|
|
2049
|
+
"""
|
|
2050
|
+
Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
|
|
2051
|
+
"""
|
|
2052
|
+
space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
|
|
2053
|
+
"""
|
|
2054
|
+
Space group symmetry designation for the termination
|
|
2055
|
+
"""
|
|
2056
|
+
|
|
2057
|
+
|
|
2058
|
+
class Value74(Enum):
|
|
2059
|
+
H = "H"
|
|
2060
|
+
He = "He"
|
|
2061
|
+
Li = "Li"
|
|
2062
|
+
Be = "Be"
|
|
2063
|
+
B = "B"
|
|
2064
|
+
C = "C"
|
|
2065
|
+
N = "N"
|
|
2066
|
+
O = "O"
|
|
2067
|
+
F = "F"
|
|
2068
|
+
Ne = "Ne"
|
|
2069
|
+
Na = "Na"
|
|
2070
|
+
Mg = "Mg"
|
|
2071
|
+
Al = "Al"
|
|
2072
|
+
Si = "Si"
|
|
2073
|
+
P = "P"
|
|
2074
|
+
S = "S"
|
|
2075
|
+
Cl = "Cl"
|
|
2076
|
+
Ar = "Ar"
|
|
2077
|
+
K = "K"
|
|
2078
|
+
Ca = "Ca"
|
|
2079
|
+
Sc = "Sc"
|
|
2080
|
+
Ti = "Ti"
|
|
2081
|
+
V = "V"
|
|
2082
|
+
Cr = "Cr"
|
|
2083
|
+
Mn = "Mn"
|
|
2084
|
+
Fe = "Fe"
|
|
2085
|
+
Co = "Co"
|
|
2086
|
+
Ni = "Ni"
|
|
2087
|
+
Cu = "Cu"
|
|
2088
|
+
Zn = "Zn"
|
|
2089
|
+
Ga = "Ga"
|
|
2090
|
+
Ge = "Ge"
|
|
2091
|
+
As = "As"
|
|
2092
|
+
Se = "Se"
|
|
2093
|
+
Br = "Br"
|
|
2094
|
+
Kr = "Kr"
|
|
2095
|
+
Rb = "Rb"
|
|
2096
|
+
Sr = "Sr"
|
|
2097
|
+
Y = "Y"
|
|
2098
|
+
Zr = "Zr"
|
|
2099
|
+
Nb = "Nb"
|
|
2100
|
+
Mo = "Mo"
|
|
2101
|
+
Tc = "Tc"
|
|
2102
|
+
Ru = "Ru"
|
|
2103
|
+
Rh = "Rh"
|
|
2104
|
+
Pd = "Pd"
|
|
2105
|
+
Ag = "Ag"
|
|
2106
|
+
Cd = "Cd"
|
|
2107
|
+
In = "In"
|
|
2108
|
+
Sn = "Sn"
|
|
2109
|
+
Sb = "Sb"
|
|
2110
|
+
Te = "Te"
|
|
2111
|
+
I = "I"
|
|
2112
|
+
Xe = "Xe"
|
|
2113
|
+
Cs = "Cs"
|
|
2114
|
+
Ba = "Ba"
|
|
2115
|
+
La = "La"
|
|
2116
|
+
Ce = "Ce"
|
|
2117
|
+
Pr = "Pr"
|
|
2118
|
+
Nd = "Nd"
|
|
2119
|
+
Pm = "Pm"
|
|
2120
|
+
Sm = "Sm"
|
|
2121
|
+
Eu = "Eu"
|
|
2122
|
+
Gd = "Gd"
|
|
2123
|
+
Tb = "Tb"
|
|
2124
|
+
Dy = "Dy"
|
|
2125
|
+
Ho = "Ho"
|
|
2126
|
+
Er = "Er"
|
|
2127
|
+
Tm = "Tm"
|
|
2128
|
+
Yb = "Yb"
|
|
2129
|
+
Lu = "Lu"
|
|
2130
|
+
Hf = "Hf"
|
|
2131
|
+
Ta = "Ta"
|
|
2132
|
+
W = "W"
|
|
2133
|
+
Re = "Re"
|
|
2134
|
+
Os = "Os"
|
|
2135
|
+
Ir = "Ir"
|
|
2136
|
+
Pt = "Pt"
|
|
2137
|
+
Au = "Au"
|
|
2138
|
+
Hg = "Hg"
|
|
2139
|
+
Tl = "Tl"
|
|
2140
|
+
Pb = "Pb"
|
|
2141
|
+
Bi = "Bi"
|
|
2142
|
+
Po = "Po"
|
|
2143
|
+
At = "At"
|
|
2144
|
+
Rn = "Rn"
|
|
2145
|
+
Fr = "Fr"
|
|
2146
|
+
Ra = "Ra"
|
|
2147
|
+
Ac = "Ac"
|
|
2148
|
+
Th = "Th"
|
|
2149
|
+
Pa = "Pa"
|
|
2150
|
+
U = "U"
|
|
2151
|
+
Np = "Np"
|
|
2152
|
+
Pu = "Pu"
|
|
2153
|
+
Am = "Am"
|
|
2154
|
+
Cm = "Cm"
|
|
2155
|
+
Bk = "Bk"
|
|
2156
|
+
Cf = "Cf"
|
|
2157
|
+
Es = "Es"
|
|
2158
|
+
Fm = "Fm"
|
|
2159
|
+
Md = "Md"
|
|
2160
|
+
No = "No"
|
|
2161
|
+
Lr = "Lr"
|
|
2162
|
+
Rf = "Rf"
|
|
2163
|
+
Db = "Db"
|
|
2164
|
+
Sg = "Sg"
|
|
2165
|
+
Bh = "Bh"
|
|
2166
|
+
Hs = "Hs"
|
|
2167
|
+
Mt = "Mt"
|
|
2168
|
+
Ds = "Ds"
|
|
2169
|
+
Rg = "Rg"
|
|
2170
|
+
Cn = "Cn"
|
|
2171
|
+
Nh = "Nh"
|
|
2172
|
+
Fl = "Fl"
|
|
2173
|
+
Mc = "Mc"
|
|
2174
|
+
Lv = "Lv"
|
|
2175
|
+
Ts = "Ts"
|
|
2176
|
+
Og = "Og"
|
|
2177
|
+
|
|
2178
|
+
|
|
2179
|
+
class Value75(Enum):
|
|
2180
|
+
X = "X"
|
|
2181
|
+
Vac = "Vac"
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
class AtomicElementSchema36(BaseModel):
|
|
2185
|
+
value: Union[Value74, Value75]
|
|
2186
|
+
"""
|
|
2187
|
+
All elements, including extra elements
|
|
2188
|
+
"""
|
|
2189
|
+
id: int
|
|
2190
|
+
"""
|
|
2191
|
+
integer id of this entry
|
|
2192
|
+
"""
|
|
2193
|
+
|
|
2194
|
+
|
|
2195
|
+
class BasisSchema34(BaseModel):
|
|
2196
|
+
elements: List[AtomicElementSchema36] = Field(..., title="atomic elements schema")
|
|
2197
|
+
"""
|
|
2198
|
+
atomic elements schema
|
|
2199
|
+
"""
|
|
2200
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
2201
|
+
"""
|
|
2202
|
+
atomic coordinates schema
|
|
2203
|
+
"""
|
|
2204
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
2205
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
2206
|
+
"""
|
|
2207
|
+
atomic labels schema
|
|
2208
|
+
"""
|
|
2209
|
+
|
|
2210
|
+
|
|
2211
|
+
class LatticeVectorsSchema33(BaseModel):
|
|
2212
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2213
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2214
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2215
|
+
alat: Optional[float] = 1
|
|
2216
|
+
"""
|
|
2217
|
+
lattice parameter for fractional coordinates
|
|
2218
|
+
"""
|
|
2219
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
2220
|
+
|
|
2221
|
+
|
|
2222
|
+
class LatticeUnitsSchema33(BaseModel):
|
|
2223
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
2224
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
2225
|
+
|
|
2226
|
+
|
|
2227
|
+
class LatticeSchema33(BaseModel):
|
|
2228
|
+
a: float
|
|
2229
|
+
"""
|
|
2230
|
+
length of the first lattice vector
|
|
2231
|
+
"""
|
|
2232
|
+
b: float
|
|
2233
|
+
"""
|
|
2234
|
+
length of the second lattice vector
|
|
2235
|
+
"""
|
|
2236
|
+
c: float
|
|
2237
|
+
"""
|
|
2238
|
+
length of the third lattice vector
|
|
2239
|
+
"""
|
|
2240
|
+
alpha: float
|
|
2241
|
+
"""
|
|
2242
|
+
angle between first and second lattice vector
|
|
2243
|
+
"""
|
|
2244
|
+
beta: float
|
|
2245
|
+
"""
|
|
2246
|
+
angle between second and third lattice vector
|
|
2247
|
+
"""
|
|
2248
|
+
gamma: float
|
|
2249
|
+
"""
|
|
2250
|
+
angle between first and third lattice vector
|
|
2251
|
+
"""
|
|
2252
|
+
vectors: Optional[LatticeVectorsSchema33] = Field(None, title="lattice vectors schema")
|
|
2253
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
2254
|
+
units: Optional[LatticeUnitsSchema33] = Field(
|
|
2255
|
+
default_factory=lambda: LatticeUnitsSchema33.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
2256
|
+
title="Lattice units schema",
|
|
2257
|
+
)
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
class Name271(Enum):
|
|
2261
|
+
volume = "volume"
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
class Units108(Enum):
|
|
2265
|
+
angstrom_3 = "angstrom^3"
|
|
2266
|
+
|
|
2267
|
+
|
|
2268
|
+
class VolumeSchema33(BaseModel):
|
|
2269
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
2270
|
+
units: Optional[Units108] = None
|
|
2271
|
+
value: float
|
|
2272
|
+
|
|
2273
|
+
|
|
2274
|
+
class Name272(Enum):
|
|
2275
|
+
density = "density"
|
|
2276
|
+
|
|
2277
|
+
|
|
2278
|
+
class Units109(Enum):
|
|
2279
|
+
g_cm_3 = "g/cm^3"
|
|
2280
|
+
|
|
2281
|
+
|
|
2282
|
+
class DensitySchema33(BaseModel):
|
|
2283
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
2284
|
+
units: Optional[Units109] = None
|
|
2285
|
+
value: float
|
|
2286
|
+
|
|
2287
|
+
|
|
2288
|
+
class Units110(Enum):
|
|
2289
|
+
angstrom = "angstrom"
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
class ScalarSchema34(BaseModel):
|
|
2293
|
+
units: Optional[Units110] = None
|
|
2294
|
+
value: float
|
|
2295
|
+
|
|
2296
|
+
|
|
2297
|
+
class Name273(Enum):
|
|
2298
|
+
symmetry = "symmetry"
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
class SymmetrySchema33(BaseModel):
|
|
2302
|
+
pointGroupSymbol: Optional[str] = None
|
|
2303
|
+
"""
|
|
2304
|
+
point group symbol in Schoenflies notation
|
|
2305
|
+
"""
|
|
2306
|
+
spaceGroupSymbol: Optional[str] = None
|
|
2307
|
+
"""
|
|
2308
|
+
space group symbol in Hermann–Mauguin notation
|
|
2309
|
+
"""
|
|
2310
|
+
tolerance: Optional[ScalarSchema34] = Field(None, title="scalar schema")
|
|
2311
|
+
"""
|
|
2312
|
+
tolerance used for symmetry calculation
|
|
2313
|
+
"""
|
|
2314
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
2315
|
+
|
|
2316
|
+
|
|
2317
|
+
class Name274(Enum):
|
|
2318
|
+
elemental_ratio = "elemental_ratio"
|
|
2319
|
+
|
|
2320
|
+
|
|
2321
|
+
class ElementalRatio33(BaseModel):
|
|
2322
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
2323
|
+
value: confloat(ge=0.0, le=1.0)
|
|
2324
|
+
element: Optional[str] = None
|
|
2325
|
+
"""
|
|
2326
|
+
the element this ratio is for
|
|
2327
|
+
"""
|
|
2328
|
+
|
|
2329
|
+
|
|
2330
|
+
class Name275(Enum):
|
|
2331
|
+
p_norm = "p-norm"
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
class PNorm33(BaseModel):
|
|
2335
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
2336
|
+
degree: Optional[int] = None
|
|
2337
|
+
"""
|
|
2338
|
+
degree of the dimensionality of the norm
|
|
2339
|
+
"""
|
|
2340
|
+
value: float
|
|
2341
|
+
|
|
2342
|
+
|
|
2343
|
+
class Name276(Enum):
|
|
2344
|
+
inchi = "inchi"
|
|
2345
|
+
|
|
2346
|
+
|
|
2347
|
+
class InChIRepresentationSchema33(BaseModel):
|
|
2348
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
2349
|
+
value: str
|
|
2350
|
+
|
|
2351
|
+
|
|
2352
|
+
class Name277(Enum):
|
|
2353
|
+
inchi_key = "inchi_key"
|
|
2354
|
+
|
|
2355
|
+
|
|
2356
|
+
class InChIKeyRepresentationSchema33(BaseModel):
|
|
2357
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
2358
|
+
value: str
|
|
2359
|
+
|
|
2360
|
+
|
|
2361
|
+
class DerivedPropertiesSchema33(
|
|
2362
|
+
RootModel[
|
|
2363
|
+
Union[
|
|
2364
|
+
VolumeSchema33,
|
|
2365
|
+
DensitySchema33,
|
|
2366
|
+
SymmetrySchema33,
|
|
2367
|
+
ElementalRatio33,
|
|
2368
|
+
PNorm33,
|
|
2369
|
+
InChIRepresentationSchema33,
|
|
2370
|
+
InChIKeyRepresentationSchema33,
|
|
2371
|
+
]
|
|
2372
|
+
]
|
|
2373
|
+
):
|
|
2374
|
+
root: Union[
|
|
2375
|
+
VolumeSchema33,
|
|
2376
|
+
DensitySchema33,
|
|
2377
|
+
SymmetrySchema33,
|
|
2378
|
+
ElementalRatio33,
|
|
2379
|
+
PNorm33,
|
|
2380
|
+
InChIRepresentationSchema33,
|
|
2381
|
+
InChIKeyRepresentationSchema33,
|
|
2382
|
+
] = Field(..., discriminator="name")
|
|
2383
|
+
|
|
2384
|
+
|
|
2385
|
+
class Name278(Enum):
|
|
2386
|
+
default = "default"
|
|
2387
|
+
atomsTooClose = "atomsTooClose"
|
|
2388
|
+
atomsOverlap = "atomsOverlap"
|
|
2389
|
+
|
|
2390
|
+
|
|
2391
|
+
class MaterialConsistencyCheckSchema33(BaseModel):
|
|
2392
|
+
name: Name278
|
|
2393
|
+
"""
|
|
2394
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
2395
|
+
"""
|
|
2396
|
+
key: str
|
|
2397
|
+
"""
|
|
2398
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
2399
|
+
"""
|
|
2400
|
+
severity: Severity
|
|
2401
|
+
"""
|
|
2402
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
2403
|
+
"""
|
|
2404
|
+
message: str
|
|
2405
|
+
"""
|
|
2406
|
+
Message generated by the consistency check describing the problem.
|
|
2407
|
+
"""
|
|
2408
|
+
|
|
2409
|
+
|
|
2410
|
+
class CrystalSchema33(BaseModel):
|
|
2411
|
+
formula: Optional[str] = None
|
|
2412
|
+
"""
|
|
2413
|
+
reduced chemical formula
|
|
2414
|
+
"""
|
|
2415
|
+
unitCellFormula: Optional[str] = None
|
|
2416
|
+
"""
|
|
2417
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
2418
|
+
"""
|
|
2419
|
+
basis: BasisSchema34 = Field(..., title="basis schema")
|
|
2420
|
+
lattice: LatticeSchema33 = Field(..., title="lattice schema")
|
|
2421
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema33]] = Field(None, title="derived properties schema")
|
|
2422
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
2423
|
+
"""
|
|
2424
|
+
information about a database source
|
|
2425
|
+
"""
|
|
2426
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
2427
|
+
"""
|
|
2428
|
+
file source with the information inside
|
|
2429
|
+
"""
|
|
2430
|
+
scaledHash: Optional[str] = None
|
|
2431
|
+
"""
|
|
2432
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
2433
|
+
"""
|
|
2434
|
+
icsdId: Optional[int] = None
|
|
2435
|
+
"""
|
|
2436
|
+
Corresponding ICSD id of the material
|
|
2437
|
+
"""
|
|
2438
|
+
isNonPeriodic: Optional[bool] = None
|
|
2439
|
+
"""
|
|
2440
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
2441
|
+
"""
|
|
2442
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema33]] = None
|
|
2443
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
2444
|
+
"""
|
|
2445
|
+
entity identity
|
|
2446
|
+
"""
|
|
2447
|
+
slug: Optional[str] = None
|
|
2448
|
+
"""
|
|
2449
|
+
entity slug
|
|
2450
|
+
"""
|
|
2451
|
+
systemName: Optional[str] = None
|
|
2452
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
2453
|
+
"""
|
|
2454
|
+
entity's schema version. Used to distinct between different schemas.
|
|
2455
|
+
"""
|
|
2456
|
+
name: Optional[str] = None
|
|
2457
|
+
"""
|
|
2458
|
+
entity name
|
|
2459
|
+
"""
|
|
2460
|
+
isDefault: Optional[bool] = False
|
|
2461
|
+
"""
|
|
2462
|
+
Identifies that entity is defaultable
|
|
2463
|
+
"""
|
|
2464
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
2465
|
+
|
|
2466
|
+
|
|
2467
|
+
class AtomicLayersUniqueRepeatedSchema12(BaseModel):
|
|
2468
|
+
termination_top: TerminationSchema14 = Field(..., title="Termination Schema")
|
|
2469
|
+
"""
|
|
2470
|
+
Defines a specific termination of a slab
|
|
2471
|
+
"""
|
|
2472
|
+
number_of_repetitions: conint(ge=1)
|
|
2473
|
+
"""
|
|
2474
|
+
Number of repetitions of the unique atomic layers
|
|
2475
|
+
"""
|
|
2476
|
+
miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
|
|
2477
|
+
"""
|
|
2478
|
+
Miller indices [h, k, l] defining crystallographic planes
|
|
2479
|
+
"""
|
|
2480
|
+
crystal: CrystalSchema33 = Field(..., title="Crystal Schema")
|
|
2481
|
+
"""
|
|
2482
|
+
A crystal structure, referencing the base material schema
|
|
2483
|
+
"""
|
|
2484
|
+
use_conventional_cell: Optional[bool] = True
|
|
2485
|
+
"""
|
|
2486
|
+
Use the conventional cell for the crystal structure
|
|
2487
|
+
"""
|
|
2488
|
+
|
|
2489
|
+
|
|
2490
|
+
class Value76(Enum):
|
|
2491
|
+
H = "H"
|
|
2492
|
+
He = "He"
|
|
2493
|
+
Li = "Li"
|
|
2494
|
+
Be = "Be"
|
|
2495
|
+
B = "B"
|
|
2496
|
+
C = "C"
|
|
2497
|
+
N = "N"
|
|
2498
|
+
O = "O"
|
|
2499
|
+
F = "F"
|
|
2500
|
+
Ne = "Ne"
|
|
2501
|
+
Na = "Na"
|
|
2502
|
+
Mg = "Mg"
|
|
2503
|
+
Al = "Al"
|
|
2504
|
+
Si = "Si"
|
|
2505
|
+
P = "P"
|
|
2506
|
+
S = "S"
|
|
2507
|
+
Cl = "Cl"
|
|
2508
|
+
Ar = "Ar"
|
|
2509
|
+
K = "K"
|
|
2510
|
+
Ca = "Ca"
|
|
2511
|
+
Sc = "Sc"
|
|
2512
|
+
Ti = "Ti"
|
|
2513
|
+
V = "V"
|
|
2514
|
+
Cr = "Cr"
|
|
2515
|
+
Mn = "Mn"
|
|
2516
|
+
Fe = "Fe"
|
|
2517
|
+
Co = "Co"
|
|
2518
|
+
Ni = "Ni"
|
|
2519
|
+
Cu = "Cu"
|
|
2520
|
+
Zn = "Zn"
|
|
2521
|
+
Ga = "Ga"
|
|
2522
|
+
Ge = "Ge"
|
|
2523
|
+
As = "As"
|
|
2524
|
+
Se = "Se"
|
|
2525
|
+
Br = "Br"
|
|
2526
|
+
Kr = "Kr"
|
|
2527
|
+
Rb = "Rb"
|
|
2528
|
+
Sr = "Sr"
|
|
2529
|
+
Y = "Y"
|
|
2530
|
+
Zr = "Zr"
|
|
2531
|
+
Nb = "Nb"
|
|
2532
|
+
Mo = "Mo"
|
|
2533
|
+
Tc = "Tc"
|
|
2534
|
+
Ru = "Ru"
|
|
2535
|
+
Rh = "Rh"
|
|
2536
|
+
Pd = "Pd"
|
|
2537
|
+
Ag = "Ag"
|
|
2538
|
+
Cd = "Cd"
|
|
2539
|
+
In = "In"
|
|
2540
|
+
Sn = "Sn"
|
|
2541
|
+
Sb = "Sb"
|
|
2542
|
+
Te = "Te"
|
|
2543
|
+
I = "I"
|
|
2544
|
+
Xe = "Xe"
|
|
2545
|
+
Cs = "Cs"
|
|
2546
|
+
Ba = "Ba"
|
|
2547
|
+
La = "La"
|
|
2548
|
+
Ce = "Ce"
|
|
2549
|
+
Pr = "Pr"
|
|
2550
|
+
Nd = "Nd"
|
|
2551
|
+
Pm = "Pm"
|
|
2552
|
+
Sm = "Sm"
|
|
2553
|
+
Eu = "Eu"
|
|
2554
|
+
Gd = "Gd"
|
|
2555
|
+
Tb = "Tb"
|
|
2556
|
+
Dy = "Dy"
|
|
2557
|
+
Ho = "Ho"
|
|
2558
|
+
Er = "Er"
|
|
2559
|
+
Tm = "Tm"
|
|
2560
|
+
Yb = "Yb"
|
|
2561
|
+
Lu = "Lu"
|
|
2562
|
+
Hf = "Hf"
|
|
2563
|
+
Ta = "Ta"
|
|
2564
|
+
W = "W"
|
|
2565
|
+
Re = "Re"
|
|
2566
|
+
Os = "Os"
|
|
2567
|
+
Ir = "Ir"
|
|
2568
|
+
Pt = "Pt"
|
|
2569
|
+
Au = "Au"
|
|
2570
|
+
Hg = "Hg"
|
|
2571
|
+
Tl = "Tl"
|
|
2572
|
+
Pb = "Pb"
|
|
2573
|
+
Bi = "Bi"
|
|
2574
|
+
Po = "Po"
|
|
2575
|
+
At = "At"
|
|
2576
|
+
Rn = "Rn"
|
|
2577
|
+
Fr = "Fr"
|
|
2578
|
+
Ra = "Ra"
|
|
2579
|
+
Ac = "Ac"
|
|
2580
|
+
Th = "Th"
|
|
2581
|
+
Pa = "Pa"
|
|
2582
|
+
U = "U"
|
|
2583
|
+
Np = "Np"
|
|
2584
|
+
Pu = "Pu"
|
|
2585
|
+
Am = "Am"
|
|
2586
|
+
Cm = "Cm"
|
|
2587
|
+
Bk = "Bk"
|
|
2588
|
+
Cf = "Cf"
|
|
2589
|
+
Es = "Es"
|
|
2590
|
+
Fm = "Fm"
|
|
2591
|
+
Md = "Md"
|
|
2592
|
+
No = "No"
|
|
2593
|
+
Lr = "Lr"
|
|
2594
|
+
Rf = "Rf"
|
|
2595
|
+
Db = "Db"
|
|
2596
|
+
Sg = "Sg"
|
|
2597
|
+
Bh = "Bh"
|
|
2598
|
+
Hs = "Hs"
|
|
2599
|
+
Mt = "Mt"
|
|
2600
|
+
Ds = "Ds"
|
|
2601
|
+
Rg = "Rg"
|
|
2602
|
+
Cn = "Cn"
|
|
2603
|
+
Nh = "Nh"
|
|
2604
|
+
Fl = "Fl"
|
|
2605
|
+
Mc = "Mc"
|
|
2606
|
+
Lv = "Lv"
|
|
2607
|
+
Ts = "Ts"
|
|
2608
|
+
Og = "Og"
|
|
2609
|
+
|
|
2610
|
+
|
|
2611
|
+
class Value77(Enum):
|
|
2612
|
+
X = "X"
|
|
2613
|
+
Vac = "Vac"
|
|
2614
|
+
|
|
2615
|
+
|
|
2616
|
+
class AtomicElementSchema37(BaseModel):
|
|
2617
|
+
value: Union[Value76, Value77]
|
|
2618
|
+
"""
|
|
2619
|
+
All elements, including extra elements
|
|
2620
|
+
"""
|
|
2621
|
+
id: int
|
|
2622
|
+
"""
|
|
2623
|
+
integer id of this entry
|
|
2624
|
+
"""
|
|
2625
|
+
|
|
2626
|
+
|
|
2627
|
+
class BasisSchema35(BaseModel):
|
|
2628
|
+
elements: List[AtomicElementSchema37] = Field(..., title="atomic elements schema")
|
|
2629
|
+
"""
|
|
2630
|
+
atomic elements schema
|
|
2631
|
+
"""
|
|
2632
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
2633
|
+
"""
|
|
2634
|
+
atomic coordinates schema
|
|
2635
|
+
"""
|
|
2636
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
2637
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
2638
|
+
"""
|
|
2639
|
+
atomic labels schema
|
|
2640
|
+
"""
|
|
2641
|
+
|
|
2642
|
+
|
|
2643
|
+
class LatticeVectorsSchema34(BaseModel):
|
|
2644
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2645
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2646
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2647
|
+
alat: Optional[float] = 1
|
|
2648
|
+
"""
|
|
2649
|
+
lattice parameter for fractional coordinates
|
|
2650
|
+
"""
|
|
2651
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
2652
|
+
|
|
2653
|
+
|
|
2654
|
+
class LatticeUnitsSchema34(BaseModel):
|
|
2655
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
2656
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
2657
|
+
|
|
2658
|
+
|
|
2659
|
+
class LatticeSchema34(BaseModel):
|
|
2660
|
+
a: float
|
|
2661
|
+
"""
|
|
2662
|
+
length of the first lattice vector
|
|
2663
|
+
"""
|
|
2664
|
+
b: float
|
|
2665
|
+
"""
|
|
2666
|
+
length of the second lattice vector
|
|
2667
|
+
"""
|
|
2668
|
+
c: float
|
|
2669
|
+
"""
|
|
2670
|
+
length of the third lattice vector
|
|
2671
|
+
"""
|
|
2672
|
+
alpha: float
|
|
2673
|
+
"""
|
|
2674
|
+
angle between first and second lattice vector
|
|
2675
|
+
"""
|
|
2676
|
+
beta: float
|
|
2677
|
+
"""
|
|
2678
|
+
angle between second and third lattice vector
|
|
2679
|
+
"""
|
|
2680
|
+
gamma: float
|
|
2681
|
+
"""
|
|
2682
|
+
angle between first and third lattice vector
|
|
2683
|
+
"""
|
|
2684
|
+
vectors: Optional[LatticeVectorsSchema34] = Field(None, title="lattice vectors schema")
|
|
2685
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
2686
|
+
units: Optional[LatticeUnitsSchema34] = Field(
|
|
2687
|
+
default_factory=lambda: LatticeUnitsSchema34.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
2688
|
+
title="Lattice units schema",
|
|
2689
|
+
)
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
class Name279(Enum):
|
|
2693
|
+
volume = "volume"
|
|
2694
|
+
|
|
2695
|
+
|
|
2696
|
+
class Units111(Enum):
|
|
2697
|
+
angstrom_3 = "angstrom^3"
|
|
2698
|
+
|
|
2699
|
+
|
|
2700
|
+
class VolumeSchema34(BaseModel):
|
|
2701
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
2702
|
+
units: Optional[Units111] = None
|
|
2703
|
+
value: float
|
|
2704
|
+
|
|
2705
|
+
|
|
2706
|
+
class Name280(Enum):
|
|
2707
|
+
density = "density"
|
|
2708
|
+
|
|
2709
|
+
|
|
2710
|
+
class Units112(Enum):
|
|
2711
|
+
g_cm_3 = "g/cm^3"
|
|
2712
|
+
|
|
2713
|
+
|
|
2714
|
+
class DensitySchema34(BaseModel):
|
|
2715
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
2716
|
+
units: Optional[Units112] = None
|
|
2717
|
+
value: float
|
|
2718
|
+
|
|
2719
|
+
|
|
2720
|
+
class Units113(Enum):
|
|
2721
|
+
angstrom = "angstrom"
|
|
2722
|
+
|
|
2723
|
+
|
|
2724
|
+
class ScalarSchema35(BaseModel):
|
|
2725
|
+
units: Optional[Units113] = None
|
|
2726
|
+
value: float
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
class Name281(Enum):
|
|
2730
|
+
symmetry = "symmetry"
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
class SymmetrySchema34(BaseModel):
|
|
2734
|
+
pointGroupSymbol: Optional[str] = None
|
|
2735
|
+
"""
|
|
2736
|
+
point group symbol in Schoenflies notation
|
|
2737
|
+
"""
|
|
2738
|
+
spaceGroupSymbol: Optional[str] = None
|
|
2739
|
+
"""
|
|
2740
|
+
space group symbol in Hermann–Mauguin notation
|
|
2741
|
+
"""
|
|
2742
|
+
tolerance: Optional[ScalarSchema35] = Field(None, title="scalar schema")
|
|
2743
|
+
"""
|
|
2744
|
+
tolerance used for symmetry calculation
|
|
2745
|
+
"""
|
|
2746
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
2747
|
+
|
|
2748
|
+
|
|
2749
|
+
class Name282(Enum):
|
|
2750
|
+
elemental_ratio = "elemental_ratio"
|
|
2751
|
+
|
|
2752
|
+
|
|
2753
|
+
class ElementalRatio34(BaseModel):
|
|
2754
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
2755
|
+
value: confloat(ge=0.0, le=1.0)
|
|
2756
|
+
element: Optional[str] = None
|
|
2757
|
+
"""
|
|
2758
|
+
the element this ratio is for
|
|
2759
|
+
"""
|
|
2760
|
+
|
|
2761
|
+
|
|
2762
|
+
class Name283(Enum):
|
|
2763
|
+
p_norm = "p-norm"
|
|
2764
|
+
|
|
2765
|
+
|
|
2766
|
+
class PNorm34(BaseModel):
|
|
2767
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
2768
|
+
degree: Optional[int] = None
|
|
2769
|
+
"""
|
|
2770
|
+
degree of the dimensionality of the norm
|
|
2771
|
+
"""
|
|
2772
|
+
value: float
|
|
2773
|
+
|
|
2774
|
+
|
|
2775
|
+
class Name284(Enum):
|
|
2776
|
+
inchi = "inchi"
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
class InChIRepresentationSchema34(BaseModel):
|
|
2780
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
2781
|
+
value: str
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
class Name285(Enum):
|
|
2785
|
+
inchi_key = "inchi_key"
|
|
2786
|
+
|
|
2787
|
+
|
|
2788
|
+
class InChIKeyRepresentationSchema34(BaseModel):
|
|
2789
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
2790
|
+
value: str
|
|
2791
|
+
|
|
2792
|
+
|
|
2793
|
+
class DerivedPropertiesSchema34(
|
|
2794
|
+
RootModel[
|
|
2795
|
+
Union[
|
|
2796
|
+
VolumeSchema34,
|
|
2797
|
+
DensitySchema34,
|
|
2798
|
+
SymmetrySchema34,
|
|
2799
|
+
ElementalRatio34,
|
|
2800
|
+
PNorm34,
|
|
2801
|
+
InChIRepresentationSchema34,
|
|
2802
|
+
InChIKeyRepresentationSchema34,
|
|
2803
|
+
]
|
|
2804
|
+
]
|
|
2805
|
+
):
|
|
2806
|
+
root: Union[
|
|
2807
|
+
VolumeSchema34,
|
|
2808
|
+
DensitySchema34,
|
|
2809
|
+
SymmetrySchema34,
|
|
2810
|
+
ElementalRatio34,
|
|
2811
|
+
PNorm34,
|
|
2812
|
+
InChIRepresentationSchema34,
|
|
2813
|
+
InChIKeyRepresentationSchema34,
|
|
2814
|
+
] = Field(..., discriminator="name")
|
|
2815
|
+
|
|
2816
|
+
|
|
2817
|
+
class Name286(Enum):
|
|
2818
|
+
default = "default"
|
|
2819
|
+
atomsTooClose = "atomsTooClose"
|
|
2820
|
+
atomsOverlap = "atomsOverlap"
|
|
2821
|
+
|
|
2822
|
+
|
|
2823
|
+
class MaterialConsistencyCheckSchema34(BaseModel):
|
|
2824
|
+
name: Name286
|
|
2825
|
+
"""
|
|
2826
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
2827
|
+
"""
|
|
2828
|
+
key: str
|
|
2829
|
+
"""
|
|
2830
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
2831
|
+
"""
|
|
2832
|
+
severity: Severity
|
|
2833
|
+
"""
|
|
2834
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
2835
|
+
"""
|
|
2836
|
+
message: str
|
|
2837
|
+
"""
|
|
2838
|
+
Message generated by the consistency check describing the problem.
|
|
2839
|
+
"""
|
|
2840
|
+
|
|
2841
|
+
|
|
2842
|
+
class CrystalSchema34(BaseModel):
|
|
2843
|
+
formula: Optional[str] = None
|
|
2844
|
+
"""
|
|
2845
|
+
reduced chemical formula
|
|
2846
|
+
"""
|
|
2847
|
+
unitCellFormula: Optional[str] = None
|
|
2848
|
+
"""
|
|
2849
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
2850
|
+
"""
|
|
2851
|
+
basis: BasisSchema35 = Field(..., title="basis schema")
|
|
2852
|
+
lattice: LatticeSchema34 = Field(..., title="lattice schema")
|
|
2853
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema34]] = Field(None, title="derived properties schema")
|
|
2854
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
2855
|
+
"""
|
|
2856
|
+
information about a database source
|
|
2857
|
+
"""
|
|
2858
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
2859
|
+
"""
|
|
2860
|
+
file source with the information inside
|
|
2861
|
+
"""
|
|
2862
|
+
scaledHash: Optional[str] = None
|
|
2863
|
+
"""
|
|
2864
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
2865
|
+
"""
|
|
2866
|
+
icsdId: Optional[int] = None
|
|
2867
|
+
"""
|
|
2868
|
+
Corresponding ICSD id of the material
|
|
2869
|
+
"""
|
|
2870
|
+
isNonPeriodic: Optional[bool] = None
|
|
2871
|
+
"""
|
|
2872
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
2873
|
+
"""
|
|
2874
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema34]] = None
|
|
2875
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
2876
|
+
"""
|
|
2877
|
+
entity identity
|
|
2878
|
+
"""
|
|
2879
|
+
slug: Optional[str] = None
|
|
2880
|
+
"""
|
|
2881
|
+
entity slug
|
|
2882
|
+
"""
|
|
2883
|
+
systemName: Optional[str] = None
|
|
2884
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
2885
|
+
"""
|
|
2886
|
+
entity's schema version. Used to distinct between different schemas.
|
|
2887
|
+
"""
|
|
2888
|
+
name: Optional[str] = None
|
|
2889
|
+
"""
|
|
2890
|
+
entity name
|
|
2891
|
+
"""
|
|
2892
|
+
isDefault: Optional[bool] = False
|
|
2893
|
+
"""
|
|
2894
|
+
Identifies that entity is defaultable
|
|
2895
|
+
"""
|
|
2896
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
2897
|
+
|
|
2898
|
+
|
|
2899
|
+
class VacuumConfigurationSchema15(BaseModel):
|
|
2900
|
+
direction: AxisEnum = Field(..., title="Axis Enum")
|
|
2901
|
+
"""
|
|
2902
|
+
Enum for axis types
|
|
2903
|
+
"""
|
|
2904
|
+
size: Optional[confloat(ge=0.0)] = 10
|
|
2905
|
+
"""
|
|
2906
|
+
Size of the vacuum slab in angstroms
|
|
2907
|
+
"""
|
|
2908
|
+
crystal: CrystalSchema34 = Field(..., title="Crystal Schema")
|
|
2909
|
+
"""
|
|
2910
|
+
A crystal structure, referencing the base material schema
|
|
2911
|
+
"""
|
|
2912
|
+
|
|
2913
|
+
|
|
2914
|
+
class SlabConfigurationSchema8(BaseModel):
|
|
2915
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema12, VacuumConfigurationSchema15]] = Field(
|
|
2916
|
+
..., max_length=2, min_length=2
|
|
2917
|
+
)
|
|
2918
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
2919
|
+
"""
|
|
2920
|
+
Enum for axis types
|
|
2921
|
+
"""
|
|
2922
|
+
gaps: Optional[List[ObjectWithId]] = None
|
|
2923
|
+
"""
|
|
2924
|
+
Gap distances between stack components as an array of objects with id and value
|
|
2925
|
+
"""
|
|
2926
|
+
|
|
2927
|
+
|
|
2928
|
+
class TerminationSchema15(BaseModel):
|
|
2929
|
+
chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
|
|
2930
|
+
..., title="Chemical Elements"
|
|
2931
|
+
)
|
|
2932
|
+
"""
|
|
2933
|
+
Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
|
|
2934
|
+
"""
|
|
2935
|
+
space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
|
|
2936
|
+
"""
|
|
2937
|
+
Space group symmetry designation for the termination
|
|
2938
|
+
"""
|
|
2939
|
+
|
|
2940
|
+
|
|
2941
|
+
class Value78(Enum):
|
|
2942
|
+
H = "H"
|
|
2943
|
+
He = "He"
|
|
2944
|
+
Li = "Li"
|
|
2945
|
+
Be = "Be"
|
|
2946
|
+
B = "B"
|
|
2947
|
+
C = "C"
|
|
2948
|
+
N = "N"
|
|
2949
|
+
O = "O"
|
|
2950
|
+
F = "F"
|
|
2951
|
+
Ne = "Ne"
|
|
2952
|
+
Na = "Na"
|
|
2953
|
+
Mg = "Mg"
|
|
2954
|
+
Al = "Al"
|
|
2955
|
+
Si = "Si"
|
|
2956
|
+
P = "P"
|
|
2957
|
+
S = "S"
|
|
2958
|
+
Cl = "Cl"
|
|
2959
|
+
Ar = "Ar"
|
|
2960
|
+
K = "K"
|
|
2961
|
+
Ca = "Ca"
|
|
2962
|
+
Sc = "Sc"
|
|
2963
|
+
Ti = "Ti"
|
|
2964
|
+
V = "V"
|
|
2965
|
+
Cr = "Cr"
|
|
2966
|
+
Mn = "Mn"
|
|
2967
|
+
Fe = "Fe"
|
|
2968
|
+
Co = "Co"
|
|
2969
|
+
Ni = "Ni"
|
|
2970
|
+
Cu = "Cu"
|
|
2971
|
+
Zn = "Zn"
|
|
2972
|
+
Ga = "Ga"
|
|
2973
|
+
Ge = "Ge"
|
|
2974
|
+
As = "As"
|
|
2975
|
+
Se = "Se"
|
|
2976
|
+
Br = "Br"
|
|
2977
|
+
Kr = "Kr"
|
|
2978
|
+
Rb = "Rb"
|
|
2979
|
+
Sr = "Sr"
|
|
2980
|
+
Y = "Y"
|
|
2981
|
+
Zr = "Zr"
|
|
2982
|
+
Nb = "Nb"
|
|
2983
|
+
Mo = "Mo"
|
|
2984
|
+
Tc = "Tc"
|
|
2985
|
+
Ru = "Ru"
|
|
2986
|
+
Rh = "Rh"
|
|
2987
|
+
Pd = "Pd"
|
|
2988
|
+
Ag = "Ag"
|
|
2989
|
+
Cd = "Cd"
|
|
2990
|
+
In = "In"
|
|
2991
|
+
Sn = "Sn"
|
|
2992
|
+
Sb = "Sb"
|
|
2993
|
+
Te = "Te"
|
|
2994
|
+
I = "I"
|
|
2995
|
+
Xe = "Xe"
|
|
2996
|
+
Cs = "Cs"
|
|
2997
|
+
Ba = "Ba"
|
|
2998
|
+
La = "La"
|
|
2999
|
+
Ce = "Ce"
|
|
3000
|
+
Pr = "Pr"
|
|
3001
|
+
Nd = "Nd"
|
|
3002
|
+
Pm = "Pm"
|
|
3003
|
+
Sm = "Sm"
|
|
3004
|
+
Eu = "Eu"
|
|
3005
|
+
Gd = "Gd"
|
|
3006
|
+
Tb = "Tb"
|
|
3007
|
+
Dy = "Dy"
|
|
3008
|
+
Ho = "Ho"
|
|
3009
|
+
Er = "Er"
|
|
3010
|
+
Tm = "Tm"
|
|
3011
|
+
Yb = "Yb"
|
|
3012
|
+
Lu = "Lu"
|
|
3013
|
+
Hf = "Hf"
|
|
3014
|
+
Ta = "Ta"
|
|
3015
|
+
W = "W"
|
|
3016
|
+
Re = "Re"
|
|
3017
|
+
Os = "Os"
|
|
3018
|
+
Ir = "Ir"
|
|
3019
|
+
Pt = "Pt"
|
|
3020
|
+
Au = "Au"
|
|
3021
|
+
Hg = "Hg"
|
|
3022
|
+
Tl = "Tl"
|
|
3023
|
+
Pb = "Pb"
|
|
3024
|
+
Bi = "Bi"
|
|
3025
|
+
Po = "Po"
|
|
3026
|
+
At = "At"
|
|
3027
|
+
Rn = "Rn"
|
|
3028
|
+
Fr = "Fr"
|
|
3029
|
+
Ra = "Ra"
|
|
3030
|
+
Ac = "Ac"
|
|
3031
|
+
Th = "Th"
|
|
3032
|
+
Pa = "Pa"
|
|
3033
|
+
U = "U"
|
|
3034
|
+
Np = "Np"
|
|
3035
|
+
Pu = "Pu"
|
|
3036
|
+
Am = "Am"
|
|
3037
|
+
Cm = "Cm"
|
|
3038
|
+
Bk = "Bk"
|
|
3039
|
+
Cf = "Cf"
|
|
3040
|
+
Es = "Es"
|
|
3041
|
+
Fm = "Fm"
|
|
3042
|
+
Md = "Md"
|
|
3043
|
+
No = "No"
|
|
3044
|
+
Lr = "Lr"
|
|
3045
|
+
Rf = "Rf"
|
|
3046
|
+
Db = "Db"
|
|
3047
|
+
Sg = "Sg"
|
|
3048
|
+
Bh = "Bh"
|
|
3049
|
+
Hs = "Hs"
|
|
3050
|
+
Mt = "Mt"
|
|
3051
|
+
Ds = "Ds"
|
|
3052
|
+
Rg = "Rg"
|
|
3053
|
+
Cn = "Cn"
|
|
3054
|
+
Nh = "Nh"
|
|
3055
|
+
Fl = "Fl"
|
|
3056
|
+
Mc = "Mc"
|
|
3057
|
+
Lv = "Lv"
|
|
3058
|
+
Ts = "Ts"
|
|
3059
|
+
Og = "Og"
|
|
3060
|
+
|
|
3061
|
+
|
|
3062
|
+
class Value79(Enum):
|
|
3063
|
+
X = "X"
|
|
3064
|
+
Vac = "Vac"
|
|
3065
|
+
|
|
3066
|
+
|
|
3067
|
+
class AtomicElementSchema38(BaseModel):
|
|
3068
|
+
value: Union[Value78, Value79]
|
|
3069
|
+
"""
|
|
3070
|
+
All elements, including extra elements
|
|
3071
|
+
"""
|
|
3072
|
+
id: int
|
|
3073
|
+
"""
|
|
3074
|
+
integer id of this entry
|
|
3075
|
+
"""
|
|
3076
|
+
|
|
3077
|
+
|
|
3078
|
+
class BasisSchema36(BaseModel):
|
|
3079
|
+
elements: List[AtomicElementSchema38] = Field(..., title="atomic elements schema")
|
|
3080
|
+
"""
|
|
3081
|
+
atomic elements schema
|
|
3082
|
+
"""
|
|
3083
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
3084
|
+
"""
|
|
3085
|
+
atomic coordinates schema
|
|
3086
|
+
"""
|
|
3087
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
3088
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
3089
|
+
"""
|
|
3090
|
+
atomic labels schema
|
|
3091
|
+
"""
|
|
3092
|
+
|
|
3093
|
+
|
|
3094
|
+
class LatticeVectorsSchema35(BaseModel):
|
|
3095
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3096
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3097
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3098
|
+
alat: Optional[float] = 1
|
|
3099
|
+
"""
|
|
3100
|
+
lattice parameter for fractional coordinates
|
|
3101
|
+
"""
|
|
3102
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
3103
|
+
|
|
3104
|
+
|
|
3105
|
+
class LatticeUnitsSchema35(BaseModel):
|
|
3106
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
3107
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
3108
|
+
|
|
3109
|
+
|
|
3110
|
+
class LatticeSchema35(BaseModel):
|
|
3111
|
+
a: float
|
|
3112
|
+
"""
|
|
3113
|
+
length of the first lattice vector
|
|
3114
|
+
"""
|
|
3115
|
+
b: float
|
|
3116
|
+
"""
|
|
3117
|
+
length of the second lattice vector
|
|
3118
|
+
"""
|
|
3119
|
+
c: float
|
|
3120
|
+
"""
|
|
3121
|
+
length of the third lattice vector
|
|
3122
|
+
"""
|
|
3123
|
+
alpha: float
|
|
3124
|
+
"""
|
|
3125
|
+
angle between first and second lattice vector
|
|
3126
|
+
"""
|
|
3127
|
+
beta: float
|
|
3128
|
+
"""
|
|
3129
|
+
angle between second and third lattice vector
|
|
3130
|
+
"""
|
|
3131
|
+
gamma: float
|
|
3132
|
+
"""
|
|
3133
|
+
angle between first and third lattice vector
|
|
3134
|
+
"""
|
|
3135
|
+
vectors: Optional[LatticeVectorsSchema35] = Field(None, title="lattice vectors schema")
|
|
3136
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
3137
|
+
units: Optional[LatticeUnitsSchema35] = Field(
|
|
3138
|
+
default_factory=lambda: LatticeUnitsSchema35.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
3139
|
+
title="Lattice units schema",
|
|
3140
|
+
)
|
|
3141
|
+
|
|
3142
|
+
|
|
3143
|
+
class Name287(Enum):
|
|
3144
|
+
volume = "volume"
|
|
3145
|
+
|
|
3146
|
+
|
|
3147
|
+
class Units114(Enum):
|
|
3148
|
+
angstrom_3 = "angstrom^3"
|
|
3149
|
+
|
|
3150
|
+
|
|
3151
|
+
class VolumeSchema35(BaseModel):
|
|
3152
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
3153
|
+
units: Optional[Units114] = None
|
|
3154
|
+
value: float
|
|
3155
|
+
|
|
3156
|
+
|
|
3157
|
+
class Name288(Enum):
|
|
3158
|
+
density = "density"
|
|
3159
|
+
|
|
3160
|
+
|
|
3161
|
+
class Units115(Enum):
|
|
3162
|
+
g_cm_3 = "g/cm^3"
|
|
3163
|
+
|
|
3164
|
+
|
|
3165
|
+
class DensitySchema35(BaseModel):
|
|
3166
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
3167
|
+
units: Optional[Units115] = None
|
|
3168
|
+
value: float
|
|
3169
|
+
|
|
3170
|
+
|
|
3171
|
+
class Units116(Enum):
|
|
3172
|
+
angstrom = "angstrom"
|
|
3173
|
+
|
|
3174
|
+
|
|
3175
|
+
class ScalarSchema36(BaseModel):
|
|
3176
|
+
units: Optional[Units116] = None
|
|
3177
|
+
value: float
|
|
3178
|
+
|
|
3179
|
+
|
|
3180
|
+
class Name289(Enum):
|
|
3181
|
+
symmetry = "symmetry"
|
|
3182
|
+
|
|
3183
|
+
|
|
3184
|
+
class SymmetrySchema35(BaseModel):
|
|
3185
|
+
pointGroupSymbol: Optional[str] = None
|
|
3186
|
+
"""
|
|
3187
|
+
point group symbol in Schoenflies notation
|
|
3188
|
+
"""
|
|
3189
|
+
spaceGroupSymbol: Optional[str] = None
|
|
3190
|
+
"""
|
|
3191
|
+
space group symbol in Hermann–Mauguin notation
|
|
3192
|
+
"""
|
|
3193
|
+
tolerance: Optional[ScalarSchema36] = Field(None, title="scalar schema")
|
|
3194
|
+
"""
|
|
3195
|
+
tolerance used for symmetry calculation
|
|
3196
|
+
"""
|
|
3197
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
3198
|
+
|
|
3199
|
+
|
|
3200
|
+
class Name290(Enum):
|
|
3201
|
+
elemental_ratio = "elemental_ratio"
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
class ElementalRatio35(BaseModel):
|
|
3205
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
3206
|
+
value: confloat(ge=0.0, le=1.0)
|
|
3207
|
+
element: Optional[str] = None
|
|
3208
|
+
"""
|
|
3209
|
+
the element this ratio is for
|
|
3210
|
+
"""
|
|
3211
|
+
|
|
3212
|
+
|
|
3213
|
+
class Name291(Enum):
|
|
3214
|
+
p_norm = "p-norm"
|
|
3215
|
+
|
|
3216
|
+
|
|
3217
|
+
class PNorm35(BaseModel):
|
|
3218
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
3219
|
+
degree: Optional[int] = None
|
|
3220
|
+
"""
|
|
3221
|
+
degree of the dimensionality of the norm
|
|
3222
|
+
"""
|
|
3223
|
+
value: float
|
|
3224
|
+
|
|
3225
|
+
|
|
3226
|
+
class Name292(Enum):
|
|
3227
|
+
inchi = "inchi"
|
|
3228
|
+
|
|
3229
|
+
|
|
3230
|
+
class InChIRepresentationSchema35(BaseModel):
|
|
3231
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
3232
|
+
value: str
|
|
3233
|
+
|
|
3234
|
+
|
|
3235
|
+
class Name293(Enum):
|
|
3236
|
+
inchi_key = "inchi_key"
|
|
3237
|
+
|
|
3238
|
+
|
|
3239
|
+
class InChIKeyRepresentationSchema35(BaseModel):
|
|
3240
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
3241
|
+
value: str
|
|
3242
|
+
|
|
3243
|
+
|
|
3244
|
+
class DerivedPropertiesSchema35(
|
|
3245
|
+
RootModel[
|
|
3246
|
+
Union[
|
|
3247
|
+
VolumeSchema35,
|
|
3248
|
+
DensitySchema35,
|
|
3249
|
+
SymmetrySchema35,
|
|
3250
|
+
ElementalRatio35,
|
|
3251
|
+
PNorm35,
|
|
3252
|
+
InChIRepresentationSchema35,
|
|
3253
|
+
InChIKeyRepresentationSchema35,
|
|
3254
|
+
]
|
|
3255
|
+
]
|
|
3256
|
+
):
|
|
3257
|
+
root: Union[
|
|
3258
|
+
VolumeSchema35,
|
|
3259
|
+
DensitySchema35,
|
|
3260
|
+
SymmetrySchema35,
|
|
3261
|
+
ElementalRatio35,
|
|
3262
|
+
PNorm35,
|
|
3263
|
+
InChIRepresentationSchema35,
|
|
3264
|
+
InChIKeyRepresentationSchema35,
|
|
3265
|
+
] = Field(..., discriminator="name")
|
|
3266
|
+
|
|
3267
|
+
|
|
3268
|
+
class Name294(Enum):
|
|
3269
|
+
default = "default"
|
|
3270
|
+
atomsTooClose = "atomsTooClose"
|
|
3271
|
+
atomsOverlap = "atomsOverlap"
|
|
3272
|
+
|
|
3273
|
+
|
|
3274
|
+
class MaterialConsistencyCheckSchema35(BaseModel):
|
|
3275
|
+
name: Name294
|
|
3276
|
+
"""
|
|
3277
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
3278
|
+
"""
|
|
3279
|
+
key: str
|
|
3280
|
+
"""
|
|
3281
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
3282
|
+
"""
|
|
3283
|
+
severity: Severity
|
|
3284
|
+
"""
|
|
3285
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
3286
|
+
"""
|
|
3287
|
+
message: str
|
|
3288
|
+
"""
|
|
3289
|
+
Message generated by the consistency check describing the problem.
|
|
3290
|
+
"""
|
|
3291
|
+
|
|
3292
|
+
|
|
3293
|
+
class CrystalSchema35(BaseModel):
|
|
3294
|
+
formula: Optional[str] = None
|
|
3295
|
+
"""
|
|
3296
|
+
reduced chemical formula
|
|
3297
|
+
"""
|
|
3298
|
+
unitCellFormula: Optional[str] = None
|
|
3299
|
+
"""
|
|
3300
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
3301
|
+
"""
|
|
3302
|
+
basis: BasisSchema36 = Field(..., title="basis schema")
|
|
3303
|
+
lattice: LatticeSchema35 = Field(..., title="lattice schema")
|
|
3304
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema35]] = Field(None, title="derived properties schema")
|
|
3305
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
3306
|
+
"""
|
|
3307
|
+
information about a database source
|
|
3308
|
+
"""
|
|
3309
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
3310
|
+
"""
|
|
3311
|
+
file source with the information inside
|
|
3312
|
+
"""
|
|
3313
|
+
scaledHash: Optional[str] = None
|
|
3314
|
+
"""
|
|
3315
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
3316
|
+
"""
|
|
3317
|
+
icsdId: Optional[int] = None
|
|
3318
|
+
"""
|
|
3319
|
+
Corresponding ICSD id of the material
|
|
3320
|
+
"""
|
|
3321
|
+
isNonPeriodic: Optional[bool] = None
|
|
3322
|
+
"""
|
|
3323
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
3324
|
+
"""
|
|
3325
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema35]] = None
|
|
3326
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
3327
|
+
"""
|
|
3328
|
+
entity identity
|
|
3329
|
+
"""
|
|
3330
|
+
slug: Optional[str] = None
|
|
3331
|
+
"""
|
|
3332
|
+
entity slug
|
|
3333
|
+
"""
|
|
3334
|
+
systemName: Optional[str] = None
|
|
3335
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
3336
|
+
"""
|
|
3337
|
+
entity's schema version. Used to distinct between different schemas.
|
|
3338
|
+
"""
|
|
3339
|
+
name: Optional[str] = None
|
|
3340
|
+
"""
|
|
3341
|
+
entity name
|
|
3342
|
+
"""
|
|
3343
|
+
isDefault: Optional[bool] = False
|
|
3344
|
+
"""
|
|
3345
|
+
Identifies that entity is defaultable
|
|
3346
|
+
"""
|
|
3347
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
3348
|
+
|
|
3349
|
+
|
|
3350
|
+
class AtomicLayersUniqueRepeatedSchema13(BaseModel):
|
|
3351
|
+
termination_top: TerminationSchema15 = Field(..., title="Termination Schema")
|
|
3352
|
+
"""
|
|
3353
|
+
Defines a specific termination of a slab
|
|
3354
|
+
"""
|
|
3355
|
+
number_of_repetitions: conint(ge=1)
|
|
3356
|
+
"""
|
|
3357
|
+
Number of repetitions of the unique atomic layers
|
|
3358
|
+
"""
|
|
3359
|
+
miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
|
|
3360
|
+
"""
|
|
3361
|
+
Miller indices [h, k, l] defining crystallographic planes
|
|
3362
|
+
"""
|
|
3363
|
+
crystal: CrystalSchema35 = Field(..., title="Crystal Schema")
|
|
3364
|
+
"""
|
|
3365
|
+
A crystal structure, referencing the base material schema
|
|
3366
|
+
"""
|
|
3367
|
+
use_conventional_cell: Optional[bool] = True
|
|
3368
|
+
"""
|
|
3369
|
+
Use the conventional cell for the crystal structure
|
|
3370
|
+
"""
|
|
3371
|
+
|
|
3372
|
+
|
|
3373
|
+
class Value80(Enum):
|
|
3374
|
+
H = "H"
|
|
3375
|
+
He = "He"
|
|
3376
|
+
Li = "Li"
|
|
3377
|
+
Be = "Be"
|
|
3378
|
+
B = "B"
|
|
3379
|
+
C = "C"
|
|
3380
|
+
N = "N"
|
|
3381
|
+
O = "O"
|
|
3382
|
+
F = "F"
|
|
3383
|
+
Ne = "Ne"
|
|
3384
|
+
Na = "Na"
|
|
3385
|
+
Mg = "Mg"
|
|
3386
|
+
Al = "Al"
|
|
3387
|
+
Si = "Si"
|
|
3388
|
+
P = "P"
|
|
3389
|
+
S = "S"
|
|
3390
|
+
Cl = "Cl"
|
|
3391
|
+
Ar = "Ar"
|
|
3392
|
+
K = "K"
|
|
3393
|
+
Ca = "Ca"
|
|
3394
|
+
Sc = "Sc"
|
|
3395
|
+
Ti = "Ti"
|
|
3396
|
+
V = "V"
|
|
3397
|
+
Cr = "Cr"
|
|
3398
|
+
Mn = "Mn"
|
|
3399
|
+
Fe = "Fe"
|
|
3400
|
+
Co = "Co"
|
|
3401
|
+
Ni = "Ni"
|
|
3402
|
+
Cu = "Cu"
|
|
3403
|
+
Zn = "Zn"
|
|
3404
|
+
Ga = "Ga"
|
|
3405
|
+
Ge = "Ge"
|
|
3406
|
+
As = "As"
|
|
3407
|
+
Se = "Se"
|
|
3408
|
+
Br = "Br"
|
|
3409
|
+
Kr = "Kr"
|
|
3410
|
+
Rb = "Rb"
|
|
3411
|
+
Sr = "Sr"
|
|
3412
|
+
Y = "Y"
|
|
3413
|
+
Zr = "Zr"
|
|
3414
|
+
Nb = "Nb"
|
|
3415
|
+
Mo = "Mo"
|
|
3416
|
+
Tc = "Tc"
|
|
3417
|
+
Ru = "Ru"
|
|
3418
|
+
Rh = "Rh"
|
|
3419
|
+
Pd = "Pd"
|
|
3420
|
+
Ag = "Ag"
|
|
3421
|
+
Cd = "Cd"
|
|
3422
|
+
In = "In"
|
|
3423
|
+
Sn = "Sn"
|
|
3424
|
+
Sb = "Sb"
|
|
3425
|
+
Te = "Te"
|
|
3426
|
+
I = "I"
|
|
3427
|
+
Xe = "Xe"
|
|
3428
|
+
Cs = "Cs"
|
|
3429
|
+
Ba = "Ba"
|
|
3430
|
+
La = "La"
|
|
3431
|
+
Ce = "Ce"
|
|
3432
|
+
Pr = "Pr"
|
|
3433
|
+
Nd = "Nd"
|
|
3434
|
+
Pm = "Pm"
|
|
3435
|
+
Sm = "Sm"
|
|
3436
|
+
Eu = "Eu"
|
|
3437
|
+
Gd = "Gd"
|
|
3438
|
+
Tb = "Tb"
|
|
3439
|
+
Dy = "Dy"
|
|
3440
|
+
Ho = "Ho"
|
|
3441
|
+
Er = "Er"
|
|
3442
|
+
Tm = "Tm"
|
|
3443
|
+
Yb = "Yb"
|
|
3444
|
+
Lu = "Lu"
|
|
3445
|
+
Hf = "Hf"
|
|
3446
|
+
Ta = "Ta"
|
|
3447
|
+
W = "W"
|
|
3448
|
+
Re = "Re"
|
|
3449
|
+
Os = "Os"
|
|
3450
|
+
Ir = "Ir"
|
|
3451
|
+
Pt = "Pt"
|
|
3452
|
+
Au = "Au"
|
|
3453
|
+
Hg = "Hg"
|
|
3454
|
+
Tl = "Tl"
|
|
3455
|
+
Pb = "Pb"
|
|
3456
|
+
Bi = "Bi"
|
|
3457
|
+
Po = "Po"
|
|
3458
|
+
At = "At"
|
|
3459
|
+
Rn = "Rn"
|
|
3460
|
+
Fr = "Fr"
|
|
3461
|
+
Ra = "Ra"
|
|
3462
|
+
Ac = "Ac"
|
|
3463
|
+
Th = "Th"
|
|
3464
|
+
Pa = "Pa"
|
|
3465
|
+
U = "U"
|
|
3466
|
+
Np = "Np"
|
|
3467
|
+
Pu = "Pu"
|
|
3468
|
+
Am = "Am"
|
|
3469
|
+
Cm = "Cm"
|
|
3470
|
+
Bk = "Bk"
|
|
3471
|
+
Cf = "Cf"
|
|
3472
|
+
Es = "Es"
|
|
3473
|
+
Fm = "Fm"
|
|
3474
|
+
Md = "Md"
|
|
3475
|
+
No = "No"
|
|
3476
|
+
Lr = "Lr"
|
|
3477
|
+
Rf = "Rf"
|
|
3478
|
+
Db = "Db"
|
|
3479
|
+
Sg = "Sg"
|
|
3480
|
+
Bh = "Bh"
|
|
3481
|
+
Hs = "Hs"
|
|
3482
|
+
Mt = "Mt"
|
|
3483
|
+
Ds = "Ds"
|
|
3484
|
+
Rg = "Rg"
|
|
3485
|
+
Cn = "Cn"
|
|
3486
|
+
Nh = "Nh"
|
|
3487
|
+
Fl = "Fl"
|
|
3488
|
+
Mc = "Mc"
|
|
3489
|
+
Lv = "Lv"
|
|
3490
|
+
Ts = "Ts"
|
|
3491
|
+
Og = "Og"
|
|
3492
|
+
|
|
3493
|
+
|
|
3494
|
+
class Value81(Enum):
|
|
3495
|
+
X = "X"
|
|
3496
|
+
Vac = "Vac"
|
|
3497
|
+
|
|
3498
|
+
|
|
3499
|
+
class AtomicElementSchema39(BaseModel):
|
|
3500
|
+
value: Union[Value80, Value81]
|
|
3501
|
+
"""
|
|
3502
|
+
All elements, including extra elements
|
|
3503
|
+
"""
|
|
3504
|
+
id: int
|
|
3505
|
+
"""
|
|
3506
|
+
integer id of this entry
|
|
3507
|
+
"""
|
|
3508
|
+
|
|
3509
|
+
|
|
3510
|
+
class BasisSchema37(BaseModel):
|
|
3511
|
+
elements: List[AtomicElementSchema39] = Field(..., title="atomic elements schema")
|
|
3512
|
+
"""
|
|
3513
|
+
atomic elements schema
|
|
3514
|
+
"""
|
|
3515
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
3516
|
+
"""
|
|
3517
|
+
atomic coordinates schema
|
|
3518
|
+
"""
|
|
3519
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
3520
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
3521
|
+
"""
|
|
3522
|
+
atomic labels schema
|
|
3523
|
+
"""
|
|
3524
|
+
|
|
3525
|
+
|
|
3526
|
+
class LatticeVectorsSchema36(BaseModel):
|
|
3527
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3528
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3529
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3530
|
+
alat: Optional[float] = 1
|
|
3531
|
+
"""
|
|
3532
|
+
lattice parameter for fractional coordinates
|
|
3533
|
+
"""
|
|
3534
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
3535
|
+
|
|
3536
|
+
|
|
3537
|
+
class LatticeUnitsSchema36(BaseModel):
|
|
3538
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
3539
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
3540
|
+
|
|
3541
|
+
|
|
3542
|
+
class LatticeSchema36(BaseModel):
|
|
3543
|
+
a: float
|
|
3544
|
+
"""
|
|
3545
|
+
length of the first lattice vector
|
|
3546
|
+
"""
|
|
3547
|
+
b: float
|
|
3548
|
+
"""
|
|
3549
|
+
length of the second lattice vector
|
|
3550
|
+
"""
|
|
3551
|
+
c: float
|
|
3552
|
+
"""
|
|
3553
|
+
length of the third lattice vector
|
|
3554
|
+
"""
|
|
3555
|
+
alpha: float
|
|
3556
|
+
"""
|
|
3557
|
+
angle between first and second lattice vector
|
|
3558
|
+
"""
|
|
3559
|
+
beta: float
|
|
3560
|
+
"""
|
|
3561
|
+
angle between second and third lattice vector
|
|
3562
|
+
"""
|
|
3563
|
+
gamma: float
|
|
3564
|
+
"""
|
|
3565
|
+
angle between first and third lattice vector
|
|
3566
|
+
"""
|
|
3567
|
+
vectors: Optional[LatticeVectorsSchema36] = Field(None, title="lattice vectors schema")
|
|
3568
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
3569
|
+
units: Optional[LatticeUnitsSchema36] = Field(
|
|
3570
|
+
default_factory=lambda: LatticeUnitsSchema36.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
3571
|
+
title="Lattice units schema",
|
|
3572
|
+
)
|
|
3573
|
+
|
|
3574
|
+
|
|
3575
|
+
class Name295(Enum):
|
|
3576
|
+
volume = "volume"
|
|
3577
|
+
|
|
3578
|
+
|
|
3579
|
+
class Units117(Enum):
|
|
3580
|
+
angstrom_3 = "angstrom^3"
|
|
3581
|
+
|
|
3582
|
+
|
|
3583
|
+
class VolumeSchema36(BaseModel):
|
|
3584
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
3585
|
+
units: Optional[Units117] = None
|
|
3586
|
+
value: float
|
|
3587
|
+
|
|
3588
|
+
|
|
3589
|
+
class Name296(Enum):
|
|
3590
|
+
density = "density"
|
|
3591
|
+
|
|
3592
|
+
|
|
3593
|
+
class Units118(Enum):
|
|
3594
|
+
g_cm_3 = "g/cm^3"
|
|
3595
|
+
|
|
3596
|
+
|
|
3597
|
+
class DensitySchema36(BaseModel):
|
|
3598
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
3599
|
+
units: Optional[Units118] = None
|
|
3600
|
+
value: float
|
|
3601
|
+
|
|
3602
|
+
|
|
3603
|
+
class Units119(Enum):
|
|
3604
|
+
angstrom = "angstrom"
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
class ScalarSchema37(BaseModel):
|
|
3608
|
+
units: Optional[Units119] = None
|
|
3609
|
+
value: float
|
|
3610
|
+
|
|
3611
|
+
|
|
3612
|
+
class Name297(Enum):
|
|
3613
|
+
symmetry = "symmetry"
|
|
3614
|
+
|
|
3615
|
+
|
|
3616
|
+
class SymmetrySchema36(BaseModel):
|
|
3617
|
+
pointGroupSymbol: Optional[str] = None
|
|
3618
|
+
"""
|
|
3619
|
+
point group symbol in Schoenflies notation
|
|
3620
|
+
"""
|
|
3621
|
+
spaceGroupSymbol: Optional[str] = None
|
|
3622
|
+
"""
|
|
3623
|
+
space group symbol in Hermann–Mauguin notation
|
|
3624
|
+
"""
|
|
3625
|
+
tolerance: Optional[ScalarSchema37] = Field(None, title="scalar schema")
|
|
3626
|
+
"""
|
|
3627
|
+
tolerance used for symmetry calculation
|
|
3628
|
+
"""
|
|
3629
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
3630
|
+
|
|
3631
|
+
|
|
3632
|
+
class Name298(Enum):
|
|
3633
|
+
elemental_ratio = "elemental_ratio"
|
|
3634
|
+
|
|
3635
|
+
|
|
3636
|
+
class ElementalRatio36(BaseModel):
|
|
3637
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
3638
|
+
value: confloat(ge=0.0, le=1.0)
|
|
3639
|
+
element: Optional[str] = None
|
|
3640
|
+
"""
|
|
3641
|
+
the element this ratio is for
|
|
3642
|
+
"""
|
|
3643
|
+
|
|
3644
|
+
|
|
3645
|
+
class Name299(Enum):
|
|
3646
|
+
p_norm = "p-norm"
|
|
3647
|
+
|
|
3648
|
+
|
|
3649
|
+
class PNorm36(BaseModel):
|
|
3650
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
3651
|
+
degree: Optional[int] = None
|
|
3652
|
+
"""
|
|
3653
|
+
degree of the dimensionality of the norm
|
|
3654
|
+
"""
|
|
3655
|
+
value: float
|
|
3656
|
+
|
|
3657
|
+
|
|
3658
|
+
class Name300(Enum):
|
|
3659
|
+
inchi = "inchi"
|
|
3660
|
+
|
|
3661
|
+
|
|
3662
|
+
class InChIRepresentationSchema36(BaseModel):
|
|
3663
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
3664
|
+
value: str
|
|
3665
|
+
|
|
3666
|
+
|
|
3667
|
+
class Name301(Enum):
|
|
3668
|
+
inchi_key = "inchi_key"
|
|
3669
|
+
|
|
3670
|
+
|
|
3671
|
+
class InChIKeyRepresentationSchema36(BaseModel):
|
|
3672
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
3673
|
+
value: str
|
|
3674
|
+
|
|
3675
|
+
|
|
3676
|
+
class DerivedPropertiesSchema36(
|
|
3677
|
+
RootModel[
|
|
3678
|
+
Union[
|
|
3679
|
+
VolumeSchema36,
|
|
3680
|
+
DensitySchema36,
|
|
3681
|
+
SymmetrySchema36,
|
|
3682
|
+
ElementalRatio36,
|
|
3683
|
+
PNorm36,
|
|
3684
|
+
InChIRepresentationSchema36,
|
|
3685
|
+
InChIKeyRepresentationSchema36,
|
|
3686
|
+
]
|
|
3687
|
+
]
|
|
3688
|
+
):
|
|
3689
|
+
root: Union[
|
|
3690
|
+
VolumeSchema36,
|
|
3691
|
+
DensitySchema36,
|
|
3692
|
+
SymmetrySchema36,
|
|
3693
|
+
ElementalRatio36,
|
|
3694
|
+
PNorm36,
|
|
3695
|
+
InChIRepresentationSchema36,
|
|
3696
|
+
InChIKeyRepresentationSchema36,
|
|
3697
|
+
] = Field(..., discriminator="name")
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
class Name302(Enum):
|
|
3701
|
+
default = "default"
|
|
3702
|
+
atomsTooClose = "atomsTooClose"
|
|
3703
|
+
atomsOverlap = "atomsOverlap"
|
|
3704
|
+
|
|
3705
|
+
|
|
3706
|
+
class MaterialConsistencyCheckSchema36(BaseModel):
|
|
3707
|
+
name: Name302
|
|
3708
|
+
"""
|
|
3709
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
3710
|
+
"""
|
|
3711
|
+
key: str
|
|
3712
|
+
"""
|
|
3713
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
3714
|
+
"""
|
|
3715
|
+
severity: Severity
|
|
3716
|
+
"""
|
|
3717
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
3718
|
+
"""
|
|
3719
|
+
message: str
|
|
3720
|
+
"""
|
|
3721
|
+
Message generated by the consistency check describing the problem.
|
|
3722
|
+
"""
|
|
3723
|
+
|
|
3724
|
+
|
|
3725
|
+
class CrystalSchema36(BaseModel):
|
|
3726
|
+
formula: Optional[str] = None
|
|
3727
|
+
"""
|
|
3728
|
+
reduced chemical formula
|
|
3729
|
+
"""
|
|
3730
|
+
unitCellFormula: Optional[str] = None
|
|
3731
|
+
"""
|
|
3732
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
3733
|
+
"""
|
|
3734
|
+
basis: BasisSchema37 = Field(..., title="basis schema")
|
|
3735
|
+
lattice: LatticeSchema36 = Field(..., title="lattice schema")
|
|
3736
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema36]] = Field(None, title="derived properties schema")
|
|
3737
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
3738
|
+
"""
|
|
3739
|
+
information about a database source
|
|
3740
|
+
"""
|
|
3741
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
3742
|
+
"""
|
|
3743
|
+
file source with the information inside
|
|
3744
|
+
"""
|
|
3745
|
+
scaledHash: Optional[str] = None
|
|
3746
|
+
"""
|
|
3747
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
3748
|
+
"""
|
|
3749
|
+
icsdId: Optional[int] = None
|
|
3750
|
+
"""
|
|
3751
|
+
Corresponding ICSD id of the material
|
|
3752
|
+
"""
|
|
3753
|
+
isNonPeriodic: Optional[bool] = None
|
|
3754
|
+
"""
|
|
3755
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
3756
|
+
"""
|
|
3757
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema36]] = None
|
|
3758
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
3759
|
+
"""
|
|
3760
|
+
entity identity
|
|
3761
|
+
"""
|
|
3762
|
+
slug: Optional[str] = None
|
|
3763
|
+
"""
|
|
3764
|
+
entity slug
|
|
3765
|
+
"""
|
|
3766
|
+
systemName: Optional[str] = None
|
|
3767
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
3768
|
+
"""
|
|
3769
|
+
entity's schema version. Used to distinct between different schemas.
|
|
3770
|
+
"""
|
|
3771
|
+
name: Optional[str] = None
|
|
3772
|
+
"""
|
|
3773
|
+
entity name
|
|
3774
|
+
"""
|
|
3775
|
+
isDefault: Optional[bool] = False
|
|
3776
|
+
"""
|
|
3777
|
+
Identifies that entity is defaultable
|
|
3778
|
+
"""
|
|
3779
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
3780
|
+
|
|
3781
|
+
|
|
3782
|
+
class VacuumConfigurationSchema16(BaseModel):
|
|
3783
|
+
direction: AxisEnum = Field(..., title="Axis Enum")
|
|
3784
|
+
"""
|
|
3785
|
+
Enum for axis types
|
|
3786
|
+
"""
|
|
3787
|
+
size: Optional[confloat(ge=0.0)] = 10
|
|
3788
|
+
"""
|
|
3789
|
+
Size of the vacuum slab in angstroms
|
|
3790
|
+
"""
|
|
3791
|
+
crystal: CrystalSchema36 = Field(..., title="Crystal Schema")
|
|
3792
|
+
"""
|
|
3793
|
+
A crystal structure, referencing the base material schema
|
|
3794
|
+
"""
|
|
3795
|
+
|
|
3796
|
+
|
|
3797
|
+
class SlabStrainedSupercellConfigurationSchema3(BaseModel):
|
|
3798
|
+
xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
|
|
3799
|
+
default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
|
|
3800
|
+
max_length=2,
|
|
3801
|
+
min_length=2,
|
|
3802
|
+
title="Supercell Matrix 2D Schema",
|
|
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
|
+
)
|
|
3810
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema13, VacuumConfigurationSchema16]] = Field(
|
|
3811
|
+
..., max_length=2, min_length=2
|
|
3812
|
+
)
|
|
3813
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
3814
|
+
"""
|
|
3815
|
+
Enum for axis types
|
|
3816
|
+
"""
|
|
3817
|
+
gaps: Optional[List[ObjectWithId]] = None
|
|
3818
|
+
"""
|
|
3819
|
+
Gap distances between stack components as an array of objects with id and value
|
|
3820
|
+
"""
|
|
3821
|
+
|
|
3822
|
+
|
|
3823
|
+
class Value82(Enum):
|
|
3824
|
+
H = "H"
|
|
3825
|
+
He = "He"
|
|
3826
|
+
Li = "Li"
|
|
3827
|
+
Be = "Be"
|
|
3828
|
+
B = "B"
|
|
3829
|
+
C = "C"
|
|
3830
|
+
N = "N"
|
|
3831
|
+
O = "O"
|
|
3832
|
+
F = "F"
|
|
3833
|
+
Ne = "Ne"
|
|
3834
|
+
Na = "Na"
|
|
3835
|
+
Mg = "Mg"
|
|
3836
|
+
Al = "Al"
|
|
3837
|
+
Si = "Si"
|
|
3838
|
+
P = "P"
|
|
3839
|
+
S = "S"
|
|
3840
|
+
Cl = "Cl"
|
|
3841
|
+
Ar = "Ar"
|
|
3842
|
+
K = "K"
|
|
3843
|
+
Ca = "Ca"
|
|
3844
|
+
Sc = "Sc"
|
|
3845
|
+
Ti = "Ti"
|
|
3846
|
+
V = "V"
|
|
3847
|
+
Cr = "Cr"
|
|
3848
|
+
Mn = "Mn"
|
|
3849
|
+
Fe = "Fe"
|
|
3850
|
+
Co = "Co"
|
|
3851
|
+
Ni = "Ni"
|
|
3852
|
+
Cu = "Cu"
|
|
3853
|
+
Zn = "Zn"
|
|
3854
|
+
Ga = "Ga"
|
|
3855
|
+
Ge = "Ge"
|
|
3856
|
+
As = "As"
|
|
3857
|
+
Se = "Se"
|
|
3858
|
+
Br = "Br"
|
|
3859
|
+
Kr = "Kr"
|
|
3860
|
+
Rb = "Rb"
|
|
3861
|
+
Sr = "Sr"
|
|
3862
|
+
Y = "Y"
|
|
3863
|
+
Zr = "Zr"
|
|
3864
|
+
Nb = "Nb"
|
|
3865
|
+
Mo = "Mo"
|
|
3866
|
+
Tc = "Tc"
|
|
3867
|
+
Ru = "Ru"
|
|
3868
|
+
Rh = "Rh"
|
|
3869
|
+
Pd = "Pd"
|
|
3870
|
+
Ag = "Ag"
|
|
3871
|
+
Cd = "Cd"
|
|
3872
|
+
In = "In"
|
|
3873
|
+
Sn = "Sn"
|
|
3874
|
+
Sb = "Sb"
|
|
3875
|
+
Te = "Te"
|
|
3876
|
+
I = "I"
|
|
3877
|
+
Xe = "Xe"
|
|
3878
|
+
Cs = "Cs"
|
|
3879
|
+
Ba = "Ba"
|
|
3880
|
+
La = "La"
|
|
3881
|
+
Ce = "Ce"
|
|
3882
|
+
Pr = "Pr"
|
|
3883
|
+
Nd = "Nd"
|
|
3884
|
+
Pm = "Pm"
|
|
3885
|
+
Sm = "Sm"
|
|
3886
|
+
Eu = "Eu"
|
|
3887
|
+
Gd = "Gd"
|
|
3888
|
+
Tb = "Tb"
|
|
3889
|
+
Dy = "Dy"
|
|
3890
|
+
Ho = "Ho"
|
|
3891
|
+
Er = "Er"
|
|
3892
|
+
Tm = "Tm"
|
|
3893
|
+
Yb = "Yb"
|
|
3894
|
+
Lu = "Lu"
|
|
3895
|
+
Hf = "Hf"
|
|
3896
|
+
Ta = "Ta"
|
|
3897
|
+
W = "W"
|
|
3898
|
+
Re = "Re"
|
|
3899
|
+
Os = "Os"
|
|
3900
|
+
Ir = "Ir"
|
|
3901
|
+
Pt = "Pt"
|
|
3902
|
+
Au = "Au"
|
|
3903
|
+
Hg = "Hg"
|
|
3904
|
+
Tl = "Tl"
|
|
3905
|
+
Pb = "Pb"
|
|
3906
|
+
Bi = "Bi"
|
|
3907
|
+
Po = "Po"
|
|
3908
|
+
At = "At"
|
|
3909
|
+
Rn = "Rn"
|
|
3910
|
+
Fr = "Fr"
|
|
3911
|
+
Ra = "Ra"
|
|
3912
|
+
Ac = "Ac"
|
|
3913
|
+
Th = "Th"
|
|
3914
|
+
Pa = "Pa"
|
|
3915
|
+
U = "U"
|
|
3916
|
+
Np = "Np"
|
|
3917
|
+
Pu = "Pu"
|
|
3918
|
+
Am = "Am"
|
|
3919
|
+
Cm = "Cm"
|
|
3920
|
+
Bk = "Bk"
|
|
3921
|
+
Cf = "Cf"
|
|
3922
|
+
Es = "Es"
|
|
3923
|
+
Fm = "Fm"
|
|
3924
|
+
Md = "Md"
|
|
3925
|
+
No = "No"
|
|
3926
|
+
Lr = "Lr"
|
|
3927
|
+
Rf = "Rf"
|
|
3928
|
+
Db = "Db"
|
|
3929
|
+
Sg = "Sg"
|
|
3930
|
+
Bh = "Bh"
|
|
3931
|
+
Hs = "Hs"
|
|
3932
|
+
Mt = "Mt"
|
|
3933
|
+
Ds = "Ds"
|
|
3934
|
+
Rg = "Rg"
|
|
3935
|
+
Cn = "Cn"
|
|
3936
|
+
Nh = "Nh"
|
|
3937
|
+
Fl = "Fl"
|
|
3938
|
+
Mc = "Mc"
|
|
3939
|
+
Lv = "Lv"
|
|
3940
|
+
Ts = "Ts"
|
|
3941
|
+
Og = "Og"
|
|
3942
|
+
|
|
3943
|
+
|
|
3944
|
+
class Value83(Enum):
|
|
3945
|
+
X = "X"
|
|
3946
|
+
Vac = "Vac"
|
|
3947
|
+
|
|
3948
|
+
|
|
3949
|
+
class AtomicElementSchema40(BaseModel):
|
|
3950
|
+
value: Union[Value82, Value83]
|
|
3951
|
+
"""
|
|
3952
|
+
All elements, including extra elements
|
|
3953
|
+
"""
|
|
3954
|
+
id: int
|
|
3955
|
+
"""
|
|
3956
|
+
integer id of this entry
|
|
3957
|
+
"""
|
|
3958
|
+
|
|
3959
|
+
|
|
3960
|
+
class BasisSchema38(BaseModel):
|
|
3961
|
+
elements: List[AtomicElementSchema40] = Field(..., title="atomic elements schema")
|
|
3962
|
+
"""
|
|
3963
|
+
atomic elements schema
|
|
3964
|
+
"""
|
|
3965
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
3966
|
+
"""
|
|
3967
|
+
atomic coordinates schema
|
|
3968
|
+
"""
|
|
3969
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
3970
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
3971
|
+
"""
|
|
3972
|
+
atomic labels schema
|
|
3973
|
+
"""
|
|
3974
|
+
|
|
3975
|
+
|
|
3976
|
+
class LatticeVectorsSchema37(BaseModel):
|
|
3977
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3978
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3979
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
3980
|
+
alat: Optional[float] = 1
|
|
3981
|
+
"""
|
|
3982
|
+
lattice parameter for fractional coordinates
|
|
3983
|
+
"""
|
|
3984
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
3985
|
+
|
|
3986
|
+
|
|
3987
|
+
class LatticeUnitsSchema37(BaseModel):
|
|
3988
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
3989
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
3990
|
+
|
|
3991
|
+
|
|
3992
|
+
class LatticeSchema37(BaseModel):
|
|
3993
|
+
a: float
|
|
3994
|
+
"""
|
|
3995
|
+
length of the first lattice vector
|
|
3996
|
+
"""
|
|
3997
|
+
b: float
|
|
3998
|
+
"""
|
|
3999
|
+
length of the second lattice vector
|
|
4000
|
+
"""
|
|
4001
|
+
c: float
|
|
4002
|
+
"""
|
|
4003
|
+
length of the third lattice vector
|
|
4004
|
+
"""
|
|
4005
|
+
alpha: float
|
|
4006
|
+
"""
|
|
4007
|
+
angle between first and second lattice vector
|
|
4008
|
+
"""
|
|
4009
|
+
beta: float
|
|
4010
|
+
"""
|
|
4011
|
+
angle between second and third lattice vector
|
|
4012
|
+
"""
|
|
4013
|
+
gamma: float
|
|
4014
|
+
"""
|
|
4015
|
+
angle between first and third lattice vector
|
|
4016
|
+
"""
|
|
4017
|
+
vectors: Optional[LatticeVectorsSchema37] = Field(None, title="lattice vectors schema")
|
|
4018
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
4019
|
+
units: Optional[LatticeUnitsSchema37] = Field(
|
|
4020
|
+
default_factory=lambda: LatticeUnitsSchema37.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
4021
|
+
title="Lattice units schema",
|
|
4022
|
+
)
|
|
4023
|
+
|
|
4024
|
+
|
|
4025
|
+
class Name303(Enum):
|
|
4026
|
+
volume = "volume"
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
class Units120(Enum):
|
|
4030
|
+
angstrom_3 = "angstrom^3"
|
|
4031
|
+
|
|
4032
|
+
|
|
4033
|
+
class VolumeSchema37(BaseModel):
|
|
4034
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
4035
|
+
units: Optional[Units120] = None
|
|
4036
|
+
value: float
|
|
4037
|
+
|
|
4038
|
+
|
|
4039
|
+
class Name304(Enum):
|
|
4040
|
+
density = "density"
|
|
4041
|
+
|
|
4042
|
+
|
|
4043
|
+
class Units121(Enum):
|
|
4044
|
+
g_cm_3 = "g/cm^3"
|
|
4045
|
+
|
|
4046
|
+
|
|
4047
|
+
class DensitySchema37(BaseModel):
|
|
4048
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
4049
|
+
units: Optional[Units121] = None
|
|
4050
|
+
value: float
|
|
4051
|
+
|
|
4052
|
+
|
|
4053
|
+
class Units122(Enum):
|
|
4054
|
+
angstrom = "angstrom"
|
|
4055
|
+
|
|
4056
|
+
|
|
4057
|
+
class ScalarSchema38(BaseModel):
|
|
4058
|
+
units: Optional[Units122] = None
|
|
4059
|
+
value: float
|
|
4060
|
+
|
|
4061
|
+
|
|
4062
|
+
class Name305(Enum):
|
|
4063
|
+
symmetry = "symmetry"
|
|
4064
|
+
|
|
4065
|
+
|
|
4066
|
+
class SymmetrySchema37(BaseModel):
|
|
4067
|
+
pointGroupSymbol: Optional[str] = None
|
|
4068
|
+
"""
|
|
4069
|
+
point group symbol in Schoenflies notation
|
|
4070
|
+
"""
|
|
4071
|
+
spaceGroupSymbol: Optional[str] = None
|
|
4072
|
+
"""
|
|
4073
|
+
space group symbol in Hermann–Mauguin notation
|
|
4074
|
+
"""
|
|
4075
|
+
tolerance: Optional[ScalarSchema38] = Field(None, title="scalar schema")
|
|
4076
|
+
"""
|
|
4077
|
+
tolerance used for symmetry calculation
|
|
4078
|
+
"""
|
|
4079
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
4080
|
+
|
|
4081
|
+
|
|
4082
|
+
class Name306(Enum):
|
|
4083
|
+
elemental_ratio = "elemental_ratio"
|
|
4084
|
+
|
|
4085
|
+
|
|
4086
|
+
class ElementalRatio37(BaseModel):
|
|
4087
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
4088
|
+
value: confloat(ge=0.0, le=1.0)
|
|
4089
|
+
element: Optional[str] = None
|
|
4090
|
+
"""
|
|
4091
|
+
the element this ratio is for
|
|
4092
|
+
"""
|
|
4093
|
+
|
|
4094
|
+
|
|
4095
|
+
class Name307(Enum):
|
|
4096
|
+
p_norm = "p-norm"
|
|
4097
|
+
|
|
4098
|
+
|
|
4099
|
+
class PNorm37(BaseModel):
|
|
4100
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
4101
|
+
degree: Optional[int] = None
|
|
4102
|
+
"""
|
|
4103
|
+
degree of the dimensionality of the norm
|
|
4104
|
+
"""
|
|
4105
|
+
value: float
|
|
4106
|
+
|
|
4107
|
+
|
|
4108
|
+
class Name308(Enum):
|
|
4109
|
+
inchi = "inchi"
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
class InChIRepresentationSchema37(BaseModel):
|
|
4113
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
4114
|
+
value: str
|
|
4115
|
+
|
|
4116
|
+
|
|
4117
|
+
class Name309(Enum):
|
|
4118
|
+
inchi_key = "inchi_key"
|
|
4119
|
+
|
|
4120
|
+
|
|
4121
|
+
class InChIKeyRepresentationSchema37(BaseModel):
|
|
4122
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
4123
|
+
value: str
|
|
4124
|
+
|
|
4125
|
+
|
|
4126
|
+
class DerivedPropertiesSchema37(
|
|
4127
|
+
RootModel[
|
|
4128
|
+
Union[
|
|
4129
|
+
VolumeSchema37,
|
|
4130
|
+
DensitySchema37,
|
|
4131
|
+
SymmetrySchema37,
|
|
4132
|
+
ElementalRatio37,
|
|
4133
|
+
PNorm37,
|
|
4134
|
+
InChIRepresentationSchema37,
|
|
4135
|
+
InChIKeyRepresentationSchema37,
|
|
4136
|
+
]
|
|
4137
|
+
]
|
|
4138
|
+
):
|
|
4139
|
+
root: Union[
|
|
4140
|
+
VolumeSchema37,
|
|
4141
|
+
DensitySchema37,
|
|
4142
|
+
SymmetrySchema37,
|
|
4143
|
+
ElementalRatio37,
|
|
4144
|
+
PNorm37,
|
|
4145
|
+
InChIRepresentationSchema37,
|
|
4146
|
+
InChIKeyRepresentationSchema37,
|
|
4147
|
+
] = Field(..., discriminator="name")
|
|
4148
|
+
|
|
4149
|
+
|
|
4150
|
+
class Name310(Enum):
|
|
4151
|
+
default = "default"
|
|
4152
|
+
atomsTooClose = "atomsTooClose"
|
|
4153
|
+
atomsOverlap = "atomsOverlap"
|
|
4154
|
+
|
|
4155
|
+
|
|
4156
|
+
class MaterialConsistencyCheckSchema37(BaseModel):
|
|
4157
|
+
name: Name310
|
|
4158
|
+
"""
|
|
4159
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
4160
|
+
"""
|
|
4161
|
+
key: str
|
|
4162
|
+
"""
|
|
4163
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
4164
|
+
"""
|
|
4165
|
+
severity: Severity
|
|
4166
|
+
"""
|
|
4167
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
4168
|
+
"""
|
|
4169
|
+
message: str
|
|
4170
|
+
"""
|
|
4171
|
+
Message generated by the consistency check describing the problem.
|
|
4172
|
+
"""
|
|
4173
|
+
|
|
4174
|
+
|
|
4175
|
+
class CrystalSchema37(BaseModel):
|
|
4176
|
+
formula: Optional[str] = None
|
|
4177
|
+
"""
|
|
4178
|
+
reduced chemical formula
|
|
4179
|
+
"""
|
|
4180
|
+
unitCellFormula: Optional[str] = None
|
|
4181
|
+
"""
|
|
4182
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
4183
|
+
"""
|
|
4184
|
+
basis: BasisSchema38 = Field(..., title="basis schema")
|
|
4185
|
+
lattice: LatticeSchema37 = Field(..., title="lattice schema")
|
|
4186
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema37]] = Field(None, title="derived properties schema")
|
|
4187
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
4188
|
+
"""
|
|
4189
|
+
information about a database source
|
|
4190
|
+
"""
|
|
4191
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
4192
|
+
"""
|
|
4193
|
+
file source with the information inside
|
|
4194
|
+
"""
|
|
4195
|
+
scaledHash: Optional[str] = None
|
|
4196
|
+
"""
|
|
4197
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
4198
|
+
"""
|
|
4199
|
+
icsdId: Optional[int] = None
|
|
4200
|
+
"""
|
|
4201
|
+
Corresponding ICSD id of the material
|
|
4202
|
+
"""
|
|
4203
|
+
isNonPeriodic: Optional[bool] = None
|
|
4204
|
+
"""
|
|
4205
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
4206
|
+
"""
|
|
4207
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema37]] = None
|
|
4208
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
4209
|
+
"""
|
|
4210
|
+
entity identity
|
|
4211
|
+
"""
|
|
4212
|
+
slug: Optional[str] = None
|
|
4213
|
+
"""
|
|
4214
|
+
entity slug
|
|
4215
|
+
"""
|
|
4216
|
+
systemName: Optional[str] = None
|
|
4217
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
4218
|
+
"""
|
|
4219
|
+
entity's schema version. Used to distinct between different schemas.
|
|
4220
|
+
"""
|
|
4221
|
+
name: Optional[str] = None
|
|
4222
|
+
"""
|
|
4223
|
+
entity name
|
|
4224
|
+
"""
|
|
4225
|
+
isDefault: Optional[bool] = False
|
|
4226
|
+
"""
|
|
4227
|
+
Identifies that entity is defaultable
|
|
4228
|
+
"""
|
|
4229
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
4230
|
+
|
|
4231
|
+
|
|
4232
|
+
class VacuumConfigurationSchema17(BaseModel):
|
|
4233
|
+
direction: AxisEnum = Field(..., title="Axis Enum")
|
|
4234
|
+
"""
|
|
4235
|
+
Enum for axis types
|
|
4236
|
+
"""
|
|
4237
|
+
size: Optional[confloat(ge=0.0)] = 10
|
|
4238
|
+
"""
|
|
4239
|
+
Size of the vacuum slab in angstroms
|
|
4240
|
+
"""
|
|
4241
|
+
crystal: CrystalSchema37 = Field(..., title="Crystal Schema")
|
|
4242
|
+
"""
|
|
4243
|
+
A crystal structure, referencing the base material schema
|
|
4244
|
+
"""
|
|
4245
|
+
|
|
4246
|
+
|
|
4247
|
+
class GrainBoundaryLinearConfigurationSchema(BaseModel):
|
|
4248
|
+
stack_components: List[
|
|
4249
|
+
Union[
|
|
4250
|
+
Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema],
|
|
4251
|
+
Union[SlabConfigurationSchema8, SlabStrainedSupercellConfigurationSchema3],
|
|
4252
|
+
VacuumConfigurationSchema17,
|
|
4253
|
+
]
|
|
4254
|
+
] = Field(..., max_length=2, min_length=2)
|
|
4255
|
+
"""
|
|
4256
|
+
Components of the interface: slab, slab and vacuum
|
|
4257
|
+
"""
|
|
4258
|
+
direction: Optional[AxisEnum] = Field("x", title="Axis Enum")
|
|
4259
|
+
"""
|
|
4260
|
+
Enum for axis types
|
|
4261
|
+
"""
|
|
4262
|
+
actual_angle: Optional[confloat(ge=0.0, le=360.0)] = None
|
|
4263
|
+
"""
|
|
4264
|
+
The actual angle between the two phases
|
|
4265
|
+
"""
|
|
4266
|
+
xy_shift: Optional[List[float]] = Field([0, 0], max_length=2, min_length=2, title="vector 2d schema")
|
|
4267
|
+
"""
|
|
4268
|
+
xy shift for the film as cartesian 2D vector on the xy plane.
|
|
4269
|
+
"""
|
|
4270
|
+
gaps: Optional[List[ObjectWithId]] = None
|
|
4271
|
+
"""
|
|
4272
|
+
Gap distances between stack components as an array of objects with id and value
|
|
4273
|
+
"""
|