Skip to content

Comments

Heisenberg picture master equation time evolution#486

Open
nicolasloizeau wants to merge 6 commits intoqojulia:masterfrom
nicolasloizeau:heisenberg
Open

Heisenberg picture master equation time evolution#486
nicolasloizeau wants to merge 6 commits intoqojulia:masterfrom
nicolasloizeau:heisenberg

Conversation

@nicolasloizeau
Copy link

This PR adds timeevolution.master_h_heisenberg for time evolving an operator in the Heisenberg picture with the Lindblad master equation.
This is necessary because there is no direct way to use timeevolution.master to do Heisenberg picture time evolution when the jump operators are non hermitian.
The Lindblad equation in the Shroedinger picture is
$$\dot\rho = -i[H,\rho]+\sum_i \gamma_i \left(L_i\rho L_i^\dagger -\frac{1}{2}\{ L_i^\dagger L_i, \rho\}\right)$$
but in the Heisenberg picture :
$$\dot A = i[H,A]+\sum_i \gamma_i \left(L_i^\dagger A L_i -\frac{1}{2}\{ L_i^\dagger L_i, A\}\right)$$

cf #485

@github-actions
Copy link
Contributor

Benchmark Results (Julia v1)

Time benchmarks
master bd20456... master / bd20456...
master/base array types/1//2 25.9 ± 8.7 μs 26.1 ± 8.8 μs 0.994 ± 0.47
master/base array types/100//1 18.6 s 18.7 s 0.994
master/base array types/20//1 0.0462 ± 0.00098 s 0.0459 ± 0.0011 s 1.01 ± 0.032
master/base array types/50//1 1.3 ± 0.022 s 1.3 ± 0.015 s 0.999 ± 0.021
master/qo types/1//2 29.7 ± 9.2 μs 30.9 ± 8.8 μs 0.959 ± 0.4
master/qo types/100//1 15.4 s 15.5 s 0.993
master/qo types/20//1 0.0359 ± 0.00074 s 0.0364 ± 0.00098 s 0.987 ± 0.033
master/qo types/50//1 1.05 ± 0.022 s 1.06 ± 0.0065 s 0.99 ± 0.022
schroedinger/base array types/1//2 5.78 ± 0.32 μs 5.53 ± 0.34 μs 1.05 ± 0.087
schroedinger/base array types/100//1 3.44 ± 0.059 ms 3.35 ± 0.069 ms 1.03 ± 0.028
schroedinger/base array types/20//1 0.138 ± 0.0066 ms 0.138 ± 0.0072 ms 1 ± 0.071
schroedinger/base array types/50//1 0.724 ± 0.017 ms 0.7 ± 0.018 ms 1.03 ± 0.036
schroedinger/qo types/1//2 5.01 ± 0.33 μs 5.18 ± 0.34 μs 0.967 ± 0.09
schroedinger/qo types/100//1 3.21 ± 0.048 ms 3.21 ± 0.049 ms 0.999 ± 0.021
schroedinger/qo types/20//1 0.215 ± 0.0093 ms 0.217 ± 0.0093 ms 0.991 ± 0.06
schroedinger/qo types/50//1 0.773 ± 0.018 ms 0.766 ± 0.015 ms 1.01 ± 0.031
stochastic master/base array types/1//2 0.217 ± 0.063 ms 0.218 ± 0.062 ms 0.995 ± 0.41
stochastic master/base array types/100//1 0.379 ± 0.014 s 0.379 ± 0.016 s 1 ± 0.056
stochastic master/base array types/20//1 26.7 ± 0.72 ms 26.9 ± 0.84 ms 0.993 ± 0.041
stochastic master/base array types/50//1 0.112 ± 0.0099 s 0.112 ± 0.0091 s 1 ± 0.12
stochastic master/qo types/1//2 0.254 ± 0.057 ms 0.254 ± 0.054 ms 0.997 ± 0.31
stochastic master/qo types/100//1 0.584 ± 0.0053 s 0.597 ± 0.011 s 0.978 ± 0.021
stochastic master/qo types/20//1 24.8 ± 1.4 ms 24.4 ± 0.76 ms 1.02 ± 0.065
stochastic master/qo types/50//1 0.145 ± 0.0042 s 0.146 ± 0.0025 s 0.995 ± 0.034
stochastic schroedinger/base array types/1//2 0.0497 ± 0.0015 ms 0.0531 ± 0.0015 ms 0.936 ± 0.038
stochastic schroedinger/base array types/100//1 1.19 ± 0.04 ms 1.2 ± 0.068 ms 0.992 ± 0.066
stochastic schroedinger/base array types/20//1 0.265 ± 0.01 ms 0.273 ± 0.011 ms 0.972 ± 0.054
stochastic schroedinger/base array types/50//1 0.63 ± 0.017 ms 0.627 ± 0.018 ms 1.01 ± 0.039
stochastic schroedinger/qo types/1//2 0.0571 ± 0.0073 ms 0.061 ± 0.0074 ms 0.935 ± 0.16
stochastic schroedinger/qo types/100//1 1.46 ± 0.027 ms 1.47 ± 0.028 ms 0.991 ± 0.026
stochastic schroedinger/qo types/20//1 0.337 ± 0.014 ms 0.337 ± 0.014 ms 0.999 ± 0.058
stochastic schroedinger/qo types/50//1 0.755 ± 0.017 ms 0.756 ± 0.02 ms 0.998 ± 0.034
time_to_load 2.45 ± 0.019 s 2.45 ± 0.022 s 1 ± 0.012
Memory benchmarks
master bd20456... master / bd20456...
master/base array types/1//2 0.516 k allocs: 29.3 kB 0.516 k allocs: 29.3 kB 1
master/base array types/100//1 0.135 M allocs: 11.6 GB 0.135 M allocs: 11.6 GB 1
master/base array types/20//1 7.96 k allocs: 29.6 MB 7.96 k allocs: 29.6 MB 1
master/base array types/50//1 0.0375 M allocs: 0.817 GB 0.0375 M allocs: 0.817 GB 1
master/qo types/1//2 0.634 k allocs: 31.4 kB 0.634 k allocs: 31.4 kB 1
master/qo types/100//1 0.155 M allocs: 11.7 GB 0.155 M allocs: 11.7 GB 1
master/qo types/20//1 9.18 k allocs: 29.9 MB 9.18 k allocs: 29.9 MB 1
master/qo types/50//1 0.043 M allocs: 0.819 GB 0.043 M allocs: 0.819 GB 1
schroedinger/base array types/1//2 0.065 k allocs: 3.81 kB 0.065 k allocs: 3.81 kB 1
schroedinger/base array types/100//1 0.081 k allocs: 0.0532 MB 0.081 k allocs: 0.0532 MB 1
schroedinger/base array types/20//1 0.065 k allocs: 14.3 kB 0.065 k allocs: 14.3 kB 1
schroedinger/base array types/50//1 0.065 k allocs: 31.1 kB 0.065 k allocs: 31.1 kB 1
schroedinger/qo types/1//2 0.067 k allocs: 3.89 kB 0.067 k allocs: 3.89 kB 1
schroedinger/qo types/100//1 0.081 k allocs: 0.0471 MB 0.081 k allocs: 0.0471 MB 1
schroedinger/qo types/20//1 0.067 k allocs: 13.1 kB 0.067 k allocs: 13.1 kB 1
schroedinger/qo types/50//1 0.067 k allocs: 27.7 kB 0.067 k allocs: 27.7 kB 1
stochastic master/base array types/1//2 3.85 k allocs: 0.207 MB 3.85 k allocs: 0.207 MB 1
stochastic master/base array types/100//1 2.69 k allocs: 0.218 GB 2.69 k allocs: 0.218 GB 1
stochastic master/base array types/20//1 4.33 k allocs: 15.5 MB 4.33 k allocs: 15.5 MB 1
stochastic master/base array types/50//1 3.09 k allocs: 0.064 GB 3.09 k allocs: 0.064 GB 1
stochastic master/qo types/1//2 4.81 k allocs: 0.227 MB 4.81 k allocs: 0.227 MB 1
stochastic master/qo types/100//1 5.46 k allocs: 0.389 GB 5.46 k allocs: 0.389 GB 1
stochastic master/qo types/20//1 5.46 k allocs: 16.8 MB 5.46 k allocs: 16.8 MB 1
stochastic master/qo types/50//1 5.46 k allocs: 0.0984 GB 5.46 k allocs: 0.0984 GB 1
stochastic schroedinger/base array types/1//2 0.072 k allocs: 3.94 kB 0.072 k allocs: 3.94 kB 1
stochastic schroedinger/base array types/100//1 0.265 k allocs: 0.0649 MB 0.265 k allocs: 0.0649 MB 1
stochastic schroedinger/base array types/20//1 0.072 k allocs: 14.4 kB 0.072 k allocs: 14.4 kB 1
stochastic schroedinger/base array types/50//1 0.072 k allocs: 31.2 kB 0.072 k allocs: 31.2 kB 1
stochastic schroedinger/qo types/1//2 0.403 k allocs: 19.5 kB 0.403 k allocs: 19.5 kB 1
stochastic schroedinger/qo types/100//1 0.419 k allocs: 0.0684 MB 0.419 k allocs: 0.0684 MB 1
stochastic schroedinger/qo types/20//1 0.403 k allocs: 30 kB 0.403 k allocs: 30 kB 1
stochastic schroedinger/qo types/50//1 0.403 k allocs: 0.0456 MB 0.403 k allocs: 0.0456 MB 1
time_to_load 0.145 k allocs: 11 kB 0.145 k allocs: 11 kB 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant