forked from abacusmodeling/abacus-develop
-
Notifications
You must be signed in to change notification settings - Fork 145
Open
Labels
Feature DiscussedThe features will be discussed first but will not be implemented soonThe features will be discussed first but will not be implemented soonMachine LearningIssues related to the DeePKSIssues related to the DeePKS
Description
Background
With the rise of AI-driven DFT (AI-DFT) models, there is a growing need to integrate their outputs with traditional DFT software. Our models can generate electron density matrices in the Compressed Sparse Row (CSR) format for given atomic structures.
We believe that enabling ABACUS to utilize these pre-computed density matrices is crucial for two main reasons:
- Accelerating SCF Calculations: Using an AI-generated density matrix as a high-quality initial guess can significantly reduce the number of self-consistent field (SCF) iterations, leading to substantial performance gains. We need this feature to benchmark the acceleration ratio.
- Downstream Applications: The real-space electron density is required for various post-processing tasks, such as simulating electron microscopy (EM) images. Converting the CSR density matrix to a real-space grid is a necessary step for these analyses.
Describe the solution you'd like
We would like to request the implementation of functionalities or APIs to handle user-provided density matrices in CSR format. Specifically, we are looking for two capabilities:
- Restarting an SCF calculation from a CSR file: An option (e.g., an input parameter) to load a density matrix from a CSR file to use as the starting point for an SCF calculation. This would allow us to perform continuation calculations based on the AI model's prediction.
- Converting a CSR file to a real-space density grid: A tool or an API function that takes a density matrix CSR file (along with the corresponding structure/basis information) and outputs the electron density on a 3D real-space grid (e.g., in a .cube or similar format).
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.
Metadata
Metadata
Assignees
Labels
Feature DiscussedThe features will be discussed first but will not be implemented soonThe features will be discussed first but will not be implemented soonMachine LearningIssues related to the DeePKSIssues related to the DeePKS