BathDiscretisations

NQCModels.BathDiscretisations.FullGaussLegendreType
FullGaussLegendre{T} <: WideBandBathDiscretisation

Use Gauss-Legendre quadrature to discretise the continuum across the entire band width. This is similar to the ShenviGaussLegendre except that splits the continuum at the Fermi level into two halves.

source
NQCModels.BathDiscretisations.GapGaussLegendreType

The GapGaussLegendre struct, a subtype of WideBandBathDiscretisation, models a wide-band limit bath with a central energy gap using Gauss–Legendre quadrature for discretization.

Fields

  • bathstates::Vector{T}: The discretized energy levels of the bath.
  • bathcoupling::Vector{T}: The coupling strengths to the bath states, derived from Gauss–Legendre weights.

Constructor

GapGaussLegendre(M, bandmin, bandmax, gapwidth)

This constructor validates input arguments and initializes a GapGaussLegendre object using Gauss–Legendre quadrature for state placement and coupling computation.

Arguments

  • M::Int: The total number of bath states; must be even.
  • bandmin::Real: The minimum energy of the wide band.
  • bandmax::Real: The maximum energy of the wide band.
  • gapwidth::Real: The width of the central energy gap. Must be non-negative and smaller than bandmax - bandmin.

Details

The energy band is split into two symmetric regions around the gap, and M/2 states are placed in each region using Gauss–Legendre nodes mapped to the corresponding subinterval. The gap itself is avoided.

The bathcoupling vector is computed from the square roots of the Gauss–Legendre weights, scaled by the effective half-bandwidth. This ensures accurate integration over the energy band while excluding the gap.

source
NQCModels.BathDiscretisations.GapTrapezoidalRuleType

The GapTrapezoidalRule struct, a subtype of WideBandBathDiscretisation, models a wide-band limit bath with an energy gap.

Fields

  • bathstates::Vector{T}: The discretized energy levels of the bath.
  • bathcoupling::T: The coupling strength between the system and the bath states.

Constructor

GapTrapezoidalRule(M, bandmin, bandmax, gapwidth)

This constructor validates inputs and initializes a GapTrapezoidalRule object.

Arguments

  • M::Int: The total number of bath states; must be even.
  • bandmin::Real: The minimum energy of the wide band.
  • bandmax::Real: The maximum energy of the wide band.
  • gapwidth::Real: The width of the central energy gap. Must be non-negative and smaller than bandmax - bandmin.

Details

If gapwidth is zero, bathstates are uniformly distributed across the entire band. Otherwise, the band is split, and M states are evenly distributed across the two resulting halves, avoiding the gap.

The bathcoupling is calculated from the effective bandwidth (bandmax - bandmin - gapwidth) and M.

source
NQCModels.BathDiscretisations.ReferenceGaussLegendreType
ReferenceGaussLegendre{T}

Implementation translated from Fortran code used for simulations of Shenvi et al. in J. Chem. Phys. 130, 174107 (2009). Two differences from ShenviGaussLegendre:

  • Position of minus sign in energy levels has been corrected.
  • Division by sqrt(ΔE) in the coupling.
source
NQCModels.BathDiscretisations.ShenviGaussLegendreType
ShenviGaussLegendre{T}

Defined as described by Shenvi et al. in J. Chem. Phys. 130, 174107 (2009). The position of the negative sign for the state energy level has been moved to ensure the states are sorted from lowest to highest.

source