Auxiliary Density Operators
Introduction
The auxiliary density operators (ADOs) $\rho_{\textbf{j}\vert\textbf{q}}^{(m,n,p)}(t)$ encode environmental effects related to different exponential terms (Exponent) present in the Bosonic Bath and Fermionic Bath correlation functions and provide an iterative description of high-order system-baths memory effects.
In $\rho_{\textbf{j}\vert\textbf{q}}^{(m,n,p)}(t)$, the tuple $(m, n, p)$ represents the $m$th-level-bosonic-and-$n$th-level-fermionic ADO with parity $p$, and $\textbf{j}$ ($\textbf{q}$) denotes a vector $[j_m,\cdots,j_1]$ ($[q_n,\cdots,q_1]$) where each $j$ ($q$) represents a specific multi-index ensemble $\{\beta, l\}$ ($\{\alpha, h\}$) with
- $\beta$ : denotes the index of bosonic bath
- $\alpha$ : denotes the index of fermionic bath
- $l$ : denotes the index of exponent in the bosonic bath
- $h$ : denotes the index of exponent in the fermionic bath
The system reduced density operator refers to $m=n=0$, namely $\rho_{\vert}^{(0,0,p)}(t)$.
In HierarchicalEOM.jl, we express all the auxiliary density operators into a single column vector and store it in the object defined as :
which is usually obtained after solving the time evolution or stationary state by a given HEOM Liouvillian superoperator Matrix.
Fields
The fields of the structure ADOs are as follows:
data: the vectorized auxiliary density operatorsdimensions: the dimension list of the coupling operator (should be equal to the system dimensions).N: the number of auxiliary density operatorsparity: the parity label
One obtain the value of each fields as follows:
# usually obtained after solving time evolution or stationary state
ados::ADOs
ados.data
ados.dimensions
ados.dims
ados.N
ados.parityWe express all the auxiliary density operators in only a single column vector ADOs.data. To obtain each auxiliary density operators in matrix form, please use the following methods and functions.
Reduced Density Operator
In order to obtain the system reduced density operator in the type of QuantumObject, just simply call getRho
ados::ADOs
ρ = getRho(ados)High-Level Auxiliary Density Operators
Although we express all the auxiliary density operators in the vector ADOs.data, we still make the ADOs like a list where accessing each element would return a specific auxiliary density operator in matrix type.
In order to obtain the auxiliary density operator in the type of QuantumObject with a specific index i, just simply call getADO
ados::ADOs
i::Int
ρ = getADO(ados, 1) # the first element will always be the reduced density operator
ado = getADO(ados, i) # the i-th auxiliary density operatorAlso, ADOs supports all the element-wise methods (functions) :
Supports length(::ADOs) which returns the total number of auxiliary density operators (same as ADOs.N) :
ados::ADOs
length(ados)Supports bracket operation [] which is similar to access the element of a list :
ados::ADOs
# all the following returned ADO will be in matrix form
ados[1] # returns the first auxiliary density operator (which is always the reduced density operator)
ados[10] # returns the 10-th auxiliary density operator
ados[3:10] # returns a list of auxiliary density operators from index 3 to 10
ados[end] # returns the last auxiliary density operatorSupports iteration (for-loop) process :
ados::ADOs
for ado in ados # iteration
ado # each auxiliary density operator in matrix form
endTo find the index of the auxiliary density operator and it's corresponding bath Exponent, please refer to Hierarchy Dictionary for more details.
Expectation Value
Given an observable $A$ and ADOs $\rho^{(m,n,p)}_{\textbf{j} \vert \textbf{q}}$, one can calculate the expectation value by
\[\langle A \rangle = \textrm{Tr}\left[A \rho^{(0,0,p)}_{ \vert }\right],\]
where, $m=n=0$ represents the reduced density operator.
One can directly calculate the expectation values using the function QuantumToolbox.expect:
A::QuantumObject # observable
# with a single ADOs
ados::ADOs
E = expect(A, ados)
# with a list contains many ADOs
ados_list::Vector{ADOs}
Elist = expect(A, ados_list)Here, Elist contains the expectation values corresponding to the ados_list.