ply_l2p_module Module


Uses

  • module~~ply_l2p_module~~UsesGraph module~ply_l2p_module ply_l2p_module module~tem_logging_module tem_logging_module module~ply_l2p_module->module~tem_logging_module module~tem_compileconf_module tem_compileconf_module module~ply_l2p_module->module~tem_compileconf_module module~ply_l2p_header_module ply_l2p_header_module module~ply_l2p_module->module~ply_l2p_header_module module~ply_nodeset_module ply_nodeset_module module~ply_l2p_module->module~ply_nodeset_module module~ply_space_integration_module ply_space_integration_module module~ply_l2p_module->module~ply_space_integration_module module~env_module env_module module~ply_l2p_module->module~env_module module~ply_lagrange_module ply_lagrange_module module~ply_l2p_module->module~ply_lagrange_module module~tem_aux_module tem_aux_module module~ply_l2p_module->module~tem_aux_module module~ply_modg_basis_module ply_modg_basis_module module~ply_l2p_module->module~ply_modg_basis_module module~ply_l2p_header_module->module~tem_logging_module module~ply_l2p_header_module->module~env_module module~ply_l2p_header_module->module~tem_aux_module module~tem_tools_module tem_tools_module module~ply_l2p_header_module->module~tem_tools_module module~aot_out_module aot_out_module module~ply_l2p_header_module->module~aot_out_module module~ply_nodes_header_module ply_nodes_header_module module~ply_l2p_header_module->module~ply_nodes_header_module module~aotus_module aotus_module module~ply_l2p_header_module->module~aotus_module module~tem_float_module tem_float_module module~ply_l2p_header_module->module~tem_float_module module~ply_nodeset_module->module~env_module module~tem_param_module tem_param_module module~ply_nodeset_module->module~tem_param_module module~ply_space_integration_module->module~env_module module~ply_space_integration_module->module~tem_param_module module~ply_lagrange_module->module~ply_nodeset_module module~ply_lagrange_module->module~env_module module~ply_modg_basis_module->module~ply_space_integration_module module~ply_modg_basis_module->module~env_module module~ply_dof_module ply_dof_module module~ply_modg_basis_module->module~ply_dof_module module~ply_dof_module->module~env_module module~ply_nodes_header_module->module~env_module

Used by

  • module~~ply_l2p_module~~UsedByGraph module~ply_l2p_module ply_l2p_module module~ply_poly_project_module ply_poly_project_module module~ply_poly_project_module->module~ply_l2p_module module~sdr_proto2treelm_module sdr_proto2treelm_module module~sdr_proto2treelm_module->module~ply_poly_project_module module~ply_oversample_module ply_oversample_module module~sdr_proto2treelm_module->module~ply_oversample_module module~ply_oversample_module->module~ply_poly_project_module program~seeder seeder program~seeder->module~sdr_proto2treelm_module

Contents


Interfaces

public interface assignment(=)

  • private subroutine Copy_ply_l2p(left, right)

    Arguments

    TypeIntentOptionalAttributesName
    type(ply_l2p_type), intent(out) :: left

    fpt to copy to

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

    fpt to copy from


Derived Types

type, public :: ply_l2p_type

Storage of the transformation matrices for the L2 projection method to convert between modal and nodal values.

Components

TypeVisibilityAttributesNameInitial
real(kind=rk), private, allocatable:: leg2node(:,:)
real(kind=rk), private, allocatable:: node2leg(:,:)

Subroutines

public subroutine ply_init_l2p(l2p, header, degree)

Initialize the transformations via L2 projections.

Arguments

TypeIntentOptionalAttributesName
type(ply_l2p_type), intent(out) :: l2p
type(ply_l2p_header_type), intent(in) :: header
integer, intent(in) :: degree

public subroutine ply_l2p_trafo_1D(trafo, projected, original)

Transformation between modal and nodal values in 1D via L2 projection.

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(in) :: trafo(:,:)

L2 Projection matrix, this determines the direction of the trafo at hand

l2p%leg2node = modal to nodal l2p%node2leg = nodal to modal

real(kind=rk), intent(inout) :: projected(:)

Projected coefficients.

real(kind=rk), intent(inout) :: original(:)

Original coefficients to project.

public subroutine ply_l2p_trafo_2D(trafo, projected, original)

Transformation between modal and nodal values in 2D via L2 projection.

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(in) :: trafo(:,:)

L2 Projection matrix, this determines the direction of the trafo at hand

l2p%leg2node = modal to nodal l2p%node2leg = nodal to modal

real(kind=rk), intent(inout) :: projected(:)

Projected coefficients.

real(kind=rk), intent(inout) :: original(:)

Original coefficients to project.

public subroutine ply_l2p_trafo_3D(trafo, projected, original)

Transformation between modal and nodal values in 3D via L2 projection.

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(in) :: trafo(:,:)

L2 Projection matrix, this determines the direction of the trafo at hand

l2p%leg2node = modal to nodal l2p%node2leg = nodal to modal

real(kind=rk), intent(inout) :: projected(:)

Projected coefficients.

real(kind=rk), intent(inout) :: original(:)

Original coefficients to project.

private subroutine Copy_ply_l2p(left, right)

Arguments

TypeIntentOptionalAttributesName
type(ply_l2p_type), intent(out) :: left

fpt to copy to

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

fpt to copy from

private subroutine ply_l2_projection(nDofs, nIndeps, projected, original, matrix)

Actual implementation of the matrix operation to change between nodal and modal representations.

Read more…

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: nDofs

Number of degree of freedoms

integer, intent(in) :: nIndeps

Number of values that can be computed independently.

real(kind=rk), intent(out) :: projected(nIndeps,nDofs)

Projected data.

Size has to be nIndeps*size(matrix,1), and the layout is changed here when compared to the original array, as the projected direction moves to the end.

real(kind=rk), intent(in) :: original(nDofs,nIndeps)

Original data.

Size has to be size(matrix,1) and the direction to be projected has to be the fastest running one.

real(kind=rk), intent(in) :: matrix(nDofs,nDofs)

Matrix to apply in this operation.

The matrix defines wether this is a modal to nodal transformation or the other way around.