From 801359ef1e1957d8cd6c1f48b2fde455ca589483 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Sat, 4 Jul 2026 19:47:28 +0800 Subject: [PATCH 1/4] Add check for parameter yaml to ensure consistence with source --- .github/workflows/build_test_cmake.yml | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.github/workflows/build_test_cmake.yml b/.github/workflows/build_test_cmake.yml index ea4ce366fd..cf46ebb4dc 100644 --- a/.github/workflows/build_test_cmake.yml +++ b/.github/workflows/build_test_cmake.yml @@ -78,3 +78,35 @@ jobs: rm -rf build cmake -B build -G Ninja ${{ matrix.build_args }} cmake --build build -j $(nproc) + + - name: Check parameters.yaml consistency + if: matrix.tag == 'gnu' && matrix.build_args == '' + run: | + ABACUS_BIN=$(find build -maxdepth 1 -name "abacus_*" -type f -executable | head -1) + if [ -z "${ABACUS_BIN}" ]; then + echo "ERROR: Could not find abacus binary in build/" + exit 1 + fi + echo "Using binary: ${ABACUS_BIN}" + ${ABACUS_BIN} --generate-parameters-yaml > /tmp/parameters_generated.yaml + if ! diff -q docs/parameters.yaml /tmp/parameters_generated.yaml; then + echo "" + echo "============================================" + echo "ERROR: docs/parameters.yaml is out of sync!" + echo "============================================" + echo "" + echo "The committed parameters.yaml does not match the parameter" + echo "metadata embedded in the C++ source code. This usually means" + echo "a developer modified Input_Item definitions in" + echo "source/source_io/module_parameter/read_input_item_*.cpp" + echo "but forgot to regenerate the YAML file." + echo "" + echo "To fix, run the following commands locally:" + echo "" + echo " \${ABACUS_BIN} --generate-parameters-yaml > docs/parameters.yaml" + echo "" + echo "--- Diff ( < committed | > generated ) ---" + diff docs/parameters.yaml /tmp/parameters_generated.yaml || true + exit 1 + fi + echo "parameters.yaml is up-to-date." From 4217378a8a229241b02507621413578dfae2f7e9 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Mon, 6 Jul 2026 20:17:42 +0800 Subject: [PATCH 2/4] Add doc check to integration test workflow --- .github/workflows/build_test_cmake.yml | 32 ---------- .github/workflows/test.yml | 82 +++++++++++++++++--------- 2 files changed, 55 insertions(+), 59 deletions(-) diff --git a/.github/workflows/build_test_cmake.yml b/.github/workflows/build_test_cmake.yml index cf46ebb4dc..ea4ce366fd 100644 --- a/.github/workflows/build_test_cmake.yml +++ b/.github/workflows/build_test_cmake.yml @@ -78,35 +78,3 @@ jobs: rm -rf build cmake -B build -G Ninja ${{ matrix.build_args }} cmake --build build -j $(nproc) - - - name: Check parameters.yaml consistency - if: matrix.tag == 'gnu' && matrix.build_args == '' - run: | - ABACUS_BIN=$(find build -maxdepth 1 -name "abacus_*" -type f -executable | head -1) - if [ -z "${ABACUS_BIN}" ]; then - echo "ERROR: Could not find abacus binary in build/" - exit 1 - fi - echo "Using binary: ${ABACUS_BIN}" - ${ABACUS_BIN} --generate-parameters-yaml > /tmp/parameters_generated.yaml - if ! diff -q docs/parameters.yaml /tmp/parameters_generated.yaml; then - echo "" - echo "============================================" - echo "ERROR: docs/parameters.yaml is out of sync!" - echo "============================================" - echo "" - echo "The committed parameters.yaml does not match the parameter" - echo "metadata embedded in the C++ source code. This usually means" - echo "a developer modified Input_Item definitions in" - echo "source/source_io/module_parameter/read_input_item_*.cpp" - echo "but forgot to regenerate the YAML file." - echo "" - echo "To fix, run the following commands locally:" - echo "" - echo " \${ABACUS_BIN} --generate-parameters-yaml > docs/parameters.yaml" - echo "" - echo "--- Diff ( < committed | > generated ) ---" - diff docs/parameters.yaml /tmp/parameters_generated.yaml || true - exit 1 - fi - echo "parameters.yaml is up-to-date." diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 338b85ec24..f1b75fd2f7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -84,195 +84,223 @@ jobs: cmake --build build -j8 cmake --install build + - name: Check documentation consistency + run: | + ABACUS_BIN=$(find build -maxdepth 1 -name "abacus_*" -type f -executable | head -1) + echo "Using binary: ${ABACUS_BIN}" + + # Check 1: parameters.yaml matches C++ Input_Item definitions + ${ABACUS_BIN} --generate-parameters-yaml > /tmp/parameters_generated.yaml + if ! diff -q docs/parameters.yaml /tmp/parameters_generated.yaml; then + echo "error: docs/parameters.yaml is out of sync with C++ source" + echo "Fix: ${ABACUS_BIN} --generate-parameters-yaml > docs/parameters.yaml" + diff docs/parameters.yaml /tmp/parameters_generated.yaml || true + exit 1 + fi + echo " parameters.yaml: OK" + + # Check 2: input-main.md matches regenerated markdown + pip install -q pyyaml + python docs/generate_input_main.py \ + /tmp/parameters_generated.yaml \ + --output /tmp/input-main-generated.md + if ! diff -q docs/advanced/input_files/input-main.md /tmp/input-main-generated.md; then + echo "error: input-main.md is out of sync" + echo "Fix: python docs/generate_input_main.py docs/parameters.yaml" + diff docs/advanced/input_files/input-main.md /tmp/input-main-generated.md || true + exit 1 + fi + echo " input-main.md: OK" + - name: Integrated Tests Preparation env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R integrated_test - + - name: Module_Base Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_BASE - + - name: Module_IO Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_IO - + - name: Module_HSolver Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_HSOLVER -E PERF_MODULE_HSOLVER_KERNELS - + - name: Module_Cell Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_CELL - + - name: Module_MD Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_MD - + - name: Module_Psi Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_PSI - + - name: Module_RI Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_RI - + - name: Module_Estate Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_ESTATE - + - name: Module_Hamilt Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_HAMILT - + - name: Module_PW Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_PW - + - name: Module_LCAO Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_LCAO - + - name: Module_AO Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_AO - + - name: Module_NAO Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_NAO - + - name: Module_RELAX Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_RELAX - + - name: Module_LR Unittests env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R MODULE_LR - + - name: 01_PW Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 01_PW - + - name: 02_NAO_Gamma Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 02_NAO_Gamma - + - name: 03_NAO_multik Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 03_NAO_multik - + - name: 04_FF Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 04_FF - + - name: 05_rtTDDFT Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 05_rtTDDFT - + - name: 06_SDFT Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 06_SDFT - + - name: 07_OFDFT Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 07_OFDFT - + - name: 08_EXX Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 08_EXX - + - name: 09_DeePKS Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 09_DeePKS - + - name: 10_others Test env: GTEST_COLOR: 'yes' OMP_NUM_THREADS: '2' run: | ctest --test-dir build -V --timeout 1700 -R 10_others - + # - name: 17_DS_DFTU Test # env: # GTEST_COLOR: 'yes' # OMP_NUM_THREADS: '2' # run: | # ctest --test-dir build -V --timeout 1700 -R 17_DS_DFTU - + - name: Other Unittests env: GTEST_COLOR: 'yes' From d1b1c8978a61ff4ca64aaf3a45245d51882aca34 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Wed, 8 Jul 2026 19:46:03 +0800 Subject: [PATCH 3/4] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f1b75fd2f7..ee633a76ca 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -86,7 +86,7 @@ jobs: - name: Check documentation consistency run: | - ABACUS_BIN=$(find build -maxdepth 1 -name "abacus_*" -type f -executable | head -1) + ABACUS_BIN=$(find build -name "abacus_*" -type f -executable | head -1) echo "Using binary: ${ABACUS_BIN}" # Check 1: parameters.yaml matches C++ Input_Item definitions From 0b0c48d2101835ba9ef95f2e21cd6b805766264e Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Thu, 9 Jul 2026 09:42:47 +0800 Subject: [PATCH 4/4] Keep docs up to date --- docs/advanced/input_files/input-main.md | 170 +++++++++++------------- docs/parameters.yaml | 127 +++++++++++++++++- 2 files changed, 206 insertions(+), 91 deletions(-) diff --git a/docs/advanced/input_files/input-main.md b/docs/advanced/input_files/input-main.md index 334144f44c..504c4df731 100644 --- a/docs/advanced/input_files/input-main.md +++ b/docs/advanced/input_files/input-main.md @@ -169,12 +169,6 @@ - [out\_stru](#out_stru) - [out\_level](#out_level) - [out\_mat\_hs](#out_mat_hs) - - [out\_mat\_h\_t](#out_mat_h_t) - - [out\_mat\_h\_vl](#out_mat_h_vl) - - [out\_mat\_h\_vnl](#out_mat_h_vnl) - - [out\_mat\_h\_vh](#out_mat_h_vh) - - [out\_mat\_h\_vxc](#out_mat_h_vxc) - - [out\_mat\_h\_exx](#out_mat_h_exx) - [out\_mat\_hs2](#out_mat_hs2) - [out\_mat\_tk](#out_mat_tk) - [out\_mat\_r](#out_mat_r) @@ -186,6 +180,12 @@ - [out\_mat\_dh\_vh](#out_mat_dh_vh) - [out\_mat\_dh\_vxc](#out_mat_dh_vxc) - [out\_mat\_dh\_exx](#out_mat_dh_exx) + - [out\_mat\_h\_t](#out_mat_h_t) + - [out\_mat\_h\_vnl](#out_mat_h_vnl) + - [out\_mat\_h\_vl](#out_mat_h_vl) + - [out\_mat\_h\_vh](#out_mat_h_vh) + - [out\_mat\_h\_vxc](#out_mat_h_vxc) + - [out\_mat\_h\_exx](#out_mat_h_exx) - [out\_mat\_ds](#out_mat_ds) - [out\_mat\_xc](#out_mat_xc) - [out\_mat\_xc2](#out_mat_xc2) @@ -503,7 +503,6 @@ - [cond\_smear](#cond_smear) - [cond\_fwhm](#cond_fwhm) - [cond\_nonlocal](#cond_nonlocal) - - [cond\_mgga\_vel](#cond_mgga_vel) - [Implicit solvation model](#implicit-solvation-model) - [imp\_sol](#imp_sol) - [eb\_k](#eb_k) @@ -718,6 +717,7 @@ - file: the density will be read in from a binary file charge-density.dat first. If it does not exist, the charge density will be read in from cube files. - wfc: the density will be calculated by wavefunctions and occupations. - dm: the density will be calculated by real space density matrix(DMR) of LCAO base. + - dm_no_renormalize: same as dm, but the charge density is not renormalized to the number of electrons. - hr: the real space Hamiltonian matrix(HR) will be read in from file hrs1_nao.csr in directory read_file_dir. - auto: Abacus first attempts to read the density from a file; if not found, it defaults to using atomic density. - **Default**: atomic @@ -1949,7 +1949,7 @@ The corresponding sequence of the orbitals can be seen in Basis Set. - Also controlled by out_freq_ion and out_app_flag. + Also controled by out_freq_ion and out_app_flag. > Note: In the 3.10-LTS version, the file names are WFC_NAO_GAMMA1_ION1.txt and WFC_NAO_K1_ION1.txt, etc. - **Default**: 0 @@ -2010,7 +2010,7 @@ - **Type**: Boolean \[Integer\](optional) - **Availability**: *Numerical atomic orbital basis* -- **Description**: Whether to print the upper triangular part of the Hamiltonian matrices and overlap matrices for each k-point into files in the directory OUT.${suffix}. The second number controls precision. For more information, please refer to hs_matrix.md. Also controlled by out_freq_ion and out_app_flag. +- **Description**: Whether to print the upper triangular part of the Hamiltonian matrices and overlap matrices for each k-point into files in the directory OUT.${suffix}. The second number controls precision. For more information, please refer to hs_matrix.md. Also controled by out_freq_ion and out_app_flag. - For gamma only case: - nspin = 1: hks1_nao.txt for the Hamiltonian matrix and sks1_nao.txt for the overlap matrix; - nspin = 2: hks1_nao.txt and hks2_nao.txt for the Hamiltonian matrix and sks1_nao.txt for the overlap matrix. Note that the code will not output sks2_nao.txt because it is the same as sks1_nao.txt; @@ -2024,54 +2024,6 @@ - **Default**: False 8 - **Unit**: Ry -### out_mat_h_t - -- **Type**: Boolean \[Integer\](optional) -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print the kinetic energy matrix $T_{\mu\nu}(k) = \langle\phi_\mu|\hat{T}|\phi_\nu\rangle(k)$ for each k-point. The output format and file naming (e.g. `tks1_nao.txt`, `tks1k1_nao.txt`) follow [`out_mat_hs`](#out_mat_hs). -- **Default**: False 8 -- **Unit**: Ry - -### out_mat_h_vl - -- **Type**: Boolean \[Integer\](optional) -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print the local pseudopotential matrix $V^L_{\mu\nu}(k) = \langle\phi_\mu|\hat{V}^L|\phi_\nu\rangle(k)$ for each k-point. The output format and file naming (e.g. `vlks1_nao.txt`, `vlks1k1_nao.txt`) follow [`out_mat_hs`](#out_mat_hs). -- **Default**: False 8 -- **Unit**: Ry - -### out_mat_h_vnl - -- **Type**: Boolean \[Integer\](optional) -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print the nonlocal pseudopotential (Kleinman–Bylander) matrix $V^{NL}_{\mu\nu}(k) = \langle\phi_\mu|\hat{V}^{NL}|\phi_\nu\rangle(k)$ for each k-point. The output format and file naming (e.g. `vnlks1_nao.txt`, `vnlks1k1_nao.txt`) follow [`out_mat_hs`](#out_mat_hs). -- **Default**: False 8 -- **Unit**: Ry - -### out_mat_h_vh - -- **Type**: Boolean \[Integer\](optional) -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print the Hartree matrix $V^H_{\mu\nu}(k) = \langle\phi_\mu|\hat{V}^H|\phi_\nu\rangle(k)$ for each k-point. The output format and file naming (e.g. `vhks1_nao.txt`, `vhks1k1_nao.txt`) follow [`out_mat_hs`](#out_mat_hs). -- **Default**: False 8 -- **Unit**: Ry - -### out_mat_h_vxc - -- **Type**: Boolean \[Integer\](optional) -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print the exchange-correlation matrix $V^{XC}_{\mu\nu}(k) = \langle\phi_\mu|\hat{V}^{XC}|\phi_\nu\rangle(k)$ for each k-point. The output format and file naming (e.g. `vxcks1_nao.txt`, `vxcks1k1_nao.txt`) follow [`out_mat_hs`](#out_mat_hs). -- **Default**: False 8 -- **Unit**: Ry - -### out_mat_h_exx - -- **Type**: Boolean \[Integer\](optional) -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4, hybrid functional only)* -- **Description**: Whether to print the exact-exchange matrix $V^{EXX}_{\mu\nu}(k) = \langle\phi_\mu|\hat{V}^{EXX}|\phi_\nu\rangle(k)$ for each k-point. The output format and file naming (e.g. `vexxks1_nao.txt`, `vexxks1k1_nao.txt`) follow [`out_mat_hs`](#out_mat_hs). Requires a hybrid functional (`cal_exx = true`). -- **Default**: False 8 -- **Unit**: Ry - ### out_mat_hs2 - **Type**: Boolean \[Integer\](optional) @@ -2106,7 +2058,7 @@ - **Type**: Boolean \[Integer\](optional) - **Availability**: *Numerical atomic orbital basis (not gamma-only algorithm)* -- **Description**: Generate files containing the kinetic energy matrix. The optional second parameter controls text output precision. The format will be the same as the Hamiltonian matrix and overlap matrix as mentioned in out_mat_hs2. The name of the files will be trs1_nao.csr and so on. Also controlled by out_freq_ion and out_app_flag. +- **Description**: Generate files containing the kinetic energy matrix. The optional second parameter controls text output precision. The format will be the same as the Hamiltonian matrix and overlap matrix as mentioned in out_mat_hs2. The name of the files will be trs1_nao.csr and so on. Also controled by out_freq_ion and out_app_flag. > Note: In the 3.10-LTS version, the file name is data-TR-sparse_SPIN0.csr. - **Default**: False 8 @@ -2115,81 +2067,128 @@ ### out_mat_dh - **Type**: Integer -- **Availability**: *Numerical atomic orbital basis* -- **Description**: Whether to print files containing the derivatives of the Hamiltonian matrix $dH(k)/d\tau_I=d\braket{\phi|\hat{H}|\phi}(k)/d\tau_I$ where $\tau_I$ is the Ith atom position with the dense format as `out_mat_dh`. The names are dhk[x/y/z]_iat[I][_ik]_nao.txt. - - See also the term-separated output parameters: [`out_mat_dh_t`](#out_mat_dh_t), [`out_mat_dh_vl`](#out_mat_dh_vl), [`out_mat_dh_vnl`](#out_mat_dh_vnl), [`out_mat_dh_vh`](#out_mat_dh_vh), [`out_mat_dh_vxc`](#out_mat_dh_vxc) and [`out_mat_dh_exx`](#out_mat_dh_exx). - - If not gamma-only, also $\braket{\nabla\phi|\hat{H}\phi}(R)$ of sparse format as `out_mat_hs2` will also be output. The name of the files will be dhrxs1_nao.csr, dhrys1_nao.csr, dhrzs1_nao.csr and so on. Also controlled by out_freq_ion and out_app_flag. - > Note: In the 3.10-LTS version, the file name is data-dHRx-sparse_SPIN0.csr and so on. - - **Format**: ` [precision] [iat1 iat2 ...]` - - The first value (0/1) enables or disables output. - - The second optional value sets the output precision (number of significant digits, default: 8). - - Starting from the third value, **1-based atom indices** can be listed to restrict the output to derivatives with respect to those specific atoms only. If no atom indices are given, derivatives are written for all atoms. +- **Availability**: *Numerical atomic orbital basis (not gamma-only algorithm)* +- **Description**: Whether to print files containing the derivatives of the Hamiltonian matrix. The format will be the same as the Hamiltonian matrix and overlap matrix as mentioned in out_mat_hs2. The name of the files will be dhrxs1_nao.csr, dhrys1_nao.csr, dhrzs1_nao.csr and so on. Also controled by out_freq_ion and out_app_flag. - For example, `out_mat_dh 1 8 1 3` writes dH/dR for atoms 1 and 3 only (1-based indexing). + Format: <enable> [precision] [iat1 iat2 ...]. The first value (0/1) enables/disables output. The second optional value sets the output precision (default: 8). Starting from the third value, 1-based atom indices can be listed to restrict output to derivatives with respect to those specific atoms only; if no atom indices are given, all atoms are written. + > Note: In the 3.10-LTS version, the file name is data-dHRx-sparse_SPIN0.csr and so on. - **Default**: 0 8 - **Unit**: Ry/Bohr ### out_mat_dh_t - **Type**: Integer -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print files containing the kinetic energy contribution to the Hamiltonian derivative, see [`out_mat_dh`](#out_mat_dh) for the same format. Output files: dhk[x/y/z]_iat[I][_ik]_nao.txt. +- **Description**: Whether to print files containing the derivatives of the kinetic energy matrix dT/dR. + See out_mat_dh for format details (enable, precision, atom indices). - **Default**: 0 8 - **Unit**: Ry/Bohr ### out_mat_dh_vl - **Type**: Integer -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print files containing the local pseudopotential contribution to the Hamiltonian derivative, see [`out_mat_dh`](#out_mat_dh) for the same format. Output files: dvlk[x/y/z]_iat[I][_ik]_nao.txt. +- **Description**: Whether to print files containing the derivatives of the local pseudopotential matrix dV^L/dR. + See out_mat_dh for format details. - **Default**: 0 8 - **Unit**: Ry/Bohr ### out_mat_dh_vnl - **Type**: Integer -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print files containing the nonlocal pseudopotential contribution to the Hamiltonian derivative, see [`out_mat_dh`](#out_mat_dh) for the same format. Output files: dvnlk[x/y/z]_iat[I][_ik]_nao.txt. +- **Description**: Whether to print files containing the derivatives of the nonlocal pseudopotential matrix dV^NL/dR. + See out_mat_dh for format details. - **Default**: 0 8 - **Unit**: Ry/Bohr ### out_mat_dh_vh - **Type**: Integer -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print files containing the Hartree contribution to the Hamiltonian derivative, see [`out_mat_dh`](#out_mat_dh) for the same format. Output files: dvhk[x/y/z]_iat[I][_ik]_nao.txt. +- **Description**: Whether to print files containing the derivatives of the Hartree matrix dV^H/dR. + See out_mat_dh for format details. - **Default**: 0 8 - **Unit**: Ry/Bohr ### out_mat_dh_vxc - **Type**: Integer -- **Availability**: *Numerical atomic orbital basis (nspin ≠ 4)* -- **Description**: Whether to print files containing the exchange-correlation contribution to the Hamiltonian derivative, see [`out_mat_dh`](#out_mat_dh) for the same format. Output files: dvxck[x/y/z]_iat[I][_ik]_nao.txt. +- **Description**: Whether to print files containing the derivatives of the XC matrix dV^XC/dR. + See out_mat_dh for format details. - **Default**: 0 8 - **Unit**: Ry/Bohr ### out_mat_dh_exx - **Type**: Integer -- **Availability**: *Numerical atomic orbital basis, hybrid functional only (nspin ≠ 4)* - - Currently only availablewhen compiled with the personal developing branch of LibRI and -DEXX_DEV flag, waiting for the new release of LibRI to remove the flag. -- **Description**: Whether to print files containing the exact-exchange contribution to the Hamiltonian derivative, see [`out_mat_dh`](#out_mat_dh) for the same format. Output files: dvexxk[x/y/z]_iat[I][_ik]_nao.txt. +- **Description**: Whether to print files containing the derivatives of the exact-exchange matrix dV^EXX/dR. + See out_mat_dh for format details. - **Default**: 0 8 - **Unit**: Ry/Bohr +### out_mat_h_t + +- **Type**: Integer +- **Description**: Whether to print files containing the kinetic energy matrix T(R) in CSR format. + + See out_mat_hs2 for format details. +- **Default**: 0 8 +- **Unit**: Ry + +### out_mat_h_vnl + +- **Type**: Integer +- **Description**: Whether to print files containing the nonlocal pseudopotential matrix Vnl(R) in CSR format. + + See out_mat_hs2 for format details. +- **Default**: 0 8 +- **Unit**: Ry + +### out_mat_h_vl + +- **Type**: Integer +- **Description**: Whether to print files containing the local pseudopotential matrix Vl(R) in CSR format. + + See out_mat_hs2 for format details. +- **Default**: 0 8 +- **Unit**: Ry + +### out_mat_h_vh + +- **Type**: Integer +- **Description**: Whether to print files containing the Hartree matrix Vh(R) in CSR format. + + See out_mat_hs2 for format details. +- **Default**: 0 8 +- **Unit**: Ry + +### out_mat_h_vxc + +- **Type**: Integer +- **Description**: Whether to print files containing the XC matrix Vxc(R) in CSR format. + + See out_mat_hs2 for format details. +- **Default**: 0 8 +- **Unit**: Ry + +### out_mat_h_exx + +- **Type**: Integer +- **Description**: Whether to print files containing the exact-exchange matrix Vexx(R) in CSR format. + + See out_mat_hs2 for format details. +- **Default**: 0 8 +- **Unit**: Ry + ### out_mat_ds - **Type**: Boolean \[Integer\](optional) - **Availability**: *Numerical atomic orbital basis (not gamma-only algorithm)* -- **Description**: Whether to print files containing the derivatives of the overlap matrix. The optional second parameter controls text output precision. The format will be the same as the overlap matrix as mentioned in out_mat_dh. The name of the files will be dsxrs1_nao.csr and so on. Also controlled by out_freq_ion and out_app_flag. This feature can be used with calculation get_s. +- **Description**: Whether to print files containing the derivatives of the overlap matrix. The optional second parameter controls text output precision. The format will be the same as the overlap matrix as mentioned in out_mat_dh. The name of the files will be dsxrs1_nao.csr and so on. Also controled by out_freq_ion and out_app_flag. This feature can be used with calculation get_s. > Note: In the 3.10-LTS version, the file name is data-dSRx-sparse_SPIN0.csr and so on. - **Default**: False 8 @@ -4550,13 +4549,6 @@ - False: . - **Default**: True -### cond_mgga_vel - -- **Type**: Boolean -- **Availability**: [basis_type](#basis_type) = `pw` -- **Description**: Whether to include the meta-GGA velocity correction from the $v_\tau$ term when calculating velocity matrix $\bra{\psi_i}\hat{v}\ket{\psi_j}$. -- **Default**: True - [back to top](#full-list-of-input-keywords) ## Implicit solvation model diff --git a/docs/parameters.yaml b/docs/parameters.yaml index 00ef9b9dcf..bcb562fa69 100644 --- a/docs/parameters.yaml +++ b/docs/parameters.yaml @@ -179,6 +179,7 @@ parameters: * file: the density will be read in from a binary file charge-density.dat first. If it does not exist, the charge density will be read in from cube files. * wfc: the density will be calculated by wavefunctions and occupations. * dm: the density will be calculated by real space density matrix(DMR) of LCAO base. + * dm_no_renormalize: same as dm, but the charge density is not renormalized to the number of electrons. * hr: the real space Hamiltonian matrix(HR) will be read in from file hrs1_nao.csr in directory read_file_dir. * auto: Abacus first attempts to read the density from a file; if not found, it defaults to using atomic density. default_value: atomic @@ -3123,14 +3124,136 @@ parameters: availability: Numerical atomic orbital basis (not gamma-only algorithm) - name: out_mat_dh category: Output information - type: "Boolean \\[Integer\\](optional)" + type: Integer description: | - Whether to print files containing the derivatives of the Hamiltonian matrix. The optional second parameter controls text output precision. The format will be the same as the Hamiltonian matrix and overlap matrix as mentioned in out_mat_hs2. The name of the files will be dhrxs1_nao.csr, dhrys1_nao.csr, dhrzs1_nao.csr and so on. Also controled by out_freq_ion and out_app_flag. + Whether to print files containing the derivatives of the Hamiltonian matrix. The format will be the same as the Hamiltonian matrix and overlap matrix as mentioned in out_mat_hs2. The name of the files will be dhrxs1_nao.csr, dhrys1_nao.csr, dhrzs1_nao.csr and so on. Also controled by out_freq_ion and out_app_flag. + + Format: [precision] [iat1 iat2 ...]. The first value (0/1) enables/disables output. The second optional value sets the output precision (default: 8). Starting from the third value, 1-based atom indices can be listed to restrict output to derivatives with respect to those specific atoms only; if no atom indices are given, all atoms are written. [NOTE] In the 3.10-LTS version, the file name is data-dHRx-sparse_SPIN0.csr and so on. default_value: 0 8 unit: Ry/Bohr availability: Numerical atomic orbital basis (not gamma-only algorithm) + - name: out_mat_dh_t + category: Output information + type: Integer + description: | + Whether to print files containing the derivatives of the kinetic energy matrix dT/dR. + + See out_mat_dh for format details (enable, precision, atom indices). + default_value: 0 8 + unit: Ry/Bohr + availability: "" + - name: out_mat_dh_vl + category: Output information + type: Integer + description: | + Whether to print files containing the derivatives of the local pseudopotential matrix dV^L/dR. + + See out_mat_dh for format details. + default_value: 0 8 + unit: Ry/Bohr + availability: "" + - name: out_mat_dh_vnl + category: Output information + type: Integer + description: | + Whether to print files containing the derivatives of the nonlocal pseudopotential matrix dV^NL/dR. + + See out_mat_dh for format details. + default_value: 0 8 + unit: Ry/Bohr + availability: "" + - name: out_mat_dh_vh + category: Output information + type: Integer + description: | + Whether to print files containing the derivatives of the Hartree matrix dV^H/dR. + + See out_mat_dh for format details. + default_value: 0 8 + unit: Ry/Bohr + availability: "" + - name: out_mat_dh_vxc + category: Output information + type: Integer + description: | + Whether to print files containing the derivatives of the XC matrix dV^XC/dR. + + See out_mat_dh for format details. + default_value: 0 8 + unit: Ry/Bohr + availability: "" + - name: out_mat_dh_exx + category: Output information + type: Integer + description: | + Whether to print files containing the derivatives of the exact-exchange matrix dV^EXX/dR. + + See out_mat_dh for format details. + default_value: 0 8 + unit: Ry/Bohr + availability: "" + - name: out_mat_h_t + category: Output information + type: Integer + description: | + Whether to print files containing the kinetic energy matrix T(R) in CSR format. + + See out_mat_hs2 for format details. + default_value: 0 8 + unit: Ry + availability: "" + - name: out_mat_h_vnl + category: Output information + type: Integer + description: | + Whether to print files containing the nonlocal pseudopotential matrix Vnl(R) in CSR format. + + See out_mat_hs2 for format details. + default_value: 0 8 + unit: Ry + availability: "" + - name: out_mat_h_vl + category: Output information + type: Integer + description: | + Whether to print files containing the local pseudopotential matrix Vl(R) in CSR format. + + See out_mat_hs2 for format details. + default_value: 0 8 + unit: Ry + availability: "" + - name: out_mat_h_vh + category: Output information + type: Integer + description: | + Whether to print files containing the Hartree matrix Vh(R) in CSR format. + + See out_mat_hs2 for format details. + default_value: 0 8 + unit: Ry + availability: "" + - name: out_mat_h_vxc + category: Output information + type: Integer + description: | + Whether to print files containing the XC matrix Vxc(R) in CSR format. + + See out_mat_hs2 for format details. + default_value: 0 8 + unit: Ry + availability: "" + - name: out_mat_h_exx + category: Output information + type: Integer + description: | + Whether to print files containing the exact-exchange matrix Vexx(R) in CSR format. + + See out_mat_hs2 for format details. + default_value: 0 8 + unit: Ry + availability: "" - name: out_mat_ds category: Output information type: "Boolean \\[Integer\\](optional)"