Coherent-Feedback Squeezing with a Beam-Splitter Loop

This example implements the feedback loop to enhance field squeezing using coherent feedback described in J. Gough and S. Wildfeuer, PRA 80, 042107 (2009), see also Example VI.1 of J. Combes, et al. Advances in Physics: X, 2:3, 784-888 (2017). A degenerate parametric oscillator is concatenated with a beam splitter, and the internal wires are eliminated with the SLH feedback reduction rule.

using QuantumInputOutput
using SecondQuantizedAlgebra
using SymbolicUtils
using Plots
# symbolic Hilbert space
hc = FockSpace(:c)

# symbolic operator
a = Destroy(hc, :a, 1)

# symbolic parameters
κ = rnumber("κ")
ϵ = rnumber("ϵ")
η = rnumber("η")

The open-loop OPO has one port, while the beam splitter has two ports. We first form the unconnected network and then apply the two feedback reductions.

r = √(1 - η^2)
G_opo = SLH(1, √(κ) * a, 1im * ϵ * (a'^2 - a^2))
G_bs = SLH([-r η; η r], [0, 0], 0)
G_unconnected = G_opo ⊞ G_bs
G_loop = feedback(G_unconnected, 1 => 2, 2 => 1)
S_loop = get_scattering(G_loop)
L_loop = get_lindblad(G_loop)[1]

\[\frac{\eta \sqrt{\kappa}}{1 + \sqrt{1 -1 \eta^{2}}} a\]

H_loop = get_hamiltonian(G_loop)

\[\frac{-4.0 i \epsilon \left( \sqrt{1 -1 \eta^{2}} \right)^{3}}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a a + \frac{-1.0 i \epsilon}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a a + \frac{1.0 i \epsilon \left( \sqrt{1 -1 \eta^{2}} \right)^{4}}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a^\dagger a^\dagger + \frac{-1.0 i \epsilon \left( \sqrt{1 -1 \eta^{2}} \right)^{4}}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a a + \frac{4.0 i \epsilon \left( \sqrt{1 -1 \eta^{2}} \right)^{3}}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a^\dagger a^\dagger + \frac{6.0 i \epsilon \left( \sqrt{1 -1 \eta^{2}} \right)^{2}}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a^\dagger a^\dagger + \frac{1.0 i \epsilon}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a^\dagger a^\dagger + \frac{4.0 i \epsilon \sqrt{1 -1 \eta^{2}}}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a^\dagger a^\dagger + \frac{-6.0 i \epsilon \left( \sqrt{1 -1 \eta^{2}} \right)^{2}}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a a + \frac{-4.0 i \epsilon \sqrt{1 -1 \eta^{2}}}{\left( 1 + \sqrt{1 -1 \eta^{2}} \right)^{4}} a a\]

The feedback loop leaves the OPO Hamiltonian unchanged but rescales the coupling operator by $l = \eta / (1 + \sqrt{1-\eta^2})$. For a numerical illustration, we evaluate the effective damping factor $l^2$ as a function of the beam-splitter transmission coefficient.

η_grid = collect(0.0:0.005:0.999)
l2_grid = @. (η_grid / (1 + sqrt(1 - η_grid^2)))^2

p = plot(
    η_grid,
    l2_grid;
    lw = 2,
    label = "",
    xlabel = "η",
    ylabel = "effective damping fraction",
    grid = true,
    size = (520, 320),
)
hline!(p, [1.0]; color = :grey, ls = :dash, label = "open loop")
p
Example block output

Package versions

These results were obtained using the following versions:

using InteractiveUtils
versioninfo()

using Pkg
Pkg.status(
    ["QuantumInputOutput", "SecondQuantizedAlgebra", "Plots"],
    mode = PKGMODE_MANIFEST,
)
Julia Version 1.12.5
Commit 5fe89b8ddc1 (2026-02-09 16:05 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 4 × AMD EPYC 9V74 80-Core Processor
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, znver4)
  GC: Built with stock GC
Threads: 4 default, 1 interactive, 4 GC (on 4 virtual cores)
Environment:
  JULIA_PKG_SERVER_REGISTRY_PREFERENCE = eager
  JULIA_DEBUG = Documenter
  JULIA_NUM_THREADS = auto
Status `~/work/QuantumInputOutput.jl/QuantumInputOutput.jl/docs/Manifest.toml`
  [91a5bcdd] Plots v1.41.6
  [18f9eda6] QuantumInputOutput v0.1.0 `~/work/QuantumInputOutput.jl/QuantumInputOutput.jl`
  [f7aa4685] SecondQuantizedAlgebra v0.4.4

This page was generated using Literate.jl.