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), | private | :: | legToChebParams | FPT params for the fast base exchange from Legendre to Chebyshev expansion. |
|||
type(ply_trafo_params_type), | private | :: | chebToLegParams | FPT params for the fast base exchange from Chebyshev to Legendre expansion. |
|||
type(C_PTR), | private | :: | planChebToPnt | FFTW plan for DCT from Chebyshev coefficients to point values. |
|||
type(C_PTR), | private | :: | planPntToCheb | FFTW plan for DCT from point values to Chebyshev coefficients. |
|||
logical, | private | :: | use_lobatto_points | Flag whether to use Lobatto points (include boundary points) |
|||
procedure(ply_fptm2n), | private, | pointer | :: | legtopnt | => | NULL() | |
procedure(ply_fptn2m), | private, | 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. Configuration to how much time to spend on finding an optimal FFT implementation in the FFTW. See: http://www.fftw.org/doc/Planner-Flags.html#Planner-Flags Defaults to FFTW_MEASURE. |
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 |