Grids

Grids on imaginary axis.

In the ACFlow toolkit, the input correlators are defined on grid, while the calculated spectral functions are defined on mesh. The ACFlow toolkit supports both imaginary time and Matsubara frequency grids. Note that for Matsubara frequency grid, the bosonic and fermionic grids are different.

Contents

Index

Types

ACFlow.AbstractGridType
AbstractGrid

An abstract type representing the imaginary axis. It is used to build the internal type system.

ACFlow.FermionicFragmentTimeGridType
FermionicFragmentTimeGrid

Mutable struct. It represents part of the fermionic imaginary time grid. In other words, the grid might be fragmentary。

Members

  • ntime -> Number of time slices.
  • β -> Inverse temperature.
  • τ -> Vector of grid points, τᵢ.

See also: FermionicImaginaryTimeGrid.

ACFlow.FermionicFragmentMatsubaraGridType
FermionicFragmentMatsubaraGrid

Mutable struct. It represents part of the fermionic Matsubara frequency grid. In other words, the grid might be fragmentary。

Members

  • nfreq -> Number of Matsubara frequency points.
  • β -> Inverse temperature.
  • ω -> Vector of grid points, iωₙ.

See also: FermionicMatsubaraGrid.

ACFlow.BosonicFragmentTimeGridType
BosonicFragmentTimeGrid

Mutable struct. It represents part of the bosonic imaginary time grid. In other words, the grid might be fragmentary。

Members

  • ntime -> Number of time slices.
  • β -> Inverse temperature.
  • τ -> Vector of grid points, τᵢ.

See also: BosonicImaginaryTimeGrid.

ACFlow.BosonicMatsubaraGridType
BosonicMatsubaraGrid

Mutable struct. It represents the bosonic Matsubara frequency grid.

Members

  • nfreq -> Number of Matsubara frequency points.
  • β -> Inverse temperature.
  • ω -> Vector of grid points, iωₙ.

See also: BosonicFragmentMatsubaraGrid.

ACFlow.BosonicFragmentMatsubaraGridType
BosonicFragmentMatsubaraGrid

Mutable struct. It represents part of the bosonic Matsubara frequency grid. In other words, the grid might be fragmentary。 However, the first frequency point should be present (ωₙ ≡ 0.0).

Members

  • nfreq -> Number of Matsubara frequency points.
  • β -> Inverse temperature.
  • ω -> Vector of grid points, iωₙ.

See also: BosonicMatsubaraGrid.

Constructors

ACFlow.FermionicImaginaryTimeGridMethod
FermionicImaginaryTimeGrid(ntime::I64, β::T) where {T}

A constructor for the FermionicImaginaryTimeGrid struct, which is defined in src/types.jl.

Arguments

  • ntime -> Number of time slices in imaginary axis.
  • β -> Inverse temperature.

Returns

  • grid -> A FermionicImaginaryTimeGrid struct.

See also: FermionicImaginaryTimeGrid.

ACFlow.FermionicFragmentTimeGridMethod
FermionicFragmentTimeGrid(β::T, τ::Vector{T}) where {T}

A constructor for the FermionicFragmentTimeGrid struct, which is defined in src/types.jl.

Arguments

  • β -> Inverse temperature.
  • τ -> Given imaginary time points.

Returns

  • grid -> A FermionicFragmentTimeGrid struct.

See also: FermionicFragmentTimeGrid.

ACFlow.FermionicMatsubaraGridMethod
FermionicMatsubaraGrid(nfreq::I64, β::T) where {T}

A constructor for the FermionicMatsubaraGrid struct, which is defined in src/types.jl. The Matsubara grid is evaluated as ωₙ = (2n - 1) π / β.

Arguments

  • nfreq -> Number of Matsubara frequencies.
  • β -> Inverse temperature.

Returns

  • grid -> A FermionicMatsubaraGrid struct.

See also: FermionicMatsubaraGrid.

ACFlow.FermionicFragmentMatsubaraGridMethod
FermionicFragmentMatsubaraGrid(β::T, ω::Vector{T}) where {T}

A constructor for the FermionicFragmentMatsubaraGrid struct, which is defined in src/types.jl. The Matsubara grid is from input.

