Skip to content

Commit dc5c84e

Browse files
committed
remove brcrossterm and unneccesary import
1 parent de2cb6d commit dc5c84e

File tree

1 file changed

+3
-73
lines changed

1 file changed

+3
-73
lines changed

src/br.jl

Lines changed: 3 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import QuantumToolbox: _spre, _spost, _sprepost, makeVal, getVal
2-
31
@doc raw"""
42
bloch_redfield_tensor(
53
H::QuantumObject{Operator},
@@ -58,74 +56,6 @@ function bloch_redfield_tensor(
5856
end
5957
end
6058

61-
62-
function brcrossterm(
63-
H::T, a_op::T, b_op::T, spectra::F; sec_cutoff::Real=0.1,
64-
fock_basis::Bool=false
65-
) where {T<:QuantumObject{Operator}, F<:Function}
66-
return brcrossterm(H, a_op, b_op, spectra, sec_cutoff, makeVal(fock_basis))
67-
end
68-
69-
function brcrossterm(
70-
H::T, a_op::T, b_op::T, spectra::F, sec_cutoff::Real, fock_basis::Val{true}
71-
) where {T<:QuantumObject{Operator}, F<:Function}
72-
rst = eigenstates(H)
73-
return _brcrossterm(rst, a_op, b_op, spectra, sec_cutoff, Val(true))
74-
end
75-
76-
function brcrossterm(
77-
H::T, a_op::T, b_op::T, spectra::F, sec_cutoff::Real, fock_basis::Val{false}
78-
) where {T<:QuantumObject{Operator}, F<:Function}
79-
rst = eigenstates(H)
80-
return _brcrossterm(rst, a_op, b_op, spectra, sec_cutoff, Val(false)), Qobj(rst.vectors, Operator(), rst.dimensions)
81-
end
82-
83-
function _brcrossterm(
84-
rst::EigsolveResult,
85-
a_op::T,
86-
b_op::T,
87-
spectra::F,
88-
sec_cutoff::Real,
89-
fock_basis::Union{Val{true},Val{false}}
90-
) where {T<:QuantumObject{Operator},F<:Function}
91-
92-
_check_br_spectra(spectra)
93-
94-
cutoff = (sec_cutoff == -1) ? Inf : sec_cutoff |> float
95-
U, N = rst.vectors, length(rst.values)
96-
97-
skew = @. rst.values - rst.values' |> real
98-
spectrum = spectra.(skew)
99-
100-
A_mat = U' * a_op.data * U
101-
B_mat = U' * b_op.data * U
102-
103-
m_cut = similar(A_mat)
104-
map!(x -> abs(x) < cutoff, m_cut, skew)
105-
106-
ac_term = (A_mat .* spectrum) * B_mat
107-
bd_term = A_mat * (B_mat .* trans(spectrum))
108-
ac_term .*= m_cut
109-
bd_term .*= m_cut
110-
111-
Id = I(N)
112-
vec_skew = vec(skew)
113-
M_cut = @. abs(vec_skew - vec_skew') < cutoff
114-
115-
out = 1/2 * (
116-
+ QuantumToolbox._sprepost(B_mat .* trans(spectrum), A_mat)
117-
+ QuantumToolbox._sprepost(B_mat, A_mat .* spectrum)
118-
- _spost(ac_term, Id)
119-
- QuantumToolbox._spre(bd_term, Id)
120-
) .* M_cut
121-
122-
if getVal(fock_basis)
123-
return QuantumObject(_sprepost(U, U') * out * _sprepost(U', U), SuperOperator(), rst.dimensions)
124-
else
125-
return QuantumObject(out, SuperOperator(), rst.dimensions)
126-
end
127-
end
128-
12959
@doc raw"""
13060
brterm(
13161
H::QuantumObject{Operator},
@@ -200,10 +130,10 @@ function _brterm(
200130
end
201131

202132
out = 0.5 * (
203-
+ QuantumToolbox._sprepost(A_mat .* trans(spectrum), A_mat)
204-
+ QuantumToolbox._sprepost(A_mat, A_mat .* spectrum)
133+
+ _sprepost(A_mat .* trans(spectrum), A_mat)
134+
+ _sprepost(A_mat, A_mat .* spectrum)
205135
- _spost(ac_term, Id)
206-
- QuantumToolbox._spre(bd_term, Id)
136+
- _spre(bd_term, Id)
207137
)
208138

209139
(sec_cutoff != -1) && (out .*= M_cut)

0 commit comments

Comments
 (0)