pub struct WignerFunction {
pub state_description: String,
pub grid_values: Vec<(f64, f64, f64)>,
pub hbar: f64,
}Expand description
The Wigner quasi-probability distribution for a quantum state.
The Wigner function W_ρ(q, p) is the Weyl transform of the density matrix ρ: W_ρ(q, p) = (1/πℏ) ∫ ⟨q+y|ρ|q-y⟩ e^{2ipy/ℏ} dy. It is a real-valued function (not necessarily non-negative) on phase space ℝ².
Fields§
§state_description: StringDescription of the quantum state.
grid_values: Vec<(f64, f64, f64)>Sample values W(q_i, p_i) at a grid of phase space points (q, p, W).
hbar: f64Planck constant ℏ used in the definition.
Implementations§
Source§impl WignerFunction
impl WignerFunction
Sourcepub fn new(state_description: impl Into<String>) -> Self
pub fn new(state_description: impl Into<String>) -> Self
Construct an empty Wigner function for the named state.
Sourcepub fn is_normalized(&self) -> bool
pub fn is_normalized(&self) -> bool
The Wigner function integrates to 1 over all of phase space: ∫ W dq dp = 1.
Sourcepub fn lower_bound(&self) -> f64
pub fn lower_bound(&self) -> f64
The Wigner function satisfies the uncertainty bound: W_ρ ≥ -1/(πℏ).
Sourcepub fn approximate_purity(&self) -> f64
pub fn approximate_purity(&self) -> f64
Compute the approximate purity Tr(ρ²) = (2πℏ) ∫ W² dq dp from grid data.
Trait Implementations§
Source§impl Clone for WignerFunction
impl Clone for WignerFunction
Source§fn clone(&self) -> WignerFunction
fn clone(&self) -> WignerFunction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for WignerFunction
impl RefUnwindSafe for WignerFunction
impl Send for WignerFunction
impl Sync for WignerFunction
impl Unpin for WignerFunction
impl UnsafeUnpin for WignerFunction
impl UnwindSafe for WignerFunction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more