mat3ra-esse 2025.4.17.post0__py3-none-any.whl → 2025.4.22.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 (87) hide show
  1. mat3ra/esse/data/examples.py +1 -1
  2. mat3ra/esse/data/schemas.py +1 -1
  3. mat3ra/esse/models/apse/db/nist_jarvis/2024_3.13/__init__.py +3 -0
  4. mat3ra/esse/models/apse/db/nist_jarvis/2024_3.13/atoms.py +41 -0
  5. mat3ra/esse/models/apse/db/nist_jarvis/2024_3.13/db_entry.py +55 -0
  6. mat3ra/esse/models/apse/file/applications/espresso/7.2/__init__.py +3 -0
  7. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/__init__.py +3 -0
  8. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/atomic_positions.py +51 -0
  9. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/atomic_species.py +34 -0
  10. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/cell.py +111 -0
  11. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/cell_parameters.py +36 -0
  12. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/control.py +169 -0
  13. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/electrons.py +139 -0
  14. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/hubbard.py +194 -0
  15. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/ions.py +422 -0
  16. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/k_points.py +73 -0
  17. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw.x/system.py +841 -0
  18. mat3ra/esse/models/apse/file/applications/espresso/7.2/pw_x.py +1990 -0
  19. mat3ra/esse/models/core/abstract/coordinate_3d.py +13 -0
  20. mat3ra/esse/models/core/abstract/kpoint.py +16 -0
  21. mat3ra/esse/models/core/abstract/matrix_3x3.py +17 -0
  22. mat3ra/esse/models/core/abstract/vector_3d.py +13 -0
  23. mat3ra/esse/models/core/abstract/vector_boolean_3d.py +13 -0
  24. mat3ra/esse/models/core/primitive/array_of_ids.py +5 -5
  25. mat3ra/esse/models/core/primitive/object_with_id.py +14 -0
  26. mat3ra/esse/models/core/primitive/object_with_id_and_value.py +20 -0
  27. mat3ra/esse/models/core/reusable/atomic_scalars.py +4 -4
  28. mat3ra/esse/models/core/reusable/atomic_string.py +18 -0
  29. mat3ra/esse/models/core/reusable/atomic_vector.py +20 -0
  30. mat3ra/esse/models/core/reusable/atomic_vectors.py +9 -9
  31. mat3ra/esse/models/core/reusable/band_gap.py +8 -2
  32. mat3ra/esse/models/core/reusable/energy.py +2 -2
  33. mat3ra/esse/models/core/reusable/energy_accuracy_levels/__init__.py +3 -0
  34. mat3ra/esse/models/element.py +6 -6
  35. mat3ra/esse/models/material/__init__.py +68 -46
  36. mat3ra/esse/models/methods_directory/physical/psp/file/__init__.py +129 -0
  37. mat3ra/esse/models/methods_directory/physical/psp/file_data_item/__init__.py +111 -0
  38. mat3ra/esse/models/properties_directory/derived_properties.py +10 -10
  39. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +2 -2
  40. mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +12 -3
  41. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +2 -2
  42. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  43. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  44. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  45. mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +1 -1
  46. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +26 -26
  47. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  48. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  49. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  50. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  51. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  52. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  53. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  54. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  55. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  56. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  57. mat3ra/esse/models/properties_directory/structural/atomic_forces.py +8 -8
  58. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +38 -16
  59. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraint.py +20 -0
  60. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints.py +11 -14
  61. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +33 -0
  62. mat3ra/esse/models/properties_directory/structural/basis/atomic_coordinate.py +10 -4
  63. mat3ra/esse/models/properties_directory/structural/basis/atomic_coordinates.py +16 -27
  64. mat3ra/esse/models/properties_directory/structural/basis/atomic_element.py +6 -7
  65. mat3ra/esse/models/properties_directory/structural/basis/atomic_elements.py +27 -0
  66. mat3ra/esse/models/properties_directory/structural/basis/atomic_label.py +11 -5
  67. mat3ra/esse/models/properties_directory/structural/basis/atomic_labels.py +27 -0
  68. mat3ra/esse/models/properties_directory/structural/basis/bonds.py +3 -3
  69. mat3ra/esse/models/properties_directory/structural/basis/units_enum.py +12 -0
  70. mat3ra/esse/models/properties_directory/structural/lattice/__init__.py +16 -16
  71. mat3ra/esse/models/properties_directory/structural/lattice/lattice_vectors.py +10 -11
  72. mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +3 -0
  73. mat3ra/esse/models/properties_directory/structural/lattice/units/angle_enum.py +12 -0
  74. mat3ra/esse/models/properties_directory/structural/lattice/units/length_enum.py +12 -0
  75. mat3ra/esse/models/properties_directory/structural/lattice/vectors/__init__.py +26 -0
  76. mat3ra/esse/models/properties_directory/structural/lattice/vectors/units_enum.py +12 -0
  77. mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +8 -8
  78. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +9 -9
  79. mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +3 -3
  80. mat3ra/esse/models/properties_directory/structural/patterns/ring.py +3 -3
  81. mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +3 -3
  82. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  83. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/METADATA +1 -1
  84. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/RECORD +87 -49
  85. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/WHEEL +1 -1
  86. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/licenses/LICENSE.md +0 -0
  87. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.4.22.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,111 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: methods_directory/physical/psp/file_data_item.json
