mat3ra-esse 2025.8.20.post0__py3-none-any.whl → 2025.10.8.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.

Files changed (123) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/core/abstract/_2d_data.py +2 -2
  4. mat3ra/esse/models/core/abstract/_2d_plot.py +2 -6
  5. mat3ra/esse/models/core/primitive/_1d_data_series.py +3 -3
  6. mat3ra/esse/models/core/primitive/axis_3d_names_enum.py +13 -0
  7. mat3ra/esse/models/core/reference/__init__.py +8 -8
  8. mat3ra/esse/models/core/reference/exabyte.py +2 -8
  9. mat3ra/esse/models/core/reference/experiment/__init__.py +2 -2
  10. mat3ra/esse/models/core/reusable/coordinate_conditions/__init__.py +1 -78
  11. mat3ra/esse/models/core/reusable/coordinate_conditions/index.py +80 -0
  12. mat3ra/esse/models/core/reusable/hubbard_parameters.py +48 -0
  13. mat3ra/esse/models/core/reusable/kpoint.py +16 -0
  14. mat3ra/esse/models/core/reusable/repetition.py +14 -0
  15. mat3ra/esse/models/definitions/material.py +13 -0
  16. mat3ra/esse/models/element.py +10 -8
  17. mat3ra/esse/models/job/__init__.py +62 -62
  18. mat3ra/esse/models/material/__init__.py +12 -12
  19. mat3ra/esse/models/materials_category/compound_pristine_structures/two_dimensional/interface/configuration.py +80 -80
  20. mat3ra/esse/models/materials_category/defective_structures/one_dimensional/grain_boundary_linear/configuration.py +80 -80
  21. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/adatom/configuration.py +35 -35
  22. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/grain_boundary_planar/configuration.py +80 -80
  23. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/island/configuration.py +53 -53
  24. mat3ra/esse/models/materials_category/defective_structures/two_dimensional/terrace/configuration.py +53 -53
  25. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/interstitial.py +29 -29
  26. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/substitutional.py +32 -32
  27. mat3ra/esse/models/materials_category/defective_structures/zero_dimensional/point_defect/vacancy.py +12 -12
  28. mat3ra/esse/models/materials_category/pristine_structures/three_dimensional/ideal_crystal.py +12 -12
  29. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanoribbon.py +52 -52
  30. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/nanotape.py +32 -32
  31. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab.py +32 -32
  32. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell.py +32 -32
  33. mat3ra/esse/models/materials_category/pristine_structures/two_dimensional/slab_strained_supercell_with_gap.py +1151 -0
  34. mat3ra/esse/models/materials_category/processed_structures/two_dimensional/passivation/configuration.py +17 -17
  35. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/crystal_site.py +8 -8
  36. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/point_defect_site.py +12 -12
  37. mat3ra/esse/models/materials_category_components/entities/auxiliary/zero_dimensional/void_region.py +12 -12
  38. mat3ra/esse/models/materials_category_components/entities/core/three_dimensional/crystal.py +8 -8
  39. mat3ra/esse/models/materials_category_components/entities/core/two_dimensional/vacuum.py +12 -12
  40. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines.py +8 -8
  41. mat3ra/esse/models/materials_category_components/entities/reusable/one_dimensional/crystal_lattice_lines_unique_repeated.py +8 -8
  42. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/crystal_lattice_base.py +8 -8
  43. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_non_uniform.py +12 -12
  44. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/strained_uniform.py +12 -12
  45. mat3ra/esse/models/materials_category_components/entities/reusable/three_dimensional/supercell.py +12 -12
  46. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/crystal_lattice_planes.py +8 -8
  47. mat3ra/esse/models/materials_category_components/entities/reusable/two_dimensional/slab_stack_configuration.py +52 -52
  48. mat3ra/esse/models/materials_category_components/operations/core/modifications/perturb.py +12 -12
  49. mat3ra/esse/models/methods_directory/physical/psp/__init__.py +2 -2
  50. mat3ra/esse/models/methods_directory/physical/psp/file.py +2 -2
  51. mat3ra/esse/models/methods_directory/physical/psp/file_data_item.py +2 -2
  52. mat3ra/esse/models/properties_directory/derived_properties.py +6 -6
  53. mat3ra/esse/models/properties_directory/elemental/atomic_radius.py +1 -1
  54. mat3ra/esse/models/properties_directory/elemental/electronegativity.py +1 -2
  55. mat3ra/esse/models/properties_directory/elemental/ionization_potential.py +3 -4
  56. mat3ra/esse/models/properties_directory/jupyter_notebook_endpoint.py +20 -0
  57. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +4 -8
  58. mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +2 -2
  59. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +5 -9
  60. mat3ra/esse/models/properties_directory/non_scalar/charge_density_profile.py +4 -8
  61. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +5 -8
  62. mat3ra/esse/models/properties_directory/non_scalar/dielectric_tensor.py +2 -2
  63. mat3ra/esse/models/properties_directory/non_scalar/file_content.py +2 -2
  64. mat3ra/esse/models/properties_directory/non_scalar/final_structure.py +22 -0
  65. mat3ra/esse/models/properties_directory/non_scalar/hubbard_u.py +4 -4
  66. mat3ra/esse/models/properties_directory/non_scalar/hubbard_v.py +3 -4
  67. mat3ra/esse/models/properties_directory/non_scalar/hubbard_v_nn.py +3 -4
  68. mat3ra/esse/models/properties_directory/non_scalar/is_relaxed.py +22 -0
  69. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +10 -14
  70. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +10 -14
  71. mat3ra/esse/models/properties_directory/non_scalar/potential_profile.py +8 -12
  72. mat3ra/esse/models/properties_directory/non_scalar/reaction_energy_profile.py +8 -12
  73. mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +5 -7
  74. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +64 -51
  75. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +10 -14
  76. mat3ra/esse/models/properties_directory/non_scalar/workflow.py +2234 -0
  77. mat3ra/esse/models/properties_directory/reusable/__init__.py +3 -0
  78. mat3ra/esse/models/properties_directory/reusable/hubbard_parameters.py +48 -0
  79. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +1 -1
  80. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +1 -1
  81. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +1 -1
  82. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +3 -3
  83. mat3ra/esse/models/properties_directory/scalar/pressure.py +3 -4
  84. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +3 -3
  85. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +3 -3
  86. mat3ra/esse/models/properties_directory/scalar/total_energy.py +3 -3
  87. mat3ra/esse/models/properties_directory/scalar/total_force.py +3 -4
  88. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +3 -3
  89. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +3 -3
  90. mat3ra/esse/models/properties_directory/structural/atomic_forces.py +5 -5
  91. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +3 -3
  92. mat3ra/esse/models/properties_directory/structural/basis/boundary_conditions.py +30 -0
  93. mat3ra/esse/models/properties_directory/structural/basis/predicted_properties.py +82 -0
  94. mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +23 -1
  95. mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +5 -5
  96. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +5 -5
  97. mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +1 -1
  98. mat3ra/esse/models/properties_directory/structural/patterns/ring.py +1 -1
  99. mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +1 -1
  100. mat3ra/esse/models/properties_directory/workflow/convergence/electronic.py +4 -4
  101. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +6 -6
  102. mat3ra/esse/models/property/base.py +1492 -14
  103. mat3ra/esse/models/property/holder.py +3568 -0
  104. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/__init__.py +3 -0
  105. mat3ra/esse/models/property/meta_holder/Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e/g.py +31 -0
  106. mat3ra/esse/models/property/meta_holder.py +140 -0
  107. mat3ra/esse/models/property/proto_holder.py +86 -0
  108. mat3ra/esse/models/property/raw.py +27 -11
  109. mat3ra/esse/models/property/source.py +26 -3
  110. mat3ra/esse/models/workflow/__init__.py +54 -54
  111. mat3ra/esse/models/workflow/base_flow.py +4 -4
  112. mat3ra/esse/models/workflow/subworkflow/__init__.py +13 -13
  113. mat3ra/esse/models/workflow/subworkflow/unit.py +10 -10
  114. mat3ra/esse/models/workflow/unit/__init__.py +12 -12
  115. mat3ra/esse/models/workflow/unit/io/__init__.py +4 -4
  116. mat3ra/esse/models/workflow/unit/io/db.py +2 -2
  117. mat3ra/esse/models/workflow/unit/io/object_storage.py +1 -1
  118. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/METADATA +1 -1
  119. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/RECORD +122 -103
  120. mat3ra/esse/models/property/meta.py +0 -200
  121. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/WHEEL +0 -0
  122. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/licenses/LICENSE.md +0 -0
  123. {mat3ra_esse-2025.8.20.post0.dist-info → mat3ra_esse-2025.10.8.post0.dist-info}/top_level.txt +0 -0
