mat3ra-esse 2025.6.14.post0__py3-none-any.whl → 2025.6.30.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 (118) hide show
  1. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/METADATA +1 -1
  2. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/RECORD +5 -118
  3. mat3ra/esse/models/coordinates_shape_enum.py +0 -15
  4. mat3ra/esse/models/core/abstract/2d_data.py +0 -17
  5. mat3ra/esse/models/core/abstract/2d_plot.py +0 -34
  6. mat3ra/esse/models/core/abstract/3d_grid.py +0 -14
  7. mat3ra/esse/models/core/abstract/3d_tensor.py +0 -19
  8. mat3ra/esse/models/core/abstract/3d_vector_basis.py +0 -15
  9. mat3ra/esse/models/core/abstract/_3d_tensor.py +0 -19
  10. mat3ra/esse/models/core/abstract/_3d_vector_basis.py +0 -15
  11. mat3ra/esse/models/core/abstract/point.py +0 -13
  12. mat3ra/esse/models/core/abstract/vector.py +0 -13
  13. mat3ra/esse/models/core/primitive/1d_data_series.py +0 -13
  14. mat3ra/esse/models/core/primitive/3d_lattice.py +0 -34
  15. mat3ra/esse/models/core/primitive/_3d_lattice.py +0 -34
  16. mat3ra/esse/models/core/reusable/accuracy_level.py +0 -27
  17. mat3ra/esse/models/core/reusable/atomic_strings.py +0 -24
  18. mat3ra/esse/models/core/reusable/coordinate_conditions/cylinder.py +0 -26
  19. mat3ra/esse/models/core/reusable/coordinate_conditions/plane.py +0 -24
  20. mat3ra/esse/models/core/reusable/coordinate_conditions/sphere.py +0 -24
  21. mat3ra/esse/models/core/reusable/coordinate_conditions/triangular_prism.py +0 -27
  22. mat3ra/esse/models/core/reusable/energy_accuracy_levels/__init__.py +0 -3
  23. mat3ra/esse/models/core/reusable/energy_accuracy_levels.py +0 -31
  24. mat3ra/esse/models/enums/__init__.py +0 -3
  25. mat3ra/esse/models/enums/chemical_elements.py +0 -13
  26. mat3ra/esse/models/material/builders/base/__init__.py +0 -3
  27. mat3ra/esse/models/material/builders/base/selector_parameters.py +0 -16
  28. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/__init__.py +0 -3
  29. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/builder_parameters.py +0 -28
  30. mat3ra/esse/models/material/builders/single_material/two_dimensional/slab/selector_parameters.py +0 -151
  31. mat3ra/esse/models/material/reusable/__init__.py +0 -3
  32. mat3ra/esse/models/material/reusable/coordinate_conditions/__init__.py +0 -3
  33. mat3ra/esse/models/material/reusable/coordinate_conditions/base.py +0 -21
  34. mat3ra/esse/models/material/reusable/coordinate_conditions/box.py +0 -24
  35. mat3ra/esse/models/material/reusable/coordinate_conditions/cylinder.py +0 -26
  36. mat3ra/esse/models/material/reusable/coordinate_conditions/plane.py +0 -24
  37. mat3ra/esse/models/material/reusable/coordinate_conditions/sphere.py +0 -24
  38. mat3ra/esse/models/material/reusable/coordinate_conditions/triangular_prism.py +0 -27
  39. mat3ra/esse/models/material/reusable/repetitions.py +0 -25
  40. mat3ra/esse/models/material/reusable/slab/__init__.py +0 -3
  41. mat3ra/esse/models/material/reusable/slab/enums/__init__.py +0 -3
  42. mat3ra/esse/models/material/reusable/slab/enums/exposed_face.py +0 -13
  43. mat3ra/esse/models/material/reusable/slab/enums.py +0 -13
  44. mat3ra/esse/models/material/reusable/slab/miller_indices.py +0 -16
  45. mat3ra/esse/models/material/reusable/slab/number_of_layers.py +0 -16
  46. mat3ra/esse/models/material/reusable/slab/slab_configuration_with_termination.py +0 -589
  47. mat3ra/esse/models/material/reusable/slab/slab_with_termination.py +0 -593
  48. mat3ra/esse/models/material/reusable/slab/termination.py +0 -144
  49. mat3ra/esse/models/material/reusable/slab/two_slabs_stack.py +0 -618
  50. mat3ra/esse/models/material/reusable/slab/vacuum.py +0 -16
  51. mat3ra/esse/models/material/reusable/slab_configuration_with_termination.py +0 -712
  52. mat3ra/esse/models/material/reusable/stack/__init__.py +0 -3
  53. mat3ra/esse/models/material/reusable/stack/slab_configuration_with_termination.py +0 -593
  54. mat3ra/esse/models/material/reusable/stack/slab_in_stack.py +0 -720
  55. mat3ra/esse/models/material/reusable/stack/stack_of_slabs.py +0 -737
  56. mat3ra/esse/models/material/reusable/stack/stack_of_two_slabs.py +0 -737
  57. mat3ra/esse/models/material/reusable/supercell/__init__.py +0 -3
  58. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_2d.py +0 -25
  59. mat3ra/esse/models/material/reusable/supercell/supercell_matrix_3d.py +0 -27
  60. mat3ra/esse/models/material/reusable/supercell_matrix_2d.py +0 -25
  61. mat3ra/esse/models/material/reusable/supercell_matrix_3d.py +0 -27
  62. mat3ra/esse/models/materials_category/defects/__init__.py +0 -3
  63. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/__init__.py +0 -3
  64. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/adatom/configuration.py +0 -672
  65. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/__init__.py +0 -3
  66. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/layered/configuration.py +0 -549
  67. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/__init__.py +0 -3
  68. mat3ra/esse/models/materials_category/defects/by_host/two_dimensional/point/configuration.py +0 -550
  69. mat3ra/esse/models/materials_category/defects/configuration.py +0 -545
  70. mat3ra/esse/models/materials_category/defects/enums/__init__.py +0 -3
  71. mat3ra/esse/models/materials_category/defects/enums/point_defect_type.py +0 -13
  72. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/__init__.py +0 -3
  73. mat3ra/esse/models/materials_category/defects/one_dimensional/terrace/configuration.py +0 -563
  74. mat3ra/esse/models/materials_category/defects/two_dimensional/grain_boundary_plane/__init__.py +0 -3
  75. mat3ra/esse/models/materials_category/defects/two_dimensional/grain_boundary_plane/configuration.py +0 -1200
  76. mat3ra/esse/models/materials_category/defects/two_dimensional/island/__init__.py +0 -3
  77. mat3ra/esse/models/materials_category/defects/two_dimensional/island/condition_json.py +0 -28
  78. mat3ra/esse/models/materials_category/defects/two_dimensional/island/configuration.py +0 -564
  79. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/__init__.py +0 -3
  80. mat3ra/esse/models/materials_category/defects/zero_dimensional/complex/pair/configuration.py +0 -1538
  81. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/__init__.py +0 -3
  82. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/configuration.py +0 -672
  83. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/__init__.py +0 -3
  84. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/interstitial/configuration.py +0 -672
  85. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/__init__.py +0 -3
  86. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/substitution/configuration.py +0 -672
  87. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/__init__.py +0 -3
  88. mat3ra/esse/models/materials_category/defects/zero_dimensional/point/vacancy/configuration.py +0 -672
  89. mat3ra/esse/models/materials_category/multi_material/interfaces/__init__.py +0 -3
  90. mat3ra/esse/models/materials_category/multi_material/interfaces/configuration.py +0 -737
  91. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/__init__.py +0 -3
  92. mat3ra/esse/models/materials_category/single_material/two_dimensional/slab/configuration.py +0 -567
  93. mat3ra/esse/models/methods_directory/physical/psp/file/__init__.py +0 -129
  94. mat3ra/esse/models/methods_directory/physical/psp/file_data_item/__init__.py +0 -111
  95. mat3ra/esse/models/properties_directory/structural/lattice/lattice_bravais.py +0 -74
  96. mat3ra/esse/models/property/base/__init__.py +0 -200
  97. mat3ra/esse/models/property/meta/__init__.py +0 -200
  98. mat3ra/esse/models/property/raw/__init__.py +0 -200
  99. mat3ra/esse/models/property/source/__init__.py +0 -150
  100. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/__init__.py +0 -3
  101. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/atoms.py +0 -41
  102. mat3ra/esse/models/third_party/db/nist_jarvis/2024_3.13/db_entry.py +0 -55
  103. mat3ra/esse/models/third_party/file/applications/espresso/7.2/__init__.py +0 -3
  104. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/__init__.py +0 -3
  105. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/atomic_positions.py +0 -51
  106. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/atomic_species.py +0 -34
  107. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/cell.py +0 -111
  108. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/cell_parameters.py +0 -36
  109. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/control.py +0 -169
  110. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/electrons.py +0 -139
  111. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/hubbard.py +0 -194
  112. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/ions.py +0 -422
  113. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/k_points.py +0 -73
  114. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw.x/system.py +0 -841
  115. mat3ra/esse/models/third_party/file/applications/espresso/7.2/pw_x.py +0 -1990
  116. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/WHEEL +0 -0
  117. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/licenses/LICENSE.md +0 -0
  118. {mat3ra_esse-2025.6.14.post0.dist-info → mat3ra_esse-2025.6.30.post0.dist-info}/top_level.txt +0 -0
