Wigner and phase-space analysis

The zkit.mwigner subpackage provides marginal Wigner transforms, phase-space currents, covariance analysis, and autocorrelation tools for TDSEZ outputs.

Warning

The Wigner-transform and phase-space analysis code still needs further validation against published benchmarks. Use it as a research path, not as a finalized analysis result.

Install the optional dependency:

pip install -e ".[mwigner]"

Marginal Wigner transform

from zkit.mwigner.transform import get_wigner_research

W, p = get_wigner_research(
    psi,
    dx=0.05,
    dy=0.05,
    nx=256,
    ny=256,
)
print(W.shape)
print(p.min(), p.max())

Negativity and purity

from zkit.mwigner.transform import measure_wigner_negativity
from zkit.mwigner.covariance import compute_4d_covariance, symplectic_eigenvalues, gaussian_purity

W, p = get_wigner_research(psi, dx, dy)
neg = measure_wigner_negativity(W, dx, dy)
print("Wigner negativity:", neg)

Sigma = compute_4d_covariance(psi, dx, dy)
nu = symplectic_eigenvalues(Sigma)
mu = gaussian_purity(nu)
print("Gaussian purity:", mu)

Phase-space current

from zkit.mwigner.current import current_x, current_p_classical, moyal_quantum_force, moyal_residual

Jx = current_x(W, p)
Jp = current_p_classical(W, x, Vp)
Q = moyal_quantum_force(W, x, p, V_derivs)
R = moyal_residual(W, x, p, V_derivs)

Autocorrelation

from zkit.mwigner.autocorr import autocorrelation, autocorr_analysis, autocorrelation_decay

A = autocorrelation(psi_series, dxs)
A2 = A ** 2
P = reduced_purity(psi_series, dxs)
S = schmidt_entropy(psi_series, dxs)

A_full, A2_full, arg, Gamma = autocorrelation_decay(psi_series, dxs, t)

Analysis helpers

from zkit.mwigner import analysis

analysis.analyze_run(deck, wfs)
analysis.animate_run(deck, wfs)
analysis.analyze_covariance(deck, wfs)
analysis.analyze_autocorr(deck, wfs)
analysis.crosscheck_timedata(wfs, ted, run_dir)
analysis.plot_autocorr_overlay(run_dir)