The BosonBath
object describes the interaction between the system (s
) and a exterior bosonic environment (b
), which can be modeled by
in terms of the coupling strength g_k
and the annihilation (creation) operator b_k (b_k^\dagger)
associated to the k
-th mode of the bosonic environment. Here, V_s
refers to the system-interaction operator. In particular, V_s
must be a Hermitian operator which can act on both bosonic and fermionic systems degree of freedom. In the fermionic system case, V_s
must have even parity to be compatible with charge conservation.
The effects of a bosonic environment (initially in thermal equilibrium and linearly coupled to the system) are completely encoded in the two-time correlation functions, namely
where J(\omega)=2\pi\Sigma_k |g_k|^2 \delta(\omega-\omega_k)
is the spectral density of the bath and n(\omega)=\{\exp(\omega/k_B T)-1\}^{-1}
represents the Bose-Einstein distribution.
A more practical representation can be found by expressing the correlation function as a sum of exponential terms (Exponent
), namely
This allows us to define an iterative procedure which leads to the hierarchical equations of motion (HEOM).
One can construct the BosonBath
object with the coupling operator Vs::QuantumObject
and the two lists η::AbstractVector
and γ::AbstractVector
which corresponds to the exponential terms \{\eta_i\}_i
and \{\gamma_i\}_i
, respectively.
bath = BosonBath(Vs, η, γ)
!!! warning "Warning"
Here, the length of η
and γ
should be the same.
When \gamma_i \neq \gamma_i^*
, a closed form for the HEOM can be obtained by further decomposing C(t_1, t_2)
into its real (R) and imaginary (I) parts as
where \delta
is the Kronecker delta function and C^{u}(t_1, t_2)=\sum_i \eta_i^u \exp(-\gamma_i^u (t_1-t_2))
In this case, the BosonBath
object can be constructed by the following method:
bath = BosonBath(Vs, η_real, γ_real, η_imag, γ_imag)
!!! warning "Warning"
Here, the length of η_real
and γ_real
should be the same.
Also, the length of η_imag
and γ_imag
should be the same.
Here, η_real::AbstractVector
, γ_real::AbstractVector
, η_imag::AbstractVector
and γ_imag::AbstractVector
correspond to the exponential terms \{\eta_i^{\textrm{R}}\}_i
, \{\gamma_i^{\textrm{R}}\}_i
, \{\eta_i^{\textrm{I}}\}_i
and \{\gamma_i^{\textrm{I}}\}_i
, respectively.
!!! note "Note"
Instead of analytically solving the correlation function C(t_1, t_2)
to obtain a sum of exponential terms, one can also use the built-in functions (for different spectral densities J(\omega)
and spectral decomposition methods, which have been analytically solved by the developers already). See the other categories of the Bosonic Bath in the sidebar for more details.
One can check the information of the BosonBath
by the print
function, for example:
print(bath)
BosonBath object with 4 exponential-expansion terms
To check whether the exponential terms in the BosonBath
is correct or not, one can call C(bath::BosonBath, tlist::AbstractVector)
to calculate the correlation function C(t)
, where t=t_1-t_2
:
c_list = C(bath, tlist)
Here, c_list
is a list which contains the value of C(t)
corresponds to the given time series tlist
.
HierarchicalEOM.jl
also supports users to access the specific exponential term with brakets []
. This returns an Exponent
object, which contains the corresponding value of \eta_i
and \gamma_i
:
e = bath[2] # the 2nd-term
print(e)
Bath Exponent with types = "bRI", η = 1.5922874021206546e-6 + 0.0im, γ = 0.3141645167860635 + 0.0im.
The different types of the (bosonic-bath) Exponent
:
"bR"
: from real part of bosonic correlation functionC^{u=\textrm{R}}(t_1, t_2)
"bI"
: from imaginary part of bosonic correlation functionC^{u=\textrm{I}}(t_1, t_2)
"bRI"
: from combined (real and imaginary part) bosonic bath correlation functionC(t_1, t_2)
One can even obtain the Exponent
with iterative method:
for e in bath
println(e)
end
Bath Exponent with types = "bRI", η = 4.995832638723504e-5 - 2.5e-6im, γ = 0.005 + 0.0im.
Bath Exponent with types = "bRI", η = 1.5922874021206546e-6 + 0.0im, γ = 0.3141645167860635 + 0.0im.
Bath Exponent with types = "bRI", η = 1.0039844180003819e-6 + 0.0im, γ = 0.6479143347831898 + 0.0im.
Bath Exponent with types = "bRI", η = 3.1005439801387293e-6 + 0.0im, γ = 1.8059644711829272 + 0.0im.