atl_modg_1d_multilevel_module Module

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


Uses

  • module~~atl_modg_1d_multilevel_module~~UsesGraph module~atl_modg_1d_multilevel_module atl_modg_1d_multilevel_module env_module env_module module~atl_modg_1d_multilevel_module->env_module module~atl_cube_elem_module atl_cube_elem_module module~atl_modg_1d_multilevel_module->module~atl_cube_elem_module module~atl_facedata_module atl_facedata_module module~atl_modg_1d_multilevel_module->module~atl_facedata_module module~atl_kerneldata_module atl_kerneldata_module module~atl_modg_1d_multilevel_module->module~atl_kerneldata_module module~atl_modg_1d_scheme_module atl_modg_1d_scheme_module module~atl_modg_1d_multilevel_module->module~atl_modg_1d_scheme_module module~atl_scheme_module atl_scheme_module module~atl_modg_1d_multilevel_module->module~atl_scheme_module module~ply_modg_basis_module ply_modg_basis_module module~atl_modg_1d_multilevel_module->module~ply_modg_basis_module tem_element_module tem_element_module module~atl_modg_1d_multilevel_module->tem_element_module tem_faceData_module tem_faceData_module module~atl_modg_1d_multilevel_module->tem_faceData_module tem_topology_module tem_topology_module module~atl_modg_1d_multilevel_module->tem_topology_module module~atl_cube_elem_module->env_module module~atl_cube_elem_module->tem_faceData_module tem_construction_module tem_construction_module module~atl_cube_elem_module->tem_construction_module tem_geometry_module tem_geometry_module module~atl_cube_elem_module->tem_geometry_module tem_logging_module tem_logging_module module~atl_cube_elem_module->tem_logging_module treelmesh_module treelmesh_module module~atl_cube_elem_module->treelmesh_module module~atl_facedata_module->env_module module~atl_facedata_module->tem_faceData_module module~atl_boundary_module atl_boundary_module module~atl_facedata_module->module~atl_boundary_module module~atl_facedata_module->tem_construction_module module~atl_kerneldata_module->env_module module~ply_dof_module ply_dof_module module~atl_kerneldata_module->module~ply_dof_module tem_time_module tem_time_module module~atl_kerneldata_module->tem_time_module module~atl_modg_1d_scheme_module->env_module aot_table_module aot_table_module module~atl_modg_1d_scheme_module->aot_table_module aot_top_module aot_top_module module~atl_modg_1d_scheme_module->aot_top_module aotus_module aotus_module module~atl_modg_1d_scheme_module->aotus_module module~atl_modg_1d_scheme_module->module~ply_dof_module tem_aux_module tem_aux_module module~atl_modg_1d_scheme_module->tem_aux_module module~atl_modg_1d_scheme_module->tem_logging_module tem_tools_module tem_tools_module module~atl_modg_1d_scheme_module->tem_tools_module module~atl_scheme_module->env_module module~atl_scheme_module->module~atl_modg_1d_scheme_module module~atl_scheme_module->module~ply_modg_basis_module module~atl_scheme_module->aot_table_module module~atl_scheme_module->aotus_module module~atl_modg_2d_scheme_module atl_modg_2d_scheme_module module~atl_scheme_module->module~atl_modg_2d_scheme_module module~atl_modg_scheme_module atl_modg_scheme_module module~atl_scheme_module->module~atl_modg_scheme_module module~atl_stabilization_module atl_stabilization_module module~atl_scheme_module->module~atl_stabilization_module module~atl_scheme_module->tem_aux_module module~atl_scheme_module->tem_logging_module tem_stencil_module tem_stencil_module module~atl_scheme_module->tem_stencil_module module~atl_scheme_module->tem_tools_module module~ply_modg_basis_module->env_module module~ply_modg_basis_module->module~ply_dof_module module~ply_space_integration_module ply_space_integration_module module~ply_modg_basis_module->module~ply_space_integration_module

Used by

  • module~~atl_modg_1d_multilevel_module~~UsedByGraph module~atl_modg_1d_multilevel_module atl_modg_1d_multilevel_module module~atl_stabilize_module atl_stabilize_module module~atl_stabilize_module->module~atl_modg_1d_multilevel_module proc~compute_rhs_cubes_modg_1d compute_rhs_cubes_modg_1d proc~compute_rhs_cubes_modg_1d->module~atl_modg_1d_multilevel_module proc~modg_1d_compute_project_physflux modg_1d_compute_project_physFlux proc~modg_1d_compute_project_physflux->module~atl_modg_1d_multilevel_module proc~preprocess_rhs_cubes preprocess_rhs_cubes proc~preprocess_rhs_cubes->module~atl_modg_1d_multilevel_module module~atl_fwdeuler_module atl_fwdEuler_module module~atl_fwdeuler_module->module~atl_stabilize_module module~atl_imexrk_module atl_imexrk_module module~atl_imexrk_module->module~atl_stabilize_module module~atl_rk4_module atl_rk4_module module~atl_rk4_module->module~atl_stabilize_module module~atl_rktaylor_module atl_rktaylor_module module~atl_rktaylor_module->module~atl_stabilize_module module~atl_ssprk2_module atl_ssprk2_module module~atl_ssprk2_module->module~atl_stabilize_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_stabilize_module module~atl_global_time_integration_module atl_global_time_integration_module module~atl_global_time_integration_module->module~atl_fwdeuler_module module~atl_global_time_integration_module->module~atl_imexrk_module module~atl_global_time_integration_module->module~atl_rk4_module module~atl_global_time_integration_module->module~atl_rktaylor_module module~atl_global_time_integration_module->module~atl_ssprk2_module module~atl_container_module atl_container_module module~atl_container_module->module~atl_global_time_integration_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_global_time_integration_module

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)

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

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.