BathDiscretisations
NQCModels.BathDiscretisations.FullGaussLegendre
— TypeFullGaussLegendre{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.
NQCModels.BathDiscretisations.GapGaussLegendre
— TypeThe 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 thanbandmax - 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.
NQCModels.BathDiscretisations.GapTrapezoidalRule
— TypeThe 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 thanbandmax - 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
.
NQCModels.BathDiscretisations.ReferenceGaussLegendre
— TypeReferenceGaussLegendre{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.
NQCModels.BathDiscretisations.ShenviGaussLegendre
— TypeShenviGaussLegendre{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.
NQCModels.BathDiscretisations.TrapezoidalRule
— TypeTrapezoidalRule{B,T} <: WideBandBathDiscretisation
Discretise wide band continuum using trapezoidal rule. Leads to evenly spaced states and constant coupling.
NQCModels.BathDiscretisations.WindowedTrapezoidalRule
— MethodWindowedTrapezoidalRule(M, bandmin, bandmax, windmin, windmax; densityratio=0.50, fermilevelstate=false)