Skip to content

Commit f5b3220

Browse files
committed
Merge branch 'develop' into restart_exx
2 parents cca2a2d + 58a66d8 commit f5b3220

File tree

333 files changed

+3558
-1313
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

333 files changed

+3558
-1313
lines changed

.github/workflows/cuda.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ jobs:
5252
cd tests/13_NAO_multik_GPU
5353
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
5454
55+
- name: Test 15_rtTDDFT_GPU
56+
run: |
57+
cd tests/15_rtTDDFT_GPU
58+
bash ../integrate/Autotest.sh -n 2 -f CASES_GPU.txt
59+
5560
- name: Test 16_SDFT_GPU
5661
run: |
5762
cd tests/16_SDFT_GPU

.github/workflows/test.yml

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
3232
- name: Configure
3333
run: |
34-
cmake -B build -DBUILD_TESTING=ON -DENABLE_DEEPKS=ON -DENABLE_MLKEDF=ON -DENABLE_LIBXC=ON -DENABLE_LIBRI=ON -DENABLE_PAW=ON -DENABLE_GOOGLEBENCH=ON -DENABLE_RAPIDJSON=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=1
34+
cmake -B build -DBUILD_TESTING=ON -DENABLE_DEEPKS=ON -DENABLE_MLKEDF=ON -DENABLE_LIBXC=ON -DENABLE_LIBRI=ON -DENABLE_PAW=ON -DENABLE_GOOGLEBENCH=ON -DENABLE_RAPIDJSON=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DENABLE_FLOAT_FFTW=ON
3535
3636
# Temporarily removed because no one maintains this now.
3737
# And it will break the CI test workflow.
@@ -126,10 +126,37 @@ jobs:
126126
run: |
127127
cmake --build build --target test ARGS="-V --timeout 1700 -R 10_others"
128128
129-
- name: Unit Test
129+
- name: Module Base Unit Test
130130
env:
131131
GTEST_COLOR: 'yes'
132132
OMP_NUM_THREADS: '2'
133133
run: |
134-
cmake --build build --target test ARGS="-V --timeout 1700 -E 'integrate_test|01_PW|02_NAO_Gamma|03_NAO_multik|04_LJ_DP|05_rtTDDFT|06_SDFT|07_OFDFT|08_EXX|09_DeePKS|10_others|11_PW_GPU|16_SDFT_GPU'"
134+
cmake --build build --target test ARGS="-V --timeout 1700 -R MODULE_BASE"
135+
136+
- name: Module IO Unit Test
137+
env:
138+
GTEST_COLOR: 'yes'
139+
OMP_NUM_THREADS: '2'
140+
run: |
141+
cmake --build build --target test ARGS="-V --timeout 1700 -R MODULE_IO"
142+
143+
- name: Module HSolver Unit Test
144+
env:
145+
GTEST_COLOR: 'yes'
146+
OMP_NUM_THREADS: '2'
147+
run: |
148+
cmake --build build --target test ARGS="-V --timeout 1700 -R MODULE_HSOLVER"
149+
150+
- name: Module Cell Unit Test
151+
env:
152+
GTEST_COLOR: 'yes'
153+
OMP_NUM_THREADS: '2'
154+
run: |
155+
cmake --build build --target test ARGS="-V --timeout 1700 -R MODULE_CELL"
135156
157+
- name: Other Unit Tests
158+
env:
159+
GTEST_COLOR: 'yes'
160+
OMP_NUM_THREADS: '2'
161+
run: |
162+
cmake --build build --target test ARGS="-V --timeout 1700 -E 'integrate_test|01_PW|02_NAO_Gamma|03_NAO_multik|04_LJ_DP|05_rtTDDFT|06_SDFT|07_OFDFT|08_EXX|09_DeePKS|10_others|11_PW_GPU|12_NAO_Gamma_GPU|13_NAO_multik_GPU|15_rtTDDFT_GPU|16_SDFT_GPU|MODULE_BASE|MODULE_IO|MODULE_HSOLVER|MODULE_CELL'"

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,4 @@ __pycache__
2323
abacus.json
2424
*.npy
2525
toolchain/install/
26-
toolchain/abacus_env.sh
26+
toolchain/abacus_env.sh