Arguments

  • β -> Inverse temperature.
  • ω -> Given Matsubara frequency points.

Returns

  • grid -> A FermionicFragmentMatsubaraGrid struct.

See also: FermionicFragmentMatsubaraGrid.

ACFlow.BosonicImaginaryTimeGridMethod
BosonicImaginaryTimeGrid(ntime::I64, β::T)

A constructor for the BosonicImaginaryTimeGrid struct, which is defined in src/types.jl.

Arguments

  • ntime -> Number of time slices in imaginary axis.
  • β -> Inverse temperature.

Returns

  • grid -> A BosonicImaginaryTimeGrid struct.

See also: BosonicImaginaryTimeGrid.

ACFlow.BosonicFragmentTimeGridMethod
BosonicFragmentTimeGrid(β::T, τ::Vector{T}) where {T}

A constructor for the BosonicFragmentTimeGrid struct, which is defined in src/types.jl.

Arguments

  • β -> Inverse temperature.
  • τ -> Given imaginary time points.

Returns

  • grid -> A BosonicFragmentTimeGrid struct.

See also: BosonicFragmentTimeGrid.

ACFlow.BosonicMatsubaraGridMethod
BosonicMatsubaraGrid(nfreq::I64, β::T) where {T}

A constructor for the BosonicMatsubaraGrid struct, which is defined in src/types.jl. The Matsubara grid is evaluated as ωₙ = (2n - 2) π / β.

Arguments

  • nfreq -> Number of Matsubara frequencies.
  • β -> Inverse temperature.

Returns

  • grid -> A BosonicMatsubaraGrid struct.

See also: BosonicMatsubaraGrid.

ACFlow.BosonicFragmentMatsubaraGridMethod
BosonicFragmentMatsubaraGrid(β::T, ω::Vector{T}) where {T}

A constructor for the BosonicFragmentMatsubaraGrid struct, which is defined in src/types.jl. The Matsubara grid is from input.

Arguments

  • β -> Inverse temperature.
  • ω -> Given Matsubara frequency points.

Returns

  • grid -> A BosonicFragmentMatsubaraGrid struct.

See also: BosonicFragmentMatsubaraGrid.

Base.* Functions

Base.iterateMethod
Base.iterate(fg::FermionicImaginaryTimeGrid)

Advance the iterator of a FermionicImaginaryTimeGrid struct to obtain the next grid point.

See also: FermionicImaginaryTimeGrid.

Base.iterateMethod
Base.iterate(fg::FermionicFragmentTimeGrid)

Advance the iterator of a FermionicFragmentTimeGrid struct to obtain the next grid point.

See also: FermionicFragmentTimeGrid.

Base.iterateMethod
Base.iterate(fg::FermionicMatsubaraGrid)

Advance the iterator of a FermionicMatsubaraGrid struct to obtain the next grid point.

See also: FermionicMatsubaraGrid.

Base.iterateMethod
Base.iterate(bg::BosonicImaginaryTimeGrid)

Advance the iterator of a BosonicImaginaryTimeGrid struct to obtain the next grid point.

See also: BosonicImaginaryTimeGrid.

Base.iterateMethod
Base.iterate(bg::BosonicFragmentTimeGrid)

Advance the iterator of a BosonicFragmentTimeGrid struct to obtain the next grid point.

See also: BosonicFragmentTimeGrid.

Base.iterateMethod
Base.iterate(bg::BosonicMatsubaraGrid)

Advance the iterator of a BosonicMatsubaraGrid struct to obtain the next grid point.

See also: BosonicMatsubaraGrid.

Base.iterateMethod
Base.iterate(bg::BosonicFragmentMatsubaraGrid)

Advance the iterator of a BosonicFragmentMatsubaraGrid struct to obtain the next grid point.

See also: BosonicFragmentMatsubaraGrid.

Base.iterateMethod
Base.iterate(fg::FermionicImaginaryTimeGrid, i::I64)

This is the key method that allows a FermionicImaginaryTimeGrid struct to be iterated, yielding a sequences of grid points.

See also: FermionicImaginaryTimeGrid.