@@ -5,16 +5,1447 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  from enum import Enum
8
- from typing import Any, Dict, List, Optional
8
+ from typing import Any, Dict, List, Optional, Union
9
9
 
10
- from pydantic import BaseModel, Field
10
+ from pydantic import BaseModel, Field, RootModel, constr
11
11
 
12
- from .The_source_of_a_property import (
13
- field_This_could_be_an_article__a_simulation_on_Exabyte__an_external_simulation__etc,
14
- )
12
+
13
+ class Name(Enum):
14
+ ionization_potential = "ionization_potential"
15
+
16
+
17
+ class Units(Enum):
18
+ kJ_mol = "kJ/mol"
19
+ eV = "eV"
20
+ J_mol = "J/mol"
21
+ hartree = "hartree"
22
+ cm_1 = "cm-1"
23
+ Ry = "Ry"
24
+ eV_atom = "eV/atom"
25
+
26
+
27
+ class IonizationPotentialElementalPropertySchema(BaseModel):
28
+ name: Name
29
+ units: Units
30
+ value: float
31
+
32
+
33
+ class Name31(Enum):
34
+ valence_band_offset = "valence_band_offset"
35
+
36
+
37
+ class Units19(Enum):
38
+ eV_A_2 = "eV/A^2"
39
+
40
+
41
+ class ValenceBandOffsetPropertySchema(BaseModel):
42
+ name: Name31
43
+ units: Union[Units, Units19]
44
+ value: float
45
+
46
+
47
+ class Name32(Enum):
48
+ zero_point_energy = "zero_point_energy"
49
+
50
+
51
+ class Units20(Enum):
52
+ kJ_mol = "kJ/mol"
53
+ eV = "eV"
54
+ J_mol = "J/mol"
55
+ hartree = "hartree"
56
+ cm_1 = "cm-1"
57
+ Ry = "Ry"
58
+ eV_atom = "eV/atom"
59
+
60
+
61
+ class Units21(Enum):
62
+ eV_A_2 = "eV/A^2"
63
+
64
+
65
+ class ZeroPointEnergyPropertySchema(BaseModel):
66
+ name: Name32
67
+ units: Union[Units20, Units21]
68
+ value: float
69
+
70
+
71
+ class Name33(Enum):
72
+ pressure = "pressure"
73
+
74
+
75
+ class Units22(Enum):
76
+ kbar = "kbar"
77
+ pa = "pa"
78
+
79
+
80
+ class PressurePropertySchema(BaseModel):
81
+ name: Name33
82
+ units: Units22
83
+ value: float
84
+
85
+
86
+ class Name34(Enum):
87
+ reaction_energy_barrier = "reaction_energy_barrier"
88
+
89
+
90
+ class Units23(Enum):
91
+ kJ_mol = "kJ/mol"
92
+ eV = "eV"
93
+ J_mol = "J/mol"
94
+ hartree = "hartree"
95
+ cm_1 = "cm-1"
96
+ Ry = "Ry"
97
+ eV_atom = "eV/atom"
98
+
99
+
100
+ class Units24(Enum):
101
+ eV_A_2 = "eV/A^2"
102
+
103
+
104
+ class ReactionEnergyBarrierPropertySchema(BaseModel):
105
+ name: Name34
106
+ units: Union[Units23, Units24]
107
+ value: float
108
+
109
+
110
+ class Name35(Enum):
111
+ surface_energy = "surface_energy"
112
+
113
+
114
+ class Units25(Enum):
115
+ kJ_mol = "kJ/mol"
116
+ eV = "eV"
117
+ J_mol = "J/mol"
118
+ hartree = "hartree"
119
+ cm_1 = "cm-1"
120
+ Ry = "Ry"
121
+ eV_atom = "eV/atom"
122
+
123
+
124
+ class Units26(Enum):
125
+ eV_A_2 = "eV/A^2"
126
+
127
+
128
+ class SurfaceEnergyPropertySchema(BaseModel):
129
+ name: Name35
130
+ units: Union[Units25, Units26]
131
+ value: float
132
+
133
+
134
+ class Name36(Enum):
135
+ total_energy = "total_energy"
136
+
137
+
138
+ class Units27(Enum):
139
+ kJ_mol = "kJ/mol"
140
+ eV = "eV"
141
+ J_mol = "J/mol"
142
+ hartree = "hartree"
143
+ cm_1 = "cm-1"
144
+ Ry = "Ry"
145
+ eV_atom = "eV/atom"
146
+
147
+
148
+ class Units28(Enum):
149
+ eV_A_2 = "eV/A^2"
150
+
151
+
152
+ class TotalEnergyPropertySchema(BaseModel):
153
+ name: Name36
154
+ units: Union[Units27, Units28]
155
+ value: float
156
+
157
+
158
+ class Name37(Enum):
159
+ total_force = "total_force"
160
+
161
+
162
+ class Units29(Enum):
163
+ eV_bohr = "eV/bohr"
164
+ eV_angstrom = "eV/angstrom"
165
+ Ry_a_u_ = "Ry/a.u."
166
+ newton = "newton"
167
+ kg_m_s_2 = "kg*m/s^2"
168
+ eV_a_u_ = "eV/a.u."
169
+
170
+
171
+ class TotalForcesPropertySchema(BaseModel):
172
+ name: Name37
173
+ units: Units29
174
+ value: float
175
+
176
+
177
+ class Name38(Enum):
178
+ electron_affinity = "electron_affinity"
179
+
180
+
181
+ class Units30(Enum):
182
+ kJ_mol = "kJ/mol"
183
+ eV = "eV"
184
+ J_mol = "J/mol"
185
+ hartree = "hartree"
186
+ cm_1 = "cm-1"
187
+ Ry = "Ry"
188
+ eV_atom = "eV/atom"
189
+
190
+
191
+ class Units31(Enum):
192
+ eV_A_2 = "eV/A^2"
193
+
194
+
195
+ class ElectronAffinityPropertySchema(BaseModel):
196
+ name: Name38
197
+ units: Union[Units30, Units31]
198
+ value: float
199
+
200
+
201
+ class Name39(Enum):
202
+ fermi_energy = "fermi_energy"
203
+
204
+
205
+ class Units32(Enum):
206
+ kJ_mol = "kJ/mol"
207
+ eV = "eV"
208
+ J_mol = "J/mol"
209
+ hartree = "hartree"
210
+ cm_1 = "cm-1"
211
+ Ry = "Ry"
212
+ eV_atom = "eV/atom"
213
+
214
+
215
+ class Units33(Enum):
216
+ eV_A_2 = "eV/A^2"
217
+
218
+
219
+ class FermiEnergyPropertySchema(BaseModel):
220
+ name: Name39
221
+ units: Union[Units32, Units33]
222
+ value: float
223
+
224
+
225
+ class Name40(Enum):
226
+ formation_energy = "formation_energy"
227
+
228
+
229
+ class Units34(Enum):
230
+ kJ_mol = "kJ/mol"
231
+ eV = "eV"
232
+ J_mol = "J/mol"
233
+ hartree = "hartree"
234
+ cm_1 = "cm-1"
235
+ Ry = "Ry"
236
+ eV_atom = "eV/atom"
237
+
238
+
239
+ class Units35(Enum):
240
+ eV_A_2 = "eV/A^2"
241
+
242
+
243
+ class FormationEnergyPropertySchema(BaseModel):
244
+ name: Name40
245
+ units: Union[Units34, Units35]
246
+ value: float
247
+
248
+
249
+ class Name41(Enum):
250
+ ionization_potential = "ionization_potential"
251
+
252
+
253
+ class Units36(Enum):
254
+ kJ_mol = "kJ/mol"
255
+ eV = "eV"
256
+ J_mol = "J/mol"
257
+ hartree = "hartree"
258
+ cm_1 = "cm-1"
259
+ Ry = "Ry"
260
+ eV_atom = "eV/atom"
261
+
262
+
263
+ class Units37(Enum):
264
+ eV_A_2 = "eV/A^2"
265
+
266
+
267
+ class IonizationPotentialScalarPropertySchema(BaseModel):
268
+ name: Name41
269
+ units: Union[Units36, Units37]
270
+ value: float
271
+
272
+
273
+ class ArrayOf3NumberElementsSchema(RootModel[List[float]]):
274
+ root: List[float] = Field(..., title="array of 3 number elements schema")
275
+
276
+
277
+ class Name42(Enum):
278
+ stress_tensor = "stress_tensor"
279
+
280
+
281
+ class Units38(Enum):
282
+ kbar = "kbar"
283
+ pa = "pa"
284
+
285
+
286
+ class StressTensorPropertySchema(BaseModel):
287
+ value: List[ArrayOf3NumberElementsSchema] = Field(..., max_length=3, min_length=3, title="matrix 3x3 schema")
288
+ name: Name42
289
+ units: Units38
290
+
291
+
292
+ class Name43(Enum):
293
+ band_gaps = "band_gaps"
15
294
 