3
+ # version: 0.25.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Optional
9
+
10
+ from pydantic import BaseModel, ConfigDict, Field, confloat, conint, constr
11
+
12
+ from ..Reusable_schema_for_energy_value_with_unit_corresponding_to_a_specific_accuracy_level__e import (
13
+ g,
14
+ )
15
+
16
+
17
+ class Type(Enum):
18
+ us = "us"
19
+ nc = "nc"
20
+ nc_fr = "nc-fr"
21
+ paw = "paw"
22
+ coulomb = "coulomb"
23
+
24
+
25
+ class ExchangeCorrelation(BaseModel):
26
+ approximation: Optional[str] = None
27
+ """
28
+ DFT approximation
29
+ """
30
+ functional: Optional[str] = None
31
+ """
32
+ Exchange correlation functional
33
+ """
34
+ path: Optional[str] = Field(None, title="category path schema")
35
+ """
36
+ TODO: Use regex once schema draft version has been updated
37
+ """
38
+
39
+
40
+ class AtomicOrbitalSchema(BaseModel):
41
+ orbitalName: Optional[constr(pattern=r"^[1-7][sSpPdDfF]$")] = None
42
+ orbitalIndex: Optional[conint(ge=1)] = None
43
+ principalNumber: Optional[conint(ge=1, le=7)] = None
44
+ angularMomentum: Optional[conint(ge=0, le=3)] = None
45
+ occupation: Optional[confloat(ge=0.0, le=14.0)] = None
46
+ """
47
+ Shell occupation
48
+ """
49
+
50
+
51
+ class Name(Enum):
52
+ pseudopotential = "pseudopotential"
53
+
54
+
55
+ class Cutoffs(BaseModel):
56
+ model_config = ConfigDict(
57
+ extra="forbid",
58
+ )
59
+ wavefunction: Optional[List[g.FieldUsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None
60
+ """
61
+ Energy cutoff values for wavefunction plane wave expansion.
62
+ """
63
+ density: Optional[List[g.FieldUsedForSuggestedWavefunctionAndChargeDensityCutoffs]] = None
64
+ """
65
+ Energy cutoff values for charge density plane wave expansion.
66
+ """
67
+
68
+
69
+ class FileDataItem(BaseModel):
70
+ element: str
71
+ """
72
+ chemical element
73
+ """
74
+ hash: Optional[str] = None
75
+ """
76
+ MD5 hash of the pseudopotential file
77
+ """
78
+ type: Type
79
+ source: str
80
+ """
81
+ explains where this came from
82
+ """
83
+ version: Optional[str] = None
84
+ """
85
+ explains the version of where this came from
86
+ """
87
+ exchangeCorrelation: ExchangeCorrelation
88
+ valenceConfiguration: Optional[List[AtomicOrbitalSchema]] = None
89
+ """
90
+ contains pseudo orbital information, including orbital names and occupations
91
+ """
92
+ path: str
93
+ """
94
+ location of the pseudopotential file on filesystem
95
+ """
96
+ apps: List[str]
97
+ """
98
+ The names of the simulation engines that can use this pseudopotential, e.g. espresso
99
+ """
100
+ filename: Optional[str] = None
101
+ """
102
+ filename of pseudopotential file on filesystem
103
+ """
104
+ name: Optional[Name] = None
105
+ """
106
+ name of the data category
107
+ """
108
+ cutoffs: Optional[Cutoffs] = None
109
+ """
110
+ Suggested cutoff values for wave function and charge density.
111
+ """
@@ -24,30 +24,30 @@ class VolumeSchema(BaseModel):
24
24
  value: float
25
25
 
26
26
 
27
- class Name13(Enum):
27
+ class Name12(Enum):
28
28
  density = "density"
29
29
 
30
30
 
31
- class Units15(Enum):
31
+ class Units13(Enum):
32
32
  g_cm_3 = "g/cm^3"
33
33
 
34
34
 
35
35
  class DensitySchema(BaseModel):
36
36
  name: Literal["1#-datamodel-code-generator-#-object-#-special-#"]
37
- units: Optional[Units15] = None
37
+ units: Optional[Units13] = None
38
38
  value: float
39
39
 
40
40
 
41
- class Units16(Enum):
41
+ class Units14(Enum):
42
42
  angstrom = "angstrom"
43
43
 
44
44
 
45
45
  class ScalarSchema(BaseModel):
46
- units: Optional[Units16] = None
46
+ units: Optional[Units14] = None
47
47
  value: float
48
48
 
49
49
 
50
- class Name14(Enum):
50
+ class Name13(Enum):
51
51
  symmetry = "symmetry"
52
52
 
53
53
 
@@ -67,7 +67,7 @@ class SymmetrySchema(BaseModel):
67
67
  name: Literal["2#-datamodel-code-generator-#-object-#-special-#"]
68
68
 
69
69
 
70
- class Name15(Enum):
70
+ class Name14(Enum):
71
71
  elemental_ratio = "elemental_ratio"
72
72
 
73
73
 
@@ -80,7 +80,7 @@ class ElementalRatio(BaseModel):
80
80
  """
81
81
 
82
82
 
83
- class Name16(Enum):
83
+ class Name15(Enum):
84
84
  p_norm = "p-norm"
85
85
 
86
86
 
@@ -93,7 +93,7 @@ class PNorm(BaseModel):
93
93
  value: float
94
94
 
95
95
 
96
- class Name17(Enum):
96
+ class Name16(Enum):
97
97
  inchi = "inchi"
98
98
 
99
99
 
@@ -102,7 +102,7 @@ class InChIRepresentationSchema(BaseModel):
102
102
  value: str
103
103
 
104
104
 
105
- class Name18(Enum):
105
+ class Name17(Enum):
106
106
  inchi_key = "inchi_key"
107
107
 
108
108
 
@@ -42,7 +42,7 @@ class Label1(Enum):
42
42
  energy = "energy"
43
43
 
44
44
 
45
- class Units4(Enum):
45
+ class Units3(Enum):
46
46
  kJ_mol = "kJ/mol"
47
47
  eV = "eV"
48
48
  J_mol = "J/mol"
@@ -57,7 +57,7 @@ class AxisSchema3(BaseModel):
57
57
  """
58
58
  label of an axis object
59
59
  """
60
- units: Optional[Units4] = None
60
+ units: Optional[Units3] = None
61
61
  """
62
62
  units for an axis
63
63
  """
@@ -30,8 +30,14 @@ class Units(Enum):
30
30
 
31
31
 
32
32
  class BandGapSchema(BaseModel):
33
- kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="point schema")
34
- kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="point schema")
33
+ kpointConduction: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
34
+ """
35
+ A k-point is a point in reciprocal space of a crystal.
36
+ """
37
+ kpointValence: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
38
+ """
39
+ A k-point is a point in reciprocal space of a crystal.
40
+ """
35
41
  eigenvalueConduction: Optional[float] = None
36
42
  """
37
43
  eigenvalue at k-point in conduction band
@@ -53,7 +59,10 @@ class Eigenvalue1(BaseModel):
53
59
 
54
60
 
55
61
  class Eigenvalue(BaseModel):
56
- kpoint: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="point schema")
62
+ kpoint: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="kpoint schema")
63
+ """
64
+ A k-point is a point in reciprocal space of a crystal.
65
+ """
57
66
  weight: Optional[float] = None
