ply_oversample_module Module

This module provides functions to transfer polynomials from and to the oversampled representation for nodal treatments.


Uses

  • module~~ply_oversample_module~~UsesGraph module~ply_oversample_module ply_oversample_module module~ply_poly_project_module ply_poly_project_module module~ply_oversample_module->module~ply_poly_project_module module~ply_dof_module ply_dof_module module~ply_oversample_module->module~ply_dof_module module~env_module env_module module~ply_oversample_module->module~env_module module~ply_poly_project_module->module~ply_dof_module module~ply_poly_project_module->module~env_module module~ply_nodes_module ply_nodes_module module~ply_poly_project_module->module~ply_nodes_module module~ply_dynarray_project_module ply_dynarray_project_module module~ply_poly_project_module->module~ply_dynarray_project_module module~ply_nodes_header_module ply_nodes_header_module module~ply_poly_project_module->module~ply_nodes_header_module module~tem_logging_module tem_logging_module module~ply_poly_project_module->module~tem_logging_module module~ply_legfpt_module ply_legFpt_module module~ply_poly_project_module->module~ply_legfpt_module module~ply_legfpt_2d_module ply_legFpt_2D_module module~ply_poly_project_module->module~ply_legfpt_2d_module module~tem_tools_module tem_tools_module module~ply_poly_project_module->module~tem_tools_module module~ply_prj_header_module ply_prj_header_module module~ply_poly_project_module->module~ply_prj_header_module module~ply_fxt_module ply_fxt_module module~ply_poly_project_module->module~ply_fxt_module module~ply_l2p_module ply_l2p_module module~ply_poly_project_module->module~ply_l2p_module module~ply_legfpt_3d_module ply_legFpt_3D_module module~ply_poly_project_module->module~ply_legfpt_3d_module module~tem_aux_module tem_aux_module module~ply_poly_project_module->module~tem_aux_module module~ply_dof_module->module~env_module module~ply_nodes_module->module~env_module module~ply_nodes_module->module~ply_nodes_header_module module~ply_nodes_module->module~tem_aux_module fftw_wrap fftw_wrap module~ply_nodes_module->fftw_wrap module~ply_nodeset_module ply_nodeset_module module~ply_nodes_module->module~ply_nodeset_module module~aotus_module aotus_module module~ply_nodes_module->module~aotus_module module~ply_dynarray_project_module->module~env_module module~ply_dynarray_project_module->module~tem_logging_module module~ply_dynarray_project_module->module~ply_prj_header_module module~ply_dynarray_project_module->module~aotus_module module~ply_nodes_header_module->module~env_module module~ply_legfpt_module->module~env_module module~ply_legfpt_module->fftw_wrap module~ply_fpt_header_module ply_fpt_header_module module~ply_legfpt_module->module~ply_fpt_header_module iso_c_binding iso_c_binding module~ply_legfpt_module->iso_c_binding module~tem_compileconf_module tem_compileconf_module module~ply_legfpt_module->module~tem_compileconf_module module~ply_polybaseexc_module ply_polyBaseExc_module module~ply_legfpt_module->module~ply_polybaseexc_module module~ply_legfpt_2d_module->module~env_module module~ply_legfpt_2d_module->module~ply_legfpt_module module~ply_legfpt_2d_module->fftw_wrap module~ply_legfpt_2d_module->iso_c_binding module~ply_prj_header_module->module~env_module module~ply_prj_header_module->module~tem_logging_module module~ply_prj_header_module->module~tem_tools_module module~ply_prj_header_module->module~tem_aux_module module~ply_prj_header_module->fftw_wrap module~aot_out_module aot_out_module module~ply_prj_header_module->module~aot_out_module module~ply_prj_header_module->module~ply_fpt_header_module module~ply_fxt_header_module ply_fxt_header_module module~ply_prj_header_module->module~ply_fxt_header_module module~ply_l2p_header_module ply_l2p_header_module module~ply_prj_header_module->module~ply_l2p_header_module module~ply_prj_header_module->module~aotus_module module~ply_fxt_module->module~env_module module~ply_fxt_module->module~ply_fxt_header_module fxt_fwrap fxt_fwrap module~ply_fxt_module->fxt_fwrap module~ply_l2p_module->module~env_module module~ply_l2p_module->module~tem_logging_module module~ply_l2p_module->module~tem_aux_module module~ply_space_integration_module ply_space_integration_module module~ply_l2p_module->module~ply_space_integration_module module~ply_l2p_module->module~ply_l2p_header_module module~ply_l2p_module->module~ply_nodeset_module module~ply_modg_basis_module ply_modg_basis_module module~ply_l2p_module->module~ply_modg_basis_module module~ply_l2p_module->module~tem_compileconf_module module~ply_lagrange_module ply_lagrange_module module~ply_l2p_module->module~ply_lagrange_module module~ply_legfpt_3d_module->module~env_module module~ply_legfpt_3d_module->module~ply_legfpt_module module~ply_legfpt_3d_module->fftw_wrap module~ply_legfpt_3d_module->iso_c_binding

Used by

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

Contents


Subroutines

public subroutine ply_convert2oversample(state, poly_proj, nDim, modalCoeffs, nScalars, ensure_positivity)

