Module providing datatypes and routines for a fast transformation of Legendre expansion to point values. \author{Jens Zudrop}
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_legFpt_type), | intent(out) | :: | left |
fpt to copy to |
||
type(ply_legFpt_type), | intent(in) | :: | right |
fpt to copy from |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
integer, | intent(in) | :: | nIndeps |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
integer, | intent(in) | :: | nIndeps |
Datatype for parameters of the FPT used for 1d, 2d and 3d.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(ply_trafo_params_type), | public | :: | legToChebParams |
FPT params for the fast base exchange from Legendre to Chebyshev expansion. |
|||
type(ply_trafo_params_type), | public | :: | chebToLegParams |
FPT params for the fast base exchange from Chebyshev to Legendre expansion. |
|||
type(C_PTR), | public | :: | planChebToPnt |
FFTW plan for DCT from Chebyshev coefficients to point values. |
|||
type(C_PTR), | public | :: | planPntToCheb |
FFTW plan for DCT from point values to Chebyshev coefficients. |
|||
logical, | public | :: | use_lobatto_points |
Flag whether to use Lobatto points (include boundary points) |
|||
procedure(ply_fptm2n), | public, | pointer | :: | legtopnt | => | NULL() | |
procedure(ply_fptn2m), | public, | pointer | :: | pnttoleg | => | NULL() |
Subroutine to initialize the fast polynomial transformation for Legendre expansion.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | maxPolyDegree |
Maximal polynomial degree for the transformation. |
||
integer, | intent(in) | :: | nIndeps |
Number of independent values that can be computed simultaneously. |
||
type(ply_legFpt_type), | intent(inout) | :: | fpt |
The Fast Polynomial Transformation setting to initialize. |
||
type(ply_fpt_header_type), | intent(in) | :: | header |
Configuration settings for the projection. |
||
integer, | intent(in), | optional | :: | fft_flags |
Planning flags for the FFT. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ply_legFpt_type), | intent(out) | :: | left |
fpt to copy to |
||
type(ply_legFpt_type), | intent(in) | :: | right |
fpt to copy from |
Subroutine to transform Legendre expansion to point values at Chebyshev nodes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
integer, | intent(in) | :: | nIndeps |
Vectorizing subroutine to transform Legendre expansion to point values at Chebyshev nodes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
integer, | intent(in) | :: | nIndeps |
Subroutine to transform Legendre expansion to point values at Chebyshev-Lobatto nodes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
integer, | intent(in) | :: | nIndeps |
Vectorizing subroutine to transform Legendre expansion to point values at Chebyshev-Lobatto nodes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
integer, | intent(in) | :: | nIndeps |
Subroutine to transform point values at Chebyshev nodes to a Legendre expansion.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
integer, | intent(in) | :: | nIndeps |
Vectorizing subroutine to transform point values at Chebyshev nodes to a Legendre expansion.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
integer, | intent(in) | :: | nIndeps |
Subroutine to transform point values at Chebyshev-Lobatto nodes to a Legendre expansion.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
integer, | intent(in) | :: | nIndeps |
Vectorizing subroutine to transform point values at Chebyshev-Lobatto nodes to a Legendre expansion.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ply_legFpt_type), | intent(inout) | :: | fpt | |||
real(kind=rk), | intent(inout) | :: | pntVal(:) | |||
real(kind=rk), | intent(inout) | :: | legCoeffs(:) | |||
integer, | intent(in) | :: | nIndeps |