A small package for quickly setting up MultIndices useful for computations with atoms (which are usually treated as spherically symmetric systems).
Atomic data provided by https://github.com/andrejewski/periodic-table/.
using Atoms
Create an argon atom in the Breit–Pauli approximation, with a maximum ℓ = 10:
Ar = BreitPauliAtom(:Ar, 10)
Argon (Atoms.BreitPauliAtom; ℓmax = 11, 121 partial waves ⊗ 2 spins) N = 18, ground state: [Ne]ᶜ 3s² 3p⁶
The size of the tensor product space is
size(space(Ar))
(121, 2, 18)
We can also create helium-like argon:
HeAr = BreitPauliAtom(:He, 10, Z=:Ar)
Helium-like Argon (Atoms.BreitPauliAtom; ℓmax = 11, 121 partial waves ⊗ 2 spins) N = 2, Z = 18, ground state: 1s²
size(space(HeAr))
(121, 2, 2)
In the single-active electron approximation, with cylindrical symmetry, we can do the following
ArSAE = SAEAtom2D(:Ar, 10)
Argon (Atoms.SAEAtom; ℓmax = 11, 2d) N = 18, ground state: [Ne]ᶜ 3s² 3p⁶
size(space(ArSAE))
11