modg_semiCoarseFace Subroutine

private subroutine modg_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

Type IntentOptional Attributes Name
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 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. 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_semicoarseface~~CalledByGraph proc~modg_semicoarseface modg_semiCoarseFace proc~atl_modg_finetocoarseface atl_modg_fineToCoarseFace proc~atl_modg_finetocoarseface->proc~modg_semicoarseface proc~compute_rhs_cubes_modg compute_rhs_cubes_modg proc~compute_rhs_cubes_modg->proc~atl_modg_finetocoarseface proc~compute_rhs_cubes compute_rhs_cubes proc~compute_rhs_cubes->proc~compute_rhs_cubes_modg interface~atl_compute_rhs atl_compute_rhs interface~atl_compute_rhs->proc~compute_rhs_cubes