diff --git a/docs/advanced/input_files/input-main.md b/docs/advanced/input_files/input-main.md index 8af12519ca..182f569b16 100644 --- a/docs/advanced/input_files/input-main.md +++ b/docs/advanced/input_files/input-main.md @@ -166,7 +166,7 @@ - [restart\_save](#restart_save) - [rpa](#rpa) - [nbands\_istate](#nbands_istate) - - [bands\_to\_print](#bands_to_print) + - [out\_pchg](#out_pchg) - [if\_separate\_k](#if_separate_k) - [out\_elf](#out_elf) - [Density of states](#density-of-states) @@ -497,8 +497,8 @@ These variables are used to control general system parameters. - relax: perform structure relaxation calculations, the `relax_nmax` parameter depicts the maximal number of ionic iterations - cell-relax: perform cell relaxation calculations - md: perform molecular dynamics simulations - - get_pchg: obtain partial (band-decomposed) charge densities (for LCAO basis only). See `nbands_istate` and `bands_to_print` for more information - - get_wf: obtain wave functions (for LCAO basis only). See `nbands_istate` and `bands_to_print` for more information + - get_pchg: obtain partial (band-decomposed) charge densities (for LCAO basis only). See `nbands_istate` and `out_pchg` for more information + - get_wf: obtain wave functions (for LCAO basis only). See `nbands_istate`, `out_wfc_norm` and `out_wfc_re_im` for more information - 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) - 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 - test_memory: obtain a rough estimation of memory consuption for the calculation @@ -1901,11 +1901,25 @@ The band (KS orbital) energy for each (k-point, spin, band) will be printed in t - **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`. - **Default**: 5 -### bands_to_print +### out_pchg - **Type**: String -- **Availability**: For both PW and LCAO. When `basis_type = lcao`, used when `calculation = get_wf` or `calculation = get_pchg`. -- **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. +- **Availability**: For both PW and LCAO. When `basis_type = lcao`, used when `calculation = get_pchg`. +- **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. +- **Default**: none + +### out_wfc_norm + +- **Type**: String +- **Availability**: For LCAO, used when `calculation = get_wf`. +- **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. +- **Default**: none + +### out_wfc_re_im + +- **Type**: String +- **Availability**: For LCAO, used when `calculation = get_wf`. +- **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. - **Default**: none ### if_separate_k diff --git a/source/module_esolver/esolver_ks_pw.cpp b/source/module_esolver/esolver_ks_pw.cpp index f6eb1f3edd..fd080070e8 100644 --- a/source/module_esolver/esolver_ks_pw.cpp +++ b/source/module_esolver/esolver_ks_pw.cpp @@ -121,12 +121,7 @@ ESolver_KS_PW::~ESolver_KS_PW() template void ESolver_KS_PW::allocate_hamilt(const UnitCell& ucell) { - this->p_hamilt = new hamilt::HamiltPW( - this->pelec->pot, - this->pw_wfc, - &this->kv, - &this->ppcell, - &ucell); + this->p_hamilt = new hamilt::HamiltPW(this->pelec->pot, this->pw_wfc, &this->kv, &this->ppcell, &ucell); } template @@ -150,31 +145,31 @@ void ESolver_KS_PW::before_all_runners(UnitCell& ucell, const Input_p { if (inp.esolver_type == "sdft") { - //! SDFT only supports double precision currently - this->pelec = new elecstate::ElecStatePW_SDFT, Device>(this->pw_wfc, - &(this->chr), - &(this->kv), - &ucell, - &(this->ppcell), - this->pw_rhod, - this->pw_rho, - this->pw_big); - } - else - { - this->pelec = new elecstate::ElecStatePW(this->pw_wfc, - &(this->chr), - &(this->kv), - &ucell, - &this->ppcell, - this->pw_rhod, - this->pw_rho, - this->pw_big); - } - } - - //! set the cell volume variable in pelec - this->pelec->omega = ucell.omega; + //! SDFT only supports double precision currently + this->pelec = new elecstate::ElecStatePW_SDFT, Device>(this->pw_wfc, + &(this->chr), + &(this->kv), + &ucell, + &(this->ppcell), + this->pw_rhod, + this->pw_rho, + this->pw_big); + } + else + { + this->pelec = new elecstate::ElecStatePW(this->pw_wfc, + &(this->chr), + &(this->kv), + &ucell, + &this->ppcell, + this->pw_rhod, + this->pw_rho, + this->pw_big); + } + } + + //! set the cell volume variable in pelec + this->pelec->omega = ucell.omega; //! 3) inititlize the charge density. this->chr.allocate(PARAM.inp.nspin); @@ -212,11 +207,7 @@ void ESolver_KS_PW::before_all_runners(UnitCell& ucell, const Input_p this->ppcell, *this->pw_wfc); - allocate_psi(this->psi, - this->kv.get_nks(), - this->kv.ngk, - PARAM.globalv.nbands_l, - this->pw_wfc->npwk_max); + allocate_psi(this->psi, this->kv.get_nks(), this->kv.ngk, PARAM.globalv.nbands_l, this->pw_wfc->npwk_max); this->p_psi_init->prepare_init(PARAM.inp.pw_seed); @@ -238,13 +229,10 @@ void ESolver_KS_PW::before_all_runners(UnitCell& ucell, const Input_p } // 9) initialize exx pw - if (PARAM.inp.calculation == "scf" - || PARAM.inp.calculation == "relax" - || PARAM.inp.calculation == "cell-relax" + if (PARAM.inp.calculation == "scf" || PARAM.inp.calculation == "relax" || PARAM.inp.calculation == "cell-relax" || PARAM.inp.calculation == "md") { - if (GlobalC::exx_info.info_global.cal_exx && - GlobalC::exx_info.info_global.separate_loop == true) + if (GlobalC::exx_info.info_global.cal_exx && GlobalC::exx_info.info_global.separate_loop == true) { XC_Functional::set_xc_first_loop(ucell); exx_helper.set_firstiter(); @@ -255,7 +243,6 @@ void ESolver_KS_PW::before_all_runners(UnitCell& ucell, const Input_p exx_helper.set_wg(&this->pelec->wg); } } - } template @@ -270,7 +257,7 @@ void ESolver_KS_PW::before_scf(UnitCell& ucell, const int istep) ESolver_KS::before_scf(ucell, istep); //---------------------------------------------------------- - //! 2) Init variables (cell changed) + //! 2) Init variables (cell changed) //---------------------------------------------------------- if (ucell.cell_parameter_updated) { @@ -299,9 +286,7 @@ void ESolver_KS_PW::before_scf(UnitCell& ucell, const int istep) //---------------------------------------------------------- //! 4) Exx calculations //---------------------------------------------------------- - if (PARAM.inp.calculation == "scf" - || PARAM.inp.calculation == "relax" - || PARAM.inp.calculation == "cell-relax" + if (PARAM.inp.calculation == "scf" || PARAM.inp.calculation == "relax" || PARAM.inp.calculation == "cell-relax" || PARAM.inp.calculation == "md") { if (GlobalC::exx_info.info_global.cal_exx && PARAM.inp.basis_type == "pw") @@ -309,27 +294,20 @@ void ESolver_KS_PW::before_scf(UnitCell& ucell, const int istep) auto hamilt_pw = reinterpret_cast*>(this->p_hamilt); hamilt_pw->set_exx_helper(exx_helper); } - } //---------------------------------------------------------- //! 5) Renew local pseudopotential //---------------------------------------------------------- - this->pelec->init_scf(istep, - ucell, - this->Pgrid, - this->sf.strucFac, - this->locpp.numeric, - ucell.symm, - (void*)this->pw_wfc); - + this->pelec + ->init_scf(istep, ucell, this->Pgrid, this->sf.strucFac, this->locpp.numeric, ucell.symm, (void*)this->pw_wfc); //---------------------------------------------------------- //! 6) Symmetrize the charge density (rho) //---------------------------------------------------------- //! Symmetry_rho should behind init_scf, because charge should be - //! initialized first. liuyu comment: Symmetry_rho should be + //! initialized first. liuyu comment: Symmetry_rho should be //! located between init_rho and v_of_rho? Symmetry_rho srho; for (int is = 0; is < PARAM.inp.nspin; is++) @@ -342,14 +320,14 @@ void ESolver_KS_PW::before_scf(UnitCell& ucell, const int istep) //---------------------------------------------------------- //! liuyu move here 2023-10-09 //! D in uspp need vloc, thus behind init_scf() - //! calculate the effective coefficient matrix + //! calculate the effective coefficient matrix //! for non-local pseudopotential projectors ModuleBase::matrix veff = this->pelec->pot->get_effective_v(); this->ppcell.cal_effective_D(veff, this->pw_rhod, ucell); //---------------------------------------------------------- - //! 8) Onsite projectors + //! 8) Onsite projectors //---------------------------------------------------------- if (PARAM.inp.onsite_radius > 0) { @@ -391,7 +369,7 @@ void ESolver_KS_PW::before_scf(UnitCell& ucell, const int istep) } //---------------------------------------------------------- - //! 10) DFT+U algorithm + //! 10) DFT+U algorithm //---------------------------------------------------------- if (PARAM.inp.dft_plus_u) { @@ -400,23 +378,18 @@ void ESolver_KS_PW::before_scf(UnitCell& ucell, const int istep) } //---------------------------------------------------------- - //! 10) Initialize wave functions + //! 10) Initialize wave functions //---------------------------------------------------------- if (!this->already_initpsi) { - this->p_psi_init->initialize_psi(this->psi, - this->kspw_psi, - this->p_hamilt, - GlobalV::ofs_running); + this->p_psi_init->initialize_psi(this->psi, this->kspw_psi, this->p_hamilt, GlobalV::ofs_running); this->already_initpsi = true; } //---------------------------------------------------------- - //! 11) Exx calculations + //! 11) Exx calculations //---------------------------------------------------------- - if (PARAM.inp.calculation == "scf" - || PARAM.inp.calculation == "relax" - || PARAM.inp.calculation == "cell-relax" + if (PARAM.inp.calculation == "scf" || PARAM.inp.calculation == "relax" || PARAM.inp.calculation == "cell-relax" || PARAM.inp.calculation == "md") { if (GlobalC::exx_info.info_global.cal_exx && PARAM.inp.basis_type == "pw") @@ -444,8 +417,7 @@ void ESolver_KS_PW::iter_init(UnitCell& ucell, const int istep, const // for mixing restart // the details should move somewhere else, 2025-04-13 //---------------------------------------------------------- - if (iter == this->p_chgmix->mixing_restart_step - && PARAM.inp.mixing_restart > 0.0) + if (iter == this->p_chgmix->mixing_restart_step && PARAM.inp.mixing_restart > 0.0) { this->p_chgmix->init_mixing(); this->p_chgmix->mixing_restart_count++; @@ -493,19 +465,14 @@ void ESolver_KS_PW::iter_init(UnitCell& ucell, const int istep, const // update local occupations for DFT+U // should before lambda loop in DeltaSpin //---------------------------------------------------------- - if (PARAM.inp.dft_plus_u - && (iter != 1 || istep != 0)) + if (PARAM.inp.dft_plus_u && (iter != 1 || istep != 0)) { auto* dftu = ModuleDFTU::DFTU::get_instance(); // only old DFT+U method should calculate energy correction in esolver, // new DFT+U method will calculate energy when evaluating the Hamiltonian if (dftu->omc != 2) { - dftu->cal_occ_pw(iter, - this->kspw_psi, - this->pelec->wg, - ucell, - PARAM.inp.mixing_beta); + dftu->cal_occ_pw(iter, this->kspw_psi, this->pelec->wg, ucell, PARAM.inp.mixing_beta); } dftu->output(ucell); } @@ -513,10 +480,7 @@ void ESolver_KS_PW::iter_init(UnitCell& ucell, const int istep, const // Temporary, it should be replaced by hsolver later. template -void ESolver_KS_PW::hamilt2rho_single(UnitCell& ucell, - const int istep, - const int iter, - const double ethr) +void ESolver_KS_PW::hamilt2rho_single(UnitCell& ucell, const int istep, const int iter, const double ethr) { ModuleBase::timer::tick("ESolver_KS_PW", "hamilt2rho_single"); @@ -595,13 +559,9 @@ void ESolver_KS_PW::hamilt2rho_single(UnitCell& ucell, ModuleBase::timer::tick("ESolver_KS_PW", "hamilt2rho_single"); } - // Temporary, it should be rewritten with Hamilt class. template -void ESolver_KS_PW::update_pot(UnitCell& ucell, - const int istep, - const int iter, - const bool conv_esolver) +void ESolver_KS_PW::update_pot(UnitCell& ucell, const int istep, const int iter, const bool conv_esolver) { if (!conv_esolver) { @@ -618,18 +578,13 @@ void ESolver_KS_PW::update_pot(UnitCell& ucell, } } - template -void ESolver_KS_PW::iter_finish(UnitCell& ucell, - const int istep, - int& iter, - bool& conv_esolver) +void ESolver_KS_PW::iter_finish(UnitCell& ucell, const int istep, int& iter, bool& conv_esolver) { //---------------------------------------------------------- // Related to EXX //---------------------------------------------------------- - if (GlobalC::exx_info.info_global.cal_exx - && !exx_helper.op_exx->first_iter) + if (GlobalC::exx_info.info_global.cal_exx && !exx_helper.op_exx->first_iter) { this->pelec->set_exx(exx_helper.cal_exx_energy(kspw_psi)); } @@ -649,7 +604,7 @@ void ESolver_KS_PW::iter_finish(UnitCell& ucell, //---------------------------------------------------------- // 2) Update USPP-related quantities // D in USPP needs vloc, thus needs update when veff updated - // calculate the effective coefficient matrix for non-local + // calculate the effective coefficient matrix for non-local // pp projectors, liuyu 2023-10-24 //---------------------------------------------------------- if (PARAM.globalv.use_uspp) @@ -674,8 +629,8 @@ void ESolver_KS_PW::iter_finish(UnitCell& ucell, { auto duration = std::chrono::high_resolution_clock::now() - start; std::cout << " Setting Psi for EXX PW Inner Loop took " - << std::chrono::duration_cast(duration).count() / 1000.0 - << "s" << std::endl; + << std::chrono::duration_cast(duration).count() / 1000.0 << "s" + << std::endl; exx_helper.op_exx->first_iter = false; XC_Functional::set_xc_type(ucell.atoms[0].ncpp.xc_func); update_pot(ucell, istep, iter, conv_esolver); @@ -686,7 +641,6 @@ void ESolver_KS_PW::iter_finish(UnitCell& ucell, { exx_helper.set_psi(this->kspw_psi); } - } //---------------------------------------------------------- @@ -752,7 +706,7 @@ void ESolver_KS_PW::after_scf(UnitCell& ucell, const int istep, const this->kspw_psi[0].get_pointer() - this->kspw_psi[0].get_psi_bias(), this->psi[0].size()); } - + //------------------------------------------------------------------ // 4) output wavefunctions in pw basis //------------------------------------------------------------------ @@ -766,10 +720,10 @@ void ESolver_KS_PW::after_scf(UnitCell& ucell, const int istep, const //------------------------------------------------------------------ // 5) calculate band-decomposed (partial) charge density in pw basis //------------------------------------------------------------------ - const std::vector bands_to_print = PARAM.inp.bands_to_print; - if (bands_to_print.size() > 0) + const std::vector out_pchg = PARAM.inp.out_pchg; + if (out_pchg.size() > 0) { - ModuleIO::get_pchg_pw(bands_to_print, + ModuleIO::get_pchg_pw(out_pchg, this->kspw_psi->get_nbands(), PARAM.inp.nspin, this->pw_rhod->nx, @@ -930,20 +884,20 @@ void ESolver_KS_PW::after_all_runners(UnitCell& ucell) //---------------------------------------------------------- if (PARAM.inp.out_dos) { - ModuleIO::write_dos_pw(ucell, - this->pelec->ekb, - this->pelec->wg, - this->kv, - PARAM.inp.nbands, - this->pelec->eferm, - PARAM.inp.dos_edelta_ev, - PARAM.inp.dos_scale, - PARAM.inp.dos_sigma, - GlobalV::ofs_running); - } + ModuleIO::write_dos_pw(ucell, + this->pelec->ekb, + this->pelec->wg, + this->kv, + PARAM.inp.nbands, + this->pelec->eferm, + PARAM.inp.dos_edelta_ev, + PARAM.inp.dos_scale, + PARAM.inp.dos_sigma, + GlobalV::ofs_running); + } //---------------------------------------------------------- - //! 3) Compute LDOS + //! 3) Compute LDOS //---------------------------------------------------------- if (PARAM.inp.out_ldos[0]) { @@ -954,7 +908,7 @@ void ESolver_KS_PW::after_all_runners(UnitCell& ucell) } //---------------------------------------------------------- - //! 4) Calculate the spillage value, + //! 4) Calculate the spillage value, //! which are used to generate numerical atomic orbitals //---------------------------------------------------------- if (PARAM.inp.basis_type == "pw" && winput::out_spillage) diff --git a/source/module_io/get_pchg_pw.h b/source/module_io/get_pchg_pw.h index cca71990dc..98dfb72e9c 100644 --- a/source/module_io/get_pchg_pw.h +++ b/source/module_io/get_pchg_pw.h @@ -18,7 +18,7 @@ namespace ModuleIO { template -void get_pchg_pw(const std::vector& bands_to_print, +void get_pchg_pw(const std::vector& out_pchg, const int nbands, const int nspin, const int nx, @@ -43,32 +43,32 @@ void get_pchg_pw(const std::vector& bands_to_print, // bands_picked is a vector of 0s and 1s, where 1 means the band is picked to output std::vector bands_picked(nbands, 0); - // Check if length of bands_to_print is valid - if (static_cast(bands_to_print.size()) > nbands) + // Check if length of out_pchg is valid + if (static_cast(out_pchg.size()) > nbands) { ModuleBase::WARNING_QUIT("ModuleIO::get_pchg_pw", - "The number of bands specified by `bands_to_print` in the " + "The number of bands specified by `out_pchg` in the " "INPUT file exceeds `nbands`!"); } // Check if all elements in bands_picked are 0 or 1 - for (int value: bands_to_print) + for (int value: out_pchg) { if (value != 0 && value != 1) { ModuleBase::WARNING_QUIT("ModuleIO::get_pchg_pw", - "The elements of `bands_to_print` must be either 0 or 1. " + "The elements of `out_pchg` must be either 0 or 1. " "Invalid values found!"); } } - // Fill bands_picked with values from bands_to_print + // Fill bands_picked with values from out_pchg // Remaining bands are already set to 0 - int length = std::min(static_cast(bands_to_print.size()), nbands); + int length = std::min(static_cast(out_pchg.size()), nbands); for (int i = 0; i < length; ++i) { - // bands_to_print rely on function parse_expression - bands_picked[i] = static_cast(bands_to_print[i]); + // out_pchg rely on function parse_expression + bands_picked[i] = static_cast(out_pchg[i]); } std::vector> wfcr(nxyz); diff --git a/source/module_io/read_input_item_output.cpp b/source/module_io/read_input_item_output.cpp index b960cf90d1..467ceef5d1 100644 --- a/source/module_io/read_input_item_output.cpp +++ b/source/module_io/read_input_item_output.cpp @@ -508,21 +508,6 @@ void ReadInput::item_output() read_sync_int(input.nbands_istate); this->add_item(item); } - { - Input_Item item("bands_to_print"); - item.annotation = "specify the bands to be calculated for the partial (band-decomposed) charge densities"; - item.read_value = [](const Input_Item& item, Parameter& para) { - parse_expression(item.str_values, para.input.bands_to_print); - }; - item.get_final_value = [](Input_Item& item, const Parameter& para) { - if (item.is_read()) - { - item.final_value.str(longstring(item.str_values)); - } - }; - add_intvec_bcast(input.bands_to_print, para.input.bands_to_print.size(), 0); - this->add_item(item); - } { Input_Item item("out_pchg"); item.annotation = "specify the bands to be calculated for the partial (band-decomposed) charge densities"; diff --git a/source/module_io/test/read_input_ptest.cpp b/source/module_io/test/read_input_ptest.cpp index f775aa7aca..6fa3ba34a5 100644 --- a/source/module_io/test/read_input_ptest.cpp +++ b/source/module_io/test/read_input_ptest.cpp @@ -50,7 +50,6 @@ TEST_F(InputParaTest, ParaRead) EXPECT_EQ(param.inp.nbands, 8); EXPECT_EQ(param.inp.nbands_sto, 256); EXPECT_EQ(param.inp.nbands_istate, 5); - EXPECT_EQ(param.inp.bands_to_print.size(), 0); EXPECT_EQ(param.inp.out_pchg.size(), 0); EXPECT_EQ(param.inp.out_wfc_norm.size(), 0); EXPECT_EQ(param.inp.out_wfc_re_im.size(), 0); diff --git a/source/module_io/test/support/INPUT b/source/module_io/test/support/INPUT index b153fdc516..8f67cdbfd1 100644 --- a/source/module_io/test/support/INPUT +++ b/source/module_io/test/support/INPUT @@ -19,7 +19,7 @@ kspacing 0 #unit in 1/bohr, should be > 0, default is 0 wh min_dist_coef 0.2 #factor related to the allowed minimum distance between two atoms nbands 8 #number of bands nbands_istate 5 #number of bands around Fermi level for get_pchg calulation -bands_to_print # specify the bands to be calculated in get_wf and get_pchg calculation +out_pchg # specify the bands to be calculated in get_pchg calculation if_separate_k false #specify whether to write the partial charge densities for all k-points to individual files or merge them symmetry 1 #the control of symmetry init_vel False #read velocity from STRU or not diff --git a/source/module_parameter/input_parameter.h b/source/module_parameter/input_parameter.h index 66c21e902d..0aa358b985 100644 --- a/source/module_parameter/input_parameter.h +++ b/source/module_parameter/input_parameter.h @@ -404,7 +404,6 @@ struct Input_para bool restart_save = false; ///< restart //Peize Lin add 2020-04-04 bool rpa = false; ///< rpa calculation int nbands_istate = 5; ///< number of bands around fermi level for get_pchg calculation. - std::vector bands_to_print = {}; ///< specify the bands to be calculated for partial charge std::vector out_pchg = {}; ///< specify the bands to be calculated for partial charge std::vector out_wfc_norm = {}; ///< specify the bands to be calculated for norm of wfc std::vector out_wfc_re_im = {}; ///< specify the bands to be calculated for real and imaginary parts of wfc diff --git a/tests/02_NAO_Gamma/013_NO_GO_get_wf/INPUT b/tests/02_NAO_Gamma/013_NO_GO_get_wf/INPUT index 02e2e63d56..8ebaf36d5a 100644 --- a/tests/02_NAO_Gamma/013_NO_GO_get_wf/INPUT +++ b/tests/02_NAO_Gamma/013_NO_GO_get_wf/INPUT @@ -1,7 +1,7 @@ INPUT_PARAMETERS suffix autotest calculation get_wf -bands_to_print 1 3*0 +out_pchg 1 3*0 nbands 4 latname sc stru_file STRU