atl_modg_1d_bnd_module Module

Module collects all routines, datatypes, etc. to set boundary contitions for the MOdal Discontinuous Galerkin scheme.


Uses

Used by

  • module~~atl_modg_1d_bnd_module~~UsedByGraph module~atl_modg_1d_bnd_module atl_modg_1d_bnd_module module~atl_covolume_boundary_module atl_covolume_boundary_module module~atl_covolume_boundary_module->module~atl_modg_1d_bnd_module proc~preprocess_rhs_cubes preprocess_rhs_cubes proc~preprocess_rhs_cubes->module~atl_modg_1d_bnd_module module~atl_stabilize_module atl_stabilize_module module~atl_stabilize_module->module~atl_covolume_boundary_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

Functions

public function atl_modg_1d_bnd(bc, faceOp, poly_proj, equation, tree, normalRot, isNodalScheme, time, faceDir, leftOrRight, bndBaryCoord, elemLength, faceMaterial) result(modalFace)

Subroutine to create the modal representation for a ceratin boundary face.

Arguments

Type IntentOptional Attributes Name
type(atl_boundary_type), intent(in) :: bc

The boundary condition to generate the modal representation for.

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

The modal representation on the face of the neighboring element.

type(ply_poly_project_type), intent(inout) :: poly_proj

The parameters for projection method.

type(atl_Equations_type), intent(in) :: equation

The equation system you use.

type(treelmesh_type), intent(in) :: tree

treelm mesh

type(coordRotation_type), intent(in) :: normalRot

Rotation indices to rotate global coordinate system into face normal coordinate system.

logical, intent(in) :: isNodalScheme

Does the solver require isNodalScheme information anyway?

type(tem_time_type), intent(in) :: time

The absolute time point.

integer, intent(in) :: faceDir

The spatial direction of the boundary face, i.e.: \n 1 -> x direction

integer, intent(in) :: leftOrRight

Is left or right of the fluid element a boundary face.

real(kind=rk), intent(in) :: bndBaryCoord(1:3)

The barycentric boundary element coordinates

real(kind=rk), intent(in) :: elemLength

The length of an element on the current level

real(kind=rk), intent(in), optional :: faceMaterial(:,:)

The material of the boundary face. First dimension is the number of points on the face. Second dimension is the number of material parameters.

Return Value real(kind=rk), (1,equation%varSys%nScalars)

The modal representation on the boundary face.

private function modg_1d_nodal_bnd(bc, faceOp, poly_proj, equation, tree, normalRot, time, faceDir, leftOrRight, bndBaryCoord, elemLength, faceMaterial) result(modalFace)

Set boundary values in a nodal way

Arguments

Type IntentOptional Attributes Name
type(atl_boundary_type), intent(in) :: bc

The boundary condition to generate the modal representation for.

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

The modal representation on the face of the neighboring element.

type(ply_poly_project_type), intent(inout) :: poly_proj

The parameters for projection method.

type(atl_Equations_type), intent(in) :: equation

The equation system you use.

type(treelmesh_type), intent(in) :: tree

treelm mesh

type(coordRotation_type), intent(in) :: normalRot

Rotation indices to rotate global coordinate system into face normal coordinate system.

type(tem_time_type), intent(in) :: time

The absolute time point.

integer, intent(in) :: faceDir

The spatial direction of the boundary face, i.e.: \n 1 -> x direction

integer, intent(in) :: leftOrRight

Is left or right of the fluid element a boundary face.

real(kind=rk), intent(in) :: bndBaryCoord(1:3)

The barycentric boundary element coordinates

real(kind=rk), intent(in) :: elemLength

The length of an element on the current level

real(kind=rk), intent(in), optional :: faceMaterial(:,:)

The material of the boundary face. First dimension is the number of points on the face. Second dimension is the number of material parameters.

Return Value real(kind=rk), (1,equation%varSys%nScalars)

The modal representation on the boundary face.

