-
Notifications
You must be signed in to change notification settings - Fork 145
Description
Background
To enable the integration of ABACUS with HamGNN (an E(3) equivariant graph neural network designed to train and predict ab initio TB Hamiltonians for molecules and solids, developed at Fudan University, the author is Yang Zhong with his email as yzhong@fudan.edu.cn), especially under the consideration of SOC, it would be beneficial if ABACUS could output the initial guess Hamiltonian (or zeroth-order Hamiltonian) during the LCAO self-consistent calculation.
Describe the solution you'd like
For instance, the output files could be named data-H0R-sparse_SPIN0.csr and data-S0R-sparse_SPIN0.csr. Additionally, we would like to request the output of the angular momentum matrix during SOC calculations, which could be named data-LR-sparse_SPIN0.CSR. These files can be effectively utilized in the HamGNN package for training TB Hamiltonians.
In fact, the author of HamGNN has already provided preliminary support for ABACUS non-SOC data (one can find the supported scripts in the HamGNN directory, like "HamGNN-main/utils_abacus/"); however, we earnestly request that ABACUS offer comprehensive support for HamGNN.
It is worth emphasizing that the HamGNN developer has developed the functionality to output H0R and S0R based on ABACUS-3.5.3 (source code available at "HamGNN-main/utils_abacus/abacus_H0_export/abacus-postprocess-v353"). However, this is not enough to achieve the training requirements under SOC, and hamGNN must use angular momentum matrices when considering SOC.
Task list only for developers
- Notice possible changes of behavior
- Explain the changes of codes in core modules of ESolver, HSolver, ElecState, Hamilt, Operator or Psi
Notice Possible Changes of Behavior (Reminder only for developers)
No response
Notice any changes of core modules (Reminder only for developers)
No response
Notice Possible Changes of Core Modules (Reminder only for developers)
No response
Additional Context
No response
Task list for Issue attackers (only for developers)
- Review and understand the proposed feature and its importance.
- Research on the existing solutions and relevant research articles/resources.
- Discuss with the team to evaluate the feasibility of implementing the feature.
- Create a design document outlining the proposed solution and implementation details.
- Get feedback from the team on the design document.
- Develop the feature following the agreed design.
- Write unit tests and integration tests for the feature.
- Update the documentation to include the new feature.
- Perform code review and address any issues.
- Merge the feature into the main branch.
- Monitor for any issues or bugs reported by users after the feature is released.
- Address any issues or bugs reported by users and continuously improve the feature.