Orbitals and quantum systems
When calculating matrix elements of tensor components (using the The Wigner–Eckart theorem), it is important to know which part of the quantum system the tensor acts on, e.g. $\tensor{C}$ and $\tensor{\nabla}$ act on the spatial part of a spin-orbital (the coordinates $r$, $\theta$, and $\phi$, or equivalently, the quantum numbers $n$, $\ell$, $m_\ell$), whereas $\tensor{S}$ acts on the spin part (the coordinate $s$, or equivalently, the quantum numbers $s$ and $m_s$).
AngularMomentumAlgebra.System — TypeSystemThe abstract base type for a (quantum) system.
AngularMomentumAlgebra.SubSystem — TypeSubSystem{which}A subsystem, i.e. limited to a set of coordinates.
AngularMomentumAlgebra.FullSystem — TypeFullSystemThe entire system, i.e. all coordinates.
AngularMomentumAlgebra.SpatialSubSystem — TypeSpatialSubSystemThe spatial subsystem, i.e. the coordinates r, θ, and ϕ.
AngularMomentumAlgebra.OrbitalAngularMomentumSubSystem — TypeOrbitalAngularMomentaSubSystemThe orbital angular momentum subsystem, i.e. the coordinates, θ and ϕ.
AngularMomentumAlgebra.SpinSubSystem — TypeSpinSubSystemThe spin subsystem, i.e. the coordinate s.
AngularMomentumAlgebra.TotalAngularMomentumSubSystem — TypeTotalAngularMomentumSubSystemThe total angular momentum subsystem, i.e. the coordinates, θ, ϕ, and s.
Given the different systems and subsystems listed above, it is interesting to access the quantum numbers of an orbital pertaining to these. For this, quantum_numbers(::System, ::SpinOrbital) is provided, which returns Tuples of (magnitudes,), projection, where projection is either a Number or missing if it is not a good quantum number, e.g. $m_\ell$ being the projection quantum number for both AngularMomentumAlgebra.SpatialSubSystem and AngularMomentumAlgebra.OrbitalAngularMomentumSubSystem is not a good quantum number for coupled spin-orbitals ($\ket{n \ell j m_j}$).
julia> using AngularMomentumAlgebra, AtomicLevels, HalfIntegers
julia> o = SpinOrbital(o"3d", 1, -half(1))
3d₁β
julia> ro = SpinOrbital(ro"3d", half(1))
3d(1/2)
julia> quantum_numbers(FullSystem(), o)
(((3, 2), 1), (1/2, -1/2))
julia> quantum_numbers(FullSystem(), ro)
((3, 2, 1/2, 5/2), 1/2)
julia> quantum_numbers(SpatialSubSystem(), o)
((3, 2), 1)
julia> quantum_numbers(SpatialSubSystem(), ro)
((3, 2), missing)
julia> quantum_numbers(OrbitalAngularMomentumSubSystem(), o)
(2, 1)
julia> quantum_numbers(OrbitalAngularMomentumSubSystem(), ro)
(2, missing)
julia> quantum_numbers(SpinSubSystem(), o)
(1/2, -1/2)
julia> quantum_numbers(SpinSubSystem(), ro)
(1/2, missing)
julia> quantum_numbers(TotalAngularMomentumSubSystem(), o)
((2, 1), (1/2, -1/2))
julia> quantum_numbers(TotalAngularMomentumSubSystem(), ro)
((2, 1/2, 5/2), 1/2)AngularMomentumAlgebra.quantum_numbers — Functionquantum_numbers(system, a, b)Return the quantum numbers characterizing system for the orbitals a and b.
quantum_numbers(::FullSystem, o::SpinOrbital{<:Orbital})The full system of an uncoupled spin-orbital is $n\ell m_\ell; s m_s$, where $;$ denotes that the spatial and spin subsystems are separable.
quantum_numbers(::FullSystem, o::SpinOrbital{<:RelativisticOrbital})The full system of a coupled spin-orbital is $n\ell s j m_j$.
quantum_numbers(::SpatialSubSystem, o::SpinOrbital{<:Orbital})The spatial subsystem of an uncoupled spin-orbital is $n\ell m_\ell$.
quantum_numbers(::SpatialSubSystem, o::SpinOrbital{<:RelativisticOrbital})The spatial subsystem of a coupled spin-orbital is just $n\ell m_\ell$; $m_\ell$ is not a good quantum number.
quantum_numbers(::OrbitalAngularMomentumSubSystem, o::SpinOrbital{<:Orbital})The orbital angular momentum subsystem of an uncoupled spin-orbital is $\ell m_\ell$.
quantum_numbers(::OrbitalAngularMomentumSubSystem, o::SpinOrbital{<:RelativisticOrbital})The orbital angular momentum subsystem of a coupled spin-orbital is just $\ell$; $m_\ell$ is not a good quantum number.
quantum_numbers(::SpinSubSystem, o::SpinOrbital{<:Orbital})The spin subsystem of an uncoupled spin-orbital is $s m_s$.
quantum_numbers(::SpinSubSystem, o::SpinOrbital{<:RelativisticOrbital})The spin subsystem of a coupled spin-orbital is just $s$; $m_s$ is not a good quantum number.
quantum_numbers(::TotalAngularMomentumSubSystem, o::SpinOrbital{<:Orbital})The total angular momentum of an uncoupled spin-orbital is not a good quantum number; only its projection is known. The system is specified by $\ell m_\ell; s m_s$, where $;$ denotes that the spatial and spin subsystems are separable.
quantum_numbers(::TotalAngularMomentumSubSystem, o::SpinOrbital{<:RelativisticOrbital})The total angular momentum subsystem of a coupled spin-orbital just $\ell s j m_j$.
AngularMomentumAlgebra.other_quantum_numbers — Functionother_quantum_numbers(system, a, b)Return the quantum numbers characterizing the orthogonal complement to system for the orbitals a and b.
other_quantum_numbers(::FullSystem, ::SpinOrbital)No quantum numbers characterize the orthogonal complement to FullSystem.
other_quantum_numbers(::SpatialSubSystem, o::SpinOrbital{<:Orbital})The orthogonal complement to SpatialSubSystem is SpinSubSystem, which is characterized by $sm_s$.
other_quantum_numbers(::SpatialSubSystem, o::SpinOrbital{<:RelativisticOrbital})The orthogonal complement to SpatialSubSystem is SpinSubSystem, which is characterized by $s$; its projection is not a good quantum number in the coupled basis.
other_quantum_numbers(::OrbitalAngularMomentumSubSystem, o::SpinOrbital{<:Orbital})The orthogonal complement to OrbitalAngularMomentumSubSystem is characterized by the quantum numbers $n s m_s$; however, $n$ does not affect the matrix elements of $𝐋$, so it is silently ignored.
other_quantum_numbers(::OrbitalAngularMomentumSubSystem, o::SpinOrbital{<:RelativisticOrbital})The orthogonal complement to OrbitalAngularMomentumSubSystem is characterized by the quantum numbers $n s$; however, $n$ does not affect the matrix elements of $𝐋$, so it is silently ignored. Additoinally, the projection of $s$ is not a good quantum number in the coupled basis.
other_quantum_numbers(::SpinSubSystem, o::SpinOrbital{<:Orbital})The orthogonal complement to SpinSubSystem is SpatialSubSystem which is characterized by the quantum numbers $n \ell m_\ell$; however, $n$ does not affect the matrix elements of $𝐒$, so it is silently ignored.
other_quantum_numbers(::SpinSubSystem, o::SpinOrbital{<:RelativisticOrbital})The orthogonal complement to SpinSubSystem is SpatialSubSystem which is characterized by the quantum numbers $n \ell$; however, $n$ does not affect the matrix elements of $𝐒$, so it is silently ignored. Additionally, the projection of $\ell$ is not a good quantum number in the coupled basis.
other_quantum_numbers(::TotalAngularMomentumSubSystem, o::SpinOrbital{<:Orbital})The orthogonal complement to TotalAngularMomentumSubSystem is characterized by the principal quantum number $n$; however, this does not affect the matrix elements of $𝐉$, so it is silently ignored.
other_quantum_numbers(::TotalAngularMomentumSubSystem, o::SpinOrbital{<:RelativisticOrbital})The orthogonal complement to TotalAngularMomentumSubSystem is characterized by the principal quantum number $n$; however, this does not affect the matrix elements of $𝐉$, so it is silently ignored.