Comparing Γ-CCM and χ-CCM

Γ-CCM (aiccm2026dev-a) and χ-CCM[1] (aiccm2026dev-b) are the direct-torus and finite-character (Γ-centred character-mesh) representations of the ab-initio Cyclic Cluster Model on a finite Born-von-Karman torus. They are developed in separate workstreams, share only the geometry registry (testset.py), and are compared head-to-head to answer one question: do two independent constructions of a variational finite-torus CCM converge to the same Hamiltonian?

Important

The two lines are unitarily equivalent at every cluster size: they represent the same finite-BvK-torus Hamiltonian in two different bases (direct-torus Γ-supercell vs finite-character Γ-centred character mesh). Agreement is expected at a matched Coulomb gauge and declared exchange-q=0 convention; disagreement localises a modelling choice.

Running the same system through both lines

Via the test-set runners

The aiccm-2026/ directory has separate runners that share only testset.py for the geometry:

cd aiccm-2026

# Γ-CCM: four-center HF on diamond
python run_case.py c-diamond aiccm-hf --out results-a/

# χ-CCM: RHF with four-center backend on diamond
python run_case_b.py c-diamond rhf-4c --out results-b/

# Compare
python compare_b.py results-b/ --a-results results-a/

The compare.py and compare_b.py scripts produce per-system × per-route energy tables with Δ columns.

Fleet-scale comparison

Generate both batches and submit:

# Γ-CCM full matrix
python make_jobs.py | sh

# χ-CCM SCF matrix (all systems, all routes)
python make_jobs_b.py --profile scf | sh

# After results land, collect into results-a/ and results-b/
python compare_b.py results-b/ --a-results results-a/ --csv comparison.csv

Adding a CRYSTAL23 reference

Population the crystal_refs_b.json template with per-system per-atom energies from actual CRYSTAL23 runs, then:

python compare_b.py results-b/ --a-results results-a/ \
    --crystal-refs crystal_refs_b.json

The template schema is:

{
  "h-chain": {"rhf": -0.542875, "pbe": -0.581695},
  "c-diamond": {"rhf": -38.07736, "pbe": -38.07736}
}

Values are energy per primitive-cell atom in Hartree.

What to expect

Where they should agree (matched convention)

When both lines declare the same Coulomb kernel and exchange-q=0 convention (coulomb_kernel="3d-periodic-g0", exchange_q0="bvk-ewald"), they compute the same finite-torus Hamiltonian and must agree:

  • Γ-CCM run_ccm_rhf_gdf = χ-CCM rhf-ri = PySCF KRHF to 5.9×10⁻¹⁰ Ha on the validated 20×20×6 (1,1,2) control.

  • The production four-center is one object: the density-fit of v_E.

Where they may diverge

axis

what to check

why

Bare vs neutral kernel

Γ-CCM bare-4c vs GDF on ionic systems

The bare-1/r sum is not charge-neutral; the Madelung gap is ~hundreds of mHa/atom. This is a known regime, not a disagreement.

Low-dimensional exxdiv

1-D/2-D aiccm-ri vs χ-CCM rhf-ri vs bipole

The 3D-Ewald exxdiv over-binds vacuum-padded low-D cells. Both lines share this limitation until mixed-boundary Green’s functions land.

Exchange-q0 convention

exchange_q0 field in the convention descriptor

bvk-ewald vs strict-zero-mode are different finite-N Hamiltonians with the same TDL. Both lines must declare the same convention for a comparison to be meaningful.

Cluster size

Δ shrinks as nrep grows

At small clusters the finite-size physics (the Madelung remainder R) differs between representations; this is not an error - it converges to zero in the TDL.

What the head-to-head settles

The benchmark test set is designed so that the discriminating systems are the non-orthorhombic ≥2-D and ionic 3-D crystals - exactly the regime where the 2014 eq-18 asymmetry and the bare-1/r Madelung background become energetically real. If the two independent constructions agree there, the common limit is pinned.

Interpreting a disagreement

  1. Check the convention descriptor. Both results must carry coulomb_kernel="3d-periodic-g0" and exchange_q0="bvk-ewald". If not, the disagreement is a convention mismatch, not a physics difference.

  2. Check the cluster size. At small clusters the finite-size remainder R (the non-rank-1 piece of v_E 1/r) contributes differently in the two representations. Rerun at a larger cluster.

  3. Check the Madelung gap. On ionic systems, compare bare-4c vs GDF/RI within the same line first. If both lines agree at the GDF level but disagree at the bare-4c level, the bare-1/r Madelung gap is the issue - use the GDF route.

  4. Check the low-D caveat. On 1-D/2-D, both lines share the 3D-Ewald low-D exxdiv over-binding. Use the four-center and bipole references for the ground truth.

  5. If all checks pass and the disagreement persists, the disagreement localises a genuine modelling difference between the two constructions. The per-system JSON records (energy, timing, orbital energies, SCF trace) are the evidence - file a finding.

Cross-stream property comparison

property

Γ-CCM

χ-CCM

comparable?

HF/KS energy per atom

energy_per_atom

energy / n_atoms

✅ same convention required

Correlation energy

e_correlation

e_correlation (MP2) / e_correlation (CCSD(T))

✅ same convention + same reference

HOMO/LUMO gap

ccm_homo_lumo_gap

fundamental_gap in SCF record

✅ orbital energies carry the same convention

Mulliken charges

ccm_mulliken_charges

mulliken_charges in properties

✅ both use S^CCM

Dipole moment

ccm_dipole (finite-cluster)

not emitted

⚠️ gauge-dependent; compare only as symmetry indicator

Forces

ccm_numerical_gradient

not emitted

⚠️ Γ-CCM only

Density idempotency

not emitted

density_idempotency_error

N/A

See also