This GUI is a front-end for the Julia script two_mode_ellipse_data.jl. It lets you:
- enter physical and numerical parameters,
- run the NEGF steady-state calculation,
- visualize the single-mode phase-space ellipses (covariance),
- save a paper-ready PDF,
- or load a TOML file and plot without re-running Julia.
Downloads
Recommended: grab the full bundle (includes the required src/ folder):
Or download the files individually (keep src/ABEE.jl inside a src/ folder):
- gui_two_mode_ellipse.py
- two_mode_ellipse_data.jl
- Project.toml
- Manifest.toml
- ABEE.jl
- Sample TOML (for Load TOML)
Installation
Python dependencies
python -m pip install matplotlib toml
Julia setup
From the folder that contains the downloaded files:
julia --project -e "import Pkg; Pkg.instantiate()"
Running the GUI
python gui_two_mode_ellipse.py
The GUI is Tkinter-based (built into Python). It runs Julia via two_mode_ellipse_data.jl.
Physics background (short)
We study two coupled harmonic modes in phase spaceR = (x1, p1, x2, p2) with [x, p] = i.
The steady state is computed from the Keldysh Green’s function (NEGF):
V = (i/2) ∫ dω/(2π) GK(ω)
The GUI displays the one-sigma ellipse of each mode in shot-noise units (SNU), where vacuum variances are 1.
Inter-mode coupling choices
- RWA: beam-splitter form
g (a1† a2 + a2† a1)
(implemented as coupled x/p blocks inK) - xx / pp / xxpp: direct coordinate coupling
- none: modes are uncoupled
Baths
Each mode is coupled to an independent thermal bath, either through x or p:
bath-coupling1 = x or pbath-coupling2 = x or p
Temperatures T1, T2 (non-equilibrium allowed) and damping gamma1, gamma2 are configurable.
Gamma convention (important)
The code supports:
gamma-convention = snu(default)
Interpretsgammaas damping in dimensionless (SNU) quadratures, so the meaning ofgammadoes not change with the oscillator frequency.gamma-convention = physical
Legacy behavior,gammais in physical units of (x, p).
This can make p-coupled baths appear much stronger at large omega.
Plot without Julia
- Click Load TOML.
- Select
two_mode_ellipse_sample.toml(or any TOML produced by the Julia script). - The plot updates immediately.
Save to PDF
- Check Auto-save PDF to save after each run, or
- Click Save PDF Now to export the current plot.
If no output path is set, the GUI writes <toml>_both.pdf next to the TOML file.
What the plot shows
Each subplot shows one mode:
- blue ellipse: 1-sigma covariance contour
- red/green axes: standard deviations sigma_x, sigma_p
- dashed axes: principal axes
- text box: eigenvalues, angle, symplectic nu
The global header shows:
E𝒩= log-negativityν̃_min= minimum PPT symplectic eigenvalue
In SNU, entanglement occurs when ν̃_min < 1.
Notes on physicality
Some parameter sets can produce unphysical covariance matrices. If you see warnings:
- reduce damping (gamma),
- reduce coupling (g, kxx, kpp),
- increase cutoff omega_D if using Drude baths.
