-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Normalization? #2
Comments
I wouldn't touch spherical harmonics without (near) L2 orthonormalization. Near being something like what they do in geodesy or magnetics https://en.wikipedia.org/wiki/Spherical_harmonics#Conventions. Near orthonormalizations and phase conventions could be implemented as an afterthought. See also https://nschaeff.bitbucket.io/shtns/spec.html |
The actual normalisation can be a user choice: SphericalHarmonic() * Diagonal(...) We can make the default orthonormal |
Quickly looking at https://juliaatoms.github.io/AngularMomentumAlgebra.jl/dev/definitions/#Spherical-harmonics-1, I think we largely agree: theta is co-latitude, L^2 orthonormalization. |
I think a general library like SphericalHarmonics.jl should probably cater to different normalizations and phase relations. For me, it was very important that AngularMomentumAlgebra.jl is consistent in every possible choice of convention, since you otherwise can't trust relations. I therefore selected Varshalovich (1988) as the single source of truth. In quantum mechanics, Condon–Shortley is often used, because it gives real Clebsch–Gordan coefficients, as does the Fano–Racah convention (less often used, I think). Landau & Lifshitz instead uses complex CG coefficients, I forgot what they gain from that – maybe some formulas are simplified. |
I can rename it SphericalHarmonicsQuasi.jl, I have no interest or time in making something encyclopedic |
For sure, I would not suggest everything should fit in here, but it seemed both you and Mike agreed that various orthonormalizations were easy to bolt on, later. I thought we both agreed we'd like to do away with the *Quasi.jl suffix 😛 |
Yes I just mean I'm not trying to be too ambitious right now. I'm just going to implement some basic functionality, e.g., solving Poisson . I'm inclined to use the DLMF convention: Not sure what that corresponds to... |
As long as the associate Legendre polynomial |
Will follow Wikipedia as the default, added tests compared to https://en.wikipedia.org/wiki/Table_of_spherical_harmonics Any feelings whether they should be defined only on the sphere or all of R^3? Off the sphere they would be the harmonic polynomials r^m * Y_l^m(θ,φ) |
The spherical harmonics are, as far I'm concerned, only defined on the sphere. The radial dimension is taken care of by other means, e.g. Laguerre polynomials for bound states of hydrogen or finite-difference/-elements in numerical codes. |
It is often natural to incorporate the Both can (and will) be supported so it really is just an implementation detail. That is, if we make them by default defined on R^3 one can still use spherical coordinates but also euclidean: S = SphericalHarmonic()
S[SphericalCoordinate(θ,φ), Block(l)[m]]
S[SVector(0.1,0.2,0.3),Block(l)[m]] If you wish the latter to give a bounds error you can do S = SphericalHarmonic()[UnitSphere(),:] But I'll mull it over a bit more... |
I think the (regular) solid spherical harmonics are |
Transforms/plotting are fast on concentric spherical shells |
Would |
Yeah that or |
we would need to change the name of the package for the type to be called |
Sorry, I guess the quasi-space doesn't have to be pluralized? Since we don't have, e.g. |
Some more thought needs to be done here. Actually, it's the same issues with Taylor series (2D Spherical harmonics). Is the canonical
Each has valid a valid usage... |
@jagot suggested Condon–Shortley:
@MikaelSlevinsky Any preference?
The text was updated successfully, but these errors were encountered: