dopyqo 0.0.1__tar.gz

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.
Files changed (68) hide show
  1. dopyqo-0.0.1/.gitignore +260 -0
  2. dopyqo-0.0.1/CITATION.bib +10 -0
  3. dopyqo-0.0.1/INPUT.md +180 -0
  4. dopyqo-0.0.1/LICENSE.txt +325 -0
  5. dopyqo-0.0.1/PKG-INFO +494 -0
  6. dopyqo-0.0.1/README.md +128 -0
  7. dopyqo-0.0.1/dopyqo/__init__.py +28 -0
  8. dopyqo-0.0.1/dopyqo/calc_matrix_elements.py +365 -0
  9. dopyqo-0.0.1/dopyqo/calc_pseudo_pot.py +936 -0
  10. dopyqo-0.0.1/dopyqo/colors.py +24 -0
  11. dopyqo-0.0.1/dopyqo/cube.py +207 -0
  12. dopyqo-0.0.1/dopyqo/eri_pair_densities.py +795 -0
  13. dopyqo-0.0.1/dopyqo/fci_vector_matrix.py +162 -0
  14. dopyqo-0.0.1/dopyqo/hamiltonian.py +1653 -0
  15. dopyqo-0.0.1/dopyqo/helpers/atoms.py +238 -0
  16. dopyqo-0.0.1/dopyqo/helpers/config.py +660 -0
  17. dopyqo-0.0.1/dopyqo/helpers/matrix_elements.py +41 -0
  18. dopyqo-0.0.1/dopyqo/helpers/printing.py +97 -0
  19. dopyqo-0.0.1/dopyqo/helpers/tcc_helpers.py +290 -0
  20. dopyqo-0.0.1/dopyqo/helpers/vqe_helpers.py +26 -0
  21. dopyqo-0.0.1/dopyqo/info.py +2 -0
  22. dopyqo-0.0.1/dopyqo/plotting.py +259 -0
  23. dopyqo-0.0.1/dopyqo/pseudopot.py +142 -0
  24. dopyqo-0.0.1/dopyqo/scripts/banners.py +108 -0
  25. dopyqo-0.0.1/dopyqo/scripts/main.py +1228 -0
  26. dopyqo-0.0.1/dopyqo/transform_matrices.py +48 -0
  27. dopyqo-0.0.1/dopyqo/units.py +17 -0
  28. dopyqo-0.0.1/dopyqo/wannier90.py +177 -0
  29. dopyqo-0.0.1/dopyqo/wfc.py +1377 -0
  30. dopyqo-0.0.1/dopyqo/wfc_spin.py +289 -0
  31. dopyqo-0.0.1/dopyqo/xsf.py +103 -0
  32. dopyqo-0.0.1/dopyqo.egg-info/PKG-INFO +494 -0
  33. dopyqo-0.0.1/dopyqo.egg-info/SOURCES.txt +66 -0
  34. dopyqo-0.0.1/dopyqo.egg-info/dependency_links.txt +1 -0
  35. dopyqo-0.0.1/dopyqo.egg-info/entry_points.txt +2 -0
  36. dopyqo-0.0.1/dopyqo.egg-info/requires.txt +23 -0
  37. dopyqo-0.0.1/dopyqo.egg-info/top_level.txt +1 -0
  38. dopyqo-0.0.1/examples/bader_charges.py +184 -0
  39. dopyqo-0.0.1/examples/calculate_hamiltonian.py +33 -0
  40. dopyqo-0.0.1/examples/costum_hamiltonian.py +39 -0
  41. dopyqo-0.0.1/examples/dopyqo.toml +28 -0
  42. dopyqo-0.0.1/examples/fci_vqe.py +27 -0
  43. dopyqo-0.0.1/examples/fci_vqe_wannier.py +28 -0
  44. dopyqo-0.0.1/examples/plot_real_space_ks_orbital.py +33 -0
  45. dopyqo-0.0.1/examples/qe_files/Be/Be.scf.in +35 -0
  46. dopyqo-0.0.1/examples/qe_files/Be/run.sh +3 -0
  47. dopyqo-0.0.1/examples/qe_files/Be_wannier/Be.pw2wan +9 -0
  48. dopyqo-0.0.1/examples/qe_files/Be_wannier/Be.scf.in +35 -0
  49. dopyqo-0.0.1/examples/qe_files/Be_wannier/Be.win +35 -0
  50. dopyqo-0.0.1/examples/qe_files/Be_wannier/diamond.nscf.in +45 -0
  51. dopyqo-0.0.1/examples/qe_files/Be_wannier/run.sh +7 -0
  52. dopyqo-0.0.1/examples/qe_files/Mg2Si/Mg2Si.pp.in +13 -0
  53. dopyqo-0.0.1/examples/qe_files/Mg2Si/Mg2Si.scf.in +37 -0
  54. dopyqo-0.0.1/examples/read_npz_file.py +13 -0
  55. dopyqo-0.0.1/examples/read_wannier90_output.py +20 -0
  56. dopyqo-0.0.1/examples/reuse_dopyqo_config.py +46 -0
  57. dopyqo-0.0.1/examples/vqe_adapt.py +29 -0
  58. dopyqo-0.0.1/examples/wfc_to_qe_input.py +39 -0
  59. dopyqo-0.0.1/pyproject.toml +60 -0
  60. dopyqo-0.0.1/setup.cfg +4 -0
  61. dopyqo-0.0.1/tests/qe_files/LiH.scf.in +40 -0
  62. dopyqo-0.0.1/tests/snapshots/LiH.scf.in +40 -0
  63. dopyqo-0.0.1/tests/snapshots/Mg.scf.in +44 -0
  64. dopyqo-0.0.1/tests/snapshots/eri_LiH_4e_6o.npy +0 -0
  65. dopyqo-0.0.1/tests/snapshots/eri_Mg_20e_15o.npy +0 -0
  66. dopyqo-0.0.1/tests/test_eri_snapshot.py +78 -0
  67. dopyqo-0.0.1/tests/test_frozen_core_snapshot.py +117 -0
  68. dopyqo-0.0.1/tests/test_runqe.py +10 -0
