atl_modg_1d_multilevel_module Module

Collections of operations and datatypes related to multilevel simulations for the MODG scheme.



Subroutines

public subroutine atl_modg_1d_coarseToFineFace(minLevel, maxLevel, currentLevel, mesh, facedata, nScalars)

\brief Interpolate modal face representation from coarse to next finer faces (level difference between coarser and finer faces has to be 1).

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel

The minumum level of the mesh.

integer, intent(in) :: maxLevel

The maximum level of the mesh.

integer, intent(in) :: currentLevel

The current level (i.e. the coarse level).

type(atl_cube_elem_type), intent(in) :: mesh(minLevel:maxLevel)

The mesh representation.

type(atl_facedata_type), intent(inout) :: facedata(minLevel:maxLevel)

The face representations (finer faces are interpolated from coarser ones).

integer, intent(in) :: nScalars

The number of scalar variables in your equation system.

public subroutine atl_modg_1d_fineToCoarseFace(minLevel, maxLevel, currentLevel, mesh, facedata, nScalars)

Interpolate modal face representation from next finer faces to coarse level (level

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel

The minumum level of the mesh.

integer, intent(in) :: maxLevel

The maximum level of the mesh.

integer, intent(in) :: currentLevel

The current level (i.e. the coarse level).

type(atl_cube_elem_type), intent(in) :: mesh(minLevel:maxLevel)

The mesh representation.

type(atl_facedata_type), intent(inout) :: facedata(minLevel:maxLevel)

The face representations (finer faces are interpolated from coarser ones).

integer, intent(in) :: nScalars

The number of scalar variables in your equation system.

public subroutine atl_modg_fineToCoarseElem_1d(minLevel, maxLevel, currentLevel, iDir, mesh, state_stab, scheme, nScalars)

Project data from 8 smaller elements to its parent element in terms of L2 projections.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel

The minumum level of the mesh.

integer, intent(in) :: maxLevel

The maximum level of the mesh.

integer, intent(in) :: currentLevel

The current level (i.e. the coarse level).

integer, intent(in) :: iDir

The direction to interpolate.

type(atl_cube_elem_type), intent(in) :: mesh(minLevel:maxLevel)

The mesh representation.

type(atl_statedata_type), intent(inout) :: state_stab(minLevel:maxLevel,1:3)

The face representations (finer faces are interpolated from coarser ones).

type(atl_scheme_type), intent(in) :: scheme(minLevel:maxLevel)

The schemes on the different levels.

integer, intent(in) :: nScalars

The number of scalar variables in your equation system.

public subroutine atl_modg_coarseToFineElem_1d(minLevel, maxLevel, currentLevel, iDir, mesh, state_stab, scheme, nScalars)

Project coarse parent element to its 8 finer child elements by a simple L2 projection.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel

The minumum level of the mesh.

integer, intent(in) :: maxLevel

The maximum level of the mesh.

integer, intent(in) :: currentLevel

The current level (i.e. the coarse level).

integer, intent(in) :: iDir

The direction to project

type(atl_cube_elem_type), intent(in) :: mesh(minLevel:maxLevel)

The mesh representation.

type(atl_statedata_type), intent(inout) :: state_stab(minLevel:maxLevel,1:3)

The face representations (finer faces are interpolated from coarser ones).

type(atl_scheme_type), intent(in) :: scheme(minLevel:maxLevel)

The schemes on the different levels.

integer, intent(in) :: nScalars

The number of scalar variables in your equation system.

private subroutine modg_semiCoarseElem_1d(modalRepFace, modg_basis, schemeCoarse, schemeFine, fineElemShift, modalCoarsed)

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

Arguments

Type IntentOptional Attributes Name
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), intent(in) :: modg_basis

The polynomial basis for the current level of the modg scheme

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

The parameters of your MODG scheme on the coarse level.

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

The parameters of your MODG scheme on the fint level.

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.

private subroutine modg_semiRefineElem_1d(modalRepFace, modg_basis, schemeCoarse, schemeFine, fineElemShift, modalRefined)

Subroutine to semi-refine an element with modal polynomial representation into its semi-children.

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in) :: modalRepFace(:,:)

Modal representation of a function on the non-refined face. Dimensions are: (modg%maxPolyDegree+1)^2 for the first dimension and nScalars for the second dimension.

type(ply_modg_basis_type), intent(in) :: modg_basis

The polynomial basis for the current level of the modg scheme

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

The parameters of your MODG scheme on the coarse level.

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

The parameters of your MODG scheme on the fine level.

integer, intent(in) :: fineElemShift

The semi-refined element you want to obtain.

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

The modal representation of modalRepFace restricted to the semi-refined element.