BipolarSphericalHarmonics
Documentation for BipolarSphericalHarmonics.
BipolarSphericalHarmonics.BSHCacheBipolarSphericalHarmonics.biposhBipolarSphericalHarmonics.biposh!BipolarSphericalHarmonics.biposh_flippointsBipolarSphericalHarmonics.cacheBipolarSphericalHarmonics.kronindexBipolarSphericalHarmonics.kronindexBipolarSphericalHarmonics.monopolarharmonicsBipolarSphericalHarmonics.monopolarharmonics!
BipolarSphericalHarmonics.BSHCache — TypeBSHCacheWrapper around monopolar harmonics that are coupled to evaluate the bipolar harmonics. The cache may be constructed using cache.
BipolarSphericalHarmonics.biposh — Functionbiposh(SHT, θ1, ϕ1, θ2, ϕ2, j, m, j1, j2)Evaluate the bipolar harmonic $Y_{jm}^{j_1, j_2}((\theta_1, \phi_1), (\theta_2, \phi_2))$. SHT may be one of SH(), GSH() and VSH(YT(), B()) where YT and B are vector harmonic and basis types offered by VectorSphericalHarmonics.jl.
biposh(SHT, θ1, ϕ1, θ2, ϕ2, j, m, j1j2modes)Evaluate the bipolar harmonic $Y_{jm}^{j_1, j_2}((\theta_1, \phi_1), (\theta_2, \phi_2))$ for all (j1,j2) in j1j2modes.
biposh(SHT, θ1, ϕ1, θ2, ϕ2, jmcoll::SphericalHarmonicModes.LM, j1j2...)Evaluate the bipolar harmonics $Y_{jm}^{j_1, j_2}((\theta_1, \phi_1), (\theta_2, \phi_2))$ for all (j,m) in jmcoll, where j1j2 may be either a 2-Tuple (j1,j2) or a collection of 2-Tuples.
BipolarSphericalHarmonics.biposh! — Functionbiposh!(Y12::AbstractVetor, B::BSHCache, θ1, ϕ1, θ2, ϕ2, j, m, j1, j2)Evaluate the bipolar harmonic $Y_{jm}^{j_1, j_2}((\theta_1, \phi_1), (\theta_2, \phi_2))$ and store the result in Y12. The cache B determines the type of harmonic evaluated.
BipolarSphericalHarmonics.biposh_flippoints — Functionbiposh_flippoints(SHT, θ1, ϕ1, θ2, ϕ2, j, m, j1, j2)Evaluate the bipolar harmonics $Y_{jm}^{j_1, j_2}((\theta_1, \phi_1), (\theta_2, \phi_2))$ and $Y_{jm}^{j_1, j_2}((\theta_2, \phi_2), (\theta_1, \phi_1))$ in one pass, utilizing symmetries of the Clebsch-Gordean coefficients.
BipolarSphericalHarmonics.cache — Methodcache(SHT, T::Type, j12max)Allocate the arrays required to evaluate the monopolar harmonics for all modes 0 ≤ j1, j2 ≤ j12max. SHT may be one of SH(), GSH(), or VSH(YT(), B()) where YT and B are vector harmonic and basis types offered by VectorSphericalHarmonics.jl. T is a real type that determines the precision of the monopolar harmonics.
The monopolar harmonics must be initialized by calling monopolarharmonics! before the cache is used.
BipolarSphericalHarmonics.kronindex — Methodkronindex(::GSH, ind1, ind2)Given the indices of each GSH vector, return the corresponding index of the bipolar spherical harmonic. The indices ind1 and ind2 must lie within -1 and 1.
BipolarSphericalHarmonics.kronindex — Methodkronindex(::VSH, ind11, ind12, ind21, ind22)Given the indices of each VSH matrix, return the corresponding index of the bipolar spherical harmonic. Note that the indices correspond to ℓ - j for the Irreducible vector spherical harmonic $\mathbf{Y}^{\ell}_{jm}(\hat{n})$.
BipolarSphericalHarmonics.monopolarharmonics! — Methodmonopolarharmonics!(B::BSHCache, θ1, ϕ1, θ2, ϕ2, j1, j2)Update B with the monopolar harmonics $Y_{j_1,m_1}(\theta_1, \phi_1)$ and $Y_{j_2,m_2}(\theta_2, \phi_2)$, where $Y$ may either be a scalar or a vector harmonic depending on B.
BipolarSphericalHarmonics.monopolarharmonics — Methodmonopolarharmonics(SHT, θ1, ϕ1, θ2, ϕ2, j1, j2)Evaluate the monopolar harmonics $Y_{j_1,m_1}(\theta_1, \phi_1)$ and $Y_{j_2,m_2}(\theta_2, \phi_2)$, where $Y$ may either be a scalar or a vector harmonic depending on SHT, which may be one of SH(), GSH(), or VSH(YT(), B()) where YT and B are vector harmonic and basis types offered by VectorSphericalHarmonics.jl.