ply_legFpt_module Module

Module providing datatypes and routines for a fast transformation of Legendre expansion to point values. \author{Jens Zudrop}


Uses

  • module~~ply_legfpt_module~~UsesGraph module~ply_legfpt_module ply_legFpt_module env_module env_module module~ply_legfpt_module->env_module iso_c_binding iso_c_binding module~ply_legfpt_module->iso_c_binding module~fftw_wrap fftw_wrap module~ply_legfpt_module->module~fftw_wrap module~ply_fpt_header_module ply_fpt_header_module module~ply_legfpt_module->module~ply_fpt_header_module module~ply_polybaseexc_module ply_polyBaseExc_module module~ply_legfpt_module->module~ply_polybaseexc_module tem_compileconf_module tem_compileconf_module module~ply_legfpt_module->tem_compileconf_module module~fftw_wrap->iso_c_binding tem_aux_module tem_aux_module module~fftw_wrap->tem_aux_module tem_logging_module tem_logging_module module~fftw_wrap->tem_logging_module module~ply_fpt_header_module->env_module module~ply_fpt_header_module->tem_compileconf_module aot_out_module aot_out_module module~ply_fpt_header_module->aot_out_module aotus_module aotus_module module~ply_fpt_header_module->aotus_module module~ply_nodes_header_module ply_nodes_header_module module~ply_fpt_header_module->module~ply_nodes_header_module module~ply_fpt_header_module->tem_aux_module tem_float_module tem_float_module module~ply_fpt_header_module->tem_float_module module~ply_fpt_header_module->tem_logging_module tem_tools_module tem_tools_module module~ply_fpt_header_module->tem_tools_module module~ply_polybaseexc_module->env_module module~ply_polybaseexc_module->iso_c_binding module~ply_polybaseexc_module->module~fftw_wrap module~ply_polybaseexc_module->module~ply_fpt_header_module module~ply_polybaseexc_module->tem_float_module tem_gamma_module tem_gamma_module module~ply_polybaseexc_module->tem_gamma_module module~ply_polybaseexc_module->tem_logging_module tem_param_module tem_param_module module~ply_polybaseexc_module->tem_param_module module~ply_nodes_header_module->env_module

Used by

  • module~~ply_legfpt_module~~UsedByGraph module~ply_legfpt_module ply_legFpt_module module~ply_legfpt_2d_module ply_legFpt_2D_module module~ply_legfpt_2d_module->module~ply_legfpt_module module~ply_legfpt_3d_module ply_legFpt_3D_module module~ply_legfpt_3d_module->module~ply_legfpt_module module~ply_poly_project_module ply_poly_project_module module~ply_poly_project_module->module~ply_legfpt_module program~ply_fpt_ifpt_2d_multivar_lobattonodes_test ply_fpt_ifpt_2D_multiVar_lobattoNodes_test program~ply_fpt_ifpt_2d_multivar_lobattonodes_test->module~ply_legfpt_module program~ply_fpt_ifpt_2d_multivar_test ply_fpt_ifpt_2D_multiVar_test program~ply_fpt_ifpt_2d_multivar_test->module~ply_legfpt_module program~ply_fpt_ifpt_2d_singvar_lobattonodes_test ply_fpt_ifpt_2D_singVar_lobattoNodes_test program~ply_fpt_ifpt_2d_singvar_lobattonodes_test->module~ply_legfpt_module program~ply_fpt_ifpt_2d_singvar_test ply_fpt_ifpt_2D_singVar_test program~ply_fpt_ifpt_2d_singvar_test->module~ply_legfpt_module program~ply_fpt_ifpt_3d_multivar_lobattonodes_test ply_fpt_ifpt_3D_multiVar_lobattoNodes_test program~ply_fpt_ifpt_3d_multivar_lobattonodes_test->module~ply_legfpt_module program~ply_fpt_ifpt_3d_multivar_test ply_fpt_ifpt_3D_multiVar_test program~ply_fpt_ifpt_3d_multivar_test->module~ply_legfpt_module program~ply_fpt_ifpt_3d_singvar_lobattonodes_test ply_fpt_ifpt_3D_singVar_lobattoNodes_test program~ply_fpt_ifpt_3d_singvar_lobattonodes_test->module~ply_legfpt_module program~ply_fpt_ifpt_3d_singvar_test ply_fpt_ifpt_3D_singVar_test program~ply_fpt_ifpt_3d_singvar_test->module~ply_legfpt_module program~ply_fpt_ifpt_test ply_fpt_ifpt_test program~ply_fpt_ifpt_test->module~ply_legfpt_module program~ply_fpt_lobattonodes_test ply_fpt_lobattoNodes_test program~ply_fpt_lobattonodes_test->module~ply_legfpt_module program~ply_fpt_test ply_fpt_test program~ply_fpt_test->module~ply_legfpt_module program~ply_ifpt_lobattonodes_test ply_ifpt_lobattoNodes_test program~ply_ifpt_lobattonodes_test->module~ply_legfpt_module program~ply_ifpt_test ply_ifpt_test program~ply_ifpt_test->module~ply_legfpt_module