16
295
 
17
296
  class Type(Enum):
297
+ direct = "direct"
298
+ indirect = "indirect"
299
+
300
+
301
+ class Units39(Enum):
302
+ kJ_mol = "kJ/mol"
303
+ eV = "eV"
304
+ J_mol = "J/mol"
305
+ hartree = "hartree"
306
+ cm_1 = "cm-1"
307
+ Ry = "Ry"
308
+ eV_atom = "eV/atom"
309
+
310
+
311
+ class BandGapSchema(BaseModel):
312
+ kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
313
+ """
314
+ A k-point is a point in reciprocal space of a crystal.
315
+ """
316
+ kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
317
+ """
318
+ A k-point is a point in reciprocal space of a crystal.
319
+ """
320
+ eigenvalueConduction: Optional[float] = None
321
+ """
322
+ eigenvalue at k-point in conduction band
323
+ """
324
+ eigenvalueValence: Optional[float] = None
325
+ """
326
+ eigenvalue at k-point in valence band
327
+ """
328
+ spin: Optional[float] = None
329
+ type: Type
330
+ units: Optional[Units39] = None
331
+ value: float
332
+
333
+
334
+ class Eigenvalue(BaseModel):
335
+ spin: Optional[float] = None
336
+ energies: Optional[List] = None
337
+ occupations: Optional[List] = None
338
+
339
+
340
+ class Eigenvalue2(BaseModel):
341
+ kpoint: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
342
+ """
343
+ A k-point is a point in reciprocal space of a crystal.
344
+ """
345
+ weight: Optional[float] = None
346
+ eigenvalues: Optional[List[Eigenvalue]] = None
347
+
348
+
349
+ class BandGapsPropertySchema(BaseModel):
350
+ name: Name43
351
+ values: List[BandGapSchema]
352
+ eigenvalues: Optional[List[Eigenvalue2]] = None
353
+
354
+
355
+ class Label(Enum):
356
+ kpoints = "kpoints"
357
+
358
+
359
+ class Units40(Enum):
360
+ crystal = "crystal"
361
+ cartesian = "cartesian"
362
+
363
+
364
+ class AxisSchema(BaseModel):
365
+ label: Label
366
+ """
367
+ label of an axis object
368
+ """
369
+ units: Optional[Units40] = "crystal"
370
+ """
371
+ units for an axis
372
+ """
373
+
374
+
375
+ class Label5(Enum):
376
+ energy = "energy"
377
+
378
+
379
+ class Units41(Enum):
380
+ kJ_mol = "kJ/mol"
381
+ eV = "eV"
382
+ J_mol = "J/mol"
383
+ hartree = "hartree"
384
+ cm_1 = "cm-1"
385
+ Ry = "Ry"
386
+ eV_atom = "eV/atom"
387
+
388
+
389
+ class AxisSchema8(BaseModel):
390
+ label: Label5
391
+ """
392
+ label of an axis object
393
+ """
394
+ units: Optional[Units41] = None
395
+ """
396
+ units for an axis
397
+ """
398
+
399
+
400
+ class Name44(Enum):
401
+ band_structure = "band_structure"
402
+
403
+
404
+ class SpinEnum(Enum):
405
+ number_0_5 = 0.5
406
+ number__0_5 = -0.5
407
+
408
+
409
+ class BandStructurePropertySchema(BaseModel):
410
+ xAxis: AxisSchema = Field(..., title="axis schema")
411
+ yAxis: AxisSchema8 = Field(..., title="axis schema")
412
+ name: Name44
413
+ spin: List[SpinEnum]
414
+ """
415
+ spin of each band
416
+ """
417
+ xDataArray: List[Union[float, List[float]]]
418
+ """
419
+ array containing values of x Axis
420
+ """
421
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
422
+
423
+
424
+ class Label6(Enum):
425
+ qpoints = "qpoints"
426
+
427
+
428
+ class Units42(Enum):
429
+ crystal = "crystal"
430
+ cartesian = "cartesian"
431
+
432
+
433
+ class AxisSchema9(BaseModel):
434
+ label: Label6
435
+ """
436
+ label of an axis object
437
+ """
438
+ units: Optional[Units42] = "crystal"
439
+ """
440
+ units for an axis
441
+ """
442
+
443
+
444
+ class Label7(Enum):
445
+ frequency = "frequency"
446
+
447
+
448
+ class Units43(Enum):
449
+ cm_1 = "cm-1"
450
+ THz = "THz"
451
+ meV = "meV"
452
+
453
+
454
+ class AxisSchema10(BaseModel):
455
+ label: Label7
456
+ """
457
+ label of an axis object
458
+ """
459
+ units: Optional[Units43] = None
460
+ """
461
+ units for an axis
462
+ """
463
+
464
+
465
+ class Name45(Enum):
466
+ phonon_dispersions = "phonon_dispersions"
467
+
468
+
469
+ class PhononBandStructurePropertySchema(BaseModel):
470
+ xAxis: AxisSchema9 = Field(..., title="axis schema")
471
+ yAxis: AxisSchema10 = Field(..., title="axis schema")
472
+ name: Name45
473
+ xDataArray: List[Union[float, List[float]]]
474
+ """
475
+ array containing values of x Axis
476
+ """
477
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
478
+
479
+
480
+ class Name46(Enum):
481
+ temperature_entropy = "temperature_entropy"
482
+
483
+
484
+ class ScalarSchema(BaseModel):
485
+ name: Optional[Name46] = None
486
+ value: float
487
+
488
+
489
+ class Name47(Enum):
490
+ harris_foulkes = "harris_foulkes"
491
+
492
+
493
+ class ScalarSchema5(BaseModel):
494
+ name: Optional[Name47] = None
495
+ value: float
496
+
497
+
498
+ class Name48(Enum):
499
+ smearing = "smearing"
500
+
501
+
502
+ class ScalarSchema6(BaseModel):
503
+ name: Optional[Name48] = None
504
+ value: float
505
+
506
+
507
+ class Name49(Enum):
508
+ one_electron = "one_electron"
509
+
510
+
511
+ class ScalarSchema7(BaseModel):
512
+ name: Optional[Name49] = None
513
+ value: float
514
+
515
+
516
+ class Name50(Enum):
517
+ hartree = "hartree"
518
+
519
+
520
+ class ScalarSchema8(BaseModel):
521
+ name: Optional[Name50] = None
522
+ value: float
523
+
524
+
525
+ class Name51(Enum):
526
+ exchange = "exchange"
527
+
528
+
529
+ class ScalarSchema9(BaseModel):
530
+ name: Optional[Name51] = None
531
+ value: float
532
+
533
+
534
+ class Name52(Enum):
535
+ exchange_correlation = "exchange_correlation"
536
+
537
+
538
+ class ScalarSchema10(BaseModel):
539
+ name: Optional[Name52] = None
540
+ value: float
541
+
542
+
543
+ class Name53(Enum):
544
+ ewald = "ewald"
545
+
546
+
547
+ class ScalarSchema11(BaseModel):
548
+ name: Optional[Name53] = None
549
+ value: float
550
+
551
+
552
+ class Name54(Enum):
553
+ alphaZ = "alphaZ"
554
+
555
+
556
+ class ScalarSchema12(BaseModel):
557
+ name: Optional[Name54] = None
558
+ value: float
559
+
560
+
561
+ class Name55(Enum):
562
+ atomic_energy = "atomic_energy"
563
+
564
+
565
+ class ScalarSchema13(BaseModel):
566
+ name: Optional[Name55] = None
567
+ value: float
568
+
569
+
570
+ class Name56(Enum):
571
+ eigenvalues = "eigenvalues"
572
+
573
+
574
+ class ScalarSchema14(BaseModel):
575
+ name: Optional[Name56] = None
576
+ value: float
577
+
578
+
579
+ class Name57(Enum):
580
+ PAW_double_counting_correction_2 = "PAW_double-counting_correction_2"
581
+
582
+
583
+ class ScalarSchema15(BaseModel):
584
+ name: Optional[Name57] = None
585
+ value: float
586
+
587
+
588
+ class Name58(Enum):
589
+ PAW_double_counting_correction_3 = "PAW_double-counting_correction_3"
590
+
591
+
592
+ class ScalarSchema16(BaseModel):
593
+ name: Optional[Name58] = None
594
+ value: float
595
+
596
+
597
+ class Name59(Enum):
598
+ hartree_fock = "hartree_fock"
599
+
600
+
601
+ class ScalarSchema17(BaseModel):
602
+ name: Optional[Name59] = None
603
+ value: float
604
+
605
+
606
+ class Name60(Enum):
607
+ total_energy_contributions = "total_energy_contributions"
608
+
609
+
610
+ class Units44(Enum):
611
+ kJ_mol = "kJ/mol"
612
+ eV = "eV"
613
+ J_mol = "J/mol"
614
+ hartree = "hartree"
615
+ cm_1 = "cm-1"
616
+ Ry = "Ry"
617
+ eV_atom = "eV/atom"
618
+
619
+
620
+ class TotalEnergyContributionsPropertySchema(BaseModel):
621
+ temperatureEntropy: Optional[ScalarSchema] = Field(None, title="scalar schema")
622
+ """
623
+ product of temperature and configurational entropy
624
+ """
625
+ harris_foulkes: Optional[ScalarSchema5] = Field(None, title="scalar schema")
626
+ """
627
+ non self-consitent energy based on an input charge density
628
+ """
629
+ smearing: Optional[ScalarSchema6] = Field(None, title="scalar schema")
630
+ """
631
+ smearing energy
632
+ """
633
+ one_electron: Optional[ScalarSchema7] = Field(None, title="scalar schema")
634
+ """
635
+ kinetic + pseudopotential energy
636
+ """
637
+ hartree: Optional[ScalarSchema8] = Field(None, title="scalar schema")
638
+ """
639
+ energy due to coulomb potential
640
+ """
641
+ exchange: Optional[ScalarSchema9] = Field(None, title="scalar schema")
642
+ """
643
+ exchange energy
644
+ """
645
+ exchange_correlation: Optional[ScalarSchema10] = Field(None, title="scalar schema")
646
+ """
647
+ exchange and correlation energy per particle
648
+ """
649
+ ewald: Optional[ScalarSchema11] = Field(None, title="scalar schema")
650
+ """
651
+ summation of interaction energies at long length scales due to coloumbic interactions
652
+ """
653
+ alphaZ: Optional[ScalarSchema12] = Field(None, title="scalar schema")
654
+ """
655
+ divergent electrostatic ion interaction in compensating electron gas
656
+ """
657
+ atomicEnergy: Optional[ScalarSchema13] = Field(None, title="scalar schema")
658
+ """
659
+ kinetic energy of wavefunctions in the atomic limit
660
+ """
661
+ eigenvalues: Optional[ScalarSchema14] = Field(None, title="scalar schema")
662
+ """
663
+ sum of one electron energies of kinetic, electrostatic, and exchange correlation
664
+ """
665
+ PAWDoubleCounting2: Optional[ScalarSchema15] = Field(None, title="scalar schema")
666
+ """
667
+ double counting correction 2
668
+ """
669
+ PAWDoubleCounting3: Optional[ScalarSchema16] = Field(None, title="scalar schema")
670
+ """
671
+ double counting correction 3
672
+ """
673
+ hartreeFock: Optional[ScalarSchema17] = Field(None, title="scalar schema")
674
+ """
675
+ hartree-fock contribution
676
+ """
677
+ name: Name60
678
+ units: Optional[Units44] = None
679
+
680
+
681
+ class Label8(Enum):
682
+ frequency = "frequency"
683
+ wavenumber = "wavenumber"
684
+
685
+
686
+ class Units45(Enum):
687
+ cm_1 = "cm-1"
688
+ THz = "THz"
689
+ meV = "meV"
690
+
691
+
692
+ class AxisSchema11(BaseModel):
693
+ label: Label8
694
+ """
695
+ label of an axis object
696
+ """
697
+ units: Optional[Units45] = None
698
+ """
699
+ units for an axis
700
+ """
701
+
702
+
703
+ class Label9(Enum):
704
+ Intensity = "Intensity"
705
+ Absorbance = "Absorbance"
706
+ Absorption_coefficient = "Absorption coefficient"
707
+
708
+
709
+ class Units46(Enum):
710
+ field_debye_angstrom__2 = "(debye/angstrom)^2"
711
+ km_mol = "km/mol"
712
+ m_mol = "m/mol"
713
+ a_u_ = "a.u."
714
+
715
+
716
+ class AxisSchema12(BaseModel):
717
+ label: Label9
718
+ """
719
+ label of an axis object
720
+ """
721
+ units: Optional[Units46] = None
722
+ """
723
+ units for an axis
724
+ """
725
+
726
+
727
+ class Name61(Enum):
728
+ vibrational_spectrum = "vibrational_spectrum"
729
+
730
+
731
+ class VibrationalSpectrumPropertySchema(BaseModel):
732
+ xAxis: AxisSchema11 = Field(..., title="axis schema")
733
+ yAxis: AxisSchema12 = Field(..., title="axis schema")
734
+ name: Name61
735
+ xDataArray: List[Union[float, List[float]]]
736
+ """
737
+ array containing values of x Axis
738
+ """
739
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
740
+
741
+
742
+ class Label10(Enum):
743
+ frequency = "frequency"
744
+
745
+
746
+ class Units47(Enum):
747
+ cm_1 = "cm-1"
748
+ THz = "THz"
749
+ meV = "meV"
750
+
751
+
752
+ class AxisSchema13(BaseModel):
753
+ label: Label10
754
+ """
755
+ label of an axis object
756
+ """
757
+ units: Optional[Units47] = None
758
+ """
759
+ units for an axis
760
+ """
761
+
762
+
763
+ class Label11(Enum):
764
+ Phonon_DOS = "Phonon DOS"
765
+
766
+
767
+ class Units48(Enum):
768
+ states_cm_1 = "states/cm-1"
769
+ states_THz = "states/THz"
770
+ states_meV = "states/meV"
771
+
772
+
773
+ class AxisSchema14(BaseModel):
774
+ label: Label11
775
+ """
776
+ label of an axis object
777
+ """
778
+ units: Optional[Units48] = None
779
+ """
780
+ units for an axis
781
+ """
782
+
783
+
784
+ class Name62(Enum):
785
+ phonon_dos = "phonon_dos"
786
+
787
+
788
+ class PhononDensityOfStatesPropertySchema(BaseModel):
789
+ xAxis: AxisSchema13 = Field(..., title="axis schema")
790
+ yAxis: AxisSchema14 = Field(..., title="axis schema")
791
+ name: Name62
792
+ xDataArray: List[Union[float, List[float]]]
793
+ """
794
+ array containing values of x Axis
795
+ """
796
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
797
+
798
+
799
+ class Label12(Enum):
800
+ z_coordinate = "z coordinate"
801
+
802
+
803
+ class AxisSchema15(BaseModel):
804
+ label: Label12
805
+ """
806
+ label of an axis object
807
+ """
808
+ units: Optional[str] = None
809
+ """
810
+ units for an axis
811
+ """
812
+
813
+
814
+ class Label13(Enum):
815
+ energy = "energy"
816
+
817
+
818
+ class Units49(Enum):
819
+ kJ_mol = "kJ/mol"
820
+ eV = "eV"
821
+ J_mol = "J/mol"
822
+ hartree = "hartree"
823
+ cm_1 = "cm-1"
824
+ Ry = "Ry"
825
+ eV_atom = "eV/atom"
826
+
827
+
828
+ class AxisSchema16(BaseModel):
829
+ label: Label13
830
+ """
831
+ label of an axis object
832
+ """
833
+ units: Optional[Units49] = None
834
+ """
835
+ units for an axis
836
+ """
837
+
838
+
839
+ class Name63(Enum):
840
+ potential_profile = "potential_profile"
841
+
842
+
843
+ class PotentialProfilePropertySchema(BaseModel):
844
+ xAxis: AxisSchema15 = Field(..., title="axis schema")
845
+ yAxis: AxisSchema16 = Field(..., title="axis schema")
846
+ name: Name63
847
+ xDataArray: List[Union[float, List[float]]]
848
+ """
849
+ array containing values of x Axis
850
+ """
851
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
852
+
853
+
854
+ class Label14(Enum):
855
+ reaction_coordinate = "reaction coordinate"
856
+
857
+
858
+ class AxisSchema17(BaseModel):
859
+ label: Label14
860
+ """
861
+ label of an axis object
862
+ """
863
+ units: Optional[str] = None
864
+ """
865
+ units for an axis
866
+ """
867
+
868
+
869
+ class Label15(Enum):
870
+ energy = "energy"
871
+
872
+
873
+ class AxisSchema18(BaseModel):
874
+ label: Label15
875
+ """
876
+ label of an axis object
877
+ """
878
+ units: Optional[Units49] = None
879
+ """
880
+ units for an axis
881
+ """
882
+
883
+
884
+ class Name64(Enum):
885
+ reaction_energy_profile = "reaction_energy_profile"
886
+
887
+
888
+ class ReactionEnergyProfilePropertySchema(BaseModel):
889
+ xAxis: AxisSchema17 = Field(..., title="axis schema")
890
+ yAxis: AxisSchema18 = Field(..., title="axis schema")
891
+ name: Name64
892
+ xDataArray: List[Union[float, List[float]]]
893
+ """
894
+ array containing values of x Axis
895
+ """
896
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
897
+
898
+
899
+ class AxisSchema19(BaseModel):
900
+ label: Label15
901
+ """
902
+ label of an axis object
903
+ """
904
+ units: Optional[Units49] = None
905
+ """
906
+ units for an axis
907
+ """
908
+
909
+
910
+ class Label17(Enum):
911
+ density_of_states = "density of states"
912
+
913
+
914
+ class Units52(Enum):
915
+ states_unitcell = "states/unitcell"
916
+
917
+
918
+ class AxisSchema20(BaseModel):
919
+ label: Label17
920
+ """
921
+ label of an axis object
922
+ """
923
+ units: Optional[Units52] = None
924
+ """
925
+ units for an axis
926
+ """
927
+
928
+
929
+ class Name65(Enum):
930
+ density_of_states = "density_of_states"
931
+
932
+
933
+ class Spin(Enum):
934
+ number_0_5 = 0.5
935
+ number__0_5 = -0.5
936
+
937
+
938
+ class LegendItem(BaseModel):
939
+ element: Optional[str] = None
940
+ """
941
+ chemical element
942
+ """
943
+ index: Optional[int] = None
944
+ """
945
+ index inside sub-array of atoms of the same element type
946
+ """
947
+ electronicState: Optional[constr(pattern=r"^([1-5]{1})?(s|p|d|f|g).*$")] = None
948
+ """
949
+ electronic character and shell of PDOS, such as `1s` or `s`, or `total`
950
+ """
951
+ spin: Optional[Spin] = None
952
+ """
953
+ spin of the electronic state
954
+ """
955
+
956
+
957
+ class DensityOfStatesPropertySchema(BaseModel):
958
+ xAxis: AxisSchema19 = Field(..., title="axis schema")
959
+ yAxis: AxisSchema20 = Field(..., title="axis schema")
960
+ name: Name65
961
+ legend: List[LegendItem]
962
+ xDataArray: List[Union[float, List[float]]]
963
+ """
964
+ array containing values of x Axis
965
+ """
966
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
967
+
968
+
969
+ class Name66(Enum):
970
+ dielectric_tensor = "dielectric_tensor"
971
+
972
+
973
+ class Part(Enum):
974
+ real = "real"
975
+ imaginary = "imaginary"
976
+
977
+
978
+ class DielectricTensor(BaseModel):
979
+ part: Part
980
+ """
981
+ Real or imaginary part of the dielectric tensor component
982
+ """
983
+ spin: Optional[float] = None
984
+ frequencies: List[float]
985
+ """
986
+ Frequencies
987
+ """
988
+ components: List[List[float]]
989
+ """
990
+ Matrix with 3 columns, e.g. x, y, z
991
+ """
992
+
993
+
994
+ class DielectricTensorPropertySchema(BaseModel):
995
+ name: Name66
996
+ values: List[DielectricTensor]
997
+
998
+
999
+ class Name67(Enum):
1000
+ file_content = "file_content"
1001
+
1002
+
1003
+ class Filetype(Enum):
1004
+ image = "image"
1005
+ text = "text"
1006
+ csv = "csv"
1007
+
1008
+
1009
+ class ObjectStorageContainerData(BaseModel):
1010
+ CONTAINER: Optional[str] = None
1011
+ """
1012
+ Object storage container for the file
1013
+ """
1014
+ NAME: Optional[str] = None
1015
+ """
1016
+ Name of the file inside the object storage bucket
1017
+ """
1018
+ PROVIDER: Optional[str] = None
1019
+ """
1020
+ Object storage provider
1021
+ """
1022
+ REGION: Optional[str] = None
1023
+ """
1024
+ Region for the object container specified in Container
1025
+ """
1026
+ SIZE: Optional[int] = None
1027
+ """
1028
+ Size of the file in bytes
1029
+ """
1030
+ TIMESTAMP: Optional[str] = None
1031
+ """
1032
+ Unix timestamp showing when the file was last modified
1033
+ """
1034
+
1035
+
1036
+ class FileContentPropertySchema(BaseModel):
1037
+ name: Name67
1038
+ filetype: Filetype
1039
+ """
1040
+ What kind of file this is, e.g. image / text
1041
+ """
1042
+ objectData: ObjectStorageContainerData = Field(..., title="Object Storage Container Data")
1043
+ pathname: Optional[str] = None
1044
+ """
1045
+ Relative path to the directory that contains the file.
1046
+ """
1047
+ basename: Optional[str] = None
1048
+ """
1049
+ Basename of the file
1050
+ """
1051
+
1052
+
1053
+ class Name68(Enum):
1054
+ hubbard_u = "hubbard_u"
1055
+
1056
+
1057
+ class Units53(Enum):
1058
+ eV = "eV"
1059
+
1060
+
1061
+ class AtomicDataPerOrbitalNumeric(BaseModel):
1062
+ id: int
1063
+ """
1064
+ Site number or index in the lattice
1065
+ """
1066
+ atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
1067
+ """
1068
+ Example: Co1, Mn
1069
+ """
1070
+ orbitalName: constr(pattern=r"^[1-7][sSpPdDfF]$")
1071
+ value: float
1072
+ """
1073
+ Value related to a specific property, e.g., Hubbard U, V etc.
1074
+ """
1075
+
1076
+
1077
+ class HubbardUParametersPropertySchema(BaseModel):
1078
+ name: Name68
1079
+ units: Units53
1080
+ values: List[AtomicDataPerOrbitalNumeric]
1081
+
1082
+
1083
+ class Name69(Enum):
1084
+ hubbard_v = "hubbard_v"
1085
+
1086
+
1087
+ class AtomicDataPerOrbitalPairNumeric(BaseModel):
1088
+ id: int
1089
+ """
1090
+ Site number or index in the lattice
1091
+ """
1092
+ id2: int
1093
+ """
1094
+ Site number or index in the lattice of second site
1095
+ """
1096
+ atomicSpecies: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
1097
+ """
1098
+ Example: Co1, Mn
1099
+ """
1100
+ atomicSpecies2: constr(pattern=r"^[a-zA-Z]{1,2}[\d+]?$")
1101
+ """
1102
+ Example: Co2, O
1103
+ """
1104
+ orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
1105
+ orbitalName2: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
1106
+ distance: Optional[float] = None
1107
+ """
1108
+ Distance between two sites in Bohr.
1109
+ """
1110
+ value: float
1111
+ """
1112
+ Value related to a specific property, e.g., Hubbard U, V etc.
1113
+ """
1114
+
1115
+
1116
+ class HubbardVParametersPropertySchema(BaseModel):
1117
+ name: Name69
1118
+ units: Units53
1119
+ values: List[AtomicDataPerOrbitalPairNumeric]
1120
+
1121
+
1122
+ class Name70(Enum):
1123
+ hubbard_v_nn = "hubbard_v_nn"
1124
+
1125
+
1126
+ class HubbardVNNParametersPropertySchema(BaseModel):
1127
+ name: Name70
1128
+ units: Units53
1129
+ values: List[AtomicDataPerOrbitalPairNumeric]
1130
+
1131
+
1132
+ class Label18(Enum):
1133
+ z_coordinate = "z coordinate"
1134
+
1135
+
1136
+ class Units56(Enum):
1137
+ km = "km"
1138
+ m = "m"
1139
+ cm = "cm"
1140
+ mm = "mm"
1141
+ um = "um"
1142
+ nm = "nm"
1143
+ angstrom = "angstrom"
1144
+ a_u_ = "a.u."
1145
+ bohr = "bohr"
1146
+ pm = "pm"
1147
+
1148
+
1149
+ class AxisSchema21(BaseModel):
1150
+ label: Label18
1151
+ """
1152
+ label of an axis object
1153
+ """
1154
+ units: Optional[Units56] = None
1155
+ """
1156
+ units for an axis
1157
+ """
1158
+
1159
+
1160
+ class Label19(Enum):
1161
+ energy = "energy"
1162
+
1163
+
1164
+ class Units57(Enum):
1165
+ kJ_mol = "kJ/mol"
1166
+ eV = "eV"
1167
+ J_mol = "J/mol"
1168
+ hartree = "hartree"
1169
+ cm_1 = "cm-1"
1170
+ Ry = "Ry"
1171
+ eV_atom = "eV/atom"
1172
+
1173
+
1174
+ class AxisSchema22(BaseModel):
1175
+ label: Label19
1176
+ """
1177
+ label of an axis object
1178
+ """
1179
+ units: Optional[Units57] = None
1180
+ """
1181
+ units for an axis
1182
+ """
1183
+
1184
+
1185
+ class Name71(Enum):
1186
+ average_potential_profile = "average_potential_profile"
1187
+
1188
+
1189
+ class AveragePotentialProfilePropertySchema(BaseModel):
1190
+ xAxis: AxisSchema21 = Field(..., title="axis schema")
1191
+ yAxis: AxisSchema22 = Field(..., title="axis schema")
1192
+ name: Name71
1193
+ xDataArray: List[Union[float, List[float]]]
1194
+ """
1195
+ array containing values of x Axis
1196
+ """
1197
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
1198
+
1199
+
1200
+ class Label20(Enum):
1201
+ z_coordinate = "z coordinate"
1202
+
1203
+
1204
+ class AxisSchema23(BaseModel):
1205
+ label: Label20
1206
+ """
1207
+ label of an axis object
1208
+ """
1209
+ units: Optional[str] = None
1210
+ """
1211
+ units for an axis
1212
+ """
1213
+
1214
+
1215
+ class Label21(Enum):
1216
+ charge_density = "charge density"
1217
+
1218
+
1219
+ class Units58(Enum):
1220
+ e_A = "e/A"
1221
+
1222
+
1223
+ class AxisSchema24(BaseModel):
1224
+ label: Label21
1225
+ """
1226
+ label of an axis object
1227
+ """
1228
+ units: Optional[Units58] = None
1229
+ """
1230
+ units for an axis
1231
+ """
1232
+
1233
+
1234
+ class Name72(Enum):
1235
+ charge_density_profile = "charge_density_profile"
1236
+
1237
+
1238
+ class ChargeDensityProfilePropertySchema(BaseModel):
1239
+ xAxis: AxisSchema23 = Field(..., title="axis schema")
1240
+ yAxis: AxisSchema24 = Field(..., title="axis schema")
1241
+ name: Name72
1242
+ xDataArray: List[Union[float, List[float]]]
1243
+ """
1244
+ array containing values of x Axis
1245
+ """
1246
+ yDataSeries: List[List[float]] = Field(..., title="1 dimension data series schema")
1247
+
1248
+
1249
+ class Name73(Enum):
1250
+ magnetic_moments = "magnetic_moments"
1251
+
1252
+
1253
+ class AtomicVectorSchema(BaseModel):
1254
+ value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
1255
+ """
1256
+ value of this entry
1257
+ """
1258
+ id: int
1259
+ """
1260
+ integer id of this entry
1261
+ """
1262
+
1263
+
1264
+ class Units59(Enum):
1265
+ uB = "uB"
1266
+
1267
+
1268
+ class MagneticMomentsPropertySchema(BaseModel):
1269
+ name: Name73
1270
+ values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema")
1271
+ units: Units59
1272
+
1273
+
1274
+ class Name74(Enum):
1275
+ atomic_forces = "atomic_forces"
1276
+
1277
+
1278
+ class Units60(Enum):
1279
+ eV_bohr = "eV/bohr"
1280
+ eV_angstrom = "eV/angstrom"
1281
+ Ry_a_u_ = "Ry/a.u."
1282
+ newton = "newton"
1283
+ kg_m_s_2 = "kg*m/s^2"
1284
+ eV_a_u_ = "eV/a.u."
1285
+
1286
+
1287
+ class AtomicForcesPropertySchema(BaseModel):
1288
+ name: Name74
1289
+ values: List[AtomicVectorSchema] = Field(..., title="atomic vectors schema")
1290
+ units: Units60
1291
+
1292
+
1293
+ class Name75(Enum):
1294
+ atomic_constraints = "atomic_constraints"
1295
+
1296
+
1297
+ class AtomicConstraintSchema(BaseModel):
1298
+ value: List[bool] = Field(..., title="vector boolean 3d schema")
1299
+ """
1300
+ value of this entry
1301
+ """
1302
+ id: int
1303
+ """
1304
+ integer id of this entry
1305
+ """
1306
+
1307
+
1308
+ class AtomicConstraintsPropertySchema(BaseModel):
1309
+ name: Name75
1310
+ values: List[AtomicConstraintSchema] = Field(..., title="atomic constraints schema")
1311
+ """
1312
+ atomic constraints schema
1313
+ """
1314
+
1315
+
1316
+ class Name76(Enum):
1317
+ functional_group = "functional_group"
1318
+
1319
+
1320
+ class ObjectWithId(BaseModel):
1321
+ isConnector: Optional[bool] = None
1322
+ """
1323
+ whether atom connects to atoms outside of functional group.
1324
+ """
1325
+ id: int
1326
+ """
1327
+ integer id of this entry
1328
+ """
1329
+
1330
+
1331
+ class FunctionalGroupPatternSchema(BaseModel):
1332
+ name: Name76
1333
+ atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
1334
+ """
1335
+ array of objects containing integer id each
1336
+ """
1337
+ SMARTS: Optional[str] = None
1338
+ """
1339
+ SMARTS string for classification of FG; https://en.wikipedia.org/wiki/SMILES_arbitrary_target_specification
1340
+ """
1341
+
1342
+
1343
+ class Name77(Enum):
1344
+ ring = "ring"
1345
+
1346
+
1347
+ class RingPatternSchema(BaseModel):
1348
+ name: Name77
1349
+ atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
1350
+ """
1351
+ array of objects containing integer id each
1352
+ """
1353
+ isAromatic: Optional[bool] = None
1354
+
1355
+
1356
+ class Name78(Enum):
1357
+ special_bond = "special_bond"
1358
+
1359
+
1360
+ class SpecialBondPatternSchema(BaseModel):
1361
+ name: Name78
1362
+ atoms: Optional[List[ObjectWithId]] = Field(None, title="array of ids")
1363
+ """
1364
+ array of objects containing integer id each
1365
+ """
1366
+
1367
+
1368
+ class Name79(Enum):
1369
+ convergence_electronic = "convergence_electronic"
1370
+
1371
+
1372
+ class Units61(Enum):
1373
+ eV = "eV"
1374
+ Ry = "Ry"
1375
+ hartree = "hartree"
1376
+
1377
+
1378
+ class ConvergenceElectronicPropertySchema(BaseModel):
1379
+ name: Name79
1380
+ units: Units61
1381
+ data: List[List[float]]
1382
+
1383
+
1384
+ class Name80(Enum):
1385
+ convergence_ionic = "convergence_ionic"
1386
+
1387
+
1388
+ class Units62(Enum):
1389
+ eV = "eV"
1390
+
1391
+
1392
+ class Units63(Enum):
1393
+ eV = "eV"
1394
+ Ry = "Ry"
1395
+ hartree = "hartree"
1396
+
1397
+
1398
+ class Electronic(BaseModel):
1399
+ units: Optional[Units63] = None
1400
+ """
1401
+ units for force tolerance
1402
+ """
1403
+ data: Optional[List[float]] = None
1404
+
1405
+
1406
+ class Datum(BaseModel):
1407
+ energy: float
1408
+ """
1409
+ converged electronic energy for this structure (last in `electronic`)
1410
+ """
1411
+ structure: Optional[Dict[str, Any]] = None
1412
+ """
1413
+ TODO: structural information at each step to be here
1414
+ """
1415
+ electronic: Optional[Electronic] = None
1416
+ """
1417
+ data about electronic at this ionic step
1418
+ """
1419
+
1420
+
1421
+ class ConvergenceIonicPropertySchema(BaseModel):
1422
+ name: Name80
1423
+ tolerance: Optional[Any] = None
1424
+ """
1425
+ for ionic convergence tolerance shows force tolerance
1426
+ """
1427
+ units: Units62
1428
+ """
1429
+ units for force tolerance
1430
+ """
1431
+ data: List[Datum]
1432
+ """
1433
+ energetic and structural information
1434
+ """
1435
+
1436
+
1437
+ class Info(BaseModel):
1438
+ jobId: str
1439
+ """
1440
+ Job's identity
1441
+ """
1442
+ unitId: str
1443
+ """
1444
+ Id of the unit that extracted the result
1445
+ """
1446
+
1447
+
1448
+ class Type5(Enum):
18
1449
  experiment = "experiment"
