Skip to content

Serial Class Diagram

The following diagrams capture the main classes and composition relationships in the serial pipeline (src/QAssemble/). Solid arrows point from an owner to the component it instantiates or calls directly. Dashed arrows highlight helper utilities that are passed in or referenced for numerical work.

High-Level Flow

classDiagram
    direction LR
    class Run {
        +control: dict
        +func: CorrelationFunction
        +ReadInput()
        +CheckKeyinString()
        +RunDiagE()
        +Dict2Hdf5()
        +Hdf52Dict()
        +CheckInput()
        +ChangeInput()
        +CompareDict()
    }

    class CorrelationFunction {
        +crystal: Crystal
        +dlr: DLR
        +TightBinding()
        +HartreeFock()
        +GWApproximation()
        +SCFCheck()
    }

    class Crystal {
        +kpoint
        +basisf
        +probspace
        +FAtomOrb()
        +BAtomOrb()
        +OrbSpin2Composite()
        +Kpath()
        +KPoint()
        +MappingRVec()
        +Projector()
    }

    class DLR {
        +omega
        +nu
        +tauF
        +FT2F()
        +BF2T()
        +TauDLR2Uniform()
    }

    Run --> CorrelationFunction : builds
    Run --> Crystal : via CorrelationFunction
    CorrelationFunction --> Crystal : owns
    CorrelationFunction --> DLR : owns

Fermionic Stack

classDiagram
    direction LR
    class FLatDyn {
        +crystal: Crystal
        +dlr: DLR
        +F2T()
        +T2F()
        +K2R()
        +R2K()
        +Moment()
        +Inverse()
        +Mixing()
        +Dyson()
        +ChemEmbedding()
        +StcEmbedding()
        +Spectral()
        +R2KArb()
        +KArb()
        +Diagonalize()
    }
    class FLatStc {
        +crystal: Crystal
        +Inverse()
        +K2R()
        +R2K()
        +Band()
        +DOS()
        +Visualization()
        +Mixing()
        +Dyson()
        +ChemEmbedding()
        +R2KArb()
        +Diagonalize()
        +KValley()
    }
    class GreenBare {
        +Cal()
        +Save()
    }
    class GreenInt {
        +CalMu0()
        +Occ()
        +SearchMu()
        +UpdateMu()
        +NumOfE()
        +Save()
    }
    class SigmaGWC {
        +Cal()
        +SigmaStc()
        +Zfactor()
        +Save()
    }
    class NIHamiltonian {
        +Cal()
        +Save()
        +Valley()
        +AntiValley()
    }
    class Hamiltonian {
        +CalMu0()
        +NumOfE()
        +SearchMu()
        +Occ()
        +UpdateMu()
        +OccMixing()
        +Save()
    }
    class SigmaHartree {
        +Cal()
        +Save()
    }
    class SigmaFock {
        +Cal()
        +Save()
    }
    class ZFactor {
        +Cal()
        +Save()
    }
    class SigmaStc {
        +Cal()
        +Save()
    }
    class GreenAB {
        +KI2KF()
    }
    class HamiltonianAB {
        +KI2KF()
    }
    class FPathDyn {
        +Inverse()
        +R2K()
        +KArb()
        +MQEMWrapper()
        +Spectral()
        +MQEMPrepare()
    }
    class FPathStc {
        +Inverse()
        +R2K()
        +K2R()
        +Slab()
        +SlabZmat()
        +Band()
        +Dos()
        +FermiSurface()
        +Occ()
        +Moments()
    }

    CorrelationFunction --> FLatDyn
    CorrelationFunction --> FLatStc
    CorrelationFunction --> FPathDyn
    CorrelationFunction --> FPathStc
    FLatDyn --> Crystal
    FLatDyn --> DLR
    FLatStc --> Crystal
    FPathDyn --> Crystal
    FPathDyn ..> DLR
    FPathStc --> Crystal
    CorrelationFunction --> GreenBare
    CorrelationFunction --> GreenInt
    CorrelationFunction --> SigmaGWC
    CorrelationFunction --> NIHamiltonian
    CorrelationFunction --> Hamiltonian
    CorrelationFunction --> SigmaHartree
    CorrelationFunction --> SigmaFock
    GreenBare --|> FLatDyn
    GreenInt --|> FLatDyn
    SigmaGWC --|> FLatDyn
    GreenAB --|> FLatDyn
    NIHamiltonian --|> FLatStc
    Hamiltonian --|> FLatStc
    SigmaHartree --|> FLatStc
    SigmaFock --|> FLatStc
    HamiltonianAB --|> FLatStc
    ZFactor --|> FLatStc
    SigmaStc --|> FLatStc
    GreenBare --> FLatDyn : writes
    GreenInt --> FLatDyn : consumes
    SigmaGWC --> FLatDyn : consumes
    NIHamiltonian --> FLatStc : builds
    Hamiltonian --> FLatStc : builds
    SigmaHartree --> FLatStc : uses
    SigmaFock --> FLatStc : uses