Interfaces

public interface assignment(=)

  • private subroutine Copy_fpt(left, right)

    Arguments

    Type IntentOptional Attributes Name
    type(ply_legFpt_type), intent(out) :: left

    fpt to copy to

    type(ply_legFpt_type), intent(in) :: right

    fpt to copy from

interface

  • private subroutine ply_fptm2n(fpt, legCoeffs, pntVal, nIndeps)

    Arguments

    Type IntentOptional 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

interface

  • private subroutine ply_fptn2m(fpt, pntVal, legCoeffs, nIndeps)

    Arguments

    Type IntentOptional 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

Derived Types

type, public ::  ply_legFpt_type

Datatype for parameters of the FPT used for 1d, 2d and 3d.

Read more…

Components

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()

Subroutines

public subroutine ply_init_legFpt(maxPolyDegree, nIndeps, fpt, header, fft_flags)

Subroutine to initialize the fast polynomial transformation for Legendre expansion.

Read more…

Arguments

Type IntentOptional 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.

Read more…

private subroutine Copy_fpt(left, right)

Arguments

Type IntentOptional Attributes Name
type(ply_legFpt_type), intent(out) :: left

fpt to copy to

type(ply_legFpt_type), intent(in) :: right

fpt to copy from

private subroutine ply_legToPnt_single(fpt, legCoeffs, pntVal, nIndeps)

Subroutine to transform Legendre expansion to point values at Chebyshev nodes.

Arguments

Type IntentOptional 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

private subroutine ply_legToPnt_vec(fpt, legCoeffs, pntVal, nIndeps)

Vectorizing subroutine to transform Legendre expansion to point values at Chebyshev nodes.

Arguments

Type IntentOptional 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

private subroutine ply_legToPnt_lobatto_single(fpt, legCoeffs, pntVal, nIndeps)

Subroutine to transform Legendre expansion to point values at Chebyshev-Lobatto nodes.

Arguments

Type IntentOptional 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

private subroutine ply_legToPnt_lobatto_vec(fpt, legCoeffs, pntVal, nIndeps)

Vectorizing subroutine to transform Legendre expansion to point values at Chebyshev-Lobatto nodes.

Arguments

Type IntentOptional 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

private subroutine ply_pntToLeg_single(fpt, pntVal, legCoeffs, nIndeps)

Subroutine to transform point values at Chebyshev nodes to a Legendre expansion.

Arguments

Type IntentOptional 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

private subroutine ply_pntToLeg_vec(fpt, pntVal, legCoeffs, nIndeps)

Vectorizing subroutine to transform point values at Chebyshev nodes to a Legendre expansion.

Arguments

Type IntentOptional 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

private subroutine ply_pntToLeg_lobatto_single(fpt, pntVal, legCoeffs, nIndeps)

Subroutine to transform point values at Chebyshev-Lobatto nodes to a Legendre expansion.

Arguments

Type IntentOptional 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

private subroutine ply_pntToLeg_lobatto_vec(fpt, pntVal, legCoeffs, nIndeps)

Vectorizing subroutine to transform point values at Chebyshev-Lobatto nodes to a Legendre expansion.

Arguments

Type IntentOptional 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