19
1450
 
20
1451
 
@@ -55,7 +1486,7 @@ class LocationSchema(BaseModel):
55
1486
  """
56
1487
 
57
1488
 
58
- class Type5(Enum):
1489
+ class Type6(Enum):
59
1490
  literature = "literature"
60
1491
 
61
1492
 
@@ -65,7 +1496,7 @@ class PagesSchema(BaseModel):
65
1496
 
66
1497
 
67
1498
  class LiteratureReferenceSchema(BaseModel):
68
- type: Optional[Type5] = None
1499
+ type: Optional[Type6] = None
69
1500
  doi: Optional[str] = None
70
1501
  """
71
1502
  Digital Object Identifier of the reference.
@@ -125,7 +1556,7 @@ class LiteratureReferenceSchema(BaseModel):
125
1556
 
126
1557
 
127
1558
  class InfoForCharacteristicObtainedByExperiment(BaseModel):
128
- type: Optional[Type] = None
1559
+ type: Optional[Type5] = None
129
1560
  authors: List[ExperimentAuthorSchema]
130
1561
  """
131
1562
  experiment authors
@@ -154,12 +1585,24 @@ class InfoForCharacteristicObtainedByExperiment(BaseModel):
154
1585
  """
155
1586
 
156
1587
 
1588
+ class PropertySourceSchema(BaseModel):
1589
+ type: Optional[str] = None
1590
+ """
1591
+ Type of the material property's source.
1592
+ """
1593
+ url: Optional[str] = None
1594
+ """
1595
+ Internet address of the reference.
1596
+ """
1597
+ info: Union[Info, InfoForCharacteristicObtainedByExperiment]
1598
+
1599
+
157
1600
  class SystemTag(Enum):