Copy a single element state into a larger array and pad it with zeroes.

Read more…

Arguments

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

State in a single element, to be oversampled.

type(ply_poly_project_type), intent(in) :: poly_proj

Description of the projection method.

integer, intent(in) :: nDim

The number of dimensions to determine the correct oversampling routine.

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

Oversampled array for modal coefficients from state.

These are always Q-Polynomial representations, as projections only work with those.

integer, intent(in), optional :: nScalars

The number of scalar variables to convert. If nScalars is not passed to this subroutine, all variables of argument state will be considered by this routine.

logical, intent(in), optional :: ensure_positivity(:)

Only use modes up to the point, where we are sure that the resulting polynomial will be positive everywhere. This is an array of logicals for each variable, if not given, the default is false (no positivity ensured).

public subroutine ply_convertFromOversample(modalCoeffs, poly_proj, nDim, state, nScalars)

Truncating an oversampled polynomial representation back to the original representation.

Read more…

Arguments

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

Oversampled modal array for one element

type(ply_poly_project_type), intent(in) :: poly_proj

Data of the projection method

integer, intent(in) :: nDim

The number of dimensions to determine the correct oversampling routine.

real(kind=rk), intent(out) :: state(:,:)

Truncated state for one element obtained from the modalCoeffs

integer, intent(in), optional :: nScalars

The number of scalar variables to convert. If nScalars is not passed to this subroutine, all variables of argument state will be considered by this routine.

private subroutine ply_convert2oversample_3d(state, poly_proj, modalCoeffs, ensure_positivity)

Copy a single element state into a larger array and pad it with zeroes.

Read more…

Arguments

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

State in a single element, to be oversampled.

type(ply_poly_project_type), intent(in) :: poly_proj

Description of the projection method.

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

Oversampled array for modal coefficients from state.

These are always Q-Polynomial representations, as projections only work with those.

logical, intent(in), optional :: ensure_positivity(:)

Only use modes up to the point, where we are sure that the resulting polynomial will be positive everywhere.

This is an array of logicals for each variable, if not given, the default is false (no positivity ensured).

private subroutine ply_convertFromOversample_3d(modalCoeffs, poly_proj, state)

Truncating an oversampled polynomial representation back to the original representation.

Read more…

Arguments

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

Oversampled modal array for one element

type(ply_poly_project_type), intent(in) :: poly_proj

Data of the projection method

real(kind=rk), intent(out) :: state(:,:)

Truncated state for one element obtained from the modalCoeffs

private subroutine ply_convert2oversample_2d(state, poly_proj, modalCoeffs, nScalars, ensure_positivity)

Copy a single 2D element state into a larger array and pad it with zeroes.

Read more…

Arguments

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

State in a single element, to be oversampled.

type(ply_poly_project_type), intent(in) :: poly_proj

Description of the projection method.

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

Oversampled array for modal coefficients from state.

These are always Q-Polynomial representations, as projections only work with those.

integer, intent(in), optional :: nScalars

The number of scalar variables to convert. If nScalars is not passed to this subroutine, all variables of argument state will be considered by this routine.

logical, intent(in), optional :: ensure_positivity(:)

Only use modes up to the point, where we are sure that the resulting polynomial will be positive everywhere. This is an array of logicals for each variable, if not given, the default is false (no positivity ensured).

private subroutine ply_convertFromOversample_2d(modalCoeffs, poly_proj, state, nScalars)

Truncating an oversampled 2D polynomial representation back to the original representation.

Read more…

Arguments

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

Oversampled modal array for one element

type(ply_poly_project_type), intent(in) :: poly_proj

Data of the projection method

real(kind=rk), intent(out) :: state(:,:)

Truncated state for one element obtained from the modalCoeffs

integer, intent(in), optional :: nScalars

The number of scalar variables to convert. If nScalars is not passed to this subroutine, all variables of argument state will be considered by this routine.

private subroutine ply_convert2oversample_1d(state, poly_proj, modalCoeffs, nScalars, ensure_positivity)

Copy a single 1D element state into a larger array and pad it with zeroes.

Read more…

Arguments

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

State in a single element, to be oversampled.

type(ply_poly_project_type), intent(in) :: poly_proj

Description of the projection method.

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

Oversampled array for modal coefficients from state.

integer, intent(in), optional :: nScalars

The number of scalar variables to convert. If nScalars is not passed to this subroutine, all variables of argument state will be considered by this routine.

logical, intent(in), optional :: ensure_positivity(:)

Only use modes up to the point, where we are sure that the resulting polynomial will be positive everywhere. This is an array of logicals for each variable, if not given, the default is false (no positivity ensured).

private subroutine ply_convertFromOversample_1d(modalCoeffs, poly_proj, state, nScalars)

Truncating an oversampled 1D polynomial representation back to the original representation.

Arguments

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

Oversampled modal array for one element

type(ply_poly_project_type), intent(in) :: poly_proj

Data of the projection method

real(kind=rk), intent(out) :: state(:,:)

Truncated state for one element obtained from the modalCoeffs

integer, intent(in), optional :: nScalars

The number of scalar variables to convert. If nScalars is not passed to this subroutine, all variables of argument state will be considered by this routine.