Coulomb interaction
The Coulomb interaction between two electrons at coordinates $1$ and $2$, respectively, can in spherical coordinates be multipole-expanded as:
\[\begin{equation} \frac{1}{r_{12}} = \sum_{k=0}^\infty \frac{r_<^k}{r_>^{k+1}} P_k(\cos\theta) \end{equation}\]
which by the addition theorem for the spherical harmonics can be further expanded as
\[\begin{equation} \frac{1}{r_{12}} = \sum_{kq} \frac{4\pi}{2k+1} \frac{r_<^k}{r_>^{k+1}} \conj{{Y^k_q}}(1)Y^k_q(2)\equiv \sum_k \frac{r_<^k}{r_>^{k+1}} \tensor{C}^k(1)\cdot\tensor{C}^k(2), \tag{V5.17.9} \end{equation}\]
where we in the last step have used the definition of the Spherical tensors. By introducing the help-tensor
\[\begin{equation} \tensor{K}^{(k)}(i) \defd \left\{[1-\Heaviside(r_j-r_i)]r_i^k + \frac{\Heaviside(r_j-r_i)}{r_i^{k+1}}\right\} \tensor{C}^{(k)}(i), \quad i = 1,2, \quad j = 3-i, \end{equation}\]
where
\[\begin{equation} \Heaviside(x) = \begin{cases} 0, & x < 0\\ 1, & x > 0, \end{cases} \end{equation}\]
is the Heaviside function, we can rewrite the Coulomb interaction as
\[\begin{equation} \frac{1}{r_{12}}= \sum_k \tensor{K}^{(k)}(1)\cdot\tensor{K}^{(k)}(2). \tag{V5.17.9*} \end{equation}\]
AngularMomentumAlgebra.CoulombInteractionMultipole — TypeCoulombInteractionMultipole(k, g)Represents the kth multipole of the multipole expansion of the Coulomb interaction g.
AngularMomentumAlgebra.CoulombPotentialMultipole — TypeCoulombPotentialMultipoleType alias for contraction of the CoulombInteractionMultipole over one coordinate, thereby forming a potential in the other coordinate.
AngularMomentumAlgebra.CoulombTensor — TypeCoulombTensor(k)Construct a Coulomb interaction tensor of rank k.
AngularMomentumAlgebra.system — Methodsystem(::Tensor)A general tensor acts on the full system, i.e. all coordinates.
system(::Type{CoulombTensor})A Coulomb tensor only acts on the coordinates $r$, $\theta$ and $\phi$.
AngularMomentumAlgebra.rme — Methodrme((n′,ℓ′), ::CoulombTensor{k}, (n,ℓ))Computes the reduced matrix element of 𝐊.
AngularMomentumAlgebra.couplings — Methodcouplings(tensor::CoulombTensor{k}, (n, ℓ)) where kGenerate all quantum numbers n′ℓ′ for which ⟨n′ℓ′||::CoulombTensor{k}||nℓ⟩ does not vanish.