Skip to content

Commit 38326da

Browse files
author
cailixun
committed
improve math (\hat{} for operator)
1 parent ff4ef39 commit 38326da

File tree

1 file changed

+37
-43
lines changed

1 file changed

+37
-43
lines changed

docs/src/users_guide/time_evolution/brmesolve.md

Lines changed: 37 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# [Bloch-Redfield master equation](@id doc-TE:Bloch-Redfield-master-equation)
22

3-
## Introduction
4-
5-
The Lindblad master equation introduced earlier is constructed so that it describes a physical evolution of the density matrix (i.e., trace and positivity preserving), but it does not provide a connection to any underlying microscopic physical model.
3+
The [Lindblad master equation](@ref doc-TE:Lindblad-Master-Equation-Solver) introduced earlier is constructed so that it describes a physical evolution of the density matrix (i.e., trace and positivity preserving), but it does not provide a connection to any underlying microscopic physical model.
64
The Lindblad operators (collapse operators) describe phenomenological processes, such as for example dephasing and spin flips, and the rates of these processes are arbitrary parameters in the model.
75
In many situations the collapse operators and their corresponding rates have clear physical interpretation, such as dephasing and relaxation rates, and in those cases the Lindblad master equation is usually the method of choice.
86

@@ -18,58 +16,58 @@ For a full derivation of the Bloch Redfield master equation, see e.g. [Cohen_Tan
1816
Here we present only a brief version of the derivation, with the intention of introducing the notation and how it relates to the implementation in `QuantumToolbox.jl`.
1917

2018

21-
## Brief Derivation and Definitions
19+
## [Brief Derivation and Definitions](@id doc-TE:Brief-Derivation-and-Definitions)
2220

23-
The starting point of the Bloch-Redfield formalism is the total Hamiltonian for the system and the environment (bath): ``H = H_{\rm S} + H_{\rm B} + H_{\rm I}``, where ``H`` is the total system+bath Hamiltonian, ``H_{\rm S}`` and ``H_{\rm B}`` are the system and bath Hamiltonians, respectively, and ``H_{\rm I}`` is the interaction Hamiltonian.
21+
The starting point of the Bloch-Redfield formalism is the total Hamiltonian for the system and the environment (bath): ``\hat{H} = \hat{H}_{\rm S} + \hat{H}_{\rm B} + \hat{H}_{\rm I}``, where ``\hat{H}`` is the total system+bath Hamiltonian, ``\hat{H}_{\rm S}`` and ``\hat{H}_{\rm B}`` are the system and bath Hamiltonians, respectively, and ``\hat{H}_{\rm I}`` is the interaction Hamiltonian.
2422

25-
The most general form of a master equation for the system dynamics is obtained by tracing out the bath from the von-Neumann equation of motion for the combined system (``\dot\rho = -i\hbar^{-1}[H, \rho]``). In the interaction picture the result is
23+
The most general form of a master equation for the system dynamics is obtained by tracing out the bath from the von-Neumann equation of motion for the combined system (``\frac{d}{dt}\hat{\rho} = -i\hbar^{-1}[\hat{H}, \hat{\rho}]``). In the interaction picture the result is
2624

2725
```math
28-
\frac{d}{dt}\rho_S(t) = - \hbar^{-2}\int_0^t d\tau\; {\rm Tr}_B [H_I(t), [H_I(\tau), \rho_S(\tau)\otimes\rho_B]],
26+
\frac{d}{dt}\hat{\rho}_{\textrm{S}}(t) = - \hbar^{-2}\int_0^t d\tau\; \textrm{Tr}_{\textrm{B}} [\hat{H}_{\textrm{I}}(t), [\hat{H}_{\textrm{I}}(\tau), \hat{\rho}_{\textrm{S}}(\tau)\otimes\hat{\rho}_{\textrm{B}}]],
2927
```
3028

31-
where the additional assumption that the total system-bath density matrix can be factorized as ``\rho(t) \approx \rho_S(t) \otimes \rho_B``.
29+
where the additional assumption that the total system-bath density matrix can be factorized as ``\hat{\rho}(t) \approx \hat{\rho}_{\textrm{S}}(t) \otimes \hat{\rho}_{\textrm{B}}``.
3230
This assumption is known as the Born approximation, and it implies that there never is any entanglement between the system and the bath, neither in the initial state nor at any time during the evolution.
3331
*It is justified for weak system-bath interaction.*
3432

3533
The master equation above is non-Markovian, i.e., the change in the density matrix at a time ``t`` depends on states at all times ``\tau < t``, making it intractable to solve both theoretically and numerically.
36-
To make progress towards a manageable master equation, we now introduce the Markovian approximation, in which ``\rho_S(\tau)`` is replaced by ``\rho_S(t)``.
34+
To make progress towards a manageable master equation, we now introduce the Markovian approximation, in which ``\hat{\rho}_{\textrm{S}}(\tau)`` is replaced by ``\hat{\rho}_{\textrm{S}}(t)``.
3735
The result is the Redfield equation
3836

3937
```math
40-
\frac{d}{dt}\rho_S(t) = - \hbar^{-2}\int_0^t d\tau\; {\rm Tr}_B [H_I(t), [H_I(\tau), \rho_S(t)\otimes\rho_B]],
38+
\frac{d}{dt}\hat{\rho}_{\textrm{S}}(t) = - \hbar^{-2}\int_0^t d\tau\; \textrm{Tr}_{\textrm{B}} [\hat{H}_{\textrm{I}}(t), [\hat{H}_{\textrm{I}}(\tau), \hat{\rho}_{\textrm{S}}(t)\otimes\hat{\rho}_{\textrm{B}}]],
4139
```
4240

4341
which is local in time with respect the density matrix, but still not Markovian since it contains an implicit dependence on the initial state. By extending the integration to infinity and substituting ``\tau \rightarrow t-\tau``, a fully Markovian master equation is obtained:
4442

4543
```math
46-
\frac{d}{dt}\rho_S(t) = - \hbar^{-2}\int_0^\infty d\tau\; {\rm Tr}_B [H_I(t), [H_I(t-\tau), \rho_S(t)\otimes\rho_B]].
44+
\frac{d}{dt}\hat{\rho}_{\textrm{S}}(t) = - \hbar^{-2}\int_0^\infty d\tau\; \textrm{Tr}_{\textrm{B}} [\hat{H}_{\textrm{I}}(t), [\hat{H}_{\textrm{I}}(t-\tau), \hat{\rho}_{\textrm{S}}(t)\otimes\hat{\rho}_{\textrm{B}}]].
4745
```
4846

4947
The two Markovian approximations introduced above are valid if the time-scale with which the system dynamics changes is large compared to the time-scale with which correlations in the bath decays (corresponding to a "short-memory" bath, which results in Markovian system dynamics).
5048

51-
The Markovian master equation above is still on a too general form to be suitable for numerical implementation. We therefore assume that the system-bath interaction takes the form ``H_I = \sum_\alpha A_\alpha \otimes B_\alpha`` and where ``A_\alpha`` are system operators and ``B_\alpha`` are bath operators.
49+
The Markovian master equation above is still on a too general form to be suitable for numerical implementation. We therefore assume that the system-bath interaction takes the form ``\hat{H}_{\textrm{I}} = \sum_\alpha \hat{A}_\alpha \otimes \hat{B}_\alpha`` and where ``\hat{A}_\alpha`` are system operators and ``\hat{B}_\alpha`` are bath operators.
5250
This allows us to write master equation in terms of system operators and bath correlation functions:
5351

5452
```math
55-
\begin{split}\frac{d}{dt}\rho_S(t) =
53+
\begin{split}\frac{d}{dt}\hat{\rho}_{\textrm{S}}(t) =
5654
-\hbar^{-2}
5755
\sum_{\alpha\beta}
5856
\int_0^\infty d\tau\;
5957
\left\{
60-
g_{\alpha\beta}(\tau) \left[A_\alpha(t)A_\beta(t-\tau)\rho_S(t) - A_\beta(t-\tau)\rho_S(t)A_\alpha(t)\right]
58+
g_{\alpha\beta}(\tau) \left[\hat{A}_\alpha(t)\hat{A}_\beta(t-\tau)\hat{\rho}_{\textrm{S}}(t) - \hat{A}_\beta(t-\tau)\hat{\rho}_{\textrm{S}}(t)\hat{A}_\alpha(t)\right]
6159
\right. \nonumber\\
6260
\left.
63-
+ g_{\alpha\beta}(-\tau) \left[\rho_S(t)A_\alpha(t-\tau)A_\beta(t) - A_\beta(t)\rho_S(t)A_\beta(t-\alpha)\right]
61+
+ g_{\alpha\beta}(-\tau) \left[\hat{\rho}_{\textrm{S}}(t)\hat{A}_\alpha(t-\tau)\hat{A}_\beta(t) - \hat{A}_\beta(t)\hat{\rho}_{\textrm{S}}(t)\hat{A}_\beta(t-\alpha)\right]
6462
\right\},\end{split}
6563
```
6664

67-
where ``g_{\alpha\beta}(\tau) = {\rm Tr}_B\left[B_\alpha(t)B_\beta(t-\tau)\rho_B\right] = \left<B_\alpha(\tau)B_\beta(0)\right>``,
68-
since the bath state ``\rho_B`` is a steady state.
65+
where ``g_{\alpha\beta}(\tau) = \textrm{Tr}_{\textrm{B}}\left[\hat{B}_\alpha(t)\hat{B}_\beta(t-\tau)\hat{\rho}_{\textrm{B}}\right] = \langle\hat{B}_\alpha(\tau)\hat{B}_\beta(0)\rangle``,
66+
since the bath state ``\hat{\rho}_{\textrm{B}}`` is a steady state.
6967

7068
In the eigenbasis of the system Hamiltonian, where ``A_{mn}(t) = A_{mn} e^{i\omega_{mn}t}``,
7169
``\omega_{mn} = \omega_m - \omega_n`` and ``\omega_m`` are the eigenfrequencies
72-
corresponding the eigenstate ``\left|m\right>``, we obtain in matrix form in the Schrödinger picture
70+
corresponding the eigenstate ``\left|m\rangle``, we obtain in matrix form in the Schrödinger picture
7371

7472
```math
7573
\begin{aligned}
@@ -94,7 +92,7 @@ corresponding the eigenstate ``\left|m\right>``, we obtain in matrix form in the
9492
```
9593

9694
where the "sec" above the summation symbol indicate summation of the secular terms which satisfy ``|\omega_{ab}-\omega_{cd}| \ll \tau_ {\rm decay}``.
97-
This is an almost-useful form of the master equation. The final step before arriving at the form of the Bloch-Redfield master equation that is implemented in QuTiP, involves rewriting the bath correlation function ``g(\tau)`` in terms of the noise-power spectrum of the environment ``S(\omega) = \int_{-\infty}^\infty d\tau e^{i\omega\tau} g(\tau)``:
95+
This is an almost-useful form of the master equation. The final step before arriving at the form of the Bloch-Redfield master equation that is implemented in `QuantumToolbox.jl`, involves rewriting the bath correlation function ``g(\tau)`` in terms of the noise-power spectrum of the environment ``S(\omega) = \int_{-\infty}^\infty d\tau e^{i\omega\tau} g(\tau)``:
9896

9997
```math
10098
\int_0^\infty d\tau\; g_{\alpha\beta}(\tau) e^{i\omega\tau} = \frac{1}{2}S_{\alpha\beta}(\omega) + i\lambda_{\alpha\beta}(\omega),
@@ -114,6 +112,7 @@ where ``\lambda_{ab}(\omega)`` is an energy shift that is neglected here. The fi
114112
where
115113

116114
```math
115+
\begin{aligned}
117116
R_{abcd} = -\frac{\hbar^{-2}}{2} \sum_{\alpha,\beta}
118117
\left\{
119118
\delta_{bd}\sum_nA^\alpha_{an}A^\beta_{nc}S_{\alpha\beta}(\omega_{cn})
@@ -126,15 +125,17 @@ where
126125
-
127126
A^\beta_{ac}A^\alpha_{db} S_{\alpha\beta}(\omega_{db})
128127
\right\},
128+
\end{aligned}
129129
```
130130

131131
is the Bloch-Redfield tensor.
132132

133-
The Bloch-Redfield master equation in this form is suitable for numerical implementation. The input parameters are the system Hamiltonian ``H``, the system operators through which the environment couples to the system ``A_\alpha``, and the noise-power spectrum ``S_{\alpha\beta}(\omega)`` associated with each system-environment interaction term.
133+
The Bloch-Redfield master equation in this form is suitable for numerical implementation. The input parameters are the system Hamiltonian ``\hat{H}_{\textrm{S}}``, the system operators through which the environment couples to the system ``\hat{A}_\alpha``, and the noise-power spectrum ``S_{\alpha\beta}(\omega)`` associated with each system-environment interaction term.
134134

135-
To simplify the numerical implementation we often assume that ``A_\alpha`` are Hermitian and that cross-correlations between different environment operators vanish, resulting in
135+
To simplify the numerical implementation we often assume that ``\hat{A}_\alpha`` are Hermitian and that cross-correlations between different environment operators vanish, resulting in
136136

137137
```math
138+
\begin{aligned}
138139
R_{abcd} = -\frac{\hbar^{-2}}{2} \sum_{\alpha}
139140
\left\{
140141
\delta_{bd}\sum_nA^\alpha_{an}A^\alpha_{nc}S_{\alpha}(\omega_{cn})
@@ -147,22 +148,23 @@ To simplify the numerical implementation we often assume that ``A_\alpha`` are H
147148
-
148149
A^\alpha_{ac}A^\alpha_{db} S_{\alpha}(\omega_{db})
149150
\right\}.
151+
\end{aligned}
150152
```
151153

152-
## Bloch-Redfield master equation in `QuantumToolbox.jl`
154+
## [Bloch-Redfield master equation in `QuantumToolbox.jl`](@id Bloch-Redfield-master-equation-in-QuantumToolbox-jl)
153155

154156
### Preparing the Bloch-Redfield tensor
155157

156158
In `QuantumToolbox.jl`, the Bloch-redfield master equation can be calculated using the function [`bloch_redfield_tensor`](@ref).
157-
It takes two mandatory arguments: The system Hamiltonian ``H`` and a nested list `a_ops` consist of tuples as `(A, spec)`
158-
with `A::QuantumObject{Operator}` being the operator ``A_\alpha`` and `spec::Function` being the spectral density functions ``S_\alpha(\omega)``.
159+
It takes two mandatory arguments: The system Hamiltonian ``\hat{H}`` and a nested list `a_ops` consist of tuples as `(A, spec)`
160+
with `A::QuantumObject` being the [`Operator`](@ref) ``\hat{A}_\alpha`` and `spec::Function` being the spectral density function ``S_\alpha(\omega)``.
159161

160-
It is possible to also get the term for a bath `\alpha` directly using [`brterm`](@ref). This function takes only one hermitian coupling operator ``A_\alpha`` and spectral response function ``S_\alpha(\omega)``.
162+
It is possible to also get the ``\alpha``-th term for the bath directly using [`brterm`](@ref). This function takes only one Hermitian coupling operator ``\hat{A}_\alpha`` and spectral response function ``S_\alpha(\omega)``.
161163

162164
To illustrate how to calculate the Bloch-Redfield tensor, let's consider a two-level atom
163165

164166
```math
165-
H = -\frac{1}{2}\Delta\sigma_x - \frac{1}{2}\varepsilon_0\sigma_z
167+
\hat{H}_{\textrm{S}} = -\frac{1}{2}\Delta\hat{\sigma}_x - \frac{1}{2}\varepsilon_0\hat{\sigma}_z
166168
```
167169

168170
```@setup brmesolve
@@ -179,15 +181,7 @@ CairoMakie.enable_only_mime!(MIME"image/svg+xml"())
179181
180182
H = -Δ/2.0 * sigmax() - ε0/2 * sigmaz()
181183
182-
function ohmic_spectrum(ω)
183-
if ω == 0. # dephasing noise
184-
return γ1
185-
elseif ω > 0 # relaxing noise
186-
return γ1 / 2 * ω / (2π)
187-
else
188-
return 0
189-
end
190-
end
184+
ohmic_spectrum(ω) = (ω == 0.0) ? γ1 : γ1 / 2 * (ω / (2 * π)) * (ω > 0.0)
191185
192186
R, U = bloch_redfield_tensor(H, [(sigmax(), ohmic_spectrum)])
193187
@@ -199,18 +193,18 @@ Bloch-Refield tensor by passing the operators via the third argument `c_ops`
199193
like you would in the [`mesolve`](@ref) or [`mcsolve`](@ref) functions.
200194
For convenience, when the keyword argument `fock_basis = false`, the function [`bloch_redfield_tensor`](@ref) also returns the basis
201195
transformation operator `U`, the eigen vector matrix, since they are calculated in the
202-
process of calculating the Bloch-Redfield tensor `R`, and the `U` are usually
196+
process of generating the Bloch-Redfield tensor `R`, and the `U` are usually
203197
needed again later when transforming operators between the laboratory basis and the eigen basis.
204198
The tensor can be obtained in the laboratory basis by setting `fock_basis = true`,
205-
in that case, the transformation operator is not returned.
199+
in that case, the transformation operator `U` is not returned.
206200

207201
### Time evolution
208202

209203
The evolution of a wave function or density matrix, according to the Bloch-Redfield
210204
master equation, can be calculated using the function [`mesolve`](@ref)
211-
using Bloch-Refield tensor in the laboratory basis instead of a liouvillian.
212-
For example, to evaluate the expectation values of the ``\sigma_x``,
213-
``\sigma_y``, and ``\sigma_z`` operators for the example above, we can use the following code:
205+
with Bloch-Refield tensor `R` in the laboratory basis instead of a [`liouvillian`](@ref).
206+
For example, to evaluate the expectation values of the ``\hat{\sigma}_x``,
207+
``\hat{\sigma}_y``, and ``\hat{\sigma}_z`` operators for the example above, we can use the following code:
214208

215209
```@example brmesolve
216210
Δ = 0.2 * 2 * π
@@ -245,14 +239,14 @@ fig, _ = render(sphere)
245239
fig
246240
```
247241

248-
The two steps of calculating the Bloch-Redfield tensor and evolving according to
242+
The two steps of calculating the Bloch-Redfield tensor `R` and evolving according to
249243
the corresponding master equation can be combined into one by using the function
250244
[`brmesolve`](@ref), in addition to the same arguments as [`mesolve`](@ref) and
251245
[`mcsolve`](@ref), the nested list of operator-spectrum
252246
tuple should be given under `a_ops`.
253247

254248
```@example brmesolve
255-
output = brmesolve(H, ψ0, tlist, ((sigmax(),ohmic_spectrum),); e_ops=e_ops)
249+
sol = brmesolve(H, ψ0, tlist, ((sigmax(),ohmic_spectrum),); e_ops=e_ops)
256250
```
257251

258-
The resulting `output` is of the `struct` [`TimeEvolutionSol`](@ref) as [`mesolve`](@ref).
252+
The resulting `sol` is of the `struct` [`TimeEvolutionSol`](@ref) as [`mesolve`](@ref).

0 commit comments

Comments
 (0)