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,4269 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: materials_category/compound_pristine_structures/two_dimensional/interface/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 Value85(Enum):
|
|
269
|
+
X = "X"
|
|
270
|
+
Vac = "Vac"
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
class AtomicElementSchema(BaseModel):
|
|
274
|
+
value: Union[Value, Value85]
|
|
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 Name312(Enum):
|
|
423
|
+
density = "density"
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
class Units124(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[Units124] = None
|
|
433
|
+
value: float
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
class Units125(Enum):
|
|
437
|
+
angstrom = "angstrom"
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
class ScalarSchema(BaseModel):
|
|
441
|
+
units: Optional[Units125] = None
|
|
442
|
+
value: float
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
class Name313(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 Name314(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 Name315(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 Name316(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 Name317(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 Name318(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: Name318
|
|
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 Value86(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 Value87(Enum):
|
|
818
|
+
X = "X"
|
|
819
|
+
Vac = "Vac"
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
class AtomicElementSchema42(BaseModel):
|
|
823
|
+
value: Union[Value86, Value87]
|
|
824
|
+
"""
|
|
825
|
+
All elements, including extra elements
|
|
826
|
+
"""
|
|
827
|
+
id: int
|
|
828
|
+
"""
|
|
829
|
+
integer id of this entry
|
|
830
|
+
"""
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
class BasisSchema40(BaseModel):
|
|
834
|
+
elements: List[AtomicElementSchema42] = 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 LatticeVectorsSchema39(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 LatticeUnitsSchema39(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 LatticeSchema39(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[LatticeVectorsSchema39] = Field(None, title="lattice vectors schema")
|
|
891
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
892
|
+
units: Optional[LatticeUnitsSchema39] = Field(
|
|
893
|
+
default_factory=lambda: LatticeUnitsSchema39.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
894
|
+
title="Lattice units schema",
|
|
895
|
+
)
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
class Name319(Enum):
|
|
899
|
+
volume = "volume"
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
class Units126(Enum):
|
|
903
|
+
angstrom_3 = "angstrom^3"
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
class VolumeSchema39(BaseModel):
|
|
907
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
908
|
+
units: Optional[Units126] = None
|
|
909
|
+
value: float
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
class Name320(Enum):
|
|
913
|
+
density = "density"
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
class Units127(Enum):
|
|
917
|
+
g_cm_3 = "g/cm^3"
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
class DensitySchema39(BaseModel):
|
|
921
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
922
|
+
units: Optional[Units127] = None
|
|
923
|
+
value: float
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
class Units128(Enum):
|
|
927
|
+
angstrom = "angstrom"
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
class ScalarSchema40(BaseModel):
|
|
931
|
+
units: Optional[Units128] = None
|
|
932
|
+
value: float
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
class Name321(Enum):
|
|
936
|
+
symmetry = "symmetry"
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
class SymmetrySchema39(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[ScalarSchema40] = 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 Name322(Enum):
|
|
956
|
+
elemental_ratio = "elemental_ratio"
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
class ElementalRatio39(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 Name323(Enum):
|
|
969
|
+
p_norm = "p-norm"
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
class PNorm39(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 Name324(Enum):
|
|
982
|
+
inchi = "inchi"
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
class InChIRepresentationSchema39(BaseModel):
|
|
986
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
987
|
+
value: str
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
class Name325(Enum):
|
|
991
|
+
inchi_key = "inchi_key"
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
class InChIKeyRepresentationSchema39(BaseModel):
|
|
995
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
996
|
+
value: str
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
class DerivedPropertiesSchema39(
|
|
1000
|
+
RootModel[
|
|
1001
|
+
Union[
|
|
1002
|
+
VolumeSchema39,
|
|
1003
|
+
DensitySchema39,
|
|
1004
|
+
SymmetrySchema39,
|
|
1005
|
+
ElementalRatio39,
|
|
1006
|
+
PNorm39,
|
|
1007
|
+
InChIRepresentationSchema39,
|
|
1008
|
+
InChIKeyRepresentationSchema39,
|
|
1009
|
+
]
|
|
1010
|
+
]
|
|
1011
|
+
):
|
|
1012
|
+
root: Union[
|
|
1013
|
+
VolumeSchema39,
|
|
1014
|
+
DensitySchema39,
|
|
1015
|
+
SymmetrySchema39,
|
|
1016
|
+
ElementalRatio39,
|
|
1017
|
+
PNorm39,
|
|
1018
|
+
InChIRepresentationSchema39,
|
|
1019
|
+
InChIKeyRepresentationSchema39,
|
|
1020
|
+
] = Field(..., discriminator="name")
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
class Name326(Enum):
|
|
1024
|
+
default = "default"
|
|
1025
|
+
atomsTooClose = "atomsTooClose"
|
|
1026
|
+
atomsOverlap = "atomsOverlap"
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
class MaterialConsistencyCheckSchema39(BaseModel):
|
|
1030
|
+
name: Name326
|
|
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 CrystalSchema39(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: BasisSchema40 = Field(..., title="basis schema")
|
|
1058
|
+
lattice: LatticeSchema39 = Field(..., title="lattice schema")
|
|
1059
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema39]] = 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[MaterialConsistencyCheckSchema39]] = 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: CrystalSchema39 = 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 TerminationSchema17(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 Value88(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 Value89(Enum):
|
|
1285
|
+
X = "X"
|
|
1286
|
+
Vac = "Vac"
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
class AtomicElementSchema43(BaseModel):
|
|
1290
|
+
value: Union[Value88, Value89]
|
|
1291
|
+
"""
|
|
1292
|
+
All elements, including extra elements
|
|
1293
|
+
"""
|
|
1294
|
+
id: int
|
|
1295
|
+
"""
|
|
1296
|
+
integer id of this entry
|
|
1297
|
+
"""
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
class BasisSchema41(BaseModel):
|
|
1301
|
+
elements: List[AtomicElementSchema43] = 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 LatticeVectorsSchema40(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 LatticeUnitsSchema40(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 LatticeSchema40(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[LatticeVectorsSchema40] = Field(None, title="lattice vectors schema")
|
|
1358
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1359
|
+
units: Optional[LatticeUnitsSchema40] = Field(
|
|
1360
|
+
default_factory=lambda: LatticeUnitsSchema40.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1361
|
+
title="Lattice units schema",
|
|
1362
|
+
)
|
|
1363
|
+
|
|
1364
|
+
|
|
1365
|
+
class Name327(Enum):
|
|
1366
|
+
volume = "volume"
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
class Units129(Enum):
|
|
1370
|
+
angstrom_3 = "angstrom^3"
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
class VolumeSchema40(BaseModel):
|
|
1374
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1375
|
+
units: Optional[Units129] = None
|
|
1376
|
+
value: float
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
class Name328(Enum):
|
|
1380
|
+
density = "density"
|
|
1381
|
+
|
|
1382
|
+
|
|
1383
|
+
class Units130(Enum):
|
|
1384
|
+
g_cm_3 = "g/cm^3"
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
class DensitySchema40(BaseModel):
|
|
1388
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1389
|
+
units: Optional[Units130] = None
|
|
1390
|
+
value: float
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
class Units131(Enum):
|
|
1394
|
+
angstrom = "angstrom"
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
class ScalarSchema41(BaseModel):
|
|
1398
|
+
units: Optional[Units131] = None
|
|
1399
|
+
value: float
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
class Name329(Enum):
|
|
1403
|
+
symmetry = "symmetry"
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
class SymmetrySchema40(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[ScalarSchema41] = 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 Name330(Enum):
|
|
1423
|
+
elemental_ratio = "elemental_ratio"
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
class ElementalRatio40(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 Name331(Enum):
|
|
1436
|
+
p_norm = "p-norm"
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
class PNorm40(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 Name332(Enum):
|
|
1449
|
+
inchi = "inchi"
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
class InChIRepresentationSchema40(BaseModel):
|
|
1453
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1454
|
+
value: str
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
class Name333(Enum):
|
|
1458
|
+
inchi_key = "inchi_key"
|
|
1459
|
+
|
|
1460
|
+
|
|
1461
|
+
class InChIKeyRepresentationSchema40(BaseModel):
|
|
1462
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1463
|
+
value: str
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
class DerivedPropertiesSchema40(
|
|
1467
|
+
RootModel[
|
|
1468
|
+
Union[
|
|
1469
|
+
VolumeSchema40,
|
|
1470
|
+
DensitySchema40,
|
|
1471
|
+
SymmetrySchema40,
|
|
1472
|
+
ElementalRatio40,
|
|
1473
|
+
PNorm40,
|
|
1474
|
+
InChIRepresentationSchema40,
|
|
1475
|
+
InChIKeyRepresentationSchema40,
|
|
1476
|
+
]
|
|
1477
|
+
]
|
|
1478
|
+
):
|
|
1479
|
+
root: Union[
|
|
1480
|
+
VolumeSchema40,
|
|
1481
|
+
DensitySchema40,
|
|
1482
|
+
SymmetrySchema40,
|
|
1483
|
+
ElementalRatio40,
|
|
1484
|
+
PNorm40,
|
|
1485
|
+
InChIRepresentationSchema40,
|
|
1486
|
+
InChIKeyRepresentationSchema40,
|
|
1487
|
+
] = Field(..., discriminator="name")
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
class Name334(Enum):
|
|
1491
|
+
default = "default"
|
|
1492
|
+
atomsTooClose = "atomsTooClose"
|
|
1493
|
+
atomsOverlap = "atomsOverlap"
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
class MaterialConsistencyCheckSchema40(BaseModel):
|
|
1497
|
+
name: Name334
|
|
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 CrystalSchema40(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: BasisSchema41 = Field(..., title="basis schema")
|
|
1525
|
+
lattice: LatticeSchema40 = Field(..., title="lattice schema")
|
|
1526
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema40]] = 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[MaterialConsistencyCheckSchema40]] = 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 AtomicLayersUniqueRepeatedSchema15(BaseModel):
|
|
1573
|
+
termination_top: TerminationSchema17 = 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: CrystalSchema40 = 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 Value90(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 Value91(Enum):
|
|
1717
|
+
X = "X"
|
|
1718
|
+
Vac = "Vac"
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
class AtomicElementSchema44(BaseModel):
|
|
1722
|
+
value: Union[Value90, Value91]
|
|
1723
|
+
"""
|
|
1724
|
+
All elements, including extra elements
|
|
1725
|
+
"""
|
|
1726
|
+
id: int
|
|
1727
|
+
"""
|
|
1728
|
+
integer id of this entry
|
|
1729
|
+
"""
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
class BasisSchema42(BaseModel):
|
|
1733
|
+
elements: List[AtomicElementSchema44] = 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 LatticeVectorsSchema41(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 LatticeUnitsSchema41(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 LatticeSchema41(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[LatticeVectorsSchema41] = Field(None, title="lattice vectors schema")
|
|
1790
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1791
|
+
units: Optional[LatticeUnitsSchema41] = Field(
|
|
1792
|
+
default_factory=lambda: LatticeUnitsSchema41.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1793
|
+
title="Lattice units schema",
|
|
1794
|
+
)
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
class Name335(Enum):
|
|
1798
|
+
volume = "volume"
|
|
1799
|
+
|
|
1800
|
+
|
|
1801
|
+
class Units132(Enum):
|
|
1802
|
+
angstrom_3 = "angstrom^3"
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
class VolumeSchema41(BaseModel):
|
|
1806
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1807
|
+
units: Optional[Units132] = None
|
|
1808
|
+
value: float
|
|
1809
|
+
|
|
1810
|
+
|
|
1811
|
+
class Name336(Enum):
|
|
1812
|
+
density = "density"
|
|
1813
|
+
|
|
1814
|
+
|
|
1815
|
+
class Units133(Enum):
|
|
1816
|
+
g_cm_3 = "g/cm^3"
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
class DensitySchema41(BaseModel):
|
|
1820
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1821
|
+
units: Optional[Units133] = None
|
|
1822
|
+
value: float
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
class Units134(Enum):
|
|
1826
|
+
angstrom = "angstrom"
|
|
1827
|
+
|
|
1828
|
+
|
|
1829
|
+
class ScalarSchema42(BaseModel):
|
|
1830
|
+
units: Optional[Units134] = None
|
|
1831
|
+
value: float
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
class Name337(Enum):
|
|
1835
|
+
symmetry = "symmetry"
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
class SymmetrySchema41(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[ScalarSchema42] = 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 Name338(Enum):
|
|
1855
|
+
elemental_ratio = "elemental_ratio"
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
class ElementalRatio41(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 Name339(Enum):
|
|
1868
|
+
p_norm = "p-norm"
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
class PNorm41(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 Name340(Enum):
|
|
1881
|
+
inchi = "inchi"
|
|
1882
|
+
|
|
1883
|
+
|
|
1884
|
+
class InChIRepresentationSchema41(BaseModel):
|
|
1885
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1886
|
+
value: str
|
|
1887
|
+
|
|
1888
|
+
|
|
1889
|
+
class Name341(Enum):
|
|
1890
|
+
inchi_key = "inchi_key"
|
|
1891
|
+
|
|
1892
|
+
|
|
1893
|
+
class InChIKeyRepresentationSchema41(BaseModel):
|
|
1894
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1895
|
+
value: str
|
|
1896
|
+
|
|
1897
|
+
|
|
1898
|
+
class DerivedPropertiesSchema41(
|
|
1899
|
+
RootModel[
|
|
1900
|
+
Union[
|
|
1901
|
+
VolumeSchema41,
|
|
1902
|
+
DensitySchema41,
|
|
1903
|
+
SymmetrySchema41,
|
|
1904
|
+
ElementalRatio41,
|
|
1905
|
+
PNorm41,
|
|
1906
|
+
InChIRepresentationSchema41,
|
|
1907
|
+
InChIKeyRepresentationSchema41,
|
|
1908
|
+
]
|
|
1909
|
+
]
|
|
1910
|
+
):
|
|
1911
|
+
root: Union[
|
|
1912
|
+
VolumeSchema41,
|
|
1913
|
+
DensitySchema41,
|
|
1914
|
+
SymmetrySchema41,
|
|
1915
|
+
ElementalRatio41,
|
|
1916
|
+
PNorm41,
|
|
1917
|
+
InChIRepresentationSchema41,
|
|
1918
|
+
InChIKeyRepresentationSchema41,
|
|
1919
|
+
] = Field(..., discriminator="name")
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
class Name342(Enum):
|
|
1923
|
+
default = "default"
|
|
1924
|
+
atomsTooClose = "atomsTooClose"
|
|
1925
|
+
atomsOverlap = "atomsOverlap"
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
class MaterialConsistencyCheckSchema41(BaseModel):
|
|
1929
|
+
name: Name342
|
|
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 CrystalSchema41(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: BasisSchema42 = Field(..., title="basis schema")
|
|
1957
|
+
lattice: LatticeSchema41 = Field(..., title="lattice schema")
|
|
1958
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema41]] = 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[MaterialConsistencyCheckSchema41]] = 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 VacuumConfigurationSchema19(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: CrystalSchema41 = 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[AtomicLayersUniqueRepeatedSchema15, VacuumConfigurationSchema19]] = 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 TerminationSchema18(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 Value92(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 Value93(Enum):
|
|
2180
|
+
X = "X"
|
|
2181
|
+
Vac = "Vac"
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
class AtomicElementSchema45(BaseModel):
|
|
2185
|
+
value: Union[Value92, Value93]
|
|
2186
|
+
"""
|
|
2187
|
+
All elements, including extra elements
|
|
2188
|
+
"""
|
|
2189
|
+
id: int
|
|
2190
|
+
"""
|
|
2191
|
+
integer id of this entry
|
|
2192
|
+
"""
|
|
2193
|
+
|
|
2194
|
+
|
|
2195
|
+
class BasisSchema43(BaseModel):
|
|
2196
|
+
elements: List[AtomicElementSchema45] = 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 LatticeVectorsSchema42(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 LatticeUnitsSchema42(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 LatticeSchema42(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[LatticeVectorsSchema42] = Field(None, title="lattice vectors schema")
|
|
2253
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
2254
|
+
units: Optional[LatticeUnitsSchema42] = Field(
|
|
2255
|
+
default_factory=lambda: LatticeUnitsSchema42.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
2256
|
+
title="Lattice units schema",
|
|
2257
|
+
)
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
class Name343(Enum):
|
|
2261
|
+
volume = "volume"
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
class Units135(Enum):
|
|
2265
|
+
angstrom_3 = "angstrom^3"
|
|
2266
|
+
|
|
2267
|
+
|
|
2268
|
+
class VolumeSchema42(BaseModel):
|
|
2269
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
2270
|
+
units: Optional[Units135] = None
|
|
2271
|
+
value: float
|
|
2272
|
+
|
|
2273
|
+
|
|
2274
|
+
class Name344(Enum):
|
|
2275
|
+
density = "density"
|
|
2276
|
+
|
|
2277
|
+
|
|
2278
|
+
class Units136(Enum):
|
|
2279
|
+
g_cm_3 = "g/cm^3"
|
|
2280
|
+
|
|
2281
|
+
|
|
2282
|
+
class DensitySchema42(BaseModel):
|
|
2283
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
2284
|
+
units: Optional[Units136] = None
|
|
2285
|
+
value: float
|
|
2286
|
+
|
|
2287
|
+
|
|
2288
|
+
class Units137(Enum):
|
|
2289
|
+
angstrom = "angstrom"
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
class ScalarSchema43(BaseModel):
|
|
2293
|
+
units: Optional[Units137] = None
|
|
2294
|
+
value: float
|
|
2295
|
+
|
|
2296
|
+
|
|
2297
|
+
class Name345(Enum):
|
|
2298
|
+
symmetry = "symmetry"
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
class SymmetrySchema42(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[ScalarSchema43] = 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 Name346(Enum):
|
|
2318
|
+
elemental_ratio = "elemental_ratio"
|
|
2319
|
+
|
|
2320
|
+
|
|
2321
|
+
class ElementalRatio42(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 Name347(Enum):
|
|
2331
|
+
p_norm = "p-norm"
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
class PNorm42(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 Name348(Enum):
|
|
2344
|
+
inchi = "inchi"
|
|
2345
|
+
|
|
2346
|
+
|
|
2347
|
+
class InChIRepresentationSchema42(BaseModel):
|
|
2348
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
2349
|
+
value: str
|
|
2350
|
+
|
|
2351
|
+
|
|
2352
|
+
class Name349(Enum):
|
|
2353
|
+
inchi_key = "inchi_key"
|
|
2354
|
+
|
|
2355
|
+
|
|
2356
|
+
class InChIKeyRepresentationSchema42(BaseModel):
|
|
2357
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
2358
|
+
value: str
|
|
2359
|
+
|
|
2360
|
+
|
|
2361
|
+
class DerivedPropertiesSchema42(
|
|
2362
|
+
RootModel[
|
|
2363
|
+
Union[
|
|
2364
|
+
VolumeSchema42,
|
|
2365
|
+
DensitySchema42,
|
|
2366
|
+
SymmetrySchema42,
|
|
2367
|
+
ElementalRatio42,
|
|
2368
|
+
PNorm42,
|
|
2369
|
+
InChIRepresentationSchema42,
|
|
2370
|
+
InChIKeyRepresentationSchema42,
|
|
2371
|
+
]
|
|
2372
|
+
]
|
|
2373
|
+
):
|
|
2374
|
+
root: Union[
|
|
2375
|
+
VolumeSchema42,
|
|
2376
|
+
DensitySchema42,
|
|
2377
|
+
SymmetrySchema42,
|
|
2378
|
+
ElementalRatio42,
|
|
2379
|
+
PNorm42,
|
|
2380
|
+
InChIRepresentationSchema42,
|
|
2381
|
+
InChIKeyRepresentationSchema42,
|
|
2382
|
+
] = Field(..., discriminator="name")
|
|
2383
|
+
|
|
2384
|
+
|
|
2385
|
+
class Name350(Enum):
|
|
2386
|
+
default = "default"
|
|
2387
|
+
atomsTooClose = "atomsTooClose"
|
|
2388
|
+
atomsOverlap = "atomsOverlap"
|
|
2389
|
+
|
|
2390
|
+
|
|
2391
|
+
class MaterialConsistencyCheckSchema42(BaseModel):
|
|
2392
|
+
name: Name350
|
|
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 CrystalSchema42(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: BasisSchema43 = Field(..., title="basis schema")
|
|
2420
|
+
lattice: LatticeSchema42 = Field(..., title="lattice schema")
|
|
2421
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema42]] = 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[MaterialConsistencyCheckSchema42]] = 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 AtomicLayersUniqueRepeatedSchema16(BaseModel):
|
|
2468
|
+
termination_top: TerminationSchema18 = 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: CrystalSchema42 = 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 Value94(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 Value95(Enum):
|
|
2612
|
+
X = "X"
|
|
2613
|
+
Vac = "Vac"
|
|
2614
|
+
|
|
2615
|
+
|
|
2616
|
+
class AtomicElementSchema46(BaseModel):
|
|
2617
|
+
value: Union[Value94, Value95]
|
|
2618
|
+
"""
|
|
2619
|
+
All elements, including extra elements
|
|
2620
|
+
"""
|
|
2621
|
+
id: int
|
|
2622
|
+
"""
|
|
2623
|
+
integer id of this entry
|
|
2624
|
+
"""
|
|
2625
|
+
|
|
2626
|
+
|
|
2627
|
+
class BasisSchema44(BaseModel):
|
|
2628
|
+
elements: List[AtomicElementSchema46] = 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 LatticeVectorsSchema43(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 LatticeUnitsSchema43(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 LatticeSchema43(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[LatticeVectorsSchema43] = Field(None, title="lattice vectors schema")
|
|
2685
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
2686
|
+
units: Optional[LatticeUnitsSchema43] = Field(
|
|
2687
|
+
default_factory=lambda: LatticeUnitsSchema43.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
2688
|
+
title="Lattice units schema",
|
|
2689
|
+
)
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
class Name351(Enum):
|
|
2693
|
+
volume = "volume"
|
|
2694
|
+
|
|
2695
|
+
|
|
2696
|
+
class Units138(Enum):
|
|
2697
|
+
angstrom_3 = "angstrom^3"
|
|
2698
|
+
|
|
2699
|
+
|
|
2700
|
+
class VolumeSchema43(BaseModel):
|
|
2701
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
2702
|
+
units: Optional[Units138] = None
|
|
2703
|
+
value: float
|
|
2704
|
+
|
|
2705
|
+
|
|
2706
|
+
class Name352(Enum):
|
|
2707
|
+
density = "density"
|
|
2708
|
+
|
|
2709
|
+
|
|
2710
|
+
class Units139(Enum):
|
|
2711
|
+
g_cm_3 = "g/cm^3"
|
|
2712
|
+
|
|
2713
|
+
|
|
2714
|
+
class DensitySchema43(BaseModel):
|
|
2715
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
2716
|
+
units: Optional[Units139] = None
|
|
2717
|
+
value: float
|
|
2718
|
+
|
|
2719
|
+
|
|
2720
|
+
class Units140(Enum):
|
|
2721
|
+
angstrom = "angstrom"
|
|
2722
|
+
|
|
2723
|
+
|
|
2724
|
+
class ScalarSchema44(BaseModel):
|
|
2725
|
+
units: Optional[Units140] = None
|
|
2726
|
+
value: float
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
class Name353(Enum):
|
|
2730
|
+
symmetry = "symmetry"
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
class SymmetrySchema43(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[ScalarSchema44] = 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 Name354(Enum):
|
|
2750
|
+
elemental_ratio = "elemental_ratio"
|
|
2751
|
+
|
|
2752
|
+
|
|
2753
|
+
class ElementalRatio43(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 Name355(Enum):
|
|
2763
|
+
p_norm = "p-norm"
|
|
2764
|
+
|
|
2765
|
+
|
|
2766
|
+
class PNorm43(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 Name356(Enum):
|
|
2776
|
+
inchi = "inchi"
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
class InChIRepresentationSchema43(BaseModel):
|
|
2780
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
2781
|
+
value: str
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
class Name357(Enum):
|
|
2785
|
+
inchi_key = "inchi_key"
|
|
2786
|
+
|
|
2787
|
+
|
|
2788
|
+
class InChIKeyRepresentationSchema43(BaseModel):
|
|
2789
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
2790
|
+
value: str
|
|
2791
|
+
|
|
2792
|
+
|
|
2793
|
+
class DerivedPropertiesSchema43(
|
|
2794
|
+
RootModel[
|
|
2795
|
+
Union[
|
|
2796
|
+
VolumeSchema43,
|
|
2797
|
+
DensitySchema43,
|
|
2798
|
+
SymmetrySchema43,
|
|
2799
|
+
ElementalRatio43,
|
|
2800
|
+
PNorm43,
|
|
2801
|
+
InChIRepresentationSchema43,
|
|
2802
|
+
InChIKeyRepresentationSchema43,
|
|
2803
|
+
]
|
|
2804
|
+
]
|
|
2805
|
+
):
|
|
2806
|
+
root: Union[
|
|
2807
|
+
VolumeSchema43,
|
|
2808
|
+
DensitySchema43,
|
|
2809
|
+
SymmetrySchema43,
|
|
2810
|
+
ElementalRatio43,
|
|
2811
|
+
PNorm43,
|
|
2812
|
+
InChIRepresentationSchema43,
|
|
2813
|
+
InChIKeyRepresentationSchema43,
|
|
2814
|
+
] = Field(..., discriminator="name")
|
|
2815
|
+
|
|
2816
|
+
|
|
2817
|
+
class Name358(Enum):
|
|
2818
|
+
default = "default"
|
|
2819
|
+
atomsTooClose = "atomsTooClose"
|
|
2820
|
+
atomsOverlap = "atomsOverlap"
|
|
2821
|
+
|
|
2822
|
+
|
|
2823
|
+
class MaterialConsistencyCheckSchema43(BaseModel):
|
|
2824
|
+
name: Name358
|
|
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 CrystalSchema43(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: BasisSchema44 = Field(..., title="basis schema")
|
|
2852
|
+
lattice: LatticeSchema43 = Field(..., title="lattice schema")
|
|
2853
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema43]] = 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[MaterialConsistencyCheckSchema43]] = 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 VacuumConfigurationSchema20(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: CrystalSchema43 = Field(..., title="Crystal Schema")
|
|
2909
|
+
"""
|
|
2910
|
+
A crystal structure, referencing the base material schema
|
|
2911
|
+
"""
|
|
2912
|
+
|
|
2913
|
+
|
|
2914
|
+
class SlabConfigurationSchema10(BaseModel):
|
|
2915
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema16, VacuumConfigurationSchema20]] = 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 TerminationSchema19(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 Value96(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 Value97(Enum):
|
|
3063
|
+
X = "X"
|
|
3064
|
+
Vac = "Vac"
|
|
3065
|
+
|
|
3066
|
+
|
|
3067
|
+
class AtomicElementSchema47(BaseModel):
|
|
3068
|
+
value: Union[Value96, Value97]
|
|
3069
|
+
"""
|
|
3070
|
+
All elements, including extra elements
|
|
3071
|
+
"""
|
|
3072
|
+
id: int
|
|
3073
|
+
"""
|
|
3074
|
+
integer id of this entry
|
|
3075
|
+
"""
|
|
3076
|
+
|
|
3077
|
+
|
|
3078
|
+
class BasisSchema45(BaseModel):
|
|
3079
|
+
elements: List[AtomicElementSchema47] = 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 LatticeVectorsSchema44(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 LatticeUnitsSchema44(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 LatticeSchema44(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[LatticeVectorsSchema44] = Field(None, title="lattice vectors schema")
|
|
3136
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
3137
|
+
units: Optional[LatticeUnitsSchema44] = Field(
|
|
3138
|
+
default_factory=lambda: LatticeUnitsSchema44.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
3139
|
+
title="Lattice units schema",
|
|
3140
|
+
)
|
|
3141
|
+
|
|
3142
|
+
|
|
3143
|
+
class Name359(Enum):
|
|
3144
|
+
volume = "volume"
|
|
3145
|
+
|
|
3146
|
+
|
|
3147
|
+
class Units141(Enum):
|
|
3148
|
+
angstrom_3 = "angstrom^3"
|
|
3149
|
+
|
|
3150
|
+
|
|
3151
|
+
class VolumeSchema44(BaseModel):
|
|
3152
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
3153
|
+
units: Optional[Units141] = None
|
|
3154
|
+
value: float
|
|
3155
|
+
|
|
3156
|
+
|
|
3157
|
+
class Name360(Enum):
|
|
3158
|
+
density = "density"
|
|
3159
|
+
|
|
3160
|
+
|
|
3161
|
+
class Units142(Enum):
|
|
3162
|
+
g_cm_3 = "g/cm^3"
|
|
3163
|
+
|
|
3164
|
+
|
|
3165
|
+
class DensitySchema44(BaseModel):
|
|
3166
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
3167
|
+
units: Optional[Units142] = None
|
|
3168
|
+
value: float
|
|
3169
|
+
|
|
3170
|
+
|
|
3171
|
+
class Units143(Enum):
|
|
3172
|
+
angstrom = "angstrom"
|
|
3173
|
+
|
|
3174
|
+
|
|
3175
|
+
class ScalarSchema45(BaseModel):
|
|
3176
|
+
units: Optional[Units143] = None
|
|
3177
|
+
value: float
|
|
3178
|
+
|
|
3179
|
+
|
|
3180
|
+
class Name361(Enum):
|
|
3181
|
+
symmetry = "symmetry"
|
|
3182
|
+
|
|
3183
|
+
|
|
3184
|
+
class SymmetrySchema44(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[ScalarSchema45] = 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 Name362(Enum):
|
|
3201
|
+
elemental_ratio = "elemental_ratio"
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
class ElementalRatio44(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 Name363(Enum):
|
|
3214
|
+
p_norm = "p-norm"
|
|
3215
|
+
|
|
3216
|
+
|
|
3217
|
+
class PNorm44(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 Name364(Enum):
|
|
3227
|
+
inchi = "inchi"
|
|
3228
|
+
|
|
3229
|
+
|
|
3230
|
+
class InChIRepresentationSchema44(BaseModel):
|
|
3231
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
3232
|
+
value: str
|
|
3233
|
+
|
|
3234
|
+
|
|
3235
|
+
class Name365(Enum):
|
|
3236
|
+
inchi_key = "inchi_key"
|
|
3237
|
+
|
|
3238
|
+
|
|
3239
|
+
class InChIKeyRepresentationSchema44(BaseModel):
|
|
3240
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
3241
|
+
value: str
|
|
3242
|
+
|
|
3243
|
+
|
|
3244
|
+
class DerivedPropertiesSchema44(
|
|
3245
|
+
RootModel[
|
|
3246
|
+
Union[
|
|
3247
|
+
VolumeSchema44,
|
|
3248
|
+
DensitySchema44,
|
|
3249
|
+
SymmetrySchema44,
|
|
3250
|
+
ElementalRatio44,
|
|
3251
|
+
PNorm44,
|
|
3252
|
+
InChIRepresentationSchema44,
|
|
3253
|
+
InChIKeyRepresentationSchema44,
|
|
3254
|
+
]
|
|
3255
|
+
]
|
|
3256
|
+
):
|
|
3257
|
+
root: Union[
|
|
3258
|
+
VolumeSchema44,
|
|
3259
|
+
DensitySchema44,
|
|
3260
|
+
SymmetrySchema44,
|
|
3261
|
+
ElementalRatio44,
|
|
3262
|
+
PNorm44,
|
|
3263
|
+
InChIRepresentationSchema44,
|
|
3264
|
+
InChIKeyRepresentationSchema44,
|
|
3265
|
+
] = Field(..., discriminator="name")
|
|
3266
|
+
|
|
3267
|
+
|
|
3268
|
+
class Name366(Enum):
|
|
3269
|
+
default = "default"
|
|
3270
|
+
atomsTooClose = "atomsTooClose"
|
|
3271
|
+
atomsOverlap = "atomsOverlap"
|
|
3272
|
+
|
|
3273
|
+
|
|
3274
|
+
class MaterialConsistencyCheckSchema44(BaseModel):
|
|
3275
|
+
name: Name366
|
|
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 CrystalSchema44(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: BasisSchema45 = Field(..., title="basis schema")
|
|
3303
|
+
lattice: LatticeSchema44 = Field(..., title="lattice schema")
|
|
3304
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema44]] = 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[MaterialConsistencyCheckSchema44]] = 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 AtomicLayersUniqueRepeatedSchema17(BaseModel):
|
|
3351
|
+
termination_top: TerminationSchema19 = 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: CrystalSchema44 = 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 Value98(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 Value99(Enum):
|
|
3495
|
+
X = "X"
|
|
3496
|
+
Vac = "Vac"
|
|
3497
|
+
|
|
3498
|
+
|
|
3499
|
+
class AtomicElementSchema48(BaseModel):
|
|
3500
|
+
value: Union[Value98, Value99]
|
|
3501
|
+
"""
|
|
3502
|
+
All elements, including extra elements
|
|
3503
|
+
"""
|
|
3504
|
+
id: int
|
|
3505
|
+
"""
|
|
3506
|
+
integer id of this entry
|
|
3507
|
+
"""
|
|
3508
|
+
|
|
3509
|
+
|
|
3510
|
+
class BasisSchema46(BaseModel):
|
|
3511
|
+
elements: List[AtomicElementSchema48] = 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 LatticeVectorsSchema45(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 LatticeUnitsSchema45(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 LatticeSchema45(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[LatticeVectorsSchema45] = Field(None, title="lattice vectors schema")
|
|
3568
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
3569
|
+
units: Optional[LatticeUnitsSchema45] = Field(
|
|
3570
|
+
default_factory=lambda: LatticeUnitsSchema45.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
3571
|
+
title="Lattice units schema",
|
|
3572
|
+
)
|
|
3573
|
+
|
|
3574
|
+
|
|
3575
|
+
class Name367(Enum):
|
|
3576
|
+
volume = "volume"
|
|
3577
|
+
|
|
3578
|
+
|
|
3579
|
+
class Units144(Enum):
|
|
3580
|
+
angstrom_3 = "angstrom^3"
|
|
3581
|
+
|
|
3582
|
+
|
|
3583
|
+
class VolumeSchema45(BaseModel):
|
|
3584
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
3585
|
+
units: Optional[Units144] = None
|
|
3586
|
+
value: float
|
|
3587
|
+
|
|
3588
|
+
|
|
3589
|
+
class Name368(Enum):
|
|
3590
|
+
density = "density"
|
|
3591
|
+
|
|
3592
|
+
|
|
3593
|
+
class Units145(Enum):
|
|
3594
|
+
g_cm_3 = "g/cm^3"
|
|
3595
|
+
|
|
3596
|
+
|
|
3597
|
+
class DensitySchema45(BaseModel):
|
|
3598
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
3599
|
+
units: Optional[Units145] = None
|
|
3600
|
+
value: float
|
|
3601
|
+
|
|
3602
|
+
|
|
3603
|
+
class Units146(Enum):
|
|
3604
|
+
angstrom = "angstrom"
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
class ScalarSchema46(BaseModel):
|
|
3608
|
+
units: Optional[Units146] = None
|
|
3609
|
+
value: float
|
|
3610
|
+
|
|
3611
|
+
|
|
3612
|
+
class Name369(Enum):
|
|
3613
|
+
symmetry = "symmetry"
|
|
3614
|
+
|
|
3615
|
+
|
|
3616
|
+
class SymmetrySchema45(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[ScalarSchema46] = 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 Name370(Enum):
|
|
3633
|
+
elemental_ratio = "elemental_ratio"
|
|
3634
|
+
|
|
3635
|
+
|
|
3636
|
+
class ElementalRatio45(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 Name371(Enum):
|
|
3646
|
+
p_norm = "p-norm"
|
|
3647
|
+
|
|
3648
|
+
|
|
3649
|
+
class PNorm45(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 Name372(Enum):
|
|
3659
|
+
inchi = "inchi"
|
|
3660
|
+
|
|
3661
|
+
|
|
3662
|
+
class InChIRepresentationSchema45(BaseModel):
|
|
3663
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
3664
|
+
value: str
|
|
3665
|
+
|
|
3666
|
+
|
|
3667
|
+
class Name373(Enum):
|
|
3668
|
+
inchi_key = "inchi_key"
|
|
3669
|
+
|
|
3670
|
+
|
|
3671
|
+
class InChIKeyRepresentationSchema45(BaseModel):
|
|
3672
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
3673
|
+
value: str
|
|
3674
|
+
|
|
3675
|
+
|
|
3676
|
+
class DerivedPropertiesSchema45(
|
|
3677
|
+
RootModel[
|
|
3678
|
+
Union[
|
|
3679
|
+
VolumeSchema45,
|
|
3680
|
+
DensitySchema45,
|
|
3681
|
+
SymmetrySchema45,
|
|
3682
|
+
ElementalRatio45,
|
|
3683
|
+
PNorm45,
|
|
3684
|
+
InChIRepresentationSchema45,
|
|
3685
|
+
InChIKeyRepresentationSchema45,
|
|
3686
|
+
]
|
|
3687
|
+
]
|
|
3688
|
+
):
|
|
3689
|
+
root: Union[
|
|
3690
|
+
VolumeSchema45,
|
|
3691
|
+
DensitySchema45,
|
|
3692
|
+
SymmetrySchema45,
|
|
3693
|
+
ElementalRatio45,
|
|
3694
|
+
PNorm45,
|
|
3695
|
+
InChIRepresentationSchema45,
|
|
3696
|
+
InChIKeyRepresentationSchema45,
|
|
3697
|
+
] = Field(..., discriminator="name")
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
class Name374(Enum):
|
|
3701
|
+
default = "default"
|
|
3702
|
+
atomsTooClose = "atomsTooClose"
|
|
3703
|
+
atomsOverlap = "atomsOverlap"
|
|
3704
|
+
|
|
3705
|
+
|
|
3706
|
+
class MaterialConsistencyCheckSchema45(BaseModel):
|
|
3707
|
+
name: Name374
|
|
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 CrystalSchema45(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: BasisSchema46 = Field(..., title="basis schema")
|
|
3735
|
+
lattice: LatticeSchema45 = Field(..., title="lattice schema")
|
|
3736
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema45]] = 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[MaterialConsistencyCheckSchema45]] = 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 VacuumConfigurationSchema21(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: CrystalSchema45 = Field(..., title="Crystal Schema")
|
|
3792
|
+
"""
|
|
3793
|
+
A crystal structure, referencing the base material schema
|
|
3794
|
+
"""
|
|
3795
|
+
|
|
3796
|
+
|
|
3797
|
+
class SlabStrainedSupercellConfigurationSchema5(BaseModel):
|
|
3798
|
+
xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
|
|
3799
|
+
default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
|
|
3800
|
+
max_length=2,
|
|
3801
|
+
min_length=2,
|
|
3802
|
+
title="Supercell Matrix 2D Schema",
|
|
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[AtomicLayersUniqueRepeatedSchema17, VacuumConfigurationSchema21]] = 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 Value100(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 Value101(Enum):
|
|
3945
|
+
X = "X"
|
|
3946
|
+
Vac = "Vac"
|
|
3947
|
+
|
|
3948
|
+
|
|
3949
|
+
class AtomicElementSchema49(BaseModel):
|
|
3950
|
+
value: Union[Value100, Value101]
|
|
3951
|
+
"""
|
|
3952
|
+
All elements, including extra elements
|
|
3953
|
+
"""
|
|
3954
|
+
id: int
|
|
3955
|
+
"""
|
|
3956
|
+
integer id of this entry
|
|
3957
|
+
"""
|
|
3958
|
+
|
|
3959
|
+
|
|
3960
|
+
class BasisSchema47(BaseModel):
|
|
3961
|
+
elements: List[AtomicElementSchema49] = 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 LatticeVectorsSchema46(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 LatticeUnitsSchema46(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 LatticeSchema46(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[LatticeVectorsSchema46] = Field(None, title="lattice vectors schema")
|
|
4018
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
4019
|
+
units: Optional[LatticeUnitsSchema46] = Field(
|
|
4020
|
+
default_factory=lambda: LatticeUnitsSchema46.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
4021
|
+
title="Lattice units schema",
|
|
4022
|
+
)
|
|
4023
|
+
|
|
4024
|
+
|
|
4025
|
+
class Name375(Enum):
|
|
4026
|
+
volume = "volume"
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
class Units147(Enum):
|
|
4030
|
+
angstrom_3 = "angstrom^3"
|
|
4031
|
+
|
|
4032
|
+
|
|
4033
|
+
class VolumeSchema46(BaseModel):
|
|
4034
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
4035
|
+
units: Optional[Units147] = None
|
|
4036
|
+
value: float
|
|
4037
|
+
|
|
4038
|
+
|
|
4039
|
+
class Name376(Enum):
|
|
4040
|
+
density = "density"
|
|
4041
|
+
|
|
4042
|
+
|
|
4043
|
+
class Units148(Enum):
|
|
4044
|
+
g_cm_3 = "g/cm^3"
|
|
4045
|
+
|
|
4046
|
+
|
|
4047
|
+
class DensitySchema46(BaseModel):
|
|
4048
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
4049
|
+
units: Optional[Units148] = None
|
|
4050
|
+
value: float
|
|
4051
|
+
|
|
4052
|
+
|
|
4053
|
+
class Units149(Enum):
|
|
4054
|
+
angstrom = "angstrom"
|
|
4055
|
+
|
|
4056
|
+
|
|
4057
|
+
class ScalarSchema47(BaseModel):
|
|
4058
|
+
units: Optional[Units149] = None
|
|
4059
|
+
value: float
|
|
4060
|
+
|
|
4061
|
+
|
|
4062
|
+
class Name377(Enum):
|
|
4063
|
+
symmetry = "symmetry"
|
|
4064
|
+
|
|
4065
|
+
|
|
4066
|
+
class SymmetrySchema46(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[ScalarSchema47] = 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 Name378(Enum):
|
|
4083
|
+
elemental_ratio = "elemental_ratio"
|
|
4084
|
+
|
|
4085
|
+
|
|
4086
|
+
class ElementalRatio46(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 Name379(Enum):
|
|
4096
|
+
p_norm = "p-norm"
|
|
4097
|
+
|
|
4098
|
+
|
|
4099
|
+
class PNorm46(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 Name380(Enum):
|
|
4109
|
+
inchi = "inchi"
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
class InChIRepresentationSchema46(BaseModel):
|
|
4113
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
4114
|
+
value: str
|
|
4115
|
+
|
|
4116
|
+
|
|
4117
|
+
class Name381(Enum):
|
|
4118
|
+
inchi_key = "inchi_key"
|
|
4119
|
+
|
|
4120
|
+
|
|
4121
|
+
class InChIKeyRepresentationSchema46(BaseModel):
|
|
4122
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
4123
|
+
value: str
|
|
4124
|
+
|
|
4125
|
+
|
|
4126
|
+
class DerivedPropertiesSchema46(
|
|
4127
|
+
RootModel[
|
|
4128
|
+
Union[
|
|
4129
|
+
VolumeSchema46,
|
|
4130
|
+
DensitySchema46,
|
|
4131
|
+
SymmetrySchema46,
|
|
4132
|
+
ElementalRatio46,
|
|
4133
|
+
PNorm46,
|
|
4134
|
+
InChIRepresentationSchema46,
|
|
4135
|
+
InChIKeyRepresentationSchema46,
|
|
4136
|
+
]
|
|
4137
|
+
]
|
|
4138
|
+
):
|
|
4139
|
+
root: Union[
|
|
4140
|
+
VolumeSchema46,
|
|
4141
|
+
DensitySchema46,
|
|
4142
|
+
SymmetrySchema46,
|
|
4143
|
+
ElementalRatio46,
|
|
4144
|
+
PNorm46,
|
|
4145
|
+
InChIRepresentationSchema46,
|
|
4146
|
+
InChIKeyRepresentationSchema46,
|
|
4147
|
+
] = Field(..., discriminator="name")
|
|
4148
|
+
|
|
4149
|
+
|
|
4150
|
+
class Name382(Enum):
|
|
4151
|
+
default = "default"
|
|
4152
|
+
atomsTooClose = "atomsTooClose"
|
|
4153
|
+
atomsOverlap = "atomsOverlap"
|
|
4154
|
+
|
|
4155
|
+
|
|
4156
|
+
class MaterialConsistencyCheckSchema46(BaseModel):
|
|
4157
|
+
name: Name382
|
|
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 CrystalSchema46(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: BasisSchema47 = Field(..., title="basis schema")
|
|
4185
|
+
lattice: LatticeSchema46 = Field(..., title="lattice schema")
|
|
4186
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema46]] = 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[MaterialConsistencyCheckSchema46]] = 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 VacuumConfigurationSchema22(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: CrystalSchema46 = Field(..., title="Crystal Schema")
|
|
4242
|
+
"""
|
|
4243
|
+
A crystal structure, referencing the base material schema
|
|
4244
|
+
"""
|
|
4245
|
+
|
|
4246
|
+
|
|
4247
|
+
class InterfaceConfigurationSchema(BaseModel):
|
|
4248
|
+
stack_components: List[
|
|
4249
|
+
Union[
|
|
4250
|
+
Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema],
|
|
4251
|
+
Union[SlabConfigurationSchema10, SlabStrainedSupercellConfigurationSchema5],
|
|
4252
|
+
VacuumConfigurationSchema22,
|
|
4253
|
+
]
|
|
4254
|
+
] = Field(..., max_length=3, min_length=2)
|
|
4255
|
+
"""
|
|
4256
|
+
Components of the interface: slab, slab and vacuum
|
|
4257
|
+
"""
|
|
4258
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
4259
|
+
"""
|
|
4260
|
+
Enum for axis types
|
|
4261
|
+
"""
|
|
4262
|
+
xy_shift: Optional[List[float]] = Field([0, 0], max_length=2, min_length=2, title="vector 2d schema")
|
|
4263
|
+
"""
|
|
4264
|
+
xy shift for the film as cartesian 2D vector on the xy plane.
|
|
4265
|
+
"""
|
|
4266
|
+
gaps: Optional[List[ObjectWithId]] = None
|
|
4267
|
+
"""
|
|
4268
|
+
Gap distances between stack components as an array of objects with id and value
|
|
4269
|
+
"""
|