modg_semiCoarseElem Subroutine

private subroutine modg_semiCoarseElem(modalRepFace, modg_basis, schemeCoarse, schemeFine, coarseDir, fineElemShift, modalCoarsed)

Subroutine to semi-coarsen an element with modal polynomial representation to its semi-parent.

Arguments

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

Modal representation of a function on one of refined element. Which fine element is determined by fineFaceShift Dimensions are: (modg%maxPolyDegree+1)^3 for the first dimension and nScalars for the second dimension.

type(ply_modg_basis_type) :: modg_basis

Informations about the polynomial basis of a MODG scheme.

type(atl_modg_scheme_type), intent(in) :: schemeCoarse

The parameters of your MODG scheme on the coarse level.

type(atl_modg_scheme_type), intent(in) :: schemeFine

The parameters of your MODG scheme on the fint level.

integer, intent(in) :: coarseDir

The direction of the semi-coarsening. Either 1 or 2 or 3. Have a look at the function description.

integer, intent(in) :: fineElemShift

The semi-refined element you want to obtain.

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

The modal representation of modalRepFace on the coarser element, restricted to the given fine element.


Called by

proc~~modg_semicoarseelem~~CalledByGraph proc~modg_semicoarseelem modg_semiCoarseElem proc~atl_modg_finetocoarseelem atl_modg_fineToCoarseElem proc~atl_modg_finetocoarseelem->proc~modg_semicoarseelem proc~atl_interpolate_elemstate atl_interpolate_elemstate proc~atl_interpolate_elemstate->proc~atl_modg_finetocoarseelem proc~atl_interpolate_elemstate->proc~atl_interpolate_elemstate proc~atl_covolume_tocovolume atl_covolume_tocovolume proc~atl_covolume_tocovolume->proc~atl_interpolate_elemstate proc~atl_covolume_tocovolume_1d atl_covolume_tocovolume_1d proc~atl_covolume_tocovolume_1d->proc~atl_interpolate_elemstate proc~atl_covolume_tocovolume_2d atl_covolume_tocovolume_2d proc~atl_covolume_tocovolume_2d->proc~atl_interpolate_elemstate proc~atl_covolume_1d atl_covolume_1d proc~atl_covolume_1d->proc~atl_covolume_tocovolume_1d proc~atl_covolume_2d atl_covolume_2d proc~atl_covolume_2d->proc~atl_covolume_tocovolume_2d proc~atl_covolume atl_covolume proc~atl_covolume->proc~atl_covolume_tocovolume

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: iFunc
integer, private :: iDegX
integer, private :: iDegY
integer, private :: iDegZ
integer, private :: funcPos
integer, private :: dof
real(kind=rk), private :: coarseSqNorm
real(kind=rk), private :: jacobiDetFineToCoarse
integer, private :: mpd1
integer, private :: mpd1_square
integer, private :: mpd1_cube