58
67
  eigenvalues: Optional[List[Eigenvalue1]] = None
59
68
 
@@ -34,7 +34,7 @@ class Label3(Enum):
34
34
  energy = "energy"
35
35
 
36
36
 
37
- class Units8(Enum):
37
+ class Units7(Enum):
38
38
  kJ_mol = "kJ/mol"
39
39
  eV = "eV"
40
40
  J_mol = "J/mol"
@@ -49,7 +49,7 @@ class AxisSchema6(BaseModel):
49
49
  """
50
50
  label of an axis object
51
51
  """
52
- units: Optional[Units8] = None
52
+ units: Optional[Units7] = None
53
53
  """
54
54
  units for an axis
55
55
  """
@@ -39,7 +39,7 @@ class Label7(Enum):
39
39
  density_of_states = "density of states"
40
40
 
41
41
 
42
- class Units13(Enum):
42
+ class Units11(Enum):
43
43
  states_unitcell = "states/unitcell"
44
44
 
45
45
 
@@ -48,7 +48,7 @@ class AxisSchema10(BaseModel):
48
48
  """
49
49
  label of an axis object
50
50
  """
51
- units: Optional[Units13] = None
51
+ units: Optional[Units11] = None
52
52
  """
53
53
  units for an axis
54
54
  """