158
1601
  isRefined = "isRefined"
159
1602
  isBest = "isBest"
160
1603
 
161
1604
 
162
- class SchemaOfBaseMaterialSPreliminaryProperty(BaseModel):
1605
+ class PropertyBaseSchema(BaseModel):
163
1606
  slug: Optional[str] = None
164
1607
  """
165
1608
  property slug, e.g. total_energy
@@ -168,14 +1611,49 @@ class SchemaOfBaseMaterialSPreliminaryProperty(BaseModel):
168
1611
  """
169
1612
  property group, e.g. qe:dft:gga:pbe
170
1613
  """
171
- data: Dict[str, Any]
1614
+ data: Union[
1615
+ IonizationPotentialElementalPropertySchema,
1616
+ ValenceBandOffsetPropertySchema,
1617
+ ZeroPointEnergyPropertySchema,
1618
+ PressurePropertySchema,
1619
+ ReactionEnergyBarrierPropertySchema,
1620
+ SurfaceEnergyPropertySchema,
1621
+ TotalEnergyPropertySchema,
1622
+ TotalForcesPropertySchema,
1623
+ ElectronAffinityPropertySchema,
1624
+ FermiEnergyPropertySchema,
1625
+ FormationEnergyPropertySchema,
1626
+ IonizationPotentialScalarPropertySchema,
1627
+ StressTensorPropertySchema,
1628
+ BandGapsPropertySchema,
1629
+ BandStructurePropertySchema,
1630
+ PhononBandStructurePropertySchema,
1631
+ TotalEnergyContributionsPropertySchema,
1632
+ VibrationalSpectrumPropertySchema,
1633
+ PhononDensityOfStatesPropertySchema,
1634
+ PotentialProfilePropertySchema,
1635
+ ReactionEnergyProfilePropertySchema,
1636
+ DensityOfStatesPropertySchema,
1637
+ DielectricTensorPropertySchema,
1638
+ FileContentPropertySchema,
1639
+ HubbardUParametersPropertySchema,
1640
+ HubbardVParametersPropertySchema,
1641
+ HubbardVNNParametersPropertySchema,
1642
+ AveragePotentialProfilePropertySchema,
1643
+ ChargeDensityProfilePropertySchema,
1644
+ MagneticMomentsPropertySchema,
1645
+ AtomicForcesPropertySchema,
1646
+ AtomicConstraintsPropertySchema,
1647
+ FunctionalGroupPatternSchema,
1648
+ RingPatternSchema,
1649
+ SpecialBondPatternSchema,
1650
+ ConvergenceElectronicPropertySchema,
1651
+ ConvergenceIonicPropertySchema,
1652
+ ]
172
1653
  """
173
1654
  container of the information, specific to each property
174
1655
  """
175
- source: field_This_could_be_an_article__a_simulation_on_Exabyte__an_external_simulation__etc.Field = Field(
176
- ...,
177
- title="The source of a property. This could be an article, a simulation on Exabyte, an external simulation, etc.",
178
- )
1656
+ source: PropertySourceSchema = Field(..., title="Property source schema")
179
1657
  exabyteId: Optional[List[str]] = None
180
1658
  """
181
1659
  Id of the corresponding item in the entity bank that this property is obtained for