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/defective_structures/two_dimensional/grain_boundary_planar/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 AxisEnum(Enum):
|
|
14
|
+
x = "x"
|
|
15
|
+
y = "y"
|
|
16
|
+
z = "z"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ChemicalElements(Enum):
|
|
20
|
+
H = "H"
|
|
21
|
+
He = "He"
|
|
22
|
+
Li = "Li"
|
|
23
|
+
Be = "Be"
|
|
24
|
+
B = "B"
|
|
25
|
+
C = "C"
|
|
26
|
+
N = "N"
|
|
27
|
+
O = "O"
|
|
28
|
+
F = "F"
|
|
29
|
+
Ne = "Ne"
|
|
30
|
+
Na = "Na"
|
|
31
|
+
Mg = "Mg"
|
|
32
|
+
Al = "Al"
|
|
33
|
+
Si = "Si"
|
|
34
|
+
P = "P"
|
|
35
|
+
S = "S"
|
|
36
|
+
Cl = "Cl"
|
|
37
|
+
Ar = "Ar"
|
|
38
|
+
K = "K"
|
|
39
|
+
Ca = "Ca"
|
|
40
|
+
Sc = "Sc"
|
|
41
|
+
Ti = "Ti"
|
|
42
|
+
V = "V"
|
|
43
|
+
Cr = "Cr"
|
|
44
|
+
Mn = "Mn"
|
|
45
|
+
Fe = "Fe"
|
|
46
|
+
Co = "Co"
|
|
47
|
+
Ni = "Ni"
|
|
48
|
+
Cu = "Cu"
|
|
49
|
+
Zn = "Zn"
|
|
50
|
+
Ga = "Ga"
|
|
51
|
+
Ge = "Ge"
|
|
52
|
+
As = "As"
|
|
53
|
+
Se = "Se"
|
|
54
|
+
Br = "Br"
|
|
55
|
+
Kr = "Kr"
|
|
56
|
+
Rb = "Rb"
|
|
57
|
+
Sr = "Sr"
|
|
58
|
+
Y = "Y"
|
|
59
|
+
Zr = "Zr"
|
|
60
|
+
Nb = "Nb"
|
|
61
|
+
Mo = "Mo"
|
|
62
|
+
Tc = "Tc"
|
|
63
|
+
Ru = "Ru"
|
|
64
|
+
Rh = "Rh"
|
|
65
|
+
Pd = "Pd"
|
|
66
|
+
Ag = "Ag"
|
|
67
|
+
Cd = "Cd"
|
|
68
|
+
In = "In"
|
|
69
|
+
Sn = "Sn"
|
|
70
|
+
Sb = "Sb"
|
|
71
|
+
Te = "Te"
|
|
72
|
+
I = "I"
|
|
73
|
+
Xe = "Xe"
|
|
74
|
+
Cs = "Cs"
|
|
75
|
+
Ba = "Ba"
|
|
76
|
+
La = "La"
|
|
77
|
+
Ce = "Ce"
|
|
78
|
+
Pr = "Pr"
|
|
79
|
+
Nd = "Nd"
|
|
80
|
+
Pm = "Pm"
|
|
81
|
+
Sm = "Sm"
|
|
82
|
+
Eu = "Eu"
|
|
83
|
+
Gd = "Gd"
|
|
84
|
+
Tb = "Tb"
|
|
85
|
+
Dy = "Dy"
|
|
86
|
+
Ho = "Ho"
|
|
87
|
+
Er = "Er"
|
|
88
|
+
Tm = "Tm"
|
|
89
|
+
Yb = "Yb"
|
|
90
|
+
Lu = "Lu"
|
|
91
|
+
Hf = "Hf"
|
|
92
|
+
Ta = "Ta"
|
|
93
|
+
W = "W"
|
|
94
|
+
Re = "Re"
|
|
95
|
+
Os = "Os"
|
|
96
|
+
Ir = "Ir"
|
|
97
|
+
Pt = "Pt"
|
|
98
|
+
Au = "Au"
|
|
99
|
+
Hg = "Hg"
|
|
100
|
+
Tl = "Tl"
|
|
101
|
+
Pb = "Pb"
|
|
102
|
+
Bi = "Bi"
|
|
103
|
+
Po = "Po"
|
|
104
|
+
At = "At"
|
|
105
|
+
Rn = "Rn"
|
|
106
|
+
Fr = "Fr"
|
|
107
|
+
Ra = "Ra"
|
|
108
|
+
Ac = "Ac"
|
|
109
|
+
Th = "Th"
|
|
110
|
+
Pa = "Pa"
|
|
111
|
+
U = "U"
|
|
112
|
+
Np = "Np"
|
|
113
|
+
Pu = "Pu"
|
|
114
|
+
Am = "Am"
|
|
115
|
+
Cm = "Cm"
|
|
116
|
+
Bk = "Bk"
|
|
117
|
+
Cf = "Cf"
|
|
118
|
+
Es = "Es"
|
|
119
|
+
Fm = "Fm"
|
|
120
|
+
Md = "Md"
|
|
121
|
+
No = "No"
|
|
122
|
+
Lr = "Lr"
|
|
123
|
+
Rf = "Rf"
|
|
124
|
+
Db = "Db"
|
|
125
|
+
Sg = "Sg"
|
|
126
|
+
Bh = "Bh"
|
|
127
|
+
Hs = "Hs"
|
|
128
|
+
Mt = "Mt"
|
|
129
|
+
Ds = "Ds"
|
|
130
|
+
Rg = "Rg"
|
|
131
|
+
Cn = "Cn"
|
|
132
|
+
Nh = "Nh"
|
|
133
|
+
Fl = "Fl"
|
|
134
|
+
Mc = "Mc"
|
|
135
|
+
Lv = "Lv"
|
|
136
|
+
Ts = "Ts"
|
|
137
|
+
Og = "Og"
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
class TerminationSchema(BaseModel):
|
|
141
|
+
chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
|
|
142
|
+
..., title="Chemical Elements"
|
|
143
|
+
)
|
|
144
|
+
"""
|
|
145
|
+
Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
|
|
146
|
+
"""
|
|
147
|
+
space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
|
|
148
|
+
"""
|
|
149
|
+
Space group symmetry designation for the termination
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
class Value(Enum):
|
|
154
|
+
H = "H"
|
|
155
|
+
He = "He"
|
|
156
|
+
Li = "Li"
|
|
157
|
+
Be = "Be"
|
|
158
|
+
B = "B"
|
|
159
|
+
C = "C"
|
|
160
|
+
N = "N"
|
|
161
|
+
O = "O"
|
|
162
|
+
F = "F"
|
|
163
|
+
Ne = "Ne"
|
|
164
|
+
Na = "Na"
|
|
165
|
+
Mg = "Mg"
|
|
166
|
+
Al = "Al"
|
|
167
|
+
Si = "Si"
|
|
168
|
+
P = "P"
|
|
169
|
+
S = "S"
|
|
170
|
+
Cl = "Cl"
|
|
171
|
+
Ar = "Ar"
|
|
172
|
+
K = "K"
|
|
173
|
+
Ca = "Ca"
|
|
174
|
+
Sc = "Sc"
|
|
175
|
+
Ti = "Ti"
|
|
176
|
+
V = "V"
|
|
177
|
+
Cr = "Cr"
|
|
178
|
+
Mn = "Mn"
|
|
179
|
+
Fe = "Fe"
|
|
180
|
+
Co = "Co"
|
|
181
|
+
Ni = "Ni"
|
|
182
|
+
Cu = "Cu"
|
|
183
|
+
Zn = "Zn"
|
|
184
|
+
Ga = "Ga"
|
|
185
|
+
Ge = "Ge"
|
|
186
|
+
As = "As"
|
|
187
|
+
Se = "Se"
|
|
188
|
+
Br = "Br"
|
|
189
|
+
Kr = "Kr"
|
|
190
|
+
Rb = "Rb"
|
|
191
|
+
Sr = "Sr"
|
|
192
|
+
Y = "Y"
|
|
193
|
+
Zr = "Zr"
|
|
194
|
+
Nb = "Nb"
|
|
195
|
+
Mo = "Mo"
|
|
196
|
+
Tc = "Tc"
|
|
197
|
+
Ru = "Ru"
|
|
198
|
+
Rh = "Rh"
|
|
199
|
+
Pd = "Pd"
|
|
200
|
+
Ag = "Ag"
|
|
201
|
+
Cd = "Cd"
|
|
202
|
+
In = "In"
|
|
203
|
+
Sn = "Sn"
|
|
204
|
+
Sb = "Sb"
|
|
205
|
+
Te = "Te"
|
|
206
|
+
I = "I"
|
|
207
|
+
Xe = "Xe"
|
|
208
|
+
Cs = "Cs"
|
|
209
|
+
Ba = "Ba"
|
|
210
|
+
La = "La"
|
|
211
|
+
Ce = "Ce"
|
|
212
|
+
Pr = "Pr"
|
|
213
|
+
Nd = "Nd"
|
|
214
|
+
Pm = "Pm"
|
|
215
|
+
Sm = "Sm"
|
|
216
|
+
Eu = "Eu"
|
|
217
|
+
Gd = "Gd"
|
|
218
|
+
Tb = "Tb"
|
|
219
|
+
Dy = "Dy"
|
|
220
|
+
Ho = "Ho"
|
|
221
|
+
Er = "Er"
|
|
222
|
+
Tm = "Tm"
|
|
223
|
+
Yb = "Yb"
|
|
224
|
+
Lu = "Lu"
|
|
225
|
+
Hf = "Hf"
|
|
226
|
+
Ta = "Ta"
|
|
227
|
+
W = "W"
|
|
228
|
+
Re = "Re"
|
|
229
|
+
Os = "Os"
|
|
230
|
+
Ir = "Ir"
|
|
231
|
+
Pt = "Pt"
|
|
232
|
+
Au = "Au"
|
|
233
|
+
Hg = "Hg"
|
|
234
|
+
Tl = "Tl"
|
|
235
|
+
Pb = "Pb"
|
|
236
|
+
Bi = "Bi"
|
|
237
|
+
Po = "Po"
|
|
238
|
+
At = "At"
|
|
239
|
+
Rn = "Rn"
|
|
240
|
+
Fr = "Fr"
|
|
241
|
+
Ra = "Ra"
|
|
242
|
+
Ac = "Ac"
|
|
243
|
+
Th = "Th"
|
|
244
|
+
Pa = "Pa"
|
|
245
|
+
U = "U"
|
|
246
|
+
Np = "Np"
|
|
247
|
+
Pu = "Pu"
|
|
248
|
+
Am = "Am"
|
|
249
|
+
Cm = "Cm"
|
|
250
|
+
Bk = "Bk"
|
|
251
|
+
Cf = "Cf"
|
|
252
|
+
Es = "Es"
|
|
253
|
+
Fm = "Fm"
|
|
254
|
+
Md = "Md"
|
|
255
|
+
No = "No"
|
|
256
|
+
Lr = "Lr"
|
|
257
|
+
Rf = "Rf"
|
|
258
|
+
Db = "Db"
|
|
259
|
+
Sg = "Sg"
|
|
260
|
+
Bh = "Bh"
|
|
261
|
+
Hs = "Hs"
|
|
262
|
+
Mt = "Mt"
|
|
263
|
+
Ds = "Ds"
|
|
264
|
+
Rg = "Rg"
|
|
265
|
+
Cn = "Cn"
|
|
266
|
+
Nh = "Nh"
|
|
267
|
+
Fl = "Fl"
|
|
268
|
+
Mc = "Mc"
|
|
269
|
+
Lv = "Lv"
|
|
270
|
+
Ts = "Ts"
|
|
271
|
+
Og = "Og"
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
class Value17(Enum):
|
|
275
|
+
X = "X"
|
|
276
|
+
Vac = "Vac"
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
class AtomicElementSchema(BaseModel):
|
|
280
|
+
value: Union[Value, Value17]
|
|
281
|
+
"""
|
|
282
|
+
All elements, including extra elements
|
|
283
|
+
"""
|
|
284
|
+
id: int
|
|
285
|
+
"""
|
|
286
|
+
integer id of this entry
|
|
287
|
+
"""
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
class AtomicCoordinateSchema(BaseModel):
|
|
291
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
292
|
+
"""
|
|
293
|
+
value of this entry
|
|
294
|
+
"""
|
|
295
|
+
id: int
|
|
296
|
+
"""
|
|
297
|
+
integer id of this entry
|
|
298
|
+
"""
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
class BasisUnitsEnum(Enum):
|
|
302
|
+
crystal = "crystal"
|
|
303
|
+
cartesian = "cartesian"
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
class AtomicLabelSchema(BaseModel):
|
|
307
|
+
value: Union[Union[int, str, float], conint(ge=1, le=9)]
|
|
308
|
+
"""
|
|
309
|
+
value of this entry
|
|
310
|
+
"""
|
|
311
|
+
id: int
|
|
312
|
+
"""
|
|
313
|
+
integer id of this entry
|
|
314
|
+
"""
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
class BasisSchema(BaseModel):
|
|
318
|
+
elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
|
|
319
|
+
"""
|
|
320
|
+
atomic elements schema
|
|
321
|
+
"""
|
|
322
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
323
|
+
"""
|
|
324
|
+
atomic coordinates schema
|
|
325
|
+
"""
|
|
326
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
327
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
328
|
+
"""
|
|
329
|
+
atomic labels schema
|
|
330
|
+
"""
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
class LatticeVectorsUnitsEnum(Enum):
|
|
334
|
+
angstrom = "angstrom"
|
|
335
|
+
bohr = "bohr"
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
class LatticeVectorsSchema(BaseModel):
|
|
339
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
340
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
341
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
342
|
+
alat: Optional[float] = 1
|
|
343
|
+
"""
|
|
344
|
+
lattice parameter for fractional coordinates
|
|
345
|
+
"""
|
|
346
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
class LatticeTypeEnum(Enum):
|
|
350
|
+
CUB = "CUB"
|
|
351
|
+
BCC = "BCC"
|
|
352
|
+
FCC = "FCC"
|
|
353
|
+
TET = "TET"
|
|
354
|
+
MCL = "MCL"
|
|
355
|
+
ORC = "ORC"
|
|
356
|
+
ORCC = "ORCC"
|
|
357
|
+
ORCF = "ORCF"
|
|
358
|
+
ORCI = "ORCI"
|
|
359
|
+
HEX = "HEX"
|
|
360
|
+
BCT = "BCT"
|
|
361
|
+
TRI = "TRI"
|
|
362
|
+
MCLC = "MCLC"
|
|
363
|
+
RHL = "RHL"
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
class LatticeUnitsLengthEnum(Enum):
|
|
367
|
+
angstrom = "angstrom"
|
|
368
|
+
bohr = "bohr"
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
class LatticeUnitsAngleEnum(Enum):
|
|
372
|
+
degree = "degree"
|
|
373
|
+
radian = "radian"
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
class LatticeUnitsSchema(BaseModel):
|
|
377
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
378
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
class LatticeSchema(BaseModel):
|
|
382
|
+
a: float
|
|
383
|
+
"""
|
|
384
|
+
length of the first lattice vector
|
|
385
|
+
"""
|
|
386
|
+
b: float
|
|
387
|
+
"""
|
|
388
|
+
length of the second lattice vector
|
|
389
|
+
"""
|
|
390
|
+
c: float
|
|
391
|
+
"""
|
|
392
|
+
length of the third lattice vector
|
|
393
|
+
"""
|
|
394
|
+
alpha: float
|
|
395
|
+
"""
|
|
396
|
+
angle between first and second lattice vector
|
|
397
|
+
"""
|
|
398
|
+
beta: float
|
|
399
|
+
"""
|
|
400
|
+
angle between second and third lattice vector
|
|
401
|
+
"""
|
|
402
|
+
gamma: float
|
|
403
|
+
"""
|
|
404
|
+
angle between first and third lattice vector
|
|
405
|
+
"""
|
|
406
|
+
vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
|
|
407
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
408
|
+
units: Optional[LatticeUnitsSchema] = Field(
|
|
409
|
+
default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
410
|
+
title="Lattice units schema",
|
|
411
|
+
)
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
class Name(Enum):
|
|
415
|
+
volume = "volume"
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
class Units(Enum):
|
|
419
|
+
angstrom_3 = "angstrom^3"
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
class VolumeSchema(BaseModel):
|
|
423
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
424
|
+
units: Optional[Units] = None
|
|
425
|
+
value: float
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
class Name40(Enum):
|
|
429
|
+
density = "density"
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
class Units22(Enum):
|
|
433
|
+
g_cm_3 = "g/cm^3"
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
class DensitySchema(BaseModel):
|
|
437
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
438
|
+
units: Optional[Units22] = None
|
|
439
|
+
value: float
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
class Units23(Enum):
|
|
443
|
+
angstrom = "angstrom"
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
class ScalarSchema(BaseModel):
|
|
447
|
+
units: Optional[Units23] = None
|
|
448
|
+
value: float
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
class Name41(Enum):
|
|
452
|
+
symmetry = "symmetry"
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
class SymmetrySchema(BaseModel):
|
|
456
|
+
pointGroupSymbol: Optional[str] = None
|
|
457
|
+
"""
|
|
458
|
+
point group symbol in Schoenflies notation
|
|
459
|
+
"""
|
|
460
|
+
spaceGroupSymbol: Optional[str] = None
|
|
461
|
+
"""
|
|
462
|
+
space group symbol in Hermann–Mauguin notation
|
|
463
|
+
"""
|
|
464
|
+
tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
|
|
465
|
+
"""
|
|
466
|
+
tolerance used for symmetry calculation
|
|
467
|
+
"""
|
|
468
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
class Name42(Enum):
|
|
472
|
+
elemental_ratio = "elemental_ratio"
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
class ElementalRatio(BaseModel):
|
|
476
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
477
|
+
value: confloat(ge=0.0, le=1.0)
|
|
478
|
+
element: Optional[str] = None
|
|
479
|
+
"""
|
|
480
|
+
the element this ratio is for
|
|
481
|
+
"""
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
class Name43(Enum):
|
|
485
|
+
p_norm = "p-norm"
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
class PNorm(BaseModel):
|
|
489
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
490
|
+
degree: Optional[int] = None
|
|
491
|
+
"""
|
|
492
|
+
degree of the dimensionality of the norm
|
|
493
|
+
"""
|
|
494
|
+
value: float
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
class Name44(Enum):
|
|
498
|
+
inchi = "inchi"
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
class InChIRepresentationSchema(BaseModel):
|
|
502
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
503
|
+
value: str
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
class Name45(Enum):
|
|
507
|
+
inchi_key = "inchi_key"
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
class InChIKeyRepresentationSchema(BaseModel):
|
|
511
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
512
|
+
value: str
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
class DerivedPropertiesSchema(
|
|
516
|
+
RootModel[
|
|
517
|
+
Union[
|
|
518
|
+
VolumeSchema,
|
|
519
|
+
DensitySchema,
|
|
520
|
+
SymmetrySchema,
|
|
521
|
+
ElementalRatio,
|
|
522
|
+
PNorm,
|
|
523
|
+
InChIRepresentationSchema,
|
|
524
|
+
InChIKeyRepresentationSchema,
|
|
525
|
+
]
|
|
526
|
+
]
|
|
527
|
+
):
|
|
528
|
+
root: Union[
|
|
529
|
+
VolumeSchema,
|
|
530
|
+
DensitySchema,
|
|
531
|
+
SymmetrySchema,
|
|
532
|
+
ElementalRatio,
|
|
533
|
+
PNorm,
|
|
534
|
+
InChIRepresentationSchema,
|
|
535
|
+
InChIKeyRepresentationSchema,
|
|
536
|
+
] = Field(..., discriminator="name")
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
class DatabaseSourceSchema(BaseModel):
|
|
540
|
+
id: Union[str, float]
|
|
541
|
+
"""
|
|
542
|
+
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
|
|
543
|
+
"""
|
|
544
|
+
source: str
|
|
545
|
+
"""
|
|
546
|
+
Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
|
|
547
|
+
"""
|
|
548
|
+
origin: bool
|
|
549
|
+
"""
|
|
550
|
+
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).
|
|
551
|
+
"""
|
|
552
|
+
data: Optional[Dict[str, Any]] = None
|
|
553
|
+
"""
|
|
554
|
+
Original response from external source.
|
|
555
|
+
"""
|
|
556
|
+
doi: Optional[str] = None
|
|
557
|
+
"""
|
|
558
|
+
Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
|
|
559
|
+
"""
|
|
560
|
+
url: Optional[str] = None
|
|
561
|
+
"""
|
|
562
|
+
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
|
|
563
|
+
"""
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
class FileSourceSchema(BaseModel):
|
|
567
|
+
extension: Optional[str] = None
|
|
568
|
+
"""
|
|
569
|
+
file extension
|
|
570
|
+
"""
|
|
571
|
+
filename: str
|
|
572
|
+
"""
|
|
573
|
+
file name without extension
|
|
574
|
+
"""
|
|
575
|
+
text: str
|
|
576
|
+
"""
|
|
577
|
+
file content as raw text
|
|
578
|
+
"""
|
|
579
|
+
hash: str
|
|
580
|
+
"""
|
|
581
|
+
MD5 hash based on file content
|
|
582
|
+
"""
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
class Name46(Enum):
|
|
586
|
+
default = "default"
|
|
587
|
+
atomsTooClose = "atomsTooClose"
|
|
588
|
+
atomsOverlap = "atomsOverlap"
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
class Severity(Enum):
|
|
592
|
+
info = "info"
|
|
593
|
+
warning = "warning"
|
|
594
|
+
error = "error"
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
class MaterialConsistencyCheckSchema(BaseModel):
|
|
598
|
+
name: Name46
|
|
599
|
+
"""
|
|
600
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
601
|
+
"""
|
|
602
|
+
key: str
|
|
603
|
+
"""
|
|
604
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
605
|
+
"""
|
|
606
|
+
severity: Severity
|
|
607
|
+
"""
|
|
608
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
609
|
+
"""
|
|
610
|
+
message: str
|
|
611
|
+
"""
|
|
612
|
+
Message generated by the consistency check describing the problem.
|
|
613
|
+
"""
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
class CrystalSchema(BaseModel):
|
|
617
|
+
formula: Optional[str] = None
|
|
618
|
+
"""
|
|
619
|
+
reduced chemical formula
|
|
620
|
+
"""
|
|
621
|
+
unitCellFormula: Optional[str] = None
|
|
622
|
+
"""
|
|
623
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
624
|
+
"""
|
|
625
|
+
basis: BasisSchema = Field(..., title="basis schema")
|
|
626
|
+
lattice: LatticeSchema = Field(..., title="lattice schema")
|
|
627
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
|
|
628
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
629
|
+
"""
|
|
630
|
+
information about a database source
|
|
631
|
+
"""
|
|
632
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
633
|
+
"""
|
|
634
|
+
file source with the information inside
|
|
635
|
+
"""
|
|
636
|
+
scaledHash: Optional[str] = None
|
|
637
|
+
"""
|
|
638
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
639
|
+
"""
|
|
640
|
+
icsdId: Optional[int] = None
|
|
641
|
+
"""
|
|
642
|
+
Corresponding ICSD id of the material
|
|
643
|
+
"""
|
|
644
|
+
isNonPeriodic: Optional[bool] = None
|
|
645
|
+
"""
|
|
646
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
647
|
+
"""
|
|
648
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
|
|
649
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
650
|
+
"""
|
|
651
|
+
entity identity
|
|
652
|
+
"""
|
|
653
|
+
slug: Optional[str] = None
|
|
654
|
+
"""
|
|
655
|
+
entity slug
|
|
656
|
+
"""
|
|
657
|
+
systemName: Optional[str] = None
|
|
658
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
659
|
+
"""
|
|
660
|
+
entity's schema version. Used to distinct between different schemas.
|
|
661
|
+
"""
|
|
662
|
+
name: Optional[str] = None
|
|
663
|
+
"""
|
|
664
|
+
entity name
|
|
665
|
+
"""
|
|
666
|
+
isDefault: Optional[bool] = False
|
|
667
|
+
"""
|
|
668
|
+
Identifies that entity is defaultable
|
|
669
|
+
"""
|
|
670
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
class AtomicLayersUniqueRepeatedSchema(BaseModel):
|
|
674
|
+
termination_top: TerminationSchema = Field(..., title="Termination Schema")
|
|
675
|
+
"""
|
|
676
|
+
Defines a specific termination of a slab
|
|
677
|
+
"""
|
|
678
|
+
number_of_repetitions: conint(ge=1)
|
|
679
|
+
"""
|
|
680
|
+
Number of repetitions of the unique atomic layers
|
|
681
|
+
"""
|
|
682
|
+
miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
|
|
683
|
+
"""
|
|
684
|
+
Miller indices [h, k, l] defining crystallographic planes
|
|
685
|
+
"""
|
|
686
|
+
crystal: CrystalSchema = Field(..., title="Crystal Schema")
|
|
687
|
+
"""
|
|
688
|
+
A crystal structure, referencing the base material schema
|
|
689
|
+
"""
|
|
690
|
+
use_conventional_cell: Optional[bool] = True
|
|
691
|
+
"""
|
|
692
|
+
Use the conventional cell for the crystal structure
|
|
693
|
+
"""
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
class Value18(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 Value19(Enum):
|
|
818
|
+
X = "X"
|
|
819
|
+
Vac = "Vac"
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
class AtomicElementSchema8(BaseModel):
|
|
823
|
+
value: Union[Value18, Value19]
|
|
824
|
+
"""
|
|
825
|
+
All elements, including extra elements
|
|
826
|
+
"""
|
|
827
|
+
id: int
|
|
828
|
+
"""
|
|
829
|
+
integer id of this entry
|
|
830
|
+
"""
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
class BasisSchema6(BaseModel):
|
|
834
|
+
elements: List[AtomicElementSchema8] = 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 LatticeVectorsSchema5(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 LatticeUnitsSchema5(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 LatticeSchema5(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[LatticeVectorsSchema5] = Field(None, title="lattice vectors schema")
|
|
891
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
892
|
+
units: Optional[LatticeUnitsSchema5] = Field(
|
|
893
|
+
default_factory=lambda: LatticeUnitsSchema5.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
894
|
+
title="Lattice units schema",
|
|
895
|
+
)
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
class Name47(Enum):
|
|
899
|
+
volume = "volume"
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
class Units24(Enum):
|
|
903
|
+
angstrom_3 = "angstrom^3"
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
class VolumeSchema5(BaseModel):
|
|
907
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
908
|
+
units: Optional[Units24] = None
|
|
909
|
+
value: float
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
class Name48(Enum):
|
|
913
|
+
density = "density"
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
class Units25(Enum):
|
|
917
|
+
g_cm_3 = "g/cm^3"
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
class DensitySchema5(BaseModel):
|
|
921
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
922
|
+
units: Optional[Units25] = None
|
|
923
|
+
value: float
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
class Units26(Enum):
|
|
927
|
+
angstrom = "angstrom"
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
class ScalarSchema6(BaseModel):
|
|
931
|
+
units: Optional[Units26] = None
|
|
932
|
+
value: float
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
class Name49(Enum):
|
|
936
|
+
symmetry = "symmetry"
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
class SymmetrySchema5(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[ScalarSchema6] = 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 Name50(Enum):
|
|
956
|
+
elemental_ratio = "elemental_ratio"
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
class ElementalRatio5(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 Name51(Enum):
|
|
969
|
+
p_norm = "p-norm"
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
class PNorm5(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 Name52(Enum):
|
|
982
|
+
inchi = "inchi"
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
class InChIRepresentationSchema5(BaseModel):
|
|
986
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
987
|
+
value: str
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
class Name53(Enum):
|
|
991
|
+
inchi_key = "inchi_key"
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
class InChIKeyRepresentationSchema5(BaseModel):
|
|
995
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
996
|
+
value: str
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
class DerivedPropertiesSchema5(
|
|
1000
|
+
RootModel[
|
|
1001
|
+
Union[
|
|
1002
|
+
VolumeSchema5,
|
|
1003
|
+
DensitySchema5,
|
|
1004
|
+
SymmetrySchema5,
|
|
1005
|
+
ElementalRatio5,
|
|
1006
|
+
PNorm5,
|
|
1007
|
+
InChIRepresentationSchema5,
|
|
1008
|
+
InChIKeyRepresentationSchema5,
|
|
1009
|
+
]
|
|
1010
|
+
]
|
|
1011
|
+
):
|
|
1012
|
+
root: Union[
|
|
1013
|
+
VolumeSchema5,
|
|
1014
|
+
DensitySchema5,
|
|
1015
|
+
SymmetrySchema5,
|
|
1016
|
+
ElementalRatio5,
|
|
1017
|
+
PNorm5,
|
|
1018
|
+
InChIRepresentationSchema5,
|
|
1019
|
+
InChIKeyRepresentationSchema5,
|
|
1020
|
+
] = Field(..., discriminator="name")
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
class Name54(Enum):
|
|
1024
|
+
default = "default"
|
|
1025
|
+
atomsTooClose = "atomsTooClose"
|
|
1026
|
+
atomsOverlap = "atomsOverlap"
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
class MaterialConsistencyCheckSchema5(BaseModel):
|
|
1030
|
+
name: Name54
|
|
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 CrystalSchema5(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: BasisSchema6 = Field(..., title="basis schema")
|
|
1058
|
+
lattice: LatticeSchema5 = Field(..., title="lattice schema")
|
|
1059
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema5]] = 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[MaterialConsistencyCheckSchema5]] = 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: CrystalSchema5 = 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 TerminationSchema4(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 Value20(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 Value21(Enum):
|
|
1285
|
+
X = "X"
|
|
1286
|
+
Vac = "Vac"
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
class AtomicElementSchema9(BaseModel):
|
|
1290
|
+
value: Union[Value20, Value21]
|
|
1291
|
+
"""
|
|
1292
|
+
All elements, including extra elements
|
|
1293
|
+
"""
|
|
1294
|
+
id: int
|
|
1295
|
+
"""
|
|
1296
|
+
integer id of this entry
|
|
1297
|
+
"""
|
|
1298
|
+
|
|
1299
|
+
|
|
1300
|
+
class BasisSchema7(BaseModel):
|
|
1301
|
+
elements: List[AtomicElementSchema9] = 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 LatticeVectorsSchema6(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 LatticeUnitsSchema6(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 LatticeSchema6(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[LatticeVectorsSchema6] = Field(None, title="lattice vectors schema")
|
|
1358
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1359
|
+
units: Optional[LatticeUnitsSchema6] = Field(
|
|
1360
|
+
default_factory=lambda: LatticeUnitsSchema6.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1361
|
+
title="Lattice units schema",
|
|
1362
|
+
)
|
|
1363
|
+
|
|
1364
|
+
|
|
1365
|
+
class Name55(Enum):
|
|
1366
|
+
volume = "volume"
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
class Units27(Enum):
|
|
1370
|
+
angstrom_3 = "angstrom^3"
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
class VolumeSchema6(BaseModel):
|
|
1374
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1375
|
+
units: Optional[Units27] = None
|
|
1376
|
+
value: float
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
class Name56(Enum):
|
|
1380
|
+
density = "density"
|
|
1381
|
+
|
|
1382
|
+
|
|
1383
|
+
class Units28(Enum):
|
|
1384
|
+
g_cm_3 = "g/cm^3"
|
|
1385
|
+
|
|
1386
|
+
|
|
1387
|
+
class DensitySchema6(BaseModel):
|
|
1388
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1389
|
+
units: Optional[Units28] = None
|
|
1390
|
+
value: float
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
class Units29(Enum):
|
|
1394
|
+
angstrom = "angstrom"
|
|
1395
|
+
|
|
1396
|
+
|
|
1397
|
+
class ScalarSchema7(BaseModel):
|
|
1398
|
+
units: Optional[Units29] = None
|
|
1399
|
+
value: float
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
class Name57(Enum):
|
|
1403
|
+
symmetry = "symmetry"
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
class SymmetrySchema6(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[ScalarSchema7] = 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 Name58(Enum):
|
|
1423
|
+
elemental_ratio = "elemental_ratio"
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
class ElementalRatio6(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 Name59(Enum):
|
|
1436
|
+
p_norm = "p-norm"
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
class PNorm6(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 Name60(Enum):
|
|
1449
|
+
inchi = "inchi"
|
|
1450
|
+
|
|
1451
|
+
|
|
1452
|
+
class InChIRepresentationSchema6(BaseModel):
|
|
1453
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1454
|
+
value: str
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
class Name61(Enum):
|
|
1458
|
+
inchi_key = "inchi_key"
|
|
1459
|
+
|
|
1460
|
+
|
|
1461
|
+
class InChIKeyRepresentationSchema6(BaseModel):
|
|
1462
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1463
|
+
value: str
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
class DerivedPropertiesSchema6(
|
|
1467
|
+
RootModel[
|
|
1468
|
+
Union[
|
|
1469
|
+
VolumeSchema6,
|
|
1470
|
+
DensitySchema6,
|
|
1471
|
+
SymmetrySchema6,
|
|
1472
|
+
ElementalRatio6,
|
|
1473
|
+
PNorm6,
|
|
1474
|
+
InChIRepresentationSchema6,
|
|
1475
|
+
InChIKeyRepresentationSchema6,
|
|
1476
|
+
]
|
|
1477
|
+
]
|
|
1478
|
+
):
|
|
1479
|
+
root: Union[
|
|
1480
|
+
VolumeSchema6,
|
|
1481
|
+
DensitySchema6,
|
|
1482
|
+
SymmetrySchema6,
|
|
1483
|
+
ElementalRatio6,
|
|
1484
|
+
PNorm6,
|
|
1485
|
+
InChIRepresentationSchema6,
|
|
1486
|
+
InChIKeyRepresentationSchema6,
|
|
1487
|
+
] = Field(..., discriminator="name")
|
|
1488
|
+
|
|
1489
|
+
|
|
1490
|
+
class Name62(Enum):
|
|
1491
|
+
default = "default"
|
|
1492
|
+
atomsTooClose = "atomsTooClose"
|
|
1493
|
+
atomsOverlap = "atomsOverlap"
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
class MaterialConsistencyCheckSchema6(BaseModel):
|
|
1497
|
+
name: Name62
|
|
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 CrystalSchema6(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: BasisSchema7 = Field(..., title="basis schema")
|
|
1525
|
+
lattice: LatticeSchema6 = Field(..., title="lattice schema")
|
|
1526
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema6]] = 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[MaterialConsistencyCheckSchema6]] = 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 AtomicLayersUniqueRepeatedSchema2(BaseModel):
|
|
1573
|
+
termination_top: TerminationSchema4 = 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: CrystalSchema6 = 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 Value22(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 Value23(Enum):
|
|
1717
|
+
X = "X"
|
|
1718
|
+
Vac = "Vac"
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
class AtomicElementSchema10(BaseModel):
|
|
1722
|
+
value: Union[Value22, Value23]
|
|
1723
|
+
"""
|
|
1724
|
+
All elements, including extra elements
|
|
1725
|
+
"""
|
|
1726
|
+
id: int
|
|
1727
|
+
"""
|
|
1728
|
+
integer id of this entry
|
|
1729
|
+
"""
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
class BasisSchema8(BaseModel):
|
|
1733
|
+
elements: List[AtomicElementSchema10] = 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 LatticeVectorsSchema7(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 LatticeUnitsSchema7(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 LatticeSchema7(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[LatticeVectorsSchema7] = Field(None, title="lattice vectors schema")
|
|
1790
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1791
|
+
units: Optional[LatticeUnitsSchema7] = Field(
|
|
1792
|
+
default_factory=lambda: LatticeUnitsSchema7.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1793
|
+
title="Lattice units schema",
|
|
1794
|
+
)
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
class Name63(Enum):
|
|
1798
|
+
volume = "volume"
|
|
1799
|
+
|
|
1800
|
+
|
|
1801
|
+
class Units30(Enum):
|
|
1802
|
+
angstrom_3 = "angstrom^3"
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
class VolumeSchema7(BaseModel):
|
|
1806
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1807
|
+
units: Optional[Units30] = None
|
|
1808
|
+
value: float
|
|
1809
|
+
|
|
1810
|
+
|
|
1811
|
+
class Name64(Enum):
|
|
1812
|
+
density = "density"
|
|
1813
|
+
|
|
1814
|
+
|
|
1815
|
+
class Units31(Enum):
|
|
1816
|
+
g_cm_3 = "g/cm^3"
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
class DensitySchema7(BaseModel):
|
|
1820
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1821
|
+
units: Optional[Units31] = None
|
|
1822
|
+
value: float
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
class Units32(Enum):
|
|
1826
|
+
angstrom = "angstrom"
|
|
1827
|
+
|
|
1828
|
+
|
|
1829
|
+
class ScalarSchema8(BaseModel):
|
|
1830
|
+
units: Optional[Units32] = None
|
|
1831
|
+
value: float
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
class Name65(Enum):
|
|
1835
|
+
symmetry = "symmetry"
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
class SymmetrySchema7(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[ScalarSchema8] = 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 Name66(Enum):
|
|
1855
|
+
elemental_ratio = "elemental_ratio"
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
class ElementalRatio7(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 Name67(Enum):
|
|
1868
|
+
p_norm = "p-norm"
|
|
1869
|
+
|
|
1870
|
+
|
|
1871
|
+
class PNorm7(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 Name68(Enum):
|
|
1881
|
+
inchi = "inchi"
|
|
1882
|
+
|
|
1883
|
+
|
|
1884
|
+
class InChIRepresentationSchema7(BaseModel):
|
|
1885
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1886
|
+
value: str
|
|
1887
|
+
|
|
1888
|
+
|
|
1889
|
+
class Name69(Enum):
|
|
1890
|
+
inchi_key = "inchi_key"
|
|
1891
|
+
|
|
1892
|
+
|
|
1893
|
+
class InChIKeyRepresentationSchema7(BaseModel):
|
|
1894
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1895
|
+
value: str
|
|
1896
|
+
|
|
1897
|
+
|
|
1898
|
+
class DerivedPropertiesSchema7(
|
|
1899
|
+
RootModel[
|
|
1900
|
+
Union[
|
|
1901
|
+
VolumeSchema7,
|
|
1902
|
+
DensitySchema7,
|
|
1903
|
+
SymmetrySchema7,
|
|
1904
|
+
ElementalRatio7,
|
|
1905
|
+
PNorm7,
|
|
1906
|
+
InChIRepresentationSchema7,
|
|
1907
|
+
InChIKeyRepresentationSchema7,
|
|
1908
|
+
]
|
|
1909
|
+
]
|
|
1910
|
+
):
|
|
1911
|
+
root: Union[
|
|
1912
|
+
VolumeSchema7,
|
|
1913
|
+
DensitySchema7,
|
|
1914
|
+
SymmetrySchema7,
|
|
1915
|
+
ElementalRatio7,
|
|
1916
|
+
PNorm7,
|
|
1917
|
+
InChIRepresentationSchema7,
|
|
1918
|
+
InChIKeyRepresentationSchema7,
|
|
1919
|
+
] = Field(..., discriminator="name")
|
|
1920
|
+
|
|
1921
|
+
|
|
1922
|
+
class Name70(Enum):
|
|
1923
|
+
default = "default"
|
|
1924
|
+
atomsTooClose = "atomsTooClose"
|
|
1925
|
+
atomsOverlap = "atomsOverlap"
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
class MaterialConsistencyCheckSchema7(BaseModel):
|
|
1929
|
+
name: Name70
|
|
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 CrystalSchema7(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: BasisSchema8 = Field(..., title="basis schema")
|
|
1957
|
+
lattice: LatticeSchema7 = Field(..., title="lattice schema")
|
|
1958
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema7]] = 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[MaterialConsistencyCheckSchema7]] = 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 VacuumConfigurationSchema1(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: CrystalSchema7 = 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[AtomicLayersUniqueRepeatedSchema2, VacuumConfigurationSchema1]] = 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 TerminationSchema5(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 Value24(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 Value25(Enum):
|
|
2180
|
+
X = "X"
|
|
2181
|
+
Vac = "Vac"
|
|
2182
|
+
|
|
2183
|
+
|
|
2184
|
+
class AtomicElementSchema11(BaseModel):
|
|
2185
|
+
value: Union[Value24, Value25]
|
|
2186
|
+
"""
|
|
2187
|
+
All elements, including extra elements
|
|
2188
|
+
"""
|
|
2189
|
+
id: int
|
|
2190
|
+
"""
|
|
2191
|
+
integer id of this entry
|
|
2192
|
+
"""
|
|
2193
|
+
|
|
2194
|
+
|
|
2195
|
+
class BasisSchema9(BaseModel):
|
|
2196
|
+
elements: List[AtomicElementSchema11] = 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 LatticeVectorsSchema8(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 LatticeUnitsSchema8(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 LatticeSchema8(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[LatticeVectorsSchema8] = Field(None, title="lattice vectors schema")
|
|
2253
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
2254
|
+
units: Optional[LatticeUnitsSchema8] = Field(
|
|
2255
|
+
default_factory=lambda: LatticeUnitsSchema8.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
2256
|
+
title="Lattice units schema",
|
|
2257
|
+
)
|
|
2258
|
+
|
|
2259
|
+
|
|
2260
|
+
class Name71(Enum):
|
|
2261
|
+
volume = "volume"
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
class Units33(Enum):
|
|
2265
|
+
angstrom_3 = "angstrom^3"
|
|
2266
|
+
|
|
2267
|
+
|
|
2268
|
+
class VolumeSchema8(BaseModel):
|
|
2269
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
2270
|
+
units: Optional[Units33] = None
|
|
2271
|
+
value: float
|
|
2272
|
+
|
|
2273
|
+
|
|
2274
|
+
class Name72(Enum):
|
|
2275
|
+
density = "density"
|
|
2276
|
+
|
|
2277
|
+
|
|
2278
|
+
class Units34(Enum):
|
|
2279
|
+
g_cm_3 = "g/cm^3"
|
|
2280
|
+
|
|
2281
|
+
|
|
2282
|
+
class DensitySchema8(BaseModel):
|
|
2283
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
2284
|
+
units: Optional[Units34] = None
|
|
2285
|
+
value: float
|
|
2286
|
+
|
|
2287
|
+
|
|
2288
|
+
class Units35(Enum):
|
|
2289
|
+
angstrom = "angstrom"
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
class ScalarSchema9(BaseModel):
|
|
2293
|
+
units: Optional[Units35] = None
|
|
2294
|
+
value: float
|
|
2295
|
+
|
|
2296
|
+
|
|
2297
|
+
class Name73(Enum):
|
|
2298
|
+
symmetry = "symmetry"
|
|
2299
|
+
|
|
2300
|
+
|
|
2301
|
+
class SymmetrySchema8(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[ScalarSchema9] = 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 Name74(Enum):
|
|
2318
|
+
elemental_ratio = "elemental_ratio"
|
|
2319
|
+
|
|
2320
|
+
|
|
2321
|
+
class ElementalRatio8(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 Name75(Enum):
|
|
2331
|
+
p_norm = "p-norm"
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
class PNorm8(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 Name76(Enum):
|
|
2344
|
+
inchi = "inchi"
|
|
2345
|
+
|
|
2346
|
+
|
|
2347
|
+
class InChIRepresentationSchema8(BaseModel):
|
|
2348
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
2349
|
+
value: str
|
|
2350
|
+
|
|
2351
|
+
|
|
2352
|
+
class Name77(Enum):
|
|
2353
|
+
inchi_key = "inchi_key"
|
|
2354
|
+
|
|
2355
|
+
|
|
2356
|
+
class InChIKeyRepresentationSchema8(BaseModel):
|
|
2357
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
2358
|
+
value: str
|
|
2359
|
+
|
|
2360
|
+
|
|
2361
|
+
class DerivedPropertiesSchema8(
|
|
2362
|
+
RootModel[
|
|
2363
|
+
Union[
|
|
2364
|
+
VolumeSchema8,
|
|
2365
|
+
DensitySchema8,
|
|
2366
|
+
SymmetrySchema8,
|
|
2367
|
+
ElementalRatio8,
|
|
2368
|
+
PNorm8,
|
|
2369
|
+
InChIRepresentationSchema8,
|
|
2370
|
+
InChIKeyRepresentationSchema8,
|
|
2371
|
+
]
|
|
2372
|
+
]
|
|
2373
|
+
):
|
|
2374
|
+
root: Union[
|
|
2375
|
+
VolumeSchema8,
|
|
2376
|
+
DensitySchema8,
|
|
2377
|
+
SymmetrySchema8,
|
|
2378
|
+
ElementalRatio8,
|
|
2379
|
+
PNorm8,
|
|
2380
|
+
InChIRepresentationSchema8,
|
|
2381
|
+
InChIKeyRepresentationSchema8,
|
|
2382
|
+
] = Field(..., discriminator="name")
|
|
2383
|
+
|
|
2384
|
+
|
|
2385
|
+
class Name78(Enum):
|
|
2386
|
+
default = "default"
|
|
2387
|
+
atomsTooClose = "atomsTooClose"
|
|
2388
|
+
atomsOverlap = "atomsOverlap"
|
|
2389
|
+
|
|
2390
|
+
|
|
2391
|
+
class MaterialConsistencyCheckSchema8(BaseModel):
|
|
2392
|
+
name: Name78
|
|
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 CrystalSchema8(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: BasisSchema9 = Field(..., title="basis schema")
|
|
2420
|
+
lattice: LatticeSchema8 = Field(..., title="lattice schema")
|
|
2421
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema8]] = 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[MaterialConsistencyCheckSchema8]] = 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 AtomicLayersUniqueRepeatedSchema3(BaseModel):
|
|
2468
|
+
termination_top: TerminationSchema5 = 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: CrystalSchema8 = 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 Value26(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 Value27(Enum):
|
|
2612
|
+
X = "X"
|
|
2613
|
+
Vac = "Vac"
|
|
2614
|
+
|
|
2615
|
+
|
|
2616
|
+
class AtomicElementSchema12(BaseModel):
|
|
2617
|
+
value: Union[Value26, Value27]
|
|
2618
|
+
"""
|
|
2619
|
+
All elements, including extra elements
|
|
2620
|
+
"""
|
|
2621
|
+
id: int
|
|
2622
|
+
"""
|
|
2623
|
+
integer id of this entry
|
|
2624
|
+
"""
|
|
2625
|
+
|
|
2626
|
+
|
|
2627
|
+
class BasisSchema10(BaseModel):
|
|
2628
|
+
elements: List[AtomicElementSchema12] = 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 LatticeVectorsSchema9(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 LatticeUnitsSchema9(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 LatticeSchema9(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[LatticeVectorsSchema9] = Field(None, title="lattice vectors schema")
|
|
2685
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
2686
|
+
units: Optional[LatticeUnitsSchema9] = Field(
|
|
2687
|
+
default_factory=lambda: LatticeUnitsSchema9.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
2688
|
+
title="Lattice units schema",
|
|
2689
|
+
)
|
|
2690
|
+
|
|
2691
|
+
|
|
2692
|
+
class Name79(Enum):
|
|
2693
|
+
volume = "volume"
|
|
2694
|
+
|
|
2695
|
+
|
|
2696
|
+
class Units36(Enum):
|
|
2697
|
+
angstrom_3 = "angstrom^3"
|
|
2698
|
+
|
|
2699
|
+
|
|
2700
|
+
class VolumeSchema9(BaseModel):
|
|
2701
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
2702
|
+
units: Optional[Units36] = None
|
|
2703
|
+
value: float
|
|
2704
|
+
|
|
2705
|
+
|
|
2706
|
+
class Name80(Enum):
|
|
2707
|
+
density = "density"
|
|
2708
|
+
|
|
2709
|
+
|
|
2710
|
+
class Units37(Enum):
|
|
2711
|
+
g_cm_3 = "g/cm^3"
|
|
2712
|
+
|
|
2713
|
+
|
|
2714
|
+
class DensitySchema9(BaseModel):
|
|
2715
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
2716
|
+
units: Optional[Units37] = None
|
|
2717
|
+
value: float
|
|
2718
|
+
|
|
2719
|
+
|
|
2720
|
+
class Units38(Enum):
|
|
2721
|
+
angstrom = "angstrom"
|
|
2722
|
+
|
|
2723
|
+
|
|
2724
|
+
class ScalarSchema10(BaseModel):
|
|
2725
|
+
units: Optional[Units38] = None
|
|
2726
|
+
value: float
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
class Name81(Enum):
|
|
2730
|
+
symmetry = "symmetry"
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
class SymmetrySchema9(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[ScalarSchema10] = 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 Name82(Enum):
|
|
2750
|
+
elemental_ratio = "elemental_ratio"
|
|
2751
|
+
|
|
2752
|
+
|
|
2753
|
+
class ElementalRatio9(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 Name83(Enum):
|
|
2763
|
+
p_norm = "p-norm"
|
|
2764
|
+
|
|
2765
|
+
|
|
2766
|
+
class PNorm9(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 Name84(Enum):
|
|
2776
|
+
inchi = "inchi"
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
class InChIRepresentationSchema9(BaseModel):
|
|
2780
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
2781
|
+
value: str
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
class Name85(Enum):
|
|
2785
|
+
inchi_key = "inchi_key"
|
|
2786
|
+
|
|
2787
|
+
|
|
2788
|
+
class InChIKeyRepresentationSchema9(BaseModel):
|
|
2789
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
2790
|
+
value: str
|
|
2791
|
+
|
|
2792
|
+
|
|
2793
|
+
class DerivedPropertiesSchema9(
|
|
2794
|
+
RootModel[
|
|
2795
|
+
Union[
|
|
2796
|
+
VolumeSchema9,
|
|
2797
|
+
DensitySchema9,
|
|
2798
|
+
SymmetrySchema9,
|
|
2799
|
+
ElementalRatio9,
|
|
2800
|
+
PNorm9,
|
|
2801
|
+
InChIRepresentationSchema9,
|
|
2802
|
+
InChIKeyRepresentationSchema9,
|
|
2803
|
+
]
|
|
2804
|
+
]
|
|
2805
|
+
):
|
|
2806
|
+
root: Union[
|
|
2807
|
+
VolumeSchema9,
|
|
2808
|
+
DensitySchema9,
|
|
2809
|
+
SymmetrySchema9,
|
|
2810
|
+
ElementalRatio9,
|
|
2811
|
+
PNorm9,
|
|
2812
|
+
InChIRepresentationSchema9,
|
|
2813
|
+
InChIKeyRepresentationSchema9,
|
|
2814
|
+
] = Field(..., discriminator="name")
|
|
2815
|
+
|
|
2816
|
+
|
|
2817
|
+
class Name86(Enum):
|
|
2818
|
+
default = "default"
|
|
2819
|
+
atomsTooClose = "atomsTooClose"
|
|
2820
|
+
atomsOverlap = "atomsOverlap"
|
|
2821
|
+
|
|
2822
|
+
|
|
2823
|
+
class MaterialConsistencyCheckSchema9(BaseModel):
|
|
2824
|
+
name: Name86
|
|
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 CrystalSchema9(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: BasisSchema10 = Field(..., title="basis schema")
|
|
2852
|
+
lattice: LatticeSchema9 = Field(..., title="lattice schema")
|
|
2853
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema9]] = 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[MaterialConsistencyCheckSchema9]] = 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 VacuumConfigurationSchema2(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: CrystalSchema9 = Field(..., title="Crystal Schema")
|
|
2909
|
+
"""
|
|
2910
|
+
A crystal structure, referencing the base material schema
|
|
2911
|
+
"""
|
|
2912
|
+
|
|
2913
|
+
|
|
2914
|
+
class SlabConfigurationSchema1(BaseModel):
|
|
2915
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema3, VacuumConfigurationSchema2]] = 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 TerminationSchema6(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 Value28(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 Value29(Enum):
|
|
3063
|
+
X = "X"
|
|
3064
|
+
Vac = "Vac"
|
|
3065
|
+
|
|
3066
|
+
|
|
3067
|
+
class AtomicElementSchema13(BaseModel):
|
|
3068
|
+
value: Union[Value28, Value29]
|
|
3069
|
+
"""
|
|
3070
|
+
All elements, including extra elements
|
|
3071
|
+
"""
|
|
3072
|
+
id: int
|
|
3073
|
+
"""
|
|
3074
|
+
integer id of this entry
|
|
3075
|
+
"""
|
|
3076
|
+
|
|
3077
|
+
|
|
3078
|
+
class BasisSchema11(BaseModel):
|
|
3079
|
+
elements: List[AtomicElementSchema13] = 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 LatticeVectorsSchema10(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 LatticeUnitsSchema10(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 LatticeSchema10(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[LatticeVectorsSchema10] = Field(None, title="lattice vectors schema")
|
|
3136
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
3137
|
+
units: Optional[LatticeUnitsSchema10] = Field(
|
|
3138
|
+
default_factory=lambda: LatticeUnitsSchema10.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
3139
|
+
title="Lattice units schema",
|
|
3140
|
+
)
|
|
3141
|
+
|
|
3142
|
+
|
|
3143
|
+
class Name87(Enum):
|
|
3144
|
+
volume = "volume"
|
|
3145
|
+
|
|
3146
|
+
|
|
3147
|
+
class Units39(Enum):
|
|
3148
|
+
angstrom_3 = "angstrom^3"
|
|
3149
|
+
|
|
3150
|
+
|
|
3151
|
+
class VolumeSchema10(BaseModel):
|
|
3152
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
3153
|
+
units: Optional[Units39] = None
|
|
3154
|
+
value: float
|
|
3155
|
+
|
|
3156
|
+
|
|
3157
|
+
class Name88(Enum):
|
|
3158
|
+
density = "density"
|
|
3159
|
+
|
|
3160
|
+
|
|
3161
|
+
class Units40(Enum):
|
|
3162
|
+
g_cm_3 = "g/cm^3"
|
|
3163
|
+
|
|
3164
|
+
|
|
3165
|
+
class DensitySchema10(BaseModel):
|
|
3166
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
3167
|
+
units: Optional[Units40] = None
|
|
3168
|
+
value: float
|
|
3169
|
+
|
|
3170
|
+
|
|
3171
|
+
class Units41(Enum):
|
|
3172
|
+
angstrom = "angstrom"
|
|
3173
|
+
|
|
3174
|
+
|
|
3175
|
+
class ScalarSchema11(BaseModel):
|
|
3176
|
+
units: Optional[Units41] = None
|
|
3177
|
+
value: float
|
|
3178
|
+
|
|
3179
|
+
|
|
3180
|
+
class Name89(Enum):
|
|
3181
|
+
symmetry = "symmetry"
|
|
3182
|
+
|
|
3183
|
+
|
|
3184
|
+
class SymmetrySchema10(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[ScalarSchema11] = 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 Name90(Enum):
|
|
3201
|
+
elemental_ratio = "elemental_ratio"
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
class ElementalRatio10(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 Name91(Enum):
|
|
3214
|
+
p_norm = "p-norm"
|
|
3215
|
+
|
|
3216
|
+
|
|
3217
|
+
class PNorm10(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 Name92(Enum):
|
|
3227
|
+
inchi = "inchi"
|
|
3228
|
+
|
|
3229
|
+
|
|
3230
|
+
class InChIRepresentationSchema10(BaseModel):
|
|
3231
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
3232
|
+
value: str
|
|
3233
|
+
|
|
3234
|
+
|
|
3235
|
+
class Name93(Enum):
|
|
3236
|
+
inchi_key = "inchi_key"
|
|
3237
|
+
|
|
3238
|
+
|
|
3239
|
+
class InChIKeyRepresentationSchema10(BaseModel):
|
|
3240
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
3241
|
+
value: str
|
|
3242
|
+
|
|
3243
|
+
|
|
3244
|
+
class DerivedPropertiesSchema10(
|
|
3245
|
+
RootModel[
|
|
3246
|
+
Union[
|
|
3247
|
+
VolumeSchema10,
|
|
3248
|
+
DensitySchema10,
|
|
3249
|
+
SymmetrySchema10,
|
|
3250
|
+
ElementalRatio10,
|
|
3251
|
+
PNorm10,
|
|
3252
|
+
InChIRepresentationSchema10,
|
|
3253
|
+
InChIKeyRepresentationSchema10,
|
|
3254
|
+
]
|
|
3255
|
+
]
|
|
3256
|
+
):
|
|
3257
|
+
root: Union[
|
|
3258
|
+
VolumeSchema10,
|
|
3259
|
+
DensitySchema10,
|
|
3260
|
+
SymmetrySchema10,
|
|
3261
|
+
ElementalRatio10,
|
|
3262
|
+
PNorm10,
|
|
3263
|
+
InChIRepresentationSchema10,
|
|
3264
|
+
InChIKeyRepresentationSchema10,
|
|
3265
|
+
] = Field(..., discriminator="name")
|
|
3266
|
+
|
|
3267
|
+
|
|
3268
|
+
class Name94(Enum):
|
|
3269
|
+
default = "default"
|
|
3270
|
+
atomsTooClose = "atomsTooClose"
|
|
3271
|
+
atomsOverlap = "atomsOverlap"
|
|
3272
|
+
|
|
3273
|
+
|
|
3274
|
+
class MaterialConsistencyCheckSchema10(BaseModel):
|
|
3275
|
+
name: Name94
|
|
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 CrystalSchema10(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: BasisSchema11 = Field(..., title="basis schema")
|
|
3303
|
+
lattice: LatticeSchema10 = Field(..., title="lattice schema")
|
|
3304
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema10]] = 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[MaterialConsistencyCheckSchema10]] = 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 AtomicLayersUniqueRepeatedSchema4(BaseModel):
|
|
3351
|
+
termination_top: TerminationSchema6 = 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: CrystalSchema10 = 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 Value30(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 Value31(Enum):
|
|
3495
|
+
X = "X"
|
|
3496
|
+
Vac = "Vac"
|
|
3497
|
+
|
|
3498
|
+
|
|
3499
|
+
class AtomicElementSchema14(BaseModel):
|
|
3500
|
+
value: Union[Value30, Value31]
|
|
3501
|
+
"""
|
|
3502
|
+
All elements, including extra elements
|
|
3503
|
+
"""
|
|
3504
|
+
id: int
|
|
3505
|
+
"""
|
|
3506
|
+
integer id of this entry
|
|
3507
|
+
"""
|
|
3508
|
+
|
|
3509
|
+
|
|
3510
|
+
class BasisSchema12(BaseModel):
|
|
3511
|
+
elements: List[AtomicElementSchema14] = 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 LatticeVectorsSchema11(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 LatticeUnitsSchema11(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 LatticeSchema11(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[LatticeVectorsSchema11] = Field(None, title="lattice vectors schema")
|
|
3568
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
3569
|
+
units: Optional[LatticeUnitsSchema11] = Field(
|
|
3570
|
+
default_factory=lambda: LatticeUnitsSchema11.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
3571
|
+
title="Lattice units schema",
|
|
3572
|
+
)
|
|
3573
|
+
|
|
3574
|
+
|
|
3575
|
+
class Name95(Enum):
|
|
3576
|
+
volume = "volume"
|
|
3577
|
+
|
|
3578
|
+
|
|
3579
|
+
class Units42(Enum):
|
|
3580
|
+
angstrom_3 = "angstrom^3"
|
|
3581
|
+
|
|
3582
|
+
|
|
3583
|
+
class VolumeSchema11(BaseModel):
|
|
3584
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
3585
|
+
units: Optional[Units42] = None
|
|
3586
|
+
value: float
|
|
3587
|
+
|
|
3588
|
+
|
|
3589
|
+
class Name96(Enum):
|
|
3590
|
+
density = "density"
|
|
3591
|
+
|
|
3592
|
+
|
|
3593
|
+
class Units43(Enum):
|
|
3594
|
+
g_cm_3 = "g/cm^3"
|
|
3595
|
+
|
|
3596
|
+
|
|
3597
|
+
class DensitySchema11(BaseModel):
|
|
3598
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
3599
|
+
units: Optional[Units43] = None
|
|
3600
|
+
value: float
|
|
3601
|
+
|
|
3602
|
+
|
|
3603
|
+
class Units44(Enum):
|
|
3604
|
+
angstrom = "angstrom"
|
|
3605
|
+
|
|
3606
|
+
|
|
3607
|
+
class ScalarSchema12(BaseModel):
|
|
3608
|
+
units: Optional[Units44] = None
|
|
3609
|
+
value: float
|
|
3610
|
+
|
|
3611
|
+
|
|
3612
|
+
class Name97(Enum):
|
|
3613
|
+
symmetry = "symmetry"
|
|
3614
|
+
|
|
3615
|
+
|
|
3616
|
+
class SymmetrySchema11(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[ScalarSchema12] = 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 Name98(Enum):
|
|
3633
|
+
elemental_ratio = "elemental_ratio"
|
|
3634
|
+
|
|
3635
|
+
|
|
3636
|
+
class ElementalRatio11(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 Name99(Enum):
|
|
3646
|
+
p_norm = "p-norm"
|
|
3647
|
+
|
|
3648
|
+
|
|
3649
|
+
class PNorm11(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 Name100(Enum):
|
|
3659
|
+
inchi = "inchi"
|
|
3660
|
+
|
|
3661
|
+
|
|
3662
|
+
class InChIRepresentationSchema11(BaseModel):
|
|
3663
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
3664
|
+
value: str
|
|
3665
|
+
|
|
3666
|
+
|
|
3667
|
+
class Name101(Enum):
|
|
3668
|
+
inchi_key = "inchi_key"
|
|
3669
|
+
|
|
3670
|
+
|
|
3671
|
+
class InChIKeyRepresentationSchema11(BaseModel):
|
|
3672
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
3673
|
+
value: str
|
|
3674
|
+
|
|
3675
|
+
|
|
3676
|
+
class DerivedPropertiesSchema11(
|
|
3677
|
+
RootModel[
|
|
3678
|
+
Union[
|
|
3679
|
+
VolumeSchema11,
|
|
3680
|
+
DensitySchema11,
|
|
3681
|
+
SymmetrySchema11,
|
|
3682
|
+
ElementalRatio11,
|
|
3683
|
+
PNorm11,
|
|
3684
|
+
InChIRepresentationSchema11,
|
|
3685
|
+
InChIKeyRepresentationSchema11,
|
|
3686
|
+
]
|
|
3687
|
+
]
|
|
3688
|
+
):
|
|
3689
|
+
root: Union[
|
|
3690
|
+
VolumeSchema11,
|
|
3691
|
+
DensitySchema11,
|
|
3692
|
+
SymmetrySchema11,
|
|
3693
|
+
ElementalRatio11,
|
|
3694
|
+
PNorm11,
|
|
3695
|
+
InChIRepresentationSchema11,
|
|
3696
|
+
InChIKeyRepresentationSchema11,
|
|
3697
|
+
] = Field(..., discriminator="name")
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
class Name102(Enum):
|
|
3701
|
+
default = "default"
|
|
3702
|
+
atomsTooClose = "atomsTooClose"
|
|
3703
|
+
atomsOverlap = "atomsOverlap"
|
|
3704
|
+
|
|
3705
|
+
|
|
3706
|
+
class MaterialConsistencyCheckSchema11(BaseModel):
|
|
3707
|
+
name: Name102
|
|
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 CrystalSchema11(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: BasisSchema12 = Field(..., title="basis schema")
|
|
3735
|
+
lattice: LatticeSchema11 = Field(..., title="lattice schema")
|
|
3736
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema11]] = 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[MaterialConsistencyCheckSchema11]] = 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 VacuumConfigurationSchema3(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: CrystalSchema11 = Field(..., title="Crystal Schema")
|
|
3792
|
+
"""
|
|
3793
|
+
A crystal structure, referencing the base material schema
|
|
3794
|
+
"""
|
|
3795
|
+
|
|
3796
|
+
|
|
3797
|
+
class SlabStrainedSupercellConfigurationSchema1(BaseModel):
|
|
3798
|
+
xy_supercell_matrix: Optional[List[SupercellMatrix2DSchemaItem]] = Field(
|
|
3799
|
+
default_factory=lambda: [SupercellMatrix2DSchemaItem.model_validate(v) for v in [[1, 0], [0, 1]]],
|
|
3800
|
+
max_length=2,
|
|
3801
|
+
min_length=2,
|
|
3802
|
+
title="Supercell Matrix 2D Schema",
|
|
3803
|
+
)
|
|
3804
|
+
"""
|
|
3805
|
+
Supercell matrix for xy plane transformations
|
|
3806
|
+
"""
|
|
3807
|
+
strain_matrix: List[ArrayOf3NumberElementsSchema] = Field(
|
|
3808
|
+
..., max_length=3, min_length=3, title="matrix 3x3 schema"
|
|
3809
|
+
)
|
|
3810
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema4, VacuumConfigurationSchema3]] = 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 Value32(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 Value33(Enum):
|
|
3945
|
+
X = "X"
|
|
3946
|
+
Vac = "Vac"
|
|
3947
|
+
|
|
3948
|
+
|
|
3949
|
+
class AtomicElementSchema15(BaseModel):
|
|
3950
|
+
value: Union[Value32, Value33]
|
|
3951
|
+
"""
|
|
3952
|
+
All elements, including extra elements
|
|
3953
|
+
"""
|
|
3954
|
+
id: int
|
|
3955
|
+
"""
|
|
3956
|
+
integer id of this entry
|
|
3957
|
+
"""
|
|
3958
|
+
|
|
3959
|
+
|
|
3960
|
+
class BasisSchema13(BaseModel):
|
|
3961
|
+
elements: List[AtomicElementSchema15] = 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 LatticeVectorsSchema12(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 LatticeUnitsSchema12(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 LatticeSchema12(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[LatticeVectorsSchema12] = Field(None, title="lattice vectors schema")
|
|
4018
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
4019
|
+
units: Optional[LatticeUnitsSchema12] = Field(
|
|
4020
|
+
default_factory=lambda: LatticeUnitsSchema12.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
4021
|
+
title="Lattice units schema",
|
|
4022
|
+
)
|
|
4023
|
+
|
|
4024
|
+
|
|
4025
|
+
class Name103(Enum):
|
|
4026
|
+
volume = "volume"
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
class Units45(Enum):
|
|
4030
|
+
angstrom_3 = "angstrom^3"
|
|
4031
|
+
|
|
4032
|
+
|
|
4033
|
+
class VolumeSchema12(BaseModel):
|
|
4034
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
4035
|
+
units: Optional[Units45] = None
|
|
4036
|
+
value: float
|
|
4037
|
+
|
|
4038
|
+
|
|
4039
|
+
class Name104(Enum):
|
|
4040
|
+
density = "density"
|
|
4041
|
+
|
|
4042
|
+
|
|
4043
|
+
class Units46(Enum):
|
|
4044
|
+
g_cm_3 = "g/cm^3"
|
|
4045
|
+
|
|
4046
|
+
|
|
4047
|
+
class DensitySchema12(BaseModel):
|
|
4048
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
4049
|
+
units: Optional[Units46] = None
|
|
4050
|
+
value: float
|
|
4051
|
+
|
|
4052
|
+
|
|
4053
|
+
class Units47(Enum):
|
|
4054
|
+
angstrom = "angstrom"
|
|
4055
|
+
|
|
4056
|
+
|
|
4057
|
+
class ScalarSchema13(BaseModel):
|
|
4058
|
+
units: Optional[Units47] = None
|
|
4059
|
+
value: float
|
|
4060
|
+
|
|
4061
|
+
|
|
4062
|
+
class Name105(Enum):
|
|
4063
|
+
symmetry = "symmetry"
|
|
4064
|
+
|
|
4065
|
+
|
|
4066
|
+
class SymmetrySchema12(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[ScalarSchema13] = 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 Name106(Enum):
|
|
4083
|
+
elemental_ratio = "elemental_ratio"
|
|
4084
|
+
|
|
4085
|
+
|
|
4086
|
+
class ElementalRatio12(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 Name107(Enum):
|
|
4096
|
+
p_norm = "p-norm"
|
|
4097
|
+
|
|
4098
|
+
|
|
4099
|
+
class PNorm12(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 Name108(Enum):
|
|
4109
|
+
inchi = "inchi"
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
class InChIRepresentationSchema12(BaseModel):
|
|
4113
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
4114
|
+
value: str
|
|
4115
|
+
|
|
4116
|
+
|
|
4117
|
+
class Name109(Enum):
|
|
4118
|
+
inchi_key = "inchi_key"
|
|
4119
|
+
|
|
4120
|
+
|
|
4121
|
+
class InChIKeyRepresentationSchema12(BaseModel):
|
|
4122
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
4123
|
+
value: str
|
|
4124
|
+
|
|
4125
|
+
|
|
4126
|
+
class DerivedPropertiesSchema12(
|
|
4127
|
+
RootModel[
|
|
4128
|
+
Union[
|
|
4129
|
+
VolumeSchema12,
|
|
4130
|
+
DensitySchema12,
|
|
4131
|
+
SymmetrySchema12,
|
|
4132
|
+
ElementalRatio12,
|
|
4133
|
+
PNorm12,
|
|
4134
|
+
InChIRepresentationSchema12,
|
|
4135
|
+
InChIKeyRepresentationSchema12,
|
|
4136
|
+
]
|
|
4137
|
+
]
|
|
4138
|
+
):
|
|
4139
|
+
root: Union[
|
|
4140
|
+
VolumeSchema12,
|
|
4141
|
+
DensitySchema12,
|
|
4142
|
+
SymmetrySchema12,
|
|
4143
|
+
ElementalRatio12,
|
|
4144
|
+
PNorm12,
|
|
4145
|
+
InChIRepresentationSchema12,
|
|
4146
|
+
InChIKeyRepresentationSchema12,
|
|
4147
|
+
] = Field(..., discriminator="name")
|
|
4148
|
+
|
|
4149
|
+
|
|
4150
|
+
class Name110(Enum):
|
|
4151
|
+
default = "default"
|
|
4152
|
+
atomsTooClose = "atomsTooClose"
|
|
4153
|
+
atomsOverlap = "atomsOverlap"
|
|
4154
|
+
|
|
4155
|
+
|
|
4156
|
+
class MaterialConsistencyCheckSchema12(BaseModel):
|
|
4157
|
+
name: Name110
|
|
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 CrystalSchema12(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: BasisSchema13 = Field(..., title="basis schema")
|
|
4185
|
+
lattice: LatticeSchema12 = Field(..., title="lattice schema")
|
|
4186
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema12]] = 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[MaterialConsistencyCheckSchema12]] = 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 VacuumConfigurationSchema4(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: CrystalSchema12 = Field(..., title="Crystal Schema")
|
|
4242
|
+
"""
|
|
4243
|
+
A crystal structure, referencing the base material schema
|
|
4244
|
+
"""
|
|
4245
|
+
|
|
4246
|
+
|
|
4247
|
+
class GrainBoundaryPlanarConfigurationSchema(BaseModel):
|
|
4248
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
4249
|
+
"""
|
|
4250
|
+
Enum for axis types
|
|
4251
|
+
"""
|
|
4252
|
+
stack_components: List[
|
|
4253
|
+
Union[
|
|
4254
|
+
Union[SlabConfigurationSchema, SlabStrainedSupercellConfigurationSchema],
|
|
4255
|
+
Union[SlabConfigurationSchema1, SlabStrainedSupercellConfigurationSchema1],
|
|
4256
|
+
VacuumConfigurationSchema4,
|
|
4257
|
+
]
|
|
4258
|
+
] = Field(..., max_length=3, min_length=2)
|
|
4259
|
+
"""
|
|
4260
|
+
Components of the interface: slab, slab and vacuum
|
|
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
|
+
"""
|