ply_convert2oversample_3d Subroutine

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.

The additional modes might be necessary for proper dealing with nonlinear operations. Please note, that the oversampled representation is always a Q-Space polynomial.

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


Called by

proc~~ply_convert2oversample_3d~~CalledByGraph proc~ply_convert2oversample_3d ply_convert2oversample_3d proc~ply_convert2oversample ply_convert2oversample proc~ply_convert2oversample->proc~ply_convert2oversample_3d

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: oversamp_degree
integer, private :: nScalars
integer, private :: iVar
integer, private :: mpd1
integer, private :: mpd1_square
integer, private :: mpd1_cube
integer, private :: iDegX
integer, private :: iDegY
integer, private :: iDegZ
integer, private :: idof
integer, private :: dof
integer, private :: dofOverSamp
real(kind=rk), private :: ordersum(3*(poly_proj%min_degree+1)-2)
real(kind=rk), private :: varsum
integer, private :: iOrd
integer, private :: maxorders
integer, private :: ord_lim