@@ -34,7 +34,7 @@ class Label9(Enum):
34
34
  frequency = "frequency"
35
35
 
36
36
 
37
- class Units45(Enum):
37
+ class Units39(Enum):
38
38
  cm_1 = "cm-1"
39
39
  THz = "THz"
40
40
  meV = "meV"
@@ -45,7 +45,7 @@ class AxisSchema12(BaseModel):
45
45
  """
46
46
  label of an axis object
47
47
  """
48
- units: Optional[Units45] = None
48
+ units: Optional[Units39] = None
49
49
  """
50
50
  units for an axis
51
51
  """
@@ -35,7 +35,7 @@ class Label11(Enum):
35
35
  Phonon_DOS = "Phonon DOS"
36
36
 
37
37
 
38
- class Units47(Enum):
38
+ class Units41(Enum):
39
39
  states_cm_1 = "states/cm-1"
40
40
  states_THz = "states/THz"
41
41
  states_meV = "states/meV"
@@ -46,7 +46,7 @@ class AxisSchema14(BaseModel):
46
46
  """
47
47
  label of an axis object
48
48
  """
49
- units: Optional[Units47] = None
49
+ units: Optional[Units41] = None
50
50
  """
51
51
  units for an axis
52
52
  """
@@ -25,7 +25,7 @@ class Units(Enum):
25
25
 
26
26
  class StressTensorSchema(BaseModel):
27
27
  value: Optional[List[ArrayOf3NumberElementsSchema]] = Field(
28
- None, max_length=3, min_length=3, title="3 dimensional tensor schema"
28
+ None, max_length=3, min_length=3, title="matrix 3x3 schema"
29
29
  )
30
30
  name: Optional[Name] = None
31
31
  units: Optional[Units] = None
@@ -19,115 +19,115 @@ class ScalarSchema(BaseModel):
19
19
  value: float
20
20
 
21
21
 
22
- class Name75(Enum):
22
+ class Name74(Enum):
23
23
  harris_foulkes = "harris_foulkes"
24
24
 
25
25
 