Bosonic Stack

classDiagram
    direction LR
    class BLatDyn {
        +crystal: Crystal
        +dlr: DLR
        +Inverse()
        +Moment()
        +F2T()
        +T2F()
        +K2R()
        +R2K()
        +Mixing()
        +Dyson()
        +StcEmbedding()
        +RT2mRmT()
        +TauF2TauB()
        +R2KArb()
        +Save()
    }
    class BLatStc {
        +crystal: Crystal
        +Inverse()
        +K2R()
        +R2K()
        +Mixing()
        +Dyson()
        +Save()
        +R2KArb()
        +HermitianCheck()
    }
    class VBare {
        +Cal()
        +LocPlusNonLoc()
        +OhnoYukawa()
        +OhnoParameter()
        +JTHPotential()
        +Save()
    }
    class PolLat {
        +Cal()
        +Save()
    }
    class WLat {
        +Cal()
        +Save()
    }
    class BPathDyn {
        +R2K()
    }
    class BPathStc {
        +R2K()
    }
    class BLocStc {
        +Inverse()
        +Mixing()
        +Imp2Loc()
        +Loc2Imp()
        +Arr2Dict()
        +Dict2Arr()
        +Dyson()
        +Save()
    }
    class VLoc {
        +SetLocalInteracting()
        +GenOnsite()
        +SlaterKanamori()
        +SlaterParameter()
        +KanamoriParameter()
        +AngularIntegral()
        +RotationMatrix()
        +Spherical2Cubic()
        +GetUijklComCTQMC()
    }

    CorrelationFunction --> BLatDyn
    CorrelationFunction --> BLatStc
    CorrelationFunction --> BPathDyn
    CorrelationFunction --> BPathStc
    CorrelationFunction --> BLocStc
    CorrelationFunction --> VBare
    BLatDyn --> Crystal
    BLatDyn --> DLR
    PolLat --|> BLatDyn
    WLat --|> BLatDyn
    BLatStc --> Crystal
    VBare --|> BLatStc
    VBare --> Crystal
    BPathDyn --> Crystal
    BPathStc --> Crystal
    BLocStc --> Crystal
    VLoc --|> BLocStc

Shared Utilities

classDiagram
    direction LR
    class Fourier {
        +FLatDynK2R()
        +FLatStcK2R()
        +FLatDynR2K()
        +FLatStcR2K()
        +BLatDynK2R()
        +BLatStcK2R()
        +BLatDynR2K()
        +BLatStcR2K()
        +FPathStcR2K()
        +FPathDynR2K()
        +FLatDynM()
        +BLatDynM()
    }
    class Dyson {
        +FLatDyn()
        +FLatStc()
        +BLatDyn()
        +BLatStc()
        +FLocDyn()
        +FLocStc()
        +BLocDyn()
        +BLocStc()
    }
    class Bare {
        +FFreq()
        +BFreq()
        +FTau()
        +BTau()
        +FLocFreq()
        +FLatFreq()
        +BLocFreq()
        +BLatFreq()
    }
    class Common {
        +MatInv()
        +HermitianEigenCmplx()
        +SplineCmplx()
        +FderivCmplx()
        +BernoulliPolynomial()
        +EulerPolynomial()
        +MinDistance()
    }

    class Mixing {
        +method: str
        +npulay: int
        +reset()
        +__call__(iter, mix, Fnew, Fold)
    }

    FLatDyn ..> Fourier
    FLatStc ..> Fourier
    FPathDyn ..> Fourier
    BLatDyn ..> Fourier
    BLatStc ..> Fourier
    BPathDyn ..> Fourier
    BPathStc ..> Fourier
    FLatDyn ..> Dyson
    FLatStc ..> Dyson
    BLatDyn ..> Dyson
    BLatStc ..> Dyson
    BLocStc ..> Dyson
    CorrelationFunction ..> Bare
    CorrelationFunction ..> Common
    CorrelationFunction ..> Mixing

Use the diagrams alongside docs/SerialModules.md for deeper descriptions of each class and the numerical responsibilities they own.