Background
Currently, ABACUS only supports multi-k point calculation of band-decomposed charge density under PW basis, while under LCAO basis the calculation can be carried out only when gamma_only is set to be true. It is necessary to support calculation of multi-k point charge density under LCAO basis when INPUT keyword is set as calculation = get_pchg.
Describe the solution you'd like
Changes of INPUT keywords:
- Delete INPUT keyword
nbands_istate.
- Add a new INPUT parameter
bands_to_print(similar to ocp_set), which enables users to choose which band to calculate.
- Add a new INPUT boolean parameter
out_all_kpt, which enables users to choose whether to calculate all k-points or gamma point only.
Possible changes of source code: source/module_io/istate_charge.cpp. Currently the calculation of density matrix under LCAO basis set is still using old-fashioned data structure. We plan to rewrite these codes with new density matrix using HContainer (see source/module_elecstate/module_dm/density_matrix.cpp).
Task list only for developers
Notice Possible Changes of Behavior (Reminder only for developers)
No response
Notice any changes of core modules (Reminder only for developers)
Only source code in module_io will be changed. See solution description.
Notice Possible Changes of Core Modules (Reminder only for developers)
No response
Additional Context
For a more detailed description (formulae etc.), see Feishu doc https://xmywuqhxb0.feishu.cn/docx/FBHldIvHxoP99axSZeLcHIenntg. One can ask @AsTonyshment for access permission.
Task list for Issue attackers (only for developers)
Background
Currently, ABACUS only supports multi-k point calculation of band-decomposed charge density under PW basis, while under LCAO basis the calculation can be carried out only when
gamma_onlyis set to be true. It is necessary to support calculation of multi-k point charge density under LCAO basis when INPUT keyword is set ascalculation = get_pchg.Describe the solution you'd like
Changes of INPUT keywords:
nbands_istate.bands_to_print(similar toocp_set), which enables users to choose which band to calculate.out_all_kpt, which enables users to choose whether to calculate all k-points or gamma point only.Possible changes of source code:
source/module_io/istate_charge.cpp. Currently the calculation of density matrix under LCAO basis set is still using old-fashioned data structure. We plan to rewrite these codes with new density matrix using HContainer (seesource/module_elecstate/module_dm/density_matrix.cpp).Task list only for developers
Notice Possible Changes of Behavior (Reminder only for developers)
No response
Notice any changes of core modules (Reminder only for developers)
Only source code in
module_iowill be changed. See solution description.Notice Possible Changes of Core Modules (Reminder only for developers)
No response
Additional Context
For a more detailed description (formulae etc.), see Feishu doc https://xmywuqhxb0.feishu.cn/docx/FBHldIvHxoP99axSZeLcHIenntg. One can ask @AsTonyshment for access permission.
Task list for Issue attackers (only for developers)