From 87910ae179a1b44b4ddb8b0d6fa893af55427929 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Thu, 16 Apr 2026 15:51:42 +0800 Subject: [PATCH 1/8] feat(input, kpoints): support shifted kspacing mesh with koffset and kmesh_type --- docs/advanced/input_files/input-main.md | 109 ++++++++---------- docs/parameters.yaml | 39 ++++++- source/source_cell/klist.cpp | 12 +- source/source_cell/test/klist_test.cpp | 78 +++++++++++++ .../module_parameter/input_parameter.h | 2 + .../read_input_item_system.cpp | 47 ++++++++ 6 files changed, 219 insertions(+), 68 deletions(-) diff --git a/docs/advanced/input_files/input-main.md b/docs/advanced/input_files/input-main.md index a86ccb6c481..7cf66f1d04f 100644 --- a/docs/advanced/input_files/input-main.md +++ b/docs/advanced/input_files/input-main.md @@ -25,6 +25,8 @@ - [diago\_proc](#diago_proc) - [nbspline](#nbspline) - [kspacing](#kspacing) + - [koffset](#koffset) + - [kmesh\_type](#kmesh_type) - [min\_dist\_coef](#min_dist_coef) - [device](#device) - [precision](#precision) @@ -232,7 +234,6 @@ - [of\_vw\_weight](#of_vw_weight) - [of\_wt\_alpha](#of_wt_alpha) - [of\_wt\_beta](#of_wt_beta) - - [of\_extwt\_kappa](#of_extwt_kappa) - [of\_wt\_rho0](#of_wt_rho0) - [of\_hold\_rho0](#of_hold_rho0) - [of\_lkt\_a](#of_lkt_a) @@ -303,8 +304,6 @@ - [exx\_pca\_threshold](#exx_pca_threshold) - [exx\_c\_threshold](#exx_c_threshold) - [exx\_cs\_inv\_thr](#exx_cs_inv_thr) - - [shrink\_abfs\_pca\_thr](#shrink_abfs_pca_thr) - - [shrink\_lu\_inv\_thr](#shrink_lu_inv_thr) - [exx\_v\_threshold](#exx_v_threshold) - [exx\_dm\_threshold](#exx_dm_threshold) - [exx\_c\_grad\_threshold](#exx_c_grad_threshold) @@ -320,10 +319,6 @@ - [rpa\_ccp\_rmesh\_times](#rpa_ccp_rmesh_times) - [exx\_symmetry\_realspace](#exx_symmetry_realspace) - [out\_ri\_cv](#out_ri_cv) - - [out\_unshrinked\_v](#out_unshrinked_v) - - [exx\_coul\_moment](#exx_coul_moment) - - [exx\_rotate\_abfs](#exx_rotate_abfs) - - [exx\_multip\_moments\_threshold](#exx_multip_moments_threshold) - [Exact Exchange (PW)](#exact-exchange-pw) - [exxace](#exxace) - [exx\_gamma\_extrapolation](#exx_gamma_extrapolation) @@ -733,6 +728,24 @@ > Note: If gamma_only is set to be true, kspacing is invalid. - **Default**: 0.0 +### koffset + +- **Type**: Vector of Real (3 values) +- **Description**: Set offsets for automatic k-point mesh generated by kspacing, in each reciprocal direction. + + > Note: This parameter is only effective when kspacing > 0.0 and gamma_only is false. +- **Default**: 0.0 0.0 0.0 + +### kmesh_type + +- **Type**: String +- **Description**: Set mesh type used for automatic k-point mesh generated by kspacing. + - gamma: generate Gamma style mesh + - mp: generate Monkhorst-Pack mesh + + > Note: This parameter is only effective when kspacing > 0.0 and gamma_only is false. +- **Default**: gamma + ### min_dist_coef - **Type**: Real @@ -764,7 +777,7 @@ ### gint_precision - **Type**: String -- **Availability**: *Used only for LCAO basis set on CPU.* +- **Availability**: *Used only for LCAO basis set.* - **Description**: Specifies the precision when performing grid integral in LCAO calculations. - single: single precision - double: double precision @@ -1109,7 +1122,7 @@ - cg: The conjugate-gradient (CG) method. - bpcg: The BPCG method, which is a block-parallel Conjugate Gradient (CG) method, typically exhibits higher acceleration in a GPU environment. - dav: The Davidson algorithm. - - dav_subspace: The Davidson algorithm without orthogonalization operation, this method is the most recommended for efficiency. pw_diag_ndim can be set to 2 for this method. + - dav_subspace: The Davidson algorithm without orthogonalization operation, this method is the most recommended for efficiency. `pw_diag_ndim` can be set to 2 for this method. For numerical atomic orbitals basis, @@ -1118,13 +1131,20 @@ - scalapack_gvx: Use Scalapack to diagonalize the Hamiltonian. - cusolver: Use CUSOLVER to diagonalize the Hamiltonian, at least one GPU is needed. - cusolvermp: Use CUSOLVER to diagonalize the Hamiltonian, supporting multi-GPU devices. Note that you should set the number of MPI processes equal to the number of GPUs. - - elpa: The ELPA solver supports both CPU and GPU. By setting the device to GPU, you can launch the ELPA solver with GPU acceleration (provided that you have installed a GPU-supported version of ELPA, which requires you to manually compile and install ELPA, and the ABACUS should be compiled with -DUSE_ELPA=ON and -DUSE_CUDA=ON). The ELPA solver also supports multi-GPU acceleration. + - elpa: The ELPA solver supports both CPU and GPU. By setting the `device` to GPU, you can launch the ELPA solver with GPU acceleration (provided that you have installed a GPU-supported version of ELPA, which requires you to manually compile and install ELPA, and the ABACUS should be compiled with -DUSE_ELPA=ON and -DUSE_CUDA=ON). The ELPA solver also supports multi-GPU acceleration. - If you set ks_solver=genelpa for basis_type=pw, the program will stop with an error message: + If you set ks_solver=`genelpa` for basis_type=`pw`, the program will stop with an error message: ``text genelpa can not be used with plane wave basis. `` Then the user has to correct the input file and restart the calculation. +- **Default**: + - PW basis: cg. + - LCAO basis: + - genelpa (if compiling option `USE_ELPA` has been set) + - lapack (if compiling option `ENABLE_MPI` has not been set) + - scalapack_gvx (if compiling option `USE_ELPA` has not been set and compiling option `ENABLE_MPI` has been set) + - cusolver (if compiling option `USE_CUDA` has been set) ### nbands @@ -1772,7 +1792,18 @@ - **Type**: Integer \[Integer\](optional) - **Description**: The first integer controls whether to output the charge density on real space grids: - - 1: Output the charge density (in Bohr^-3) on real space grids into the density files in the folder OUT.{suffix} too, which can be read in NSCF calculation. + - 1: Output the charge density (in Bohr^-3) on real space grids into the density files in the folder `OUT.${suffix}`. The files are named as: + - nspin = 1: `chg.cube`; + - nspin = 2: `chgs1.cube`, and `chgs2.cube`; + - nspin = 4: `chgs1.cube`, `chgs2.cube`, `chgs3.cube`, and `chgs4.cube`; + - When using the Meta-GGA functional, additional files containing the kinetic energy density are also output: + - nspin = 1: `tau.cube`; + - nspin = 2: `taus1.cube`, and `taus2.cube`; + - nspin = 4: `taus1.cube`, `taus2.cube`, `taus3.cube`, and `taus4.cube`; + - 2: On top of 1, also output the initial charge density files with a suffix name as '_ini', such as `taus1_ini.cube`, etc. + - -1: Disable the charge density auto-back-up file `{suffix}-CHARGE-DENSITY.restart`, useful for large systems. + + The second integer controls the precision of the charge density output. If not given, `3` is used as default. For restarting from this file and other high-precision calculations, `10` is recommended. In molecular dynamics simulations, the output frequency is controlled by out_freq_ion. @@ -2397,8 +2428,7 @@ - vw: von Weizsacker (vW) functional - tf+: TF + vW functional - wt: Wang-Teter (WT) functional - - ext-wt: Extended Wang-Teter (ext-WT) functional - - xwm: Xu-Wang-Ma (XWM) functional + - xwm: XWM functional - lkt: Luo-Karasiev-Trickey (LKT) functional - ml: Machine learning KEDF - mpn: MPN KEDF (automatically sets ml parameters) @@ -2444,36 +2474,29 @@ ### of_tf_weight - **Type**: Real -- **Availability**: *OFDFT with of_kinetic=tf, tf+, wt, ext-wt, xwm* +- **Availability**: *OFDFT with of_kinetic=tf, tf+, wt, xwm* - **Description**: Weight of TF KEDF (kinetic energy density functional). - **Default**: 1.0 ### of_vw_weight - **Type**: Real -- **Availability**: *OFDFT with of_kinetic=vw, tf+, wt, ext-wt, lkt, xwm* +- **Availability**: *OFDFT with of_kinetic=vw, tf+, wt, lkt, xwm* - **Description**: Weight of vW KEDF (kinetic energy density functional). - **Default**: 1.0 ### of_wt_alpha - **Type**: Real -- **Availability**: *OFDFT with of_kinetic=wt, ext-wt* +- **Availability**: *OFDFT with of_kinetic=wt* - **Description**: Parameter alpha of WT KEDF (kinetic energy density functional). ### of_wt_beta - **Type**: Real -- **Availability**: *OFDFT with of_kinetic=wt, ext-wt* +- **Availability**: *OFDFT with of_kinetic=wt* - **Description**: Parameter beta of WT KEDF (kinetic energy density functional). -### of_extwt_kappa - -- **Type**: Real -- **Availability**: *OFDFT with of_kinetic=ext-wt* -- **Description**: Parameter kappa for EXT-WT KEDF. -- **Default**: $\dfrac{1}{2(4/3)^{1/3}-1} \approx 0.832$ - ### of_wt_rho0 - **Type**: Real @@ -2972,18 +2995,6 @@ - **Description**: By default, the Coulomb matrix inversion required for obtaining LRI coefficients is performed using LU decomposition. However, this approach may suffer from numerical instabilities when a large set of auxiliary basis functions (ABFs) is employed. When exx_cs_inv_thr > 0, the inversion is instead carried out via matrix diagonalization. Eigenvalues smaller than exx_cs_inv_thr are discarded to improve numerical stability. A relatively safe and commonly recommended value is 1e-5. - **Default**: -1 -### shrink_abfs_pca_thr - -- **Type**: Real -- **Description**: Threshold to shrink the auxiliary basis for GW/RPA calculations. -- **Default**: -1 - -### shrink_lu_inv_thr - -- **Type**: Real -- **Description**: Threshold for obtaining the inverse of the overlap matrix by LU decomposition in the auxiliary-basis representation. -- **Default**: 1e-6 - ### exx_v_threshold - **Type**: Real @@ -3081,30 +3092,6 @@ - **Description**: Whether to output the coefficient tensor C(R) and ABFs-representation Coulomb matrix V(R) for each atom pair and cell in real space. - **Default**: false -### out_unshrinked_v - -- **Type**: Boolean -- **Description**: Whether to output the large Vq matrix in the unshrinked auxiliary basis. -- **Default**: false - -### exx_coul_moment - -- **Type**: Boolean -- **Description**: Whether to use the moment method for Coulomb calculation. -- **Default**: false - -### exx_rotate_abfs - -- **Type**: Boolean -- **Description**: Whether to rotate the auxiliary basis for Coulomb calculation. -- **Default**: false - -### exx_multip_moments_threshold - -- **Type**: Real -- **Description**: Threshold to screen multipole moments in Coulomb calculation. -- **Default**: 1e-10 - [back to top](#full-list-of-input-keywords) ## Exact Exchange (PW) diff --git a/docs/parameters.yaml b/docs/parameters.yaml index d03f8d32626..7ccd1949498 100644 --- a/docs/parameters.yaml +++ b/docs/parameters.yaml @@ -224,6 +224,22 @@ parameters: default_value: "0.0" unit: "" availability: "" + - name: koffset + category: System variables + type: Vector of Real (3 values) + description: | + Set offsets for automatic k-point mesh generated by kspacing, in each reciprocal direction. This parameter is only effective when kspacing > 0.0 and gamma_only is false. + default_value: 0.0 0.0 0.0 + unit: "" + availability: "" + - name: kmesh_type + category: System variables + type: String + description: | + Set mesh type used for automatic k-point mesh generated by kspacing. Available options are gamma and mp. This parameter is only effective when kspacing > 0.0 and gamma_only is false. + default_value: gamma + unit: "" + availability: "" - name: min_dist_coef category: System variables type: Real @@ -1690,10 +1706,14 @@ parameters: availability: "" - name: cal_syns category: Molecular dynamics - type: Boolean + type: "Boolean [Integer](optional)" description: | Whether to calculate and output asynchronous overlap matrix for Hefei-NAMD interface. When enabled, calculates by computing overlap between basis functions at atomic positions from previous time step and current time step. The overlap is calculated by shifting atom positions backward by velocity x md_dt. Output file: OUT.*/syns_nao.csr in CSR format. + * 0 or false: disable + * 1 or true: enable with default precision (8 digits) + * 1 5: enable with custom precision (5 digits) + [NOTE] Only works with LCAO basis and molecular dynamics calculations. Requires atomic velocities. Output starts from the second MD step (istep > 0). default_value: "False" unit: "" @@ -1715,6 +1735,7 @@ parameters: * vw: von Weizsacker (vW) functional * tf+: TF + vW functional * wt: Wang-Teter (WT) functional + * ext-wt: Extended Wang-Teter functional * xwm: XWM functional * lkt: Luo-Karasiev-Trickey (LKT) functional * ml: Machine learning KEDF @@ -1768,7 +1789,7 @@ parameters: Weight of TF KEDF (kinetic energy density functional). default_value: "1.0" unit: "" - availability: "OFDFT with of_kinetic=tf, tf+, wt, xwm" + availability: "OFDFT with of_kinetic=tf, tf+, wt, ext-wt, xwm" - name: of_vw_weight category: "OFDFT: orbital free density functional theory" type: Real @@ -1776,7 +1797,7 @@ parameters: Weight of vW KEDF (kinetic energy density functional). default_value: "1.0" unit: "" - availability: "OFDFT with of_kinetic=vw, tf+, wt, lkt, xwm" + availability: "OFDFT with of_kinetic=vw, tf+, wt, ext-wt, lkt, xwm" - name: of_wt_alpha category: "OFDFT: orbital free density functional theory" type: Real @@ -1784,7 +1805,7 @@ parameters: Parameter alpha of WT KEDF (kinetic energy density functional). default_value: "" unit: "" - availability: OFDFT with of_kinetic=wt + availability: "OFDFT with of_kinetic=wt, ext-wt" - name: of_wt_beta category: "OFDFT: orbital free density functional theory" type: Real @@ -1792,7 +1813,15 @@ parameters: Parameter beta of WT KEDF (kinetic energy density functional). default_value: "" unit: "" - availability: OFDFT with of_kinetic=wt + availability: "OFDFT with of_kinetic=wt, ext-wt" + - name: of_extwt_kappa + category: "OFDFT: orbital free density functional theory" + type: Real + description: | + Parameter kappa for EXT-WT KEDF. + default_value: "1.0 / (2.0 * std::pow(4./3., 1./3.) - 1.0)" + unit: "" + availability: OFDFT with of_kinetic=ext-wt - name: of_wt_rho0 category: "OFDFT: orbital free density functional theory" type: Real diff --git a/source/source_cell/klist.cpp b/source/source_cell/klist.cpp index e0759b9375d..cca33fb8ba2 100644 --- a/source/source_cell/klist.cpp +++ b/source/source_cell/klist.cpp @@ -247,8 +247,16 @@ bool K_Vectors::read_kpoints(const UnitCell& ucell, std::ofstream ofs(fn.c_str()); ofs << "K_POINTS" << std::endl; ofs << "0" << std::endl; - ofs << "Gamma" << std::endl; - ofs << nk1 << " " << nk2 << " " << nk3 << " 0 0 0" << std::endl; + if (PARAM.inp.kmesh_type == "mp") + { + ofs << "Monkhorst-Pack" << std::endl; + } + else + { + ofs << "Gamma" << std::endl; + } + ofs << nk1 << " " << nk2 << " " << nk3 << " " << PARAM.inp.koffset[0] << " " << PARAM.inp.koffset[1] << " " + << PARAM.inp.koffset[2] << std::endl; ofs.close(); } diff --git a/source/source_cell/test/klist_test.cpp b/source/source_cell/test/klist_test.cpp index f6169b62293..57b7eac90ad 100644 --- a/source/source_cell/test/klist_test.cpp +++ b/source/source_cell/test/klist_test.cpp @@ -313,6 +313,10 @@ TEST_F(KlistTest, ReadKpointsKspacing) PARAM.input.kspacing[0] = 0.052918; // 0.52918/Bohr = 1/A PARAM.input.kspacing[1] = 0.052918; // 0.52918/Bohr = 1/A PARAM.input.kspacing[2] = 0.052918; // 0.52918/Bohr = 1/A + PARAM.input.kmesh_type = "gamma"; + PARAM.input.koffset[0] = 0.0; + PARAM.input.koffset[1] = 0.0; + PARAM.input.koffset[2] = 0.0; setucell(); std::string k_file = "./support/KPT3"; kv->read_kpoints(ucell,k_file); @@ -328,6 +332,10 @@ TEST_F(KlistTest, ReadKpointsKspacing3values) PARAM.input.kspacing[0] = 0.052918; // 0.52918/Bohr = 1/A PARAM.input.kspacing[1] = 0.06; // 0.52918/Bohr = 1/A PARAM.input.kspacing[2] = 0.07; // 0.52918/Bohr = 1/A + PARAM.input.kmesh_type = "gamma"; + PARAM.input.koffset[0] = 0.0; + PARAM.input.koffset[1] = 0.0; + PARAM.input.koffset[2] = 0.0; setucell(); std::string k_file = "./support/KPT3"; kv->read_kpoints(ucell,k_file); @@ -343,6 +351,10 @@ TEST_F(KlistTest, ReadKpointsInvalidKspacing3values) PARAM.input.kspacing[0] = 0.052918; // 0.52918/Bohr = 1/A PARAM.input.kspacing[1] = 0; // 0.52918/Bohr = 1/A PARAM.input.kspacing[2] = 0.07; // 0.52918/Bohr = 1/A + PARAM.input.kmesh_type = "gamma"; + PARAM.input.koffset[0] = 0.0; + PARAM.input.koffset[1] = 0.0; + PARAM.input.koffset[2] = 0.0; std::string k_file = "./support/KPT3"; testing::internal::CaptureStdout(); EXPECT_EXIT(kv->read_kpoints(ucell,k_file), ::testing::ExitedWithCode(1), ""); @@ -352,6 +364,72 @@ TEST_F(KlistTest, ReadKpointsInvalidKspacing3values) PARAM.input.kspacing[2] = 0.0; } +TEST_F(KlistTest, ReadKpointsKspacingShiftedGamma) +{ + kv->nspin = 1; + PARAM.input.kspacing[0] = 0.052918; // 0.52918/Bohr = 1/A + PARAM.input.kspacing[1] = 0.052918; + PARAM.input.kspacing[2] = 0.052918; + PARAM.input.kmesh_type = "gamma"; + PARAM.input.koffset[0] = 0.5; + PARAM.input.koffset[1] = 0.5; + PARAM.input.koffset[2] = 0.5; + setucell(); + + std::string k_file = "./support/KPT3"; + kv->read_kpoints(ucell, k_file); + + EXPECT_EQ(kv->get_nkstot(), 343); + EXPECT_EQ(kv->get_k_kword(), "Gamma"); + EXPECT_DOUBLE_EQ(kv->get_koffset(0), 0.5); + EXPECT_DOUBLE_EQ(kv->get_koffset(1), 0.5); + EXPECT_DOUBLE_EQ(kv->get_koffset(2), 0.5); + EXPECT_NEAR(kv->kvec_d[0].x, 1.0 / 14.0, 1e-12); + EXPECT_NEAR(kv->kvec_d[0].y, 1.0 / 14.0, 1e-12); + EXPECT_NEAR(kv->kvec_d[0].z, 1.0 / 14.0, 1e-12); + + PARAM.input.kspacing[0] = 0.0; + PARAM.input.kspacing[1] = 0.0; + PARAM.input.kspacing[2] = 0.0; + PARAM.input.koffset[0] = 0.0; + PARAM.input.koffset[1] = 0.0; + PARAM.input.koffset[2] = 0.0; + PARAM.input.kmesh_type = "gamma"; +} + +TEST_F(KlistTest, ReadKpointsKspacingShiftedMP) +{ + kv->nspin = 1; + PARAM.input.kspacing[0] = 0.052918; // 0.52918/Bohr = 1/A + PARAM.input.kspacing[1] = 0.052918; + PARAM.input.kspacing[2] = 0.052918; + PARAM.input.kmesh_type = "mp"; + PARAM.input.koffset[0] = 0.5; + PARAM.input.koffset[1] = 0.5; + PARAM.input.koffset[2] = 0.5; + setucell(); + + std::string k_file = "./support/KPT3"; + kv->read_kpoints(ucell, k_file); + + EXPECT_EQ(kv->get_nkstot(), 343); + EXPECT_EQ(kv->get_k_kword(), "Monkhorst-Pack"); + EXPECT_DOUBLE_EQ(kv->get_koffset(0), 0.5); + EXPECT_DOUBLE_EQ(kv->get_koffset(1), 0.5); + EXPECT_DOUBLE_EQ(kv->get_koffset(2), 0.5); + EXPECT_NEAR(kv->kvec_d[0].x, -5.5 / 14.0, 1e-12); + EXPECT_NEAR(kv->kvec_d[0].y, -5.5 / 14.0, 1e-12); + EXPECT_NEAR(kv->kvec_d[0].z, -5.5 / 14.0, 1e-12); + + PARAM.input.kspacing[0] = 0.0; + PARAM.input.kspacing[1] = 0.0; + PARAM.input.kspacing[2] = 0.0; + PARAM.input.koffset[0] = 0.0; + PARAM.input.koffset[1] = 0.0; + PARAM.input.koffset[2] = 0.0; + PARAM.input.kmesh_type = "gamma"; +} + TEST_F(KlistTest, ReadKpointsGamma) { std::string k_file = "./support/KPT"; diff --git a/source/source_io/module_parameter/input_parameter.h b/source/source_io/module_parameter/input_parameter.h index 2209d893104..029ad364eb5 100644 --- a/source/source_io/module_parameter/input_parameter.h +++ b/source/source_io/module_parameter/input_parameter.h @@ -64,6 +64,8 @@ struct Input_para int diago_proc = 0; ///< the number of procs used to diag. mohan add 2012-01-13 int nbspline = -1; ///< the order of B-spline basis(>=0) if it is -1 (default) std::vector kspacing = {0.0, 0.0, 0.0}; ///< kspacing for k-point generation + std::vector koffset = {0.0, 0.0, 0.0}; ///< koffset for kspacing-generated k-point mesh + std::string kmesh_type = "gamma"; ///< k-point mesh type for kspacing-generated k-point mesh: gamma or mp double min_dist_coef = 0.2; ///< allowed minimum distance between two atoms std::string device = "auto"; diff --git a/source/source_io/module_parameter/read_input_item_system.cpp b/source/source_io/module_parameter/read_input_item_system.cpp index 4d3d4d4153a..b8bc3018e96 100644 --- a/source/source_io/module_parameter/read_input_item_system.cpp +++ b/source/source_io/module_parameter/read_input_item_system.cpp @@ -613,6 +613,53 @@ Available options are: }; this->add_item(item); } + { + Input_Item item("koffset"); + item.annotation = "offset for kspacing-generated automatic k-point mesh"; + item.category = "System variables"; + item.type = "Vector of Real (3 values)"; + item.description = "Set offsets for automatic k-point mesh generated by kspacing, in each reciprocal direction. " + "This parameter is only effective when kspacing > 0.0 and gamma_only is false."; + item.default_value = "0.0 0.0 0.0"; + item.read_value = [](const Input_Item& item, Parameter& para) { + if (item.get_size() != 3) + { + ModuleBase::WARNING_QUIT("ReadInput", "koffset must provide three values."); + } + para.input.koffset[0] = std::stod(item.str_values[0]); + para.input.koffset[1] = std::stod(item.str_values[1]); + para.input.koffset[2] = std::stod(item.str_values[2]); + }; + sync_doublevec(input.koffset, 3, 0.0); + this->add_item(item); + } + { + Input_Item item("kmesh_type"); + item.annotation = "mesh type for kspacing-generated automatic k-point mesh"; + item.category = "System variables"; + item.type = "String"; + item.description = "Set mesh type used for automatic k-point mesh generated by kspacing. " + "Available options are gamma and mp. This parameter is only effective when kspacing > 0.0 " + "and gamma_only is false."; + item.default_value = "gamma"; + item.read_value = [](const Input_Item& item, Parameter& para) { + para.input.kmesh_type = strvalue; + std::transform(para.input.kmesh_type.begin(), + para.input.kmesh_type.end(), + para.input.kmesh_type.begin(), + ::tolower); + }; + read_sync_string(input.kmesh_type); + item.check_value = [](const Input_Item& item, const Parameter& para) { + std::vector avail_list = {"gamma", "mp"}; + if (std::find(avail_list.begin(), avail_list.end(), para.input.kmesh_type) == avail_list.end()) + { + const std::string warningstr = nofound_str(avail_list, "kmesh_type"); + ModuleBase::WARNING_QUIT("ReadInput", warningstr); + } + }; + this->add_item(item); + } { Input_Item item("min_dist_coef"); item.annotation = "factor related to the allowed minimum distance " From 27c865b40c01cfc394ad025425384e695de3b4c1 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Thu, 16 Apr 2026 16:54:51 +0800 Subject: [PATCH 2/8] revert input-main.md --- docs/advanced/input_files/input-main.md | 109 +++++++++++++----------- 1 file changed, 61 insertions(+), 48 deletions(-) diff --git a/docs/advanced/input_files/input-main.md b/docs/advanced/input_files/input-main.md index 7cf66f1d04f..a86ccb6c481 100644 --- a/docs/advanced/input_files/input-main.md +++ b/docs/advanced/input_files/input-main.md @@ -25,8 +25,6 @@ - [diago\_proc](#diago_proc) - [nbspline](#nbspline) - [kspacing](#kspacing) - - [koffset](#koffset) - - [kmesh\_type](#kmesh_type) - [min\_dist\_coef](#min_dist_coef) - [device](#device) - [precision](#precision) @@ -234,6 +232,7 @@ - [of\_vw\_weight](#of_vw_weight) - [of\_wt\_alpha](#of_wt_alpha) - [of\_wt\_beta](#of_wt_beta) + - [of\_extwt\_kappa](#of_extwt_kappa) - [of\_wt\_rho0](#of_wt_rho0) - [of\_hold\_rho0](#of_hold_rho0) - [of\_lkt\_a](#of_lkt_a) @@ -304,6 +303,8 @@ - [exx\_pca\_threshold](#exx_pca_threshold) - [exx\_c\_threshold](#exx_c_threshold) - [exx\_cs\_inv\_thr](#exx_cs_inv_thr) + - [shrink\_abfs\_pca\_thr](#shrink_abfs_pca_thr) + - [shrink\_lu\_inv\_thr](#shrink_lu_inv_thr) - [exx\_v\_threshold](#exx_v_threshold) - [exx\_dm\_threshold](#exx_dm_threshold) - [exx\_c\_grad\_threshold](#exx_c_grad_threshold) @@ -319,6 +320,10 @@ - [rpa\_ccp\_rmesh\_times](#rpa_ccp_rmesh_times) - [exx\_symmetry\_realspace](#exx_symmetry_realspace) - [out\_ri\_cv](#out_ri_cv) + - [out\_unshrinked\_v](#out_unshrinked_v) + - [exx\_coul\_moment](#exx_coul_moment) + - [exx\_rotate\_abfs](#exx_rotate_abfs) + - [exx\_multip\_moments\_threshold](#exx_multip_moments_threshold) - [Exact Exchange (PW)](#exact-exchange-pw) - [exxace](#exxace) - [exx\_gamma\_extrapolation](#exx_gamma_extrapolation) @@ -728,24 +733,6 @@ > Note: If gamma_only is set to be true, kspacing is invalid. - **Default**: 0.0 -### koffset - -- **Type**: Vector of Real (3 values) -- **Description**: Set offsets for automatic k-point mesh generated by kspacing, in each reciprocal direction. - - > Note: This parameter is only effective when kspacing > 0.0 and gamma_only is false. -- **Default**: 0.0 0.0 0.0 - -### kmesh_type - -- **Type**: String -- **Description**: Set mesh type used for automatic k-point mesh generated by kspacing. - - gamma: generate Gamma style mesh - - mp: generate Monkhorst-Pack mesh - - > Note: This parameter is only effective when kspacing > 0.0 and gamma_only is false. -- **Default**: gamma - ### min_dist_coef - **Type**: Real @@ -777,7 +764,7 @@ ### gint_precision - **Type**: String -- **Availability**: *Used only for LCAO basis set.* +- **Availability**: *Used only for LCAO basis set on CPU.* - **Description**: Specifies the precision when performing grid integral in LCAO calculations. - single: single precision - double: double precision @@ -1122,7 +1109,7 @@ - cg: The conjugate-gradient (CG) method. - bpcg: The BPCG method, which is a block-parallel Conjugate Gradient (CG) method, typically exhibits higher acceleration in a GPU environment. - dav: The Davidson algorithm. - - dav_subspace: The Davidson algorithm without orthogonalization operation, this method is the most recommended for efficiency. `pw_diag_ndim` can be set to 2 for this method. + - dav_subspace: The Davidson algorithm without orthogonalization operation, this method is the most recommended for efficiency. pw_diag_ndim can be set to 2 for this method. For numerical atomic orbitals basis, @@ -1131,20 +1118,13 @@ - scalapack_gvx: Use Scalapack to diagonalize the Hamiltonian. - cusolver: Use CUSOLVER to diagonalize the Hamiltonian, at least one GPU is needed. - cusolvermp: Use CUSOLVER to diagonalize the Hamiltonian, supporting multi-GPU devices. Note that you should set the number of MPI processes equal to the number of GPUs. - - elpa: The ELPA solver supports both CPU and GPU. By setting the `device` to GPU, you can launch the ELPA solver with GPU acceleration (provided that you have installed a GPU-supported version of ELPA, which requires you to manually compile and install ELPA, and the ABACUS should be compiled with -DUSE_ELPA=ON and -DUSE_CUDA=ON). The ELPA solver also supports multi-GPU acceleration. + - elpa: The ELPA solver supports both CPU and GPU. By setting the device to GPU, you can launch the ELPA solver with GPU acceleration (provided that you have installed a GPU-supported version of ELPA, which requires you to manually compile and install ELPA, and the ABACUS should be compiled with -DUSE_ELPA=ON and -DUSE_CUDA=ON). The ELPA solver also supports multi-GPU acceleration. - If you set ks_solver=`genelpa` for basis_type=`pw`, the program will stop with an error message: + If you set ks_solver=genelpa for basis_type=pw, the program will stop with an error message: ``text genelpa can not be used with plane wave basis. `` Then the user has to correct the input file and restart the calculation. -- **Default**: - - PW basis: cg. - - LCAO basis: - - genelpa (if compiling option `USE_ELPA` has been set) - - lapack (if compiling option `ENABLE_MPI` has not been set) - - scalapack_gvx (if compiling option `USE_ELPA` has not been set and compiling option `ENABLE_MPI` has been set) - - cusolver (if compiling option `USE_CUDA` has been set) ### nbands @@ -1792,18 +1772,7 @@ - **Type**: Integer \[Integer\](optional) - **Description**: The first integer controls whether to output the charge density on real space grids: - - 1: Output the charge density (in Bohr^-3) on real space grids into the density files in the folder `OUT.${suffix}`. The files are named as: - - nspin = 1: `chg.cube`; - - nspin = 2: `chgs1.cube`, and `chgs2.cube`; - - nspin = 4: `chgs1.cube`, `chgs2.cube`, `chgs3.cube`, and `chgs4.cube`; - - When using the Meta-GGA functional, additional files containing the kinetic energy density are also output: - - nspin = 1: `tau.cube`; - - nspin = 2: `taus1.cube`, and `taus2.cube`; - - nspin = 4: `taus1.cube`, `taus2.cube`, `taus3.cube`, and `taus4.cube`; - - 2: On top of 1, also output the initial charge density files with a suffix name as '_ini', such as `taus1_ini.cube`, etc. - - -1: Disable the charge density auto-back-up file `{suffix}-CHARGE-DENSITY.restart`, useful for large systems. - - The second integer controls the precision of the charge density output. If not given, `3` is used as default. For restarting from this file and other high-precision calculations, `10` is recommended. + - 1: Output the charge density (in Bohr^-3) on real space grids into the density files in the folder OUT.{suffix} too, which can be read in NSCF calculation. In molecular dynamics simulations, the output frequency is controlled by out_freq_ion. @@ -2428,7 +2397,8 @@ - vw: von Weizsacker (vW) functional - tf+: TF + vW functional - wt: Wang-Teter (WT) functional - - xwm: XWM functional + - ext-wt: Extended Wang-Teter (ext-WT) functional + - xwm: Xu-Wang-Ma (XWM) functional - lkt: Luo-Karasiev-Trickey (LKT) functional - ml: Machine learning KEDF - mpn: MPN KEDF (automatically sets ml parameters) @@ -2474,29 +2444,36 @@ ### of_tf_weight - **Type**: Real -- **Availability**: *OFDFT with of_kinetic=tf, tf+, wt, xwm* +- **Availability**: *OFDFT with of_kinetic=tf, tf+, wt, ext-wt, xwm* - **Description**: Weight of TF KEDF (kinetic energy density functional). - **Default**: 1.0 ### of_vw_weight - **Type**: Real -- **Availability**: *OFDFT with of_kinetic=vw, tf+, wt, lkt, xwm* +- **Availability**: *OFDFT with of_kinetic=vw, tf+, wt, ext-wt, lkt, xwm* - **Description**: Weight of vW KEDF (kinetic energy density functional). - **Default**: 1.0 ### of_wt_alpha - **Type**: Real -- **Availability**: *OFDFT with of_kinetic=wt* +- **Availability**: *OFDFT with of_kinetic=wt, ext-wt* - **Description**: Parameter alpha of WT KEDF (kinetic energy density functional). ### of_wt_beta - **Type**: Real -- **Availability**: *OFDFT with of_kinetic=wt* +- **Availability**: *OFDFT with of_kinetic=wt, ext-wt* - **Description**: Parameter beta of WT KEDF (kinetic energy density functional). +### of_extwt_kappa + +- **Type**: Real +- **Availability**: *OFDFT with of_kinetic=ext-wt* +- **Description**: Parameter kappa for EXT-WT KEDF. +- **Default**: $\dfrac{1}{2(4/3)^{1/3}-1} \approx 0.832$ + ### of_wt_rho0 - **Type**: Real @@ -2995,6 +2972,18 @@ - **Description**: By default, the Coulomb matrix inversion required for obtaining LRI coefficients is performed using LU decomposition. However, this approach may suffer from numerical instabilities when a large set of auxiliary basis functions (ABFs) is employed. When exx_cs_inv_thr > 0, the inversion is instead carried out via matrix diagonalization. Eigenvalues smaller than exx_cs_inv_thr are discarded to improve numerical stability. A relatively safe and commonly recommended value is 1e-5. - **Default**: -1 +### shrink_abfs_pca_thr + +- **Type**: Real +- **Description**: Threshold to shrink the auxiliary basis for GW/RPA calculations. +- **Default**: -1 + +### shrink_lu_inv_thr + +- **Type**: Real +- **Description**: Threshold for obtaining the inverse of the overlap matrix by LU decomposition in the auxiliary-basis representation. +- **Default**: 1e-6 + ### exx_v_threshold - **Type**: Real @@ -3092,6 +3081,30 @@ - **Description**: Whether to output the coefficient tensor C(R) and ABFs-representation Coulomb matrix V(R) for each atom pair and cell in real space. - **Default**: false +### out_unshrinked_v + +- **Type**: Boolean +- **Description**: Whether to output the large Vq matrix in the unshrinked auxiliary basis. +- **Default**: false + +### exx_coul_moment + +- **Type**: Boolean +- **Description**: Whether to use the moment method for Coulomb calculation. +- **Default**: false + +### exx_rotate_abfs + +- **Type**: Boolean +- **Description**: Whether to rotate the auxiliary basis for Coulomb calculation. +- **Default**: false + +### exx_multip_moments_threshold + +- **Type**: Real +- **Description**: Threshold to screen multipole moments in Coulomb calculation. +- **Default**: 1e-10 + [back to top](#full-list-of-input-keywords) ## Exact Exchange (PW) From 8379769363398e967dd75c63cc7cb7e63b78ba47 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Thu, 16 Apr 2026 17:08:11 +0800 Subject: [PATCH 3/8] Fix headers --- source/source_io/module_parameter/read_input_item_system.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/source_io/module_parameter/read_input_item_system.cpp b/source/source_io/module_parameter/read_input_item_system.cpp index b8bc3018e96..58ce10fcc7b 100644 --- a/source/source_io/module_parameter/read_input_item_system.cpp +++ b/source/source_io/module_parameter/read_input_item_system.cpp @@ -4,8 +4,8 @@ #include "read_input_tool.h" #include "source_base/module_device/device.h" -#include #include +#include namespace ModuleIO { From 8f74bbbc832d2ec6bf81a04cc280af965acfb0b0 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Thu, 16 Apr 2026 17:08:50 +0800 Subject: [PATCH 4/8] Use sync_string instead of sync_string to be case insensitive --- source/source_io/module_parameter/read_input_item_system.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/source_io/module_parameter/read_input_item_system.cpp b/source/source_io/module_parameter/read_input_item_system.cpp index 58ce10fcc7b..d746d2b5b12 100644 --- a/source/source_io/module_parameter/read_input_item_system.cpp +++ b/source/source_io/module_parameter/read_input_item_system.cpp @@ -649,7 +649,7 @@ Available options are: para.input.kmesh_type.begin(), ::tolower); }; - read_sync_string(input.kmesh_type); + sync_string(input.kmesh_type); item.check_value = [](const Input_Item& item, const Parameter& para) { std::vector avail_list = {"gamma", "mp"}; if (std::find(avail_list.begin(), avail_list.end(), para.input.kmesh_type) == avail_list.end()) From 81bbaa2e58897580baf11f36038db895bc613241 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Fri, 17 Apr 2026 00:58:19 +0800 Subject: [PATCH 5/8] add test case for kspacing koffset kmesh_type --- tests/01_PW/210_PW_kspace_shift_gamma/INPUT | 23 +++++++++++++++++++ tests/01_PW/210_PW_kspace_shift_gamma/README | 2 ++ tests/01_PW/210_PW_kspace_shift_gamma/STRU | 22 ++++++++++++++++++ .../210_PW_kspace_shift_gamma/result.ref | 6 +++++ tests/01_PW/CASES_CPU.txt | 1 + 5 files changed, 54 insertions(+) create mode 100644 tests/01_PW/210_PW_kspace_shift_gamma/INPUT create mode 100644 tests/01_PW/210_PW_kspace_shift_gamma/README create mode 100644 tests/01_PW/210_PW_kspace_shift_gamma/STRU create mode 100644 tests/01_PW/210_PW_kspace_shift_gamma/result.ref diff --git a/tests/01_PW/210_PW_kspace_shift_gamma/INPUT b/tests/01_PW/210_PW_kspace_shift_gamma/INPUT new file mode 100644 index 00000000000..b850e7bc97e --- /dev/null +++ b/tests/01_PW/210_PW_kspace_shift_gamma/INPUT @@ -0,0 +1,23 @@ +INPUT_PARAMETERS +suffix autotest +calculation scf +init_wfc random + +symmetry 1 +ecutwfc 5 +scf_thr 1e-06 +scf_nmax 30 +basis_type pw +latname bco + +mixing_type broyden +mixing_beta 0.4 + +smearing_method gaussian +smearing_sigma 0.02 + +kspacing 0.6 +koffset 0.5 0.5 0.5 +kmesh_type gamma +pseudo_dir ../../PP_ORB +pw_seed 1 diff --git a/tests/01_PW/210_PW_kspace_shift_gamma/README b/tests/01_PW/210_PW_kspace_shift_gamma/README new file mode 100644 index 00000000000..9e93ee299f8 --- /dev/null +++ b/tests/01_PW/210_PW_kspace_shift_gamma/README @@ -0,0 +1,2 @@ +fast integration case for kspacing-generated shifted Gamma mesh +covers new INPUT parameters: koffset and kmesh_type diff --git a/tests/01_PW/210_PW_kspace_shift_gamma/STRU b/tests/01_PW/210_PW_kspace_shift_gamma/STRU new file mode 100644 index 00000000000..3434e0b0415 --- /dev/null +++ b/tests/01_PW/210_PW_kspace_shift_gamma/STRU @@ -0,0 +1,22 @@ +#This is the atom file containing all the information +#about the lattice structure. + +ATOMIC_SPECIES +H 1.0008 H_ONCV_PBE-1.0.upf + +NUMERICAL_ORBITAL +H_gga_6au_60Ry_2s1p.orb + +LATTICE_CONSTANT +10.0 #Lattice constant + +LATTICE_PARAMETERS +1.5 2.0 + +ATOMIC_POSITIONS +Cartesian #Cartesian(Unit is LATTICE_CONSTANT) +H #Name of element +0.0 #Magnetic for this element. +2 #Number of atoms +0.00 0.00 -0.0661400 0 0 0 #x,y,z, move_x, move_y, move_z +0.00 0.00 0.0661400 0 0 0 #x,y,z, move_x, move_y, move_z diff --git a/tests/01_PW/210_PW_kspace_shift_gamma/result.ref b/tests/01_PW/210_PW_kspace_shift_gamma/result.ref new file mode 100644 index 00000000000..ad4f03e07a0 --- /dev/null +++ b/tests/01_PW/210_PW_kspace_shift_gamma/result.ref @@ -0,0 +1,6 @@ +etotref -27.08734962492505 +etotperatomref -13.5436748125 +pointgroupref D_2h +spacegroupref D_2h +nksibzref 2 +totaltimeref 0.28 diff --git a/tests/01_PW/CASES_CPU.txt b/tests/01_PW/CASES_CPU.txt index 57758718db1..db3d4ecf673 100644 --- a/tests/01_PW/CASES_CPU.txt +++ b/tests/01_PW/CASES_CPU.txt @@ -111,6 +111,7 @@ scf_out_chg_tau 207_PW_skip 208_PW_CG_float 209_PW_DFTHALF +210_PW_kspace_shift_gamma 801_PW_LT_sc 802_PW_LT_fcc 803_PW_LT_bcc From 58ce856d296d27377357329ed62f895eb1ee0b04 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Fri, 17 Apr 2026 00:59:00 +0800 Subject: [PATCH 6/8] add test case for kspacing koffset kmesh_type --- tests/01_PW/210_PW_kspace_shift/INPUT | 23 ++++++++++++++++++++++ tests/01_PW/210_PW_kspace_shift/README | 2 ++ tests/01_PW/210_PW_kspace_shift/STRU | 22 +++++++++++++++++++++ tests/01_PW/210_PW_kspace_shift/result.ref | 6 ++++++ 4 files changed, 53 insertions(+) create mode 100644 tests/01_PW/210_PW_kspace_shift/INPUT create mode 100644 tests/01_PW/210_PW_kspace_shift/README create mode 100644 tests/01_PW/210_PW_kspace_shift/STRU create mode 100644 tests/01_PW/210_PW_kspace_shift/result.ref diff --git a/tests/01_PW/210_PW_kspace_shift/INPUT b/tests/01_PW/210_PW_kspace_shift/INPUT new file mode 100644 index 00000000000..b850e7bc97e --- /dev/null +++ b/tests/01_PW/210_PW_kspace_shift/INPUT @@ -0,0 +1,23 @@ +INPUT_PARAMETERS +suffix autotest +calculation scf +init_wfc random + +symmetry 1 +ecutwfc 5 +scf_thr 1e-06 +scf_nmax 30 +basis_type pw +latname bco + +mixing_type broyden +mixing_beta 0.4 + +smearing_method gaussian +smearing_sigma 0.02 + +kspacing 0.6 +koffset 0.5 0.5 0.5 +kmesh_type gamma +pseudo_dir ../../PP_ORB +pw_seed 1 diff --git a/tests/01_PW/210_PW_kspace_shift/README b/tests/01_PW/210_PW_kspace_shift/README new file mode 100644 index 00000000000..9e93ee299f8 --- /dev/null +++ b/tests/01_PW/210_PW_kspace_shift/README @@ -0,0 +1,2 @@ +fast integration case for kspacing-generated shifted Gamma mesh +covers new INPUT parameters: koffset and kmesh_type diff --git a/tests/01_PW/210_PW_kspace_shift/STRU b/tests/01_PW/210_PW_kspace_shift/STRU new file mode 100644 index 00000000000..3434e0b0415 --- /dev/null +++ b/tests/01_PW/210_PW_kspace_shift/STRU @@ -0,0 +1,22 @@ +#This is the atom file containing all the information +#about the lattice structure. + +ATOMIC_SPECIES +H 1.0008 H_ONCV_PBE-1.0.upf + +NUMERICAL_ORBITAL +H_gga_6au_60Ry_2s1p.orb + +LATTICE_CONSTANT +10.0 #Lattice constant + +LATTICE_PARAMETERS +1.5 2.0 + +ATOMIC_POSITIONS +Cartesian #Cartesian(Unit is LATTICE_CONSTANT) +H #Name of element +0.0 #Magnetic for this element. +2 #Number of atoms +0.00 0.00 -0.0661400 0 0 0 #x,y,z, move_x, move_y, move_z +0.00 0.00 0.0661400 0 0 0 #x,y,z, move_x, move_y, move_z diff --git a/tests/01_PW/210_PW_kspace_shift/result.ref b/tests/01_PW/210_PW_kspace_shift/result.ref new file mode 100644 index 00000000000..ad4f03e07a0 --- /dev/null +++ b/tests/01_PW/210_PW_kspace_shift/result.ref @@ -0,0 +1,6 @@ +etotref -27.08734962492505 +etotperatomref -13.5436748125 +pointgroupref D_2h +spacegroupref D_2h +nksibzref 2 +totaltimeref 0.28 From daba8e345d2f56b7e48e803eff9a1cf120e61cc1 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Fri, 17 Apr 2026 01:02:33 +0800 Subject: [PATCH 7/8] clean test case for kspacing koffset kmesh_type --- tests/01_PW/210_PW_kspace_shift_gamma/INPUT | 23 ------------------- tests/01_PW/210_PW_kspace_shift_gamma/README | 2 -- tests/01_PW/210_PW_kspace_shift_gamma/STRU | 22 ------------------ .../210_PW_kspace_shift_gamma/result.ref | 6 ----- 4 files changed, 53 deletions(-) delete mode 100644 tests/01_PW/210_PW_kspace_shift_gamma/INPUT delete mode 100644 tests/01_PW/210_PW_kspace_shift_gamma/README delete mode 100644 tests/01_PW/210_PW_kspace_shift_gamma/STRU delete mode 100644 tests/01_PW/210_PW_kspace_shift_gamma/result.ref diff --git a/tests/01_PW/210_PW_kspace_shift_gamma/INPUT b/tests/01_PW/210_PW_kspace_shift_gamma/INPUT deleted file mode 100644 index b850e7bc97e..00000000000 --- a/tests/01_PW/210_PW_kspace_shift_gamma/INPUT +++ /dev/null @@ -1,23 +0,0 @@ -INPUT_PARAMETERS -suffix autotest -calculation scf -init_wfc random - -symmetry 1 -ecutwfc 5 -scf_thr 1e-06 -scf_nmax 30 -basis_type pw -latname bco - -mixing_type broyden -mixing_beta 0.4 - -smearing_method gaussian -smearing_sigma 0.02 - -kspacing 0.6 -koffset 0.5 0.5 0.5 -kmesh_type gamma -pseudo_dir ../../PP_ORB -pw_seed 1 diff --git a/tests/01_PW/210_PW_kspace_shift_gamma/README b/tests/01_PW/210_PW_kspace_shift_gamma/README deleted file mode 100644 index 9e93ee299f8..00000000000 --- a/tests/01_PW/210_PW_kspace_shift_gamma/README +++ /dev/null @@ -1,2 +0,0 @@ -fast integration case for kspacing-generated shifted Gamma mesh -covers new INPUT parameters: koffset and kmesh_type diff --git a/tests/01_PW/210_PW_kspace_shift_gamma/STRU b/tests/01_PW/210_PW_kspace_shift_gamma/STRU deleted file mode 100644 index 3434e0b0415..00000000000 --- a/tests/01_PW/210_PW_kspace_shift_gamma/STRU +++ /dev/null @@ -1,22 +0,0 @@ -#This is the atom file containing all the information -#about the lattice structure. - -ATOMIC_SPECIES -H 1.0008 H_ONCV_PBE-1.0.upf - -NUMERICAL_ORBITAL -H_gga_6au_60Ry_2s1p.orb - -LATTICE_CONSTANT -10.0 #Lattice constant - -LATTICE_PARAMETERS -1.5 2.0 - -ATOMIC_POSITIONS -Cartesian #Cartesian(Unit is LATTICE_CONSTANT) -H #Name of element -0.0 #Magnetic for this element. -2 #Number of atoms -0.00 0.00 -0.0661400 0 0 0 #x,y,z, move_x, move_y, move_z -0.00 0.00 0.0661400 0 0 0 #x,y,z, move_x, move_y, move_z diff --git a/tests/01_PW/210_PW_kspace_shift_gamma/result.ref b/tests/01_PW/210_PW_kspace_shift_gamma/result.ref deleted file mode 100644 index ad4f03e07a0..00000000000 --- a/tests/01_PW/210_PW_kspace_shift_gamma/result.ref +++ /dev/null @@ -1,6 +0,0 @@ -etotref -27.08734962492505 -etotperatomref -13.5436748125 -pointgroupref D_2h -spacegroupref D_2h -nksibzref 2 -totaltimeref 0.28 From 3edbfa08a2aaf4d159c36a15fcfb46212abc15f2 Mon Sep 17 00:00:00 2001 From: Chen Nuo <49788094+Cstandardlib@users.noreply.github.com> Date: Fri, 17 Apr 2026 01:03:57 +0800 Subject: [PATCH 8/8] Update CASES_CPU --- tests/01_PW/CASES_CPU.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/01_PW/CASES_CPU.txt b/tests/01_PW/CASES_CPU.txt index db3d4ecf673..5c0ef880662 100644 --- a/tests/01_PW/CASES_CPU.txt +++ b/tests/01_PW/CASES_CPU.txt @@ -111,7 +111,7 @@ scf_out_chg_tau 207_PW_skip 208_PW_CG_float 209_PW_DFTHALF -210_PW_kspace_shift_gamma +210_PW_kspace_shift 801_PW_LT_sc 802_PW_LT_fcc 803_PW_LT_bcc