26
26
  class ScalarSchema6(BaseModel):
27
- name: Optional[Name75] = None
27
+ name: Optional[Name74] = None
28
28
  value: float
29
29
 
30
30
 
31
- class Name76(Enum):
31
+ class Name75(Enum):
32
32
  one_electron = "one_electron"
33
33
 
34
34
 
35
35
  class ScalarSchema7(BaseModel):
36
- name: Optional[Name76] = None
36
+ name: Optional[Name75] = None
37
37
  value: float
38
38
 
39
39
 
40
- class Name77(Enum):
40
+ class Name76(Enum):
41
41
  hartree = "hartree"
42
42
 
43
43
 
44
44
  class ScalarSchema8(BaseModel):
45
- name: Optional[Name77] = None
45
+ name: Optional[Name76] = None
46
46
  value: float
47
47
 
48
48
 
49
- class Name78(Enum):
49
+ class Name77(Enum):
50
50
  exchange = "exchange"
51
51
 
52
52
 
53
53
  class ScalarSchema9(BaseModel):
54
- name: Optional[Name78] = None
54
+ name: Optional[Name77] = None
55
55
  value: float
56
56
 
57
57
 
58
- class Name79(Enum):
58
+ class Name78(Enum):
59
59
  exchange_correlation = "exchange_correlation"
60
60
 
61
61
 
62
62
  class ScalarSchema10(BaseModel):
63
- name: Optional[Name79] = None
63
+ name: Optional[Name78] = None
64
64
  value: float
65
65
 
66
66
 
67
- class Name80(Enum):
67
+ class Name79(Enum):
68
68
  ewald = "ewald"
69
69
 
70
70
 
71
71
  class ScalarSchema11(BaseModel):
72
- name: Optional[Name80] = None
72
+ name: Optional[Name79] = None
73
73
  value: float
74
74
 
75
75
 
76
- class Name81(Enum):
76
+ class Name80(Enum):
77
77
  alphaZ = "alphaZ"
78
78
 
79
79
 
80
80
  class ScalarSchema12(BaseModel):
81
- name: Optional[Name81] = None
81
+ name: Optional[Name80] = None
82
82
  value: float
83
83
 
84
84
 
85
- class Name82(Enum):
85
+ class Name81(Enum):
86
86
  atomic_energy = "atomic_energy"
87
87
 
88
88
 
89
89
  class ScalarSchema13(BaseModel):
90
- name: Optional[Name82] = None
90
+ name: Optional[Name81] = None
91
91
  value: float
92
92
 
93
93
 
94
- class Name83(Enum):
94
+ class Name82(Enum):
95
95
  eigenvalues = "eigenvalues"
96
96
 
97
97
 
98
98
  class ScalarSchema14(BaseModel):
99
- name: Optional[Name83] = None
99
+ name: Optional[Name82] = None
100
100
  value: float
101
101
 
102
102
 
103
- class Name84(Enum):
103
+ class Name83(Enum):
104
104
  PAW_double_counting_correction_2 = "PAW_double-counting_correction_2"
105
105
 
106
106
 
107
107
  class ScalarSchema15(BaseModel):
108
- name: Optional[Name84] = None
108
+ name: Optional[Name83] = None
109
109
  value: float
110
110
 
111
111
 
112
- class Name85(Enum):
112
+ class Name84(Enum):
113
113
  PAW_double_counting_correction_3 = "PAW_double-counting_correction_3"
114
114
 
115
115
 
116
116
  class ScalarSchema16(BaseModel):
117
- name: Optional[Name85] = None
117
+ name: Optional[Name84] = None
118
118
  value: float
119
119
 
120
120
 
121
- class Name86(Enum):
121
+ class Name85(Enum):
122
122
  hartree_fock = "hartree_fock"
123
123
 
124
124
 
125
125
  class ScalarSchema17(BaseModel):
126
- name: Optional[Name86] = None
126
+ name: Optional[Name85] = None
127
127
  value: float
128
128
 
129
129
 
130
- class Name87(Enum):
130
+ class Name86(Enum):
131
131
  total_energy_contributions = "total_energy_contributions"