@@ -1,1990 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: 3pse/file/applications/espresso/7.2/pw.x.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, RootModel, confloat, conint
11
-
12
-
13
- class Calculation(Enum):
14
- scf = "scf"
15
- nscf = "nscf"
16
- bands = "bands"
17
- relax = "relax"
18
- md = "md"
19
- vc_relax = "vc-relax"
20
- vc_md = "vc-md"
21
-
22
-
23
- class Verbosity(Enum):
24
- high = "high"
25
- low = "low"
26
- debug = "debug"
27
- medium = "medium"
28
- minimal = "minimal"
29
- default = "default"
30
-
31
-
32
- class RestartMode(Enum):
33
- from_scratch = "from_scratch"
34
- restart = "restart"
35
-
36
-
37
- class DiskIo(Enum):
38
- high = "high"
39
- medium = "medium"
40
- low = "low"
41
- nowf = "nowf"
42
- none = "none"
43
-
44
-
45
- class ControlSchema(BaseModel):
46
- model_config = ConfigDict(
47
- extra="forbid",
48
- )
49
- calculation: Optional[Calculation] = "scf"
50
- """
51
- A string describing the task to be performed
52
- """
53
- title: Optional[str] = ""
54
- """
55
- reprinted on output.
56
- """
57
- verbosity: Optional[Verbosity] = "low"
58
- """
59
- Currently two verbosity levels are implemented: high, low. 'debug' and 'medium' have the same effect as 'high'; 'default' and 'minimal' as 'low'
60
- """
61
- restart_mode: Optional[RestartMode] = "from_scratch"
62
- wf_collect: Optional[bool] = None
63
- """
64
- OBSOLETE - NO LONGER IMPLEMENTED
65
- """
66
- nstep: Optional[float] = 1
67
- """
68
- Default: 1 if calculation == 'scf', 'nscf', 'bands'; 50 for the other cases; Number of molecular-dynamics or structural optimization steps performed in this run. If set to 0, the code performs a quick "dry run", stopping just after initialization. This is useful to check for input correctness and to have the summary printed. NOTE: in MD calculations, the code will perform "nstep" steps even if restarting from a previously interrupted calculation.
69
- """
70
- iprint: Optional[float] = None
71
- """
72
- band energies are written every iprint iterations
73
- """
74
- tstress: Optional[bool] = False
75
- """
76
- calculate stress. It is set to .TRUE. automatically if calculation == 'vc-md' or 'vc-relax'
77
- """
78
- tprnfor: Optional[bool] = None
79
- """
80
- calculate forces. It is set to .TRUE. automatically if calculation == 'relax','md','vc-md'
81
- """
82
- dt: Optional[float] = 20
83
- """
84
- time step for molecular dynamics, in Rydberg atomic units (1 a.u.=4.8378 * 10^-17 s : beware, the CP code uses Hartree atomic units, half that much!!!)
85
- """
86
- outdir: Optional[str] = None
87
- """
88
- input, temporary, output files are found in this directory, see also wfcdir
89
- """
90
- wfcdir: Optional[str] = None
91
- """
92
- This directory specifies where to store files generated by each processor (*.wfc{N}, *.igk{N}, etc.). Useful for machines without a parallel file system: set wfcdir to a local file system, while outdir should be a parallel or network file system, visible to all processors. Beware: in order to restart from interrupted runs, or to perform further calculations using the produced data files, you may need to copy files to outdir. Works only for pw.x.
93
- """
94
- prefix: Optional[str] = "pwscf"
95
- """
96
- prepended to input/output filenames: prefix.wfc, prefix.rho, etc.
97
- """
98
- lkpoint_dir: Optional[bool] = None
99
- """
100
- OBSOLETE - NO LONGER IMPLEMENTED
101
- """
102
- max_seconds: Optional[float] = 10000000
103
- """
104
- Jobs stops after max_seconds CPU time. Use this option in conjunction with option restart_mode if you need to split a job too long to complete into shorter jobs that fit into your batch queues.
105
- """
106
- etot_conv_thr: Optional[float] = 0.0001
107
- """
108
- Convergence threshold on total energy (a.u) for ionic minimization: the convergence criterion is satisfied when the total energy changes less than etot_conv_thr between two consecutive scf steps. Note that etot_conv_thr is extensive, like the total energy. See also forc_conv_thr - both criteria must be satisfied
109
- """
110
- forc_conv_thr: Optional[float] = 0.001
111
- """
112
- Convergence threshold on forces (a.u) for ionic minimization: the convergence criterion is satisfied when all components of all forces are smaller than forc_conv_thr. See also etot_conv_thr - both criteria must be satisfied
113
- """
114
- disk_io: Optional[DiskIo] = None
115
- """
116
- Specifies the amount of disk I/O activity: (only for binary files and xml data file in data directory; other files printed at each molecular dynamics / structural optimization step are not controlled by this option )
117
- """
118
- pseudo_dir: Optional[str] = None
119
- """
120
- directory containing pseudopotential files. Default: value of the $ESPRESSO_PSEUDO environment variable if set; '$HOME/espresso/pseudo/' otherwise
121
- """
122
- tefield: Optional[bool] = False
123
- """
124
- If .TRUE. a saw-like potential simulating an electric field is added to the bare ionic potential. See variables edir, eamp, emaxpos, eopreg for the form and size of the added potential.
125
- """
126
- dipfield: Optional[bool] = False
127
- """
128
- If .TRUE. and tefield==.TRUE. a dipole correction is also added to the bare ionic potential - implements the recipe of L. Bengtsson, PRB 59, 12301 (1999). See variables edir, emaxpos, eopreg for the form of the correction. Must be used ONLY in a slab geometry, for surface calculations, with the discontinuity FALLING IN THE EMPTY SPACE.
129
- """
130
- lelfield: Optional[bool] = False
131
- """
132
- If .TRUE. a homogeneous finite electric field described through the modern theory of the polarization is applied. This is different from tefield == .true. !
133
- """
134
- nberrycyc: Optional[int] = 1
135
- """
136
- In the case of a finite electric field ( lelfield == .TRUE. ) it defines the number of iterations for converging the wavefunctions in the electric field Hamiltonian, for each external iteration on the charge density
137
- """
138
- lorbm: Optional[bool] = False
139
- """
140
- If .TRUE. perform orbital magnetization calculation.
141
- """
142
- lberry: Optional[bool] = False
143
- """
144
- If .TRUE. perform a Berry phase calculation. See the header of PW/src/bp_c_phase.f90 for documentation
145
- """
146
- gdir: Optional[float] = None
147
- """
148
- For Berry phase calculation: direction of the k-point strings in reciprocal space. Allowed values: 1, 2, 3 1=first, 2=second, 3=third reciprocal lattice vector For calculations with finite electric fields (lelfield==.true.) "gdir" is the direction of the field.
149
- """
150
- nppstr: Optional[float] = None
151
- """
152
- For Berry phase calculation: number of k-points to be calculated along each symmetry-reduced string. The same for calculation with finite electric fields (lelfield==.true.).
153
- """
154
- gate: Optional[bool] = False
155
- """
156
- In the case of charged cells (tot_charge .ne. 0) setting gate = .TRUE. represents the counter charge (i.e. -tot_charge) not by a homogeneous background charge but with a charged plate, which is placed at zgate (see below). Details of the gate potential can be found in T. Brumme, M. Calandra, F. Mauri; PRB 89, 245406 (2014). Note, that in systems which are not symmetric with respect to the plate, one needs to enable the dipole correction! (dipfield=.true.). Currently, symmetry can be used with gate=.true. but carefully check that no symmetry is included which maps z to -z even if in principle one could still use them for symmetric systems (i.e. no dipole correction). For nosym=.false. verbosity is set to 'high'. Note: this option was called "monopole" in v6.0 and 6.1 of pw.x
157
- """
158
- twochem: Optional[bool] = False
159
- """
160
- IF .TRUE. , a two chemical potential calculation for the simulation of photoexcited systems is performed, constraining a fraction of the electrons in the conduction manifold.
161
- """
162
- lfcp: Optional[bool] = False
163
- """
164
- If .TRUE. perform a constant bias potential (constant-mu) calculation for a system with ESM method. See the header of PW/src/fcp_module.f90 for documentation. To perform the calculation, you must set a namelist FCP.
165
- """
166
- trism: Optional[bool] = False
167
- """
168
- If .TRUE. perform a 3D-RISM-SCF calculation [for details see H.Sato et al., JCP 112, 9463 (2000), doi:10.1063/1.481564]. The solvent's distributions are calculated by 3D-RISM, though solute is treated as SCF. The charge density and the atomic positions are optimized, simultaneously with the solvents. To perform the calculation, you must set a namelist RISM and a card SOLVENTS. If assume_isolated = 'esm' and esm_bc = 'bc1', Laue-RISM is calculated instead of 3D-RISM and coupled with ESM method (i.e. ESM-RISM). [for details see S.Nishihara and M.Otani, PRB 96, 115429 (2017)]. The default of mixing_beta is 0.2 for both 3D-RISM and Laue-RISM. For structural relaxation with BFGS, ignore_wolfe is always .TRUE. .
169
- """
170
-
171
-
172
- class Occupations(Enum):
173
- smearing = "smearing"
174
- tetrahedra = "tetrahedra"
175
- tetrahedra_lin = "tetrahedra_lin"
176
- tetrahedra_opt = "tetrahedra_opt"
177
- fixed = "fixed"
178
- from_input = "from_input"
179
-
180
-
181
- class Smearing(Enum):
182
- gaussian = "gaussian"
183
- gauss = "gauss"
184
- methfessel_paxton = "methfessel-paxton"
185
- m_p = "m-p"
186
- mp = "mp"
187
- marzari_vanderbilt = "marzari-vanderbilt"
188
- cold = "cold"
189
- m_v = "m-v"
190
- mv = "mv"
191
- fermi_dirac = "fermi-dirac"
192
- f_d = "f-d"
193
- fd = "fd"
194
-
195
-
196
- class PolType(Enum):
197
- e = "e"
198
- h = "h"
199
-
200
-
201
- class ExxdivTreatment(Enum):
202
- gygi_baldereschi = "gygi-baldereschi"
203
- vcut_spherical = "vcut_spherical"
204
- vcut_ws = "vcut_ws"
205
- none = "none"
206
-
207
-
208
- class HubbardOccItem(RootModel[conint(ge=1)]):
209
- root: conint(ge=1)
210
-
211
-
212
- class HubbardOccItem1(RootModel[conint(ge=1, le=3)]):
213
- root: conint(ge=1, le=3)
214
-
215
-
216
- class ConstrainedMagnetization(Enum):
217
- none = "none"
218
- total = "total"
219
- atomic = "atomic"
220
- total_direction = "total direction"
221
- atomic_direction = "atomic direction"
222
-
223
-
224
- class AssumeIsolated(Enum):
225
- none = "none"
226
- makov_payne = "makov-payne"
227
- m_p = "m-p"
228
- mp = "mp"
229
- martyna_tuckerman = "martyna-tuckerman"
230
- m_t = "m-t"
231
- mt = "mt"
232
- esm = "esm"
233
- field_2D = "2D"
234
-
235
-
236
- class EsmBc(Enum):
237
- pbc = "pbc"
238
- bc1 = "bc1"
239
- bc2 = "bc2"
240
- bc3 = "bc3"
241
-
242
-
243
- class VdwCorr(Enum):
244
- none = "none"
245
- grimme_d2 = "grimme-d2"
246
- Grimme_D2 = "Grimme-D2"
247
- DFT_D = "DFT-D"
248
- dft_d = "dft-d"
249
- grimme_d3 = "grimme-d3"
250
- Grimme_D3 = "Grimme-D3"
251
- DFT_D3 = "DFT-D3"
252
- dft_d3 = "dft-d3"
253
- TS = "TS"
254
- ts = "ts"
255
- ts_vdw = "ts-vdw"
256
- ts_vdW = "ts-vdW"
257
- tkatchenko_scheffler = "tkatchenko-scheffler"
258
- MBD = "MBD"
259
- mbd = "mbd"
260
- many_body_dispersion = "many-body-dispersion"
261
- mbd_vdw = "mbd_vdw"
262
- XDM = "XDM"
263
- xdm = "xdm"
264
-
265
-
266
- class SystemSchema(BaseModel):
267
- model_config = ConfigDict(
268
- extra="forbid",
269
- )
270
- ibrav: int
271
- nat: int
272
- """
273
- number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)
274
- """
275
- ntyp: int
276
- """
277
- number of types of atoms in the unit cell
278
- """
279
- nbnd: Optional[int] = None
280
- """
281
- Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more)
282
- """
283
- nbnd_cond: Optional[int] = None
284
- """
285
- Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case.
286
- """
287
- tot_charge: Optional[float] = 0
288
- starting_charge: Optional[float] = 0
289
- """
290
- starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'.
291
- """
292
- tot_magnetization: Optional[float] = -10000
293
- """
294
- Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle.
295
- """
296
- starting_magnetization: Optional[List[confloat(ge=-1.0, le=1.0)]] = None
297
- ecutwfc: float
298
- """
299
- kinetic energy cutoff (Ry) for wavefunctions
300
- """
301
- ecutrho: Optional[float] = None
302
- """
303
- Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc
304
- """
305
- ecutfock: Optional[float] = None
306
- """
307
- Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials.
308
- """
309
- nr1: Optional[int] = None
310
- """
311
- Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)
312
- """
313
- nr2: Optional[int] = None
314
- """
315
- Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)
316
- """
317
- nr3: Optional[int] = None
318
- """
319
- Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)
320
- """
321
- nr1s: Optional[int] = None
322
- """
323
- Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )
324
- """
325
- nr2s: Optional[int] = None
326
- """
327
- Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )
328
- """
329
- nr3s: Optional[int] = None
330
- """
331
- Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )
332
- """
333
- nosym: Optional[bool] = False
334
- nosym_evc: Optional[bool] = False
335
- noinv: Optional[bool] = False
336
- """
337
- if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation
338
- """
339
- no_t_rev: Optional[bool] = False
340
- """
341
- if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal.
342
- """
343
- force_symmorphic: Optional[bool] = False
344
- """
345
- if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation
346
- """
347
- use_all_frac: Optional[bool] = False
348
- occupations: Optional[Occupations] = None
349
- one_atom_occupations: Optional[bool] = False
350
- starting_spin_angle: Optional[bool] = False
351
- degauss_cond: Optional[float] = 0
352
- """
353
- value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.).
354
- """
355
- nelec_cond: Optional[float] = 0
356
- """
357
- Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold.
358
- """
359
- degauss: Optional[float] = 0
360
- """
361
- value of the gaussian spreading (Ry) for brillouin-zone integration in metals.
362
- """
363
- smearing: Optional[Smearing] = "gaussian"
364
- nspin: Optional[int] = 1
365
- sic_gamma: Optional[float] = 0
366
- """
367
- Strength of the gammaDFT potential.
368
- """
369
- pol_type: Optional[PolType] = None
370
- """
371
- Type of polaron in gammaDFT.
372
- """
373
- sic_energy: Optional[bool] = False
374
- """
375
- Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost.
376
- """
377
- sci_vb: Optional[float] = 0
378
- """
379
- Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted.
380
- """
381
- sci_cb: Optional[float] = 0
382
- """
383
- Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted.
384
- """
385
- noncolin: Optional[bool] = False
386
- """
387
- if .true. the program will perform a noncollinear calculation.
388
- """
389
- ecfixed: Optional[float] = 0
390
- qcutz: Optional[float] = 0
391
- q2sigma: Optional[float] = 0.1
392
- input_dft: Optional[str] = None
393
- """
394
- Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing!
395
- """
396
- ace: Optional[bool] = True
397
- """
398
- Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092
399
- """
400
- exx_fraction: Optional[float] = None
401
- """
402
- Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20.
403
- """
404
- screening_parameter: Optional[float] = 0.106
405
- """
406
- screening_parameter for HSE like hybrid functionals.
407
- """
408
- exxdiv_treatment: Optional[ExxdivTreatment] = "gygi-baldereschi"
409
- x_gamma_extrapolation: Optional[bool] = True
410
- """
411
- Specific for EXX. If .true., extrapolate the G=0 term of the potential
412
- """
413
- ecutvcut: Optional[float] = None
414
- """
415
- Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors.
416
- """
417
- nqx1: Optional[int] = 0
418
- """
419
- Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.
420
- """
421
- nqx2: Optional[int] = None
422
- """
423
- Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.
424
- """
425
- nqx3: Optional[int] = None
426
- """
427
- Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.
428
- """
429
- localization_thr: Optional[float] = 0
430
- """
431
- Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation
432
- """
433
- Hubbard_occ: Optional[List[List[Union[HubbardOccItem, HubbardOccItem1, float]]]] = None
434
- Hubbard_alpha: Optional[List[float]] = None
435
- Hubbard_beta: Optional[List[float]] = None
436
- starting_ns_eigenvalue: Optional[List[List[List[float]]]] = None
437
- dmft: Optional[bool] = False
438
- """
439
- If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1.
440
- """
441
- dmft_prefix: Optional[str] = None
442
- """
443
- prepended to hdf5 archive: dmft_prefix.h5
444
- """
445
- ensemble_energies: Optional[bool] = False
446
- """
447
- If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation.
448
- """
449
- edir: Optional[int] = None
450
- """
451
- The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE.
452
- """
453
- emaxpos: Optional[float] = 0.5
454
- """
455
- Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE.
456
- """
457
- eopreg: Optional[float] = 0.1
458
- """
459
- Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE.
460
- """
461
- eamp: Optional[float] = 0.001
462
- angle1: Optional[List[float]] = Field(None, max_length=1, min_length=1)
463
- """
464
- The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types.
465
- """
466
- angle2: Optional[List[float]] = Field(None, max_length=1, min_length=1)
467
- """
468
- The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only.
469
- """
470
- lforcet: Optional[bool] = None
471
- """
472
- When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1
473
- """
474
- constrained_magnetization: Optional[ConstrainedMagnetization] = "none"
475
- """
476
- Used to perform constrained calculations in magnetic systems.
477
- """
478
- fixed_magnetization: Optional[List[float]] = Field(None, max_length=3, min_length=3)
479
- lambda_: Optional[float] = Field(1, alias="lambda")
480
- """
481
- parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda
482
- """
483
- report: Optional[int] = -1
484
- """
485
- determines when atomic magnetic moments are printed on output
486
- """
487
- lspinorb: Optional[bool] = None
488
- """
489
- if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit.
490
- """
491
- assume_isolated: Optional[AssumeIsolated] = "none"
492
- """
493
- Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell)
494
- """
495
- esm_bc: Optional[EsmBc] = "pbc"
496
- """
497
- If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab.
498
- """
499
- esm_w: Optional[float] = 0
500
- """
501
- If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] ).
502
- """
503
- esm_efield: Optional[float] = 0
504
- """
505
- If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes.
506
- """
507
- esm_nfit: Optional[int] = 4
508
- """
509
- If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge.
510
- """
511
- lgcscf: Optional[bool] = False
512
- """
513
- If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF.
514
- """
515
- gcscf_mu: Optional[float] = None
516
- """
517
- The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge
518
- """
519
- gcscf_conv_thr: Optional[float] = 0.01
520
- """
521
- Convergence threshold of Fermi energy (eV) for GC-SCF.
522
- """
523
- gcscf_beta: Optional[float] = 0.05
524
- """
525
- Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite.
526
- """
527
- vdw_corr: Optional[VdwCorr] = "none"
528
- """
529
- Type of Van der Waals correction
530
- """
531
- london: Optional[bool] = False
532
- """
533
- OBSOLESCENT, same as vdw_corr='DFT-D'
534
- """
535
- london_s6: Optional[float] = 0.75
536
- """
537
- global scaling parameter for DFT-D. Default is good for PBE.
538
- """
539
- london_c6: Optional[float] = None
540
- """
541
- atomic C6 coefficient of each atom type
542
- """
543
- london_rvdw: Optional[float] = None
544
- """
545
- atomic vdw radii of each atom type
546
- """
547
- london_rcut: Optional[float] = 200
548
- """
549
- cutoff radius (a.u.) for dispersion interactions
550
- """
551
- dftd3_version: Optional[conint(ge=2, le=6)] = 3
552
- """
553
- Version of Grimme implementation of Grimme-D3
554
- """
555
- dftd3_threebody: Optional[bool] = True
556
- """
557
- Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled.
558
- """
559
- ts_vdw_econv_thr: Optional[float] = 1e-06
560
- """
561
- Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it
562
- """
563
- ts_vdw_isolated: Optional[bool] = False
564
- """
565
- Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system.
566
- """
567
- xdm: Optional[bool] = False
568
- """
569
- OBSOLESCENT, same as vdw_corr='xdm'
570
- """
571
- xdm_a1: Optional[float] = 0.6836
572
- """
573
- Damping function parameter a1 (adimensional)
574
- """
575
- xdm_a2: Optional[float] = 1.5045
576
- """
577
- Damping function parameter a2 (angstrom)
578
- """
579
- space_group: Optional[int] = 0
580
- """
581
- The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA)
582
- """
583
- uniqueb: Optional[bool] = False
584
- """
585
- Used only for monoclinic lattices
586
- """
587
- origin_choice: Optional[int] = 1
588
- """
589
- Used only for space groups that in the ITA allow the use of two different origins
590
- """
591
- rhombohedral: Optional[bool] = True
592
- """
593
- Used only for rhombohedral space groups.
594
- """
595
- zgate: Optional[float] = 0.5
596
- """
597
- used only if gate = .TRUE.
598
- """
599
- relaxz: Optional[bool] = False
600
- """
601
- used only if gate = .TRUE.
602
- """
603
- block: Optional[bool] = False
604
- """
605
- used only if gate = .TRUE.
606
- """
607
- block_1: Optional[float] = 0.45
608
- """
609
- used only if gate = .TRUE. and block = .TRUE.
610
- """
611
- block_2: Optional[float] = 0.55
612
- """
613
- used only if gate = .TRUE. and block = .TRUE.
614
- """
615
- block_height: Optional[float] = 0.1
616
- """
617
- used only if gate = .TRUE. and block = .TRUE.
618
- """
619
- nextffield: Optional[int] = 0
620
- """
621
- Number of activated external ionic force fields.
622
- """
623
- celldm: Optional[List[float]] = Field(None, max_length=6, min_length=6)
624
-
625
-
626
- class HubbardOccItem2(RootModel[conint(ge=1)]):
627
- root: conint(ge=1)
628
-
629
-
630
- class HubbardOccItem3(RootModel[conint(ge=1, le=3)]):
631
- root: conint(ge=1, le=3)
632
-
633
-
634
- class SystemSchema1(BaseModel):
635
- model_config = ConfigDict(
636
- extra="forbid",
637
- )
638
- ibrav: int
639
- nat: int
640
- """
641
- number of atoms in the unit cell (ALL atoms, except if space_group is set, in which case, INEQUIVALENT atoms)
642
- """
643
- ntyp: int
644
- """
645
- number of types of atoms in the unit cell
646
- """
647
- nbnd: Optional[int] = None
648
- """
649
- Default: for an insulator, nbnd = number of valence bands (nbnd = # of electrons /2); for a metal, 20% more (minimum 4 more)
650
- """
651
- nbnd_cond: Optional[int] = None
652
- """
653
- Default: nbnd_cond = nbnd - # of electrons / 2 in the collinear case; nbnd_cond = nbnd - # of electrons in the noncollinear case.
654
- """
655
- tot_charge: Optional[float] = 0
656
- starting_charge: Optional[float] = 0
657
- """
658
- starting charge on atomic type 'i', to create starting potential with startingpot = 'atomic'.
659
- """
660
- tot_magnetization: Optional[float] = -10000
661
- """
662
- Total majority spin charge - minority spin charge. Used to impose a specific total electronic magnetization. If unspecified then tot_magnetization variable is ignored and the amount of electronic magnetization is determined during the self-consistent cycle.
663
- """
664
- starting_magnetization: Optional[List[confloat(ge=-1.0, le=1.0)]] = None
665
- ecutwfc: float
666
- """
667
- kinetic energy cutoff (Ry) for wavefunctions
668
- """
669
- ecutrho: Optional[float] = None
670
- """
671
- Kinetic energy cutoff (Ry) for charge density and potential For norm-conserving pseudopotential you should stick to the default value, you can reduce it by a little but it will introduce noise especially on forces and stress. Default: 4 * ecutwfc
672
- """
673
- ecutfock: Optional[float] = None
674
- """
675
- Kinetic energy cutoff (Ry) for the exact exchange operator in EXX type calculations. By default this is the same as ecutrho but in some EXX calculations, a significant speed-up can be obtained by reducing ecutfock, at the expense of some loss in accuracy. Must be .gt. ecutwfc. Not implemented for stress calculation and for US-PP and PAW pseudopotentials.
676
- """
677
- nr1: Optional[int] = None
678
- """
679
- Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)
680
- """
681
- nr2: Optional[int] = None
682
- """
683
- Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)
684
- """
685
- nr3: Optional[int] = None
686
- """
687
- Three-dimensional FFT mesh (hard grid) for charge density (and scf potential). If not specified the grid is calculated based on the cutoff for charge density (see also ecutrho)
688
- """
689
- nr1s: Optional[int] = None
690
- """
691
- Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )
692
- """
693
- nr2s: Optional[int] = None
694
- """
695
- Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )
696
- """
697
- nr3s: Optional[int] = None
698
- """
699
- Three-dimensional mesh for wavefunction FFT and for the smooth part of charge density ( smooth grid ). Coincides with nr1, nr2, nr3 if ecutrho = 4 * ecutwfc ( default )
700
- """
701
- nosym: Optional[bool] = False
702
- nosym_evc: Optional[bool] = False
703
- noinv: Optional[bool] = False
704
- """
705
- if (.TRUE.) disable the usage of k => -k symmetry (time reversal) in k-point generation
706
- """
707
- no_t_rev: Optional[bool] = False
708
- """
709
- if (.TRUE.) disable the usage of magnetic symmetry operations that consist in a rotation + time reversal.
710
- """
711
- force_symmorphic: Optional[bool] = False
712
- """
713
- if (.TRUE.) force the symmetry group to be symmorphic by disabling symmetry operations having an associated fractionary translation
714
- """
715
- use_all_frac: Optional[bool] = False
716
- occupations: Optional[Occupations] = None
717
- one_atom_occupations: Optional[bool] = False
718
- starting_spin_angle: Optional[bool] = False
719
- degauss_cond: Optional[float] = 0
720
- """
721
- value of the gaussian spreading (Ry) for brillouin-zone integration in the conduction manifold in a two-chemical potential calculation (twochem=.true.).
722
- """
723
- nelec_cond: Optional[float] = 0
724
- """
725
- Number of electrons placed in the conduction manifold in a two-chemical potential calculation (twochem=.true.). Of the total # of electrons nelec, nelec-nelec_cond will occupy the valence manifold and nelec_cond will be constrained in the conduction manifold.
726
- """
727
- degauss: Optional[float] = 0
728
- """
729
- value of the gaussian spreading (Ry) for brillouin-zone integration in metals.
730
- """
731
- smearing: Optional[Smearing] = "gaussian"
732
- nspin: Optional[int] = 1
733
- sic_gamma: Optional[float] = 0
734
- """
735
- Strength of the gammaDFT potential.
736
- """
737
- pol_type: Optional[PolType] = None
738
- """
739
- Type of polaron in gammaDFT.
740
- """
741
- sic_energy: Optional[bool] = False
742
- """
743
- Enable the calculation of the total energy in gammaDFT. When .true., a preliminary calculation is performed to calculate the electron density in the absence of the polaron. When .false., the total energy printed in output should not be considered. For structural relaxations, it is recommended to use .false. to avoid doubling the computational cost.
744
- """
745
- sci_vb: Optional[float] = 0
746
- """
747
- Valence band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted.
748
- """
749
- sci_cb: Optional[float] = 0
750
- """
751
- Conduction band band shift (in eV) through self-consistent scissor operator. When performing gammaDFT calculations of polarons, the polaron level is not shifted.
752
- """
753
- noncolin: Optional[bool] = False
754
- """
755
- if .true. the program will perform a noncollinear calculation.
756
- """
757
- ecfixed: Optional[float] = 0
758
- qcutz: Optional[float] = 0
759
- q2sigma: Optional[float] = 0.1
760
- input_dft: Optional[str] = None
761
- """
762
- Exchange-correlation functional: eg 'PBE', 'BLYP' etc See Modules/funct.f90 for allowed values. Overrides the value read from pseudopotential files. Use with care and if you know what you are doing!
763
- """
764
- ace: Optional[bool] = True
765
- """
766
- Use Adaptively Compressed Exchange operator as in Lin Lin, J. Chem. Theory Comput. 2016, 12, 2242--2249, doi:10.1021/acs.jctc.6b00092
767
- """
768
- exx_fraction: Optional[float] = None
769
- """
770
- Fraction of EXX for hybrid functional calculations. In the case of input_dft='PBE0', the default value is 0.25, while for input_dft='B3LYP' the exx_fraction default value is 0.20.
771
- """
772
- screening_parameter: Optional[float] = 0.106
773
- """
774
- screening_parameter for HSE like hybrid functionals.
775
- """
776
- exxdiv_treatment: Optional[ExxdivTreatment] = "gygi-baldereschi"
777
- x_gamma_extrapolation: Optional[bool] = True
778
- """
779
- Specific for EXX. If .true., extrapolate the G=0 term of the potential
780
- """
781
- ecutvcut: Optional[float] = None
782
- """
783
- Reciprocal space cutoff for correcting Coulomb potential divergencies at small q vectors.
784
- """
785
- nqx1: Optional[int] = 0
786
- """
787
- Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.
788
- """
789
- nqx2: Optional[int] = None
790
- """
791
- Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.
792
- """
793
- nqx3: Optional[int] = None
794
- """
795
- Three-dimensional mesh for q (k1-k2) sampling of the Fock operator (EXX). Can be smaller than the number of k-points.
796
- """
797
- localization_thr: Optional[float] = 0
798
- """
799
- Overlap threshold over which the exchange integral over a pair of localized orbitals is included in the evaluation of EXX operator. Any value greater than 0.0 triggers the SCDM localization and the evaluation on EXX using the localized orbitals. Very small value of the threshold should yield the same result as the default EXX evaluation
800
- """
801
- Hubbard_occ: Optional[List[List[Union[HubbardOccItem2, HubbardOccItem3, float]]]] = None
802
- Hubbard_alpha: Optional[List[float]] = None
803
- Hubbard_beta: Optional[List[float]] = None
804
- starting_ns_eigenvalue: Optional[List[List[List[float]]]] = None
805
- dmft: Optional[bool] = False
806
- """
807
- If true, nscf calculation will exit in restart mode, scf calculation will restart from there if DMFT updates are provided as hdf5 archive. Scf calculation should be used only with electron_maxstep = 1.
808
- """
809
- dmft_prefix: Optional[str] = None
810
- """
811
- prepended to hdf5 archive: dmft_prefix.h5
812
- """
813
- ensemble_energies: Optional[bool] = False
814
- """
815
- If ensemble_energies = .true., an ensemble of xc energies is calculated non-selfconsistently for perturbed exchange-enhancement factors and LDA vs. PBE correlation ratios after each converged electronic ground state calculation.
816
- """
817
- edir: Optional[int] = None
818
- """
819
- The direction of the electric field or dipole correction is parallel to the bg(:,edir) reciprocal lattice vector, so the potential is constant in planes defined by FFT grid points; edir = 1, 2 or 3. Used only if tefield is .TRUE.
820
- """
821
- emaxpos: Optional[float] = 0.5
822
- """
823
- Position of the maximum of the saw-like potential along crystal axis edir, within the unit cell (see below), 0 < emaxpos < 1 Used only if tefield is .TRUE.
824
- """
825
- eopreg: Optional[float] = 0.1
826
- """
827
- Zone in the unit cell where the saw-like potential decreases. ( see below, 0 < eopreg < 1 ). Used only if tefield is .TRUE.
828
- """
829
- eamp: Optional[float] = 0.001
830
- angle1: Optional[List[float]] = Field(None, max_length=1, min_length=1)
831
- """
832
- The angle expressed in degrees between the initial magnetization and the z-axis. For noncollinear calculations only; index i runs over the atom types.
833
- """
834
- angle2: Optional[List[float]] = Field(None, max_length=1, min_length=1)
835
- """
836
- The angle expressed in degrees between the projection of the initial magnetization on x-y plane and the x-axis. For noncollinear calculations only.
837
- """
838
- lforcet: Optional[bool] = None
839
- """
840
- When starting a non collinear calculation using an existing density file from a collinear lsda calculation assumes previous density points in z direction and rotates it in the direction described by angle1 and angle2 variables for atomic type 1
841
- """
842
- constrained_magnetization: Optional[ConstrainedMagnetization] = "none"
843
- """
844
- Used to perform constrained calculations in magnetic systems.
845
- """
846
- fixed_magnetization: Optional[List[float]] = Field(None, max_length=3, min_length=3)
847
- lambda_: Optional[float] = Field(1, alias="lambda")
848
- """
849
- parameter used for constrained_magnetization calculations N.B.: if the scf calculation does not converge, try to reduce lambda to obtain convergence, then restart the run with a larger lambda
850
- """
851
- report: Optional[int] = -1
852
- """
853
- determines when atomic magnetic moments are printed on output
854
- """
855
- lspinorb: Optional[bool] = None
856
- """
857
- if .TRUE. the noncollinear code can use a pseudopotential with spin-orbit.
858
- """
859
- assume_isolated: Optional[AssumeIsolated] = "none"
860
- """
861
- Used to perform calculation assuming the system to be isolated (a molecule or a cluster in a 3D supercell)
862
- """
863
- esm_bc: Optional[EsmBc] = "pbc"
864
- """
865
- If assume_isolated = 'esm', determines the boundary conditions used for either side of the slab.
866
- """
867
- esm_w: Optional[float] = 0
868
- """
869
- If assume_isolated = 'esm', determines the position offset [in a.u.] of the start of the effective screening region, measured relative to the cell edge. (ESM region begins at z = +/- [L_z/2 + esm_w] ).
870
- """
871
- esm_efield: Optional[float] = 0
872
- """
873
- If assume_isolated = 'esm' and esm_bc = 'bc2', gives the magnitude of the electric field [Ry/a.u.] to be applied between semi-infinite ESM electrodes.
874
- """
875
- esm_nfit: Optional[int] = 4
876
- """
877
- If assume_isolated = 'esm', gives the number of z-grid points for the polynomial fit along the cell edge.
878
- """
879
- lgcscf: Optional[bool] = False
880
- """
881
- If .TRUE. perform a constant bias potential (constant-mu) calculation with Grand-Canonical SCF.
882
- """
883
- gcscf_mu: Optional[float] = None
884
- """
885
- The target Fermi energy (eV) of GC-SCF. One can start with appropriate total charge of the system by giving tot_charge
886
- """
887
- gcscf_conv_thr: Optional[float] = 0.01
888
- """
889
- Convergence threshold of Fermi energy (eV) for GC-SCF.
890
- """
891
- gcscf_beta: Optional[float] = 0.05
892
- """
893
- Mixing factor for GC-SCF. Larger values are recommended, if systems with small DOS on Fermi surface as graphite.
894
- """
895
- vdw_corr: Optional[VdwCorr] = "none"
896
- """
897
- Type of Van der Waals correction
898
- """
899
- london: Optional[bool] = False
900
- """
901
- OBSOLESCENT, same as vdw_corr='DFT-D'
902
- """
903
- london_s6: Optional[float] = 0.75
904
- """
905
- global scaling parameter for DFT-D. Default is good for PBE.
906
- """
907
- london_c6: Optional[float] = None
908
- """
909
- atomic C6 coefficient of each atom type
910
- """
911
- london_rvdw: Optional[float] = None
912
- """
913
- atomic vdw radii of each atom type
914
- """
915
- london_rcut: Optional[float] = 200
916
- """
917
- cutoff radius (a.u.) for dispersion interactions
918
- """
919
- dftd3_version: Optional[conint(ge=2, le=6)] = 3
920
- """
921
- Version of Grimme implementation of Grimme-D3
922
- """
923
- dftd3_threebody: Optional[bool] = True
924
- """
925
- Turn three-body terms in Grimme-D3 on. If .false. two-body contributions only are computed, using two-body parameters of Grimme-D3. If dftd3_version=2, three-body contribution is always disabled.
926
- """
927
- ts_vdw_econv_thr: Optional[float] = 1e-06
928
- """
929
- Optional: controls the convergence of the vdW energy (and forces). The default value is a safe choice, likely too safe, but you do not gain much in increasing it
930
- """
931
- ts_vdw_isolated: Optional[bool] = False
932
- """
933
- Optional: set it to .TRUE. when computing the Tkatchenko-Scheffler vdW energy or the Many-Body dispersion (MBD) energy for an isolated (non-periodic) system.
934
- """
935
- xdm: Optional[bool] = False
936
- """
937
- OBSOLESCENT, same as vdw_corr='xdm'
938
- """
939
- xdm_a1: Optional[float] = 0.6836
940
- """
941
- Damping function parameter a1 (adimensional)
942
- """
943
- xdm_a2: Optional[float] = 1.5045
944
- """
945
- Damping function parameter a2 (angstrom)
946
- """
947
- space_group: Optional[int] = 0
948
- """
949
- The number of the space group of the crystal, as given in the International Tables of Crystallography A (ITA)
950
- """
951
- uniqueb: Optional[bool] = False
952
- """
953
- Used only for monoclinic lattices
954
- """
955
- origin_choice: Optional[int] = 1
956
- """
957
- Used only for space groups that in the ITA allow the use of two different origins
958
- """
959
- rhombohedral: Optional[bool] = True
960
- """
961
- Used only for rhombohedral space groups.
962
- """
963
- zgate: Optional[float] = 0.5
964
- """
965
- used only if gate = .TRUE.
966
- """
967
- relaxz: Optional[bool] = False
968
- """
969
- used only if gate = .TRUE.
970
- """
971
- block: Optional[bool] = False
972
- """
973
- used only if gate = .TRUE.
974
- """
975
- block_1: Optional[float] = 0.45
976
- """
977
- used only if gate = .TRUE. and block = .TRUE.
978
- """
979
- block_2: Optional[float] = 0.55
980
- """
981
- used only if gate = .TRUE. and block = .TRUE.
982
- """
983
- block_height: Optional[float] = 0.1
984
- """
985
- used only if gate = .TRUE. and block = .TRUE.
986
- """
987
- nextffield: Optional[int] = 0
988
- """
989
- Number of activated external ionic force fields.
990
- """
991
- A: Optional[float] = None
992
- B: Optional[float] = None
993
- C: Optional[float] = None
994
- cosAB: Optional[float] = None
995
- cosAC: Optional[float] = None
996
- cosBC: Optional[float] = None
997
-
998
-
999
- class MixingMode(Enum):
1000
- plain = "plain"
1001
- TF = "TF"
1002
- local_TF = "local-TF"
1003
-
1004
-
1005
- class Diagonalization(Enum):
1006
- david = "david"
1007
- cg = "cg"
1008
- ppcg = "ppcg"
1009
- paro = "paro"
1010
- ParO = "ParO"
1011
- rmm_davidson = "rmm-davidson"
1012
- rmm_paro = "rmm-paro"
1013
-
1014
-
1015
- class EfieldPhase(Enum):
1016
- read = "read"
1017
- write = "write"
1018
- none = "none"
1019
-
1020
-
1021
- class Startingpot(Enum):
1022
- atomic = "atomic"
1023
- file = "file"
1024
-
1025
-
1026
- class Startingwfc(Enum):
1027
- atomic = "atomic"
1028
- atomic_random = "atomic+random"
1029
- random = "random"
1030
- file = "file"
1031
-
1032
-
1033
- class ElectronsSchema(BaseModel):
1034
- model_config = ConfigDict(
1035
- extra="forbid",
1036
- )
1037
- electron_maxstep: Optional[int] = 100
1038
- """
1039
- maximum number of iterations in a scf step. If exact exchange is active, this will affect the inner loops.
1040
- """
1041
- exx_maxstep: Optional[int] = 100
1042
- """
1043
- maximum number of outer iterations in a scf calculation with exact exchange.
1044
- """
1045
- scf_must_converge: Optional[bool] = True
1046
- """
1047
- If .false. do not stop molecular dynamics or ionic relaxation when electron_maxstep is reached. Use with care.
1048
- """
1049
- conv_thr: Optional[float] = None
1050
- adaptive_thr: Optional[bool] = False
1051
- """
1052
- If .TRUE. this turns on the use of an adaptive conv_thr for the inner scf loops when using EXX.
1053
- """
1054
- conv_thr_init: Optional[float] = None
1055
- """
1056
- When adaptive_thr = .TRUE. this is the convergence threshold used for the first scf cycle.
1057
- """
1058
- conv_thr_multi: Optional[float] = None
1059
- """
1060
- When adaptive_thr = .TRUE. the convergence threshold for each scf cycle is given by: max( conv_thr, conv_thr_multi * dexx )
1061
- """
1062
- mixing_mode: Optional[MixingMode] = "plain"
1063
- mixing_beta: Optional[float] = None
1064
- """
1065
- mixing factor for self-consistency
1066
- """
1067
- mixing_ndim: Optional[int] = 8
1068
- """
1069
- number of iterations used in mixing scheme
1070
- """
1071
- mixing_fixed_ns: Optional[int] = 0
1072
- """
1073
- For DFT+U : number of iterations with fixed ns ( ns is the atomic density appearing in the Hubbard term ).
1074
- """
1075
- diagonalization: Optional[Diagonalization] = "david"
1076
- diago_thr_init: Optional[float] = None
1077
- """
1078
- Convergence threshold (ethr) for iterative diagonalization (the check is on eigenvalue convergence).
1079
- """
1080
- diago_cg_maxiter: Optional[int] = None
1081
- """
1082
- For conjugate gradient diagonalization: max number of iterations
1083
- """
1084
- diago_ppcg_maxiter: Optional[int] = None
1085
- """
1086
- For ppcg diagonalization: max number of iterations
1087
- """
1088
- diago_david_ndim: Optional[int] = 2
1089
- """
1090
- For Davidson diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed).
1091
- """
1092
- diago_rmm_ndim: Optional[int] = 4
1093
- """
1094
- For RMM-DIIS diagonalization: dimension of workspace (number of wavefunction packets, at least 2 needed).
1095
- """
1096
- diago_rmm_conv: Optional[bool] = False
1097
- """
1098
- If .TRUE., RMM-DIIS is performed up to converge. If .FALSE., RMM-DIIS is performed only once.
1099
- """
1100
- diago_gs_nblock: Optional[int] = 16
1101
- """
1102
- For RMM-DIIS diagonalization: blocking size of Gram-Schmidt orthogonalization
1103
- """
1104
- diago_full_acc: Optional[bool] = False
1105
- """
1106
- If .TRUE. all the empty states are diagonalized at the same level of accuracy of the occupied ones. Otherwise the empty states are diagonalized using a larger threshold (this should not affect total energy, forces, and other ground-state properties).
1107
- """
1108
- efield: Optional[float] = None
1109
- """
1110
- Amplitude of the finite electric field (in Ry a.u.; 1 a.u. = 36.3609*10^10 V/m). Used only if lelfield==.TRUE. and if k-points (K_POINTS card) are not automatic.
1111
- """
1112
- efield_cart: Optional[List[float]] = Field(
1113
- None, max_length=3, min_length=3, title="array of 3 number elements schema"
1114
- )
1115
- efield_phase: Optional[EfieldPhase] = "none"
1116
- startingpot: Optional[Startingpot] = None
1117
- startingwfc: Optional[Startingwfc] = "atomic+random"
1118
- tqr: Optional[bool] = False
1119
- """
1120
- If .true., use a real-space algorithm for augmentation charges of ultrasoft pseudopotentials and PAWsets. Faster but numerically less accurate than the default G-space algorithm. Use with care and after testing!
1121
- """
1122
- real_space: Optional[bool] = False
1123
- """
1124
- If .true., exploit real-space localization to compute matrix elements for nonlocal projectors. Faster and in principle better scaling than the default G-space algorithm, but numerically less accurate, may lead to some loss of translational invariance. Use with care and after testing!
1125
- """
1126
-
1127
-
1128
- class IonPositions(Enum):
1129
- default = "default"
1130
- from_input = "from_input"
1131
-
1132
-
1133
- class IonVelocities(Enum):
1134
- default = "default"
1135
- from_input = "from_input"
1136
-
1137
-
1138
- class PotExtrapolation(Enum):
1139
- none = "none"
1140
- atomic = "atomic"
1141
- first_order = "first_order"
1142
- second_order = "second_order"
1143
-
1144
-
1145
- class WfcExtrapolation(Enum):
1146
- none = "none"
1147
- first_order = "first_order"
1148
- second_order = "second_order"
1149
-
1150
-
1151
- class IonTemperature(Enum):
1152
- rescaling = "rescaling"
1153
- rescale_v = "rescale-v"
1154
- rescale_T = "rescale-T"
1155
- reduce_T = "reduce-T"
1156
- berendsen = "berendsen"
1157
- andersen = "andersen"
1158
- svr = "svr"
1159
- initial = "initial"
1160
- not_controlled = "not_controlled"
1161
-
1162
-
1163
- class IonDynamics(Enum):
1164
- bfgs = "bfgs"
1165
- damp = "damp"
1166
- fire = "fire"
1167
-
1168
-
1169
- class IonsSchema(BaseModel):
1170
- model_config = ConfigDict(
1171
- extra="forbid",
1172
- )
1173
- ion_positions: Optional[IonPositions] = "default"
1174
- ion_velocities: Optional[IonVelocities] = "default"
1175
- pot_extrapolation: Optional[PotExtrapolation] = "atomic"
1176
- """
1177
- Used to extrapolate the potential from preceding ionic steps.
1178
- """
1179
- wfc_extrapolation: Optional[WfcExtrapolation] = "none"
1180
- """
1181
- Used to extrapolate the wavefunctions from preceding ionic steps.
1182
- """
1183
- remove_rigid_rot: Optional[bool] = False
1184
- """
1185
- 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.
1186
- """
1187
- ion_temperature: Optional[IonTemperature] = "not_controlled"
1188
- tempw: Optional[float] = 300
1189
- """
1190
- Starting temperature (Kelvin) in MD runs target temperature for most thermostats.
1191
- """
1192
- tolp: Optional[float] = 100
1193
- """
1194
- Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.
1195
- """
1196
- delta_t: Optional[float] = 1
1197
- nraise: Optional[int] = 1
1198
- refold_pos: Optional[bool] = False
1199
- """
1200
- 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.
1201
- """
1202
- upscale: Optional[float] = 100
1203
- """
1204
- 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.
1205
- """
1206
- bfgs_ndim: Optional[int] = 1
1207
- """
1208
- 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.
1209
- """
1210
- trust_radius_max: Optional[float] = 0.8
1211
- """
1212
- Maximum ionic displacement in the structural relaxation. (bfgs only)
1213
- """
1214
- trust_radius_min: Optional[float] = 0.001
1215
- """
1216
- Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)
1217
- """
1218
- trust_radius_ini: Optional[float] = 0.5
1219
- """
1220
- Initial ionic displacement in the structural relaxation. (bfgs only)
1221
- """
1222
- w_1: Optional[float] = 0.01
1223
- w_2: Optional[float] = 0.5
1224
- """
1225
- Parameters used in line search based on the Wolfe conditions. (bfgs only)
1226
- """
1227
- fire_alpha_init: Optional[float] = 0.2
1228
- """
1229
- Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3
1230
- """
1231
- fire_falpha: Optional[float] = 0.99
1232
- """
1233
- Scaling of the alpha mixing parameter for steps with P > 0;
1234
- """
1235
- fire_nmin: Optional[int] = 5
1236
- """
1237
- Minimum number of steps with P > 0 before increase of dt
1238
- """
1239
- fire_f_inc: Optional[float] = 1.1
1240
- """
1241
- Factor for increasing dt
1242
- """
1243
- fire_f_dec: Optional[float] = 0.5
1244
- """
1245
- Factor for decreasing dt
1246
- """
1247
- fire_dtmax: Optional[float] = 10
1248
- """
1249
- Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt
1250
- """
1251
- ion_dynamics: Optional[IonDynamics] = "bfgs"
1252
- """
1253
- CASE: calculation == 'relax'
1254
- """
1255
-
1256
-
1257
- class IonDynamics5(Enum):
1258
- verlet = "verlet"
1259
- langevin = "langevin"
1260
- langevin_smc = "langevin-smc"
1261
-
1262
-
1263
- class IonsSchema5(BaseModel):
1264
- model_config = ConfigDict(
1265
- extra="forbid",
1266
- )
1267
- ion_positions: Optional[IonPositions] = "default"
1268
- ion_velocities: Optional[IonVelocities] = "default"
1269
- pot_extrapolation: Optional[PotExtrapolation] = "atomic"
1270
- """
1271
- Used to extrapolate the potential from preceding ionic steps.
1272
- """
1273
- wfc_extrapolation: Optional[WfcExtrapolation] = "none"
1274
- """
1275
- Used to extrapolate the wavefunctions from preceding ionic steps.
1276
- """
1277
- remove_rigid_rot: Optional[bool] = False
1278
- """
1279
- 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.
1280
- """
1281
- ion_temperature: Optional[IonTemperature] = "not_controlled"
1282
- tempw: Optional[float] = 300
1283
- """
1284
- Starting temperature (Kelvin) in MD runs target temperature for most thermostats.
1285
- """
1286
- tolp: Optional[float] = 100
1287
- """
1288
- Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.
1289
- """
1290
- delta_t: Optional[float] = 1
1291
- nraise: Optional[int] = 1
1292
- refold_pos: Optional[bool] = False
1293
- """
1294
- 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.
1295
- """
1296
- upscale: Optional[float] = 100
1297
- """
1298
- 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.
1299
- """
1300
- bfgs_ndim: Optional[int] = 1
1301
- """
1302
- 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.
1303
- """
1304
- trust_radius_max: Optional[float] = 0.8
1305
- """
1306
- Maximum ionic displacement in the structural relaxation. (bfgs only)
1307
- """
1308
- trust_radius_min: Optional[float] = 0.001
1309
- """
1310
- Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)
1311
- """
1312
- trust_radius_ini: Optional[float] = 0.5
1313
- """
1314
- Initial ionic displacement in the structural relaxation. (bfgs only)
1315
- """
1316
- w_1: Optional[float] = 0.01
1317
- w_2: Optional[float] = 0.5
1318
- """
1319
- Parameters used in line search based on the Wolfe conditions. (bfgs only)
1320
- """
1321
- fire_alpha_init: Optional[float] = 0.2
1322
- """
1323
- Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3
1324
- """
1325
- fire_falpha: Optional[float] = 0.99
1326
- """
1327
- Scaling of the alpha mixing parameter for steps with P > 0;
1328
- """
1329
- fire_nmin: Optional[int] = 5
1330
- """
1331
- Minimum number of steps with P > 0 before increase of dt
1332
- """
1333
- fire_f_inc: Optional[float] = 1.1
1334
- """
1335
- Factor for increasing dt
1336
- """
1337
- fire_f_dec: Optional[float] = 0.5
1338
- """
1339
- Factor for decreasing dt
1340
- """
1341
- fire_dtmax: Optional[float] = 10
1342
- """
1343
- Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt
1344
- """
1345
- ion_dynamics: Optional[IonDynamics5] = "verlet"
1346
- """
1347
- CASE: calculation == 'md'
1348
- """
1349
-
1350
-
1351
- class IonDynamics6(Enum):
1352
- bfgs = "bfgs"
1353
- damp = "damp"
1354
-
1355
-
1356
- class IonsSchema6(BaseModel):
1357
- model_config = ConfigDict(
1358
- extra="forbid",
1359
- )
1360
- ion_positions: Optional[IonPositions] = "default"
1361
- ion_velocities: Optional[IonVelocities] = "default"
1362
- pot_extrapolation: Optional[PotExtrapolation] = "atomic"
1363
- """
1364
- Used to extrapolate the potential from preceding ionic steps.
1365
- """
1366
- wfc_extrapolation: Optional[WfcExtrapolation] = "none"
1367
- """
1368
- Used to extrapolate the wavefunctions from preceding ionic steps.
1369
- """
1370
- remove_rigid_rot: Optional[bool] = False
1371
- """
1372
- 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.
1373
- """
1374
- ion_temperature: Optional[IonTemperature] = "not_controlled"
1375
- tempw: Optional[float] = 300
1376
- """
1377
- Starting temperature (Kelvin) in MD runs target temperature for most thermostats.
1378
- """
1379
- tolp: Optional[float] = 100
1380
- """
1381
- Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.
1382
- """
1383
- delta_t: Optional[float] = 1
1384
- nraise: Optional[int] = 1
1385
- refold_pos: Optional[bool] = False
1386
- """
1387
- 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.
1388
- """
1389
- upscale: Optional[float] = 100
1390
- """
1391
- 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.
1392
- """
1393
- bfgs_ndim: Optional[int] = 1
1394
- """
1395
- 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.
1396
- """
1397
- trust_radius_max: Optional[float] = 0.8
1398
- """
1399
- Maximum ionic displacement in the structural relaxation. (bfgs only)
1400
- """
1401
- trust_radius_min: Optional[float] = 0.001
1402
- """
1403
- Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)
1404
- """
1405
- trust_radius_ini: Optional[float] = 0.5
1406
- """
1407
- Initial ionic displacement in the structural relaxation. (bfgs only)
1408
- """
1409
- w_1: Optional[float] = 0.01
1410
- w_2: Optional[float] = 0.5
1411
- """
1412
- Parameters used in line search based on the Wolfe conditions. (bfgs only)
1413
- """
1414
- fire_alpha_init: Optional[float] = 0.2
1415
- """
1416
- Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3
1417
- """
1418
- fire_falpha: Optional[float] = 0.99
1419
- """
1420
- Scaling of the alpha mixing parameter for steps with P > 0;
1421
- """
1422
- fire_nmin: Optional[int] = 5
1423
- """
1424
- Minimum number of steps with P > 0 before increase of dt
1425
- """
1426
- fire_f_inc: Optional[float] = 1.1
1427
- """
1428
- Factor for increasing dt
1429
- """
1430
- fire_f_dec: Optional[float] = 0.5
1431
- """
1432
- Factor for decreasing dt
1433
- """
1434
- fire_dtmax: Optional[float] = 10
1435
- """
1436
- Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt
1437
- """
1438
- ion_dynamics: Optional[IonDynamics6] = "bfgs"
1439
- """
1440
- CASE: calculation == 'vc-relax'
1441
- """
1442
-
1443
-
1444
- class IonDynamics7(Enum):
1445
- beeman = "beeman"
1446
-
1447
-
1448
- class IonsSchema7(BaseModel):
1449
- model_config = ConfigDict(
1450
- extra="forbid",
1451
- )
1452
- ion_positions: Optional[IonPositions] = "default"
1453
- ion_velocities: Optional[IonVelocities] = "default"
1454
- pot_extrapolation: Optional[PotExtrapolation] = "atomic"
1455
- """
1456
- Used to extrapolate the potential from preceding ionic steps.
1457
- """
1458
- wfc_extrapolation: Optional[WfcExtrapolation] = "none"
1459
- """
1460
- Used to extrapolate the wavefunctions from preceding ionic steps.
1461
- """
1462
- remove_rigid_rot: Optional[bool] = False
1463
- """
1464
- 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.
1465
- """
1466
- ion_temperature: Optional[IonTemperature] = "not_controlled"
1467
- tempw: Optional[float] = 300
1468
- """
1469
- Starting temperature (Kelvin) in MD runs target temperature for most thermostats.
1470
- """
1471
- tolp: Optional[float] = 100
1472
- """
1473
- Tolerance for velocity rescaling. Velocities are rescaled if the run-averaged and target temperature differ more than tolp.
1474
- """
1475
- delta_t: Optional[float] = 1
1476
- nraise: Optional[int] = 1
1477
- refold_pos: Optional[bool] = False
1478
- """
1479
- 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.
1480
- """
1481
- upscale: Optional[float] = 100
1482
- """
1483
- 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.
1484
- """
1485
- bfgs_ndim: Optional[int] = 1
1486
- """
1487
- 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.
1488
- """
1489
- trust_radius_max: Optional[float] = 0.8
1490
- """
1491
- Maximum ionic displacement in the structural relaxation. (bfgs only)
1492
- """
1493
- trust_radius_min: Optional[float] = 0.001
1494
- """
1495
- Minimum ionic displacement in the structural relaxation BFGS is reset when trust_radius < trust_radius_min. (bfgs only)
1496
- """
1497
- trust_radius_ini: Optional[float] = 0.5
1498
- """
1499
- Initial ionic displacement in the structural relaxation. (bfgs only)
1500
- """
1501
- w_1: Optional[float] = 0.01
1502
- w_2: Optional[float] = 0.5
1503
- """
1504
- Parameters used in line search based on the Wolfe conditions. (bfgs only)
1505
- """
1506
- fire_alpha_init: Optional[float] = 0.2
1507
- """
1508
- Initial value of the alpha mixing factor in the FIRE minimization scheme; recommended values are between 0.1 and 0.3
1509
- """
1510
- fire_falpha: Optional[float] = 0.99
1511
- """
1512
- Scaling of the alpha mixing parameter for steps with P > 0;
1513
- """
1514
- fire_nmin: Optional[int] = 5
1515
- """
1516
- Minimum number of steps with P > 0 before increase of dt
1517
- """
1518
- fire_f_inc: Optional[float] = 1.1
1519
- """
1520
- Factor for increasing dt
1521
- """
1522
- fire_f_dec: Optional[float] = 0.5
1523
- """
1524
- Factor for decreasing dt
1525
- """
1526
- fire_dtmax: Optional[float] = 10
1527
- """
1528
- Determines the maximum value of dt in the FIRE minimization; dtmax = fire_dtmax*dt
1529
- """
1530
- ion_dynamics: Optional[IonDynamics7] = "beeman"
1531
- """
1532
- CASE: calculation == 'vc-md'
1533
- """
1534
-
1535
-
1536
- class CellDofree(Enum):
1537
- all = "all"
1538
- ibrav = "ibrav"
1539
- a = "a"
1540
- b = "b"
1541
- c = "c"
1542
- fixa = "fixa"
1543
- fixb = "fixb"
1544
- fixc = "fixc"
1545
- x = "x"
1546
- y = "y"
1547
- xy = "xy"
1548
- xz = "xz"
1549
- xyz = "xyz"
1550
- shape = "shape"
1551
- volume = "volume"
1552
- field_2Dxy = "2Dxy"
1553
- field_2Dshape = "2Dshape"
1554
- epitaxial_ab = "epitaxial_ab"
1555
- epitaxial_ac = "epitaxial_ac"
1556
- epitaxial_bc = "epitaxial_bc"
1557
-
1558
-
1559
- class CellDynamics(Enum):
1560
- none = "none"
1561
- sd = "sd"
1562
- damp_pr = "damp-pr"
1563
- damp_w = "damp-w"
1564
- bfgs = "bfgs"
1565
-
1566
-
1567
- class CellSchema(BaseModel):
1568
- model_config = ConfigDict(
1569
- extra="forbid",
1570
- )
1571
- press: Optional[float] = 0
1572
- """
1573
- Target pressure [KBar] in a variable-cell md or relaxation run.
1574
- """
1575
- wmass: Optional[float] = None
1576
- """
1577
- Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD
1578
- """
1579
- cell_factor: Optional[float] = None
1580
- """
1581
- Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise
1582
- """
1583
- press_conv_thr: Optional[float] = 0.5
1584
- """
1585
- Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well).
1586
- """
1587
- cell_dofree: Optional[CellDofree] = "all"
1588
- """
1589
- Select which of the cell parameters should be moved
1590
- """
1591
- cell_dynamics: Optional[CellDynamics] = "bfgs"
1592
- """
1593
- CASE ( calculation == 'vc-relax' )
1594
- """
1595
-
1596
-
1597
- class CellDynamics3(Enum):
1598
- none = "none"
1599
- pr = "pr"
1600
- w = "w"
1601
-
1602
-
1603
- class CellSchema3(BaseModel):
1604
- model_config = ConfigDict(
1605
- extra="forbid",
1606
- )
1607
- press: Optional[float] = 0
1608
- """
1609
- Target pressure [KBar] in a variable-cell md or relaxation run.
1610
- """
1611
- wmass: Optional[float] = None
1612
- """
1613
- Fictitious cell mass [amu] for variable-cell simulations (both 'vc-md' and 'vc-relax'). Default: 0.75*Tot_Mass/pi**2 for Parrinello-Rahman MD; 0.75*Tot_Mass/pi**2/Omega**(2/3) for Wentzcovitch MD
1614
- """
1615
- cell_factor: Optional[float] = None
1616
- """
1617
- Used in the construction of the pseudopotential tables. It should exceed the maximum linear contraction of the cell during a simulation. Default: 2.0 for variable-cell calculations, 1.0 otherwise
1618
- """
1619
- press_conv_thr: Optional[float] = 0.5
1620
- """
1621
- Convergence threshold on the pressure for variable cell relaxation ('vc-relax' : note that the other convergence thresholds for ionic relaxation apply as well).
1622
- """
1623
- cell_dofree: Optional[CellDofree] = "all"
1624
- """
1625
- Select which of the cell parameters should be moved
1626
- """
1627
- cell_dynamics: Optional[CellDynamics3] = None
1628
- """
1629
- CASE ( calculation == 'vc-md' )
1630
- """
1631
-
1632
-
1633
- class Value(BaseModel):
1634
- model_config = ConfigDict(
1635
- extra="forbid",
1636
- )
1637
- X: Optional[str] = None
1638
- """
1639
- label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters)
1640
- """
1641
- Mass_X: Optional[float] = None
1642
- """
1643
- mass of the atomic species [amu: mass of C = 12]. Used only when performing Molecular Dynamics run or structural optimization runs using Damped MD. Not actually used in all other cases (but stored in data files, so phonon calculations will use these values unless other values are provided)
1644
- """
1645
- PseudoPot_X: Optional[str] = None
1646
- """
1647
- PseudoPot_X
1648
- """
1649
-
1650
-
1651
- class AtomicSpeciesSchema(BaseModel):
1652
- model_config = ConfigDict(
1653
- extra="forbid",
1654
- )
1655
- values: Optional[List[Value]] = None
1656
-
1657
-
1658
- class CardOption(Enum):
1659
- alat = "alat"
1660
- bohr = "bohr"
1661
- angstrom = "angstrom"
1662
- crystal = "crystal"
1663
- crystal_sg = "crystal_sg"
1664
-
1665
-
1666
- class Value5(BaseModel):
1667
- model_config = ConfigDict(
1668
- extra="forbid",
1669
- )
1670
- X: Optional[str] = None
1671
- """
1672
- label of the atom as specified in ATOMIC_SPECIES
1673
- """
1674
- x: float
1675
- """
1676
- atomic positions
1677
- """
1678
- y: float
1679
- """
1680
- atomic positions
1681
- """
1682
- z: float
1683
- """
1684
- atomic positions
1685
- """
1686
- if_pos_1_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(1)", title="integer one or zero")
1687
- if_pos_2_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(2)", title="integer one or zero")
1688
- if_pos_3_: Optional[conint(ge=0, le=1)] = Field(None, alias="if_pos(3)", title="integer one or zero")
1689
-
1690
-
1691
- class AtomicPositionsSchema(BaseModel):
1692
- model_config = ConfigDict(
1693
- extra="forbid",
1694
- )
1695
- card_option: Optional[CardOption] = "alat"
1696
- values: Optional[List[Value5]] = None
1697
-
1698
-
1699
- class CardOption5(Enum):
1700
- tpiba = "tpiba"
1701
- automatic = "automatic"
1702
- crystal = "crystal"
1703
- gamma = "gamma"
1704
- tpiba_b = "tpiba_b"
1705
- crystal_b = "crystal_b"
1706
- tpiba_c = "tpiba_c"
1707
- crystal_c = "crystal_c"
1708
-
1709
-
1710
- class Value6(BaseModel):
1711
- model_config = ConfigDict(
1712
- extra="forbid",
1713
- )
1714
- nks: Optional[int] = None
1715
- """
1716
- Number of supplied special k-points.
1717
- """
1718
- xk_x: Optional[float] = None
1719
- xk_y: Optional[float] = None
1720
- xk_z: Optional[float] = None
1721
- wk: Optional[float] = None
1722
-
1723
-
1724
- class Values(BaseModel):
1725
- model_config = ConfigDict(
1726
- extra="forbid",
1727
- )
1728
- nk1: Optional[int] = None
1729
- """
1730
- Number of supplied special k-points.
1731
- """
1732
- nk2: Optional[int] = None
1733
- """
1734
- Number of supplied special k-points.
1735
- """
1736
- nk3: Optional[int] = None
1737
- """
1738
- Number of supplied special k-points.
1739
- """
1740
- sk1: Optional[int] = None
1741
- """
1742
- Number of supplied special k-points.
1743
- """
1744
- sk2: Optional[int] = None
1745
- """
1746
- Number of supplied special k-points.
1747
- """
1748
- sk3: Optional[int] = None
1749
- """
1750
- Number of supplied special k-points.
1751
- """
1752
-
1753
-
1754
- class KPointsSchema(BaseModel):
1755
- model_config = ConfigDict(
1756
- extra="forbid",
1757
- )
1758
- card_option: Optional[CardOption5] = None
1759
- values: Optional[Union[List[Value6], Values]] = None
1760
-
1761
-
1762
- class CardOption6(Enum):
1763
- alat = "alat"
1764
- bohr = "bohr"
1765
- angstrom = "angstrom"
1766
-
1767
-
1768
- class Values8(BaseModel):
1769
- model_config = ConfigDict(
1770
- extra="forbid",
1771
- )
1772
- v1: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema")
1773
- v2: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema")
1774
- v3: Optional[List[float]] = Field(None, max_length=3, min_length=3, title="array of 3 number elements schema")
1775
-
1776
-
1777
- class CellParametersSchema(BaseModel):
1778
- model_config = ConfigDict(
1779
- extra="forbid",
1780
- )
1781
- card_option: Optional[CardOption6] = None
1782
- """
1783
- label of the atom. Acceptable syntax: chemical symbol X (1 or 2 characters, case-insensitive) or chemical symbol plus a number or a letter, as in "Xn" (e.g. Fe1) or "X_*" or "X-*" (e.g. C1, C_h; max total length cannot exceed 3 characters)
1784
- """
1785
- values: Optional[Values8] = None
1786
-
1787
-
1788
- class CardOption7(Enum):
1789
- atomic = "atomic"
1790
- ortho_atomic = "ortho-atomic"
1791
- norm_atomic = "norm-atomic"
1792
- wf = "wf"
1793
- pseudo = "pseudo"
1794
-
1795
-
1796
- class U(Enum):
1797
- U = "U"
1798
-
1799
-
1800
- class Values9(BaseModel):
1801
- model_config = ConfigDict(
1802
- extra="forbid",
1803
- )
1804
- U_1: Optional[U] = Field(None, alias="U")
1805
- """
1806
- string constant "U"; indicates the specs for the U parameter will be given
1807
- """
1808
- label: Optional[str] = None
1809
- """
1810
- label of the atom (as defined in ATOMIC_SPECIES)
1811
- """
1812
- manifold: Optional[str] = None
1813
- """
1814
- specs of the manifold (e.g., 3d, 2p...)
1815
- """
1816
- u_val: Optional[float] = None
1817
- """
1818
- value of the U parameter (in eV)
1819
- """
1820
-
1821
-
1822
- class J0(Enum):
1823
- J0 = "J0"
1824
-
1825
-
1826
- class Values10(BaseModel):
1827
- model_config = ConfigDict(
1828
- extra="forbid",
1829
- )
1830
- J0_1: Optional[J0] = Field(None, alias="J0")
1831
- """
1832
- string constant "J0"; indicates the specs for the J0 parameter will be given
1833
- """
1834
- label: Optional[str] = None
1835
- """
1836
- label of the atom (as defined in ATOMIC_SPECIES)
1837
- """
1838
- manifold: Optional[str] = None
1839
- """
1840
- specs of the manifold (e.g., 3d, 2p...)
1841
- """
1842
- j0_val: Optional[float] = None
1843
- """
1844
- value of the J0 parameter (in eV)
1845
- """
1846
-
1847
-
1848
- class ParamType(Enum):
1849
- U = "U"
1850
- J = "J"
1851
- B = "B"
1852
- E2 = "E2"
1853
- E3 = "E3"
1854
-
1855
-
1856
- class Value7(BaseModel):
1857
- model_config = ConfigDict(
1858
- extra="forbid",
1859
- )
1860
- paramType: Optional[ParamType] = None
1861
- """
1862
- character describing the type of Hubbard parameter allowed values: U, J and either B (for d-orbitals) or E2 and E3 (for f-orbitals)
1863
- """
1864
- label: Optional[str] = None
1865
- """
1866
- label of the atom (as defined in ATOMIC_SPECIES)
1867
- """
1868
- manifold: Optional[str] = None
1869
- """
1870
- specs of the manifold (e.g., 3d, 2p...)
1871
- """
1872
- paramValue: Optional[float] = None
1873
- """
1874
- value of the J0 parameter (in eV)
1875
- """
1876
-
1877
-
1878
- class Values11(BaseModel):
1879
- model_config = ConfigDict(
1880
- extra="forbid",
1881
- )
1882
- U_1: Optional[U] = Field(None, alias="U")
1883
- """
1884
- string constant "U"; indicates the specs for the U parameter will be given
1885
- """
1886
- label: Optional[str] = None
1887
- """
1888
- label of the atom (as defined in ATOMIC_SPECIES)
1889
- """
1890
- manifold: Optional[str] = None
1891
- """
1892
- specs of the manifold (e.g., 3d, 2p...)
1893
- """
1894
- u_val: Optional[float] = None
1895
- """
1896
- value of the U parameter (in eV)
1897
- """
1898
-
1899
-
1900
- class Values12(BaseModel):
1901
- model_config = ConfigDict(
1902
- extra="forbid",
1903
- )
1904
- J0_1: Optional[J0] = Field(None, alias="J0")
1905
- """
1906
- string constant "J0"; indicates the specs for the J0 parameter will be given
1907
- """
1908
- label: Optional[str] = None
1909
- """
1910
- label of the atom (as defined in ATOMIC_SPECIES)
1911
- """
1912
- manifold: Optional[str] = None
1913
- """
1914
- specs of the manifold (e.g., 3d, 2p...)
1915
- """
1916
- j0_val: Optional[float] = None
1917
- """
1918
- value of the J0 parameter (in eV)
1919
- """
1920
-
1921
-
1922
- class V(Enum):
1923
- V = "V"
1924
-
1925
-
1926
- class Values13(BaseModel):
1927
- model_config = ConfigDict(
1928
- extra="forbid",
1929
- )
1930
- V_1: Optional[V] = Field(None, alias="V")
1931
- """
1932
- string constant "V"; indicates the specs for the V parameter will be given
1933
- """
1934
- label_I_: Optional[str] = Field(None, alias="label(I)")
1935
- """
1936
- label of the atom I (as defined in ATOMIC_SPECIES)
1937
- """
1938
- manifold_I_: Optional[str] = Field(None, alias="manifold(I)")
1939
- """
1940
- specs of the manifold for atom I (e.g., 3d, 2p...)
1941
- """
1942
- label_J_: Optional[str] = Field(None, alias="label(J)")
1943
- """
1944
- label of the atom J (as defined in ATOMIC_SPECIES)
1945
- """
1946
- manifold_J_: Optional[str] = Field(None, alias="manifold(J)")
1947
- """
1948
- specs of the manifold for atom J (e.g., 3d, 2p...)
1949
- """
1950
- I: Optional[int] = None
1951
- """
1952
- index of the atom I
1953
- """
1954
- J: Optional[int] = None
1955
- """
1956
- index of the atom J
1957
- """
1958
- v_val_I_J_: Optional[float] = Field(None, alias="v_val(I,J)")
1959
- """
1960
- value of the V parameter for the atom pair I,J (in eV)
1961
- """
1962
-
1963
-
1964
- class HubbardSchema(BaseModel):
1965
- model_config = ConfigDict(
1966
- extra="forbid",
1967
- )
1968
- card_option: Optional[CardOption7] = None
1969
- values: Optional[Union[List[Union[Values9, Values10]], List[Value7], List[Union[Values11, Values12, Values13]]]] = (
1970
- None
1971
- )
1972
-
1973
-
1974
- class PwxMainSchema(BaseModel):
1975
- model_config = ConfigDict(
1976
- extra="forbid",
1977
- )
1978
- field_CONTROL: Optional[ControlSchema] = Field(None, alias="&CONTROL", title="control schema")
1979
- field_SYSTEM: Optional[Union[SystemSchema, SystemSchema1]] = Field(None, alias="&SYSTEM", title="system schema")
1980
- field_ELECTRONS: Optional[ElectronsSchema] = Field(None, alias="&ELECTRONS", title="electrons schema")
1981
- field_IONS: Optional[Union[IonsSchema, IonsSchema5, IonsSchema6, IonsSchema7]] = Field(None, alias="&IONS")
1982
- field_CELL: Optional[Union[CellSchema, CellSchema3]] = Field(None, alias="&CELL")
1983
- ATOMIC_SPECIES: Optional[AtomicSpeciesSchema] = Field(None, title="atomic species schema")
1984
- ATOMIC_POSITIONS: Optional[AtomicPositionsSchema] = Field(None, title="atomic positions schema")
1985
- """
1986
- https://www.quantum-espresso.org/Doc/INPUT_PW.html#idm1493
1987
- """
1988
- K_POINTS: Optional[KPointsSchema] = Field(None, title="k points schema")
1989
- CELL_PARAMETERS: Optional[CellParametersSchema] = Field(None, title="cell parameters schema")
1990
- HUBBARD: Optional[HubbardSchema] = Field(None, title="hubbard schema")