Bath

We start with a general form of the system-bath interaction Hamiltonian

\[ H_{SB} = \sum_\alpha S_\alpha\otimes B_\alpha\]

and define each $B_\alpha$ (together with the bath Hamiltonian $H_B$) as an AbstractBath object. An important property of any bath is its two-point correlation function

\[ C(t_1, t_2) = \langle \mathcal{B}(t_1) \mathcal{B}(t_2) \rangle\]

where

\[ \mathcal{B}(t) = U_B^\dagger (t) B U_B(t)\]

and $U_B(t)$ is the unitary generated by the pure bath Hamiltonian

\[ U_B(t) = \mathcal{T}\exp\Big\{ -i\int_0^t H_B \mathrm{d}\tau \Big\}\]

The spectral density of the bath is defined as the Fourier transform of the two-point correlation function and is denoted as $\gamma(\omega)$ in OpenQuantumTools. It is important to note that only for a Gaussian bath (whose higher order correlations satisfy Wick's Theorem) does the two-point correlation function uniquely determine the bath. Otherwise, high-order correlation functions are necessary. Nevertheless, we only deal with the two-point correlation function in OpenQuantumTools.

Currently, there are two built-in concrete types of the AbstractBath class – OhmicBath and HybridOhmicBath.

Ohmic Bath

A self-consistent reference for the Ohmic bath is [1] Quantum adiabatic markovian master equations. Users can use Ohmic function to construct OhmicBath object:

η = 1e-4; fc=4; T=16
bath = Ohmic(η, fc, T);

The correlation and spectral density of the bath object can be calculated via

correlation(τ, bath)
spectrum(ω, bath)

This interface is true for every concrete type of AbstractBath. However, plotting works differently for different bath models. For OhmicBath, the user can use

ω = range(0, 20, length=200)
plot(bath, :γ, ω)
plot(bath, :S, ω)

to conveniently plot the spectral density and the $S$ function in the Lamb shift terms.

plot_ohmic_spectrum plot_ohmic_lamb

Hybrid Ohmic Bath

Details of the hybrid ohmic bath model are discussed in [2] Probing high-frequency noise with macroscopic resonant tunneling and [3] Theory of open quantum dynamics with hybrid noise. The core idea is to assume the noise spectrum can be split into low-frequency and high-frequency parts

\[ \gamma(\omega) = \gamma_L(ω) + \gamma_H(ω)\]

The high-frequency spectrum $\gamma_H(ω)$ comes from the Ohmic bath and the low frequency spectrum $\gamma_L(ω)$ can be interpreted as an approximation of $1/f$ noise. A benefit of this formalism is that instead of the entire spectral density, $\gamma_L(\omega)$ can be parametrized by a single parameter in a macroscopic resonant tunneling (MRT) experiment. To construct a HybridOhmicBath object, run the following command:

η = 1e-4; fc=4; T=16; W=10
bath = HybridOhmic(W, η, fc, T)

Spin-fluctuator

The spin-fluctuator model is a classical noise model for 1/f noise often found in superconducting qubits [4] 1/f noise: Implications for solid-state quantum information. It is a stochastic process generated by summing telegraph processes

\[\sum_{i=1}^{K} n_i(t) \ ,\]

where $n_i(s)$ is the telegraph process that switches randomly between $\pm b_i$ with a rate $\gamma_i$ and $K$ is the total number of fluctuators. Such a noise model can be constructed using EnsembleFluctuator:

bvec = 0.2 * ones(10)
γvec = log_uniform(0.01, 1, 10)
fluctuator_ensemble = EnsembleFluctuator(bvec, γvec)

The above code block defines a 10-fluctuator ensemble whose $b_i=0.2$ and $\gamma_i$s are log-uniformly distributed within $[0.01, 1]$. More details about simulating stochastic Schrödinger with spin-fluctuator noise can be found in this tutorial.