132
132
 
133
133
 
@@ -194,5 +194,5 @@ class TotalEnergyContributionsSchema(BaseModel):
194
194
  """
195
195
  hartree-fock contribution
196
196
  """
197
- name: Optional[Name87] = None
197
+ name: Optional[Name86] = None
198
198
  units: Optional[Units] = None
@@ -38,7 +38,7 @@ class Label17(Enum):
38
38
  Absorption_coefficient = "Absorption coefficient"
39
39
 
40
40
 
41
- class Units64(Enum):
41
+ class Units58(Enum):
42
42
  field_debye_angstrom__2 = "(debye/angstrom)^2"
43
43
  km_mol = "km/mol"
44
44
  m_mol = "m/mol"
@@ -50,7 +50,7 @@ class AxisSchema20(BaseModel):
50
50
  """
51
51
  label of an axis object
52
52
  """
53
- units: Optional[Units64] = None
53
+ units: Optional[Units58] = None
54
54
  """
55
55
  units for an axis
56
56
  """
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units18(Enum):
27
+ class Units16(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class ElectronAffinitySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units18]
33
+ units: Union[Units, Units16]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units25(Enum):
27
+ class Units23(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class FermiEnergySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units25]
33
+ units: Union[Units, Units23]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units27(Enum):
27
+ class Units25(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class FormationEnergySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units27]
33
+ units: Union[Units, Units25]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units35(Enum):
27
+ class Units33(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class IonizationPotentialSchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units35]
33
+ units: Union[Units, Units33]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units51(Enum):
27
+ class Units45(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class ReactionEnergyBarrierSchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units51]
33
+ units: Union[Units, Units45]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units55(Enum):
27
+ class Units49(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class SurfaceEnergySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units55]
33
+ units: Union[Units, Units49]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units58(Enum):
27
+ class Units52(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class TotalEnergySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units58]
33
+ units: Union[Units, Units52]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units62(Enum):
27
+ class Units56(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class ValenceBandOffsetSchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units62]
33
+ units: Union[Units, Units56]
34
34
  value: float
@@ -24,11 +24,11 @@ class Units(Enum):
24
24
  eV_atom = "eV/atom"
25
25
 
26
26
 
27
- class Units67(Enum):
27
+ class Units61(Enum):
28
28
  eV_A_2 = "eV/A^2"
29
29
 
30
30
 
31
31
  class ZeroPointEnergySchema(BaseModel):
32
32
  name: Name
33
- units: Union[Units, Units67]
33
+ units: Union[Units, Units61]
34
34
  value: float
@@ -5,7 +5,7 @@
5
5
  from __future__ import annotations
6
6
 
7
7
  from enum import Enum
8
- from typing import List, Optional, Union
8
+ from typing import List, Optional
9
9
 
10
10
  from pydantic import BaseModel, Field
11
11
 
@@ -14,9 +14,12 @@ class Name(Enum):
14
14
  atomic_forces = "atomic_forces"
15
15
 
16
16
 
17
- class AtomicVectorsSchemaItem(BaseModel):
18
- value: Optional[Union[List[float], List[bool]]] = Field(None, title="vector schema")
19
- id: Optional[int] = None
17
+ class AtomicVectorSchema(BaseModel):
18
+ value: List[float] = Field(..., max_length=3, min_length=3, title="vector 3d schema")
19
+ """
20
+ value of this entry
21
+ """
22
+ id: int
20
23
  """
21
24
  integer id of this entry
22
25
  """
@@ -33,8 +36,5 @@ class Units(Enum):
33
36
 
34
37
  class AtomicForces(BaseModel):
35
38
  name: Optional[Name] = None
36
- values: Optional[List[AtomicVectorsSchemaItem]] = Field(None, title="atomic vectors schema")
37
- """
38
- array of objects containing integer id each
39
- """
39
+ values: Optional[List[AtomicVectorSchema]] = Field(None, title="atomic vectors schema")
40
40
  units: Optional[Units] = None