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/adatom/configuration.py
ADDED
|
@@ -0,0 +1,2116 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: materials_category/defective_structures/two_dimensional/adatom/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 Value55(Enum):
|
|
269
|
+
X = "X"
|
|
270
|
+
Vac = "Vac"
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
class AtomicElementSchema(BaseModel):
|
|
274
|
+
value: Union[Value, Value55]
|
|
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 Name192(Enum):
|
|
423
|
+
density = "density"
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
class Units79(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[Units79] = None
|
|
433
|
+
value: float
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
class Units80(Enum):
|
|
437
|
+
angstrom = "angstrom"
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
class ScalarSchema(BaseModel):
|
|
441
|
+
units: Optional[Units80] = None
|
|
442
|
+
value: float
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
class Name193(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 Name194(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 Name195(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 Name196(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 Name197(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 Name198(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: Name198
|
|
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 Value56(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 Value57(Enum):
|
|
818
|
+
X = "X"
|
|
819
|
+
Vac = "Vac"
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
class AtomicElementSchema27(BaseModel):
|
|
823
|
+
value: Union[Value56, Value57]
|
|
824
|
+
"""
|
|
825
|
+
All elements, including extra elements
|
|
826
|
+
"""
|
|
827
|
+
id: int
|
|
828
|
+
"""
|
|
829
|
+
integer id of this entry
|
|
830
|
+
"""
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
class BasisSchema25(BaseModel):
|
|
834
|
+
elements: List[AtomicElementSchema27] = 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 LatticeVectorsSchema24(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 LatticeUnitsSchema24(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 LatticeSchema24(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[LatticeVectorsSchema24] = Field(None, title="lattice vectors schema")
|
|
891
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
892
|
+
units: Optional[LatticeUnitsSchema24] = Field(
|
|
893
|
+
default_factory=lambda: LatticeUnitsSchema24.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
894
|
+
title="Lattice units schema",
|
|
895
|
+
)
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
class Name199(Enum):
|
|
899
|
+
volume = "volume"
|
|
900
|
+
|
|
901
|
+
|
|
902
|
+
class Units81(Enum):
|
|
903
|
+
angstrom_3 = "angstrom^3"
|
|
904
|
+
|
|
905
|
+
|
|
906
|
+
class VolumeSchema24(BaseModel):
|
|
907
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
908
|
+
units: Optional[Units81] = None
|
|
909
|
+
value: float
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
class Name200(Enum):
|
|
913
|
+
density = "density"
|
|
914
|
+
|
|
915
|
+
|
|
916
|
+
class Units82(Enum):
|
|
917
|
+
g_cm_3 = "g/cm^3"
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
class DensitySchema24(BaseModel):
|
|
921
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
922
|
+
units: Optional[Units82] = None
|
|
923
|
+
value: float
|
|
924
|
+
|
|
925
|
+
|
|
926
|
+
class Units83(Enum):
|
|
927
|
+
angstrom = "angstrom"
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
class ScalarSchema25(BaseModel):
|
|
931
|
+
units: Optional[Units83] = None
|
|
932
|
+
value: float
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
class Name201(Enum):
|
|
936
|
+
symmetry = "symmetry"
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
class SymmetrySchema24(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[ScalarSchema25] = 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 Name202(Enum):
|
|
956
|
+
elemental_ratio = "elemental_ratio"
|
|
957
|
+
|
|
958
|
+
|
|
959
|
+
class ElementalRatio24(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 Name203(Enum):
|
|
969
|
+
p_norm = "p-norm"
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
class PNorm24(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 Name204(Enum):
|
|
982
|
+
inchi = "inchi"
|
|
983
|
+
|
|
984
|
+
|
|
985
|
+
class InChIRepresentationSchema24(BaseModel):
|
|
986
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
987
|
+
value: str
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
class Name205(Enum):
|
|
991
|
+
inchi_key = "inchi_key"
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
class InChIKeyRepresentationSchema24(BaseModel):
|
|
995
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
996
|
+
value: str
|
|
997
|
+
|
|
998
|
+
|
|
999
|
+
class DerivedPropertiesSchema24(
|
|
1000
|
+
RootModel[
|
|
1001
|
+
Union[
|
|
1002
|
+
VolumeSchema24,
|
|
1003
|
+
DensitySchema24,
|
|
1004
|
+
SymmetrySchema24,
|
|
1005
|
+
ElementalRatio24,
|
|
1006
|
+
PNorm24,
|
|
1007
|
+
InChIRepresentationSchema24,
|
|
1008
|
+
InChIKeyRepresentationSchema24,
|
|
1009
|
+
]
|
|
1010
|
+
]
|
|
1011
|
+
):
|
|
1012
|
+
root: Union[
|
|
1013
|
+
VolumeSchema24,
|
|
1014
|
+
DensitySchema24,
|
|
1015
|
+
SymmetrySchema24,
|
|
1016
|
+
ElementalRatio24,
|
|
1017
|
+
PNorm24,
|
|
1018
|
+
InChIRepresentationSchema24,
|
|
1019
|
+
InChIKeyRepresentationSchema24,
|
|
1020
|
+
] = Field(..., discriminator="name")
|
|
1021
|
+
|
|
1022
|
+
|
|
1023
|
+
class Name206(Enum):
|
|
1024
|
+
default = "default"
|
|
1025
|
+
atomsTooClose = "atomsTooClose"
|
|
1026
|
+
atomsOverlap = "atomsOverlap"
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
class MaterialConsistencyCheckSchema24(BaseModel):
|
|
1030
|
+
name: Name206
|
|
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 CrystalSchema24(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: BasisSchema25 = Field(..., title="basis schema")
|
|
1058
|
+
lattice: LatticeSchema24 = Field(..., title="lattice schema")
|
|
1059
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema24]] = 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[MaterialConsistencyCheckSchema24]] = 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: CrystalSchema24 = 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 Value58(Enum):
|
|
1131
|
+
H = "H"
|
|
1132
|
+
He = "He"
|
|
1133
|
+
Li = "Li"
|
|
1134
|
+
Be = "Be"
|
|
1135
|
+
B = "B"
|
|
1136
|
+
C = "C"
|
|
1137
|
+
N = "N"
|
|
1138
|
+
O = "O"
|
|
1139
|
+
F = "F"
|
|
1140
|
+
Ne = "Ne"
|
|
1141
|
+
Na = "Na"
|
|
1142
|
+
Mg = "Mg"
|
|
1143
|
+
Al = "Al"
|
|
1144
|
+
Si = "Si"
|
|
1145
|
+
P = "P"
|
|
1146
|
+
S = "S"
|
|
1147
|
+
Cl = "Cl"
|
|
1148
|
+
Ar = "Ar"
|
|
1149
|
+
K = "K"
|
|
1150
|
+
Ca = "Ca"
|
|
1151
|
+
Sc = "Sc"
|
|
1152
|
+
Ti = "Ti"
|
|
1153
|
+
V = "V"
|
|
1154
|
+
Cr = "Cr"
|
|
1155
|
+
Mn = "Mn"
|
|
1156
|
+
Fe = "Fe"
|
|
1157
|
+
Co = "Co"
|
|
1158
|
+
Ni = "Ni"
|
|
1159
|
+
Cu = "Cu"
|
|
1160
|
+
Zn = "Zn"
|
|
1161
|
+
Ga = "Ga"
|
|
1162
|
+
Ge = "Ge"
|
|
1163
|
+
As = "As"
|
|
1164
|
+
Se = "Se"
|
|
1165
|
+
Br = "Br"
|
|
1166
|
+
Kr = "Kr"
|
|
1167
|
+
Rb = "Rb"
|
|
1168
|
+
Sr = "Sr"
|
|
1169
|
+
Y = "Y"
|
|
1170
|
+
Zr = "Zr"
|
|
1171
|
+
Nb = "Nb"
|
|
1172
|
+
Mo = "Mo"
|
|
1173
|
+
Tc = "Tc"
|
|
1174
|
+
Ru = "Ru"
|
|
1175
|
+
Rh = "Rh"
|
|
1176
|
+
Pd = "Pd"
|
|
1177
|
+
Ag = "Ag"
|
|
1178
|
+
Cd = "Cd"
|
|
1179
|
+
In = "In"
|
|
1180
|
+
Sn = "Sn"
|
|
1181
|
+
Sb = "Sb"
|
|
1182
|
+
Te = "Te"
|
|
1183
|
+
I = "I"
|
|
1184
|
+
Xe = "Xe"
|
|
1185
|
+
Cs = "Cs"
|
|
1186
|
+
Ba = "Ba"
|
|
1187
|
+
La = "La"
|
|
1188
|
+
Ce = "Ce"
|
|
1189
|
+
Pr = "Pr"
|
|
1190
|
+
Nd = "Nd"
|
|
1191
|
+
Pm = "Pm"
|
|
1192
|
+
Sm = "Sm"
|
|
1193
|
+
Eu = "Eu"
|
|
1194
|
+
Gd = "Gd"
|
|
1195
|
+
Tb = "Tb"
|
|
1196
|
+
Dy = "Dy"
|
|
1197
|
+
Ho = "Ho"
|
|
1198
|
+
Er = "Er"
|
|
1199
|
+
Tm = "Tm"
|
|
1200
|
+
Yb = "Yb"
|
|
1201
|
+
Lu = "Lu"
|
|
1202
|
+
Hf = "Hf"
|
|
1203
|
+
Ta = "Ta"
|
|
1204
|
+
W = "W"
|
|
1205
|
+
Re = "Re"
|
|
1206
|
+
Os = "Os"
|
|
1207
|
+
Ir = "Ir"
|
|
1208
|
+
Pt = "Pt"
|
|
1209
|
+
Au = "Au"
|
|
1210
|
+
Hg = "Hg"
|
|
1211
|
+
Tl = "Tl"
|
|
1212
|
+
Pb = "Pb"
|
|
1213
|
+
Bi = "Bi"
|
|
1214
|
+
Po = "Po"
|
|
1215
|
+
At = "At"
|
|
1216
|
+
Rn = "Rn"
|
|
1217
|
+
Fr = "Fr"
|
|
1218
|
+
Ra = "Ra"
|
|
1219
|
+
Ac = "Ac"
|
|
1220
|
+
Th = "Th"
|
|
1221
|
+
Pa = "Pa"
|
|
1222
|
+
U = "U"
|
|
1223
|
+
Np = "Np"
|
|
1224
|
+
Pu = "Pu"
|
|
1225
|
+
Am = "Am"
|
|
1226
|
+
Cm = "Cm"
|
|
1227
|
+
Bk = "Bk"
|
|
1228
|
+
Cf = "Cf"
|
|
1229
|
+
Es = "Es"
|
|
1230
|
+
Fm = "Fm"
|
|
1231
|
+
Md = "Md"
|
|
1232
|
+
No = "No"
|
|
1233
|
+
Lr = "Lr"
|
|
1234
|
+
Rf = "Rf"
|
|
1235
|
+
Db = "Db"
|
|
1236
|
+
Sg = "Sg"
|
|
1237
|
+
Bh = "Bh"
|
|
1238
|
+
Hs = "Hs"
|
|
1239
|
+
Mt = "Mt"
|
|
1240
|
+
Ds = "Ds"
|
|
1241
|
+
Rg = "Rg"
|
|
1242
|
+
Cn = "Cn"
|
|
1243
|
+
Nh = "Nh"
|
|
1244
|
+
Fl = "Fl"
|
|
1245
|
+
Mc = "Mc"
|
|
1246
|
+
Lv = "Lv"
|
|
1247
|
+
Ts = "Ts"
|
|
1248
|
+
Og = "Og"
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
class Value59(Enum):
|
|
1252
|
+
X = "X"
|
|
1253
|
+
Vac = "Vac"
|
|
1254
|
+
|
|
1255
|
+
|
|
1256
|
+
class AtomicElementSchema28(BaseModel):
|
|
1257
|
+
value: Union[Value58, Value59]
|
|
1258
|
+
"""
|
|
1259
|
+
All elements, including extra elements
|
|
1260
|
+
"""
|
|
1261
|
+
id: int
|
|
1262
|
+
"""
|
|
1263
|
+
integer id of this entry
|
|
1264
|
+
"""
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
class BasisSchema26(BaseModel):
|
|
1268
|
+
elements: List[AtomicElementSchema28] = Field(..., title="atomic elements schema")
|
|
1269
|
+
"""
|
|
1270
|
+
atomic elements schema
|
|
1271
|
+
"""
|
|
1272
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
1273
|
+
"""
|
|
1274
|
+
atomic coordinates schema
|
|
1275
|
+
"""
|
|
1276
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
1277
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
1278
|
+
"""
|
|
1279
|
+
atomic labels schema
|
|
1280
|
+
"""
|
|
1281
|
+
|
|
1282
|
+
|
|
1283
|
+
class LatticeVectorsSchema25(BaseModel):
|
|
1284
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1285
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1286
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1287
|
+
alat: Optional[float] = 1
|
|
1288
|
+
"""
|
|
1289
|
+
lattice parameter for fractional coordinates
|
|
1290
|
+
"""
|
|
1291
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
1292
|
+
|
|
1293
|
+
|
|
1294
|
+
class LatticeUnitsSchema25(BaseModel):
|
|
1295
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
1296
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
class LatticeSchema25(BaseModel):
|
|
1300
|
+
a: float
|
|
1301
|
+
"""
|
|
1302
|
+
length of the first lattice vector
|
|
1303
|
+
"""
|
|
1304
|
+
b: float
|
|
1305
|
+
"""
|
|
1306
|
+
length of the second lattice vector
|
|
1307
|
+
"""
|
|
1308
|
+
c: float
|
|
1309
|
+
"""
|
|
1310
|
+
length of the third lattice vector
|
|
1311
|
+
"""
|
|
1312
|
+
alpha: float
|
|
1313
|
+
"""
|
|
1314
|
+
angle between first and second lattice vector
|
|
1315
|
+
"""
|
|
1316
|
+
beta: float
|
|
1317
|
+
"""
|
|
1318
|
+
angle between second and third lattice vector
|
|
1319
|
+
"""
|
|
1320
|
+
gamma: float
|
|
1321
|
+
"""
|
|
1322
|
+
angle between first and third lattice vector
|
|
1323
|
+
"""
|
|
1324
|
+
vectors: Optional[LatticeVectorsSchema25] = Field(None, title="lattice vectors schema")
|
|
1325
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1326
|
+
units: Optional[LatticeUnitsSchema25] = Field(
|
|
1327
|
+
default_factory=lambda: LatticeUnitsSchema25.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1328
|
+
title="Lattice units schema",
|
|
1329
|
+
)
|
|
1330
|
+
|
|
1331
|
+
|
|
1332
|
+
class Name207(Enum):
|
|
1333
|
+
volume = "volume"
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
class Units84(Enum):
|
|
1337
|
+
angstrom_3 = "angstrom^3"
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
class VolumeSchema25(BaseModel):
|
|
1341
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1342
|
+
units: Optional[Units84] = None
|
|
1343
|
+
value: float
|
|
1344
|
+
|
|
1345
|
+
|
|
1346
|
+
class Name208(Enum):
|
|
1347
|
+
density = "density"
|
|
1348
|
+
|
|
1349
|
+
|
|
1350
|
+
class Units85(Enum):
|
|
1351
|
+
g_cm_3 = "g/cm^3"
|
|
1352
|
+
|
|
1353
|
+
|
|
1354
|
+
class DensitySchema25(BaseModel):
|
|
1355
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1356
|
+
units: Optional[Units85] = None
|
|
1357
|
+
value: float
|
|
1358
|
+
|
|
1359
|
+
|
|
1360
|
+
class Units86(Enum):
|
|
1361
|
+
angstrom = "angstrom"
|
|
1362
|
+
|
|
1363
|
+
|
|
1364
|
+
class ScalarSchema26(BaseModel):
|
|
1365
|
+
units: Optional[Units86] = None
|
|
1366
|
+
value: float
|
|
1367
|
+
|
|
1368
|
+
|
|
1369
|
+
class Name209(Enum):
|
|
1370
|
+
symmetry = "symmetry"
|
|
1371
|
+
|
|
1372
|
+
|
|
1373
|
+
class SymmetrySchema25(BaseModel):
|
|
1374
|
+
pointGroupSymbol: Optional[str] = None
|
|
1375
|
+
"""
|
|
1376
|
+
point group symbol in Schoenflies notation
|
|
1377
|
+
"""
|
|
1378
|
+
spaceGroupSymbol: Optional[str] = None
|
|
1379
|
+
"""
|
|
1380
|
+
space group symbol in Hermann–Mauguin notation
|
|
1381
|
+
"""
|
|
1382
|
+
tolerance: Optional[ScalarSchema26] = Field(None, title="scalar schema")
|
|
1383
|
+
"""
|
|
1384
|
+
tolerance used for symmetry calculation
|
|
1385
|
+
"""
|
|
1386
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
1387
|
+
|
|
1388
|
+
|
|
1389
|
+
class Name210(Enum):
|
|
1390
|
+
elemental_ratio = "elemental_ratio"
|
|
1391
|
+
|
|
1392
|
+
|
|
1393
|
+
class ElementalRatio25(BaseModel):
|
|
1394
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
1395
|
+
value: confloat(ge=0.0, le=1.0)
|
|
1396
|
+
element: Optional[str] = None
|
|
1397
|
+
"""
|
|
1398
|
+
the element this ratio is for
|
|
1399
|
+
"""
|
|
1400
|
+
|
|
1401
|
+
|
|
1402
|
+
class Name211(Enum):
|
|
1403
|
+
p_norm = "p-norm"
|
|
1404
|
+
|
|
1405
|
+
|
|
1406
|
+
class PNorm25(BaseModel):
|
|
1407
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
1408
|
+
degree: Optional[int] = None
|
|
1409
|
+
"""
|
|
1410
|
+
degree of the dimensionality of the norm
|
|
1411
|
+
"""
|
|
1412
|
+
value: float
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
class Name212(Enum):
|
|
1416
|
+
inchi = "inchi"
|
|
1417
|
+
|
|
1418
|
+
|
|
1419
|
+
class InChIRepresentationSchema25(BaseModel):
|
|
1420
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1421
|
+
value: str
|
|
1422
|
+
|
|
1423
|
+
|
|
1424
|
+
class Name213(Enum):
|
|
1425
|
+
inchi_key = "inchi_key"
|
|
1426
|
+
|
|
1427
|
+
|
|
1428
|
+
class InChIKeyRepresentationSchema25(BaseModel):
|
|
1429
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1430
|
+
value: str
|
|
1431
|
+
|
|
1432
|
+
|
|
1433
|
+
class DerivedPropertiesSchema25(
|
|
1434
|
+
RootModel[
|
|
1435
|
+
Union[
|
|
1436
|
+
VolumeSchema25,
|
|
1437
|
+
DensitySchema25,
|
|
1438
|
+
SymmetrySchema25,
|
|
1439
|
+
ElementalRatio25,
|
|
1440
|
+
PNorm25,
|
|
1441
|
+
InChIRepresentationSchema25,
|
|
1442
|
+
InChIKeyRepresentationSchema25,
|
|
1443
|
+
]
|
|
1444
|
+
]
|
|
1445
|
+
):
|
|
1446
|
+
root: Union[
|
|
1447
|
+
VolumeSchema25,
|
|
1448
|
+
DensitySchema25,
|
|
1449
|
+
SymmetrySchema25,
|
|
1450
|
+
ElementalRatio25,
|
|
1451
|
+
PNorm25,
|
|
1452
|
+
InChIRepresentationSchema25,
|
|
1453
|
+
InChIKeyRepresentationSchema25,
|
|
1454
|
+
] = Field(..., discriminator="name")
|
|
1455
|
+
|
|
1456
|
+
|
|
1457
|
+
class Name214(Enum):
|
|
1458
|
+
default = "default"
|
|
1459
|
+
atomsTooClose = "atomsTooClose"
|
|
1460
|
+
atomsOverlap = "atomsOverlap"
|
|
1461
|
+
|
|
1462
|
+
|
|
1463
|
+
class MaterialConsistencyCheckSchema25(BaseModel):
|
|
1464
|
+
name: Name214
|
|
1465
|
+
"""
|
|
1466
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
1467
|
+
"""
|
|
1468
|
+
key: str
|
|
1469
|
+
"""
|
|
1470
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
1471
|
+
"""
|
|
1472
|
+
severity: Severity
|
|
1473
|
+
"""
|
|
1474
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
1475
|
+
"""
|
|
1476
|
+
message: str
|
|
1477
|
+
"""
|
|
1478
|
+
Message generated by the consistency check describing the problem.
|
|
1479
|
+
"""
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
class CrystalSchema25(BaseModel):
|
|
1483
|
+
formula: Optional[str] = None
|
|
1484
|
+
"""
|
|
1485
|
+
reduced chemical formula
|
|
1486
|
+
"""
|
|
1487
|
+
unitCellFormula: Optional[str] = None
|
|
1488
|
+
"""
|
|
1489
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
1490
|
+
"""
|
|
1491
|
+
basis: BasisSchema26 = Field(..., title="basis schema")
|
|
1492
|
+
lattice: LatticeSchema25 = Field(..., title="lattice schema")
|
|
1493
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema25]] = Field(None, title="derived properties schema")
|
|
1494
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
1495
|
+
"""
|
|
1496
|
+
information about a database source
|
|
1497
|
+
"""
|
|
1498
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
1499
|
+
"""
|
|
1500
|
+
file source with the information inside
|
|
1501
|
+
"""
|
|
1502
|
+
scaledHash: Optional[str] = None
|
|
1503
|
+
"""
|
|
1504
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
1505
|
+
"""
|
|
1506
|
+
icsdId: Optional[int] = None
|
|
1507
|
+
"""
|
|
1508
|
+
Corresponding ICSD id of the material
|
|
1509
|
+
"""
|
|
1510
|
+
isNonPeriodic: Optional[bool] = None
|
|
1511
|
+
"""
|
|
1512
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
1513
|
+
"""
|
|
1514
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema25]] = None
|
|
1515
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
1516
|
+
"""
|
|
1517
|
+
entity identity
|
|
1518
|
+
"""
|
|
1519
|
+
slug: Optional[str] = None
|
|
1520
|
+
"""
|
|
1521
|
+
entity slug
|
|
1522
|
+
"""
|
|
1523
|
+
systemName: Optional[str] = None
|
|
1524
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
1525
|
+
"""
|
|
1526
|
+
entity's schema version. Used to distinct between different schemas.
|
|
1527
|
+
"""
|
|
1528
|
+
name: Optional[str] = None
|
|
1529
|
+
"""
|
|
1530
|
+
entity name
|
|
1531
|
+
"""
|
|
1532
|
+
isDefault: Optional[bool] = False
|
|
1533
|
+
"""
|
|
1534
|
+
Identifies that entity is defaultable
|
|
1535
|
+
"""
|
|
1536
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
1537
|
+
|
|
1538
|
+
|
|
1539
|
+
class ChemicalElement(Enum):
|
|
1540
|
+
H = "H"
|
|
1541
|
+
He = "He"
|
|
1542
|
+
Li = "Li"
|
|
1543
|
+
Be = "Be"
|
|
1544
|
+
B = "B"
|
|
1545
|
+
C = "C"
|
|
1546
|
+
N = "N"
|
|
1547
|
+
O = "O"
|
|
1548
|
+
F = "F"
|
|
1549
|
+
Ne = "Ne"
|
|
1550
|
+
Na = "Na"
|
|
1551
|
+
Mg = "Mg"
|
|
1552
|
+
Al = "Al"
|
|
1553
|
+
Si = "Si"
|
|
1554
|
+
P = "P"
|
|
1555
|
+
S = "S"
|
|
1556
|
+
Cl = "Cl"
|
|
1557
|
+
Ar = "Ar"
|
|
1558
|
+
K = "K"
|
|
1559
|
+
Ca = "Ca"
|
|
1560
|
+
Sc = "Sc"
|
|
1561
|
+
Ti = "Ti"
|
|
1562
|
+
V = "V"
|
|
1563
|
+
Cr = "Cr"
|
|
1564
|
+
Mn = "Mn"
|
|
1565
|
+
Fe = "Fe"
|
|
1566
|
+
Co = "Co"
|
|
1567
|
+
Ni = "Ni"
|
|
1568
|
+
Cu = "Cu"
|
|
1569
|
+
Zn = "Zn"
|
|
1570
|
+
Ga = "Ga"
|
|
1571
|
+
Ge = "Ge"
|
|
1572
|
+
As = "As"
|
|
1573
|
+
Se = "Se"
|
|
1574
|
+
Br = "Br"
|
|
1575
|
+
Kr = "Kr"
|
|
1576
|
+
Rb = "Rb"
|
|
1577
|
+
Sr = "Sr"
|
|
1578
|
+
Y = "Y"
|
|
1579
|
+
Zr = "Zr"
|
|
1580
|
+
Nb = "Nb"
|
|
1581
|
+
Mo = "Mo"
|
|
1582
|
+
Tc = "Tc"
|
|
1583
|
+
Ru = "Ru"
|
|
1584
|
+
Rh = "Rh"
|
|
1585
|
+
Pd = "Pd"
|
|
1586
|
+
Ag = "Ag"
|
|
1587
|
+
Cd = "Cd"
|
|
1588
|
+
In = "In"
|
|
1589
|
+
Sn = "Sn"
|
|
1590
|
+
Sb = "Sb"
|
|
1591
|
+
Te = "Te"
|
|
1592
|
+
I = "I"
|
|
1593
|
+
Xe = "Xe"
|
|
1594
|
+
Cs = "Cs"
|
|
1595
|
+
Ba = "Ba"
|
|
1596
|
+
La = "La"
|
|
1597
|
+
Ce = "Ce"
|
|
1598
|
+
Pr = "Pr"
|
|
1599
|
+
Nd = "Nd"
|
|
1600
|
+
Pm = "Pm"
|
|
1601
|
+
Sm = "Sm"
|
|
1602
|
+
Eu = "Eu"
|
|
1603
|
+
Gd = "Gd"
|
|
1604
|
+
Tb = "Tb"
|
|
1605
|
+
Dy = "Dy"
|
|
1606
|
+
Ho = "Ho"
|
|
1607
|
+
Er = "Er"
|
|
1608
|
+
Tm = "Tm"
|
|
1609
|
+
Yb = "Yb"
|
|
1610
|
+
Lu = "Lu"
|
|
1611
|
+
Hf = "Hf"
|
|
1612
|
+
Ta = "Ta"
|
|
1613
|
+
W = "W"
|
|
1614
|
+
Re = "Re"
|
|
1615
|
+
Os = "Os"
|
|
1616
|
+
Ir = "Ir"
|
|
1617
|
+
Pt = "Pt"
|
|
1618
|
+
Au = "Au"
|
|
1619
|
+
Hg = "Hg"
|
|
1620
|
+
Tl = "Tl"
|
|
1621
|
+
Pb = "Pb"
|
|
1622
|
+
Bi = "Bi"
|
|
1623
|
+
Po = "Po"
|
|
1624
|
+
At = "At"
|
|
1625
|
+
Rn = "Rn"
|
|
1626
|
+
Fr = "Fr"
|
|
1627
|
+
Ra = "Ra"
|
|
1628
|
+
Ac = "Ac"
|
|
1629
|
+
Th = "Th"
|
|
1630
|
+
Pa = "Pa"
|
|
1631
|
+
U = "U"
|
|
1632
|
+
Np = "Np"
|
|
1633
|
+
Pu = "Pu"
|
|
1634
|
+
Am = "Am"
|
|
1635
|
+
Cm = "Cm"
|
|
1636
|
+
Bk = "Bk"
|
|
1637
|
+
Cf = "Cf"
|
|
1638
|
+
Es = "Es"
|
|
1639
|
+
Fm = "Fm"
|
|
1640
|
+
Md = "Md"
|
|
1641
|
+
No = "No"
|
|
1642
|
+
Lr = "Lr"
|
|
1643
|
+
Rf = "Rf"
|
|
1644
|
+
Db = "Db"
|
|
1645
|
+
Sg = "Sg"
|
|
1646
|
+
Bh = "Bh"
|
|
1647
|
+
Hs = "Hs"
|
|
1648
|
+
Mt = "Mt"
|
|
1649
|
+
Ds = "Ds"
|
|
1650
|
+
Rg = "Rg"
|
|
1651
|
+
Cn = "Cn"
|
|
1652
|
+
Nh = "Nh"
|
|
1653
|
+
Fl = "Fl"
|
|
1654
|
+
Mc = "Mc"
|
|
1655
|
+
Lv = "Lv"
|
|
1656
|
+
Ts = "Ts"
|
|
1657
|
+
Og = "Og"
|
|
1658
|
+
|
|
1659
|
+
|
|
1660
|
+
class AtomSchema(BaseModel):
|
|
1661
|
+
chemical_element: ChemicalElement
|
|
1662
|
+
|
|
1663
|
+
|
|
1664
|
+
class ChemicalElement2(Enum):
|
|
1665
|
+
X = "X"
|
|
1666
|
+
Vac = "Vac"
|
|
1667
|
+
|
|
1668
|
+
|
|
1669
|
+
class VacancySchema(BaseModel):
|
|
1670
|
+
chemical_element: Optional[ChemicalElement2] = "Vac"
|
|
1671
|
+
"""
|
|
1672
|
+
Extra elements, used for convenience purposed
|
|
1673
|
+
"""
|
|
1674
|
+
|
|
1675
|
+
|
|
1676
|
+
class PointDefectSiteSchema(BaseModel):
|
|
1677
|
+
crystal: CrystalSchema25 = Field(..., title="Crystal Schema")
|
|
1678
|
+
"""
|
|
1679
|
+
A crystal structure, referencing the base material schema
|
|
1680
|
+
"""
|
|
1681
|
+
coordinate: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
1682
|
+
element: Union[AtomSchema, VacancySchema]
|
|
1683
|
+
|
|
1684
|
+
|
|
1685
|
+
class Value60(Enum):
|
|
1686
|
+
H = "H"
|
|
1687
|
+
He = "He"
|
|
1688
|
+
Li = "Li"
|
|
1689
|
+
Be = "Be"
|
|
1690
|
+
B = "B"
|
|
1691
|
+
C = "C"
|
|
1692
|
+
N = "N"
|
|
1693
|
+
O = "O"
|
|
1694
|
+
F = "F"
|
|
1695
|
+
Ne = "Ne"
|
|
1696
|
+
Na = "Na"
|
|
1697
|
+
Mg = "Mg"
|
|
1698
|
+
Al = "Al"
|
|
1699
|
+
Si = "Si"
|
|
1700
|
+
P = "P"
|
|
1701
|
+
S = "S"
|
|
1702
|
+
Cl = "Cl"
|
|
1703
|
+
Ar = "Ar"
|
|
1704
|
+
K = "K"
|
|
1705
|
+
Ca = "Ca"
|
|
1706
|
+
Sc = "Sc"
|
|
1707
|
+
Ti = "Ti"
|
|
1708
|
+
V = "V"
|
|
1709
|
+
Cr = "Cr"
|
|
1710
|
+
Mn = "Mn"
|
|
1711
|
+
Fe = "Fe"
|
|
1712
|
+
Co = "Co"
|
|
1713
|
+
Ni = "Ni"
|
|
1714
|
+
Cu = "Cu"
|
|
1715
|
+
Zn = "Zn"
|
|
1716
|
+
Ga = "Ga"
|
|
1717
|
+
Ge = "Ge"
|
|
1718
|
+
As = "As"
|
|
1719
|
+
Se = "Se"
|
|
1720
|
+
Br = "Br"
|
|
1721
|
+
Kr = "Kr"
|
|
1722
|
+
Rb = "Rb"
|
|
1723
|
+
Sr = "Sr"
|
|
1724
|
+
Y = "Y"
|
|
1725
|
+
Zr = "Zr"
|
|
1726
|
+
Nb = "Nb"
|
|
1727
|
+
Mo = "Mo"
|
|
1728
|
+
Tc = "Tc"
|
|
1729
|
+
Ru = "Ru"
|
|
1730
|
+
Rh = "Rh"
|
|
1731
|
+
Pd = "Pd"
|
|
1732
|
+
Ag = "Ag"
|
|
1733
|
+
Cd = "Cd"
|
|
1734
|
+
In = "In"
|
|
1735
|
+
Sn = "Sn"
|
|
1736
|
+
Sb = "Sb"
|
|
1737
|
+
Te = "Te"
|
|
1738
|
+
I = "I"
|
|
1739
|
+
Xe = "Xe"
|
|
1740
|
+
Cs = "Cs"
|
|
1741
|
+
Ba = "Ba"
|
|
1742
|
+
La = "La"
|
|
1743
|
+
Ce = "Ce"
|
|
1744
|
+
Pr = "Pr"
|
|
1745
|
+
Nd = "Nd"
|
|
1746
|
+
Pm = "Pm"
|
|
1747
|
+
Sm = "Sm"
|
|
1748
|
+
Eu = "Eu"
|
|
1749
|
+
Gd = "Gd"
|
|
1750
|
+
Tb = "Tb"
|
|
1751
|
+
Dy = "Dy"
|
|
1752
|
+
Ho = "Ho"
|
|
1753
|
+
Er = "Er"
|
|
1754
|
+
Tm = "Tm"
|
|
1755
|
+
Yb = "Yb"
|
|
1756
|
+
Lu = "Lu"
|
|
1757
|
+
Hf = "Hf"
|
|
1758
|
+
Ta = "Ta"
|
|
1759
|
+
W = "W"
|
|
1760
|
+
Re = "Re"
|
|
1761
|
+
Os = "Os"
|
|
1762
|
+
Ir = "Ir"
|
|
1763
|
+
Pt = "Pt"
|
|
1764
|
+
Au = "Au"
|
|
1765
|
+
Hg = "Hg"
|
|
1766
|
+
Tl = "Tl"
|
|
1767
|
+
Pb = "Pb"
|
|
1768
|
+
Bi = "Bi"
|
|
1769
|
+
Po = "Po"
|
|
1770
|
+
At = "At"
|
|
1771
|
+
Rn = "Rn"
|
|
1772
|
+
Fr = "Fr"
|
|
1773
|
+
Ra = "Ra"
|
|
1774
|
+
Ac = "Ac"
|
|
1775
|
+
Th = "Th"
|
|
1776
|
+
Pa = "Pa"
|
|
1777
|
+
U = "U"
|
|
1778
|
+
Np = "Np"
|
|
1779
|
+
Pu = "Pu"
|
|
1780
|
+
Am = "Am"
|
|
1781
|
+
Cm = "Cm"
|
|
1782
|
+
Bk = "Bk"
|
|
1783
|
+
Cf = "Cf"
|
|
1784
|
+
Es = "Es"
|
|
1785
|
+
Fm = "Fm"
|
|
1786
|
+
Md = "Md"
|
|
1787
|
+
No = "No"
|
|
1788
|
+
Lr = "Lr"
|
|
1789
|
+
Rf = "Rf"
|
|
1790
|
+
Db = "Db"
|
|
1791
|
+
Sg = "Sg"
|
|
1792
|
+
Bh = "Bh"
|
|
1793
|
+
Hs = "Hs"
|
|
1794
|
+
Mt = "Mt"
|
|
1795
|
+
Ds = "Ds"
|
|
1796
|
+
Rg = "Rg"
|
|
1797
|
+
Cn = "Cn"
|
|
1798
|
+
Nh = "Nh"
|
|
1799
|
+
Fl = "Fl"
|
|
1800
|
+
Mc = "Mc"
|
|
1801
|
+
Lv = "Lv"
|
|
1802
|
+
Ts = "Ts"
|
|
1803
|
+
Og = "Og"
|
|
1804
|
+
|
|
1805
|
+
|
|
1806
|
+
class Value61(Enum):
|
|
1807
|
+
X = "X"
|
|
1808
|
+
Vac = "Vac"
|
|
1809
|
+
|
|
1810
|
+
|
|
1811
|
+
class AtomicElementSchema29(BaseModel):
|
|
1812
|
+
value: Union[Value60, Value61]
|
|
1813
|
+
"""
|
|
1814
|
+
All elements, including extra elements
|
|
1815
|
+
"""
|
|
1816
|
+
id: int
|
|
1817
|
+
"""
|
|
1818
|
+
integer id of this entry
|
|
1819
|
+
"""
|
|
1820
|
+
|
|
1821
|
+
|
|
1822
|
+
class BasisSchema27(BaseModel):
|
|
1823
|
+
elements: List[AtomicElementSchema29] = Field(..., title="atomic elements schema")
|
|
1824
|
+
"""
|
|
1825
|
+
atomic elements schema
|
|
1826
|
+
"""
|
|
1827
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
1828
|
+
"""
|
|
1829
|
+
atomic coordinates schema
|
|
1830
|
+
"""
|
|
1831
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
1832
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
1833
|
+
"""
|
|
1834
|
+
atomic labels schema
|
|
1835
|
+
"""
|
|
1836
|
+
|
|
1837
|
+
|
|
1838
|
+
class LatticeVectorsSchema26(BaseModel):
|
|
1839
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1840
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1841
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
1842
|
+
alat: Optional[float] = 1
|
|
1843
|
+
"""
|
|
1844
|
+
lattice parameter for fractional coordinates
|
|
1845
|
+
"""
|
|
1846
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
1847
|
+
|
|
1848
|
+
|
|
1849
|
+
class LatticeUnitsSchema26(BaseModel):
|
|
1850
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
1851
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
1852
|
+
|
|
1853
|
+
|
|
1854
|
+
class LatticeSchema26(BaseModel):
|
|
1855
|
+
a: float
|
|
1856
|
+
"""
|
|
1857
|
+
length of the first lattice vector
|
|
1858
|
+
"""
|
|
1859
|
+
b: float
|
|
1860
|
+
"""
|
|
1861
|
+
length of the second lattice vector
|
|
1862
|
+
"""
|
|
1863
|
+
c: float
|
|
1864
|
+
"""
|
|
1865
|
+
length of the third lattice vector
|
|
1866
|
+
"""
|
|
1867
|
+
alpha: float
|
|
1868
|
+
"""
|
|
1869
|
+
angle between first and second lattice vector
|
|
1870
|
+
"""
|
|
1871
|
+
beta: float
|
|
1872
|
+
"""
|
|
1873
|
+
angle between second and third lattice vector
|
|
1874
|
+
"""
|
|
1875
|
+
gamma: float
|
|
1876
|
+
"""
|
|
1877
|
+
angle between first and third lattice vector
|
|
1878
|
+
"""
|
|
1879
|
+
vectors: Optional[LatticeVectorsSchema26] = Field(None, title="lattice vectors schema")
|
|
1880
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
1881
|
+
units: Optional[LatticeUnitsSchema26] = Field(
|
|
1882
|
+
default_factory=lambda: LatticeUnitsSchema26.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
1883
|
+
title="Lattice units schema",
|
|
1884
|
+
)
|
|
1885
|
+
|
|
1886
|
+
|
|
1887
|
+
class Name215(Enum):
|
|
1888
|
+
volume = "volume"
|
|
1889
|
+
|
|
1890
|
+
|
|
1891
|
+
class Units87(Enum):
|
|
1892
|
+
angstrom_3 = "angstrom^3"
|
|
1893
|
+
|
|
1894
|
+
|
|
1895
|
+
class VolumeSchema26(BaseModel):
|
|
1896
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
1897
|
+
units: Optional[Units87] = None
|
|
1898
|
+
value: float
|
|
1899
|
+
|
|
1900
|
+
|
|
1901
|
+
class Name216(Enum):
|
|
1902
|
+
density = "density"
|
|
1903
|
+
|
|
1904
|
+
|
|
1905
|
+
class Units88(Enum):
|
|
1906
|
+
g_cm_3 = "g/cm^3"
|
|
1907
|
+
|
|
1908
|
+
|
|
1909
|
+
class DensitySchema26(BaseModel):
|
|
1910
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
1911
|
+
units: Optional[Units88] = None
|
|
1912
|
+
value: float
|
|
1913
|
+
|
|
1914
|
+
|
|
1915
|
+
class Units89(Enum):
|
|
1916
|
+
angstrom = "angstrom"
|
|
1917
|
+
|
|
1918
|
+
|
|
1919
|
+
class ScalarSchema27(BaseModel):
|
|
1920
|
+
units: Optional[Units89] = None
|
|
1921
|
+
value: float
|
|
1922
|
+
|
|
1923
|
+
|
|
1924
|
+
class Name217(Enum):
|
|
1925
|
+
symmetry = "symmetry"
|
|
1926
|
+
|
|
1927
|
+
|
|
1928
|
+
class SymmetrySchema26(BaseModel):
|
|
1929
|
+
pointGroupSymbol: Optional[str] = None
|
|
1930
|
+
"""
|
|
1931
|
+
point group symbol in Schoenflies notation
|
|
1932
|
+
"""
|
|
1933
|
+
spaceGroupSymbol: Optional[str] = None
|
|
1934
|
+
"""
|
|
1935
|
+
space group symbol in Hermann–Mauguin notation
|
|
1936
|
+
"""
|
|
1937
|
+
tolerance: Optional[ScalarSchema27] = Field(None, title="scalar schema")
|
|
1938
|
+
"""
|
|
1939
|
+
tolerance used for symmetry calculation
|
|
1940
|
+
"""
|
|
1941
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
1942
|
+
|
|
1943
|
+
|
|
1944
|
+
class Name218(Enum):
|
|
1945
|
+
elemental_ratio = "elemental_ratio"
|
|
1946
|
+
|
|
1947
|
+
|
|
1948
|
+
class ElementalRatio26(BaseModel):
|
|
1949
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
1950
|
+
value: confloat(ge=0.0, le=1.0)
|
|
1951
|
+
element: Optional[str] = None
|
|
1952
|
+
"""
|
|
1953
|
+
the element this ratio is for
|
|
1954
|
+
"""
|
|
1955
|
+
|
|
1956
|
+
|
|
1957
|
+
class Name219(Enum):
|
|
1958
|
+
p_norm = "p-norm"
|
|
1959
|
+
|
|
1960
|
+
|
|
1961
|
+
class PNorm26(BaseModel):
|
|
1962
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
1963
|
+
degree: Optional[int] = None
|
|
1964
|
+
"""
|
|
1965
|
+
degree of the dimensionality of the norm
|
|
1966
|
+
"""
|
|
1967
|
+
value: float
|
|
1968
|
+
|
|
1969
|
+
|
|
1970
|
+
class Name220(Enum):
|
|
1971
|
+
inchi = "inchi"
|
|
1972
|
+
|
|
1973
|
+
|
|
1974
|
+
class InChIRepresentationSchema26(BaseModel):
|
|
1975
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
1976
|
+
value: str
|
|
1977
|
+
|
|
1978
|
+
|
|
1979
|
+
class Name221(Enum):
|
|
1980
|
+
inchi_key = "inchi_key"
|
|
1981
|
+
|
|
1982
|
+
|
|
1983
|
+
class InChIKeyRepresentationSchema26(BaseModel):
|
|
1984
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
1985
|
+
value: str
|
|
1986
|
+
|
|
1987
|
+
|
|
1988
|
+
class DerivedPropertiesSchema26(
|
|
1989
|
+
RootModel[
|
|
1990
|
+
Union[
|
|
1991
|
+
VolumeSchema26,
|
|
1992
|
+
DensitySchema26,
|
|
1993
|
+
SymmetrySchema26,
|
|
1994
|
+
ElementalRatio26,
|
|
1995
|
+
PNorm26,
|
|
1996
|
+
InChIRepresentationSchema26,
|
|
1997
|
+
InChIKeyRepresentationSchema26,
|
|
1998
|
+
]
|
|
1999
|
+
]
|
|
2000
|
+
):
|
|
2001
|
+
root: Union[
|
|
2002
|
+
VolumeSchema26,
|
|
2003
|
+
DensitySchema26,
|
|
2004
|
+
SymmetrySchema26,
|
|
2005
|
+
ElementalRatio26,
|
|
2006
|
+
PNorm26,
|
|
2007
|
+
InChIRepresentationSchema26,
|
|
2008
|
+
InChIKeyRepresentationSchema26,
|
|
2009
|
+
] = Field(..., discriminator="name")
|
|
2010
|
+
|
|
2011
|
+
|
|
2012
|
+
class Name222(Enum):
|
|
2013
|
+
default = "default"
|
|
2014
|
+
atomsTooClose = "atomsTooClose"
|
|
2015
|
+
atomsOverlap = "atomsOverlap"
|
|
2016
|
+
|
|
2017
|
+
|
|
2018
|
+
class MaterialConsistencyCheckSchema26(BaseModel):
|
|
2019
|
+
name: Name222
|
|
2020
|
+
"""
|
|
2021
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
2022
|
+
"""
|
|
2023
|
+
key: str
|
|
2024
|
+
"""
|
|
2025
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
2026
|
+
"""
|
|
2027
|
+
severity: Severity
|
|
2028
|
+
"""
|
|
2029
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
2030
|
+
"""
|
|
2031
|
+
message: str
|
|
2032
|
+
"""
|
|
2033
|
+
Message generated by the consistency check describing the problem.
|
|
2034
|
+
"""
|
|
2035
|
+
|
|
2036
|
+
|
|
2037
|
+
class CrystalSchema26(BaseModel):
|
|
2038
|
+
formula: Optional[str] = None
|
|
2039
|
+
"""
|
|
2040
|
+
reduced chemical formula
|
|
2041
|
+
"""
|
|
2042
|
+
unitCellFormula: Optional[str] = None
|
|
2043
|
+
"""
|
|
2044
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
2045
|
+
"""
|
|
2046
|
+
basis: BasisSchema27 = Field(..., title="basis schema")
|
|
2047
|
+
lattice: LatticeSchema26 = Field(..., title="lattice schema")
|
|
2048
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema26]] = Field(None, title="derived properties schema")
|
|
2049
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
2050
|
+
"""
|
|
2051
|
+
information about a database source
|
|
2052
|
+
"""
|
|
2053
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
2054
|
+
"""
|
|
2055
|
+
file source with the information inside
|
|
2056
|
+
"""
|
|
2057
|
+
scaledHash: Optional[str] = None
|
|
2058
|
+
"""
|
|
2059
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
2060
|
+
"""
|
|
2061
|
+
icsdId: Optional[int] = None
|
|
2062
|
+
"""
|
|
2063
|
+
Corresponding ICSD id of the material
|
|
2064
|
+
"""
|
|
2065
|
+
isNonPeriodic: Optional[bool] = None
|
|
2066
|
+
"""
|
|
2067
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
2068
|
+
"""
|
|
2069
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema26]] = None
|
|
2070
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
2071
|
+
"""
|
|
2072
|
+
entity identity
|
|
2073
|
+
"""
|
|
2074
|
+
slug: Optional[str] = None
|
|
2075
|
+
"""
|
|
2076
|
+
entity slug
|
|
2077
|
+
"""
|
|
2078
|
+
systemName: Optional[str] = None
|
|
2079
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
2080
|
+
"""
|
|
2081
|
+
entity's schema version. Used to distinct between different schemas.
|
|
2082
|
+
"""
|
|
2083
|
+
name: Optional[str] = None
|
|
2084
|
+
"""
|
|
2085
|
+
entity name
|
|
2086
|
+
"""
|
|
2087
|
+
isDefault: Optional[bool] = False
|
|
2088
|
+
"""
|
|
2089
|
+
Identifies that entity is defaultable
|
|
2090
|
+
"""
|
|
2091
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
2092
|
+
|
|
2093
|
+
|
|
2094
|
+
class VacuumConfigurationSchema11(BaseModel):
|
|
2095
|
+
direction: AxisEnum = Field(..., title="Axis Enum")
|
|
2096
|
+
"""
|
|
2097
|
+
Enum for axis types
|
|
2098
|
+
"""
|
|
2099
|
+
size: Optional[confloat(ge=0.0)] = 10
|
|
2100
|
+
"""
|
|
2101
|
+
Size of the vacuum slab in angstroms
|
|
2102
|
+
"""
|
|
2103
|
+
crystal: CrystalSchema26 = Field(..., title="Crystal Schema")
|
|
2104
|
+
"""
|
|
2105
|
+
A crystal structure, referencing the base material schema
|
|
2106
|
+
"""
|
|
2107
|
+
|
|
2108
|
+
|
|
2109
|
+
class AdatomDefectConfigurationSchema(BaseModel):
|
|
2110
|
+
stack_components: List[Union[SlabConfigurationSchema, PointDefectSiteSchema, VacuumConfigurationSchema11]] = Field(
|
|
2111
|
+
..., max_length=3, min_length=3
|
|
2112
|
+
)
|
|
2113
|
+
direction: Optional[AxisEnum] = Field("z", title="Axis Enum")
|
|
2114
|
+
"""
|
|
2115
|
+
Enum for axis types
|
|
2116
|
+
"""
|