Fix the pyrochlore Kondo coupling and unused-parameter checks in FCOrtho - #65
Open
aoymt wants to merge 2 commits into
Open
Fix the pyrochlore Kondo coupling and unused-parameter checks in FCOrtho#65aoymt wants to merge 2 commits into
aoymt wants to merge 2 commits into
Conversation
…ondo The Kondo exchange loop passed isite + 3 as the itinerant-site index, so only the sublattice-3 itinerant site was coupled, to all four local spins, while sublattices 0-2 got no Kondo coupling at all. Every other multi-site lattice (Kagome, Honeycomb) pairs sublattice-by-sublattice; use isite + isiteUC to do the same. The number of generated terms is unchanged (NsiteUC pairs per cell), so the nintrMax estimate still holds. Note: this changes the generated exchange.def/hund.def for Kondo models on the pyrochlore lattice. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
FCOrtho has no third-neighbor bonds (all couplings wire J/t/V 0-2 and 0'-2' only, and the nintrMax estimate counts 0 for the double-prime family), yet several double-prime parameters were accepted and then silently dropped: - fermion branch: t''/t0''-t2'' and V''/V0''-V2'' were neither consumed by InputHopp/InputCoulombV nor rejected by NotUsed; J0''/J1''/J2'' were likewise missing from the NotUsed_J list (only the scalar J'' was declared). - spin branch: J0''/J1''/J2'' were read and echoed via InputSpinNN but never wired to any bond; the NotUsed list stopped at V, V0, V1, V', omitting V2, V0'-V2' and the whole double-prime t/V family. Declare all of them NotUsed, following the complete declaration style of TriangularLattice. Inputs that used to be silently ignored (or echoed as if consumed) now stop with the usual "SPECIFIED but will NOT be USED" error. Output files are unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
This PR fixes two Standard-mode generator bugs found during a systematic
per-lattice review of the generated Hamiltonians (cross-checked against
the Python port). Both are confirmed against the full base-mode
integration suite (94/94 tests pass before and after; the suite contains
no pyrochlore/fcc Standard-mode cases, so no reference files change in
this repository).
Fixes
Pyrochlore: the Kondo exchange coupled only the sublattice-3
itinerant site (
199095c)The Kondo loop in
StdFace_Pyrochlorepassedisite + 3as theitinerant-site index:
so per unit cell only the sublattice-3 itinerant site was coupled —
to all four local spins — while the itinerant sites on sublattices
0–2 got no Kondo coupling at all. Every other multi-site lattice
(kagome, honeycomb) pairs the two species sublattice by sublattice,
and the standard Kondo-lattice model couples each itinerant site to
the local spin at the same site, so this looks like a typo for
isite + isiteUC; this PR changes it to exactly that.The number of generated terms is unchanged (
NsiteUCpairs percell), so the
nintrMaxestimate still holds.⚠ Behavior change: for
model = "Kondo"/"KondoGC"onlattice = "pyrochlore", the site pairs written tocoulombinter.def/exchange.def/hund.defchange from(7,0) (7,1) (7,2) (7,3)-style rows to(4,0) (5,1) (6,2) (7,3)(per cell). Existing pyrochlore Kondo results produced by Standard
mode were computed for the unintended Hamiltonian. Suggest a
release-note entry.
FCOrtho: accepted-but-unwired interaction parameters are now
rejected (
01c8093)The fcc/face-centered-orthorhombic lattice has no third-neighbor
bonds (all couplings wire the
0–2and0'–2'families only, andnintrMaxcounts 0 for the double-prime family), yet severaldouble-prime parameters were accepted and then silently dropped:
t''/t0''–t2''andV''/V0''–V2''wereneither consumed by
StdFace_InputHopp/StdFace_InputCoulombVnor rejected by
StdFace_NotUsed_*;J0''/J1''/J2''werelikewise missing from the
NotUsed_Jlist (only the scalarJ''was declared).
J0''/J1''/J2''were read and echoed tostdout via
StdFace_InputSpinNNas if consumed, but never wiredto any bond; the
NotUsedlist stopped atV, V0, V1, V',omitting
V2,V0'–V2'and the whole double-prime t/V family.All of these are now declared not-used, following the complete
declaration style of
TriangularLattice.c(where the double-primefamily actually exists and is either wired or rejected per model).
⚠ Behavior change: inputs that specified one of these parameters
were silently ignored before (or echoed and then ignored, in the
spin-model
J''case) and now abort with the standardunused-parameter error. Generated definition files are unchanged.
Notes for reviewers
(
fix/c-standard-mode-checks); like that PR, this branch is based ondevelopand intentionally touches onlysrc/.it has no pyrochlore or fcc Standard-mode cases, so no reference
files change here. (Downstream reference suites that do cover
pyrochlore Kondo need the three
.deffiles above regenerated; thePython development line has already done so.)
Kondo run now emits
NHund/NExchange = 4with pairs(4,0) (5,1) (6,2) (7,3); fix 2 verified by confirmingV'',t''andJ0''inputs onlattice = "fcc"abort with thestandard message while a clean run is byte-identical.
🤖 Generated with Claude Code