modg_2d_semiCoarseFace Subroutine

private subroutine modg_2d_semiCoarseFace(modalRepFace, modg_basis, schemeCoarse, schemeFine, coarseDir, fineFaceShift, modalCoarsed)

that is refined in one of the spatial directions) to a coarse element.

Project modal representation of a semi-refined face (i.e. on a face that is refined in one of the spatial directions) to a coarser element. The result is a modal representation on the coarse element that is representing the polynomial function of the refined element on the coarse element when restricted to the refined element again. However the modal representation is done in terms of the ansatz functions of the coarse element. \n \n The function is executing one of the following projections: \n

  face on current                      semi-refined                            \n
       level                               face                                \n
                                                                               \n

------------------------ ------------------------ \n | | | | | \n | | coarseDir | | | \n | | == 1 | fineFace | fineFace | \n | | <<-------- | Shift | Shift | \n | | | == 1 | == 2 | \n | | | | | \n | | | | | \n ------------------------ ------------------------ \n

or:

------------------------ ------------------------ \n | | | | \n | | coarseDir | fineFaceShift | \n | | == 2 | == 2 | \n | | <<-------- ------------------------ \n | | | | \n | | | fineFaceShift | \n | | | == 1 | \n ------------------------ ------------------------ \n

Arguments

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

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

type(ply_modg_basis_type) :: modg_basis

Informations about the polynomial basis of the MODG scheme.

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

The parameters of your MODG scheme on the coarse level.

type(atl_modg_2d_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. Have a look at the function description.

integer, intent(in) :: fineFaceShift

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_2d_semicoarseface~~CalledByGraph proc~modg_2d_semicoarseface modg_2d_semiCoarseFace proc~atl_modg_2d_finetocoarseface atl_modg_2d_fineToCoarseFace proc~atl_modg_2d_finetocoarseface->proc~modg_2d_semicoarseface proc~compute_rhs_cubes_modg_2d compute_rhs_cubes_modg_2d proc~compute_rhs_cubes_modg_2d->proc~atl_modg_2d_finetocoarseface proc~compute_rhs_cubes compute_rhs_cubes proc~compute_rhs_cubes->proc~compute_rhs_cubes_modg_2d interface~atl_compute_rhs atl_compute_rhs interface~atl_compute_rhs->proc~compute_rhs_cubes

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: comFunc
integer, private :: iFunc
integer, private :: iCoarseFunc
integer, private :: funcPos
integer, private :: coarsePos
real(kind=rk), private :: coarseSqNorm
real(kind=rk), private :: jacobiDetFineToCoarse