mat3ra-esse 2025.4.17.post0__py3-none-any.whl → 2025.5.13.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 (101) 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_2d.py +13 -0
  20. mat3ra/esse/models/core/abstract/coordinate_3d.py +13 -0
  21. mat3ra/esse/models/core/abstract/kpoint.py +16 -0
  22. mat3ra/esse/models/core/abstract/matrix_3x3.py +17 -0
  23. mat3ra/esse/models/core/abstract/vector_3d.py +13 -0
  24. mat3ra/esse/models/core/abstract/vector_boolean_3d.py +13 -0
  25. mat3ra/esse/models/core/primitive/array_of_ids.py +5 -5
  26. mat3ra/esse/models/core/primitive/object_with_id.py +14 -0
  27. mat3ra/esse/models/core/primitive/object_with_id_and_value.py +20 -0
  28. mat3ra/esse/models/core/reusable/atomic_scalars.py +4 -4
  29. mat3ra/esse/models/core/reusable/atomic_string.py +18 -0
  30. mat3ra/esse/models/core/reusable/atomic_vector.py +20 -0
  31. mat3ra/esse/models/core/reusable/atomic_vectors.py +9 -9
  32. mat3ra/esse/models/core/reusable/band_gap.py +8 -2
  33. mat3ra/esse/models/core/reusable/energy.py +2 -2
  34. mat3ra/esse/models/core/reusable/energy_accuracy_levels/__init__.py +3 -0
  35. mat3ra/esse/models/element.py +6 -6
  36. mat3ra/esse/models/material/__init__.py +68 -46
  37. mat3ra/esse/models/material/reusable/__init__.py +3 -0
  38. mat3ra/esse/models/material/reusable/repetitions.py +25 -0
  39. mat3ra/esse/models/material/reusable/slab/__init__.py +3 -0
  40. mat3ra/esse/models/material/reusable/slab/enums.py +13 -0
  41. mat3ra/esse/models/material/reusable/slab/miller_indices.py +16 -0
  42. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +16 -0
  43. mat3ra/esse/models/material/reusable/slab/termination.py +18 -0
  44. mat3ra/esse/models/material/reusable/slab/thickness.py +16 -0
  45. mat3ra/esse/models/material/reusable/slab/vacuum.py +16 -0
  46. mat3ra/esse/models/material/reusable/supercell_matrix_2d.py +25 -0
  47. mat3ra/esse/models/material/reusable/supercell_matrix_3d.py +27 -0
  48. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/__init__.py +3 -0
  49. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +445 -0
  50. mat3ra/esse/models/methods_directory/physical/psp/file/__init__.py +129 -0
  51. mat3ra/esse/models/methods_directory/physical/psp/file_data_item/__init__.py +111 -0
  52. mat3ra/esse/models/properties_directory/derived_properties.py +13 -13
  53. mat3ra/esse/models/properties_directory/non_scalar/average_potential_profile.py +2 -2
  54. mat3ra/esse/models/properties_directory/non_scalar/band_gaps.py +12 -3
  55. mat3ra/esse/models/properties_directory/non_scalar/band_structure.py +2 -2
  56. mat3ra/esse/models/properties_directory/non_scalar/density_of_states.py +2 -2
  57. mat3ra/esse/models/properties_directory/non_scalar/phonon_dispersions.py +2 -2
  58. mat3ra/esse/models/properties_directory/non_scalar/phonon_dos.py +2 -2
  59. mat3ra/esse/models/properties_directory/non_scalar/stress_tensor.py +1 -1
  60. mat3ra/esse/models/properties_directory/non_scalar/total_energy_contributions.py +50 -50
  61. mat3ra/esse/models/properties_directory/non_scalar/vibrational_spectrum.py +2 -2
  62. mat3ra/esse/models/properties_directory/scalar/electron_affinity.py +2 -2
  63. mat3ra/esse/models/properties_directory/scalar/fermi_energy.py +2 -2
  64. mat3ra/esse/models/properties_directory/scalar/formation_energy.py +2 -2
  65. mat3ra/esse/models/properties_directory/scalar/ionization_potential.py +2 -2
  66. mat3ra/esse/models/properties_directory/scalar/reaction_energy_barrier.py +2 -2
  67. mat3ra/esse/models/properties_directory/scalar/surface_energy.py +2 -2
  68. mat3ra/esse/models/properties_directory/scalar/total_energy.py +2 -2
  69. mat3ra/esse/models/properties_directory/scalar/valence_band_offset.py +2 -2
  70. mat3ra/esse/models/properties_directory/scalar/zero_point_energy.py +2 -2
  71. mat3ra/esse/models/properties_directory/structural/atomic_forces.py +8 -8
  72. mat3ra/esse/models/properties_directory/structural/basis/__init__.py +38 -16
  73. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraint.py +20 -0
  74. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints.py +11 -14
  75. mat3ra/esse/models/properties_directory/structural/basis/atomic_constraints_property.py +33 -0
  76. mat3ra/esse/models/properties_directory/structural/basis/atomic_coordinate.py +10 -4
  77. mat3ra/esse/models/properties_directory/structural/basis/atomic_coordinates.py +16 -27
  78. mat3ra/esse/models/properties_directory/structural/basis/atomic_element.py +6 -7
  79. mat3ra/esse/models/properties_directory/structural/basis/atomic_elements.py +27 -0
  80. mat3ra/esse/models/properties_directory/structural/basis/atomic_label.py +11 -5
  81. mat3ra/esse/models/properties_directory/structural/basis/atomic_labels.py +27 -0
  82. mat3ra/esse/models/properties_directory/structural/basis/bonds.py +3 -3
  83. mat3ra/esse/models/properties_directory/structural/basis/units_enum.py +12 -0
  84. mat3ra/esse/models/properties_directory/structural/lattice/__init__.py +16 -16
  85. mat3ra/esse/models/properties_directory/structural/lattice/lattice_vectors.py +10 -11
  86. mat3ra/esse/models/properties_directory/structural/lattice/units/__init__.py +3 -0
  87. mat3ra/esse/models/properties_directory/structural/lattice/units/angle_enum.py +12 -0
  88. mat3ra/esse/models/properties_directory/structural/lattice/units/length_enum.py +12 -0
  89. mat3ra/esse/models/properties_directory/structural/lattice/vectors/__init__.py +26 -0
  90. mat3ra/esse/models/properties_directory/structural/lattice/vectors/units_enum.py +12 -0
  91. mat3ra/esse/models/properties_directory/structural/magnetic_moments.py +8 -8
  92. mat3ra/esse/models/properties_directory/structural/molecular_pattern.py +9 -9
  93. mat3ra/esse/models/properties_directory/structural/patterns/functional_group.py +3 -3
  94. mat3ra/esse/models/properties_directory/structural/patterns/ring.py +3 -3
  95. mat3ra/esse/models/properties_directory/structural/patterns/special_bond.py +3 -3
  96. mat3ra/esse/models/properties_directory/workflow/convergence/ionic.py +2 -2
  97. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/METADATA +1 -1
  98. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/RECORD +101 -49
  99. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/WHEEL +1 -1
  100. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/licenses/LICENSE.md +0 -0
  101. {mat3ra_esse-2025.4.17.post0.dist-info → mat3ra_esse-2025.5.13.post0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,194 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: apse/file/applications/espresso/7.2/pw.x/hubbard.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Optional, Union
9
+
10
+ from pydantic import BaseModel, ConfigDict, Field
11
+
12
+
13
+ class CardOption(Enum):
14
+ atomic = "atomic"
15
+ ortho_atomic = "ortho-atomic"
16
+ norm_atomic = "norm-atomic"
17
+ wf = "wf"
18
+ pseudo = "pseudo"
19
+
20
+
21
+ class U(Enum):
22
+ U = "U"
23
+
24
+
25
+ class Values(BaseModel):
26
+ model_config = ConfigDict(
27
+ extra="forbid",
28
+ )
29
+ U_1: Optional[U] = Field(None, alias="U")
30
+ """
31
+ string constant "U"; indicates the specs for the U parameter will be given
32
+ """
33
+ label: Optional[str] = None
34
+ """
35
+ label of the atom (as defined in ATOMIC_SPECIES)
36
+ """
37
+ manifold: Optional[str] = None
38
+ """
39
+ specs of the manifold (e.g., 3d, 2p...)
40
+ """
41
+ u_val: Optional[float] = None
42
+ """
43
+ value of the U parameter (in eV)
44
+ """
45
+
46
+
47
+ class J0(Enum):
48
+ J0 = "J0"
49
+
50
+
51
+ class Values2(BaseModel):
52
+ model_config = ConfigDict(
53
+ extra="forbid",
54
+ )
55
+ J0_1: Optional[J0] = Field(None, alias="J0")
56
+ """
57
+ string constant "J0"; indicates the specs for the J0 parameter will be given
58
+ """
59
+ label: Optional[str] = None
60
+ """
61
+ label of the atom (as defined in ATOMIC_SPECIES)
62
+ """
63
+ manifold: Optional[str] = None
64
+ """
65
+ specs of the manifold (e.g., 3d, 2p...)
66
+ """
67
+ j0_val: Optional[float] = None
68
+ """
69
+ value of the J0 parameter (in eV)
70
+ """
71
+
72
+
73
+ class ParamType(Enum):
74
+ U = "U"
75
+ J = "J"
76
+ B = "B"
77
+ E2 = "E2"
78
+ E3 = "E3"
79
+
80
+
81
+ class Value(BaseModel):
82
+ model_config = ConfigDict(
83
+ extra="forbid",
84
+ )
85
+ paramType: Optional[ParamType] = None
86
+ """
87
+ character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)
88
+ """
89
+ label: Optional[str] = None
90
+ """
91
+ label of the atom (as defined in ATOMIC_SPECIES)
92
+ """
93
+ manifold: Optional[str] = None
94
+ """
95
+ specs of the manifold (e.g., 3d, 2p...)
96
+ """
97
+ paramValue: Optional[float] = None
98
+ """
99
+ value of the J0 parameter (in eV)
100
+ """
101
+
102
+
103
+ class Values3(BaseModel):
104
+ model_config = ConfigDict(
105
+ extra="forbid",
106
+ )
107
+ U_1: Optional[U] = Field(None, alias="U")
108
+ """
109
+ string constant "U"; indicates the specs for the U parameter will be given
110
+ """
111
+ label: Optional[str] = None
112
+ """
113
+ label of the atom (as defined in ATOMIC_SPECIES)
114
+ """
115
+ manifold: Optional[str] = None
116
+ """
117
+ specs of the manifold (e.g., 3d, 2p...)
118
+ """
119
+ u_val: Optional[float] = None
120
+ """
121
+ value of the U parameter (in eV)
122
+ """
123
+
124
+
125
+ class Values4(BaseModel):
126
+ model_config = ConfigDict(
127
+ extra="forbid",
128
+ )
129
+ J0_1: Optional[J0] = Field(None, alias="J0")
130
+ """
131
+ string constant "J0"; indicates the specs for the J0 parameter will be given
132
+ """
133
+ label: Optional[str] = None
134
+ """
135
+ label of the atom (as defined in ATOMIC_SPECIES)
136
+ """
137
+ manifold: Optional[str] = None
138
+ """
139
+ specs of the manifold (e.g., 3d, 2p...)
140
+ """
141
+ j0_val: Optional[float] = None
142
+ """
143
+ value of the J0 parameter (in eV)
144
+ """
145
+
146
+
147
+ class V(Enum):
148
+ V = "V"
149
+
150
+
151
+ class Values5(BaseModel):
152
+ model_config = ConfigDict(
153
+ extra="forbid",
154
+ )
155
+ V_1: Optional[V] = Field(None, alias="V")
156
+ """
157
+ string constant "V"; indicates the specs for the V parameter will be given
158
+ """
159
+ label_I_: Optional[str] = Field(None, alias="label(I)")
160
+ """
161
+ label of the atom I (as defined in ATOMIC_SPECIES)
162
+ """
163
+ manifold_I_: Optional[str] = Field(None, alias="manifold(I)")
164
+ """
165
+ specs of the manifold for atom I (e.g., 3d, 2p...)
166
+ """
167
+ label_J_: Optional[str] = Field(None, alias="label(J)")
168
+ """
169
+ label of the atom J (as defined in ATOMIC_SPECIES)
170
+ """
171
+ manifold_J_: Optional[str] = Field(None, alias="manifold(J)")
172
+ """
173
+ specs of the manifold for atom J (e.g., 3d, 2p...)
174
+ """
175
+ I: Optional[int] = None
176
+ """
177
+ index of the atom I
178
+ """
179
+ J: Optional[int] = None
180
+ """
181
+ index of the atom J
182
+ """
183
+ v_val_I_J_: Optional[float] = Field(None, alias="v_val(I,J)")
184
+ """
185
+ value of the V parameter for the atom pair I,J (in eV)
186
+ """
187
+
188
+
189
+ class HubbardSchema(BaseModel):
190
+ model_config = ConfigDict(
191
+ extra="forbid",
192
+ )
193
+ card_option: Optional[CardOption] = None
194
+ values: Optional[Union[List[Union[Values, Values2]], List[Value], List[Union[Values3, Values4, Values5]]]] = None
@@ -0,0 +1,422 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: apse/file/applications/espresso/7.2/pw.x/ions.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import Optional, Union
9
+
10
+ from pydantic import BaseModel, ConfigDict, Field, RootModel
11
+
12
+
13
+ class IonPositions(Enum):
14
+ default = "default"
15
+ from_input = "from_input"
16
+
17
+
18
+ class IonVelocities(Enum):
19
+ default = "default"
20
+ from_input = "from_input"
21
+
22
+
23
+ class PotExtrapolation(Enum):
24
+ none = "none"
25
+ atomic = "atomic"
26
+ first_order = "first_order"
27
+ second_order = "second_order"
28
+
29
+
30
+ class WfcExtrapolation(Enum):
31
+ none = "none"
32
+ first_order = "first_order"
33
+ second_order = "second_order"
34
+
35
+
36
+ class IonTemperature(Enum):
37
+ rescaling = "rescaling"
38
+ rescale_v = "rescale-v"
39
+ rescale_T = "rescale-T"
40
+ reduce_T = "reduce-T"
41
+ berendsen = "berendsen"
42
+ andersen = "andersen"
43
+ svr = "svr"
44
+ initial = "initial"
45
+ not_controlled = "not_controlled"
46
+
47
+
48
+ class IonDynamics(Enum):
49
+ bfgs = "bfgs"
50
+ damp = "damp"
51
+ fire = "fire"
52
+
53
+
54
+ class IonsSchema(BaseModel):
55
+ model_config = ConfigDict(
56
+ extra="forbid",
57
+ )
58
+ ion_positions: Optional[IonPositions] = "default"
59
+ ion_velocities: Optional[IonVelocities] = "default"
60
+ pot_extrapolation: Optional[PotExtrapolation] = "atomic"
61
+ """
62
+ Used to extrapolate the potential from preceding ionic steps.
63
+ """
64
+ wfc_extrapolation: Optional[WfcExtrapolation] = "none"
65
+ """
66
+ Used to extrapolate the wavefunctions from preceding ionic steps.
67
+ """
68
+ remove_rigid_rot: Optional[bool] = False
69
+ """
70
+ This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells.
71
+ """
72
+ ion_temperature: Optional[IonTemperature] = "not_controlled"
73
+ tempw: Optional[float] = 300
74
+ """
75
+ Starting temperature (Kelvin) in MD runs target temperature for most thermostats.
76
+ """
77
+ tolp: Optional[float] = 100
78
+ """
79
+ Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.
80
+ """
81
+ delta_t: Optional[float] = 1
82
+ nraise: Optional[int] = 1
83
+ refold_pos: Optional[bool] = False
84
+ """
85
+ This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell.
86
+ """
87
+ upscale: Optional[float] = 100
88
+ """
89
+ Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.
90
+ """
91
+ bfgs_ndim: Optional[int] = 1
92
+ """
93
+ Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm.
94
+ """
95
+ trust_radius_max: Optional[float] = 0.8
96
+ """
97
+ Maximum ionic displacement in the structural relaxation. (bfgs only)
98
+ """
99
+ trust_radius_min: Optional[float] = 0.001
100
+ """
101
+ Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)
102
+ """
103
+ trust_radius_ini: Optional[float] = 0.5
104
+ """
105
+ Initial ionic displacement in the structural relaxation. (bfgs only)
106
+ """
107
+ w_1: Optional[float] = 0.01
108
+ w_2: Optional[float] = 0.5
109
+ """
110
+ Parameters used in line search based on the Wolfe conditions. (bfgs only)
111
+ """
112
+ fire_alpha_init: Optional[float] = 0.2
113
+ """
114
+ Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3
115
+ """
116
+ fire_falpha: Optional[float] = 0.99
117
+ """
118
+ Scaling of the alpha mixing parameter for steps with P > 0;
119
+ """
120
+ fire_nmin: Optional[int] = 5
121
+ """
122
+ Minimum number of steps with P > 0 before increase of dt
123
+ """
124
+ fire_f_inc: Optional[float] = 1.1
125
+ """
126
+ Factor for increasing dt
127
+ """
128
+ fire_f_dec: Optional[float] = 0.5
129
+ """
130
+ Factor for decreasing dt
131
+ """
132
+ fire_dtmax: Optional[float] = 10
133
+ """
134
+ Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt
135
+ """
136
+ ion_dynamics: Optional[IonDynamics] = "bfgs"
137
+ """
138
+ CASE: calculation == 'relax'
139
+ """
140
+
141
+
142
+ class IonDynamics1(Enum):
143
+ verlet = "verlet"
144
+ langevin = "langevin"
145
+ langevin_smc = "langevin-smc"
146
+
147
+
148
+ class IonsSchema1(BaseModel):
149
+ model_config = ConfigDict(
150
+ extra="forbid",
151
+ )
152
+ ion_positions: Optional[IonPositions] = "default"
153
+ ion_velocities: Optional[IonVelocities] = "default"
154
+ pot_extrapolation: Optional[PotExtrapolation] = "atomic"
155
+ """
156
+ Used to extrapolate the potential from preceding ionic steps.
157
+ """
158
+ wfc_extrapolation: Optional[WfcExtrapolation] = "none"
159
+ """
160
+ Used to extrapolate the wavefunctions from preceding ionic steps.
161
+ """
162
+ remove_rigid_rot: Optional[bool] = False
163
+ """
164
+ This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells.
165
+ """
166
+ ion_temperature: Optional[IonTemperature] = "not_controlled"
167
+ tempw: Optional[float] = 300
168
+ """
169
+ Starting temperature (Kelvin) in MD runs target temperature for most thermostats.
170
+ """
171
+ tolp: Optional[float] = 100
172
+ """
173
+ Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.
174
+ """
175
+ delta_t: Optional[float] = 1
176
+ nraise: Optional[int] = 1
177
+ refold_pos: Optional[bool] = False
178
+ """
179
+ This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell.
180
+ """
181
+ upscale: Optional[float] = 100
182
+ """
183
+ Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.
184
+ """
185
+ bfgs_ndim: Optional[int] = 1
186
+ """
187
+ Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm.
188
+ """
189
+ trust_radius_max: Optional[float] = 0.8
190
+ """
191
+ Maximum ionic displacement in the structural relaxation. (bfgs only)
192
+ """
193
+ trust_radius_min: Optional[float] = 0.001
194
+ """
195
+ Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)
196
+ """
197
+ trust_radius_ini: Optional[float] = 0.5
198
+ """
199
+ Initial ionic displacement in the structural relaxation. (bfgs only)
200
+ """
201
+ w_1: Optional[float] = 0.01
202
+ w_2: Optional[float] = 0.5
203
+ """
204
+ Parameters used in line search based on the Wolfe conditions. (bfgs only)
205
+ """
206
+ fire_alpha_init: Optional[float] = 0.2
207
+ """
208
+ Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3
209
+ """
210
+ fire_falpha: Optional[float] = 0.99
211
+ """
212
+ Scaling of the alpha mixing parameter for steps with P > 0;
213
+ """
214
+ fire_nmin: Optional[int] = 5
215
+ """
216
+ Minimum number of steps with P > 0 before increase of dt
217
+ """
218
+ fire_f_inc: Optional[float] = 1.1
219
+ """
220
+ Factor for increasing dt
221
+ """
222
+ fire_f_dec: Optional[float] = 0.5
223
+ """
224
+ Factor for decreasing dt
225
+ """
226
+ fire_dtmax: Optional[float] = 10
227
+ """
228
+ Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt
229
+ """
230
+ ion_dynamics: Optional[IonDynamics1] = "verlet"
231
+ """
232
+ CASE: calculation == 'md'
233
+ """
234
+
235
+
236
+ class IonDynamics2(Enum):
237
+ bfgs = "bfgs"
238
+ damp = "damp"
239
+
240
+
241
+ class IonsSchema2(BaseModel):
242
+ model_config = ConfigDict(
243
+ extra="forbid",
244
+ )
245
+ ion_positions: Optional[IonPositions] = "default"
246
+ ion_velocities: Optional[IonVelocities] = "default"
247
+ pot_extrapolation: Optional[PotExtrapolation] = "atomic"
248
+ """
249
+ Used to extrapolate the potential from preceding ionic steps.
250
+ """
251
+ wfc_extrapolation: Optional[WfcExtrapolation] = "none"
252
+ """
253
+ Used to extrapolate the wavefunctions from preceding ionic steps.
254
+ """
255
+ remove_rigid_rot: Optional[bool] = False
256
+ """
257
+ This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells.
258
+ """
259
+ ion_temperature: Optional[IonTemperature] = "not_controlled"
260
+ tempw: Optional[float] = 300
261
+ """
262
+ Starting temperature (Kelvin) in MD runs target temperature for most thermostats.
263
+ """
264
+ tolp: Optional[float] = 100
265
+ """
266
+ Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.
267
+ """
268
+ delta_t: Optional[float] = 1
269
+ nraise: Optional[int] = 1
270
+ refold_pos: Optional[bool] = False
271
+ """
272
+ This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell.
273
+ """
274
+ upscale: Optional[float] = 100
275
+ """
276
+ Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.
277
+ """
278
+ bfgs_ndim: Optional[int] = 1
279
+ """
280
+ Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm.
281
+ """
282
+ trust_radius_max: Optional[float] = 0.8
283
+ """
284
+ Maximum ionic displacement in the structural relaxation. (bfgs only)
285
+ """
286
+ trust_radius_min: Optional[float] = 0.001
287
+ """
288
+ Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)
289
+ """
290
+ trust_radius_ini: Optional[float] = 0.5
291
+ """
292
+ Initial ionic displacement in the structural relaxation. (bfgs only)
293
+ """
294
+ w_1: Optional[float] = 0.01
295
+ w_2: Optional[float] = 0.5
296
+ """
297
+ Parameters used in line search based on the Wolfe conditions. (bfgs only)
298
+ """
299
+ fire_alpha_init: Optional[float] = 0.2
300
+ """
301
+ Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3
302
+ """
303
+ fire_falpha: Optional[float] = 0.99
304
+ """
305
+ Scaling of the alpha mixing parameter for steps with P > 0;
306
+ """
307
+ fire_nmin: Optional[int] = 5
308
+ """
309
+ Minimum number of steps with P > 0 before increase of dt
310
+ """
311
+ fire_f_inc: Optional[float] = 1.1
312
+ """
313
+ Factor for increasing dt
314
+ """
315
+ fire_f_dec: Optional[float] = 0.5
316
+ """
317
+ Factor for decreasing dt
318
+ """
319
+ fire_dtmax: Optional[float] = 10
320
+ """
321
+ Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt
322
+ """
323
+ ion_dynamics: Optional[IonDynamics2] = "bfgs"
324
+ """
325
+ CASE: calculation == 'vc-relax'
326
+ """
327
+
328
+
329
+ class IonDynamics3(Enum):
330
+ beeman = "beeman"
331
+
332
+
333
+ class IonsSchema3(BaseModel):
334
+ model_config = ConfigDict(
335
+ extra="forbid",
336
+ )
337
+ ion_positions: Optional[IonPositions] = "default"
338
+ ion_velocities: Optional[IonVelocities] = "default"
339
+ pot_extrapolation: Optional[PotExtrapolation] = "atomic"
340
+ """
341
+ Used to extrapolate the potential from preceding ionic steps.
342
+ """
343
+ wfc_extrapolation: Optional[WfcExtrapolation] = "none"
344
+ """
345
+ Used to extrapolate the wavefunctions from preceding ionic steps.
346
+ """
347
+ remove_rigid_rot: Optional[bool] = False
348
+ """
349
+ This keyword is useful when simulating the dynamics and/or the thermodynamics of an isolated system. If set to true the total torque of the internal forces is set to zero by adding new forces that compensate the spurious interaction with the periodic images. This allows for the use of smaller supercells.
350
+ """
351
+ ion_temperature: Optional[IonTemperature] = "not_controlled"
352
+ tempw: Optional[float] = 300
353
+ """
354
+ Starting temperature (Kelvin) in MD runs target temperature for most thermostats.
355
+ """
356
+ tolp: Optional[float] = 100
357
+ """
358
+ Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.
359
+ """
360
+ delta_t: Optional[float] = 1
361
+ nraise: Optional[int] = 1
362
+ refold_pos: Optional[bool] = False
363
+ """
364
+ This keyword applies only in the case of molecular dynamics or damped dynamics. If true the ions are refolded at each step into the supercell.
365
+ """
366
+ upscale: Optional[float] = 100
367
+ """
368
+ Max reduction factor for conv_thr during structural optimization conv_thr is automatically reduced when the relaxation approaches convergence so that forces are still accurate, but conv_thr will not be reduced to less that conv_thr / upscale.
369
+ """
370
+ bfgs_ndim: Optional[int] = 1
371
+ """
372
+ Number of old forces and displacements vectors used in the PULAY mixing of the residual vectors obtained on the basis of the inverse hessian matrix given by the BFGS algorithm.
373
+ """
374
+ trust_radius_max: Optional[float] = 0.8
375
+ """
376
+ Maximum ionic displacement in the structural relaxation. (bfgs only)
377
+ """
378
+ trust_radius_min: Optional[float] = 0.001
379
+ """
380
+ Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)
381
+ """
382
+ trust_radius_ini: Optional[float] = 0.5
383
+ """
384
+ Initial ionic displacement in the structural relaxation. (bfgs only)
385
+ """
386
+ w_1: Optional[float] = 0.01
387
+ w_2: Optional[float] = 0.5
388
+ """
389
+ Parameters used in line search based on the Wolfe conditions. (bfgs only)
390
+ """
391
+ fire_alpha_init: Optional[float] = 0.2
392
+ """
393
+ Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3
394
+ """
395
+ fire_falpha: Optional[float] = 0.99
396
+ """
397
+ Scaling of the alpha mixing parameter for steps with P > 0;
398
+ """
399
+ fire_nmin: Optional[int] = 5
400
+ """
401
+ Minimum number of steps with P > 0 before increase of dt
402
+ """
403
+ fire_f_inc: Optional[float] = 1.1
404
+ """
405
+ Factor for increasing dt
406
+ """
407
+ fire_f_dec: Optional[float] = 0.5
408
+ """
409
+ Factor for decreasing dt
410
+ """
411
+ fire_dtmax: Optional[float] = 10
412
+ """
413
+ Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt
414
+ """
415
+ ion_dynamics: Optional[IonDynamics3] = "beeman"
416
+ """
417
+ CASE: calculation == 'vc-md'
418
+ """
419
+
420
+
421
+ class ESSE(RootModel[Union[IonsSchema, IonsSchema1, IonsSchema2, IonsSchema3]]):
422
+ root: Union[IonsSchema, IonsSchema1, IonsSchema2, IonsSchema3] = Field(..., title="ions schema")
@@ -0,0 +1,73 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: apse/file/applications/espresso/7.2/pw.x/k_points.json
3
+ # version: 0.28.5
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+ from typing import List, Optional, Union
9
+
10
+ from pydantic import BaseModel, ConfigDict
11
+
12
+
13
+ class CardOption(Enum):
14
+ tpiba = "tpiba"
15
+ automatic = "automatic"
16
+ crystal = "crystal"
17
+ gamma = "gamma"
18
+ tpiba_b = "tpiba_b"
19
+ crystal_b = "crystal_b"
20
+ tpiba_c = "tpiba_c"
21
+ crystal_c = "crystal_c"
22
+
23
+
24
+ class Value(BaseModel):
25
+ model_config = ConfigDict(
26
+ extra="forbid",
27
+ )
28
+ nks: Optional[int] = None
29
+ """
30
+ Number of supplied special k-points.
31
+ """
32
+ xk_x: Optional[float] = None
33
+ xk_y: Optional[float] = None
34
+ xk_z: Optional[float] = None
35
+ wk: Optional[float] = None
36
+
37
+
38
+ class Values(BaseModel):
39
+ model_config = ConfigDict(
40
+ extra="forbid",
41
+ )
42
+ nk1: Optional[int] = None
43
+ """
44
+ Number of supplied special k-points.
45
+ """
46
+ nk2: Optional[int] = None
47
+ """
48
+ Number of supplied special k-points.
49
+ """
50
+ nk3: Optional[int] = None
51
+ """
52
+ Number of supplied special k-points.
53
+ """
54
+ sk1: Optional[int] = None
55
+ """
56
+ Number of supplied special k-points.
57
+ """
58
+ sk2: Optional[int] = None
59
+ """
60
+ Number of supplied special k-points.
61
+ """
62
+ sk3: Optional[int] = None
63
+ """
64
+ Number of supplied special k-points.
65
+ """
66
+
67
+
68
+ class KPointsSchema(BaseModel):
69
+ model_config = ConfigDict(
70
+ extra="forbid",
71
+ )
72
+ card_option: Optional[CardOption] = None
73
+ values: Optional[Union[List[Value], Values]] = None