This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: vector spherical waves


On Thu, 2002-05-02 at 02:31, Rainer Bunger wrote:
> 
> I would like to implement a VECTOR spherical wave expansion.

Excellent... you've probably come to the right place.


> For this 
> task, I need to have the normalized associated Legendre function P_{nm} 
> (already included), its derivative and the normalized associated 
> Legendre function divided by \sin(\theta). I think it's quite simple to 
> do it together with the existing computation of P_{nm} (?)

In principle the derivative is easy. There are two recurrence
relations of interest for d/dz P_l^m(z), one on 'm' and one on 'l'.
They are given in Abramowitz+Stegun, for example. With a couple
lines of algebra these lead to recurrence relations for the
"spherically normalized" functions. The recurrence on 'l' is
probably the right one to use.

That leaves the harder question, which is what the interface
should look like. I can create a function something like
gsl_sf_legendre_sphPlm_e(), but which returns both the
function and the derivative. But this is more for show
than anything else. I'm guessing what you really need
is towers of values for different values of 'l', calculated
in the most efficient way. So I can also create a function
something like gsl_sf_legendre_sphPlm_array(), but which
takes two 'double *' arguments so it can return both
the function and the derivative. This should be an easy
modification.

Would this be what you want?


> Also of interest is a FAST spherical wave expansion (transform) and a 
> FAST inverse transform for interpolation purposes (see packages 
> SpHarmonicKit or spherepack).

I know something about this, since I followed the Maslen and
Rockmore work when it came out. I actually wrote
gsl_sf_legendre_sphPlm_array() with spherical transforms in
mind, after having read their paper on the algorithm for
SpHarmonicKit. As I recall, they use the recurrence relation
explicitly to remove the need for explicit values of the
derivative, so if you wanted to do something like that,
then you probably don't need the derivatives. But I
could be wrong.

Also, since I haven't looked at this in a long time,
do you know if there have been any improvements in
the last six years or so? That's about when I lost
touch with the subject. As I recall there was some
question as to whether the inverse transform could
be improved, since it was not the order as the
forward transform.


> Are there plans to implement this?

Part of the reason I didn't try was because I found
SpHarmonicKit easy enough to use. Is that thing GPL
compatible? If it is, then I would suggest not trying
to re-implement but we can figure out the best way
to make it easy to use with GSL.

If your goal is to create an analogous package for
vector expansions, that would be great. But whether
or not it should go into GSL depends on whether or
not we decide to incorporate SpHarmonicKit or something
like it, or it needs to be re-implemented, or whatever...
This is part of the reason why I never pursued
something like this for GSL.

Also, there is probably a definite need for higher
tensor harmonics. We could think about how to do
things so that there is at least some kind of
uniformity which would allow later expansion.
And maybe the tensor harmonics are not that hard,
given some understanding of how to work with the
vector ones.


Thanks.
--

G. Jungman



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]