Skip to content

feat(functional-learning): differentiable training pipeline + constrained-Fx ansatz (Stage A) - #296

Draft
wladerer wants to merge 6 commits into
mainfrom
worktree-learned-functional
Draft

feat(functional-learning): differentiable training pipeline + constrained-Fx ansatz (Stage A)#296
wladerer wants to merge 6 commits into
mainfrom
worktree-learned-functional

Conversation

@wladerer

Copy link
Copy Markdown
Owner

A differentiable functional-learning pipeline for solids, an honest Stage-A
result, and the constrained-F_x ansatz for the symbolic-regression follow-on.
Draft / research artifact — see the candid "Novelty & value" section in the
design doc: parametric = worse-PBEsol; the defensible gap is constrained-SR +
differentiable-DFT + solids; the value is methodological, not "beat SCAN."

What's here

  • docs/design/learned-functional.md — scope, citable ground-truth data (ZPAE
    lattice constants; QMC held-out), the SR-layer plan, exact constraints, and the
    honest value assessment.
  • benchmarks/functional_learning/train_fx.py — pressure-at-V_exp loss, dE/dθ
    free at convergence (energy_param_grads), train/held-out split.
  • core/xc/constrained_fx.py + tests — ConstrainedFx: PBE-skeleton exchange with
    a constraint-preserving s⁴ knob; UEG limit + Lieb-Oxford bound hold BY
    CONSTRUCTION (5/5 tests). The searchable object the SR layer generalizes.

Result (Stage A, measured)

The loop rediscovers PBEsol (μ→0.13, train MAE 2.18%→0.65%) but does not
generalize
: held-out Ge worsens (+2.66%→+3.19%), confirmed real at converged
k-points
. The parametric GGA ceiling is real — generalization needs the richer
constrained form → meta-GGA τ. The pipeline caught the non-transferability via the
held-out set, validating the methodology.

🤖 Generated with Claude Code

wladerer and others added 6 commits August 14, 2026 11:35
…trained F_x

Learn LearnableX (κ,μ) against EXPERIMENTAL solid lattice constants via the
pressure-at-V_exp loss; dE/dθ free at convergence (energy_param_grads). Held-out
elements are the generalization test. PBE/PBEsol are baselines, not targets.
Prototype: reduced cutoffs, provisional experimental V0 (replace with Hao 2012).
…cted values

Experimental lattice constants a0 [Å] (0 K static-lattice, ZPAE-removed) from
Peng/Yang/Perdew/Sun PRX 6, 041005 (2016) via Mejía-Rodríguez & Trickey PRB 98,
115161 (2018) Table III. Lattice constants are the best-covered solid-state
ground truth (~55 solids, cross-validated); cohesive energies are a noisier
second channel; the ~13 QMC solids (Shulenburger PRB 88, 245117) are held-out.
- docs/design/learned-functional.md: scope, data (citable ZPAE targets, coverage
  ranking, QMC held-out), the SR-layer plan, and a candid Novelty & Value section
  (parametric = worse-PBEsol; the defensible gap is constrained-SR + differentiable-
  DFT + solids; realistic ceiling is a machine-discovered SCAN-class functional, not
  beating SCAN — the value is methodological).
- core/xc/constrained_fx.py: ConstrainedFx — PBE-skeleton exchange with a learnable,
  constraint-preserving s⁴ knob (κ,μ,c₂). UEG limit and Lieb-Oxford bound hold BY
  CONSTRUCTION for any (κ>0,μ>0,c₂≥0); c₂=0 reduces to PBE. The searchable object the
  SR layer generalizes, fit through the differentiable SCF.
- test_constrained_fx.py: verifies PBE-reduction + the exact-constraint guardrails.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…transferability

Pipeline validated: fitting μ vs experimental lattice constants rediscovers the
PBEsol regime (μ→0.13, train MAE 2.18%→0.65%) but does NOT generalize — held-out
Ge worsens (+2.66%→+3.19%), confirmed real at converged kmesh 10 (not noise).
The parametric GGA ceiling is real; generalization needs the constrained richer
form → meta-GGA τ.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant