ABEE two-mode ellipse GUI

Blog Image

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):

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 space
R = (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 in K)
  • 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 p
  • bath-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)
    Interprets gamma as damping in dimensionless (SNU) quadratures, so the meaning of gamma does not change with the oscillator frequency.

  • gamma-convention = physical
    Legacy behavior, gamma is in physical units of (x, p).
    This can make p-coupled baths appear much stronger at large omega.

Plot without Julia

  1. Click Load TOML.
  2. Select two_mode_ellipse_sample.toml (or any TOML produced by the Julia script).
  3. 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.