ply_convert2oversample_2d Subroutine

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.

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


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

Called by

proc~~ply_convert2oversample_2d~~CalledByGraph proc~ply_convert2oversample_2d ply_convert2oversample_2d proc~ply_convert2oversample ply_convert2oversample proc~ply_convert2oversample->proc~ply_convert2oversample_2d



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