@@ -0,0 +1,260 @@
1
+ cuda_eri/
2
+ rust_eri/
3
+ qe_files/
4
+ Bader_*/
5
+ !examples*/qe_files
6
+ !tests*/qe_files
7
+ plots/
8
+ raw/
9
+ wannier90_files/
10
+ eri/
11
+ .*/
12
+ results/
13
+ !images/results
14
+ output/
15
+ files/
16
+ nohup/
17
+ *.npz
18
+ *.dat
19
+ *.zip
20
+ *.tar.gz
21
+ *.save/
22
+ *.xml
23
+ investigations/
24
+ # Wannier90
25
+ *.werr
26
+ *.wout
27
+ *.nnkp
28
+ *.xsf
29
+ *.xyz
30
+ *.mat
31
+ *.amn
32
+ *.mmn
33
+ *.chk
34
+ *.eig
35
+ UNK*.*
36
+ # pp.x
37
+ *.pp
38
+ *.cube
39
+
40
+ *.html
41
+
42
+ .vscode/
43
+
44
+ # will have compiled files and executables
45
+ debug/
46
+ target/
47
+
48
+ # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
49
+ # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
50
+ Cargo.lock
51
+
52
+ # These are backup files generated by rustfmt
53
+ **/*.rs.bk
54
+
55
+ # MSVC Windows builds of rustc generate these, which store debugging information
56
+ *.pdb
57
+
58
+ # Byte-compiled / optimized / DLL files
59
+ __pycache__/
60
+ *.py[cod]
61
+ *$py.class
62
+
63
+ # C extensions
64
+ *.so
65
+
66
+ # Distribution / packaging
67
+ .Python
68
+ build/
69
+ develop-eggs/
70
+ dist/
71
+ downloads/
72
+ eggs/
73
+ .eggs/
74
+ lib/
75
+ lib64/
76
+ parts/
77
+ sdist/
78
+ var/
79
+ wheels/
80
+ share/python-wheels/
81
+ *.egg-info/
82
+ .installed.cfg
83
+ *.egg
84
+ MANIFEST
85
+
86
+ # PyInstaller
87
+ # Usually these files are written by a python script from a template
88
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
89
+ *.manifest
90
+ *.spec
91
+
92
+ # Installer logs
93
+ pip-log.txt
94
+ pip-delete-this-directory.txt
95
+
96
+ # Unit test / coverage reports
97
+ htmlcov/
98
+ .tox/
99
+ .nox/
100
+ .coverage
101
+ .coverage.*
102
+ .cache
103
+ nosetests.xml
104
+ coverage.xml
105
+ *.cover
106
+ *.py,cover
107
+ .hypothesis/
108
+ .pytest_cache/
109
+ cover/
110
+
111
+ # Translations
112
+ *.mo
113
+ *.pot
114
+
115
+ # Django stuff:
116
+ *.log
117
+ local_settings.py
118
+ db.sqlite3
119
+ db.sqlite3-journal
120
+
121
+ # Flask stuff:
122
+ instance/
123
+ .webassets-cache
124
+
125
+ # Scrapy stuff:
126
+ .scrapy
127
+
128
+ # Sphinx documentation
129
+ docs/_build/
130
+
131
+ # PyBuilder
132
+ .pybuilder/
133
+ target/
134
+
135
+ # Jupyter Notebook
136
+ .ipynb_checkpoints
137
+
138
+ # IPython
139
+ profile_default/
140
+ ipython_config.py
141
+
142
+ # pyenv
143
+ # For a library or package, you might want to ignore these files since the code is
144
+ # intended to run in multiple environments; otherwise, check them in:
145
+ # .python-version
146
+
147
+ # pipenv
148
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
149
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
150
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
151
+ # install all needed dependencies.
152
+ #Pipfile.lock
153
+
154
+ # poetry
155
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
156
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
157
+ # commonly ignored for libraries.
158
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
159
+ #poetry.lock
160
+
161
+ # pdm
162
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
163
+ #pdm.lock
164
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
165
+ # in version control.
166
+ # https://pdm.fming.dev/#use-with-ide
167
+ .pdm.toml
168
+
169
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
170
+ __pypackages__/
171
+
172
+ # Celery stuff
173
+ celerybeat-schedule
174
+ celerybeat.pid
175
+
176
+ # SageMath parsed files
177
+ *.sage.py
178
+
179
+ # Environments
180
+ .env
181
+ .venv
182
+ env/
183
+ venv/
184
+ ENV/
185
+ env.bak/
186
+ venv.bak/
187
+
188
+ # Spyder project settings
189
+ .spyderproject
190
+ .spyproject
191
+
192
+ # Rope project settings
193
+ .ropeproject
194
+
195
+ # mkdocs documentation
196
+ /site
197
+
198
+ # mypy
199
+ .mypy_cache/
200
+ .dmypy.json
201
+ dmypy.json
202
+
203
+ # Pyre type checker
204
+ .pyre/
205
+
206
+ # pytype static type analyzer
207
+ .pytype/
208
+
209
+ # Cython debug symbols
210
+ cython_debug/
211
+
212
+ # PyCharm
213
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
214
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
215
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
216
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
217
+ #.idea/
218
+
219
+
220
+ # CUDA
221
+ *.i
222
+ *.ii
223
+ *.gpu
224
+ *.ptx
225
+ *.cubin
226
+ *.fatbin
227
+
228
+ # C++
229
+ # Prerequisites
230
+ *.d
231
+
232
+ # Compiled Object files
233
+ *.slo
234
+ *.lo
235
+ *.o
236
+ *.obj
237
+
238
+ # Precompiled Headers
239
+ *.gch
240
+ *.pch
241
+
242
+ # Compiled Dynamic libraries
243
+ *.so
244
+ *.dylib
245
+ *.dll
246
+
247
+ # Fortran module files
248
+ *.mod
249
+ *.smod
250
+
251
+ # Compiled Static libraries
252
+ *.lai
253
+ *.la
254
+ *.a
255
+ *.lib
256
+
257
+ # Executables
258
+ *.exe
259
+ *.out
260
+ *.app
@@ -0,0 +1,10 @@
1
+ @misc{Schultheis2025ManyBody,
2
+ title={Many-body post-processing of density functional calculations using the variational quantum eigensolver for Bader charge analysis},
3
+ author={Erik Schultheis and Alexander Rehn and Gabriel Breuil},
4
+ year={2025},
5
+ eprint={-},
6
+ archivePrefix={arXiv},
7
+ primaryClass={quant-ph},
8
+ url={https://arxiv.org/abs/-},
9
+ doi={-}
10
+ }
dopyqo-0.0.1/INPUT.md ADDED
@@ -0,0 +1,180 @@
1
+ The input file is expected to be in the [TOML format](https://toml.io/en/).
2
+ In the following all sections of the input file are documented. See [example section](#example-input-files) for examples of input files.
3
+
4
+ ## Table of contents
5
+
6
+ - [control](#control)
7
+ - [base_folder](#base_folder)
8
+ - [prefix](#prefix)
9
+ - [active_electrons](#active_electrons)
10
+ - [active_orbitals](#active_orbitals)
11
+ - [kpoint_idx](#kpoint_idx)
12
+ - [logging](#logging)
13
+ - [run_vqe](#run_vqe)
14
+ - [run_fci](#run_fci)
15
+ - [use_qiskit](#use_qiskit)
16
+
17
+ - [wannier](#wannier)
18
+ - [transform](#transform)
19
+ - [umat](#umat)
20
+ - [input_file](#input_file)
21
+
22
+ - [geometry](#geometry)
23
+ - [unit](#unit)
24
+ - [coordinates](#coordinates)
25
+ - [lattice_vectors](#lattice_vectors)
26
+
27
+ - [vqe](#vqe)
28
+ - [parameters](#parameters)
29
+ - [optimizer](#optimizer)
30
+ - [uccsd_reps](#uccsd_reps)
31
+
32
+ ------------------------------------------------------------------------------------------------------------------------------
33
+
34
+ ## Control
35
+ (required)
36
+ ### base_folder
37
+ **STRING** (optional):
38
+
39
+ Output folder of the Quantum ESPRESSO calculation. Defaults to the folder from which the program is executed.
40
+
41
+ ### prefix
42
+ **STRING** (optional):
43
+
44
+ Prefix of the Quantum ESPRESSO calculation. Defaults to the name of the first folder thats ends with `.save` in the [base_folder](#base_folder), e.g. `Si` for the folder `Si.save`.
45
+
46
+ ### active_electrons
47
+ **INTEGER**:
48
+
49
+ Number of electrons in the active space.
50
+
51
+ ### active_orbitals
52
+ **INTEGER**:
53
+
54
+ Number of spatial orbitals in the active space.
55
+
56
+ ### kpoint_idx
57
+ **INTEGER | STRING** (required if Quantum ESPRESSO calculation involved more than one k-point):
58
+
59
+ Index of the k-point you want to load, starting from zero. If you want to load all k-points set to `"all"`.
60
+
61
+ ### logging
62
+ **BOOLEAN** (optional):
63
+
64
+ Whether or not to show logging output. Defaults to `false`.
65
+
66
+ ### run_vqe
67
+ **BOOLEAN** (optional):
68
+
69
+ Whether or not to run a VQE calculation. Defaults to `false`. See [vqe](#vqe) for more information.
70
+
71
+ ### run_fci
72
+ **BOOLEAN** (optional):
73
+
74
+ Whether or not to run a FCI calculation. Defaults to `false`. If set to `false` no FCI related calculation will be performed.
75
+
76
+ ### use_qiskit
77
+ **BOOLEAN** (optional):
78
+
79
+ Whether or not to use qiskit for VQE related calculations. Defaults to `false` for which TenCirChem will be used.
80
+
81
+ ------------------------------------------------------------------------------------------------------------------------------
82
+
83
+ ## Wannier
84
+ (optional):
85
+
86
+ If given the Hamiltonian is unitarily-transformed into a Wannier-orbital basis
87
+
88
+ ### transform
89
+ **BOOLEAN** (optional):
90
+
91
+ Whether or not to perform the Wannier transformation
92
+
93
+ ### umat
94
+ **STRING** (optional):
95
+
96
+ Path to the Wannier90 transformation matrix (U-matrix). If [transform](#transform) is `true` defaults to [prefix](#prefix)_u.mat in the [base_folder](#base_folder).
97
+
98
+ ### input_file
99
+ **STRING** (optional):
100
+
101
+ Path to the Wannier90 input file. If given, it is checked that the Wannier orbitals in the U-matrix ([umat](#umat)) match with the selected active space ([active_electrons](#active_electrons) and [active_orbitals](#active_orbitals))
102
+
103
+ ------------------------------------------------------------------------------------------------------------------------------
104
+
105
+ ## Geometry
106
+ (optional):
107
+
108
+ If not given the geometry from the Quantum ESPRESSO calculation is used. The geometry is currently not checked for its validity, i.e. atomic positions outside of the unit cell can result in unwanted behaviour.
109
+
110
+ ### unit
111
+ **STRING** (required if either [atomic positions](#coordinates) or [lattice vectors](#lattice_vectors) are given):
112
+
113
+ Unit in which the [atomic positions](#coordinates) and/or [lattice vectors](#lattice_vectors) are given. Supported units depend on whether or not [lattice_vectors](#lattice_vectors) are given. If they are **not** given the supported units are:
114
+ - `"angstrom"`
115
+ - `"bohr"`
116
+ - `"meter"`
117
+ - `"alat"`
118
+ - `"crystal"`
119
+ If [lattice_vectors](#lattice_vectors) are given the supported units are
120
+ - `"angstrom"`
121
+ - `"bohr"`
122
+ - `"meter"`
123
+
124
+ ### coordinates
125
+ **LIST OF LISTS** (optional):
126
+
127
+ Atomic positions as a list of lists in the specified [unit](#unit). Each inner list specifies one atom in the unit cell.
128
+
129
+ ### lattice_vectors
130
+ **LIST OF LISTS** (optional):
131
+
132
+ Lattice vectors as a list of lists in the specified [unit](#unit). Each inner list specifies one lattice vector.
133
+
134
+ ------------------------------------------------------------------------------------------------------------------------------
135
+
136
+ ## VQE
137
+ (required if [#run_vqe](#run_vqe) is set to `true`):
138
+
139
+ ### parameters
140
+ **LIST** (optional):
141
+
142
+ Each value in the list is one parameter value. The parameters are order as in the used UCCSD ansatz where we first apply all double excitations and then all single excitations. If given, no VQE optimization will be performed, only the energy of the VQE ansatz at the given parameter values is evaluated.
143
+
144
+ ### optimizer
145
+ **STRING** (required):
146
+
147
+ Optimizer used for the VQE optimization. Supported optimizers are:
148
+ - `"L-BFGS-B"`
149
+ - `"COBYLA"`
150
+ - `"ExcitationSolve"`
151
+
152
+ ### uccsd_reps
153
+ **INTEGER** (optional):
154
+
155
+ Number of repetitions of the UCCSD ansatz used in the VQE ansatz. Defaults to `1`.
156
+
157
+ ## Example input files
158
+ Running a calculation with an active space of (2e, 2o) with redefined atomic positions and lattice vectors, solving with the FCI solver and estimating the energy of the VQE ansatz using costum parameters.
159
+ ```toml
160
+ [control]
161
+ active_electrons=2
162
+ active_orbitals=2
163
+ run_vqe = true
164
+ run_fci = true
165
+
166
+ [geometry]
167
+ unit = "angstrom"
168
+ coordinates = [
169
+ [0.0, 0.0, 0.0],
170
+ [0.5, 0.5, 0.5]
171
+ ]
172
+ lattice_vectors = [
173
+ [1.0, 0.0, 0.0],
174
+ [0.0, 1.0, 0.0],
175
+ [0.0, 0.0, 1.0],
176
+ ]
177
+
178
+ [vqe]
179
+ parameters = [0.4, 0.3, 0.1]
180
+ ```