Skip to content

Add PPCG diagonalization method with Polak-Ribiere conjugate gradient#7434

Open
DAVID68666 wants to merge 2 commits into
deepmodeling:developfrom
DAVID68666:feature/ppcg-diago
Open

Add PPCG diagonalization method with Polak-Ribiere conjugate gradient#7434
DAVID68666 wants to merge 2 commits into
deepmodeling:developfrom
DAVID68666:feature/ppcg-diago

Conversation

@DAVID68666

@DAVID68666 DAVID68666 commented Jun 5, 2026

Copy link
Copy Markdown

Summary

Add PPCG (Projected Preconditioned Conjugate Gradient) diagonalization method to hsolver module.

Changes

  • diago_ppcg.h — PPCG class declaration with Polak-Ribiere beta mixing
  • diago_ppcg.cpp — PPCG implementation: preconditioned conjugate gradient with explicit projection, Cholesky orthonormalization, and line minimization
  • source_hsolver/CMakeLists.txt — Register diago_ppcg.cpp in build

PPCG vs BPCG

Aspect BPCG PPCG
Beta formula Fletcher-Reeves Polak-Ribiere (projection-corrected)
Extra state beta z_old, beta_denom per band
Projection Implicit Explicit per iteration

Test plan

  • PPCG compiles on CPU and GPU
  • Eigenvalue convergence matches LAPACK reference
  • CI pipeline passes

@DAVID68666 DAVID68666 force-pushed the feature/ppcg-diago branch from df29942 to cabbb9a Compare June 5, 2026 12:26
Comment thread source/source_pw/module_stodft/sto_wf.cpp
@DAVID68666

DAVID68666 commented Jun 5, 2026 via email

Copy link
Copy Markdown
Author

Add Projected Preconditioned Conjugate Gradient (PPCG) method using
Polak-Ribiere beta formula for conjugate direction mixing, with
explicit projection to maintain orthogonality against eigenvectors.
@DAVID68666 DAVID68666 force-pushed the feature/ppcg-diago branch from d3ee893 to a4fd4ea Compare June 5, 2026 13:13
@mohanchen mohanchen added project_learning Diago Issues related to diagonalizaiton methods labels Jun 5, 2026
@mohanchen

Copy link
Copy Markdown
Collaborator

keep going and try to make sure the implementation of PPCG is correct, that's an important first step.

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

Labels

Diago Issues related to diagonalizaiton methods project_learning

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants