|
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | +# Linear response and transmission/reflection coeffictients for magnon three-wave mixing {#Linear-response-and-transmission/reflection-coeffictients-for-magnon-three-wave-mixing} |
| 5 | + |
| 6 | +```julia |
| 7 | +using HarmonicSteadyState, QuantumCumulants, Plots |
| 8 | +``` |
| 9 | + |
| 10 | + |
| 11 | +Consider a model of nonlinear magnon-magnon coupling, as described in [this](https://arxiv.org/abs/2506.11527) paper. The model describes a three-wave mixing interaction between a strongly driven $k=0$ FMR mode and two parametricallly excited propagating modes with opposite momentum $\pm k$ and at half frequency. In this notebook, we will show how the mean-field approximation can be used to calculate steady states, and to calculate the $S_{21}$ transmission coefficient. |
| 12 | + |
| 13 | +```julia |
| 14 | +hm = FockSpace(:magnon) |
| 15 | +hc = FockSpace(:polariton) |
| 16 | +h = hm ⊗ hc # Hilbertspace |
| 17 | + |
| 18 | +@qnumbers m::Destroy(h, 1) c::Destroy(h, 2) # Operators |
| 19 | + |
| 20 | +@rnumbers Δ Vk Ωd γm γk # Parameters |
| 21 | +param = [Δ, Vk, Ωd, γm, γk] |
| 22 | + |
| 23 | +H_RWA_sym = ( |
| 24 | + Δ * m' * m + Δ / 2 * c' * c + Vk * m * c' * c' + Vk * m' * c * c + (Ωd * m + Ωd * m') |
| 25 | +) |
| 26 | +ops = [m, m', c, c'] # Operators for meanfield evolution |
| 27 | + |
| 28 | +eqs_RWA = meanfield(ops, H_RWA_sym, [m, c]; rates=[γm, γk], order=1) |
| 29 | +eqs_completed_RWA = complete(eqs_RWA) # Meanfield equations using QuantumCumulants.jl |
| 30 | +``` |
| 31 | + |
| 32 | +\begin{align} |
| 33 | +\frac{d}{dt} \langle m\rangle &= -1 i \langle c\rangle ^{2} Vk -1 i \Delta \langle m\rangle -1 i {\Omega}d -0.5 {\gamma}m \langle m\rangle \\ |
| 34 | +\frac{d}{dt} \langle m^\dagger\rangle &= 1 i \Delta \langle m^\dagger\rangle -0.5 {\gamma}m \langle m^\dagger\rangle + 1 i {\Omega}d + 1 i Vk \langle c^\dagger\rangle ^{2} \\ |
| 35 | +\frac{d}{dt} \langle c\rangle &= -0.5 \langle c\rangle {\gamma}k + \frac{-1}{2} i \langle c\rangle \Delta -2 i Vk \langle m\rangle \langle c^\dagger\rangle \\ |
| 36 | +\frac{d}{dt} \langle c^\dagger\rangle &= -0.5 {\gamma}k \langle c^\dagger\rangle + \frac{1}{2} i \Delta \langle c^\dagger\rangle + 2 i \langle c\rangle \langle m^\dagger\rangle Vk |
| 37 | +\end{align} |
| 38 | + |
| 39 | + |
| 40 | +We can use this meanfield equations to construct a `HarmonicEquation` object in HarmonicSteadyState.jl. In the construction, additional information is computed, such as the Jacobian of the equations, which is used to determine the stability if the the steady states. |
| 41 | + |
| 42 | +```julia |
| 43 | +harmonic_eq = HarmonicEquation(eqs_completed_RWA, param) |
| 44 | +``` |
| 45 | + |
| 46 | + |
| 47 | +```ansi |
| 48 | +A set of 4 harmonic equations |
| 49 | +Variables: mᵣ(t), mᵢ(t), cᵣ(t), cᵢ(t) |
| 50 | +Parameters: Δ, Vk, Ωd, γm, γk |
| 51 | +
|
| 52 | +Harmonic ansatz: |
| 53 | +0 = mᵣ(t) + mᵢ(t) + cᵣ(t) + cᵢ(t) |
| 54 | +
|
| 55 | +Harmonic equations: |
| 56 | +
|
| 57 | +1.4142135623730951(-0.35355339059327373mᵣ(t)*γm - 0.7071067811865475mᵢ(t)*Δ - 0.9999999999999998Vk*cᵣ(t)*cᵢ(t)) ~ Differential(t)(mᵣ(t)) |
| 58 | +
|
| 59 | +-1.4142135623730951(-Ωd - 0.7071067811865475mᵣ(t)*Δ + 0.35355339059327373mᵢ(t)*γm - 0.4999999999999999Vk*(cᵣ(t)^2) + 0.4999999999999999Vk*(cᵢ(t)^2)) ~ Differential(t)(mᵢ(t)) |
| 60 | +
|
| 61 | +1.4142135623730951(-0.35355339059327373cᵣ(t)*γk - 0.35355339059327373cᵢ(t)*Δ - 0.9999999999999998Vk*cᵣ(t)*mᵢ(t) + 0.9999999999999998Vk*mᵣ(t)*cᵢ(t)) ~ Differential(t)(cᵣ(t)) |
| 62 | +
|
| 63 | +-1.4142135623730951(-0.35355339059327373cᵣ(t)*Δ + 0.35355339059327373cᵢ(t)*γk - 0.9999999999999998Vk*cᵣ(t)*mᵣ(t) - 0.9999999999999998Vk*cᵢ(t)*mᵢ(t)) ~ Differential(t)(cᵢ(t)) |
| 64 | +
|
| 65 | +``` |
| 66 | + |
| 67 | + |
| 68 | +Let's sweep the power of the drive $\Omega_d$, with $\Delta=0$, and solve for the steady state. The steady-state solutions show that the FMR mode saturates after a threshold power, followed by the coherent excitation of the parametrically induced counter-propagating modes. |
| 69 | + |
| 70 | +```julia |
| 71 | +drive_range = range(0, 1.8, 100) |
| 72 | +fixed = (Δ => 0, Vk => 0.0002, γm => 0.1, γk => 0.01) |
| 73 | +varied = (Ωd => drive_range) |
| 74 | +result = get_steady_states(harmonic_eq, TotalDegree(), varied, fixed) |
| 75 | + |
| 76 | +plot(plot(result; y="1/sqrt(2)*(mᵣ+ mᵢ)"), plot(result; y="1/sqrt(2)*(cᵣ + cᵢ)")) |
| 77 | + |
| 78 | +# Linear response and S21 |
| 79 | +``` |
| 80 | + |
| 81 | +{width=600px height=400px} |
| 82 | + |
| 83 | +To find the response of the driven system to a second, weak probe, we use the method described [here](https://quantumengineeredsystems.github.io/HarmonicBalance.jl/stable/background/stability_response#linresp_background). Here, we calculate the response in the same rotating frame as the Hamiltonian. The linear response is related to the scattering parameter $S_{21}$ by $S_{21}(\omega)=1-\sqrt{\kappa_{ext}} \chi(\omega),$ where $\kappa_{ext}$ is the coupling of the system to the measurement apparatus. |
| 84 | + |
| 85 | +The result below shows the characteristic splitting of the magnon resonance above the power threshold, which matches the experiment. |
| 86 | + |
| 87 | +```julia |
| 88 | +Ω_range = range(-0.1, 0.1, 500) |
| 89 | +χ3 = get_susceptibility(result, 1, Ω_range, 3); |
| 90 | +χ1 = get_susceptibility(result, 1, Ω_range, 1); |
| 91 | +κ_ext = 0.05 |
| 92 | +S21_3 = 1 .- χ3 * κ_ext / 2 |
| 93 | +S21_log_3 = 20 .* log10.(abs.(S21_3)) # expressed in dB |
| 94 | +S21_1 = 1 .- χ1 * κ_ext / 2 |
| 95 | +S21_log_1 = 20 .* log10.(abs.(S21_1)) # expressed in dB |
| 96 | +``` |
| 97 | + |
| 98 | + |
| 99 | +```ansi |
| 100 | +500×35 Matrix{Float64}: |
| 101 | + -0.705811 -0.705811 -0.705811 … -0.705811 -0.705811 -0.705811 |
| 102 | + -0.71075 -0.71075 -0.71075 -0.71075 -0.71075 -0.71075 |
| 103 | + -0.715739 -0.715739 -0.715739 -0.715739 -0.715739 -0.715739 |
| 104 | + -0.720778 -0.720778 -0.720778 -0.720778 -0.720778 -0.720778 |
| 105 | + -0.725868 -0.725868 -0.725868 -0.725868 -0.725868 -0.725868 |
| 106 | + -0.731009 -0.731009 -0.731009 … -0.731009 -0.731009 -0.731009 |
| 107 | + -0.736202 -0.736202 -0.736202 -0.736202 -0.736202 -0.736202 |
| 108 | + -0.741448 -0.741448 -0.741448 -0.741448 -0.741448 -0.741448 |
| 109 | + -0.746748 -0.746748 -0.746748 -0.746748 -0.746748 -0.746748 |
| 110 | + -0.752102 -0.752102 -0.752102 -0.752102 -0.752102 -0.752102 |
| 111 | + ⋮ ⋱ |
| 112 | + -0.746748 -0.746748 -0.746748 -0.746748 -0.746748 -0.746748 |
| 113 | + -0.741448 -0.741448 -0.741448 -0.741448 -0.741448 -0.741448 |
| 114 | + -0.736202 -0.736202 -0.736202 -0.736202 -0.736202 -0.736202 |
| 115 | + -0.731009 -0.731009 -0.731009 -0.731009 -0.731009 -0.731009 |
| 116 | + -0.725868 -0.725868 -0.725868 … -0.725868 -0.725868 -0.725868 |
| 117 | + -0.720778 -0.720778 -0.720778 -0.720778 -0.720778 -0.720778 |
| 118 | + -0.715739 -0.715739 -0.715739 -0.715739 -0.715739 -0.715739 |
| 119 | + -0.71075 -0.71075 -0.71075 -0.71075 -0.71075 -0.71075 |
| 120 | + -0.705811 -0.705811 -0.705811 -0.705811 -0.705811 -0.705811 |
| 121 | +``` |
| 122 | + |
| 123 | + |
| 124 | +Compare the two branches |
| 125 | + |
| 126 | +```julia |
| 127 | +stable = get_class(result, 3, "physical") |
| 128 | +heatmap( |
| 129 | + Ω_range, drive_range, vcat(S21_log_1', S21_log_3'); c=:matter, cbar_title="S21 (dB)" |
| 130 | +) |
| 131 | +ylabel!("Ω_d") |
| 132 | +xlabel!("Probe detuning") |
| 133 | +``` |
| 134 | + |
| 135 | +{width=600px height=400px} |
| 136 | + |
| 137 | + |
| 138 | +--- |
| 139 | + |
| 140 | + |
| 141 | +_This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl)._ |
0 commit comments