feat: add restricted rVV10 plane-wave support - #8031
Draft
CleverPhysician wants to merge 7 commits into
Draft
CleverPhysician wants to merge 7 commits into
CleverPhysician wants to merge 7 commits into
Conversation
|
From the first glance I am 👎 at how it's handled:
|
CleverPhysician
force-pushed
the
feature/rvv10-pw-restricted
branch
2 times, most recently
from
September 26, 2026 13:23
2fe137c to
eda7816
Compare
added 6 commits
September 26, 2026 22:08
CleverPhysician
force-pushed
the
feature/rvv10-pw-restricted
branch
from
September 26, 2026 14:25
eda7816 to
00792ab
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked Issue
What's changed?
This PR adds an ABACUS-native rVV10 nonlocal-correlation component for the CPU/double/full-complex plane-wave Kohn–Sham SCF path.
dft_functionalselects the semilocal XC term;xc_nonlocal=rvv10registers an independent additivePotRvv10component.rvv10_bandrvv10_care validated input parameters and are passed explicitly throughsetup_estate_pw -> Potential -> PotRvv10.b=6.3,C=0.0093reproduces the initial RPW86+PBE parameterization.PW_BasisFFTs,XC_Functional::grad_rho/grad_dot, charge layouts and pool reductions are reused; QE is used only as a numerical reference.nspin=1/2are supported. Fornspin=2, rVV10 uses the total valence-plus-core density and adds the same scalar nonlocal potential to both spin channels.Scope
Supported in this Draft: CPU, double precision, full-complex PW, norm-conserving pseudopotentials, SCF, serial or MPI pool distribution, and
nspin=1/2.Explicitly deferred: GPU, LCAO, USPP/PAW, gamma-only/reduced-gamma layouts, noncollinear
nspin=4, forces, stress, relaxation/MD, and simultaneous pairwise D2/D3/D4 corrections. A pre-generated universal kernel table and additional functional-specific parameter sets are follow-up work; the current fixed table is generated once per rVV10 component and validated against the pinned numerical convention.Unit Tests and/or Case Tests for my changes
Local checks completed after rebasing onto
origin/develop1202e6f:python3 -m unittest discover -s tests/rvv10 -p 'test_*.py'— 16/16 passed.clang++ -std=c++11 -fsyntax-onlypassed for the modified input parser and rVV10 core evaluator.git diff --checkpassed.agent_governance_check.py --base origin/develop --head HEADreports no errors; only allowed header-dependency review warnings remain.nspin=1/2SCF modes, invalid-parameter checks, PBE+rVV10 parser acceptance, vdW/VV10 double-counting rejection, and no-Libxc refusal.Hosted C++/SCF CI is still required for the full FFT/Libxc/MPI build. This PR remains Draft until the hosted CI and QE/ABACUS energy, potential, spin and MPI comparisons are reviewed by the maintainer.