atl_modg_2d_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_2d_bnd_module~~UsedByGraph module~atl_modg_2d_bnd_module atl_modg_2d_bnd_module module~atl_covolume_boundary_module atl_covolume_boundary_module module~atl_covolume_boundary_module->module~atl_modg_2d_bnd_module proc~preprocess_rhs_cubes preprocess_rhs_cubes proc~preprocess_rhs_cubes->module~atl_modg_2d_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

private function modg_2d_bnd_extrapolate(nVals, faceOp) result(modalFace)

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

Arguments

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

The number of coefficients to extrapolate

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

Modal representation on the face of the neighboring element.

Return Value real(kind=rk), allocatable, (:)

The extrapolated modal representation.


Subroutines

public subroutine atl_modg_2d_set_bnd(bc, boundary, facedata, statedata, modg, equation, time, mesh, poly_proj, nodalBnd, material, currentLevel)

Subroutine to set face values to impose boundary conditions at a certain point of the domain. The subroutine is operating levelwise.

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(atl_modg_2d_scheme_type), intent(inout) :: modg

The parameters of th the modg scheme.

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

The underlying equation system

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.

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

Data for the projection methods

logical, intent(in) :: nodalBnd

Set boundaries in nodal fashion by default? If set to false, the boundaries may still be set in nodal way whenever necessary (e.g. boundaries which have space-time dependence, etc.)

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

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

integer, intent(in) :: currentLevel

the level to compute on

public subroutine atl_modg_2d_bnd(bc, faceOp, poly_proj, nDerivatives, equation, normalRot, isNodalScheme, time, currentFace, currentLevel, nquadpoints, ndofs, oversamp_dofs, modalFace, faceMaterial)

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.

integer, intent(in) :: nDerivatives

The number of derivative boundaries to be set

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

The equation system you use.

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) :: currentFace

Current face to compute, needed to get correct position in index array

integer, intent(in) :: currentLevel

the level to compute on

integer, intent(in) :: nquadpoints

integers for allocation of temp arrays, depend on number of quadrature points and for modal values number of dofs

integer, intent(in) :: ndofs

integers for allocation of temp arrays, depend on number of quadrature points and for modal values number of dofs

integer, intent(in) :: oversamp_dofs

integers for allocation of temp arrays, depend on number of quadrature points and for modal values number of dofs

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

The modal representation on the boundary face.

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.

private subroutine modg_2d_nodal_bnd(bc, faceOp, poly_proj, equation, normalRot, time, currentFace, currentLevel, nDerivatives, nquadpoints, oversamp_dofs, modalFace, faceMaterial)

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(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) :: currentFace

current face to cpmoute on, needed to access correct index

integer, intent(in) :: currentLevel

the level to compute on

integer, intent(in) :: nDerivatives

The number of derivative boundaries to be set

integer, intent(in) :: nquadpoints

integers for allocation of temp arrays, depend on number of quadrature points and for modal values number of dofs

integer, intent(in) :: oversamp_dofs

integers for allocation of temp arrays, depend on number of quadrature points and for modal values number of dofs

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

result of the bnd routine, modal coefficent on the boundary faces

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.

private subroutine modg_2d_modal_bnd(bc, faceOp, poly_proj, equation, normalRot, time, currentFace, currentLevel, nquadpoints, ndofs, oversamp_dofs, modalFace, faceMaterial)

Set boundary values in a modal way

Read more…

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(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) :: currentFace

Current Face to compute

integer, intent(in) :: currentLevel

the level to compute on

integer, intent(in) :: nquadpoints

integers for allocation of temp arrays, depend on number of quadrature points and for modal values number of dofs

integer, intent(in) :: ndofs

integers for allocation of temp arrays, depend on number of quadrature points and for modal values number of dofs

integer, intent(in) :: oversamp_dofs

integers for allocation of temp arrays, depend on number of quadrature points and for modal values number of dofs

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

result of the bnd routine, modal coefficent on the boundary faces

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.

private subroutine modg_2d_bnd_mirrorPoint(bc, nPoints, time, varSys, currentFace, pointFace, currentLevel)

Function to mirror pointvalues for a given boundary conditions.

Arguments

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

The boundary state.

integer, intent(in) :: nPoints

The number of point values to be mirrored.

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

The current absolute time.

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

Global variable system

integer, intent(in) :: currentFace

Current Face to get the correct position in index array

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

The mirrored isNodalScheme representation.

integer, intent(in) :: currentLevel

current level