docs/advanced/input_files/input-main.md

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@
166166
- [restart\_save](#restart_save)
167167
- [rpa](#rpa)
168168
- [nbands\_istate](#nbands_istate)
169-
- [bands\_to\_print](#bands_to_print)
169+
- [out\_pchg](#out_pchg)
170170
- [if\_separate\_k](#if_separate_k)
171171
- [out\_elf](#out_elf)
172172
- [Density of states](#density-of-states)
@@ -497,8 +497,8 @@ These variables are used to control general system parameters.
497497
- relax: perform structure relaxation calculations, the `relax_nmax` parameter depicts the maximal number of ionic iterations
498498
- cell-relax: perform cell relaxation calculations
499499
- md: perform molecular dynamics simulations
500-
- get_pchg: obtain partial (band-decomposed) charge densities (for LCAO basis only). See `nbands_istate` and `bands_to_print` for more information
501-
- get_wf: obtain wave functions (for LCAO basis only). See `nbands_istate` and `bands_to_print` for more information
500+
- get_pchg: obtain partial (band-decomposed) charge densities (for LCAO basis only). See `nbands_istate` and `out_pchg` for more information
501+
- get_wf: obtain wave functions (for LCAO basis only). See `nbands_istate`, `out_wfc_norm` and `out_wfc_re_im` for more information
502502
- get_S: obtain the overlap matrix formed by localized orbitals (for LCAO basis with multiple k points). the file name is `SR.csr` with file format being the same as that generated by [out_mat_hs2](#out_mat_hs2)
503503
- gen_bessel: generates projectors, i.e., a series of Bessel functions, for the DeePKS method (for LCAO basis only); see also keywords `bessel_descriptor_lmax`, `bessel_descriptor_rcut` and `bessel_descriptor_tolerence`. A file named `jle.orb` will be generated which contains the projectors. An example is provided in examples/H2O-deepks-pw
504504
- test_memory: obtain a rough estimation of memory consuption for the calculation
@@ -1681,14 +1681,14 @@ These variables are used to control the output of properties.
16811681

16821682
- **Type**: Integer
16831683
- **Availability**: Numerical atomic orbital basis
1684-
- **Description**: Whether to output the wavefunction coefficients into files in the folder `OUT.${suffix}`. The files are named as `WFC_{GAMMA|K}{index of K point}`, and if [out_app_flag](#out_app_flag) is false, the file name will also contains `_ION{ION step}`, where `ION step` is the index of ionic step:
1684+
- **Description**: Whether to output the electronic wavefunction coefficients into files and store them in the folder `OUT.${suffix}`. The files are named as `wf{s}{spin index}{k(optinal)}{k-point index}{g(optional)}{geometry index1}{_nao} + {".txt"/".dat"}`. Here, 's' refers to spin, where s1 means spin up channel while s2 means spin down channel, and 's12' refer to spinor wave functions that contains both spin channels with spin-orbital coupling or noncollinear calculations enabled. In addition, if 'gamma_only' is set to 0, then the optinoal k-point sampling index appears with the k-point index attached to the electronic wave function file names. Finally, if [out_app_flag](#out_app_flag) is set to false, the file name contains the optinal 'g' index for each ionic step that may have different geometries, and if [out_app_flag](#out_app_flag) is set to true, the wave functions accumulate during ionic steps.
16851685
- 0: no output
16861686
- 1: (txt format)
1687-
- gamma-only: `WFC_NAO_GAMMA1_ION1.txt` or `WFC_NAO_GAMMA1.txt`, ...;
1688-
- non-gamma-only: `WFC_NAO_K1_ION1.txt` or `WFC_NAO_K1.txt`, ...;
1687+
- gamma-only: `wfs1_nao.txt` or `wfs2_nao.txt`, ...;
1688+
- non-gamma-only: `wfs1k1_nao.txt` or `wfs1k2_nao.txt`, ...;
16891689
- 2: (binary format)
1690-
- gamma-only: `WFC_NAO_GAMMA1_ION1.dat` or `WFC_NAO_GAMMA1.dat`, ...;
1691-
- non-gamma-only: `WFC_NAO_K1_ION1.dat` or `WFC_NAO_K1.dat`, ....
1690+
- gamma-only: `wfs1_nao.dat` or `wfs2_nao.dat`, ...;
1691+
- non-gamma-only: `wfs1k1_nao.dat` or `wfs1k2_nao.dat`, ....
16921692

16931693
The corresponding sequence of the orbitals can be seen in [Basis Set](../pp_orb.md#basis-set).
16941694

@@ -1901,11 +1901,25 @@ The band (KS orbital) energy for each (k-point, spin, band) will be printed in t
19011901
- **Description**: The number of bands around the Fermi level you would like to calculate. `get_wf` means to calculate the envelope functions of wave functions $\Psi_{i}=\Sigma_{\mu}C_{i\mu}\Phi_{\mu}$, where $\Psi_{i}$ is the ith wave function with the band index $i$ and $\Phi_{\mu}$ is the localized atomic orbital set. `get_pchg` means to calculate the density of each wave function $|\Psi_{i}|^{2}$. Specifically, suppose we have highest occupied bands at 100th wave functions. And if you set this variable to 5, it will print five wave functions from 96th to 105th. But before all this can be carried out, the wave functions coefficients should be first calculated and written into a file by setting the flag `out_wfc_lcao = 1`.
19021902
- **Default**: 5
19031903

1904-
### bands_to_print
1904+
### out_pchg
19051905

19061906
- **Type**: String
1907-
- **Availability**: For both PW and LCAO. When `basis_type = lcao`, used when `calculation = get_wf` or `calculation = get_pchg`.
1908-
- **Description**: Specifies the bands to calculate the wave functions/charge densities for, using a space-separated string of 0s and 1s, providing a more flexible selection compared to `nbands_istate`. Each digit in the string corresponds to a band, starting from the first band. A `1` indicates that the charge density should be calculated for that band, while a `0` means the band will be ignored. The parameter allows a compact and flexible notation (similar to [`ocp_set`](#ocp_set)), for example the syntax `1 4*0 5*1 0` is used to denote the selection of bands: `1` means calculate for the first band, `4*0` skips the next four bands, `5*1` means calculate for the following five bands, and the final `0` skips the next band. It's essential that the total count of bands does not exceed the total number of bands (`nbands`); otherwise, it results in an error, and the process exits. The input string must contain only numbers and the asterisk (`*`) for repetition, ensuring correct format and intention of band selection.
1907+
- **Availability**: For both PW and LCAO. When `basis_type = lcao`, used when `calculation = get_pchg`.
1908+
- **Description**: Specifies the bands to calculate the charge densities for, using a space-separated string of 0s and 1s, providing a more flexible selection compared to `nbands_istate`. Each digit in the string corresponds to a band, starting from the first band. A `1` indicates that the charge density should be calculated for that band, while a `0` means the band will be ignored. The parameter allows a compact and flexible notation (similar to [`ocp_set`](#ocp_set)), for example the syntax `1 4*0 5*1 0` is used to denote the selection of bands: `1` means calculate for the first band, `4*0` skips the next four bands, `5*1` means calculate for the following five bands, and the final `0` skips the next band. It's essential that the total count of bands does not exceed the total number of bands (`nbands`); otherwise, it results in an error, and the process exits. The input string must contain only numbers and the asterisk (`*`) for repetition, ensuring correct format and intention of band selection.
1909+
- **Default**: none
1910+
1911+
### out_wfc_norm
1912+
1913+
- **Type**: String
1914+
- **Availability**: For LCAO, used when `calculation = get_wf`.
1915+
- **Description**: Specifies the bands to calculate the real-space wave function modulus (norm, or known as the envelope function) $|\psi(r)|$. The syntax and band selection rules are identical to [`out_pchg`](#out_pchg), but the output is the norm of the wave function.
1916+
- **Default**: none
1917+
1918+
### out_wfc_re_im
1919+
1920+
- **Type**: String
1921+
- **Availability**: For LCAO, used when `calculation = get_wf`.
1922+
- **Description**: Specifies the bands to calculate the real and imaginary parts of the wave function $\text{Re}(\psi(r))$ and $\text{Im}(\psi(r))$. The syntax and band selection rules are identical to [`out_pchg`](#out_pchg), but the output contains both the real and imaginary components of the wave function.
19091923
- **Default**: none
19101924

19111925
### if_separate_k

examples/tddft/README

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@
55
/*******************************************************************************/
66

77
These examples show how to do a real-time tddft calculation.
8-
One can set 'calculation' to be 'md' and esolver_type to be 'tddft' to do TDDFT calculation.
8+
One can set 'calculation' to be 'md' and 'esolver_type' to be 'tddft' to do TDDFT calculation.
99

1010
A time-dependent E-field can be applied by setting 'td_vext' to '1'.
11-
- For Non-periodic system, you could set 'stype' to '0' to do length gauge calculation, which would be faster.
12-
- For Periodic system, you could set 'stype' to '1' to do velocity gauge calculation.
13-
velocity gague has not been fully tested yet, so be careful about its results.
14-
15-
16-
11+
- For non-periodic system, you could set 'stype' to '0' to do length gauge calculation, which would be faster.
12+
- For periodic system, you could set 'stype' to '1' to do velocity gauge calculation.
13+
Velocity gauge has not been fully tested yet, so be careful about its results.

source/Makefile.Objects

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ OBJS_IO=input_conv.o\
514514
rhog_io.o\
515515
read_exit_file.o\
516516
read_wfc_pw.o\
517-
read_wfc_to_rho.o\
517+
read_wf2rho_pw.o\
518518
restart.o\
519519
binstream.o\
520520
to_wannier90.o\

0 commit comments

Comments
 (0)