pub struct SU3 {
pub matrix: Array2<Complex64>,
}Expand description
SU(3) group element - 3×3 complex unitary matrix with determinant 1
Represents a color rotation in QCD.
§Representation
We use Array2<Complex64> from ndarray to represent the 3×3 unitary matrix.
§Constraints
- Unitarity: U† U = I
- Determinant: det(U) = 1
§Examples
use lie_groups::su3::SU3;
use lie_groups::traits::LieGroup;
let id = SU3::identity();
assert!(id.verify_unitarity(1e-10));Fields§
§matrix: Array2<Complex64>3×3 complex unitary matrix
Implementations§
Source§impl SU3
impl SU3
Sourcepub fn verify_unitarity(&self, tolerance: f64) -> bool
pub fn verify_unitarity(&self, tolerance: f64) -> bool
Verify unitarity: U† U = I
Sourcepub fn distance_to_identity(&self) -> f64
pub fn distance_to_identity(&self) -> f64
Distance from identity element
Trait Implementations§
Source§impl LieGroup for SU3
impl LieGroup for SU3
Source§type Algebra = Su3Algebra
type Algebra = Su3Algebra
Associated Lie algebra type. Read more
Source§fn adjoint(&self) -> Self
fn adjoint(&self) -> Self
Adjoint representation element (for matrix groups: conjugate transpose). Read more
Source§fn adjoint_action(&self, algebra_element: &Su3Algebra) -> Su3Algebra
fn adjoint_action(&self, algebra_element: &Su3Algebra) -> Su3Algebra
Adjoint representation:
Ad_g: 𝔤 → 𝔤 Read moreSource§fn distance_to_identity(&self) -> f64
fn distance_to_identity(&self) -> f64
Geodesic distance from identity: d(g, e) Read more
Source§fn exp(tangent: &Su3Algebra) -> Self
fn exp(tangent: &Su3Algebra) -> Self
Exponential map: 𝔤 → G Read more
Source§fn log(&self) -> LogResult<Su3Algebra>
fn log(&self) -> LogResult<Su3Algebra>
Logarithm map: G → 𝔤 (inverse of exponential) Read more
Source§fn distance(&self, other: &Self) -> f64
fn distance(&self, other: &Self) -> f64
Distance between two group elements: d(g, h) Read more
Source§fn is_near_identity(&self, tolerance: f64) -> bool
fn is_near_identity(&self, tolerance: f64) -> bool
Check if this element is approximately the identity. Read more
Source§fn trace_identity() -> f64
fn trace_identity() -> f64
Trace of the identity element Read more
Source§fn reorthogonalize(&self) -> Self
fn reorthogonalize(&self) -> Self
Project element back onto the group manifold using Gram-Schmidt orthogonalization. Read more
Source§impl MulAssign<&SU3> for SU3
impl MulAssign<&SU3> for SU3
Source§fn mul_assign(&mut self, rhs: &SU3)
fn mul_assign(&mut self, rhs: &SU3)
Performs the
*= operation. Read moreimpl Compact for SU3
SU(3) is compact
All elements are bounded: ||U|| = 1 for all U ∈ SU(3).
impl SemiSimple for SU3
SU(3) is semi-simple
impl Simple for SU3
SU(3) is simple
It has no non-trivial normal subgroups (except center ℤ₃).
impl StructuralPartialEq for SU3
Auto Trait Implementations§
impl Freeze for SU3
impl RefUnwindSafe for SU3
impl Send for SU3
impl Sync for SU3
impl Unpin for SU3
impl UnsafeUnpin for SU3
impl UnwindSafe for SU3
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.