Collections of operations and datatypes related to multilevel simulations for the MODG scheme.
\brief Interpolate modal face representation from coarse to next finer faces (level difference between coarser and finer faces has to be 1).
Type | Intent | Optional | 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. |
I n t e r p o l a t e
m o d a l
f a c e
r e p r e s e n t a t i o n
f r o m
n e x t
f i n e r
f a c e s
t o
c o a r s e
l e v e l
( l e v e l
Type | Intent | Optional | 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. |
Project data from 8 smaller elements to its parent element in terms of L2 projections.
Type | Intent | Optional | 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. |
Project coarse parent element to its 8 finer child elements by a simple L2 projection.
Type | Intent | Optional | 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. |
Subroutine to semi-coarsen an element with modal polynomial representation to its semi-parent.
Type | Intent | Optional | 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. |
Subroutine to semi-refine an element with modal polynomial representation into its semi-children.
Type | Intent | Optional | 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. |