BipolarSphericalHarmonics

Documentation for BipolarSphericalHarmonics.

BipolarSphericalHarmonics.biposhFunction
biposh(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!Function
biposh!(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_flippointsFunction
biposh_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.cacheMethod
cache(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.

Note

The monopolar harmonics must be initialized by calling monopolarharmonics! before the cache is used.

BipolarSphericalHarmonics.kronindexMethod
kronindex(::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.kronindexMethod
kronindex(::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!Method
monopolarharmonics!(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.monopolarharmonicsMethod
monopolarharmonics(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.