Base.iterateMethod
Base.iterate(fg::FermionicFragmentTimeGrid, i::I64)

This is the key method that allows a FermionicFragmentTimeGrid struct to be iterated, yielding a sequences of grid points.

See also: FermionicFragmentTimeGrid.

Base.iterateMethod
Base.iterate(fg::FermionicMatsubaraGrid, i::I64)

Create an iterable object for visiting each index of a FermionicMatsubaraGrid struct.

See also: FermionicMatsubaraGrid.

Base.iterateMethod
Base.iterate(fg::FermionicFragmentMatsubaraGrid, i::I64)

Create an iterable object for visiting each index of a FermionicFragmentMatsubaraGrid struct.

See also: FermionicFragmentMatsubaraGrid.

Base.iterateMethod
Base.iterate(bg::BosonicImaginaryTimeGrid, i::I64)

Create an iterable object for visiting each index of a BosonicImaginaryTimeGrid struct.

See also: BosonicImaginaryTimeGrid.

Base.iterateMethod
Base.iterate(bg::BosonicFragmentTimeGrid, i::I64)

Create an iterable object for visiting each index of a BosonicFragmentTimeGrid struct.

See also: BosonicFragmentTimeGrid.

Base.iterateMethod
Base.iterate(bg::BosonicMatsubaraGrid, i::I64)

Create an iterable object for visiting each index of a BosonicMatsubaraGrid struct.

See also: BosonicMatsubaraGrid.

Base.iterateMethod
Base.iterate(bg::BosonicFragmentMatsubaraGrid, i::I64)

Create an iterable object for visiting each index of a BosonicFragmentMatsubaraGrid struct.

See also: BosonicFragmentMatsubaraGrid.

Base.eachindexMethod
Base.eachindex(fg::FermionicMatsubaraGrid)

Create an iterable object for visiting each index of a FermionicMatsubaraGrid struct.

See also: FermionicMatsubaraGrid.

Base.eachindexMethod
Base.eachindex(bg::BosonicImaginaryTimeGrid)

Create an iterable object for visiting each index of a BosonicImaginaryTimeGrid struct.

See also: BosonicImaginaryTimeGrid.

Base.eachindexMethod
Base.eachindex(bg::BosonicFragmentTimeGrid)

Create an iterable object for visiting each index of a BosonicFragmentTimeGrid struct.

See also: BosonicFragmentTimeGrid.

Base.eachindexMethod
Base.eachindex(bg::BosonicMatsubaraGrid)

Create an iterable object for visiting each index of a BosonicMatsubaraGrid struct.

See also: BosonicMatsubaraGrid.

Base.getindexMethod
Base.getindex(fg::FermionicImaginaryTimeGrid, ind::I64)

Retrieve the value(s) stored at the given key or index within a FermionicImaginaryTimeGrid struct.

See also: FermionicImaginaryTimeGrid.

Base.getindexMethod
Base.getindex(fg::FermionicFragmentTimeGrid, ind::I64)

Retrieve the value(s) stored at the given key or index within a FermionicFragmentTimeGrid struct.

See also: FermionicFragmentTimeGrid.

Base.getindexMethod
Base.getindex(fg::FermionicMatsubaraGrid, ind::I64)

Retrieve the value(s) stored at the given key or index within a FermionicMatsubaraGrid struct.

See also: FermionicMatsubaraGrid.

Base.getindexMethod
Base.getindex(fg::FermionicFragmentMatsubaraGrid, ind::I64)

Retrieve the value(s) stored at the given key or index within a FermionicFragmentMatsubaraGrid struct.

See also: FermionicFragmentMatsubaraGrid.

Base.getindexMethod
Base.getindex(bg::BosonicImaginaryTimeGrid, ind::I64)

Retrieve the value(s) stored at the given key or index within a BosonicImaginaryTimeGrid struct.

See also: BosonicImaginaryTimeGrid.

Base.getindexMethod
Base.getindex(bg::BosonicFragmentTimeGrid, ind::I64)

Retrieve the value(s) stored at the given key or index within a BosonicFragmentTimeGrid struct.

See also: BosonicFragmentTimeGrid.

