MatsubaraFrequency
A MatsubaraFrequency{PT} of particle type PT at temperature $T$ and with Matsubara index $n$ can be generated using
T = 1.0
n = 5
v = MatsubaraFrequency(T, n, Fermion) # v = \pi T (2 n + 1) 
w = MatsubaraFrequency(T, n, Boson)   # w = \pi T (2 n    )Matsubara frequencies can be added, subtracted and their sign can be reversed, producing a new instance of MatsubaraFrequency,  potentially of different particle type.
v1 = v + v # typeof(v1) = MatsubaraFrequency{Boson}
v2 = w - v # typeof(v2) = MatsubaraFrequency{Fermion}
v3 = -v    # typeof(v3) = MatsubaraFrequency{Fermion}Types
MatsubaraFunctions.AbstractParticle — Typeabstract type AbstractParticleMatsubaraFunctions.Fermion — Typestruct Fermion <: AbstractParticleMatsubaraFunctions.Boson — Typestruct Boson <: AbstractParticleMatsubaraFunctions.AbstractMatsubaraFrequency — Typeabstract type AbstractMatsubaraFrequencyMatsubaraFunctions.MatsubaraFrequency — Typestruct MatsubaraFrequency{PT <: AbstractParticle} <: AbstractMatsubaraFrequencyMatsubaraFrequency type with fields:
- T :: Float64: temperature
- val :: Float64: position on the imaginary axis
- idx :: Int64: Matsubara index
Functions
MatsubaraFunctions.temperature — Functionfunction temperature(
    w :: MatsubaraFrequency
    ) :: Float64Returns w.T
function temperature(
    grid :: AbstractMatsubaraGrid
    )    :: Float64Returns grid.T
function temperature(
    f :: MatsubaraFunction
    ) :: Float64Returns temperature for which f.grids are defined
MatsubaraFunctions.value — Functionfunction value(
    w :: MatsubaraFrequency
    ) :: Float64Returns w.val
MatsubaraFunctions.index — Functionfunction index(
    w :: MatsubaraFrequency
    ) :: Int64Returns w.idx
function index( 
    x :: MatsubaraIndex
    ) :: Int64Returns x.idx