LatticeCore.jl
量子多体シミュレーション向けの抽象格子インターフェース
FoundationLattice SuiteJuliaJulia ≥ 1.10
LatticeCore is the interface layer for a family of Julia packages that simulate physical systems on geometric lattices. It defines the types and trait vocabulary that every lattice — periodic or aperiodic, finite or conceptually infinite — must implement, then ships a pair of reference implementations (LineLattice, SimpleSquareLattice) and a momentum-space layer so the interface is verifiable end-to-end without any other dependency.
Highlights
AbstractLattice{D, T}with trait-based extension (TopologyTrait,Periodic/Aperiodic,is_bipartite,reciprocal_support,size_trait).- Per-axis boundary conditions (
PeriodicAxis,OpenAxis,TwistedAxis) composed into aLatticeBoundary. Mixed BCs (cylinders) are first-class. - Coordinate system and indexing split:
RealSpace,LatticeCoord,HigherDimCoord, plusRowMajor/ColMajor/Snakestrategies decoupled from coordinates. - Site types (
IsingSite,PottsSite{Q},XYSite,HeisenbergSite,EmptySite) through three layouts (UniformLayout,SublatticeLayout,ExplicitLayout) so mixed-spin and disordered models compose cleanly. - Element centering trait (
VertexCenterdefault,BondCenter/PlaquetteCenter/CellCenteras extension points) for dimer, gauge-link, and flux variables. - Momentum-space layer:
AbstractMomentumLattice,PeriodicMomentumLattice,monkhorst_pack/gamma_centeredmeshes, andstructure_factorwith trait-dispatched fast paths (LatticeCoreFFTWExtfor Bravais;LatticeCoreNFFTExtreserved for the quasicrystal case).