Base.getindexMethod
Base.getindex(bg::BosonicMatsubaraGrid, ind::I64)

Retrieve the value(s) stored at the given key or index within a BosonicMatsubaraGrid struct.

See also: BosonicMatsubaraGrid.

Base.getindexMethod
Base.getindex(bg::BosonicFragmentMatsubaraGrid, ind::I64)

Retrieve the value(s) stored at the given key or index within a BosonicFragmentMatsubaraGrid struct.

See also: BosonicFragmentMatsubaraGrid.

Base.getindexMethod
Base.getindex(fg::FermionicImaginaryTimeGrid, I::UnitRange{I64})

Return a subset of a FermionicImaginaryTimeGrid struct as specified by I.

See also: FermionicImaginaryTimeGrid.

Base.getindexMethod
Base.getindex(fg::FermionicFragmentTimeGrid, I::UnitRange{I64})

Return a subset of a FermionicFragmentTimeGrid struct as specified by I.

See also: FermionicFragmentTimeGrid.

Base.getindexMethod
Base.getindex(fg::FermionicMatsubaraGrid, I::UnitRange{I64})

Return a subset of a FermionicMatsubaraGrid struct as specified by I.

See also: FermionicMatsubaraGrid.

Base.getindexMethod
Base.getindex(bg::BosonicImaginaryTimeGrid, I::UnitRange{I64})

Return a subset of a BosonicImaginaryTimeGrid struct as specified by I.

See also: BosonicImaginaryTimeGrid.

Base.getindexMethod
Base.getindex(bg::BosonicFragmentTimeGrid, I::UnitRange{I64})

Return a subset of a BosonicFragmentTimeGrid struct as specified by I.

See also: BosonicFragmentTimeGrid.

Base.getindexMethod
Base.getindex(bg::BosonicMatsubaraGrid, I::UnitRange{I64})

Return a subset of a BosonicMatsubaraGrid struct as specified by I.

See also: BosonicMatsubaraGrid.

Utilities

ACFlow.rebuild!Function
rebuild!(fg::FermionicImaginaryTimeGrid, ntime::I64, β::T) where {T}

Rebuild the FermionicImaginaryTimeGrid struct via new ntime and β parameters.

Arguments

  • fg -> A FermionicImaginaryTimeGrid struct.
  • ntime -> Number of time slices.
  • β -> Inverse temperature.

Returns

N/A

See also: FermionicImaginaryTimeGrid.

rebuild!(fg::FermionicFragmentTimeGrid, ntime::I64, β::T) where {T}

Rebuild the FermionicFragmentTimeGrid struct via new ntime and β parameters. Now its imaginary time points are continuous and complete.

Arguments

  • fg -> A FermionicFragmentTimeGrid struct.
  • ntime -> Number of time slices.
  • β -> Inverse temperature.

Returns

N/A

See also: FermionicFragmentTimeGrid.

rebuild!(fg::FermionicMatsubaraGrid, nfreq::I64, β::T) where {T}

Rebuild the FermionicMatsubaraGrid struct via new nfreq and β parameters.

Arguments

  • fg -> A FermionicMatsubaraGrid struct.
  • nfreq -> Number of Matsubara frequencies.
  • β -> Inverse temperature.

Returns

N/A

See also: FermionicMatsubaraGrid.

rebuild!(fg::FermionicFragmentMatsubaraGrid, nfreq::I64, β::T) where {T}

Rebuild the FermionicFragmentMatsubaraGrid struct via new nfreq and β parameters. Now its Matsubara frequency points are continuous and complete.

Arguments

  • fg -> A FermionicFragmentMatsubaraGrid struct.
  • nfreq -> Number of Matsubara frequencies.
  • β -> Inverse temperature.

Returns

N/A

See also: FermionicFragmentMatsubaraGrid.

rebuild!(bg::BosonicImaginaryTimeGrid, ntime::I64, β::T) where {T}

Rebuild the BosonicImaginaryTimeGrid struct via new ntime and β parameters.

Arguments

  • bg -> A BosonicImaginaryTimeGrid struct.
  • ntime -> Number of time slices.
  • β -> Inverse temperature.

