mat3ra-esse 2025.7.15.post0__py3-none-any.whl → 2025.8.6.post0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mat3ra-esse might be problematic. Click here for more details.
- mat3ra/esse/data/examples.py +1 -1
- mat3ra/esse/data/schemas.py +1 -1
- mat3ra/esse/models/apse/file/applications/espresso/7.2/pw_x.py +6 -6
- mat3ra/esse/models/core/abstract/vector_2d.py +13 -0
- mat3ra/esse/models/core/primitive/array_of_2_numbers.py +13 -0
- mat3ra/esse/models/core/reusable/energy.py +2 -2
- mat3ra/esse/models/element.py +6 -6
- mat3ra/esse/models/material/__init__.py +14 -14
- mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/__init__.py +3 -0
- mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +4269 -0
- mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +4273 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +2132 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/base_configuration.py +1561 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +4269 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +2908 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +2912 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/__init__.py +3 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/base_configuration.py +544 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +1099 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +1099 -0
- mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +556 -0
- mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +14 -14
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +1598 -0
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +1160 -0
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +88 -92
- mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +1159 -0
- mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/__init__.py +3 -0
- mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +1232 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/one_dimensional/__init__.py +3 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/one_dimensional/miller_indices_2d.py +16 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +527 -2
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +676 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +555 -0
- mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_site.py +1576 -0
- mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/core/zero_dimensional/vacancy.py +22 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/__init__.py +3 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_base.py +541 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +545 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +708 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +541 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/{repetitions.py → three_dimensional/repetitions.py} +1 -1
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +14 -14
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers.py +4 -4
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique.py +4 -4
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/atomic_layers_unique_repeated.py +4 -4
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +18 -18
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +1577 -0
- mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_unit_cell.py +74 -77
- mat3ra/esse/models/materials_category_components/operations/core/combinations/enums.py +13 -0
- mat3ra/esse/models/materials_category_components/operations/core/combinations/merge.py +9 -981
- mat3ra/esse/models/materials_category_components/operations/core/combinations/stack.py +8 -940
- mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +538 -0
- mat3ra/esse/models/properties_directory/derived_properties.py +11 -11
- mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
- mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
- mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
- mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
- mat3ra/esse/models/properties_directory/structural/basis/__init__.py +2 -2
- mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +4 -4
- mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/METADATA +1 -1
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/RECORD +85 -45
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/WHEEL +0 -0
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/licenses/LICENSE.md +0 -0
- {mat3ra_esse-2025.7.15.post0.dist-info → mat3ra_esse-2025.8.6.post0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,541 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.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
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Value(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 Value109(Enum):
|
|
135
|
+
X = "X"
|
|
136
|
+
Vac = "Vac"
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class AtomicElementSchema(BaseModel):
|
|
140
|
+
value: Union[Value, Value109]
|
|
141
|
+
"""
|
|
142
|
+
All elements, including extra elements
|
|
143
|
+
"""
|
|
144
|
+
id: int
|
|
145
|
+
"""
|
|
146
|
+
integer id of this entry
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
class AtomicCoordinateSchema(BaseModel):
|
|
151
|
+
value: List[float] = Field(..., max_length=3, min_length=3, title="coordinate 3d schema")
|
|
152
|
+
"""
|
|
153
|
+
value of this entry
|
|
154
|
+
"""
|
|
155
|
+
id: int
|
|
156
|
+
"""
|
|
157
|
+
integer id of this entry
|
|
158
|
+
"""
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
class BasisUnitsEnum(Enum):
|
|
162
|
+
crystal = "crystal"
|
|
163
|
+
cartesian = "cartesian"
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class AtomicLabelSchema(BaseModel):
|
|
167
|
+
value: Union[Union[int, str, float], conint(ge=1, le=9)]
|
|
168
|
+
"""
|
|
169
|
+
value of this entry
|
|
170
|
+
"""
|
|
171
|
+
id: int
|
|
172
|
+
"""
|
|
173
|
+
integer id of this entry
|
|
174
|
+
"""
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
class BasisSchema(BaseModel):
|
|
178
|
+
elements: List[AtomicElementSchema] = Field(..., title="atomic elements schema")
|
|
179
|
+
"""
|
|
180
|
+
atomic elements schema
|
|
181
|
+
"""
|
|
182
|
+
coordinates: List[AtomicCoordinateSchema] = Field(..., title="atomic coordinates schema")
|
|
183
|
+
"""
|
|
184
|
+
atomic coordinates schema
|
|
185
|
+
"""
|
|
186
|
+
units: Optional[BasisUnitsEnum] = Field("crystal", title="basis units enum")
|
|
187
|
+
labels: Optional[List[AtomicLabelSchema]] = Field(None, title="atomic labels schema")
|
|
188
|
+
"""
|
|
189
|
+
atomic labels schema
|
|
190
|
+
"""
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
class LatticeVectorsUnitsEnum(Enum):
|
|
194
|
+
angstrom = "angstrom"
|
|
195
|
+
bohr = "bohr"
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
class LatticeVectorsSchema(BaseModel):
|
|
199
|
+
a: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
200
|
+
b: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
201
|
+
c: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
|
|
202
|
+
alat: Optional[float] = 1
|
|
203
|
+
"""
|
|
204
|
+
lattice parameter for fractional coordinates
|
|
205
|
+
"""
|
|
206
|
+
units: Optional[LatticeVectorsUnitsEnum] = Field("angstrom", title="lattice vectors units enum")
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
class LatticeTypeEnum(Enum):
|
|
210
|
+
CUB = "CUB"
|
|
211
|
+
BCC = "BCC"
|
|
212
|
+
FCC = "FCC"
|
|
213
|
+
TET = "TET"
|
|
214
|
+
MCL = "MCL"
|
|
215
|
+
ORC = "ORC"
|
|
216
|
+
ORCC = "ORCC"
|
|
217
|
+
ORCF = "ORCF"
|
|
218
|
+
ORCI = "ORCI"
|
|
219
|
+
HEX = "HEX"
|
|
220
|
+
BCT = "BCT"
|
|
221
|
+
TRI = "TRI"
|
|
222
|
+
MCLC = "MCLC"
|
|
223
|
+
RHL = "RHL"
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
class LatticeUnitsLengthEnum(Enum):
|
|
227
|
+
angstrom = "angstrom"
|
|
228
|
+
bohr = "bohr"
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
class LatticeUnitsAngleEnum(Enum):
|
|
232
|
+
degree = "degree"
|
|
233
|
+
radian = "radian"
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
class LatticeUnitsSchema(BaseModel):
|
|
237
|
+
length: Optional[LatticeUnitsLengthEnum] = Field("angstrom", title="lattice units length enum")
|
|
238
|
+
angle: Optional[LatticeUnitsAngleEnum] = Field("degree", title="lattice units angle enum")
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
class LatticeSchema(BaseModel):
|
|
242
|
+
a: float
|
|
243
|
+
"""
|
|
244
|
+
length of the first lattice vector
|
|
245
|
+
"""
|
|
246
|
+
b: float
|
|
247
|
+
"""
|
|
248
|
+
length of the second lattice vector
|
|
249
|
+
"""
|
|
250
|
+
c: float
|
|
251
|
+
"""
|
|
252
|
+
length of the third lattice vector
|
|
253
|
+
"""
|
|
254
|
+
alpha: float
|
|
255
|
+
"""
|
|
256
|
+
angle between first and second lattice vector
|
|
257
|
+
"""
|
|
258
|
+
beta: float
|
|
259
|
+
"""
|
|
260
|
+
angle between second and third lattice vector
|
|
261
|
+
"""
|
|
262
|
+
gamma: float
|
|
263
|
+
"""
|
|
264
|
+
angle between first and third lattice vector
|
|
265
|
+
"""
|
|
266
|
+
vectors: Optional[LatticeVectorsSchema] = Field(None, title="lattice vectors schema")
|
|
267
|
+
type: Optional[LatticeTypeEnum] = Field("TRI", title="lattice type enum")
|
|
268
|
+
units: Optional[LatticeUnitsSchema] = Field(
|
|
269
|
+
default_factory=lambda: LatticeUnitsSchema.model_validate({"length": "angstrom", "angle": "degree"}),
|
|
270
|
+
title="Lattice units schema",
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
class Name(Enum):
|
|
275
|
+
volume = "volume"
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
class Units(Enum):
|
|
279
|
+
angstrom_3 = "angstrom^3"
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
class VolumeSchema(BaseModel):
|
|
283
|
+
name: Literal["0#-datamodel-code-generator-#-object-#-special-#"]
|
|
284
|
+
units: Optional[Units] = None
|
|
285
|
+
value: float
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
class Name409(Enum):
|
|
289
|
+
density = "density"
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
class Units160(Enum):
|
|
293
|
+
g_cm_3 = "g/cm^3"
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
class DensitySchema(BaseModel):
|
|
297
|
+
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
298
|
+
units: Optional[Units160] = None
|
|
299
|
+
value: float
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
class Units161(Enum):
|
|
303
|
+
angstrom = "angstrom"
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
class ScalarSchema(BaseModel):
|
|
307
|
+
units: Optional[Units161] = None
|
|
308
|
+
value: float
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
class Name410(Enum):
|
|
312
|
+
symmetry = "symmetry"
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
class SymmetrySchema(BaseModel):
|
|
316
|
+
pointGroupSymbol: Optional[str] = None
|
|
317
|
+
"""
|
|
318
|
+
point group symbol in Schoenflies notation
|
|
319
|
+
"""
|
|
320
|
+
spaceGroupSymbol: Optional[str] = None
|
|
321
|
+
"""
|
|
322
|
+
space group symbol in Hermann–Mauguin notation
|
|
323
|
+
"""
|
|
324
|
+
tolerance: Optional[ScalarSchema] = Field(None, title="scalar schema")
|
|
325
|
+
"""
|
|
326
|
+
tolerance used for symmetry calculation
|
|
327
|
+
"""
|
|
328
|
+
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
class Name411(Enum):
|
|
332
|
+
elemental_ratio = "elemental_ratio"
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
class ElementalRatio(BaseModel):
|
|
336
|
+
name: Literal["3#-datamodel-code-generator-#-object-#-special-#"]
|
|
337
|
+
value: confloat(ge=0.0, le=1.0)
|
|
338
|
+
element: Optional[str] = None
|
|
339
|
+
"""
|
|
340
|
+
the element this ratio is for
|
|
341
|
+
"""
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
class Name412(Enum):
|
|
345
|
+
p_norm = "p-norm"
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
class PNorm(BaseModel):
|
|
349
|
+
name: Literal["4#-datamodel-code-generator-#-object-#-special-#"]
|
|
350
|
+
degree: Optional[int] = None
|
|
351
|
+
"""
|
|
352
|
+
degree of the dimensionality of the norm
|
|
353
|
+
"""
|
|
354
|
+
value: float
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
class Name413(Enum):
|
|
358
|
+
inchi = "inchi"
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
class InChIRepresentationSchema(BaseModel):
|
|
362
|
+
name: Literal["5#-datamodel-code-generator-#-object-#-special-#"]
|
|
363
|
+
value: str
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
class Name414(Enum):
|
|
367
|
+
inchi_key = "inchi_key"
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
class InChIKeyRepresentationSchema(BaseModel):
|
|
371
|
+
name: Literal["6#-datamodel-code-generator-#-object-#-special-#"]
|
|
372
|
+
value: str
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
class DerivedPropertiesSchema(
|
|
376
|
+
RootModel[
|
|
377
|
+
Union[
|
|
378
|
+
VolumeSchema,
|
|
379
|
+
DensitySchema,
|
|
380
|
+
SymmetrySchema,
|
|
381
|
+
ElementalRatio,
|
|
382
|
+
PNorm,
|
|
383
|
+
InChIRepresentationSchema,
|
|
384
|
+
InChIKeyRepresentationSchema,
|
|
385
|
+
]
|
|
386
|
+
]
|
|
387
|
+
):
|
|
388
|
+
root: Union[
|
|
389
|
+
VolumeSchema,
|
|
390
|
+
DensitySchema,
|
|
391
|
+
SymmetrySchema,
|
|
392
|
+
ElementalRatio,
|
|
393
|
+
PNorm,
|
|
394
|
+
InChIRepresentationSchema,
|
|
395
|
+
InChIKeyRepresentationSchema,
|
|
396
|
+
] = Field(..., discriminator="name")
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
class DatabaseSourceSchema(BaseModel):
|
|
400
|
+
id: Union[str, float]
|
|
401
|
+
"""
|
|
402
|
+
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
|
|
403
|
+
"""
|
|
404
|
+
source: str
|
|
405
|
+
"""
|
|
406
|
+
Third party source name, e.g. materials project, 2dmatpedia, ICSD, etc.
|
|
407
|
+
"""
|
|
408
|
+
origin: bool
|
|
409
|
+
"""
|
|
410
|
+
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).
|
|
411
|
+
"""
|
|
412
|
+
data: Optional[Dict[str, Any]] = None
|
|
413
|
+
"""
|
|
414
|
+
Original response from external source.
|
|
415
|
+
"""
|
|
416
|
+
doi: Optional[str] = None
|
|
417
|
+
"""
|
|
418
|
+
Digital Object Identifier, e.g. 10.1088/0953-8984/25/10/105506
|
|
419
|
+
"""
|
|
420
|
+
url: Optional[str] = None
|
|
421
|
+
"""
|
|
422
|
+
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
|
|
423
|
+
"""
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
class FileSourceSchema(BaseModel):
|
|
427
|
+
extension: Optional[str] = None
|
|
428
|
+
"""
|
|
429
|
+
file extension
|
|
430
|
+
"""
|
|
431
|
+
filename: str
|
|
432
|
+
"""
|
|
433
|
+
file name without extension
|
|
434
|
+
"""
|
|
435
|
+
text: str
|
|
436
|
+
"""
|
|
437
|
+
file content as raw text
|
|
438
|
+
"""
|
|
439
|
+
hash: str
|
|
440
|
+
"""
|
|
441
|
+
MD5 hash based on file content
|
|
442
|
+
"""
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
class Name415(Enum):
|
|
446
|
+
default = "default"
|
|
447
|
+
atomsTooClose = "atomsTooClose"
|
|
448
|
+
atomsOverlap = "atomsOverlap"
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
class Severity(Enum):
|
|
452
|
+
info = "info"
|
|
453
|
+
warning = "warning"
|
|
454
|
+
error = "error"
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
class MaterialConsistencyCheckSchema(BaseModel):
|
|
458
|
+
name: Name415
|
|
459
|
+
"""
|
|
460
|
+
Name of the consistency check that is performed, which is listed in an enum.
|
|
461
|
+
"""
|
|
462
|
+
key: str
|
|
463
|
+
"""
|
|
464
|
+
Key of the property of the entity on which the consistency check is performed in Mongo dot notation, e.g. 'basis.coordinates.1'
|
|
465
|
+
"""
|
|
466
|
+
severity: Severity
|
|
467
|
+
"""
|
|
468
|
+
Severity level of the problem, which is used in UI to differentiate.
|
|
469
|
+
"""
|
|
470
|
+
message: str
|
|
471
|
+
"""
|
|
472
|
+
Message generated by the consistency check describing the problem.
|
|
473
|
+
"""
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
class CrystalSchema(BaseModel):
|
|
477
|
+
formula: Optional[str] = None
|
|
478
|
+
"""
|
|
479
|
+
reduced chemical formula
|
|
480
|
+
"""
|
|
481
|
+
unitCellFormula: Optional[str] = None
|
|
482
|
+
"""
|
|
483
|
+
chemical formula based on the number of atoms of each element in the supercell
|
|
484
|
+
"""
|
|
485
|
+
basis: BasisSchema = Field(..., title="basis schema")
|
|
486
|
+
lattice: LatticeSchema = Field(..., title="lattice schema")
|
|
487
|
+
derivedProperties: Optional[List[DerivedPropertiesSchema]] = Field(None, title="derived properties schema")
|
|
488
|
+
external: Optional[DatabaseSourceSchema] = Field(None, title="database source schema")
|
|
489
|
+
"""
|
|
490
|
+
information about a database source
|
|
491
|
+
"""
|
|
492
|
+
src: Optional[FileSourceSchema] = Field(None, title="file source schema")
|
|
493
|
+
"""
|
|
494
|
+
file source with the information inside
|
|
495
|
+
"""
|
|
496
|
+
scaledHash: Optional[str] = None
|
|
497
|
+
"""
|
|
498
|
+
Hash string for a scaled structure with lattice vector a set to 1 (eg. for materials under pressure).
|
|
499
|
+
"""
|
|
500
|
+
icsdId: Optional[int] = None
|
|
501
|
+
"""
|
|
502
|
+
Corresponding ICSD id of the material
|
|
503
|
+
"""
|
|
504
|
+
isNonPeriodic: Optional[bool] = None
|
|
505
|
+
"""
|
|
506
|
+
Whether to work in the finite molecular picture (usually with atomic orbital basis)
|
|
507
|
+
"""
|
|
508
|
+
consistencyChecks: Optional[List[MaterialConsistencyCheckSchema]] = None
|
|
509
|
+
field_id: Optional[str] = Field(None, alias="_id")
|
|
510
|
+
"""
|
|
511
|
+
entity identity
|
|
512
|
+
"""
|
|
513
|
+
slug: Optional[str] = None
|
|
514
|
+
"""
|
|
515
|
+
entity slug
|
|
516
|
+
"""
|
|
517
|
+
systemName: Optional[str] = None
|
|
518
|
+
schemaVersion: Optional[str] = "2022.8.16"
|
|
519
|
+
"""
|
|
520
|
+
entity's schema version. Used to distinct between different schemas.
|
|
521
|
+
"""
|
|
522
|
+
name: Optional[str] = None
|
|
523
|
+
"""
|
|
524
|
+
entity name
|
|
525
|
+
"""
|
|
526
|
+
isDefault: Optional[bool] = False
|
|
527
|
+
"""
|
|
528
|
+
Identifies that entity is defaultable
|
|
529
|
+
"""
|
|
530
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
class CrystalLatticeBaseSchema(BaseModel):
|
|
534
|
+
crystal: CrystalSchema = Field(..., title="Crystal Schema")
|
|
535
|
+
"""
|
|
536
|
+
A crystal structure, referencing the base material schema
|
|
537
|
+
"""
|
|
538
|
+
use_conventional_cell: Optional[bool] = True
|
|
539
|
+
"""
|
|
540
|
+
Use the conventional cell for the crystal structure
|
|
541
|
+
"""
|
|
@@ -131,13 +131,13 @@ class Value(Enum):
|
|
|
131
131
|
Og = "Og"
|
|
132
132
|
|
|
133
133
|
|
|
134
|
-
class
|
|
134
|
+
class Value161(Enum):
|
|
135
135
|
X = "X"
|
|
136
136
|
Vac = "Vac"
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
class AtomicElementSchema(BaseModel):
|
|
140
|
-
value: Union[Value,
|
|
140
|
+
value: Union[Value, Value161]
|
|
141
141
|
"""
|
|
142
142
|
All elements, including extra elements
|
|
143
143
|
"""
|
|
@@ -285,30 +285,30 @@ class VolumeSchema(BaseModel):
|
|
|
285
285
|
value: float
|
|
286
286
|
|
|
287
287
|
|
|
288
|
-
class
|
|
288
|
+
class Name646(Enum):
|
|
289
289
|
density = "density"
|
|
290
290
|
|
|
291
291
|
|
|
292
|
-
class
|
|
292
|
+
class Units264(Enum):
|
|
293
293
|
g_cm_3 = "g/cm^3"
|
|
294
294
|
|
|
295
295
|
|
|
296
296
|
class DensitySchema(BaseModel):
|
|
297
297
|
name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
|
|
298
|
-
units: Optional[
|
|
298
|
+
units: Optional[Units264] = None
|
|
299
299
|
value: float
|
|
300
300
|
|
|
301
301
|
|
|
302
|
-
class
|
|
302
|
+
class Units265(Enum):
|
|
303
303
|
angstrom = "angstrom"
|
|
304
304
|
|
|
305
305
|
|
|
306
306
|
class ScalarSchema(BaseModel):
|
|
307
|
-
units: Optional[
|
|
307
|
+
units: Optional[Units265] = None
|
|
308
308
|
value: float
|
|
309
309
|
|
|
310
310
|
|
|
311
|
-
class
|
|
311
|
+
class Name647(Enum):
|
|
312
312
|
symmetry = "symmetry"
|
|
313
313
|
|
|
314
314
|
|
|
@@ -328,7 +328,7 @@ class SymmetrySchema(BaseModel):
|
|
|
328
328
|
name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
|
|
329
329
|
|
|
330
330
|
|
|
331
|
-
class
|
|
331
|
+
class Name648(Enum):
|
|
332
332
|
elemental_ratio = "elemental_ratio"
|
|
333
333
|
|
|
334
334
|
|
|
@@ -341,7 +341,7 @@ class ElementalRatio(BaseModel):
|
|
|
341
341
|
"""
|
|
342
342
|
|
|
343
343
|
|
|
344
|
-
class
|
|
344
|
+
class Name649(Enum):
|
|
345
345
|
p_norm = "p-norm"
|
|
346
346
|
|
|
347
347
|
|
|
@@ -354,7 +354,7 @@ class PNorm(BaseModel):
|
|
|
354
354
|
value: float
|
|
355
355
|
|
|
356
356
|
|
|
357
|
-
class
|
|
357
|
+
class Name650(Enum):
|
|
358
358
|
inchi = "inchi"
|
|
359
359
|
|
|
360
360
|
|
|
@@ -363,7 +363,7 @@ class InChIRepresentationSchema(BaseModel):
|
|
|
363
363
|
value: str
|
|
364
364
|
|
|
365
365
|
|
|
366
|
-
class
|
|
366
|
+
class Name651(Enum):
|
|
367
367
|
inchi_key = "inchi_key"
|
|
368
368
|
|
|
369
369
|
|
|
@@ -442,7 +442,7 @@ class FileSourceSchema(BaseModel):
|
|
|
442
442
|
"""
|
|
443
443
|
|
|
444
444
|
|
|
445
|
-
class
|
|
445
|
+
class Name652(Enum):
|
|
446
446
|
default = "default"
|
|
447
447
|
atomsTooClose = "atomsTooClose"
|
|
448
448
|
atomsOverlap = "atomsOverlap"
|
|
@@ -455,7 +455,7 @@ class Severity(Enum):
|
|
|
455
455
|
|
|
456
456
|
|
|
457
457
|
class MaterialConsistencyCheckSchema(BaseModel):
|
|
458
|
-
name:
|
|
458
|
+
name: Name652
|
|
459
459
|
"""
|
|
460
460
|
Name of the consistency check that is performed, which is listed in an enum.
|
|
461
461
|
"""
|