pub struct J(/* private fields */);Expand description
A non-negative total angular momentum stored as twice its physical value.
This representation keeps integer and half-integer quantum numbers exact. For example,
J::half(1) represents $1/2$, and J::int(1) represents $1$.
Implementations§
Source§impl J
impl J
Sourcepub const fn half(value: u32) -> Self
pub const fn half(value: u32) -> Self
Construct a non-negative angular momentum from the given numerator over two.
Sourcepub fn projections(self) -> Vec<M>
pub fn projections(self) -> Vec<M>
Enumerate the valid signed projections for this angular momentum.
Sourcepub const fn multiplicity(self) -> u32
pub const fn multiplicity(self) -> u32
Return the number of projections, $2J + 1$.
Sourcepub const fn is_integer(self) -> bool
pub const fn is_integer(self) -> bool
Return whether this quantum number represents an integer value.
Sourcepub fn coupled_with(self, other: Self) -> Vec<Self>
pub fn coupled_with(self, other: Self) -> Vec<Self>
Enumerate the total angular momenta obtainable by coupling this value to other.
Results run from $\lvert J_1 - J_2\rvert$ through $J_1 + J_2$ in unit steps.
Sourcepub fn can_couple_to(self, j1: Self, j2: Self) -> bool
pub fn can_couple_to(self, j1: Self, j2: Self) -> bool
Return whether j1 and j2 can couple to produce this angular momentum.
Trait Implementations§
impl Copy for J
Source§impl<'de> Deserialize<'de> for J
impl<'de> Deserialize<'de> for J
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for J
Source§impl Ord for J
impl Ord for J
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialOrd for J
impl PartialOrd for J
impl StructuralPartialEq for J
Auto Trait Implementations§
impl Freeze for J
impl RefUnwindSafe for J
impl Send for J
impl Sync for J
impl Unpin for J
impl UnsafeUnpin for J
impl UnwindSafe for J
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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<T> Scalar for T
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.