Returns

N/A

See also: BosonicImaginaryTimeGrid.

rebuild!(bg::BosonicFragmentTimeGrid, ntime::I64, β::T) where {T}

Rebuild the BosonicFragmentTimeGrid struct via new ntime and β parameters. Now its imaginary time points are continuous and complete.

Arguments

  • bg -> A BosonicFragmentTimeGrid struct.
  • ntime -> Number of time slices.
  • β -> Inverse temperature.

Returns

N/A

See also: BosonicFragmentTimeGrid.

rebuild!(bg::BosonicMatsubaraGrid, nfreq::I64, β::T) where {T}

Rebuild the BosonicMatsubaraGrid struct via new nfreq and β parameters.

Arguments

  • bg -> A BosonicMatsubaraGrid struct.
  • nfreq -> Number of Matsubara frequencies.
  • β -> Inverse temperature.

Returns

N/A

See also: BosonicMatsubaraGrid.

rebuild!(bg::BosonicFragmentMatsubaraGrid, nfreq::I64, β::T) where {T}

Rebuild the BosonicFragmentMatsubaraGrid struct via new nfreq and β parameters. Now its Matsubara frequency points are continuous and complete.

Arguments

  • bg -> A BosonicFragmentMatsubaraGrid struct.
  • nfreq -> Number of Matsubara frequencies.
  • β -> Inverse temperature.

Returns

N/A

See also: BosonicFragmentMatsubaraGrid.

Base.resize!Function
Base.resize!(fg::FermionicMatsubaraGrid, nfreq::I64)

Reduce the size of the fermionic Matsubara grid. Note that nfreq should be smaller than or equal to fg.nfreq. This function is called by the NevanAC solver only.

Arguments

  • fg -> A FermionicMatsubaraGrid struct.
  • nfreq -> Number of Matsubara frequencies.

Returns

N/A

See also: FermionicMatsubaraGrid.

Base.resize!(fg::FermionicFragmentMatsubaraGrid, nfreq::I64)

Reduce the size of the fermionic fragment Matsubara grid. Note that nfreq should be smaller than or equal to fg.nfreq. This function is called by the NevanAC solver only.

Arguments

  • fg -> A FermionicFragmentMatsubaraGrid struct.
  • nfreq -> Number of Matsubara frequencies.

Returns

N/A

See also: FermionicFragmentMatsubaraGrid.

Base.resize!(bg::BosonicMatsubaraGrid, nfreq::I64)

Reduce the size of the bosonic Matsubara grid. Note that nfreq should be smaller than or equal to bg.nfreq. This function is called by the NevanAC solver only.

Arguments

  • bg -> A BosonicMatsubaraGrid struct.
  • nfreq -> Number of Matsubara frequencies.

Returns

N/A

See also: BosonicMatsubaraGrid.

Base.resize!(bg::BosonicFragmentMatsubaraGrid, nfreq::I64)

Reduce the size of the bosonic fragment Matsubara grid. Note that nfreq should be smaller than or equal to bg.nfreq. This function is called by the NevanAC solver only.

Arguments

  • bg -> A BosonicFragmentMatsubaraGrid struct.
  • nfreq -> Number of Matsubara frequencies.

Returns

N/A

See also: BosonicFragmentMatsubaraGrid.

Base.reverse!Function
Base.reverse!(fg::FermionicMatsubaraGrid)

Reverse the fermionic Matsubara grid. This function is called by the NevanAC solver only.

See also: FermionicMatsubaraGrid.

Base.reverse!(fg::FermionicFragmentMatsubaraGrid)

Reverse the fermionic fragment Matsubara grid. This function is called by the NevanAC solver only.

See also: FermionicFragmentMatsubaraGrid.

Base.reverse!(bg::BosonicMatsubaraGrid)

Reverse the bosonic Matsubara grid. This function is called by the NevanAC solver only.

See also: BosonicMatsubaraGrid.

Base.reverse!(bg::BosonicFragmentMatsubaraGrid)

Reverse the bosonic fragment Matsubara grid. This function is called by the NevanAC solver only.

See also: BosonicFragmentMatsubaraGrid.