-
Notifications
You must be signed in to change notification settings - Fork 153
Description
Background
Currently, ABACUS supports DP, allowing direct comparisons between AIMD and DPMD simulations. As NEP is also becoming popular, a similar integration would be beneficial.
I observed that radial distribution functions (RDFs) calculated from an ABACUS AIMD simulation and a NEP+GPUMD simulation didn't match when using identical initial structure and simulation parameters (see figure below). I suspect this is due to different implementations of the MD algorithm between ABACUS and GPUMD.
Note: solid blue line = AIMD in ABACUS; dashed orange line = NEP in GPUMD
To address this, I have implemented the NEP interface based on the develop branch, which enables ABACUS to run MD using NEP models. With this interface, the RDF shows good agreement with the AIMD result (see figure below)
Note: solid blue line = AIMD in ABACUS; dashed orange line = NEP in ABACUS
Describe the solution you'd like
I want to contribute this feature to the official repository. This interface only depends on nep_cpu, which is a lightweight C++ library. I also plan to integrate it into the toolchain for easy installation.
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.