mat3ra-esse 2025.7.1.post0__py3-none-any.whl → 2025.7.29.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/job/__init__.py +8 -0
- 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 +6039 -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 +6043 -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 +2116 -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 +6039 -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 +2888 -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 +2892 -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 +1582 -0
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +1148 -0
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +78 -94
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +1147 -0
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -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/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 +1561 -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 +3 -947
- 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/models/software/flavor.py +4 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/__init__.py +16 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/evaluate/cross_validate.py +4 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/initialize.py +4 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/score.py +4 -0
- mat3ra/esse/models/software_directory/ml/unit/execution/train.py +4 -0
- mat3ra/esse/models/software_directory/modeling/unit/execution.py +4 -0
- mat3ra/esse/models/software_directory/scripting/unit/execution.py +4 -0
- mat3ra/esse/models/workflow/__init__.py +8 -0
- mat3ra/esse/models/workflow/subworkflow/__init__.py +4 -0
- mat3ra/esse/models/workflow/subworkflow/unit.py +4 -0
- mat3ra/esse/models/workflow/unit/__init__.py +4 -0
- mat3ra/esse/models/workflow/unit/execution.py +4 -0
- {mat3ra_esse-2025.7.1.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/METADATA +5 -5
- {mat3ra_esse-2025.7.1.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/RECORD +99 -58
- {mat3ra_esse-2025.7.1.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/WHEEL +0 -0
- {mat3ra_esse-2025.7.1.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.7.1.post0.dist-info → mat3ra_esse-2025.7.29.post0.dist-info}/top_level.txt +0 -0
mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py
ADDED
|
@@ -0,0 +1,2892 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: materials_category/defective_structures/two_dimensional/terrace/configuration.json
|
|
3
|
+
# version: 0.28.5
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import Any, Dict, List, Literal, Optional, Union
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, Field, RootModel, confloat, conint, constr
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ChemicalElements(Enum):
|
|
14
|
+
H = "H"
|
|
15
|
+
He = "He"
|
|
16
|
+
Li = "Li"
|
|
17
|
+
Be = "Be"
|
|
18
|
+
B = "B"
|
|
19
|
+
C = "C"
|
|
20
|
+
N = "N"
|
|
21
|
+
O = "O"
|
|
22
|
+
F = "F"
|
|
23
|
+
Ne = "Ne"
|
|
24
|
+
Na = "Na"
|
|
25
|
+
Mg = "Mg"
|
|
26
|
+
Al = "Al"
|
|
27
|
+
Si = "Si"
|
|
28
|
+
P = "P"
|
|
29
|
+
S = "S"
|
|
30
|
+
Cl = "Cl"
|
|
31
|
+
Ar = "Ar"
|
|
32
|
+
K = "K"
|
|
33
|
+
Ca = "Ca"
|
|
34
|
+
Sc = "Sc"
|
|
35
|
+
Ti = "Ti"
|
|
36
|
+
V = "V"
|
|
37
|
+
Cr = "Cr"
|
|
38
|
+
Mn = "Mn"
|
|
39
|
+
Fe = "Fe"
|
|
40
|
+
Co = "Co"
|
|
41
|
+
Ni = "Ni"
|
|
42
|
+
Cu = "Cu"
|
|
43
|
+
Zn = "Zn"
|
|
44
|
+
Ga = "Ga"
|
|
45
|
+
Ge = "Ge"
|
|
46
|
+
As = "As"
|
|
47
|
+
Se = "Se"
|
|
48
|
+
Br = "Br"
|
|
49
|
+
Kr = "Kr"
|
|
50
|
+
Rb = "Rb"
|
|
51
|
+
Sr = "Sr"
|
|
52
|
+
Y = "Y"
|
|
53
|
+
Zr = "Zr"
|
|
54
|
+
Nb = "Nb"
|
|
55
|
+
Mo = "Mo"
|
|
56
|
+
Tc = "Tc"
|
|
57
|
+
Ru = "Ru"
|
|
58
|
+
Rh = "Rh"
|
|
59
|
+
Pd = "Pd"
|
|
60
|
+
Ag = "Ag"
|
|
61
|
+
Cd = "Cd"
|
|
62
|
+
In = "In"
|
|
63
|
+
Sn = "Sn"
|
|
64
|
+
Sb = "Sb"
|
|
65
|
+
Te = "Te"
|
|
66
|
+
I = "I"
|
|
67
|
+
Xe = "Xe"
|
|
68
|
+
Cs = "Cs"
|
|
69
|
+
Ba = "Ba"
|
|
70
|
+
La = "La"
|
|
71
|
+
Ce = "Ce"
|
|
72
|
+
Pr = "Pr"
|
|
73
|
+
Nd = "Nd"
|
|
74
|
+
Pm = "Pm"
|
|
75
|
+
Sm = "Sm"
|
|
76
|
+
Eu = "Eu"
|
|
77
|
+
Gd = "Gd"
|
|
78
|
+
Tb = "Tb"
|
|
79
|
+
Dy = "Dy"
|
|
80
|
+
Ho = "Ho"
|
|
81
|
+
Er = "Er"
|
|
82
|
+
Tm = "Tm"
|
|
83
|
+
Yb = "Yb"
|
|
84
|
+
Lu = "Lu"
|
|
85
|
+
Hf = "Hf"
|
|
86
|
+
Ta = "Ta"
|
|
87
|
+
W = "W"
|
|
88
|
+
Re = "Re"
|
|
89
|
+
Os = "Os"
|
|
90
|
+
Ir = "Ir"
|
|
91
|
+
Pt = "Pt"
|
|
92
|
+
Au = "Au"
|
|
93
|
+
Hg = "Hg"
|
|
94
|
+
Tl = "Tl"
|
|
95
|
+
Pb = "Pb"
|
|
96
|
+
Bi = "Bi"
|
|
97
|
+
Po = "Po"
|
|
98
|
+
At = "At"
|
|
99
|
+
Rn = "Rn"
|
|
100
|
+
Fr = "Fr"
|
|
101
|
+
Ra = "Ra"
|
|
102
|
+
Ac = "Ac"
|
|
103
|
+
Th = "Th"
|
|
104
|
+
Pa = "Pa"
|
|
105
|
+
U = "U"
|
|
106
|
+
Np = "Np"
|
|
107
|
+
Pu = "Pu"
|
|
108
|
+
Am = "Am"
|
|
109
|
+
Cm = "Cm"
|
|
110
|
+
Bk = "Bk"
|
|
111
|
+
Cf = "Cf"
|
|
112
|
+
Es = "Es"
|
|
113
|
+
Fm = "Fm"
|
|
114
|
+
Md = "Md"
|
|
115
|
+
No = "No"
|
|
116
|
+
Lr = "Lr"
|
|
117
|
+
Rf = "Rf"
|
|
118
|
+
Db = "Db"
|
|
119
|
+
Sg = "Sg"
|
|
120
|
+
Bh = "Bh"
|
|
121
|
+
Hs = "Hs"
|
|
122
|
+
Mt = "Mt"
|
|
123
|
+
Ds = "Ds"
|
|
124
|
+
Rg = "Rg"
|
|
125
|
+
Cn = "Cn"
|
|
126
|
+
Nh = "Nh"
|
|
127
|
+
Fl = "Fl"
|
|
128
|
+
Mc = "Mc"
|
|
129
|
+
Lv = "Lv"
|
|
130
|
+
Ts = "Ts"
|
|
131
|
+
Og = "Og"
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class TerminationSchema(BaseModel):
|
|
135
|
+
chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
|
|
136
|
+
..., title="Chemical Elements"
|
|
137
|
+
)
|
|
138
|
+
"""
|
|
139
|
+
Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
|
|
140
|
+
"""
|
|
141
|
+
space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
|
|
142
|
+
"""
|
|
143
|
+
Space group symmetry designation for the termination
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class Value(Enum):
|
|
148
|
+
H = "H"
|
|
149
|
+
He = "He"
|
|
150
|
+
Li = "Li"
|
|
151
|
+
Be = "Be"
|
|
152
|
+
B = "B"
|
|
153
|
+
C = "C"
|
|
154
|
+
N = "N"
|
|
155
|
+
O = "O"
|
|
156
|
+
F = "F"
|
|
157
|
+
Ne = "Ne"
|
|
158
|
+
Na = "Na"
|
|
159
|
+
Mg = "Mg"
|
|
160
|
+
Al = "Al"
|
|
161
|
+
Si = "Si"
|
|
162
|
+
P = "P"
|
|
163
|
+
S = "S"
|
|
164
|
+
Cl = "Cl"
|
|
165
|
+
Ar = "Ar"
|
|
166
|
+
K = "K"
|
|
167
|
+
Ca = "Ca"
|
|
168
|
+
Sc = "Sc"
|
|
169
|
+
Ti = "Ti"
|
|
170
|
+
V = "V"
|
|
171
|
+
Cr = "Cr"
|
|
172
|
+
Mn = "Mn"
|
|
173
|
+
Fe = "Fe"
|
|
174
|
+
Co = "Co"
|
|
175
|
+
Ni = "Ni"
|
|
176
|
+
Cu = "Cu"
|
|
177
|
+
Zn = "Zn"
|
|
178
|
+
Ga = "Ga"
|
|
179
|
+
Ge = "Ge"
|
|
180
|
+
As = "As"
|
|
181
|
+
Se = "Se"
|
|
182
|
+
Br = "Br"
|
|
183
|
+
Kr = "Kr"
|
|
184
|
+
Rb = "Rb"
|
|
185
|
+
Sr = "Sr"
|
|
186
|
+
Y = "Y"
|
|
187
|
+
Zr = "Zr"
|
|
188
|
+
Nb = "Nb"
|
|
189
|
+
Mo = "Mo"
|
|
190
|
+
Tc = "Tc"
|
|
191
|
+
Ru = "Ru"
|
|
192
|
+
Rh = "Rh"
|
|
193
|
+
Pd = "Pd"
|
|
194
|
+
Ag = "Ag"
|
|
195
|
+
Cd = "Cd"
|
|
196
|
+
In = "In"
|
|
197
|
+
Sn = "Sn"
|
|
198
|
+
Sb = "Sb"
|
|
199
|
+
Te = "Te"
|
|
200
|
+
I = "I"
|
|
201
|
+
Xe = "Xe"
|
|
202
|
+
Cs = "Cs"
|
|
203
|
+
Ba = "Ba"
|
|
204
|
+
La = "La"
|
|
205
|
+
Ce = "Ce"
|
|
206
|
+
Pr = "Pr"
|
|
207
|
+
Nd = "Nd"
|
|
208
|
+
Pm = "Pm"
|
|
209
|
+
Sm = "Sm"
|
|
210
|
+
Eu = "Eu"
|
|
211
|
+
Gd = "Gd"
|
|
212
|
+
Tb = "Tb"
|
|
213
|
+
Dy = "Dy"
|
|
214
|
+
Ho = "Ho"
|
|
215
|
+
Er = "Er"
|
|
216
|
+
Tm = "Tm"
|
|
217
|
+
Yb = "Yb"
|
|
218
|
+
Lu = "Lu"
|
|
219
|
+
Hf = "Hf"
|
|
220
|
+
Ta = "Ta"
|
|
221
|
+
W = "W"
|
|
222
|
+
Re = "Re"
|
|
223
|
+
Os = "Os"
|
|
224
|
+
Ir = "Ir"
|
|
225
|
+
Pt = "Pt"
|
|
226
|
+
Au = "Au"
|
|
227
|
+
Hg = "Hg"
|
|
228
|
+
Tl = "Tl"
|
|
229
|
+
Pb = "Pb"
|
|
230
|
+
Bi = "Bi"
|
|
231
|
+
Po = "Po"
|
|
232
|
+
At = "At"
|
|
233
|
+
Rn = "Rn"
|
|
234
|
+
Fr = "Fr"
|
|
235
|
+
Ra = "Ra"
|
|
236
|
+
Ac = "Ac"
|
|
237
|
+
Th = "Th"
|
|
238
|
+
Pa = "Pa"
|
|
239
|
+
U = "U"
|
|
240
|
+
Np = "Np"
|
|
241
|
+
Pu = "Pu"
|
|
242
|
+
Am = "Am"
|
|
243
|
+
Cm = "Cm"
|
|
244
|
+
Bk = "Bk"
|
|
245
|
+
Cf = "Cf"
|
|
246
|
+
Es = "Es"
|
|
247
|
+
Fm = "Fm"
|
|
248
|
+
Md = "Md"
|
|
249
|
+
No = "No"
|
|
250
|
+
Lr = "Lr"
|
|
251
|
+
Rf = "Rf"
|
|
252
|
+
Db = "Db"
|
|
253
|
+
Sg = "Sg"
|
|
254
|
+
Bh = "Bh"
|
|
255
|
+
Hs = "Hs"
|
|
256
|
+
Mt = "Mt"
|
|
257
|
+
Ds = "Ds"
|
|
258
|
+
Rg = "Rg"
|
|
259
|
+
Cn = "Cn"
|
|
260
|
+
Nh = "Nh"
|
|
261
|
+
Fl = "Fl"
|
|
262
|
+
Mc = "Mc"
|
|
263
|
+
Lv = "Lv"
|
|
264
|
+
Ts = "Ts"
|
|
265
|
+
Og = "Og"
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
class Value43(Enum):
|
|
269
|
+
X = "X"
|
|
270
|
+
Vac = "Vac"
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
class AtomicElementSchema(BaseModel):
|
|
274
|
+
value: Union[Value, Value43]
|
|
275
|
+
"""
|
|
276
|
+
All elements, including extra elements
|
|
277
|
+
"""
|
|
278
|
+
id: int
|
|
279
|
+
"""
|
|
280
|
+
integer id of this entry
|
|
281
|
+
"""
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
class AtomicCoordinateSchema(BaseModel):
|
|
285
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
286
|
+
"""
|
|
287
|
+
value of this entry
|
|
288
|
+
"""
|
|
289
|
+
id: int
|
|
290
|
+
"""
|
|
291
|
+
integer id of this entry
|
|
292
|
+
"""
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
class BasisUnitsEnum(Enum):
|
|
296
|
+
crystal = "crystal"
|
|
297
|
+
cartesian = "cartesian"
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
class AtomicLabelSchema(BaseModel):
|
|
301
|
+
value: Union[Union[int, str, float], conint(ge=1, le=9)]
|
|
302
|
+
"""
|
|
303
|
+
value of this entry
|
|
304
|
+
"""
|
|
305
|
+
id: int
|
|
306
|
+
"""
|
|
307
|
+
integer id of this entry
|
|
308
|
+
"""
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
class BasisSchema(BaseModel):
|
|
312
|
+
elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
|
|
313
|
+
"""
|
|
314
|
+
atomic elements schema
|
|
315
|
+
"""
|
|
316
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
317
|
+
"""
|
|
318
|
+
atomic coordinates schema
|
|
319
|
+
"""
|
|
320
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
321
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
322
|
+
"""
|
|
323
|
+
atomic labels schema
|
|
324
|
+
"""
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
class LatticeVectorsUnitsEnum(Enum):
|
|
328
|
+
angstrom = "angstrom"
|
|
329
|
+
bohr = "bohr"
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
class LatticeVectorsSchema(BaseModel):
|
|
333
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
334
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
335
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
336
|
+
alat: Optional[float] = 1
|
|
337
|
+
"""
|
|
338
|
+
lattice parameter for fractional coordinates
|
|
339
|
+
"""
|
|
340
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
class LatticeTypeEnum(Enum):
|
|
344
|
+
CUB = "CUB"
|
|
345
|
+
BCC = "BCC"
|
|
346
|
+
FCC = "FCC"
|
|
347
|
+
TET = "TET"
|
|
348
|
+
MCL = "MCL"
|
|
349
|
+
ORC = "ORC"
|
|
350
|
+
ORCC = "ORCC"
|
|
351
|
+
ORCF = "ORCF"
|
|
352
|
+
ORCI = "ORCI"
|
|
353
|
+
HEX = "HEX"
|
|
354
|
+
BCT = "BCT"
|
|
355
|
+
TRI = "TRI"
|
|
356
|
+
MCLC = "MCLC"
|
|
357
|
+
RHL = "RHL"
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
class LatticeUnitsLengthEnum(Enum):
|
|
361
|
+
angstrom = "angstrom"
|
|
362
|
+
bohr = "bohr"
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
class LatticeUnitsAngleEnum(Enum):
|
|
366
|
+
degree = "degree"
|
|
367
|
+
radian = "radian"
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
class LatticeUnitsSchema(BaseModel):
|
|
371
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
372
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
class LatticeSchema(BaseModel):
|
|
376
|
+
a: float
|
|
377
|
+
"""
|
|
378
|
+
length of the first lattice vector
|
|
379
|
+
"""
|
|
380
|
+
b: float
|
|
381
|
+
"""
|
|
382
|
+
length of the second lattice vector
|
|
383
|
+
"""
|
|
384
|
+
c: float
|
|
385
|
+
"""
|
|
386
|
+
length of the third lattice vector
|
|
387
|
+
"""
|
|
388
|
+
alpha: float
|
|
389
|
+
"""
|
|
390
|
+
angle between first and second lattice vector
|
|
391
|
+
"""
|
|
392
|
+
beta: float
|
|
393
|
+
"""
|
|
394
|
+
angle between second and third lattice vector
|
|
395
|
+
"""
|
|
396
|
+
gamma: float
|
|
397
|
+
"""
|
|
398
|
+
angle between first and third lattice vector
|
|
399
|
+
"""
|
|
400
|
+
vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
|
|
401
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
402
|
+
units: Optional[LatticeUnitsSchema] = Field(
|
|
403
|
+
default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
404
|
+
title="Lattice units schema",
|
|
405
|
+
)
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
class Name(Enum):
|
|
409
|
+
volume = "volume"
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
class Units(Enum):
|
|
413
|
+
angstrom_3 = "angstrom^3"
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
class VolumeSchema(BaseModel):
|
|
417
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
418
|
+
units: Optional[Units] = None
|
|
419
|
+
value: float
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
class Name144(Enum):
|
|
423
|
+
density = "density"
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
class Units61(Enum):
|
|
427
|
+
g_cm_3 = "g/cm^3"
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
class DensitySchema(BaseModel):
|
|
431
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
432
|
+
units: Optional[Units61] = None
|
|
433
|
+
value: float
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
class Units62(Enum):
|
|
437
|
+
angstrom = "angstrom"
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
class ScalarSchema(BaseModel):
|
|
441
|
+
units: Optional[Units62] = None
|
|
442
|
+
value: float
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
class Name145(Enum):
|
|
446
|
+
symmetry = "symmetry"
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
class SymmetrySchema(BaseModel):
|
|
450
|
+
pointGroupSymbol: Optional[str] = None
|
|
451
|
+
"""
|
|
452
|
+
point group symbol in Schoenflies notation
|
|
453
|
+
"""
|
|
454
|
+
spaceGroupSymbol: Optional[str] = None
|
|
455
|
+
"""
|
|
456
|
+
space group symbol in Hermann–Mauguin notation
|
|
457
|
+
"""
|
|
458
|
+
tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
|
|
459
|
+
"""
|
|
460
|
+
tolerance used for symmetry calculation
|
|
461
|
+
"""
|
|
462
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
class Name146(Enum):
|
|
466
|
+
elemental_ratio = "elemental_ratio"
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
class ElementalRatio(BaseModel):
|
|
470
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
471
|
+
value: confloat(ge=0.0, le=1.0)
|
|
472
|
+
element: Optional[str] = None
|
|
473
|
+
"""
|
|
474
|
+
the element this ratio is for
|
|
475
|
+
"""
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
class Name147(Enum):
|
|
479
|
+
p_norm = "p-norm"
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
class PNorm(BaseModel):
|
|
483
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
484
|
+
degree: Optional[int] = None
|
|
485
|
+
"""
|
|
486
|
+
degree of the dimensionality of the norm
|
|
487
|
+
"""
|
|
488
|
+
value: float
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
class Name148(Enum):
|
|
492
|
+
inchi = "inchi"
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
class InChIRepresentationSchema(BaseModel):
|
|
496
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
497
|
+
value: str
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
class Name149(Enum):
|
|
501
|
+
inchi_key = "inchi_key"
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
class InChIKeyRepresentationSchema(BaseModel):
|
|
505
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
506
|
+
value: str
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
class DerivedPropertiesSchema(
|
|
510
|
+
RootModel[
|
|
511
|
+
Union[
|
|
512
|
+
VolumeSchema,
|
|
513
|
+
DensitySchema,
|
|
514
|
+
SymmetrySchema,
|
|
515
|
+
ElementalRatio,
|
|
516
|
+
PNorm,
|
|
517
|
+
InChIRepresentationSchema,
|
|
518
|
+
InChIKeyRepresentationSchema,
|
|
519
|
+
]
|
|
520
|
+
]
|
|
521
|
+
):
|
|
522
|
+
root: Union[
|
|
523
|
+
VolumeSchema,
|
|
524
|
+
DensitySchema,
|
|
525
|
+
SymmetrySchema,
|
|
526
|
+
ElementalRatio,
|
|
527
|
+
PNorm,
|
|
528
|
+
InChIRepresentationSchema,
|
|
529
|
+
InChIKeyRepresentationSchema,
|
|
530
|
+
] = Field(..., discriminator="name")
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
class DatabaseSourceSchema(BaseModel):
|
|
534
|
+
id: Union[str, float]
|
|
535
|
+
"""
|
|
536
|
+
ID string for the materials uploaded from a third party source inside the third party source. For materialsproject.org an example ID is mp-32
|
|
537
|
+
"""
|
|
538
|
+
source: str
|
|
539
|
+
"""
|
|
540
|
+
Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
|
|
541
|
+
"""
|
|
542
|
+
origin: bool
|
|
543
|
+
"""
|
|
544
|
+
Deprecated. To be removed. A flag that is true when material is initially imported from a third party * (as opposed to being independently designed from scratch).
|
|
545
|
+
"""
|
|
546
|
+
data: Optional[Dict[str, Any]] = None
|
|
547
|
+
"""
|
|
548
|
+
Original response from external source.
|
|
549
|
+
"""
|
|
550
|
+
doi: Optional[str] = None
|
|
551
|
+
"""
|
|
552
|
+
Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
|
|
553
|
+
"""
|
|
554
|
+
url: Optional[str] = None
|
|
555
|
+
"""
|
|
556
|
+
The URL of the original record, e.g. https://next-gen.materialsproject.org/materials/mp-48; ToDo: update to use URI type per https://json-schema.org/understanding-json-schema/reference/string#resource-identifiers
|
|
557
|
+
"""
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
class FileSourceSchema(BaseModel):
|
|
561
|
+
extension: Optional[str] = None
|
|
562
|
+
"""
|
|
563
|
+
file extension
|
|
564
|
+
"""
|
|
565
|
+
filename: str
|
|
566
|
+
"""
|
|
567
|
+
file name without extension
|
|
568
|
+
"""
|
|
569
|
+
text: str
|
|
570
|
+
"""
|
|
571
|
+
file content as raw text
|
|
572
|
+
"""
|
|
573
|
+
hash: str
|
|
574
|
+
"""
|
|
575
|
+
MD5 hash based on file content
|
|
576
|
+
"""
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
class Name150(Enum):
|
|
580
|
+
default = "default"
|
|
581
|
+
atomsTooClose = "atomsTooClose"
|
|
582
|
+
atomsOverlap = "atomsOverlap"
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
class Severity(Enum):
|
|
586
|
+
info = "info"
|
|
587
|
+
warning = "warning"
|
|
588
|
+
error = "error"
|
|
589
|
+
|
|
590
|
+
|
|
591
|
+
class MaterialConsistencyCheckSchema(BaseModel):
|
|
592
|
+
name: Name150
|
|
593
|
+
"""
|
|
594
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
595
|
+
"""
|
|
596
|
+
key: str
|
|
597
|
+
"""
|
|
598
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
599
|
+
"""
|
|
600
|
+
severity: Severity
|
|
601
|
+
"""
|
|
602
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
603
|
+
"""
|
|
604
|
+
message: str
|
|
605
|
+
"""
|
|
606
|
+
Message generated by the consistency check describing the problem.
|
|
607
|
+
"""
|
|
608
|
+
|
|
609
|
+
|
|
610
|
+
class CrystalSchema(BaseModel):
|
|
611
|
+
formula: Optional[str] = None
|
|
612
|
+
"""
|
|
613
|
+
reduced chemical formula
|
|
614
|
+
"""
|
|
615
|
+
unitCellFormula: Optional[str] = None
|
|
616
|
+
"""
|
|
617
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
618
|
+
"""
|
|
619
|
+
basis: BasisSchema = Field(..., title="basis schema")
|
|
620
|
+
lattice: LatticeSchema = Field(..., title="lattice schema")
|
|
621
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
|
|
622
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
623
|
+
"""
|
|
624
|
+
information about a database source
|
|
625
|
+
"""
|
|
626
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
627
|
+
"""
|
|
628
|
+
file source with the information inside
|
|
629
|
+
"""
|
|
630
|
+
scaledHash: Optional[str] = None
|
|
631
|
+
"""
|
|
632
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
633
|
+
"""
|
|
634
|
+
icsdId: Optional[int] = None
|
|
635
|
+
"""
|
|
636
|
+
Corresponding ICSD id of the material
|
|
637
|
+
"""
|
|
638
|
+
isNonPeriodic: Optional[bool] = None
|
|
639
|
+
"""
|
|
640
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
641
|
+
"""
|
|
642
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
|
|
643
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
644
|
+
"""
|
|
645
|
+
entity identity
|
|
646
|
+
"""
|
|
647
|
+
slug: Optional[str] = None
|
|
648
|
+
"""
|
|
649
|
+
entity slug
|
|
650
|
+
"""
|
|
651
|
+
systemName: Optional[str] = None
|
|
652
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
653
|
+
"""
|
|
654
|
+
entity's schema version. Used to distinct between different schemas.
|
|
655
|
+
"""
|
|
656
|
+
name: Optional[str] = None
|
|
657
|
+
"""
|
|
658
|
+
entity name
|
|
659
|
+
"""
|
|
660
|
+
isDefault: Optional[bool] = False
|
|
661
|
+
"""
|
|
662
|
+
Identifies that entity is defaultable
|
|
663
|
+
"""
|
|
664
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
class AtomicLayersUniqueRepeatedSchema(BaseModel):
|
|
668
|
+
termination_top: TerminationSchema = Field(..., title="Termination Schema")
|
|
669
|
+
"""
|
|
670
|
+
Defines a specific termination of a slab
|
|
671
|
+
"""
|
|
672
|
+
number_of_repetitions: conint(ge=1)
|
|
673
|
+
"""
|
|
674
|
+
Number of repetitions of the unique atomic layers
|
|
675
|
+
"""
|
|
676
|
+
miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
|
|
677
|
+
"""
|
|
678
|
+
Miller indices [h, k, l] defining crystallographic planes
|
|
679
|
+
"""
|
|
680
|
+
crystal: CrystalSchema = Field(..., title="Crystal Schema")
|
|
681
|
+
"""
|
|
682
|
+
A crystal structure, referencing the base material schema
|
|
683
|
+
"""
|
|
684
|
+
use_conventional_cell: Optional[bool] = True
|
|
685
|
+
"""
|
|
686
|
+
Use the conventional cell for the crystal structure
|
|
687
|
+
"""
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
class AxisEnum(Enum):
|
|
691
|
+
x = "x"
|
|
692
|
+
y = "y"
|
|
693
|
+
z = "z"
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
class Value44(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 Value45(Enum):
|
|
818
|
+
X = "X"
|
|
819
|
+
Vac = "Vac"
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
class AtomicElementSchema21(BaseModel):
|
|
823
|
+
value: Union[Value44, Value45]
|
|
824
|
+
"""
|
|
825
|
+
All elements, including extra elements
|
|
826
|
+
"""
|
|
827
|
+
id: int
|
|
828
|
+
"""
|
|
829
|
+
integer id of this entry
|
|
830
|
+
"""
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
class BasisSchema19(BaseModel):
|
|
834
|
+
elements: List[AtomicElementSchema21] = 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 LatticeVectorsSchema18(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 LatticeUnitsSchema18(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 LatticeSchema18(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[LatticeVectorsSchema18] = Field(None, title="lattice vectors schema")
|
|
891
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
892
|
+
units: Optional[LatticeUnitsSchema18] = Field(
|
|
893
|
+
default_factory=lambda: LatticeUnitsSchema18.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
894
|
+
title="Lattice units schema",
|
|
895
|
+
)
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
class Name151(Enum):
|
|
899
|
+
volume = "volume"
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
class Units63(Enum):
|
|
903
|
+
angstrom_3 = "angstrom^3"
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
class VolumeSchema18(BaseModel):
|
|
907
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
908
|
+
units: Optional[Units63] = None
|
|
909
|
+
value: float
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
class Name152(Enum):
|
|
913
|
+
density = "density"
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
class Units64(Enum):
|
|
917
|
+
g_cm_3 = "g/cm^3"
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
class DensitySchema18(BaseModel):
|
|
921
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
922
|
+
units: Optional[Units64] = None
|
|
923
|
+
value: float
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
class Units65(Enum):
|
|
927
|
+
angstrom = "angstrom"
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
class ScalarSchema19(BaseModel):
|
|
931
|
+
units: Optional[Units65] = None
|
|
932
|
+
value: float
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
class Name153(Enum):
|
|
936
|
+
symmetry = "symmetry"
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
class SymmetrySchema18(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[ScalarSchema19] = 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 Name154(Enum):
|
|
956
|
+
elemental_ratio = "elemental_ratio"
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
class ElementalRatio18(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 Name155(Enum):
|
|
969
|
+
p_norm = "p-norm"
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
class PNorm18(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 Name156(Enum):
|
|
982
|
+
inchi = "inchi"
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
class InChIRepresentationSchema18(BaseModel):
|
|
986
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
987
|
+
value: str
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
class Name157(Enum):
|
|
991
|
+
inchi_key = "inchi_key"
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
class InChIKeyRepresentationSchema18(BaseModel):
|
|
995
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
996
|
+
value: str
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
class DerivedPropertiesSchema18(
|
|
1000
|
+
RootModel[
|
|
1001
|
+
Union[
|
|
1002
|
+
VolumeSchema18,
|
|
1003
|
+
DensitySchema18,
|
|
1004
|
+
SymmetrySchema18,
|
|
1005
|
+
ElementalRatio18,
|
|
1006
|
+
PNorm18,
|
|
1007
|
+
InChIRepresentationSchema18,
|
|
1008
|
+
InChIKeyRepresentationSchema18,
|
|
1009
|
+
]
|
|
1010
|
+
]
|
|
1011
|
+
):
|
|
1012
|
+
root: Union[
|
|
1013
|
+
VolumeSchema18,
|
|
1014
|
+
DensitySchema18,
|
|
1015
|
+
SymmetrySchema18,
|
|
1016
|
+
ElementalRatio18,
|
|
1017
|
+
PNorm18,
|
|
1018
|
+
InChIRepresentationSchema18,
|
|
1019
|
+
InChIKeyRepresentationSchema18,
|
|
1020
|
+
] = Field(..., discriminator="name")
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
class Name158(Enum):
|
|
1024
|
+
default = "default"
|
|
1025
|
+
atomsTooClose = "atomsTooClose"
|
|
1026
|
+
atomsOverlap = "atomsOverlap"
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
class MaterialConsistencyCheckSchema18(BaseModel):
|
|
1030
|
+
name: Name158
|
|
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 CrystalSchema18(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: BasisSchema19 = Field(..., title="basis schema")
|
|
1058
|
+
lattice: LatticeSchema18 = Field(..., title="lattice schema")
|
|
1059
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema18]] = 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[MaterialConsistencyCheckSchema18]] = 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: CrystalSchema18 = Field(..., title="Crystal Schema")
|
|
1115
|
+
"""
|
|
1116
|
+
A crystal structure, referencing the base material schema
|
|
1117
|
+
"""
|
|
1118
|
+
|
|
1119
|
+
|
|
1120
|
+
class SlabConfigurationSchema(BaseModel):
|
|
1121
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema, VacuumConfigurationSchema]] = Field(
|
|
1122
|
+
..., max_length=2, min_length=2
|
|
1123
|
+
)
|
|
1124
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
1125
|
+
"""
|
|
1126
|
+
Enum for axis types
|
|
1127
|
+
"""
|
|
1128
|
+
|
|
1129
|
+
|
|
1130
|
+
class TerminationSchema10(BaseModel):
|
|
1131
|
+
chemical_elements: Union[ChemicalElements, constr(pattern=r"^([A-Z][a-z]?[0-9]*)+$")] = Field(
|
|
1132
|
+
..., title="Chemical Elements"
|
|
1133
|
+
)
|
|
1134
|
+
"""
|
|
1135
|
+
Chemical elements at the termination. Can be a single element (e.g. 'Si') or a compound (e.g. 'SiO')
|
|
1136
|
+
"""
|
|
1137
|
+
space_group_symmetry_label: str = Field(..., title="Space Group Symmetry Label")
|
|
1138
|
+
"""
|
|
1139
|
+
Space group symmetry designation for the termination
|
|
1140
|
+
"""
|
|
1141
|
+
|
|
1142
|
+
|
|
1143
|
+
class Value46(Enum):
|
|
1144
|
+
H = "H"
|
|
1145
|
+
He = "He"
|
|
1146
|
+
Li = "Li"
|
|
1147
|
+
Be = "Be"
|
|
1148
|
+
B = "B"
|
|
1149
|
+
C = "C"
|
|
1150
|
+
N = "N"
|
|
1151
|
+
O = "O"
|
|
1152
|
+
F = "F"
|
|
1153
|
+
Ne = "Ne"
|
|
1154
|
+
Na = "Na"
|
|
1155
|
+
Mg = "Mg"
|
|
1156
|
+
Al = "Al"
|
|
1157
|
+
Si = "Si"
|
|
1158
|
+
P = "P"
|
|
1159
|
+
S = "S"
|
|
1160
|
+
Cl = "Cl"
|
|
1161
|
+
Ar = "Ar"
|
|
1162
|
+
K = "K"
|
|
1163
|
+
Ca = "Ca"
|
|
1164
|
+
Sc = "Sc"
|
|
1165
|
+
Ti = "Ti"
|
|
1166
|
+
V = "V"
|
|
1167
|
+
Cr = "Cr"
|
|
1168
|
+
Mn = "Mn"
|
|
1169
|
+
Fe = "Fe"
|
|
1170
|
+
Co = "Co"
|
|
1171
|
+
Ni = "Ni"
|
|
1172
|
+
Cu = "Cu"
|
|
1173
|
+
Zn = "Zn"
|
|
1174
|
+
Ga = "Ga"
|
|
1175
|
+
Ge = "Ge"
|
|
1176
|
+
As = "As"
|
|
1177
|
+
Se = "Se"
|
|
1178
|
+
Br = "Br"
|
|
1179
|
+
Kr = "Kr"
|
|
1180
|
+
Rb = "Rb"
|
|
1181
|
+
Sr = "Sr"
|
|
1182
|
+
Y = "Y"
|
|
1183
|
+
Zr = "Zr"
|
|
1184
|
+
Nb = "Nb"
|
|
1185
|
+
Mo = "Mo"
|
|
1186
|
+
Tc = "Tc"
|
|
1187
|
+
Ru = "Ru"
|
|
1188
|
+
Rh = "Rh"
|
|
1189
|
+
Pd = "Pd"
|
|
1190
|
+
Ag = "Ag"
|
|
1191
|
+
Cd = "Cd"
|
|
1192
|
+
In = "In"
|
|
1193
|
+
Sn = "Sn"
|
|
1194
|
+
Sb = "Sb"
|
|
1195
|
+
Te = "Te"
|
|
1196
|
+
I = "I"
|
|
1197
|
+
Xe = "Xe"
|
|
1198
|
+
Cs = "Cs"
|
|
1199
|
+
Ba = "Ba"
|
|
1200
|
+
La = "La"
|
|
1201
|
+
Ce = "Ce"
|
|
1202
|
+
Pr = "Pr"
|
|
1203
|
+
Nd = "Nd"
|
|
1204
|
+
Pm = "Pm"
|
|
1205
|
+
Sm = "Sm"
|
|
1206
|
+
Eu = "Eu"
|
|
1207
|
+
Gd = "Gd"
|
|
1208
|
+
Tb = "Tb"
|
|
1209
|
+
Dy = "Dy"
|
|
1210
|
+
Ho = "Ho"
|
|
1211
|
+
Er = "Er"
|
|
1212
|
+
Tm = "Tm"
|
|
1213
|
+
Yb = "Yb"
|
|
1214
|
+
Lu = "Lu"
|
|
1215
|
+
Hf = "Hf"
|
|
1216
|
+
Ta = "Ta"
|
|
1217
|
+
W = "W"
|
|
1218
|
+
Re = "Re"
|
|
1219
|
+
Os = "Os"
|
|
1220
|
+
Ir = "Ir"
|
|
1221
|
+
Pt = "Pt"
|
|
1222
|
+
Au = "Au"
|
|
1223
|
+
Hg = "Hg"
|
|
1224
|
+
Tl = "Tl"
|
|
1225
|
+
Pb = "Pb"
|
|
1226
|
+
Bi = "Bi"
|
|
1227
|
+
Po = "Po"
|
|
1228
|
+
At = "At"
|
|
1229
|
+
Rn = "Rn"
|
|
1230
|
+
Fr = "Fr"
|
|
1231
|
+
Ra = "Ra"
|
|
1232
|
+
Ac = "Ac"
|
|
1233
|
+
Th = "Th"
|
|
1234
|
+
Pa = "Pa"
|
|
1235
|
+
U = "U"
|
|
1236
|
+
Np = "Np"
|
|
1237
|
+
Pu = "Pu"
|
|
1238
|
+
Am = "Am"
|
|
1239
|
+
Cm = "Cm"
|
|
1240
|
+
Bk = "Bk"
|
|
1241
|
+
Cf = "Cf"
|
|
1242
|
+
Es = "Es"
|
|
1243
|
+
Fm = "Fm"
|
|
1244
|
+
Md = "Md"
|
|
1245
|
+
No = "No"
|
|
1246
|
+
Lr = "Lr"
|
|
1247
|
+
Rf = "Rf"
|
|
1248
|
+
Db = "Db"
|
|
1249
|
+
Sg = "Sg"
|
|
1250
|
+
Bh = "Bh"
|
|
1251
|
+
Hs = "Hs"
|
|
1252
|
+
Mt = "Mt"
|
|
1253
|
+
Ds = "Ds"
|
|
1254
|
+
Rg = "Rg"
|
|
1255
|
+
Cn = "Cn"
|
|
1256
|
+
Nh = "Nh"
|
|
1257
|
+
Fl = "Fl"
|
|
1258
|
+
Mc = "Mc"
|
|
1259
|
+
Lv = "Lv"
|
|
1260
|
+
Ts = "Ts"
|
|
1261
|
+
Og = "Og"
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
class Value47(Enum):
|
|
1265
|
+
X = "X"
|
|
1266
|
+
Vac = "Vac"
|
|
1267
|
+
|
|
1268
|
+
|
|
1269
|
+
class AtomicElementSchema22(BaseModel):
|
|
1270
|
+
value: Union[Value46, Value47]
|
|
1271
|
+
"""
|
|
1272
|
+
All elements, including extra elements
|
|
1273
|
+
"""
|
|
1274
|
+
id: int
|
|
1275
|
+
"""
|
|
1276
|
+
integer id of this entry
|
|
1277
|
+
"""
|
|
1278
|
+
|
|
1279
|
+
|
|
1280
|
+
class BasisSchema20(BaseModel):
|
|
1281
|
+
elements: List[AtomicElementSchema22] = Field(..., title="atomic elements schema")
|
|
1282
|
+
"""
|
|
1283
|
+
atomic elements schema
|
|
1284
|
+
"""
|
|
1285
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
1286
|
+
"""
|
|
1287
|
+
atomic coordinates schema
|
|
1288
|
+
"""
|
|
1289
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
1290
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
1291
|
+
"""
|
|
1292
|
+
atomic labels schema
|
|
1293
|
+
"""
|
|
1294
|
+
|
|
1295
|
+
|
|
1296
|
+
class LatticeVectorsSchema19(BaseModel):
|
|
1297
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1298
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1299
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1300
|
+
alat: Optional[float] = 1
|
|
1301
|
+
"""
|
|
1302
|
+
lattice parameter for fractional coordinates
|
|
1303
|
+
"""
|
|
1304
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
1305
|
+
|
|
1306
|
+
|
|
1307
|
+
class LatticeUnitsSchema19(BaseModel):
|
|
1308
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
1309
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
class LatticeSchema19(BaseModel):
|
|
1313
|
+
a: float
|
|
1314
|
+
"""
|
|
1315
|
+
length of the first lattice vector
|
|
1316
|
+
"""
|
|
1317
|
+
b: float
|
|
1318
|
+
"""
|
|
1319
|
+
length of the second lattice vector
|
|
1320
|
+
"""
|
|
1321
|
+
c: float
|
|
1322
|
+
"""
|
|
1323
|
+
length of the third lattice vector
|
|
1324
|
+
"""
|
|
1325
|
+
alpha: float
|
|
1326
|
+
"""
|
|
1327
|
+
angle between first and second lattice vector
|
|
1328
|
+
"""
|
|
1329
|
+
beta: float
|
|
1330
|
+
"""
|
|
1331
|
+
angle between second and third lattice vector
|
|
1332
|
+
"""
|
|
1333
|
+
gamma: float
|
|
1334
|
+
"""
|
|
1335
|
+
angle between first and third lattice vector
|
|
1336
|
+
"""
|
|
1337
|
+
vectors: Optional[LatticeVectorsSchema19] = Field(None, title="lattice vectors schema")
|
|
1338
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1339
|
+
units: Optional[LatticeUnitsSchema19] = Field(
|
|
1340
|
+
default_factory=lambda: LatticeUnitsSchema19.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1341
|
+
title="Lattice units schema",
|
|
1342
|
+
)
|
|
1343
|
+
|
|
1344
|
+
|
|
1345
|
+
class Name159(Enum):
|
|
1346
|
+
volume = "volume"
|
|
1347
|
+
|
|
1348
|
+
|
|
1349
|
+
class Units66(Enum):
|
|
1350
|
+
angstrom_3 = "angstrom^3"
|
|
1351
|
+
|
|
1352
|
+
|
|
1353
|
+
class VolumeSchema19(BaseModel):
|
|
1354
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1355
|
+
units: Optional[Units66] = None
|
|
1356
|
+
value: float
|
|
1357
|
+
|
|
1358
|
+
|
|
1359
|
+
class Name160(Enum):
|
|
1360
|
+
density = "density"
|
|
1361
|
+
|
|
1362
|
+
|
|
1363
|
+
class Units67(Enum):
|
|
1364
|
+
g_cm_3 = "g/cm^3"
|
|
1365
|
+
|
|
1366
|
+
|
|
1367
|
+
class DensitySchema19(BaseModel):
|
|
1368
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1369
|
+
units: Optional[Units67] = None
|
|
1370
|
+
value: float
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
class Units68(Enum):
|
|
1374
|
+
angstrom = "angstrom"
|
|
1375
|
+
|
|
1376
|
+
|
|
1377
|
+
class ScalarSchema20(BaseModel):
|
|
1378
|
+
units: Optional[Units68] = None
|
|
1379
|
+
value: float
|
|
1380
|
+
|
|
1381
|
+
|
|
1382
|
+
class Name161(Enum):
|
|
1383
|
+
symmetry = "symmetry"
|
|
1384
|
+
|
|
1385
|
+
|
|
1386
|
+
class SymmetrySchema19(BaseModel):
|
|
1387
|
+
pointGroupSymbol: Optional[str] = None
|
|
1388
|
+
"""
|
|
1389
|
+
point group symbol in Schoenflies notation
|
|
1390
|
+
"""
|
|
1391
|
+
spaceGroupSymbol: Optional[str] = None
|
|
1392
|
+
"""
|
|
1393
|
+
space group symbol in Hermann–Mauguin notation
|
|
1394
|
+
"""
|
|
1395
|
+
tolerance: Optional[ScalarSchema20] = Field(None, title="scalar schema")
|
|
1396
|
+
"""
|
|
1397
|
+
tolerance used for symmetry calculation
|
|
1398
|
+
"""
|
|
1399
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
class Name162(Enum):
|
|
1403
|
+
elemental_ratio = "elemental_ratio"
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
class ElementalRatio19(BaseModel):
|
|
1407
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
1408
|
+
value: confloat(ge=0.0, le=1.0)
|
|
1409
|
+
element: Optional[str] = None
|
|
1410
|
+
"""
|
|
1411
|
+
the element this ratio is for
|
|
1412
|
+
"""
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
class Name163(Enum):
|
|
1416
|
+
p_norm = "p-norm"
|
|
1417
|
+
|
|
1418
|
+
|
|
1419
|
+
class PNorm19(BaseModel):
|
|
1420
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
1421
|
+
degree: Optional[int] = None
|
|
1422
|
+
"""
|
|
1423
|
+
degree of the dimensionality of the norm
|
|
1424
|
+
"""
|
|
1425
|
+
value: float
|
|
1426
|
+
|
|
1427
|
+
|
|
1428
|
+
class Name164(Enum):
|
|
1429
|
+
inchi = "inchi"
|
|
1430
|
+
|
|
1431
|
+
|
|
1432
|
+
class InChIRepresentationSchema19(BaseModel):
|
|
1433
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1434
|
+
value: str
|
|
1435
|
+
|
|
1436
|
+
|
|
1437
|
+
class Name165(Enum):
|
|
1438
|
+
inchi_key = "inchi_key"
|
|
1439
|
+
|
|
1440
|
+
|
|
1441
|
+
class InChIKeyRepresentationSchema19(BaseModel):
|
|
1442
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1443
|
+
value: str
|
|
1444
|
+
|
|
1445
|
+
|
|
1446
|
+
class DerivedPropertiesSchema19(
|
|
1447
|
+
RootModel[
|
|
1448
|
+
Union[
|
|
1449
|
+
VolumeSchema19,
|
|
1450
|
+
DensitySchema19,
|
|
1451
|
+
SymmetrySchema19,
|
|
1452
|
+
ElementalRatio19,
|
|
1453
|
+
PNorm19,
|
|
1454
|
+
InChIRepresentationSchema19,
|
|
1455
|
+
InChIKeyRepresentationSchema19,
|
|
1456
|
+
]
|
|
1457
|
+
]
|
|
1458
|
+
):
|
|
1459
|
+
root: Union[
|
|
1460
|
+
VolumeSchema19,
|
|
1461
|
+
DensitySchema19,
|
|
1462
|
+
SymmetrySchema19,
|
|
1463
|
+
ElementalRatio19,
|
|
1464
|
+
PNorm19,
|
|
1465
|
+
InChIRepresentationSchema19,
|
|
1466
|
+
InChIKeyRepresentationSchema19,
|
|
1467
|
+
] = Field(..., discriminator="name")
|
|
1468
|
+
|
|
1469
|
+
|
|
1470
|
+
class Name166(Enum):
|
|
1471
|
+
default = "default"
|
|
1472
|
+
atomsTooClose = "atomsTooClose"
|
|
1473
|
+
atomsOverlap = "atomsOverlap"
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
class MaterialConsistencyCheckSchema19(BaseModel):
|
|
1477
|
+
name: Name166
|
|
1478
|
+
"""
|
|
1479
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
1480
|
+
"""
|
|
1481
|
+
key: str
|
|
1482
|
+
"""
|
|
1483
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
1484
|
+
"""
|
|
1485
|
+
severity: Severity
|
|
1486
|
+
"""
|
|
1487
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
1488
|
+
"""
|
|
1489
|
+
message: str
|
|
1490
|
+
"""
|
|
1491
|
+
Message generated by the consistency check describing the problem.
|
|
1492
|
+
"""
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
class CrystalSchema19(BaseModel):
|
|
1496
|
+
formula: Optional[str] = None
|
|
1497
|
+
"""
|
|
1498
|
+
reduced chemical formula
|
|
1499
|
+
"""
|
|
1500
|
+
unitCellFormula: Optional[str] = None
|
|
1501
|
+
"""
|
|
1502
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
1503
|
+
"""
|
|
1504
|
+
basis: BasisSchema20 = Field(..., title="basis schema")
|
|
1505
|
+
lattice: LatticeSchema19 = Field(..., title="lattice schema")
|
|
1506
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema19]] = Field(None, title="derived properties schema")
|
|
1507
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
1508
|
+
"""
|
|
1509
|
+
information about a database source
|
|
1510
|
+
"""
|
|
1511
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
1512
|
+
"""
|
|
1513
|
+
file source with the information inside
|
|
1514
|
+
"""
|
|
1515
|
+
scaledHash: Optional[str] = None
|
|
1516
|
+
"""
|
|
1517
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
1518
|
+
"""
|
|
1519
|
+
icsdId: Optional[int] = None
|
|
1520
|
+
"""
|
|
1521
|
+
Corresponding ICSD id of the material
|
|
1522
|
+
"""
|
|
1523
|
+
isNonPeriodic: Optional[bool] = None
|
|
1524
|
+
"""
|
|
1525
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
1526
|
+
"""
|
|
1527
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema19]] = None
|
|
1528
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
1529
|
+
"""
|
|
1530
|
+
entity identity
|
|
1531
|
+
"""
|
|
1532
|
+
slug: Optional[str] = None
|
|
1533
|
+
"""
|
|
1534
|
+
entity slug
|
|
1535
|
+
"""
|
|
1536
|
+
systemName: Optional[str] = None
|
|
1537
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
1538
|
+
"""
|
|
1539
|
+
entity's schema version. Used to distinct between different schemas.
|
|
1540
|
+
"""
|
|
1541
|
+
name: Optional[str] = None
|
|
1542
|
+
"""
|
|
1543
|
+
entity name
|
|
1544
|
+
"""
|
|
1545
|
+
isDefault: Optional[bool] = False
|
|
1546
|
+
"""
|
|
1547
|
+
Identifies that entity is defaultable
|
|
1548
|
+
"""
|
|
1549
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
1550
|
+
|
|
1551
|
+
|
|
1552
|
+
class AtomicLayersUniqueRepeatedSchema8(BaseModel):
|
|
1553
|
+
termination_top: TerminationSchema10 = Field(..., title="Termination Schema")
|
|
1554
|
+
"""
|
|
1555
|
+
Defines a specific termination of a slab
|
|
1556
|
+
"""
|
|
1557
|
+
number_of_repetitions: conint(ge=1)
|
|
1558
|
+
"""
|
|
1559
|
+
Number of repetitions of the unique atomic layers
|
|
1560
|
+
"""
|
|
1561
|
+
miller_indices: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
|
|
1562
|
+
"""
|
|
1563
|
+
Miller indices [h, k, l] defining crystallographic planes
|
|
1564
|
+
"""
|
|
1565
|
+
crystal: CrystalSchema19 = Field(..., title="Crystal Schema")
|
|
1566
|
+
"""
|
|
1567
|
+
A crystal structure, referencing the base material schema
|
|
1568
|
+
"""
|
|
1569
|
+
use_conventional_cell: Optional[bool] = True
|
|
1570
|
+
"""
|
|
1571
|
+
Use the conventional cell for the crystal structure
|
|
1572
|
+
"""
|
|
1573
|
+
|
|
1574
|
+
|
|
1575
|
+
class Value48(Enum):
|
|
1576
|
+
H = "H"
|
|
1577
|
+
He = "He"
|
|
1578
|
+
Li = "Li"
|
|
1579
|
+
Be = "Be"
|
|
1580
|
+
B = "B"
|
|
1581
|
+
C = "C"
|
|
1582
|
+
N = "N"
|
|
1583
|
+
O = "O"
|
|
1584
|
+
F = "F"
|
|
1585
|
+
Ne = "Ne"
|
|
1586
|
+
Na = "Na"
|
|
1587
|
+
Mg = "Mg"
|
|
1588
|
+
Al = "Al"
|
|
1589
|
+
Si = "Si"
|
|
1590
|
+
P = "P"
|
|
1591
|
+
S = "S"
|
|
1592
|
+
Cl = "Cl"
|
|
1593
|
+
Ar = "Ar"
|
|
1594
|
+
K = "K"
|
|
1595
|
+
Ca = "Ca"
|
|
1596
|
+
Sc = "Sc"
|
|
1597
|
+
Ti = "Ti"
|
|
1598
|
+
V = "V"
|
|
1599
|
+
Cr = "Cr"
|
|
1600
|
+
Mn = "Mn"
|
|
1601
|
+
Fe = "Fe"
|
|
1602
|
+
Co = "Co"
|
|
1603
|
+
Ni = "Ni"
|
|
1604
|
+
Cu = "Cu"
|
|
1605
|
+
Zn = "Zn"
|
|
1606
|
+
Ga = "Ga"
|
|
1607
|
+
Ge = "Ge"
|
|
1608
|
+
As = "As"
|
|
1609
|
+
Se = "Se"
|
|
1610
|
+
Br = "Br"
|
|
1611
|
+
Kr = "Kr"
|
|
1612
|
+
Rb = "Rb"
|
|
1613
|
+
Sr = "Sr"
|
|
1614
|
+
Y = "Y"
|
|
1615
|
+
Zr = "Zr"
|
|
1616
|
+
Nb = "Nb"
|
|
1617
|
+
Mo = "Mo"
|
|
1618
|
+
Tc = "Tc"
|
|
1619
|
+
Ru = "Ru"
|
|
1620
|
+
Rh = "Rh"
|
|
1621
|
+
Pd = "Pd"
|
|
1622
|
+
Ag = "Ag"
|
|
1623
|
+
Cd = "Cd"
|
|
1624
|
+
In = "In"
|
|
1625
|
+
Sn = "Sn"
|
|
1626
|
+
Sb = "Sb"
|
|
1627
|
+
Te = "Te"
|
|
1628
|
+
I = "I"
|
|
1629
|
+
Xe = "Xe"
|
|
1630
|
+
Cs = "Cs"
|
|
1631
|
+
Ba = "Ba"
|
|
1632
|
+
La = "La"
|
|
1633
|
+
Ce = "Ce"
|
|
1634
|
+
Pr = "Pr"
|
|
1635
|
+
Nd = "Nd"
|
|
1636
|
+
Pm = "Pm"
|
|
1637
|
+
Sm = "Sm"
|
|
1638
|
+
Eu = "Eu"
|
|
1639
|
+
Gd = "Gd"
|
|
1640
|
+
Tb = "Tb"
|
|
1641
|
+
Dy = "Dy"
|
|
1642
|
+
Ho = "Ho"
|
|
1643
|
+
Er = "Er"
|
|
1644
|
+
Tm = "Tm"
|
|
1645
|
+
Yb = "Yb"
|
|
1646
|
+
Lu = "Lu"
|
|
1647
|
+
Hf = "Hf"
|
|
1648
|
+
Ta = "Ta"
|
|
1649
|
+
W = "W"
|
|
1650
|
+
Re = "Re"
|
|
1651
|
+
Os = "Os"
|
|
1652
|
+
Ir = "Ir"
|
|
1653
|
+
Pt = "Pt"
|
|
1654
|
+
Au = "Au"
|
|
1655
|
+
Hg = "Hg"
|
|
1656
|
+
Tl = "Tl"
|
|
1657
|
+
Pb = "Pb"
|
|
1658
|
+
Bi = "Bi"
|
|
1659
|
+
Po = "Po"
|
|
1660
|
+
At = "At"
|
|
1661
|
+
Rn = "Rn"
|
|
1662
|
+
Fr = "Fr"
|
|
1663
|
+
Ra = "Ra"
|
|
1664
|
+
Ac = "Ac"
|
|
1665
|
+
Th = "Th"
|
|
1666
|
+
Pa = "Pa"
|
|
1667
|
+
U = "U"
|
|
1668
|
+
Np = "Np"
|
|
1669
|
+
Pu = "Pu"
|
|
1670
|
+
Am = "Am"
|
|
1671
|
+
Cm = "Cm"
|
|
1672
|
+
Bk = "Bk"
|
|
1673
|
+
Cf = "Cf"
|
|
1674
|
+
Es = "Es"
|
|
1675
|
+
Fm = "Fm"
|
|
1676
|
+
Md = "Md"
|
|
1677
|
+
No = "No"
|
|
1678
|
+
Lr = "Lr"
|
|
1679
|
+
Rf = "Rf"
|
|
1680
|
+
Db = "Db"
|
|
1681
|
+
Sg = "Sg"
|
|
1682
|
+
Bh = "Bh"
|
|
1683
|
+
Hs = "Hs"
|
|
1684
|
+
Mt = "Mt"
|
|
1685
|
+
Ds = "Ds"
|
|
1686
|
+
Rg = "Rg"
|
|
1687
|
+
Cn = "Cn"
|
|
1688
|
+
Nh = "Nh"
|
|
1689
|
+
Fl = "Fl"
|
|
1690
|
+
Mc = "Mc"
|
|
1691
|
+
Lv = "Lv"
|
|
1692
|
+
Ts = "Ts"
|
|
1693
|
+
Og = "Og"
|
|
1694
|
+
|
|
1695
|
+
|
|
1696
|
+
class Value49(Enum):
|
|
1697
|
+
X = "X"
|
|
1698
|
+
Vac = "Vac"
|
|
1699
|
+
|
|
1700
|
+
|
|
1701
|
+
class AtomicElementSchema23(BaseModel):
|
|
1702
|
+
value: Union[Value48, Value49]
|
|
1703
|
+
"""
|
|
1704
|
+
All elements, including extra elements
|
|
1705
|
+
"""
|
|
1706
|
+
id: int
|
|
1707
|
+
"""
|
|
1708
|
+
integer id of this entry
|
|
1709
|
+
"""
|
|
1710
|
+
|
|
1711
|
+
|
|
1712
|
+
class BasisSchema21(BaseModel):
|
|
1713
|
+
elements: List[AtomicElementSchema23] = Field(..., title="atomic elements schema")
|
|
1714
|
+
"""
|
|
1715
|
+
atomic elements schema
|
|
1716
|
+
"""
|
|
1717
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
1718
|
+
"""
|
|
1719
|
+
atomic coordinates schema
|
|
1720
|
+
"""
|
|
1721
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
1722
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
1723
|
+
"""
|
|
1724
|
+
atomic labels schema
|
|
1725
|
+
"""
|
|
1726
|
+
|
|
1727
|
+
|
|
1728
|
+
class LatticeVectorsSchema20(BaseModel):
|
|
1729
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1730
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1731
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1732
|
+
alat: Optional[float] = 1
|
|
1733
|
+
"""
|
|
1734
|
+
lattice parameter for fractional coordinates
|
|
1735
|
+
"""
|
|
1736
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
1737
|
+
|
|
1738
|
+
|
|
1739
|
+
class LatticeUnitsSchema20(BaseModel):
|
|
1740
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
1741
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
1742
|
+
|
|
1743
|
+
|
|
1744
|
+
class LatticeSchema20(BaseModel):
|
|
1745
|
+
a: float
|
|
1746
|
+
"""
|
|
1747
|
+
length of the first lattice vector
|
|
1748
|
+
"""
|
|
1749
|
+
b: float
|
|
1750
|
+
"""
|
|
1751
|
+
length of the second lattice vector
|
|
1752
|
+
"""
|
|
1753
|
+
c: float
|
|
1754
|
+
"""
|
|
1755
|
+
length of the third lattice vector
|
|
1756
|
+
"""
|
|
1757
|
+
alpha: float
|
|
1758
|
+
"""
|
|
1759
|
+
angle between first and second lattice vector
|
|
1760
|
+
"""
|
|
1761
|
+
beta: float
|
|
1762
|
+
"""
|
|
1763
|
+
angle between second and third lattice vector
|
|
1764
|
+
"""
|
|
1765
|
+
gamma: float
|
|
1766
|
+
"""
|
|
1767
|
+
angle between first and third lattice vector
|
|
1768
|
+
"""
|
|
1769
|
+
vectors: Optional[LatticeVectorsSchema20] = Field(None, title="lattice vectors schema")
|
|
1770
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1771
|
+
units: Optional[LatticeUnitsSchema20] = Field(
|
|
1772
|
+
default_factory=lambda: LatticeUnitsSchema20.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1773
|
+
title="Lattice units schema",
|
|
1774
|
+
)
|
|
1775
|
+
|
|
1776
|
+
|
|
1777
|
+
class Name167(Enum):
|
|
1778
|
+
volume = "volume"
|
|
1779
|
+
|
|
1780
|
+
|
|
1781
|
+
class Units69(Enum):
|
|
1782
|
+
angstrom_3 = "angstrom^3"
|
|
1783
|
+
|
|
1784
|
+
|
|
1785
|
+
class VolumeSchema20(BaseModel):
|
|
1786
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1787
|
+
units: Optional[Units69] = None
|
|
1788
|
+
value: float
|
|
1789
|
+
|
|
1790
|
+
|
|
1791
|
+
class Name168(Enum):
|
|
1792
|
+
density = "density"
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
class Units70(Enum):
|
|
1796
|
+
g_cm_3 = "g/cm^3"
|
|
1797
|
+
|
|
1798
|
+
|
|
1799
|
+
class DensitySchema20(BaseModel):
|
|
1800
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1801
|
+
units: Optional[Units70] = None
|
|
1802
|
+
value: float
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
class Units71(Enum):
|
|
1806
|
+
angstrom = "angstrom"
|
|
1807
|
+
|
|
1808
|
+
|
|
1809
|
+
class ScalarSchema21(BaseModel):
|
|
1810
|
+
units: Optional[Units71] = None
|
|
1811
|
+
value: float
|
|
1812
|
+
|
|
1813
|
+
|
|
1814
|
+
class Name169(Enum):
|
|
1815
|
+
symmetry = "symmetry"
|
|
1816
|
+
|
|
1817
|
+
|
|
1818
|
+
class SymmetrySchema20(BaseModel):
|
|
1819
|
+
pointGroupSymbol: Optional[str] = None
|
|
1820
|
+
"""
|
|
1821
|
+
point group symbol in Schoenflies notation
|
|
1822
|
+
"""
|
|
1823
|
+
spaceGroupSymbol: Optional[str] = None
|
|
1824
|
+
"""
|
|
1825
|
+
space group symbol in Hermann–Mauguin notation
|
|
1826
|
+
"""
|
|
1827
|
+
tolerance: Optional[ScalarSchema21] = Field(None, title="scalar schema")
|
|
1828
|
+
"""
|
|
1829
|
+
tolerance used for symmetry calculation
|
|
1830
|
+
"""
|
|
1831
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
1832
|
+
|
|
1833
|
+
|
|
1834
|
+
class Name170(Enum):
|
|
1835
|
+
elemental_ratio = "elemental_ratio"
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
class ElementalRatio20(BaseModel):
|
|
1839
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
1840
|
+
value: confloat(ge=0.0, le=1.0)
|
|
1841
|
+
element: Optional[str] = None
|
|
1842
|
+
"""
|
|
1843
|
+
the element this ratio is for
|
|
1844
|
+
"""
|
|
1845
|
+
|
|
1846
|
+
|
|
1847
|
+
class Name171(Enum):
|
|
1848
|
+
p_norm = "p-norm"
|
|
1849
|
+
|
|
1850
|
+
|
|
1851
|
+
class PNorm20(BaseModel):
|
|
1852
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
1853
|
+
degree: Optional[int] = None
|
|
1854
|
+
"""
|
|
1855
|
+
degree of the dimensionality of the norm
|
|
1856
|
+
"""
|
|
1857
|
+
value: float
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
class Name172(Enum):
|
|
1861
|
+
inchi = "inchi"
|
|
1862
|
+
|
|
1863
|
+
|
|
1864
|
+
class InChIRepresentationSchema20(BaseModel):
|
|
1865
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1866
|
+
value: str
|
|
1867
|
+
|
|
1868
|
+
|
|
1869
|
+
class Name173(Enum):
|
|
1870
|
+
inchi_key = "inchi_key"
|
|
1871
|
+
|
|
1872
|
+
|
|
1873
|
+
class InChIKeyRepresentationSchema20(BaseModel):
|
|
1874
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1875
|
+
value: str
|
|
1876
|
+
|
|
1877
|
+
|
|
1878
|
+
class DerivedPropertiesSchema20(
|
|
1879
|
+
RootModel[
|
|
1880
|
+
Union[
|
|
1881
|
+
VolumeSchema20,
|
|
1882
|
+
DensitySchema20,
|
|
1883
|
+
SymmetrySchema20,
|
|
1884
|
+
ElementalRatio20,
|
|
1885
|
+
PNorm20,
|
|
1886
|
+
InChIRepresentationSchema20,
|
|
1887
|
+
InChIKeyRepresentationSchema20,
|
|
1888
|
+
]
|
|
1889
|
+
]
|
|
1890
|
+
):
|
|
1891
|
+
root: Union[
|
|
1892
|
+
VolumeSchema20,
|
|
1893
|
+
DensitySchema20,
|
|
1894
|
+
SymmetrySchema20,
|
|
1895
|
+
ElementalRatio20,
|
|
1896
|
+
PNorm20,
|
|
1897
|
+
InChIRepresentationSchema20,
|
|
1898
|
+
InChIKeyRepresentationSchema20,
|
|
1899
|
+
] = Field(..., discriminator="name")
|
|
1900
|
+
|
|
1901
|
+
|
|
1902
|
+
class Name174(Enum):
|
|
1903
|
+
default = "default"
|
|
1904
|
+
atomsTooClose = "atomsTooClose"
|
|
1905
|
+
atomsOverlap = "atomsOverlap"
|
|
1906
|
+
|
|
1907
|
+
|
|
1908
|
+
class MaterialConsistencyCheckSchema20(BaseModel):
|
|
1909
|
+
name: Name174
|
|
1910
|
+
"""
|
|
1911
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
1912
|
+
"""
|
|
1913
|
+
key: str
|
|
1914
|
+
"""
|
|
1915
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
1916
|
+
"""
|
|
1917
|
+
severity: Severity
|
|
1918
|
+
"""
|
|
1919
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
1920
|
+
"""
|
|
1921
|
+
message: str
|
|
1922
|
+
"""
|
|
1923
|
+
Message generated by the consistency check describing the problem.
|
|
1924
|
+
"""
|
|
1925
|
+
|
|
1926
|
+
|
|
1927
|
+
class CrystalSchema20(BaseModel):
|
|
1928
|
+
formula: Optional[str] = None
|
|
1929
|
+
"""
|
|
1930
|
+
reduced chemical formula
|
|
1931
|
+
"""
|
|
1932
|
+
unitCellFormula: Optional[str] = None
|
|
1933
|
+
"""
|
|
1934
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
1935
|
+
"""
|
|
1936
|
+
basis: BasisSchema21 = Field(..., title="basis schema")
|
|
1937
|
+
lattice: LatticeSchema20 = Field(..., title="lattice schema")
|
|
1938
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema20]] = Field(None, title="derived properties schema")
|
|
1939
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
1940
|
+
"""
|
|
1941
|
+
information about a database source
|
|
1942
|
+
"""
|
|
1943
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
1944
|
+
"""
|
|
1945
|
+
file source with the information inside
|
|
1946
|
+
"""
|
|
1947
|
+
scaledHash: Optional[str] = None
|
|
1948
|
+
"""
|
|
1949
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
1950
|
+
"""
|
|
1951
|
+
icsdId: Optional[int] = None
|
|
1952
|
+
"""
|
|
1953
|
+
Corresponding ICSD id of the material
|
|
1954
|
+
"""
|
|
1955
|
+
isNonPeriodic: Optional[bool] = None
|
|
1956
|
+
"""
|
|
1957
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
1958
|
+
"""
|
|
1959
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema20]] = None
|
|
1960
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
1961
|
+
"""
|
|
1962
|
+
entity identity
|
|
1963
|
+
"""
|
|
1964
|
+
slug: Optional[str] = None
|
|
1965
|
+
"""
|
|
1966
|
+
entity slug
|
|
1967
|
+
"""
|
|
1968
|
+
systemName: Optional[str] = None
|
|
1969
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
1970
|
+
"""
|
|
1971
|
+
entity's schema version. Used to distinct between different schemas.
|
|
1972
|
+
"""
|
|
1973
|
+
name: Optional[str] = None
|
|
1974
|
+
"""
|
|
1975
|
+
entity name
|
|
1976
|
+
"""
|
|
1977
|
+
isDefault: Optional[bool] = False
|
|
1978
|
+
"""
|
|
1979
|
+
Identifies that entity is defaultable
|
|
1980
|
+
"""
|
|
1981
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
1982
|
+
|
|
1983
|
+
|
|
1984
|
+
class VacuumConfigurationSchema8(BaseModel):
|
|
1985
|
+
direction: AxisEnum = Field(..., title="Axis Enum")
|
|
1986
|
+
"""
|
|
1987
|
+
Enum for axis types
|
|
1988
|
+
"""
|
|
1989
|
+
size: Optional[confloat(ge=0.0)] = 10
|
|
1990
|
+
"""
|
|
1991
|
+
Size of the vacuum slab in angstroms
|
|
1992
|
+
"""
|
|
1993
|
+
crystal: CrystalSchema20 = Field(..., title="Crystal Schema")
|
|
1994
|
+
"""
|
|
1995
|
+
A crystal structure, referencing the base material schema
|
|
1996
|
+
"""
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
class SlabConfigurationSchema3(BaseModel):
|
|
2000
|
+
stack_components: List[Union[AtomicLayersUniqueRepeatedSchema8, VacuumConfigurationSchema8]] = Field(
|
|
2001
|
+
..., max_length=2, min_length=2
|
|
2002
|
+
)
|
|
2003
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
2004
|
+
"""
|
|
2005
|
+
Enum for axis types
|
|
2006
|
+
"""
|
|
2007
|
+
|
|
2008
|
+
|
|
2009
|
+
class Value50(Enum):
|
|
2010
|
+
H = "H"
|
|
2011
|
+
He = "He"
|
|
2012
|
+
Li = "Li"
|
|
2013
|
+
Be = "Be"
|
|
2014
|
+
B = "B"
|
|
2015
|
+
C = "C"
|
|
2016
|
+
N = "N"
|
|
2017
|
+
O = "O"
|
|
2018
|
+
F = "F"
|
|
2019
|
+
Ne = "Ne"
|
|
2020
|
+
Na = "Na"
|
|
2021
|
+
Mg = "Mg"
|
|
2022
|
+
Al = "Al"
|
|
2023
|
+
Si = "Si"
|
|
2024
|
+
P = "P"
|
|
2025
|
+
S = "S"
|
|
2026
|
+
Cl = "Cl"
|
|
2027
|
+
Ar = "Ar"
|
|
2028
|
+
K = "K"
|
|
2029
|
+
Ca = "Ca"
|
|
2030
|
+
Sc = "Sc"
|
|
2031
|
+
Ti = "Ti"
|
|
2032
|
+
V = "V"
|
|
2033
|
+
Cr = "Cr"
|
|
2034
|
+
Mn = "Mn"
|
|
2035
|
+
Fe = "Fe"
|
|
2036
|
+
Co = "Co"
|
|
2037
|
+
Ni = "Ni"
|
|
2038
|
+
Cu = "Cu"
|
|
2039
|
+
Zn = "Zn"
|
|
2040
|
+
Ga = "Ga"
|
|
2041
|
+
Ge = "Ge"
|
|
2042
|
+
As = "As"
|
|
2043
|
+
Se = "Se"
|
|
2044
|
+
Br = "Br"
|
|
2045
|
+
Kr = "Kr"
|
|
2046
|
+
Rb = "Rb"
|
|
2047
|
+
Sr = "Sr"
|
|
2048
|
+
Y = "Y"
|
|
2049
|
+
Zr = "Zr"
|
|
2050
|
+
Nb = "Nb"
|
|
2051
|
+
Mo = "Mo"
|
|
2052
|
+
Tc = "Tc"
|
|
2053
|
+
Ru = "Ru"
|
|
2054
|
+
Rh = "Rh"
|
|
2055
|
+
Pd = "Pd"
|
|
2056
|
+
Ag = "Ag"
|
|
2057
|
+
Cd = "Cd"
|
|
2058
|
+
In = "In"
|
|
2059
|
+
Sn = "Sn"
|
|
2060
|
+
Sb = "Sb"
|
|
2061
|
+
Te = "Te"
|
|
2062
|
+
I = "I"
|
|
2063
|
+
Xe = "Xe"
|
|
2064
|
+
Cs = "Cs"
|
|
2065
|
+
Ba = "Ba"
|
|
2066
|
+
La = "La"
|
|
2067
|
+
Ce = "Ce"
|
|
2068
|
+
Pr = "Pr"
|
|
2069
|
+
Nd = "Nd"
|
|
2070
|
+
Pm = "Pm"
|
|
2071
|
+
Sm = "Sm"
|
|
2072
|
+
Eu = "Eu"
|
|
2073
|
+
Gd = "Gd"
|
|
2074
|
+
Tb = "Tb"
|
|
2075
|
+
Dy = "Dy"
|
|
2076
|
+
Ho = "Ho"
|
|
2077
|
+
Er = "Er"
|
|
2078
|
+
Tm = "Tm"
|
|
2079
|
+
Yb = "Yb"
|
|
2080
|
+
Lu = "Lu"
|
|
2081
|
+
Hf = "Hf"
|
|
2082
|
+
Ta = "Ta"
|
|
2083
|
+
W = "W"
|
|
2084
|
+
Re = "Re"
|
|
2085
|
+
Os = "Os"
|
|
2086
|
+
Ir = "Ir"
|
|
2087
|
+
Pt = "Pt"
|
|
2088
|
+
Au = "Au"
|
|
2089
|
+
Hg = "Hg"
|
|
2090
|
+
Tl = "Tl"
|
|
2091
|
+
Pb = "Pb"
|
|
2092
|
+
Bi = "Bi"
|
|
2093
|
+
Po = "Po"
|
|
2094
|
+
At = "At"
|
|
2095
|
+
Rn = "Rn"
|
|
2096
|
+
Fr = "Fr"
|
|
2097
|
+
Ra = "Ra"
|
|
2098
|
+
Ac = "Ac"
|
|
2099
|
+
Th = "Th"
|
|
2100
|
+
Pa = "Pa"
|
|
2101
|
+
U = "U"
|
|
2102
|
+
Np = "Np"
|
|
2103
|
+
Pu = "Pu"
|
|
2104
|
+
Am = "Am"
|
|
2105
|
+
Cm = "Cm"
|
|
2106
|
+
Bk = "Bk"
|
|
2107
|
+
Cf = "Cf"
|
|
2108
|
+
Es = "Es"
|
|
2109
|
+
Fm = "Fm"
|
|
2110
|
+
Md = "Md"
|
|
2111
|
+
No = "No"
|
|
2112
|
+
Lr = "Lr"
|
|
2113
|
+
Rf = "Rf"
|
|
2114
|
+
Db = "Db"
|
|
2115
|
+
Sg = "Sg"
|
|
2116
|
+
Bh = "Bh"
|
|
2117
|
+
Hs = "Hs"
|
|
2118
|
+
Mt = "Mt"
|
|
2119
|
+
Ds = "Ds"
|
|
2120
|
+
Rg = "Rg"
|
|
2121
|
+
Cn = "Cn"
|
|
2122
|
+
Nh = "Nh"
|
|
2123
|
+
Fl = "Fl"
|
|
2124
|
+
Mc = "Mc"
|
|
2125
|
+
Lv = "Lv"
|
|
2126
|
+
Ts = "Ts"
|
|
2127
|
+
Og = "Og"
|
|
2128
|
+
|
|
2129
|
+
|
|
2130
|
+
class Value51(Enum):
|
|
2131
|
+
X = "X"
|
|
2132
|
+
Vac = "Vac"
|
|
2133
|
+
|
|
2134
|
+
|
|
2135
|
+
class AtomicElementSchema24(BaseModel):
|
|
2136
|
+
value: Union[Value50, Value51]
|
|
2137
|
+
"""
|
|
2138
|
+
All elements, including extra elements
|
|
2139
|
+
"""
|
|
2140
|
+
id: int
|
|
2141
|
+
"""
|
|
2142
|
+
integer id of this entry
|
|
2143
|
+
"""
|
|
2144
|
+
|
|
2145
|
+
|
|
2146
|
+
class BasisSchema22(BaseModel):
|
|
2147
|
+
elements: List[AtomicElementSchema24] = Field(..., title="atomic elements schema")
|
|
2148
|
+
"""
|
|
2149
|
+
atomic elements schema
|
|
2150
|
+
"""
|
|
2151
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
2152
|
+
"""
|
|
2153
|
+
atomic coordinates schema
|
|
2154
|
+
"""
|
|
2155
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
2156
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
2157
|
+
"""
|
|
2158
|
+
atomic labels schema
|
|
2159
|
+
"""
|
|
2160
|
+
|
|
2161
|
+
|
|
2162
|
+
class LatticeVectorsSchema21(BaseModel):
|
|
2163
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2164
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2165
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2166
|
+
alat: Optional[float] = 1
|
|
2167
|
+
"""
|
|
2168
|
+
lattice parameter for fractional coordinates
|
|
2169
|
+
"""
|
|
2170
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
2171
|
+
|
|
2172
|
+
|
|
2173
|
+
class LatticeUnitsSchema21(BaseModel):
|
|
2174
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
2175
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
2176
|
+
|
|
2177
|
+
|
|
2178
|
+
class LatticeSchema21(BaseModel):
|
|
2179
|
+
a: float
|
|
2180
|
+
"""
|
|
2181
|
+
length of the first lattice vector
|
|
2182
|
+
"""
|
|
2183
|
+
b: float
|
|
2184
|
+
"""
|
|
2185
|
+
length of the second lattice vector
|
|
2186
|
+
"""
|
|
2187
|
+
c: float
|
|
2188
|
+
"""
|
|
2189
|
+
length of the third lattice vector
|
|
2190
|
+
"""
|
|
2191
|
+
alpha: float
|
|
2192
|
+
"""
|
|
2193
|
+
angle between first and second lattice vector
|
|
2194
|
+
"""
|
|
2195
|
+
beta: float
|
|
2196
|
+
"""
|
|
2197
|
+
angle between second and third lattice vector
|
|
2198
|
+
"""
|
|
2199
|
+
gamma: float
|
|
2200
|
+
"""
|
|
2201
|
+
angle between first and third lattice vector
|
|
2202
|
+
"""
|
|
2203
|
+
vectors: Optional[LatticeVectorsSchema21] = Field(None, title="lattice vectors schema")
|
|
2204
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
2205
|
+
units: Optional[LatticeUnitsSchema21] = Field(
|
|
2206
|
+
default_factory=lambda: LatticeUnitsSchema21.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
2207
|
+
title="Lattice units schema",
|
|
2208
|
+
)
|
|
2209
|
+
|
|
2210
|
+
|
|
2211
|
+
class Name175(Enum):
|
|
2212
|
+
volume = "volume"
|
|
2213
|
+
|
|
2214
|
+
|
|
2215
|
+
class Units72(Enum):
|
|
2216
|
+
angstrom_3 = "angstrom^3"
|
|
2217
|
+
|
|
2218
|
+
|
|
2219
|
+
class VolumeSchema21(BaseModel):
|
|
2220
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
2221
|
+
units: Optional[Units72] = None
|
|
2222
|
+
value: float
|
|
2223
|
+
|
|
2224
|
+
|
|
2225
|
+
class Name176(Enum):
|
|
2226
|
+
density = "density"
|
|
2227
|
+
|
|
2228
|
+
|
|
2229
|
+
class Units73(Enum):
|
|
2230
|
+
g_cm_3 = "g/cm^3"
|
|
2231
|
+
|
|
2232
|
+
|
|
2233
|
+
class DensitySchema21(BaseModel):
|
|
2234
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
2235
|
+
units: Optional[Units73] = None
|
|
2236
|
+
value: float
|
|
2237
|
+
|
|
2238
|
+
|
|
2239
|
+
class Units74(Enum):
|
|
2240
|
+
angstrom = "angstrom"
|
|
2241
|
+
|
|
2242
|
+
|
|
2243
|
+
class ScalarSchema22(BaseModel):
|
|
2244
|
+
units: Optional[Units74] = None
|
|
2245
|
+
value: float
|
|
2246
|
+
|
|
2247
|
+
|
|
2248
|
+
class Name177(Enum):
|
|
2249
|
+
symmetry = "symmetry"
|
|
2250
|
+
|
|
2251
|
+
|
|
2252
|
+
class SymmetrySchema21(BaseModel):
|
|
2253
|
+
pointGroupSymbol: Optional[str] = None
|
|
2254
|
+
"""
|
|
2255
|
+
point group symbol in Schoenflies notation
|
|
2256
|
+
"""
|
|
2257
|
+
spaceGroupSymbol: Optional[str] = None
|
|
2258
|
+
"""
|
|
2259
|
+
space group symbol in Hermann–Mauguin notation
|
|
2260
|
+
"""
|
|
2261
|
+
tolerance: Optional[ScalarSchema22] = Field(None, title="scalar schema")
|
|
2262
|
+
"""
|
|
2263
|
+
tolerance used for symmetry calculation
|
|
2264
|
+
"""
|
|
2265
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
2266
|
+
|
|
2267
|
+
|
|
2268
|
+
class Name178(Enum):
|
|
2269
|
+
elemental_ratio = "elemental_ratio"
|
|
2270
|
+
|
|
2271
|
+
|
|
2272
|
+
class ElementalRatio21(BaseModel):
|
|
2273
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
2274
|
+
value: confloat(ge=0.0, le=1.0)
|
|
2275
|
+
element: Optional[str] = None
|
|
2276
|
+
"""
|
|
2277
|
+
the element this ratio is for
|
|
2278
|
+
"""
|
|
2279
|
+
|
|
2280
|
+
|
|
2281
|
+
class Name179(Enum):
|
|
2282
|
+
p_norm = "p-norm"
|
|
2283
|
+
|
|
2284
|
+
|
|
2285
|
+
class PNorm21(BaseModel):
|
|
2286
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
2287
|
+
degree: Optional[int] = None
|
|
2288
|
+
"""
|
|
2289
|
+
degree of the dimensionality of the norm
|
|
2290
|
+
"""
|
|
2291
|
+
value: float
|
|
2292
|
+
|
|
2293
|
+
|
|
2294
|
+
class Name180(Enum):
|
|
2295
|
+
inchi = "inchi"
|
|
2296
|
+
|
|
2297
|
+
|
|
2298
|
+
class InChIRepresentationSchema21(BaseModel):
|
|
2299
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
2300
|
+
value: str
|
|
2301
|
+
|
|
2302
|
+
|
|
2303
|
+
class Name181(Enum):
|
|
2304
|
+
inchi_key = "inchi_key"
|
|
2305
|
+
|
|
2306
|
+
|
|
2307
|
+
class InChIKeyRepresentationSchema21(BaseModel):
|
|
2308
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
2309
|
+
value: str
|
|
2310
|
+
|
|
2311
|
+
|
|
2312
|
+
class DerivedPropertiesSchema21(
|
|
2313
|
+
RootModel[
|
|
2314
|
+
Union[
|
|
2315
|
+
VolumeSchema21,
|
|
2316
|
+
DensitySchema21,
|
|
2317
|
+
SymmetrySchema21,
|
|
2318
|
+
ElementalRatio21,
|
|
2319
|
+
PNorm21,
|
|
2320
|
+
InChIRepresentationSchema21,
|
|
2321
|
+
InChIKeyRepresentationSchema21,
|
|
2322
|
+
]
|
|
2323
|
+
]
|
|
2324
|
+
):
|
|
2325
|
+
root: Union[
|
|
2326
|
+
VolumeSchema21,
|
|
2327
|
+
DensitySchema21,
|
|
2328
|
+
SymmetrySchema21,
|
|
2329
|
+
ElementalRatio21,
|
|
2330
|
+
PNorm21,
|
|
2331
|
+
InChIRepresentationSchema21,
|
|
2332
|
+
InChIKeyRepresentationSchema21,
|
|
2333
|
+
] = Field(..., discriminator="name")
|
|
2334
|
+
|
|
2335
|
+
|
|
2336
|
+
class Name182(Enum):
|
|
2337
|
+
default = "default"
|
|
2338
|
+
atomsTooClose = "atomsTooClose"
|
|
2339
|
+
atomsOverlap = "atomsOverlap"
|
|
2340
|
+
|
|
2341
|
+
|
|
2342
|
+
class MaterialConsistencyCheckSchema21(BaseModel):
|
|
2343
|
+
name: Name182
|
|
2344
|
+
"""
|
|
2345
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
2346
|
+
"""
|
|
2347
|
+
key: str
|
|
2348
|
+
"""
|
|
2349
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
2350
|
+
"""
|
|
2351
|
+
severity: Severity
|
|
2352
|
+
"""
|
|
2353
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
2354
|
+
"""
|
|
2355
|
+
message: str
|
|
2356
|
+
"""
|
|
2357
|
+
Message generated by the consistency check describing the problem.
|
|
2358
|
+
"""
|
|
2359
|
+
|
|
2360
|
+
|
|
2361
|
+
class CrystalSchema21(BaseModel):
|
|
2362
|
+
formula: Optional[str] = None
|
|
2363
|
+
"""
|
|
2364
|
+
reduced chemical formula
|
|
2365
|
+
"""
|
|
2366
|
+
unitCellFormula: Optional[str] = None
|
|
2367
|
+
"""
|
|
2368
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
2369
|
+
"""
|
|
2370
|
+
basis: BasisSchema22 = Field(..., title="basis schema")
|
|
2371
|
+
lattice: LatticeSchema21 = Field(..., title="lattice schema")
|
|
2372
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema21]] = Field(None, title="derived properties schema")
|
|
2373
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
2374
|
+
"""
|
|
2375
|
+
information about a database source
|
|
2376
|
+
"""
|
|
2377
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
2378
|
+
"""
|
|
2379
|
+
file source with the information inside
|
|
2380
|
+
"""
|
|
2381
|
+
scaledHash: Optional[str] = None
|
|
2382
|
+
"""
|
|
2383
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
2384
|
+
"""
|
|
2385
|
+
icsdId: Optional[int] = None
|
|
2386
|
+
"""
|
|
2387
|
+
Corresponding ICSD id of the material
|
|
2388
|
+
"""
|
|
2389
|
+
isNonPeriodic: Optional[bool] = None
|
|
2390
|
+
"""
|
|
2391
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
2392
|
+
"""
|
|
2393
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema21]] = None
|
|
2394
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
2395
|
+
"""
|
|
2396
|
+
entity identity
|
|
2397
|
+
"""
|
|
2398
|
+
slug: Optional[str] = None
|
|
2399
|
+
"""
|
|
2400
|
+
entity slug
|
|
2401
|
+
"""
|
|
2402
|
+
systemName: Optional[str] = None
|
|
2403
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
2404
|
+
"""
|
|
2405
|
+
entity's schema version. Used to distinct between different schemas.
|
|
2406
|
+
"""
|
|
2407
|
+
name: Optional[str] = None
|
|
2408
|
+
"""
|
|
2409
|
+
entity name
|
|
2410
|
+
"""
|
|
2411
|
+
isDefault: Optional[bool] = False
|
|
2412
|
+
"""
|
|
2413
|
+
Identifies that entity is defaultable
|
|
2414
|
+
"""
|
|
2415
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
2416
|
+
|
|
2417
|
+
|
|
2418
|
+
class CoordinateShapeEnum(Enum):
|
|
2419
|
+
cylinder = "cylinder"
|
|
2420
|
+
sphere = "sphere"
|
|
2421
|
+
box = "box"
|
|
2422
|
+
triangular_prism = "triangular_prism"
|
|
2423
|
+
plane = "plane"
|
|
2424
|
+
|
|
2425
|
+
|
|
2426
|
+
class BoxCoordinateConditionSchema(BaseModel):
|
|
2427
|
+
shape: Literal["box"] = Field(..., title="Coordinate Shape Enum")
|
|
2428
|
+
min_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
2429
|
+
max_coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
class VoidRegionSchema(BaseModel):
|
|
2433
|
+
crystal: CrystalSchema21 = Field(..., title="Crystal Schema")
|
|
2434
|
+
"""
|
|
2435
|
+
A crystal structure, referencing the base material schema
|
|
2436
|
+
"""
|
|
2437
|
+
coordinate_condition: BoxCoordinateConditionSchema = Field(..., title="Coordinate Conditions Schema")
|
|
2438
|
+
"""
|
|
2439
|
+
Combined schema for all coordinate condition types
|
|
2440
|
+
"""
|
|
2441
|
+
|
|
2442
|
+
|
|
2443
|
+
class MergeMethodsEnum(Enum):
|
|
2444
|
+
ADD = "ADD"
|
|
2445
|
+
REPLACE = "REPLACE"
|
|
2446
|
+
YIELD = "YIELD"
|
|
2447
|
+
|
|
2448
|
+
|
|
2449
|
+
class MergeSchema(BaseModel):
|
|
2450
|
+
merge_components: List[Union[SlabConfigurationSchema3, VoidRegionSchema]] = Field(..., max_length=2, min_length=2)
|
|
2451
|
+
merge_method: Optional[MergeMethodsEnum] = Field("REPLACE", title="Merge Methods Enum")
|
|
2452
|
+
"""
|
|
2453
|
+
Available methods for merging components
|
|
2454
|
+
"""
|
|
2455
|
+
|
|
2456
|
+
|
|
2457
|
+
class Value52(Enum):
|
|
2458
|
+
H = "H"
|
|
2459
|
+
He = "He"
|
|
2460
|
+
Li = "Li"
|
|
2461
|
+
Be = "Be"
|
|
2462
|
+
B = "B"
|
|
2463
|
+
C = "C"
|
|
2464
|
+
N = "N"
|
|
2465
|
+
O = "O"
|
|
2466
|
+
F = "F"
|
|
2467
|
+
Ne = "Ne"
|
|
2468
|
+
Na = "Na"
|
|
2469
|
+
Mg = "Mg"
|
|
2470
|
+
Al = "Al"
|
|
2471
|
+
Si = "Si"
|
|
2472
|
+
P = "P"
|
|
2473
|
+
S = "S"
|
|
2474
|
+
Cl = "Cl"
|
|
2475
|
+
Ar = "Ar"
|
|
2476
|
+
K = "K"
|
|
2477
|
+
Ca = "Ca"
|
|
2478
|
+
Sc = "Sc"
|
|
2479
|
+
Ti = "Ti"
|
|
2480
|
+
V = "V"
|
|
2481
|
+
Cr = "Cr"
|
|
2482
|
+
Mn = "Mn"
|
|
2483
|
+
Fe = "Fe"
|
|
2484
|
+
Co = "Co"
|
|
2485
|
+
Ni = "Ni"
|
|
2486
|
+
Cu = "Cu"
|
|
2487
|
+
Zn = "Zn"
|
|
2488
|
+
Ga = "Ga"
|
|
2489
|
+
Ge = "Ge"
|
|
2490
|
+
As = "As"
|
|
2491
|
+
Se = "Se"
|
|
2492
|
+
Br = "Br"
|
|
2493
|
+
Kr = "Kr"
|
|
2494
|
+
Rb = "Rb"
|
|
2495
|
+
Sr = "Sr"
|
|
2496
|
+
Y = "Y"
|
|
2497
|
+
Zr = "Zr"
|
|
2498
|
+
Nb = "Nb"
|
|
2499
|
+
Mo = "Mo"
|
|
2500
|
+
Tc = "Tc"
|
|
2501
|
+
Ru = "Ru"
|
|
2502
|
+
Rh = "Rh"
|
|
2503
|
+
Pd = "Pd"
|
|
2504
|
+
Ag = "Ag"
|
|
2505
|
+
Cd = "Cd"
|
|
2506
|
+
In = "In"
|
|
2507
|
+
Sn = "Sn"
|
|
2508
|
+
Sb = "Sb"
|
|
2509
|
+
Te = "Te"
|
|
2510
|
+
I = "I"
|
|
2511
|
+
Xe = "Xe"
|
|
2512
|
+
Cs = "Cs"
|
|
2513
|
+
Ba = "Ba"
|
|
2514
|
+
La = "La"
|
|
2515
|
+
Ce = "Ce"
|
|
2516
|
+
Pr = "Pr"
|
|
2517
|
+
Nd = "Nd"
|
|
2518
|
+
Pm = "Pm"
|
|
2519
|
+
Sm = "Sm"
|
|
2520
|
+
Eu = "Eu"
|
|
2521
|
+
Gd = "Gd"
|
|
2522
|
+
Tb = "Tb"
|
|
2523
|
+
Dy = "Dy"
|
|
2524
|
+
Ho = "Ho"
|
|
2525
|
+
Er = "Er"
|
|
2526
|
+
Tm = "Tm"
|
|
2527
|
+
Yb = "Yb"
|
|
2528
|
+
Lu = "Lu"
|
|
2529
|
+
Hf = "Hf"
|
|
2530
|
+
Ta = "Ta"
|
|
2531
|
+
W = "W"
|
|
2532
|
+
Re = "Re"
|
|
2533
|
+
Os = "Os"
|
|
2534
|
+
Ir = "Ir"
|
|
2535
|
+
Pt = "Pt"
|
|
2536
|
+
Au = "Au"
|
|
2537
|
+
Hg = "Hg"
|
|
2538
|
+
Tl = "Tl"
|
|
2539
|
+
Pb = "Pb"
|
|
2540
|
+
Bi = "Bi"
|
|
2541
|
+
Po = "Po"
|
|
2542
|
+
At = "At"
|
|
2543
|
+
Rn = "Rn"
|
|
2544
|
+
Fr = "Fr"
|
|
2545
|
+
Ra = "Ra"
|
|
2546
|
+
Ac = "Ac"
|
|
2547
|
+
Th = "Th"
|
|
2548
|
+
Pa = "Pa"
|
|
2549
|
+
U = "U"
|
|
2550
|
+
Np = "Np"
|
|
2551
|
+
Pu = "Pu"
|
|
2552
|
+
Am = "Am"
|
|
2553
|
+
Cm = "Cm"
|
|
2554
|
+
Bk = "Bk"
|
|
2555
|
+
Cf = "Cf"
|
|
2556
|
+
Es = "Es"
|
|
2557
|
+
Fm = "Fm"
|
|
2558
|
+
Md = "Md"
|
|
2559
|
+
No = "No"
|
|
2560
|
+
Lr = "Lr"
|
|
2561
|
+
Rf = "Rf"
|
|
2562
|
+
Db = "Db"
|
|
2563
|
+
Sg = "Sg"
|
|
2564
|
+
Bh = "Bh"
|
|
2565
|
+
Hs = "Hs"
|
|
2566
|
+
Mt = "Mt"
|
|
2567
|
+
Ds = "Ds"
|
|
2568
|
+
Rg = "Rg"
|
|
2569
|
+
Cn = "Cn"
|
|
2570
|
+
Nh = "Nh"
|
|
2571
|
+
Fl = "Fl"
|
|
2572
|
+
Mc = "Mc"
|
|
2573
|
+
Lv = "Lv"
|
|
2574
|
+
Ts = "Ts"
|
|
2575
|
+
Og = "Og"
|
|
2576
|
+
|
|
2577
|
+
|
|
2578
|
+
class Value53(Enum):
|
|
2579
|
+
X = "X"
|
|
2580
|
+
Vac = "Vac"
|
|
2581
|
+
|
|
2582
|
+
|
|
2583
|
+
class AtomicElementSchema25(BaseModel):
|
|
2584
|
+
value: Union[Value52, Value53]
|
|
2585
|
+
"""
|
|
2586
|
+
All elements, including extra elements
|
|
2587
|
+
"""
|
|
2588
|
+
id: int
|
|
2589
|
+
"""
|
|
2590
|
+
integer id of this entry
|
|
2591
|
+
"""
|
|
2592
|
+
|
|
2593
|
+
|
|
2594
|
+
class BasisSchema23(BaseModel):
|
|
2595
|
+
elements: List[AtomicElementSchema25] = Field(..., title="atomic elements schema")
|
|
2596
|
+
"""
|
|
2597
|
+
atomic elements schema
|
|
2598
|
+
"""
|
|
2599
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
2600
|
+
"""
|
|
2601
|
+
atomic coordinates schema
|
|
2602
|
+
"""
|
|
2603
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
2604
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
2605
|
+
"""
|
|
2606
|
+
atomic labels schema
|
|
2607
|
+
"""
|
|
2608
|
+
|
|
2609
|
+
|
|
2610
|
+
class LatticeVectorsSchema22(BaseModel):
|
|
2611
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2612
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2613
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
2614
|
+
alat: Optional[float] = 1
|
|
2615
|
+
"""
|
|
2616
|
+
lattice parameter for fractional coordinates
|
|
2617
|
+
"""
|
|
2618
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
2619
|
+
|
|
2620
|
+
|
|
2621
|
+
class LatticeUnitsSchema22(BaseModel):
|
|
2622
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
2623
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
2624
|
+
|
|
2625
|
+
|
|
2626
|
+
class LatticeSchema22(BaseModel):
|
|
2627
|
+
a: float
|
|
2628
|
+
"""
|
|
2629
|
+
length of the first lattice vector
|
|
2630
|
+
"""
|
|
2631
|
+
b: float
|
|
2632
|
+
"""
|
|
2633
|
+
length of the second lattice vector
|
|
2634
|
+
"""
|
|
2635
|
+
c: float
|
|
2636
|
+
"""
|
|
2637
|
+
length of the third lattice vector
|
|
2638
|
+
"""
|
|
2639
|
+
alpha: float
|
|
2640
|
+
"""
|
|
2641
|
+
angle between first and second lattice vector
|
|
2642
|
+
"""
|
|
2643
|
+
beta: float
|
|
2644
|
+
"""
|
|
2645
|
+
angle between second and third lattice vector
|
|
2646
|
+
"""
|
|
2647
|
+
gamma: float
|
|
2648
|
+
"""
|
|
2649
|
+
angle between first and third lattice vector
|
|
2650
|
+
"""
|
|
2651
|
+
vectors: Optional[LatticeVectorsSchema22] = Field(None, title="lattice vectors schema")
|
|
2652
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
2653
|
+
units: Optional[LatticeUnitsSchema22] = Field(
|
|
2654
|
+
default_factory=lambda: LatticeUnitsSchema22.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
2655
|
+
title="Lattice units schema",
|
|
2656
|
+
)
|
|
2657
|
+
|
|
2658
|
+
|
|
2659
|
+
class Name183(Enum):
|
|
2660
|
+
volume = "volume"
|
|
2661
|
+
|
|
2662
|
+
|
|
2663
|
+
class Units75(Enum):
|
|
2664
|
+
angstrom_3 = "angstrom^3"
|
|
2665
|
+
|
|
2666
|
+
|
|
2667
|
+
class VolumeSchema22(BaseModel):
|
|
2668
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
2669
|
+
units: Optional[Units75] = None
|
|
2670
|
+
value: float
|
|
2671
|
+
|
|
2672
|
+
|
|
2673
|
+
class Name184(Enum):
|
|
2674
|
+
density = "density"
|
|
2675
|
+
|
|
2676
|
+
|
|
2677
|
+
class Units76(Enum):
|
|
2678
|
+
g_cm_3 = "g/cm^3"
|
|
2679
|
+
|
|
2680
|
+
|
|
2681
|
+
class DensitySchema22(BaseModel):
|
|
2682
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
2683
|
+
units: Optional[Units76] = None
|
|
2684
|
+
value: float
|
|
2685
|
+
|
|
2686
|
+
|
|
2687
|
+
class Units77(Enum):
|
|
2688
|
+
angstrom = "angstrom"
|
|
2689
|
+
|
|
2690
|
+
|
|
2691
|
+
class ScalarSchema23(BaseModel):
|
|
2692
|
+
units: Optional[Units77] = None
|
|
2693
|
+
value: float
|
|
2694
|
+
|
|
2695
|
+
|
|
2696
|
+
class Name185(Enum):
|
|
2697
|
+
symmetry = "symmetry"
|
|
2698
|
+
|
|
2699
|
+
|
|
2700
|
+
class SymmetrySchema22(BaseModel):
|
|
2701
|
+
pointGroupSymbol: Optional[str] = None
|
|
2702
|
+
"""
|
|
2703
|
+
point group symbol in Schoenflies notation
|
|
2704
|
+
"""
|
|
2705
|
+
spaceGroupSymbol: Optional[str] = None
|
|
2706
|
+
"""
|
|
2707
|
+
space group symbol in Hermann–Mauguin notation
|
|
2708
|
+
"""
|
|
2709
|
+
tolerance: Optional[ScalarSchema23] = Field(None, title="scalar schema")
|
|
2710
|
+
"""
|
|
2711
|
+
tolerance used for symmetry calculation
|
|
2712
|
+
"""
|
|
2713
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
2714
|
+
|
|
2715
|
+
|
|
2716
|
+
class Name186(Enum):
|
|
2717
|
+
elemental_ratio = "elemental_ratio"
|
|
2718
|
+
|
|
2719
|
+
|
|
2720
|
+
class ElementalRatio22(BaseModel):
|
|
2721
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
2722
|
+
value: confloat(ge=0.0, le=1.0)
|
|
2723
|
+
element: Optional[str] = None
|
|
2724
|
+
"""
|
|
2725
|
+
the element this ratio is for
|
|
2726
|
+
"""
|
|
2727
|
+
|
|
2728
|
+
|
|
2729
|
+
class Name187(Enum):
|
|
2730
|
+
p_norm = "p-norm"
|
|
2731
|
+
|
|
2732
|
+
|
|
2733
|
+
class PNorm22(BaseModel):
|
|
2734
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
2735
|
+
degree: Optional[int] = None
|
|
2736
|
+
"""
|
|
2737
|
+
degree of the dimensionality of the norm
|
|
2738
|
+
"""
|
|
2739
|
+
value: float
|
|
2740
|
+
|
|
2741
|
+
|
|
2742
|
+
class Name188(Enum):
|
|
2743
|
+
inchi = "inchi"
|
|
2744
|
+
|
|
2745
|
+
|
|
2746
|
+
class InChIRepresentationSchema22(BaseModel):
|
|
2747
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
2748
|
+
value: str
|
|
2749
|
+
|
|
2750
|
+
|
|
2751
|
+
class Name189(Enum):
|
|
2752
|
+
inchi_key = "inchi_key"
|
|
2753
|
+
|
|
2754
|
+
|
|
2755
|
+
class InChIKeyRepresentationSchema22(BaseModel):
|
|
2756
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
2757
|
+
value: str
|
|
2758
|
+
|
|
2759
|
+
|
|
2760
|
+
class DerivedPropertiesSchema22(
|
|
2761
|
+
RootModel[
|
|
2762
|
+
Union[
|
|
2763
|
+
VolumeSchema22,
|
|
2764
|
+
DensitySchema22,
|
|
2765
|
+
SymmetrySchema22,
|
|
2766
|
+
ElementalRatio22,
|
|
2767
|
+
PNorm22,
|
|
2768
|
+
InChIRepresentationSchema22,
|
|
2769
|
+
InChIKeyRepresentationSchema22,
|
|
2770
|
+
]
|
|
2771
|
+
]
|
|
2772
|
+
):
|
|
2773
|
+
root: Union[
|
|
2774
|
+
VolumeSchema22,
|
|
2775
|
+
DensitySchema22,
|
|
2776
|
+
SymmetrySchema22,
|
|
2777
|
+
ElementalRatio22,
|
|
2778
|
+
PNorm22,
|
|
2779
|
+
InChIRepresentationSchema22,
|
|
2780
|
+
InChIKeyRepresentationSchema22,
|
|
2781
|
+
] = Field(..., discriminator="name")
|
|
2782
|
+
|
|
2783
|
+
|
|
2784
|
+
class Name190(Enum):
|
|
2785
|
+
default = "default"
|
|
2786
|
+
atomsTooClose = "atomsTooClose"
|
|
2787
|
+
atomsOverlap = "atomsOverlap"
|
|
2788
|
+
|
|
2789
|
+
|
|
2790
|
+
class MaterialConsistencyCheckSchema22(BaseModel):
|
|
2791
|
+
name: Name190
|
|
2792
|
+
"""
|
|
2793
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
2794
|
+
"""
|
|
2795
|
+
key: str
|
|
2796
|
+
"""
|
|
2797
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
2798
|
+
"""
|
|
2799
|
+
severity: Severity
|
|
2800
|
+
"""
|
|
2801
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
2802
|
+
"""
|
|
2803
|
+
message: str
|
|
2804
|
+
"""
|
|
2805
|
+
Message generated by the consistency check describing the problem.
|
|
2806
|
+
"""
|
|
2807
|
+
|
|
2808
|
+
|
|
2809
|
+
class CrystalSchema22(BaseModel):
|
|
2810
|
+
formula: Optional[str] = None
|
|
2811
|
+
"""
|
|
2812
|
+
reduced chemical formula
|
|
2813
|
+
"""
|
|
2814
|
+
unitCellFormula: Optional[str] = None
|
|
2815
|
+
"""
|
|
2816
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
2817
|
+
"""
|
|
2818
|
+
basis: BasisSchema23 = Field(..., title="basis schema")
|
|
2819
|
+
lattice: LatticeSchema22 = Field(..., title="lattice schema")
|
|
2820
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema22]] = Field(None, title="derived properties schema")
|
|
2821
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
2822
|
+
"""
|
|
2823
|
+
information about a database source
|
|
2824
|
+
"""
|
|
2825
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
2826
|
+
"""
|
|
2827
|
+
file source with the information inside
|
|
2828
|
+
"""
|
|
2829
|
+
scaledHash: Optional[str] = None
|
|
2830
|
+
"""
|
|
2831
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
2832
|
+
"""
|
|
2833
|
+
icsdId: Optional[int] = None
|
|
2834
|
+
"""
|
|
2835
|
+
Corresponding ICSD id of the material
|
|
2836
|
+
"""
|
|
2837
|
+
isNonPeriodic: Optional[bool] = None
|
|
2838
|
+
"""
|
|
2839
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
2840
|
+
"""
|
|
2841
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema22]] = None
|
|
2842
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
2843
|
+
"""
|
|
2844
|
+
entity identity
|
|
2845
|
+
"""
|
|
2846
|
+
slug: Optional[str] = None
|
|
2847
|
+
"""
|
|
2848
|
+
entity slug
|
|
2849
|
+
"""
|
|
2850
|
+
systemName: Optional[str] = None
|
|
2851
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
2852
|
+
"""
|
|
2853
|
+
entity's schema version. Used to distinct between different schemas.
|
|
2854
|
+
"""
|
|
2855
|
+
name: Optional[str] = None
|
|
2856
|
+
"""
|
|
2857
|
+
entity name
|
|
2858
|
+
"""
|
|
2859
|
+
isDefault: Optional[bool] = False
|
|
2860
|
+
"""
|
|
2861
|
+
Identifies that entity is defaultable
|
|
2862
|
+
"""
|
|
2863
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
2864
|
+
|
|
2865
|
+
|
|
2866
|
+
class VacuumConfigurationSchema9(BaseModel):
|
|
2867
|
+
direction: AxisEnum = Field(..., title="Axis Enum")
|
|
2868
|
+
"""
|
|
2869
|
+
Enum for axis types
|
|
2870
|
+
"""
|
|
2871
|
+
size: Optional[confloat(ge=0.0)] = 10
|
|
2872
|
+
"""
|
|
2873
|
+
Size of the vacuum slab in angstroms
|
|
2874
|
+
"""
|
|
2875
|
+
crystal: CrystalSchema22 = Field(..., title="Crystal Schema")
|
|
2876
|
+
"""
|
|
2877
|
+
A crystal structure, referencing the base material schema
|
|
2878
|
+
"""
|
|
2879
|
+
|
|
2880
|
+
|
|
2881
|
+
class TerraceDefectConfigurationSchema(BaseModel):
|
|
2882
|
+
stack_components: List[Union[SlabConfigurationSchema, MergeSchema, VacuumConfigurationSchema9]] = Field(
|
|
2883
|
+
..., max_length=3, min_length=3
|
|
2884
|
+
)
|
|
2885
|
+
cut_direction: Optional[List[int]] = Field([0, 0, 1], max_length=3, min_length=3, title="Miller Indices Schema")
|
|
2886
|
+
"""
|
|
2887
|
+
Miller indices [h, k, l] defining crystallographic planes
|
|
2888
|
+
"""
|
|
2889
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
2890
|
+
"""
|
|
2891
|
+
Enum for axis types
|
|
2892
|
+
"""
|