AICCM route support matrix¶
One page answering “can this route run that method?” across both AICCM lines. It is a capability index, not a tutorial: each cell names the entry point and links to the reference page that explains it.
The information here is otherwise spread across four module docstrings and
the run_periodic_job guard block, so treat this page as a map and the
linked references as normative if the two ever disagree.
Important
Everything on this page is experimental. Every AICCM SCF driver emits
AICCM2026DevAExperimentalWarning or AICCM2026DevBExperimentalWarning,
and correlation, gradient, and property drivers inherit the warning through
the SCF they run. Route coverage is not a quantitative-status claim: see the
qualification warnings in the
chi-CCM user guide and the neutral-control
caveats in the Gamma-CCM reference.
The two lines, and what “route” means in each¶
The lines are independent implementations of the variational finite-BvK-torus CCM family, and they use the word differently.
line |
selector |
a “route” is |
where it lives |
|---|---|---|---|
Gamma-CCM, |
|
a construction plus representation: which finite Hamiltonian is built, and in which basis it is diagonalized |
|
chi-CCM, |
|
an electron-repulsion backend for one fixed finite-character Hamiltonian |
|
So the three Gamma-CCM routes can differ in their answers by construction, while the three chi-CCM backends are three ways to evaluate the same functional. Do not read the two route columns as parallel.
Gamma-CCM route identity¶
CCM_ROUTES = ("four-center", "neutral-bloch", "real-gamma").
route |
what it builds |
aliases |
|---|---|---|
|
the 2014 union-and-weight / Wigner-Seitz lineage, diagnosed non-variational in Paper 1 |
|
|
the neutral fitted-torus construction, multi-k GDF representation |
|
|
the same neutral construction, k-free real-Gamma supercell representation |
|
The paper-facing spellings gamma, gamma-ccm, gamma_ccm fail closed
(ruling R1): Paper-1 Gamma-CCM is the neutral construction, which has two
admissible producers, so a single keyword cannot choose between them. Full
discussion in Gamma-CCM reference.
Energy method coverage¶
Rows are routes, columns are method families. Entries name the driver.
|
|
|
chi-CCM (all three backends) |
|
|---|---|---|---|---|
RHF / UHF |
|
|
|
|
RKS / UKS, any libxc functional |
|
|
|
|
Screened (HSE-class) hybrids |
no dedicated path, see below |
yes, but only with |
yes, experimental, on the direct KS drivers |
yes, via the shared periodic exchange resolver |
Double hybrids |
no |
no |
|
no |
RIJCOSX variant |
|
no |
|
|
Canonical MP2 / UMP2 |
|
|
|
|
Canonical CCSD(T) |
|
|
|
|
DLPNO local correlation |
no |
yes |
yes, with one-call wrappers |
yes |
Analytic nuclear gradients |
yes, the complete set |
see below |
yes, composed |
no, fails closed |
Three entries need reading carefully.
run_ccm_mp2, run_ccm_ump2, and run_ccm_ccsd are dual-mode: passing
method= runs them on the four-center weighted ERIs, passing cderi=L runs
them on the neutral fit. The route is set by which argument you pass, not by
the function name. run_ccm_uccsd is neutral-only and has no four-center mode.
Screened hybrids on the fitted routes need the chain-of-spheres exchange
backend. The Lpq-contracted GDF K is full-range only and fails closed on any
range-separated functional (reject_unscreened_range_separated), so a
screened hybrid must not silently run as its full-range twin. Pass
k_exchange="cosx", use_compcell=True through to the multi-k driver. Fully
range-separated functionals with c_full > 0 (wb97x, cam-b3lyp, and
similar) fail closed on every backend.
The four-center KS driver has no dedicated screened-exchange path and no range-separated guard of its own, so do not assume an HSE-class functional is handled correctly there. Use a fitted route, or verify against a reference before trusting the number.
Cluster-size regime¶
Route coverage and reachable system size are different questions.
path |
regime |
|---|---|
four-center SCF via |
reaches genuine 3-D |
four-center dense ERI and all four-center post-HF and gradients |
dense |
neutral RI post-HF ( |
density-fit throughout, no dense AO four-center, reaches moderate 3-D |
chi-CCM |
3-D only; every 1-D and 2-D absolute-energy backend fails closed |
The union12 default¶
run_ccm_rhf and its siblings still default to method="union12", the
historical eq-18 product weight. That weighting carries a negative subspace on
any basis with more than one function per centre, so its energies are
unbounded rather than merely inaccurate (issue #242, and the
vibeqc.periodic.ccm module docstring for the measured numbers). Prefer
method="aiccm2026dev-a", which is what run_ccm_scf(route="four-center")
selects for you when method is left unset.
Properties and analysis¶
Each line carries its own property surface, and the names do not overlap. The
Gamma-CCM functions take (scf_result, ccm) and are route-agnostic: they work
on a converged SCF from any of the three routes. The chi-CCM functions consume
a chi result and its finite-character convention.
capability |
Gamma-CCM (any route) |
chi-CCM |
|---|---|---|
HOMO-LUMO gap |
|
via |
Mulliken / Loewdin charges |
|
via |
Mayer bond orders |
|
|
band structure (folded torus spectrum) |
|
|
dipole |
|
|
occupied localization |
|
|
symmetry analysis |
|
|
numerical (finite-difference) gradient |
|
not exposed |
QVF archive |
|
via the runner’s QVF vendor section |
COOP / COHP |
through the generic periodic path |
refused: the generic path rebuilds a fixed-cutoff Ewald surrogate rather than the converged finite-character Hamiltonian |
ccm_numerical_gradient is the finite-difference gate the analytic Gamma-CCM
gradients are validated against. It displaces each unit-cell atom and rebuilds
the whole CCMSystem, so every periodic image moves together, at a cost of
6 * n_basis_atoms SCF evaluations. It is a validation tool, not a production
force.
DLPNO: why four-center is excluded¶
DLPNO on this code base is not a truncation switch you can point at any
reference. The pipeline density-fits its (ia|jb) integrals from the
neutral cderi, because the ionic Madelung background shifts the
occupied-virtual denominators, so the correlation reference has to be the
neutral fitted torus rather than the bare 1/r four-center.
route |
DLPNO entry points |
|---|---|
|
none |
|
|
|
the same five, plus one-call |
chi-CCM |
|
Warning
ccm_dlpno_mp2 and its siblings only document the neutral-reference
requirement; there is no runtime guard. Handing one a four-center
scf_result produces a number rather than an error, and that number is
silently wrong. The *_direct one-call wrappers exist precisely to remove
this footgun: they guarantee the SCF reference and the cderi are the same
kernel. Prefer them.
At the default zero truncations (tcut_pno = tcut_mkn = 0) every DLPNO
driver reproduces the canonical correlation on the same reference, which is
the correctness gate rather than a production setting.
Analytic gradients¶
Three genuinely different situations, which the single word “supported” would hide.
route |
status |
entry points |
scope |
|---|---|---|---|
|
derived: the CCM gradient is differentiated term by term |
|
requires |
|
composed: rides the production multi-k GDF analytic gradient through the representation identity, with a per-run numerical parity gate |
|
dim 3, |
|
no gradient entry in the CCM namespace |
the underlying |
as for the multi-k GDF driver |
chi-CCM |
fails closed by design |
|
see below |
The four-center set is the only place where an AICCM gradient is derived from the CCM energy expression itself. Derivation and validation are in the analytic gradient note.
run_ccm_direct_gradient is worth understanding before you trust a force from
it. It converges the direct-torus SCF, runs the multi-k GDF control on the same
cell and mesh, and verifies the premise numerically: the two energies must
agree to parity_tol per cell, otherwise it fails closed rather than returning
forces belonging to a slightly different Hamiltonian. run_ccm_direct_optimize
relaxes unit-cell positions on that surface at fixed lattice, checking parity at
the endpoints by default.
chi-CCM returns no analytic force at all. It is not an oversight:
aiccm2026dev_b_gradient_status(result) records the finite-torus convention
alongside an explicit list of implemented component derivatives (the 3-D Ewald
nuclear term, fixed-density kinetic, energy-weighted overlap Pulay, and the
BvK exchange-q=0 seam) and the terms that remain blocked. Neither the
union-and-weight WSSC gradient nor the neutral-control gradient is substituted,
because each differentiates a different finite Hamiltonian.
What computes through run_periodic_job¶
Route availability in the library and in the unified runner are not the same thing.
|
resolves to |
methods |
notable refusals |
|---|---|---|---|
|
chi-CCM |
RHF, RKS, UHF, UKS |
|
|
the neutral real-Gamma control |
RHF, RKS, UHF, UKS |
dim 3 only; no DFT+U, smearing, |
|
ordinary |
as for GDF |
as for GDF |
|
nothing |
fails closed |
the four-centre lineage is not wired into the runner; use |
Post-HF is library-only on every line. The runner method argument accepts the
four SCF cases, so MP2, CCSD(T), and DLPNO are reached through the drivers
tabulated above, not through run_periodic_job.
The A-prefixed spellings for the real-Gamma control (aiccm2026dev-a-real-gamma,
aiccm2026dev-a-direct) are rejected deliberately: the aiccm2026dev-a prefix
denotes the union-and-weight construction, while real-Gamma is a producer of the
neutral construction.
See also¶
Gamma-CCM reference, the per-driver method stack and the route-keyword semantics.
chi-CCM user guide, backends, qualification status, and the worked examples.
Open-shell AICCM, the unrestricted APIs across both lines.
Comparing Gamma-CCM and chi-CCM, why the two lines stay separate and what a cross-approach comparison would require.
Analytic gradient note, the four-center force derivation.