diff --git a/source/source_esolver/esolver_double_xc.cpp b/source/source_esolver/esolver_double_xc.cpp index 2baaffb1ec5..57ea638f377 100644 --- a/source/source_esolver/esolver_double_xc.cpp +++ b/source/source_esolver/esolver_double_xc.cpp @@ -1,4 +1,8 @@ #include "esolver_double_xc.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: was transitively via elecstate.h #include "source_hamilt/module_xc/xc_functional.h" #include "source_hamilt/module_ewald/H_Ewald_pw.h" #include "source_hamilt/module_vdw/vdw.h" diff --git a/source/source_esolver/esolver_double_xc.h b/source/source_esolver/esolver_double_xc.h index bff9e28bc70..10afa100f90 100644 --- a/source/source_esolver/esolver_double_xc.h +++ b/source/source_esolver/esolver_double_xc.h @@ -2,6 +2,7 @@ #define ESOLVER_DOUBLE_XC_H #include "source_esolver/esolver_ks_lcao.h" +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h namespace ModuleESolver { diff --git a/source/source_esolver/esolver_fp.cpp b/source/source_esolver/esolver_fp.cpp index 1ddb636c8ab..480239ee038 100644 --- a/source/source_esolver/esolver_fp.cpp +++ b/source/source_esolver/esolver_fp.cpp @@ -1,4 +1,6 @@ #include "esolver_fp.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_estate/cal_ux.h" #include "source_estate/module_charge/symmetry_rho.h" diff --git a/source/source_esolver/esolver_fp.h b/source/source_esolver/esolver_fp.h index 501bef9b681..d36d6574eb3 100644 --- a/source/source_esolver/esolver_fp.h +++ b/source/source_esolver/esolver_fp.h @@ -2,10 +2,12 @@ #define ESOLVER_FP_H #include "esolver.h" +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_base/timer_wrapper.h" #include "source_basis/module_pw/pw_basis.h" // plane wave basis +#include "source_cell/klist.h" // K_Vectors kv value member (no longer via elecstate.h) #include "source_estate/elecstate.h" // electronic states #include "source_estate/module_charge/charge_extra.h" // charge extrapolation #include "source_hamilt/module_surchem/surchem.h" // solvation model diff --git a/source/source_esolver/esolver_gets.cpp b/source/source_esolver/esolver_gets.cpp index c66e33bce6f..f0dc8f36900 100644 --- a/source/source_esolver/esolver_gets.cpp +++ b/source/source_esolver/esolver_gets.cpp @@ -1,4 +1,6 @@ #include "esolver_gets.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/timer.h" #include "source_cell/module_neighbor/sltk_atom_arrange.h" diff --git a/source/source_esolver/esolver_ks_lcao.cpp b/source/source_esolver/esolver_ks_lcao.cpp index 232f75ab543..866053a9b9b 100644 --- a/source/source_esolver/esolver_ks_lcao.cpp +++ b/source/source_esolver/esolver_ks_lcao.cpp @@ -1,4 +1,6 @@ #include "esolver_ks_lcao.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/module_external/blacs_connector.h" #include "source_cell/module_neighbor/sltk_atom_arrange.h" #include "source_estate/elecstate_tools.h" diff --git a/source/source_esolver/esolver_ks_lcaopw.cpp b/source/source_esolver/esolver_ks_lcaopw.cpp index 6c5cb703bfa..3b409c150c2 100644 --- a/source/source_esolver/esolver_ks_lcaopw.cpp +++ b/source/source_esolver/esolver_ks_lcaopw.cpp @@ -1,4 +1,6 @@ #include "esolver_ks_lcaopw.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_pw/module_pwdft/elecond.h" #include "source_io/module_parameter/input_conv.h" diff --git a/source/source_esolver/esolver_ks_pw.cpp b/source/source_esolver/esolver_ks_pw.cpp index 79448f713ad..01c53e20df0 100644 --- a/source/source_esolver/esolver_ks_pw.cpp +++ b/source/source_esolver/esolver_ks_pw.cpp @@ -1,4 +1,7 @@ #include "esolver_ks_pw.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: was transitively via elecstate.h #include "source_estate/cal_ux.h" #include "source_estate/elecstate_pw.h" diff --git a/source/source_esolver/esolver_of.cpp b/source/source_esolver/esolver_of.cpp index b346df60fb8..c1ae652e734 100644 --- a/source/source_esolver/esolver_of.cpp +++ b/source/source_esolver/esolver_of.cpp @@ -1,4 +1,7 @@ #include "esolver_of.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_io/module_parameter/parameter.h" #include "source_io/module_output/cube_io.h" diff --git a/source/source_esolver/esolver_of_interface.cpp b/source/source_esolver/esolver_of_interface.cpp index d428b795069..247c4478d0e 100644 --- a/source/source_esolver/esolver_of_interface.cpp +++ b/source/source_esolver/esolver_of_interface.cpp @@ -1,4 +1,5 @@ #include "esolver_of.h" +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_io/module_parameter/parameter.h" namespace ModuleESolver diff --git a/source/source_esolver/esolver_of_tool.cpp b/source/source_esolver/esolver_of_tool.cpp index ade24621cab..9d881d38d6e 100644 --- a/source/source_esolver/esolver_of_tool.cpp +++ b/source/source_esolver/esolver_of_tool.cpp @@ -1,4 +1,6 @@ #include "esolver_of.h" +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_base/formatter.h" #include "source_base/memory_recorder.h" #include "source_estate/module_pot/efield.h" diff --git a/source/source_esolver/esolver_sdft_pw.cpp b/source/source_esolver/esolver_sdft_pw.cpp index 654f45a19cf..cf3b0bb8d87 100644 --- a/source/source_esolver/esolver_sdft_pw.cpp +++ b/source/source_esolver/esolver_sdft_pw.cpp @@ -1,4 +1,6 @@ #include "esolver_sdft_pw.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/global_variable.h" #include "source_base/memory_recorder.h" diff --git a/source/source_esolver/lcao_others.cpp b/source/source_esolver/lcao_others.cpp index c8e38f2111f..1f816741bb8 100644 --- a/source/source_esolver/lcao_others.cpp +++ b/source/source_esolver/lcao_others.cpp @@ -1,4 +1,5 @@ #include "source_esolver/esolver_ks_lcao.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_estate/cal_ux.h" #include "source_estate/module_charge/symmetry_rho.h" #include "source_lcao/hamilt_lcao.h" diff --git a/source/source_esolver/pw_others.cpp b/source/source_esolver/pw_others.cpp index bbacac36566..ed3aba816a2 100644 --- a/source/source_esolver/pw_others.cpp +++ b/source/source_esolver/pw_others.cpp @@ -1,4 +1,6 @@ #include "esolver_ks_pw.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/module_device/device.h" #include "source_io/module_bessel/numerical_basis.h" #include "source_io/module_bessel/numerical_descriptor.h" diff --git a/source/source_estate/elecstate.cpp b/source/source_estate/elecstate.cpp index 5ed97e678c7..3005004158a 100644 --- a/source/source_estate/elecstate.cpp +++ b/source/source_estate/elecstate.cpp @@ -2,11 +2,32 @@ #include "source_io/module_parameter/parameter.h" #include "source_base/parallel_reduce.h" #include "source_base/tool_title.h" +#include "source_estate/module_charge/charge.h" +#include "module_pot/potential_new.h" +#include "source_basis/module_pw/pw_basis.h" +#include "source_basis/module_pw/pw_basis_big.h" #include "occupy.h" namespace elecstate { +ElecState::ElecState(Charge* chr_in, ModulePW::PW_Basis* rhopw_in, ModulePW::PW_Basis_Big* bigpw_in) +{ + this->charge = chr_in; + this->charge->set_rhopw(rhopw_in); + this->bigpw = bigpw_in; + this->eferm.two_efermi = PARAM.globalv.two_fermi; +} + +ElecState::~ElecState() +{ + if (this->pot != nullptr) + { + delete this->pot; + this->pot = nullptr; + } +} + const double* ElecState::getRho(int spin) const { return &(this->charge->rho[spin][0]); diff --git a/source/source_estate/elecstate.h b/source/source_estate/elecstate.h index a4191df38d8..08012dbfafb 100644 --- a/source/source_estate/elecstate.h +++ b/source/source_estate/elecstate.h @@ -2,36 +2,53 @@ #define ELECSTATE_H #include "fp_energy.h" -#include "source_cell/klist.h" -#include "source_estate/module_charge/charge.h" -#include "source_io/module_parameter/parameter.h" -#include "source_psi/psi.h" -#include "module_pot/potential_new.h" +#include "source_base/matrix.h" +#include "source_psi/psi.h" // Psi appears in virtual method signatures; psi.h is light (own_fan=2) +#include "source_io/module_parameter/parameter.h" // PARAM/Input_para; kept (own_fan=4, cheap) to avoid churning ~120 downstream PARAM users + +// Base-layer leaf utilities (own_fan~0) that the old heavy includes used to +// pull in transitively. Kept here so the ~100 downstream files using TITLE / +// WARNING_QUIT / timer / GlobalFunc / Memory do not each need a new include; +// global_function.h also transitively provides tool_title.h and tool_quit.h. +#include "source_base/global_function.h" +#include "source_base/timer.h" +#include "source_base/memory_recorder.h" + +#include +#include +#include + +// The heavy data headers (potential_new own_fan=58, klist=42, charge=37) are +// forward-declared instead of included; their full definitions are pulled in by +// elecstate.cpp. parameter.h is kept above because dropping it saves only 4 fan +// but would force ~120 downstream files to add their own include. +class Charge; +class K_Vectors; +class UnitCell; +class Parallel_Grid; +namespace ModuleBase +{ +class ComplexMatrix; +} +namespace ModulePW +{ +class PW_Basis; +class PW_Basis_Big; +} // namespace ModulePW namespace elecstate { +class Potential; + class ElecState { public: ElecState() { } - ElecState(Charge* chr_in, ModulePW::PW_Basis* rhopw_in, ModulePW::PW_Basis_Big* bigpw_in) - { - this->charge = chr_in; - this->charge->set_rhopw(rhopw_in); - this->bigpw = bigpw_in; - this->eferm.two_efermi = PARAM.globalv.two_fermi; - } - virtual ~ElecState() - { - if (this->pot != nullptr) - { - delete this->pot; - this->pot = nullptr; - } - } + ElecState(Charge* chr_in, ModulePW::PW_Basis* rhopw_in, ModulePW::PW_Basis_Big* bigpw_in); + virtual ~ElecState(); void init_ks(Charge* chr_in, // pointer for class Charge const K_Vectors* klist_in, int nk_in, // number of k points diff --git a/source/source_estate/elecstate_energy.cpp b/source/source_estate/elecstate_energy.cpp index 34e6c3aa278..a2873164deb 100644 --- a/source/source_estate/elecstate_energy.cpp +++ b/source/source_estate/elecstate_energy.cpp @@ -1,10 +1,15 @@ #include "elecstate.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_base/global_variable.h" #include "source_base/parallel_comm.h" #include "source_base/parallel_reduce.h" #include "makov_payne.h" #include "source_hamilt/module_xc/xc_functional.h" #include "source_estate/module_pot/H_Hartree_pw.h" +#include "module_pot/potential_new.h" // ElecState::pot is now fwd-declared in elecstate.h #include "source_io/module_parameter/parameter.h" #include diff --git a/source/source_estate/elecstate_energy_terms.cpp b/source/source_estate/elecstate_energy_terms.cpp index ebe0068c27b..079f44a544b 100644 --- a/source/source_estate/elecstate_energy_terms.cpp +++ b/source/source_estate/elecstate_energy_terms.cpp @@ -1,5 +1,8 @@ #include "elecstate.h" +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_base/parallel_reduce.h" +#include "module_pot/potential_new.h" // ElecState::pot is now fwd-declared in elecstate.h #include "source_estate/module_pot/H_Hartree_pw.h" #include "source_estate/module_pot/efield.h" #include "source_estate/module_pot/gatefield.h" diff --git a/source/source_estate/elecstate_lcao.cpp b/source/source_estate/elecstate_lcao.cpp index 2040ee769e1..d70ab98a7ba 100644 --- a/source/source_estate/elecstate_lcao.cpp +++ b/source/source_estate/elecstate_lcao.cpp @@ -1,4 +1,5 @@ #include "source_estate/elecstate_lcao.h" +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_estate/cal_dm.h" #include "source_base/timer.h" #include "source_estate/module_dm/cal_dm_psi.h" diff --git a/source/source_estate/elecstate_print.cpp b/source/source_estate/elecstate_print.cpp index 5c61755d6ff..ec5e51568c5 100644 --- a/source/source_estate/elecstate_print.cpp +++ b/source/source_estate/elecstate_print.cpp @@ -1,4 +1,5 @@ #include "elecstate.h" +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_base/formatter.h" #include "source_base/global_variable.h" #include "source_base/parallel_common.h" diff --git a/source/source_estate/elecstate_pw.cpp b/source/source_estate/elecstate_pw.cpp index de05d441b58..aab4d2d3d1a 100644 --- a/source/source_estate/elecstate_pw.cpp +++ b/source/source_estate/elecstate_pw.cpp @@ -1,4 +1,8 @@ #include "elecstate_pw.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_base/constants.h" #include "source_base/libm/libm.h" diff --git a/source/source_estate/elecstate_pw_cal_tau.cpp b/source/source_estate/elecstate_pw_cal_tau.cpp index a59990600a3..d3ba3ef4f19 100644 --- a/source/source_estate/elecstate_pw_cal_tau.cpp +++ b/source/source_estate/elecstate_pw_cal_tau.cpp @@ -1,4 +1,7 @@ #include "elecstate_pw.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: elecstate.h no longer provides this transitively namespace elecstate { diff --git a/source/source_estate/elecstate_pw_sdft.cpp b/source/source_estate/elecstate_pw_sdft.cpp index f4061f733a5..a7f793a3300 100644 --- a/source/source_estate/elecstate_pw_sdft.cpp +++ b/source/source_estate/elecstate_pw_sdft.cpp @@ -1,4 +1,5 @@ #include "./elecstate_pw_sdft.h" +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_base/global_function.h" #include "source_base/global_variable.h" diff --git a/source/source_estate/elecstate_tools.cpp b/source/source_estate/elecstate_tools.cpp index 3076c6b437e..60ca93b851d 100644 --- a/source/source_estate/elecstate_tools.cpp +++ b/source/source_estate/elecstate_tools.cpp @@ -1,4 +1,5 @@ #include "elecstate_tools.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "occupy.h" #include "source_base/parallel_reduce.h" namespace elecstate diff --git a/source/source_estate/init_scf.cpp b/source/source_estate/init_scf.cpp index a86c82b7b0c..2765f7815d5 100644 --- a/source/source_estate/init_scf.cpp +++ b/source/source_estate/init_scf.cpp @@ -1,4 +1,6 @@ #include "elecstate.h" +#include "module_pot/potential_new.h" // ElecState::pot is now fwd-declared in elecstate.h +#include "source_estate/module_charge/charge.h" // ElecState::charge is now fwd-declared in elecstate.h #include "source_io/module_chgpot/write_init.h" namespace elecstate diff --git a/source/source_estate/module_dm/init_dm.cpp b/source/source_estate/module_dm/init_dm.cpp index 20b7fa1217d..301a51e426f 100644 --- a/source/source_estate/module_dm/init_dm.cpp +++ b/source/source_estate/module_dm/init_dm.cpp @@ -1,4 +1,5 @@ #include "source_estate/module_dm/init_dm.h" +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_estate/module_dm/cal_dm_psi.h" #include "source_estate/elecstate_tools.h" #include "source_estate/cal_ux.h" diff --git a/source/source_estate/module_pot/pot_ml_exx.h b/source/source_estate/module_pot/pot_ml_exx.h index b3e9d82b941..0047b0d6f88 100644 --- a/source/source_estate/module_pot/pot_ml_exx.h +++ b/source/source_estate/module_pot/pot_ml_exx.h @@ -4,6 +4,7 @@ #ifdef __MLALGO #include "pot_base.h" +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_io/module_ml/cal_mlkedf_descriptors.h" #include "source_pw/module_ofdft/ml_base.h" diff --git a/source/source_estate/setup_estate_pw.cpp b/source/source_estate/setup_estate_pw.cpp index 654969faa9f..e9552bf8aa2 100644 --- a/source/source_estate/setup_estate_pw.cpp +++ b/source/source_estate/setup_estate_pw.cpp @@ -1,4 +1,6 @@ #include "source_estate/setup_estate_pw.h" +#include "source_estate/module_pot/potential_new.h" // new elecstate::Potential (was transitively via elecstate.h) +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_estate/elecstate_pw.h" #include "source_estate/elecstate_pw_sdft.h" #include "source_estate/elecstate_tools.h" diff --git a/source/source_estate/setup_estate_pw.h b/source/source_estate/setup_estate_pw.h index 03e994369ae..d133af256a3 100644 --- a/source/source_estate/setup_estate_pw.h +++ b/source/source_estate/setup_estate_pw.h @@ -9,6 +9,7 @@ #include "source_pw/module_pwdft/vsep_pw.h" class pseudopot_cell_vnl; +class surchem; // used only as a reference param below (was transitively via elecstate.h) namespace elecstate { diff --git a/source/source_estate/test/elecstate_base_test.cpp b/source/source_estate/test/elecstate_base_test.cpp index beb5a0a2e16..0510586d059 100644 --- a/source/source_estate/test/elecstate_base_test.cpp +++ b/source/source_estate/test/elecstate_base_test.cpp @@ -1,10 +1,13 @@ #include "gmock/gmock.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "gtest/gtest.h" #include #define private public #define protected public #include "source_estate/elecstate.h" #include "source_estate/elecstate_tools.h" +#include "source_estate/module_charge/charge.h" // new Charge / charge->rho (no longer via elecstate.h) +#include "source_estate/module_pot/potential_new.h" // Potential (no longer via elecstate.h) #include "source_estate/occupy.h" #include "source_io/module_parameter/parameter.h" #include "source_base/module_fft/fft_bundle.h" diff --git a/source/source_estate/test/elecstate_print_test.cpp b/source/source_estate/test/elecstate_print_test.cpp index 55fb18dd605..239c18ff5c0 100644 --- a/source/source_estate/test/elecstate_print_test.cpp +++ b/source/source_estate/test/elecstate_print_test.cpp @@ -1,6 +1,7 @@ #include #include "gmock/gmock.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "gtest/gtest.h" #define private public #include "source_cell/klist.h" diff --git a/source/source_estate/test/elecstate_pw_test.cpp b/source/source_estate/test/elecstate_pw_test.cpp index c4e57298409..48d9f81d5a6 100644 --- a/source/source_estate/test/elecstate_pw_test.cpp +++ b/source/source_estate/test/elecstate_pw_test.cpp @@ -1,6 +1,8 @@ #include #include "gmock/gmock.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "gtest/gtest.h" #define private public #define protected public diff --git a/source/source_estate/update_pot.cpp b/source/source_estate/update_pot.cpp index f0f0ef861a7..a30766323fc 100644 --- a/source/source_estate/update_pot.cpp +++ b/source/source_estate/update_pot.cpp @@ -1,4 +1,5 @@ #include "source_estate/update_pot.h" +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_estate/cal_ux.h" void elecstate::update_pot(UnitCell& ucell, // unitcell diff --git a/source/source_hsolver/hsolver_lcaopw.h b/source/source_hsolver/hsolver_lcaopw.h index b13669ca754..81e82b99415 100644 --- a/source/source_hsolver/hsolver_lcaopw.h +++ b/source/source_hsolver/hsolver_lcaopw.h @@ -4,6 +4,11 @@ #include "source_estate/elecstate.h" #include "source_hamilt/hamilt.h" #include "source_base/macros.h" + +// Used only as a pointer member/param; forward-declared instead of including +// pw_basis_k.h. Was previously reachable transitively through elecstate.h. +namespace ModulePW { class PW_Basis_K; } + namespace hsolver { diff --git a/source/source_hsolver/hsolver_pw.cpp b/source/source_hsolver/hsolver_pw.cpp index b88bc3b90dd..cc15145c6f6 100644 --- a/source/source_hsolver/hsolver_pw.cpp +++ b/source/source_hsolver/hsolver_pw.cpp @@ -1,4 +1,6 @@ #include "hsolver_pw.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_base/parallel_comm.h" #include "source_base/global_variable.h" diff --git a/source/source_hsolver/hsolver_pw_sdft.cpp b/source/source_hsolver/hsolver_pw_sdft.cpp index f3c3d2f66a3..983294fb0d8 100644 --- a/source/source_hsolver/hsolver_pw_sdft.cpp +++ b/source/source_hsolver/hsolver_pw_sdft.cpp @@ -1,4 +1,5 @@ #include "hsolver_pw_sdft.h" +#include "source_estate/module_pot/potential_new.h" // IWYU: was transitively via elecstate.h #include "source_base/global_function.h" #include "source_base/parallel_device.h" diff --git a/source/source_hsolver/test/hsolver_supplementary_mock.h b/source/source_hsolver/test/hsolver_supplementary_mock.h index 7dc30d77233..221e2a18359 100644 --- a/source/source_hsolver/test/hsolver_supplementary_mock.h +++ b/source/source_hsolver/test/hsolver_supplementary_mock.h @@ -1,5 +1,6 @@ #pragma once #include "source_estate/elecstate_pw.h" +#include "source_estate/module_charge/charge.h" // IWYU: elecstate.h no longer provides this transitively namespace elecstate { diff --git a/source/source_hsolver/test/test_hsolver_pw.cpp b/source/source_hsolver/test/test_hsolver_pw.cpp index cc7f72fb041..e102f40c773 100644 --- a/source/source_hsolver/test/test_hsolver_pw.cpp +++ b/source/source_hsolver/test/test_hsolver_pw.cpp @@ -5,6 +5,8 @@ #define private public #define protected public #include "source_io/module_parameter/parameter.h" +#include "source_estate/module_pot/potential_new.h" // new elecstate::Potential (was transitively via elecstate.h) +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_hsolver/hsolver_pw.h" #include "source_hsolver/hsolver_lcaopw.h" #include "hsolver_supplementary_mock.h" diff --git a/source/source_hsolver/test/test_hsolver_sdft.cpp b/source/source_hsolver/test/test_hsolver_sdft.cpp index f2d36efd439..205ec46c54c 100644 --- a/source/source_hsolver/test/test_hsolver_sdft.cpp +++ b/source/source_hsolver/test/test_hsolver_sdft.cpp @@ -2,6 +2,7 @@ #include #define private public #include "source_io/module_parameter/parameter.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #undef private #include diff --git a/source/source_io/module_chgpot/write_init.cpp b/source/source_io/module_chgpot/write_init.cpp index b7ffdc18893..d70edd5b515 100644 --- a/source/source_io/module_chgpot/write_init.cpp +++ b/source/source_io/module_chgpot/write_init.cpp @@ -15,6 +15,7 @@ // ===================================================================== #include "source_io/module_chgpot/write_init.h" +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_io/module_output/cube_io.h" #include "source_base/tool_quit.h" diff --git a/source/source_io/module_ctrl/ctrl_iter_lcao.cpp b/source/source_io/module_ctrl/ctrl_iter_lcao.cpp index a4de81385f2..6a49034228d 100644 --- a/source/source_io/module_ctrl/ctrl_iter_lcao.cpp +++ b/source/source_io/module_ctrl/ctrl_iter_lcao.cpp @@ -1,4 +1,6 @@ #include "ctrl_iter_lcao.h" // use ctrl_iter_lcao() +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/global_variable.h" // use GlobalC #ifdef __MLALGO diff --git a/source/source_io/module_ctrl/ctrl_output_fp.cpp b/source/source_io/module_ctrl/ctrl_output_fp.cpp index 87aa062bc0c..bc35e1e2d1c 100644 --- a/source/source_io/module_ctrl/ctrl_output_fp.cpp +++ b/source/source_io/module_ctrl/ctrl_output_fp.cpp @@ -1,4 +1,6 @@ #include "ctrl_output_fp.h" // use ctrl_output_fp() +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "../module_output/cube_io.h" // use write_vdata_palgrid #include "../module_dipole/dipole_io.h" // use write_dipole #include "source_estate/module_charge/symmetry_rho.h" // use Symmetry_rho diff --git a/source/source_io/module_ctrl/ctrl_output_fp.h b/source/source_io/module_ctrl/ctrl_output_fp.h index ec9f4e20e78..7e553703e6f 100644 --- a/source/source_io/module_ctrl/ctrl_output_fp.h +++ b/source/source_io/module_ctrl/ctrl_output_fp.h @@ -3,6 +3,8 @@ #include "source_estate/elecstate_lcao.h" +class surchem; // used only as a reference param below (was transitively via elecstate.h) + namespace ModuleIO { diff --git a/source/source_io/module_ctrl/ctrl_output_pw.cpp b/source/source_io/module_ctrl/ctrl_output_pw.cpp index 580bc314efb..30d6354706d 100644 --- a/source/source_io/module_ctrl/ctrl_output_pw.cpp +++ b/source/source_io/module_ctrl/ctrl_output_pw.cpp @@ -1,4 +1,6 @@ #include "ctrl_output_pw.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "../module_wf/write_wfc_pw.h" // use write_wfc_pw #include "../module_dos/write_dos_pw.h" // use write_dos_pw diff --git a/source/source_io/module_ctrl/ctrl_output_pw.h b/source/source_io/module_ctrl/ctrl_output_pw.h index 00b7509990c..0008bcb657e 100644 --- a/source/source_io/module_ctrl/ctrl_output_pw.h +++ b/source/source_io/module_ctrl/ctrl_output_pw.h @@ -6,6 +6,8 @@ #include "source_estate/elecstate_lcao.h" // use pelec #include "source_psi/setup_psi_pw.h" // use Setup_Psi class +class surchem; // used only as a reference param below (was transitively via elecstate.h) + namespace ModuleIO { diff --git a/source/source_io/module_ctrl/ctrl_runner_lcao.h b/source/source_io/module_ctrl/ctrl_runner_lcao.h index 95c4fe4658a..3fa37081bc4 100644 --- a/source/source_io/module_ctrl/ctrl_runner_lcao.h +++ b/source/source_io/module_ctrl/ctrl_runner_lcao.h @@ -10,6 +10,8 @@ #include "source_lcao/setup_exx.h" // for exx, mohan add 20251018 #include "source_lcao/setup_dm.h" // for density matrix, mohan add 20251103 +class surchem; // used only as a reference param below (was transitively via elecstate.h) + namespace ModuleIO { diff --git a/source/source_io/module_ctrl/ctrl_scf_lcao.cpp b/source/source_io/module_ctrl/ctrl_scf_lcao.cpp index 95b0bcb6e43..eb7d07996ae 100644 --- a/source/source_io/module_ctrl/ctrl_scf_lcao.cpp +++ b/source/source_io/module_ctrl/ctrl_scf_lcao.cpp @@ -1,4 +1,7 @@ #include "ctrl_scf_lcao.h" // use ctrl_scf_lcao() +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_base/formatter.h" #include "source_estate/elecstate_lcao.h" // use elecstate::ElecState diff --git a/source/source_io/module_current/td_current_io.cpp b/source/source_io/module_current/td_current_io.cpp index 06703d97117..646bf77a378 100644 --- a/source/source_io/module_current/td_current_io.cpp +++ b/source/source_io/module_current/td_current_io.cpp @@ -1,4 +1,6 @@ #include "td_current_io.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/global_function.h" #include "source_base/global_variable.h" diff --git a/source/source_io/module_current/td_current_io_comm.cpp b/source/source_io/module_current/td_current_io_comm.cpp index b987643d49a..7d859e92b3e 100644 --- a/source/source_io/module_current/td_current_io_comm.cpp +++ b/source/source_io/module_current/td_current_io_comm.cpp @@ -1,4 +1,6 @@ #include "source_base/global_function.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/global_variable.h" #include "source_base/libm/libm.h" #include "source_base/module_external/lapack_connector.h" diff --git a/source/source_io/module_dos/cal_ldos.cpp b/source/source_io/module_dos/cal_ldos.cpp index 1e92e2e4e4b..e418b7f6663 100644 --- a/source/source_io/module_dos/cal_ldos.cpp +++ b/source/source_io/module_dos/cal_ldos.cpp @@ -1,4 +1,7 @@ #include "cal_ldos.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "cal_dos.h" #include "../module_output/cube_io.h" diff --git a/source/source_io/module_energy/write_proj_band_lcao.cpp b/source/source_io/module_energy/write_proj_band_lcao.cpp index ecf83e6a4d0..d152196f2aa 100644 --- a/source/source_io/module_energy/write_proj_band_lcao.cpp +++ b/source/source_io/module_energy/write_proj_band_lcao.cpp @@ -1,4 +1,6 @@ #include "write_proj_band_lcao.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_io/module_parameter/parameter.h" #include "source_base/global_function.h" diff --git a/source/source_io/module_ml/cal_mlkedf_descriptors.cpp b/source/source_io/module_ml/cal_mlkedf_descriptors.cpp index 22a7b794d43..9fe6047e3ea 100644 --- a/source/source_io/module_ml/cal_mlkedf_descriptors.cpp +++ b/source/source_io/module_ml/cal_mlkedf_descriptors.cpp @@ -1,4 +1,6 @@ #include "cal_mlkedf_descriptors.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: elecstate.h no longer provides this transitively namespace ModuleIO { diff --git a/source/source_io/module_ml/write_mlkedf_descriptors.cpp b/source/source_io/module_ml/write_mlkedf_descriptors.cpp index 59ee758bd70..803504b3860 100644 --- a/source/source_io/module_ml/write_mlkedf_descriptors.cpp +++ b/source/source_io/module_ml/write_mlkedf_descriptors.cpp @@ -1,6 +1,8 @@ #ifdef __MLALGO #include "write_mlkedf_descriptors.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "npy.hpp" #include "source_estate/module_charge/symmetry_rho.h" diff --git a/source/source_io/module_wf/get_wf_lcao.cpp b/source/source_io/module_wf/get_wf_lcao.cpp index 04e0c4d97b0..c1068f83aca 100644 --- a/source/source_io/module_wf/get_wf_lcao.cpp +++ b/source/source_io/module_wf/get_wf_lcao.cpp @@ -1,4 +1,6 @@ #include "get_wf_lcao.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: elecstate.h no longer provides this transitively #include "source_base/module_external/blacs_connector.h" #include "source_io/module_output/cube_io.h" diff --git a/source/source_io/module_wf/get_wf_lcao.h b/source/source_io/module_wf/get_wf_lcao.h index 6d01e006fb4..af95d88bfb6 100644 --- a/source/source_io/module_wf/get_wf_lcao.h +++ b/source/source_io/module_wf/get_wf_lcao.h @@ -4,6 +4,10 @@ #include "source_estate/elecstate.h" #include "source_basis/module_ao/parallel_orbitals.h" +// Used only as a pointer param; forward-declared instead of including +// pw_basis_k.h. Was previously reachable transitively through elecstate.h. +namespace ModulePW { class PW_Basis_K; } + class Get_wf_lcao { public: diff --git a/source/source_lcao/FORCE_STRESS.cpp b/source/source_lcao/FORCE_STRESS.cpp index c5a0ca6e6b2..d49ac084a0f 100644 --- a/source/source_lcao/FORCE_STRESS.cpp +++ b/source/source_lcao/FORCE_STRESS.cpp @@ -1,4 +1,6 @@ #include "FORCE_STRESS.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/parallel_reduce.h" #include "source_lcao/module_dftu/dftu.h" //Quxin add for DFT+U on 20201029 diff --git a/source/source_lcao/FORCE_gamma.cpp b/source/source_lcao/FORCE_gamma.cpp index 379ceb29459..45e9b225ca2 100644 --- a/source/source_lcao/FORCE_gamma.cpp +++ b/source/source_lcao/FORCE_gamma.cpp @@ -1,4 +1,5 @@ #include "FORCE.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_base/memory_recorder.h" #include "source_base/parallel_reduce.h" #include "source_base/timer.h" diff --git a/source/source_lcao/FORCE_k.cpp b/source/source_lcao/FORCE_k.cpp index 475d8368884..56110f4d6f6 100644 --- a/source/source_lcao/FORCE_k.cpp +++ b/source/source_lcao/FORCE_k.cpp @@ -1,4 +1,5 @@ #include "FORCE.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_base/memory_recorder.h" #include "source_base/parallel_reduce.h" #include "source_base/timer.h" diff --git a/source/source_lcao/LCAO_set.cpp b/source/source_lcao/LCAO_set.cpp index 9f76ac2ba98..5af628aa229 100644 --- a/source/source_lcao/LCAO_set.cpp +++ b/source/source_lcao/LCAO_set.cpp @@ -1,4 +1,6 @@ #include "source_lcao/LCAO_set.h" +#include "source_estate/module_pot/potential_new.h" // new elecstate::Potential (was transitively via elecstate.h) +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_io/module_parameter/parameter.h" #include "source_psi/setup_psi.h" // use Setup_Psi #include "source_io/module_wf/read_wfc_nao.h" // use read_wfc_nao diff --git a/source/source_lcao/edm.cpp b/source/source_lcao/edm.cpp index eb48c0b9769..4c141a3117a 100644 --- a/source/source_lcao/edm.cpp +++ b/source/source_lcao/edm.cpp @@ -1,4 +1,5 @@ #include "FORCE.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_estate/module_dm/cal_dm_psi.h" #include "source_estate/elecstate_lcao.h" #include "source_base/memory_recorder.h" diff --git a/source/source_lcao/hamilt_lcao.cpp b/source/source_lcao/hamilt_lcao.cpp index f783155c0ca..5e14524c3cd 100644 --- a/source/source_lcao/hamilt_lcao.cpp +++ b/source/source_lcao/hamilt_lcao.cpp @@ -1,4 +1,5 @@ #include "source_lcao/hamilt_lcao.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_base/global_variable.h" #include "source_base/memory_recorder.h" diff --git a/source/source_lcao/module_deltaspin/init_sc.cpp b/source/source_lcao/module_deltaspin/init_sc.cpp index 73da9388ec2..6b00b115b09 100644 --- a/source/source_lcao/module_deltaspin/init_sc.cpp +++ b/source/source_lcao/module_deltaspin/init_sc.cpp @@ -1,4 +1,5 @@ #include "spin_constrain.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h /** * @file init_sc.cpp diff --git a/source/source_lcao/module_deltaspin/spin_constrain.cpp b/source/source_lcao/module_deltaspin/spin_constrain.cpp index a8c3c262445..7de03ea9479 100644 --- a/source/source_lcao/module_deltaspin/spin_constrain.cpp +++ b/source/source_lcao/module_deltaspin/spin_constrain.cpp @@ -1,4 +1,5 @@ #include "spin_constrain.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_base/formatter.h" #include "source_lcao/module_operator_lcao/dspin_lcao.h" diff --git a/source/source_lcao/module_deltaspin/spin_constrain.h b/source/source_lcao/module_deltaspin/spin_constrain.h index 320371e2ef8..1254c34d874 100644 --- a/source/source_lcao/module_deltaspin/spin_constrain.h +++ b/source/source_lcao/module_deltaspin/spin_constrain.h @@ -56,6 +56,11 @@ #include "source_estate/module_dm/density_matrix.h" // mohan add 2025-11-02 #endif +// Used only as a pointer member/param below; forward-declared instead of +// including pw_basis_k.h (own_fan=24). Was previously reachable transitively +// through elecstate.h's heavy includes. +namespace ModulePW { class PW_Basis_K; } + namespace spinconstrain { diff --git a/source/source_lcao/module_dftu/dftu_force.cpp b/source/source_lcao/module_dftu/dftu_force.cpp index a2b6ffca4bf..0f98a809b33 100644 --- a/source/source_lcao/module_dftu/dftu_force.cpp +++ b/source/source_lcao/module_dftu/dftu_force.cpp @@ -1,4 +1,6 @@ #include "source_io/module_parameter/parameter.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #ifdef __LCAO #include "dftu.h" diff --git a/source/source_lcao/module_lr/esolver_lrtd_lcao.cpp b/source/source_lcao/module_lr/esolver_lrtd_lcao.cpp index 64b7f19a4f2..3aa16d9f2db 100644 --- a/source/source_lcao/module_lr/esolver_lrtd_lcao.cpp +++ b/source/source_lcao/module_lr/esolver_lrtd_lcao.cpp @@ -1,4 +1,7 @@ #include "esolver_lrtd_lcao.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "utils/lr_util.h" #include "hamilt_casida.h" #include "hamilt_ulr.hpp" diff --git a/source/source_lcao/module_operator_lcao/dspin_lcao.cpp b/source/source_lcao/module_operator_lcao/dspin_lcao.cpp index a9428ea69f6..5c12a3a33fe 100644 --- a/source/source_lcao/module_operator_lcao/dspin_lcao.cpp +++ b/source/source_lcao/module_operator_lcao/dspin_lcao.cpp @@ -1,4 +1,5 @@ #include "dspin_lcao.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_lcao/module_deltaspin/spin_constrain.h" #include "source_base/timer.h" #include "source_base/memory_recorder.h" diff --git a/source/source_lcao/module_rdmft/rdmft.cpp b/source/source_lcao/module_rdmft/rdmft.cpp index d62a3ee3716..c375fb27c57 100644 --- a/source/source_lcao/module_rdmft/rdmft.cpp +++ b/source/source_lcao/module_rdmft/rdmft.cpp @@ -4,6 +4,8 @@ //========================================================== #include "rdmft.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_lcao/module_rdmft/rdmft_tools.h" #include "source_base/timer.h" #include "source_base/parallel_reduce.h" diff --git a/source/source_lcao/module_rdmft/rdmft_pot.cpp b/source/source_lcao/module_rdmft/rdmft_pot.cpp index 9c3d708fa16..c8ac2362e1f 100644 --- a/source/source_lcao/module_rdmft/rdmft_pot.cpp +++ b/source/source_lcao/module_rdmft/rdmft_pot.cpp @@ -4,6 +4,7 @@ //========================================================== #include "rdmft.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_lcao/module_rdmft/rdmft_tools.h" #include "source_psi/psi.h" #include "source_estate/module_dm/cal_dm_psi.h" diff --git a/source/source_lcao/module_rdmft/update_state_rdmft.cpp b/source/source_lcao/module_rdmft/update_state_rdmft.cpp index 4f22791cf9a..3241e6e1836 100644 --- a/source/source_lcao/module_rdmft/update_state_rdmft.cpp +++ b/source/source_lcao/module_rdmft/update_state_rdmft.cpp @@ -4,6 +4,10 @@ //========================================================== #include "rdmft.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: was transitively via elecstate.h #include "source_lcao/module_rdmft/rdmft_tools.h" #include "source_estate/module_dm/cal_dm_psi.h" #include "source_estate/module_dm/density_matrix.h" diff --git a/source/source_lcao/module_ri/Exx_LRI_interface.hpp b/source/source_lcao/module_ri/Exx_LRI_interface.hpp index 6a0c74aa091..d2d408e2335 100644 --- a/source/source_lcao/module_ri/Exx_LRI_interface.hpp +++ b/source/source_lcao/module_ri/Exx_LRI_interface.hpp @@ -1,6 +1,8 @@ #ifndef EXX_LRI_INTERFACE_HPP #define EXX_LRI_INTERFACE_HPP #include "source_io/module_parameter/parameter.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "Exx_LRI_interface.h" #include "source_lcao/module_ri/exx_abfs-jle.h" diff --git a/source/source_lcao/module_ri/RPA_LRI.hpp b/source/source_lcao/module_ri/RPA_LRI.hpp index 0323df970d0..d27dea43194 100644 --- a/source/source_lcao/module_ri/RPA_LRI.hpp +++ b/source/source_lcao/module_ri/RPA_LRI.hpp @@ -13,11 +13,14 @@ #include #include #include "source_lcao/module_ri/module_exx_symmetry/symmetry_rotation.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "RPA_LRI.h" #include "source_basis/module_ao/element_basis_index-ORB.h" #include "source_estate/elecstate_lcao.h" #include "source_io/module_parameter/parameter.h" +#include "source_psi/psi.h" // psi.get_nbasis() (no longer via elecstate.h) #if defined(__GLIBC__) #include diff --git a/source/source_lcao/module_ri/exx_lip.hpp b/source/source_lcao/module_ri/exx_lip.hpp index 2dfd54f96af..904887e2412 100644 --- a/source/source_lcao/module_ri/exx_lip.hpp +++ b/source/source_lcao/module_ri/exx_lip.hpp @@ -8,6 +8,7 @@ #define EXX_LIP_HPP #include "exx_lip.h" +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h #include "source_base/vector3.h" #include "source_base/global_function.h" #include "source_base/vector3.h" diff --git a/source/source_lcao/setup_dm.cpp b/source/source_lcao/setup_dm.cpp index edb774ea58a..de4fb252029 100644 --- a/source/source_lcao/setup_dm.cpp +++ b/source/source_lcao/setup_dm.cpp @@ -1,4 +1,5 @@ #include "source_lcao/setup_dm.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h #include "source_estate/cal_dm.h" #include "source_base/timer.h" #include "source_estate/module_dm/cal_dm_psi.h" diff --git a/source/source_main/driver_run.cpp b/source/source_main/driver_run.cpp index 4911b133de0..2c4c33a74a8 100644 --- a/source/source_main/driver_run.cpp +++ b/source/source_main/driver_run.cpp @@ -1,4 +1,5 @@ #include "source_main/driver.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_cell/check_atomic_stru.h" #include "source_cell/module_neighbor/sltk_atom_arrange.h" #include "source_relax/relax_driver.h" diff --git a/source/source_pw/module_ofdft/evolve_ofdft.cpp b/source/source_pw/module_ofdft/evolve_ofdft.cpp index 7f276781ddb..0d5ef72ed1d 100644 --- a/source/source_pw/module_ofdft/evolve_ofdft.cpp +++ b/source/source_pw/module_ofdft/evolve_ofdft.cpp @@ -1,4 +1,5 @@ #include "evolve_ofdft.h" +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_io/module_parameter/parameter.h" #include diff --git a/source/source_pw/module_ofdft/of_stress_pw.cpp b/source/source_pw/module_ofdft/of_stress_pw.cpp index a481057507b..edb51602d7d 100644 --- a/source/source_pw/module_ofdft/of_stress_pw.cpp +++ b/source/source_pw/module_ofdft/of_stress_pw.cpp @@ -1,4 +1,5 @@ #include "of_stress_pw.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/timer.h" #include "source_hamilt/module_vdw/vdw.h" diff --git a/source/source_pw/module_pwdft/elecond.cpp b/source/source_pw/module_pwdft/elecond.cpp index a362a3088a9..38d0374b63c 100644 --- a/source/source_pw/module_pwdft/elecond.cpp +++ b/source/source_pw/module_pwdft/elecond.cpp @@ -1,4 +1,5 @@ #include "elecond.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/global_function.h" #include "source_base/global_variable.h" diff --git a/source/source_pw/module_pwdft/exx_helper.cpp b/source/source_pw/module_pwdft/exx_helper.cpp index fa80a7ff102..a014ac0ee75 100644 --- a/source/source_pw/module_pwdft/exx_helper.cpp +++ b/source/source_pw/module_pwdft/exx_helper.cpp @@ -1,4 +1,5 @@ #include "exx_helper.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_io/module_parameter/parameter.h" // use PARAM #include "source_hamilt/module_xc/exx_info.h" // use GlobalC::exx_info #include "source_hamilt/module_xc/xc_functional.h" // use XC_Functional diff --git a/source/source_pw/module_pwdft/forces.cpp b/source/source_pw/module_pwdft/forces.cpp index 2f2e1ea3a86..2903363c6e9 100644 --- a/source/source_pw/module_pwdft/forces.cpp +++ b/source/source_pw/module_pwdft/forces.cpp @@ -1,4 +1,7 @@ #include "forces.h" +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_base/global_variable.h" #include "source_base/parallel_reduce.h" diff --git a/source/source_pw/module_pwdft/forces.h b/source/source_pw/module_pwdft/forces.h index b71e9c6a385..378cf59de27 100644 --- a/source/source_pw/module_pwdft/forces.h +++ b/source/source_pw/module_pwdft/forces.h @@ -15,6 +15,7 @@ #include "source_lcao/module_dftu/dftu.h" // mohan add 2025-11-06 class pseudopot_cell_vnl; +class surchem; // used only as a reference param below (was transitively via elecstate.h) template class Forces diff --git a/source/source_pw/module_pwdft/forces_cc.cpp b/source/source_pw/module_pwdft/forces_cc.cpp index 41322e62e55..ce6e41f8323 100644 --- a/source/source_pw/module_pwdft/forces_cc.cpp +++ b/source/source_pw/module_pwdft/forces_cc.cpp @@ -1,4 +1,6 @@ #include "forces.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h #include "stress_func.h" #include "source_base/parallel_reduce.h" #include "source_io/module_parameter/parameter.h" diff --git a/source/source_pw/module_pwdft/forces_scc.cpp b/source/source_pw/module_pwdft/forces_scc.cpp index 3d454cf9a09..961cb608d11 100644 --- a/source/source_pw/module_pwdft/forces_scc.cpp +++ b/source/source_pw/module_pwdft/forces_scc.cpp @@ -1,4 +1,6 @@ #include "forces.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h #include "source_base/parallel_reduce.h" #include "source_io/module_output/output_log.h" #include "stress_func.h" diff --git a/source/source_pw/module_pwdft/forces_us.cpp b/source/source_pw/module_pwdft/forces_us.cpp index ea2efeb50a2..4fe6056b9d2 100644 --- a/source/source_pw/module_pwdft/forces_us.cpp +++ b/source/source_pw/module_pwdft/forces_us.cpp @@ -1,4 +1,7 @@ #include "forces.h" +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_base/parallel_reduce.h" #include "source_pw/module_pwdft/vnl_pw.h" #include "source_base/libm/libm.h" diff --git a/source/source_pw/module_pwdft/hamilt_pw.cpp b/source/source_pw/module_pwdft/hamilt_pw.cpp index 47fae9bcb96..3591b4b3b33 100644 --- a/source/source_pw/module_pwdft/hamilt_pw.cpp +++ b/source/source_pw/module_pwdft/hamilt_pw.cpp @@ -1,4 +1,5 @@ #include "hamilt_pw.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "op_pw_ekin.h" #include "op_pw_exx.h" diff --git a/source/source_pw/module_pwdft/onsite_proj.cpp b/source/source_pw/module_pwdft/onsite_proj.cpp index d4af4a7c2ff..fea6c3f3936 100644 --- a/source/source_pw/module_pwdft/onsite_proj.cpp +++ b/source/source_pw/module_pwdft/onsite_proj.cpp @@ -5,6 +5,8 @@ #include #include #include "source_pw/module_pwdft/onsite_proj.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_pw/module_pwdft/onsite_proj_print.h" #include "source_lcao/module_dftu/dftu.h" #include "source_lcao/module_deltaspin/spin_constrain.h" diff --git a/source/source_pw/module_pwdft/op_pw_proj.cpp b/source/source_pw/module_pwdft/op_pw_proj.cpp index 5294a2b7de6..4b622405752 100644 --- a/source/source_pw/module_pwdft/op_pw_proj.cpp +++ b/source/source_pw/module_pwdft/op_pw_proj.cpp @@ -1,4 +1,5 @@ #include "op_pw_proj.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/timer.h" #include "source_base/parallel_reduce.h" diff --git a/source/source_pw/module_pwdft/setup_pot.cpp b/source/source_pw/module_pwdft/setup_pot.cpp index e6a5603546c..fd3c0db9af8 100644 --- a/source/source_pw/module_pwdft/setup_pot.cpp +++ b/source/source_pw/module_pwdft/setup_pot.cpp @@ -1,4 +1,7 @@ #include "source_pw/module_pwdft/setup_pot.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_estate/module_charge/symmetry_rho.h" #include "source_lcao/module_deltaspin/spin_constrain.h" diff --git a/source/source_pw/module_pwdft/stress_exx.cpp b/source/source_pw/module_pwdft/stress_exx.cpp index 29900f92f67..6b00dd9e6e1 100644 --- a/source/source_pw/module_pwdft/stress_exx.cpp +++ b/source/source_pw/module_pwdft/stress_exx.cpp @@ -1,4 +1,6 @@ #include "source_hamilt/module_xc/exx_info.h" +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "op_pw_exx.h" #include "source_base/parallel_common.h" #include "source_base/parallel_reduce.h" diff --git a/source/source_pw/module_pwdft/stress_pw.cpp b/source/source_pw/module_pwdft/stress_pw.cpp index d511361a147..46545804b71 100644 --- a/source/source_pw/module_pwdft/stress_pw.cpp +++ b/source/source_pw/module_pwdft/stress_pw.cpp @@ -1,4 +1,6 @@ #include "stress_pw.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_base/timer.h" #include "source_base/global_variable.h" // use GlobalC diff --git a/source/source_pw/module_pwdft/stress_us.cpp b/source/source_pw/module_pwdft/stress_us.cpp index 82a0f16eb73..b195f9785cd 100644 --- a/source/source_pw/module_pwdft/stress_us.cpp +++ b/source/source_pw/module_pwdft/stress_us.cpp @@ -1,4 +1,7 @@ #include "source_base/libm/libm.h" +#include "source_basis/module_pw/pw_basis.h" // IWYU: was transitively via elecstate.h +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: elecstate.h no longer provides this transitively #include "source_base/parallel_reduce.h" #include "source_io/module_parameter/parameter.h" #include "source_base/math_polyint.h" diff --git a/source/source_pw/module_stodft/sto_forces.cpp b/source/source_pw/module_stodft/sto_forces.cpp index e092b8f9327..d79542c6a4f 100644 --- a/source/source_pw/module_stodft/sto_forces.cpp +++ b/source/source_pw/module_stodft/sto_forces.cpp @@ -1,4 +1,5 @@ #include "sto_forces.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/mathzone.h" #include "source_cell/module_symmetry/symmetry.h" diff --git a/source/source_pw/module_stodft/sto_iter.cpp b/source/source_pw/module_stodft/sto_iter.cpp index a46de4cc153..05914f05ce1 100644 --- a/source/source_pw/module_stodft/sto_iter.cpp +++ b/source/source_pw/module_stodft/sto_iter.cpp @@ -1,4 +1,6 @@ #include "sto_iter.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_charge/charge.h" // IWYU: was transitively via elecstate.h #include "source_base/kernels/math_kernel_op.h" #include "source_base/para_gemm.h" diff --git a/source/source_pw/module_stodft/sto_stress_pw.cpp b/source/source_pw/module_stodft/sto_stress_pw.cpp index de0dd9279de..1ac805acc8a 100644 --- a/source/source_pw/module_stodft/sto_stress_pw.cpp +++ b/source/source_pw/module_stodft/sto_stress_pw.cpp @@ -1,4 +1,5 @@ #include "sto_stress_pw.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/parallel_reduce.h" #include "source_base/timer.h" diff --git a/source/source_pw/module_stodft/test/test_hamilt_sto.cpp b/source/source_pw/module_stodft/test/test_hamilt_sto.cpp index a1937caf056..1cca0a96f05 100644 --- a/source/source_pw/module_stodft/test/test_hamilt_sto.cpp +++ b/source/source_pw/module_stodft/test/test_hamilt_sto.cpp @@ -1,4 +1,6 @@ #include "../hamilt_sdft_pw.h" +#include "source_cell/klist.h" // IWYU: was transitively via elecstate.h +#include "source_estate/module_pot/potential_new.h" // IWYU: was transitively via elecstate.h #include "source_hamilt/operator.h" #include "gtest/gtest.h" diff --git a/source/source_relax/ions_move_lbfgs.cpp b/source/source_relax/ions_move_lbfgs.cpp index 339fad9baf2..89748ac73c3 100644 --- a/source/source_relax/ions_move_lbfgs.cpp +++ b/source/source_relax/ions_move_lbfgs.cpp @@ -1,4 +1,5 @@ #include "ions_move_lbfgs.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "matrix_methods.h" #include "source_io/module_parameter/parameter.h" #include "ions_move_basic.h" diff --git a/source/source_relax/relax_driver.cpp b/source/source_relax/relax_driver.cpp index 26128bf0408..4b522a47f51 100644 --- a/source/source_relax/relax_driver.cpp +++ b/source/source_relax/relax_driver.cpp @@ -1,4 +1,5 @@ #include "relax_driver.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/global_file.h" #include "source_io/module_output/cif_io.h" #include "source_io/module_json/output_info.h" diff --git a/source/source_relax/relax_nsync.cpp b/source/source_relax/relax_nsync.cpp index 7134cb6567a..9b838386e57 100644 --- a/source/source_relax/relax_nsync.cpp +++ b/source/source_relax/relax_nsync.cpp @@ -1,4 +1,5 @@ #include "relax_nsync.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "source_base/global_function.h" #include "source_base/global_variable.h" #include "source_io/module_parameter/parameter.h" diff --git a/source/source_relax/test/ions_move_methods_test.cpp b/source/source_relax/test/ions_move_methods_test.cpp index 514a2cb8008..bf9aabcca1b 100644 --- a/source/source_relax/test/ions_move_methods_test.cpp +++ b/source/source_relax/test/ions_move_methods_test.cpp @@ -1,4 +1,5 @@ #include "for_test.h" +#include "source_cell/unitcell.h" // IWYU: was transitively via elecstate.h #include "gmock/gmock.h" #include "gtest/gtest.h" #define private public