private function modg_1d_modal_bnd(bc, faceOp, poly_proj, equation, tree, normalRot, time, faceDir, leftOrRight, bndBaryCoord, elemLength) result(modalFace)

Set boundary values in a modal way

Arguments

Type IntentOptional Attributes Name
type(atl_boundary_type), intent(in) :: bc

The boundary condition to generate the modal representation for.

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

The modal representation on the face of the neighboring element.

type(ply_poly_project_type), intent(inout) :: poly_proj

The parameters for projection method.

type(atl_Equations_type), intent(in) :: equation

The equation system you use.

type(treelmesh_type), intent(in) :: tree

treelm mesh

type(coordRotation_type), intent(in) :: normalRot

Rotation indices to rotate global coordinate system into face normal coordinate system.

type(tem_time_type), intent(in) :: time

The absolute time point.

integer, intent(in) :: faceDir

The spatial direction of the boundary face, i.e.: \n 1 -> x direction

integer, intent(in) :: leftOrRight

Is left or right of the fluid element a boundary face.

real(kind=rk), intent(in) :: bndBaryCoord(1:3)

The barycentric boundary element coordinates

real(kind=rk), intent(in) :: elemLength

The length of an element on the current level

Return Value real(kind=rk), (1,equation%varSys%nScalars)

The modal representation on the boundary face.

private function modg_1d_bnd_extrapolate(faceOp) result(modalFace)

Function to extrapolate face values for a given boundary condition in physical or modal space.

Arguments

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

Modal representation on the face of the neighboring element.

Return Value real(kind=rk), (1)

The extrapolated modal representation.

private function modg_1d_bnd_mirrorModalConst(st_fun) result(modalFace)

Function to mirror a modal representation around a given boundary condition in modal space.

Arguments

Type IntentOptional Attributes Name
type(tem_spacetime_fun_type), intent(in) :: st_fun

List of constant spacetime functions

Return Value real(kind=rk), (1)

The mirrored modal representation.

private function modg_1d_bnd_mirrorPoint(bc, poly_proj, time, varSys, tree, faceDir, leftOrRight, bndBaryCoord, elemLength) result(pointFace)

Function to mirror pointvalues for a given boundary conditions.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_bc_state_type), intent(in) :: bc

The boundary state.

type(ply_poly_project_type), intent(inout) :: poly_proj

Data for the projection methods

type(tem_time_type), intent(in) :: time

The current absolute time.

type(tem_varSys_type), intent(in) :: varSys

Global variable system

type(treelmesh_type), intent(in) :: tree

treelm mesh

integer, intent(in) :: faceDir

The spatial direction of the boundary face, i.e.: \n 1 -> x direction

integer, intent(in) :: leftOrRight

Is left or right of the fluid element a boundary face.

real(kind=rk) :: bndBaryCoord(1:3)

The barycentric boundary element coordinates

real(kind=rk) :: elemLength

The element length on the current refinement level

Return Value real(kind=rk), (1)

The mirrored isNodalScheme representation.


Subroutines

public subroutine atl_modg_1d_set_bnd(bc, boundary, facedata, statedata, poly_proj, material, equation, tree, time, mesh)

Subroutine to set face values to impose boundary conditions.

Read more…

Arguments

Type IntentOptional Attributes Name
type(atl_boundary_type), intent(in) :: bc(:)

The global description of the boundaries.

type(atl_level_boundary_type), intent(in) :: boundary

The levelwise collection of boundary elements and boundary faces.

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

The face data on the current level

type(atl_statedata_type), intent(inout) :: statedata

The state data on the current level

type(ply_poly_project_type), intent(inout) :: poly_proj

Data for the projection methods

type(atl_faceMaterialData_type), intent(in), optional :: material

Material description of the faces contained in boundary. One entry for each spatial direction, i.e. x,y.

type(atl_Equations_type), intent(in) :: equation

The underlying equation system

type(treelmesh_type), intent(in) :: tree

treelm mesh

type(tem_time_type), intent(in) :: time

The absolute time point.

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

The description of the mesh on the current level.