Experimental chi translation local MP2¶
vibeqc.periodic.chi.local_mp2.run_chi_local_mp2 connects an admitted
classic physical-pair RI RHF ChiHFReference to the shared translation-aware
local-MP2 engine. This is an explicit experimental library route. Chi remains
experimental and D93 fitted/post-HF remains not-qualified. Source tests do not
establish scientific acceptance, production threshold accuracy or scaling.
Reference and usage¶
Prepare a reference with prepare_chi_hf_reference using the explicit controls
in the fitted-support guide, or restore an accepted
classic RHF archive as described in restart. The source must
be a neutral three-dimensional singlet, use full Coulomb RI with unscreened
physical pairs, and carry a complete uniform unshifted character mesh, tight
stationarity, integer gapped occupations and its original physical input
binding. The adapter never reruns SCF, refits factors or changes supports.
This extends the D6-D7 block routes with sealed physical-pair
transport. It reuses the same CorrelationSource, CyclicAOOperator,
TranslationHomeFactors, selection, PAO/PNO and iterative solver interfaces.
Per-character frozen and active projectors are preserved without introducing
D6’s global energy sorting or its full virtual-orbital payload.
from vibeqc.periodic.chi.local_mp2 import run_chi_local_mp2
result = run_chi_local_mp2(
reference, frozen_core=0,
tcut_mkn=0.0, tcut_pno=0.0,
max_iter=250, conv_tol_energy=1e-13, conv_tol_residual=1e-11,
damping=1.0, max_transport_bytes=256 * 1024**2,
output=output_dir / "local-mp2",
)
raw = result.raw_e_corr_per_cell
pno_estimate = result.pno_correction_per_cell
converged = result.converged
output writes .out, .system, .bibtex and .references through
vibeqc.output. Without a stem, active text/structured output channels receive
the same result. The manifest records the retained factor source, consumed
reference and adapter identities, runtime, actual overlap/Fock/factor
transform audits, electron counts, domain and PNO settings, selected spaces,
solver controls, convergence and method convention. chi_correlation_record
provides the same structured payload to other output consumers.
frozen_core counts lowest explicit occupied spatial orbitals per character.
The adapter preserves the frozen and active projectors separately and orders
all frozen columns first in the shared source. The engine receives the total
torus frozen count, prod(mesh) * frozen_core. Scalar ECP references retain
their executed ECP identity, full metadata and distinct physical, ECP-removed,
explicit, frozen-explicit and correlated electron counts. ECP cores are already
absent. This interface does not claim ECP acceptance or close #530.
UHF, ROHF, SR, KS/hybrid, reduced or shifted meshes, symmetry-reduced references,
fractional occupations, metallic gaps, overlap-truncated AO spaces, charged
cells and lower dimensions refuse. An old ChiAcceptedReference or historical
torus Hamiltonian cannot substitute for this sealed physical-pair reference.
Accepted HF restart is reusable; local-MP2 amplitude restart is not implemented.
Exact finite-source transport¶
The overlap and Fock home-row blocks are computed directly as
All displacements remain. The adapter supplies CyclicAOOperator objects and
checks reality, cyclic symmetry, positive overlap symbols and forward recovery
of every original Bloch matrix. It does not build square supercell AO overlap
or Fock matrices. The actual SCF Fock, including its BvK exchange zero-mode
term, enters the amplitude equations unchanged. The retained Coulomb factors
supply occupied-virtual numerators; the overlap-only zero-mode constant has
zero occupied-virtual matrix elements. Canonical comparisons must keep the
same SCF Fock, equivalent to keep_exxdiv=True in references that expose that
choice. No historical torus source or finite-size correction is substituted.
Complex Bloch orbitals are admitted only through a verified real-space
transformation. With unitary Fourier-folded occupied coefficients Z, the real
span [Re Z, Im Z] must have exactly the original occupied rank and unit
nonzero metric-Gram eigenvalues. The constructed real frame must reproduce
the original complex metric projector, checked in AO row blocks. Active
and frozen spaces are checked independently, including at self-inverse
characters. Arbitrary orbital phases are allowed; a complex projector is not.
The existing native home-auxiliary factor transform is reused. It must produce
real symmetric factors, and a forward transform must reproduce every
retained complex AO factor block within 1e-10 absolute tolerance. This checks
the full canonical auxiliary frame, including its null space, without refitting
or changing retained ranks. Incompatible auxiliary gauges refuse. Small
floating-point imaginary/symmetry residuals are measured and recorded; a
significant imaginary component is never discarded.
These transformations follow Nejad et al. (2025), Sec. II, Eqs. (2)-(6), doi:10.1063/5.0290816. The existing shared engine uses its projector/Lowdin occupied frames and Mulliken atom domains, not the paper’s optimized Wannier/OSV/local-fitting procedure. Its occupied coupling residual follows Sec. V, Eqs. (42)-(44). PNO densities and cross-pair metric transport retain Riplinger and Neese (2013), Sec. II B3, Eqs. (23)-(25), and II C, Eq. (30), doi:10.1063/1.4773581. The D1-D5 design explains their density normalization differences and even-mesh pair multiplicities.
Approximations, convergence and memory¶
tcut_mkn and tcut_pno are independent. Zero means full AO domains and no
PNO truncation. Positive domain cutoffs use absolute Mulliken populations;
positive PNO cutoffs use the shared pno_norm="mp2" density. lindep and
seed_lindep retain the shared PAO rank and occupied seed conditioning controls.
For a canonical-limit comparison, also verify that each full-domain PAO rank
equals the total explicit virtual dimension and converge lindep if needed.
Zero domain/PNO cutoffs do not override numerical conditioning cutoffs.
No pairs or occupied Fock couplings are screened. Domains that are empty, or
PNO spaces that violate a self-inverse pair stabilizer, refuse explicitly.
raw_e_corr_per_cell is the iterated raw pair energy. The separately reported
pno_correction_per_cell is the semicanonical discarded-PNO estimate inside
the selected domains. It does not repair missing domains or occupied-Fock
coupling. e_corr_per_cell and e_total_per_cell include that named estimate.
There is no domain correction. The raw residual and energy change are tested
on the same amplitude state. Reaching max_iter returns converged=False,
including in artifacts; a correction cannot turn it into convergence.
Each metric/Fock stores N*b*b real numbers for b AOs per primitive cell.
Home-auxiliary factors still store a*(N*b)**2 real numbers for a primitive
auxiliary functions, plus the retained Bloch source. The factor transform and
immutable snapshot can coexist temporarily. Complex folded occupied columns,
real candidate spans and their metric Gram matrices, selected orbitals, pair
AO coefficients, PAO/PNO projected matrices, occupied Fock, amplitudes and
prepared transport links remain dense. Full domains can produce projected
matrices with the full AO dimension. All-displacement actions and the factor
round-trip audit still perform substantial work.
max_transport_bytes is enforced by the shared native preparation before
allocating the prepared transport payload and its accounted workspace. It does
not cover SCF, this adapter, PAO/PNO preparation, Python metadata, solver output
copies, allocator overhead or total process memory. The adapter’s storage
record reports retained array bytes only. No new total-memory guarantee or
production-scaling claim is made.
Reproducible Validator handoff¶
chi_translation_mp2.py prepares
H2 or LiH/STO-3G with explicit finite classic supports, or reuses an accepted
HF archive through --reference. Stage it through the configured vq service
with a runtime containing this increment and the prepared native translation
solver. Keep output outside the checkout and inspect existing job identities
before submitting. Suggested cases:
--case h2 --mesh 1 --output RESULTS/h2-m1
--case h2 --mesh 3 --output RESULTS/h2-m3
--case lih --mesh 4 --frozen-core 0 --output RESULTS/lih-m4
--reference RESULTS/lih-m4/hf.vqr --frozen-core 1 --output RESULTS/lih-m4-core
For example, copy the single example script to an external CASE_DIR, select
the verified registered runtime interpreter as RUNTIME_PYTHON, and submit:
vq submit --dir CASE_DIR --cpus 4 --mem-mb 8192 --time-limit 01:00:00 -- \
RUNTIME_PYTHON chi_translation_mp2.py --case h2 --mesh 3 --output results
These resource values are initial reservations, not measured requirements. Use an installed runtime whose source contains the delivery commit recorded on #508. Record its native identity from the result manifest; an older runtime cannot qualify this adapter. A reused archive must also be staged into the case directory. No source checkout or environment copy is needed.
The full-space raw solution is compared with independently evaluated
same-source canonical MP2 at 2e-9 Ha/cell, with residual 1e-11 and energy
change 1e-13 targets. Tighten these if residual accumulation approaches the
energy tolerance. The example varies domain thresholds at zero PNO cutoff,
then PNO cutoffs at full domains, recording raw errors, corrections, ranks,
iterations and refusals. Threshold errors need not be monotonic.
Source checks exercise a nonorthogonal finite model with occupied-Fock coupling, independently evaluated dense canonical MP2, complex Bloch gauges, frozen core, translation covariance and even-mesh self-inverse multiplicities. They also reject source mismatch and unsupported inputs and forbid historical dense reconstruction. These are implementation evidence. Validator must record the actual containing-source/native runtime and matched conventions, reuse qualifying #492/#530 operands, and assess physical support/cell convergence and ORCA/CRYSTAL comparisons separately. No existing scientific job was replaced by this development increment.
On the deterministic nonorthogonal source model, the largest full-space raw
error across meshes (1,1,1), (3,1,1), (4,1,1) with one frozen orbital
per character, and (2,2,1) was 5.52e-15 Ha/cell. The largest final raw
residual was 1.78e-13; the multi-cell cases required eight iterations with
nonzero occupied-Fock coupling. These values are algebra checks, not results
for H2 or LiH. The separate three-character threshold experiments measured:
Domain cutoff |
PNO cutoff |
Raw error (Ha/cell) |
PNO estimate (Ha/cell) |
PAO/PNO rank ranges |
|---|---|---|---|---|
0 |
0 |
|
|
6 / 6 |
0.05 |
0 |
|
below |
1-2 / 1-2 |
0.01 |
0 |
|
below |
1-2 / 1-2 |
0 |
|
|
|
6 / 1-3 |
0 |
|
|
|
6 / 4-6 |
All five solves converged below 2e-14 raw residual. The PNO estimates are
reported independently and do not enter the full-space raw comparison.
The next bounded increment is to reduce the remaining occupied/factor and pair AO payloads while preserving these same-source and raw-limit audits. Optimized localization, calibrated screening, unrestricted equations and local CC remain separate work.