Skip to content

feat(rpa): modularize RPA and extend LibRPA exports - #8050

Open
AroundPeking wants to merge 334 commits into
deepmodeling:developfrom
AroundPeking:master_ghj
Open

AroundPeking wants to merge 334 commits into
deepmodeling:developfrom
AroundPeking:master_ghj

Conversation

@AroundPeking

Copy link
Copy Markdown

Summary

This PR consolidates the RPA-related work into dedicated modules while preserving the existing EXX workflow.

RPA and Delta-Sternheimer

  • Separate RPA, LibRPA I/O, and Delta-Sternheimer implementation paths from the EXX code path.
  • Add a modular module_rpa layout with dedicated Delta-Sternheimer and LibRPA I/O components.
  • Add molecular and periodic Delta-Sternheimer response generation, including response-grid, finite-difference, auxiliary-basis, channel-parallel, and MPI handling.
  • Write periodic Delta-Sternheimer response files consistently below the configured RPA output directory.
  • Add auxiliary-basis preorthogonalization and conditioning support for RPA response construction.
  • Keep GreenX/minimax integration optional through an external dependency interface rather than vendoring the dependency into ABACUS.

LibRPA Interface

  • Extend reader-v1 export of Coulomb, response, LRI, auxiliary-basis shrink, band, exchange-correlation potential, and LCAO wavefunction data.
  • Use the current output naming and directory layout expected by the updated LibRPA reader.
  • Add MPI-safe output for KS eigenvectors and related LCAO producer data.
  • Export spatial and spin-symmetry metadata through stru_out; LibRPA reconstructs symmetry operations from this file without legacy symrot_* sidecars.
  • Support nonmagnetic, collinear spin-polarized, SOC, and SOC magnetic-symmetry producer paths.

2D and Symmetry Support

  • Add strict-2D Coulomb and analytic head/wing export support for RPA and GW workflows.
  • Extend symmetry-aware RPA/GW producer output, including shrink and spin-resolved data paths.
  • Preserve the existing EXX behavior while making RPA-specific functionality independently maintainable.

Regression Coverage

  • Add independent ABACUS producer checks for ordinary RPA, 2D RPA/GW, SOC, SOC magnetic symmetry, nspin = 2, and Delta-Sternheimer.
  • Check stable LibRPA-consumed artifacts including stru_out, Coulomb, response, LRI, shrink, band, and potential outputs.
  • Keep the existing BSE and other regression cases unchanged.

@AroundPeking
AroundPeking force-pushed the master_ghj branch 4 times, most recently from 67938b0 to cb52274 Compare September 30, 2026 00:46
@mohanchen mohanchen added Features Needed The features are indeed needed, and developers should have sophisticated knowledge Refactor Refactor ABACUS codes Input&Output Suitable for coders without knowing too many DFT details Tests/Examples Issues/PR related to unit tests and integrate tests labels Sep 30, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Features Needed The features are indeed needed, and developers should have sophisticated knowledge Input&Output Suitable for coders without knowing too many DFT details Refactor Refactor ABACUS codes Tests/Examples Issues/PR related to unit tests and integrate tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants