The FXT method offers a transformation from Legendre modes to nodes by a fast multipole approach implemented in the FXTPACK library by Reiji Suda: R. Suda, "Fast Spherical Harmonic Transform Algorithm based on Generalized Fast Multiple Method", RIMS Kokyuroku vol 1606, pp. 18-29, Jun. 2008, RIMS, Kyoto University.
Besides the oversampling factor
that can be used to increase the number
points in the nodal representation to achieve an de-aliasing, there is only
one other option to this method:
The prec
parameter configures the precision up to which the FXTPACK
should compute the transformation.
It defaults to the square root of the epsilon for the real kind. With
double precision this would something around 1.4e-8.
This transformation utilizes the Gauss Legendre integration points in the nodal representation.
Thus, the configuration for a FXT projection takes the following form:
projection = {
kind = 'fxt',
prec = 1.e-10
}
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(out) | :: | left | fpt to copy to |
||
type(ply_fxt_header_type), | intent(in) | :: | right | fpt to copy from |
This function provides the test for equality of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is equal??
This function provides the test for unequality of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is unequal??
This function provides a < comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is smaller??
This function provides a <= comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is smaller??
This function provides a > comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is greater??
This function provides a >= comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is greater??
Fxt projection header type, consisting of the node header which give information about the type and number of points for the projection
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(ply_nodes_header_type), | private | :: | nodes_header | ||||
real(kind=rk), | private | :: | factor | = | 1.0 | ||
real(kind=rk), | private | :: | prec | = | epsilon(1.0) |
This function provides the test for equality of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is equal??
This function provides the test for unequality of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is unequal??
This function provides a < comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is smaller??
This function provides a <= comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is smaller??
This function provides a > comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is greater??
This function provides a >= comparison of two projections.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | left | projection to compare |
||
type(ply_fxt_header_type), | intent(in) | :: | right | projection to compare against |
is greater??
Load settings to describe a projection method from a Lua table.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(out) | :: | me | |||
type(flu_State) | :: | conf | ||||
integer, | intent(in) | :: | thandle |
Write FXT settings into a Lua table.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | me | |||
type(aot_out_type) | :: | conf |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(in) | :: | me |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_fxt_header_type), | intent(out) | :: | left | fpt to copy to |
||
type(ply_fxt_header_type), | intent(in) | :: | right | fpt to copy from |