atl_modg_1d_euler_kernel_module Module

Module for routines and datatypes of MOdal Discontinuous Galerkin (MODG) scheme for the 1D Euler equation. This scheme is a spectral scheme for linear, purley hyperbolic partial differential equation systems.


Uses

Used by

  • module~~atl_modg_1d_euler_kernel_module~~UsedByGraph module~atl_modg_1d_euler_kernel_module atl_modg_1d_euler_kernel_module proc~modg_1d_compute_project_physflux modg_1d_compute_project_physFlux proc~modg_1d_compute_project_physflux->module~atl_modg_1d_euler_kernel_module proc~compute_rhs_cubes_modg_1d compute_rhs_cubes_modg_1d proc~compute_rhs_cubes_modg_1d->module~atl_modg_1d_euler_kernel_module

Contents


Subroutines

public subroutine atl_modg_1d_euler_physFlux_const(equation, poly_proj, res, pointVal, penalty_char, U_o)

Calculate the physical flux for the MODG scheme and Euler equation with constant characteristic (mask function) in the element.

Arguments

TypeIntentOptionalAttributesName
type(atl_Equations_type) :: equation

The equation you solve.

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

Parameters for projection

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

The physical flux result to be stored in

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

Nodal representation of the polynomial with in each cell.

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

Characteristic (mask) function of the material penalization.

This should be 0 everywhere where there is no material, and 1 where there is material.

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

Obstacle velocity

public subroutine atl_modg_1d_euler_physFlux_nonConst(equation, poly_proj, res, pointVal, penalty_char, U_o)

Calculate the physical flux for the MODG scheme and Euler equation with variable characteristic (mask function) in the element.

Arguments

TypeIntentOptionalAttributesName
type(atl_Equations_type) :: equation

The equation you solve.

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

Parameters for projection

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

The physical flux result to be stored in

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

Nodal representation of the polynomial with in each cell.

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

Characteristic (mask) function of the material penalization.

This should be 0 everywhere where there is no material, and 1 where there is material. obstacle velocity

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

public subroutine atl_modg_1d_euler_numFlux(equation, facedata, material)

Calculate the numerical flux for Euler equation and MODG scheme

Arguments

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

The equation you solve.

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

The face representation of the state.

type(atl_material_type), intent(in) :: material

Material description for the faces on the current level

public subroutine atl_modg_1d_euler_penalization_Const(equation, poly_proj, nodal_data, scheme_min, penalizationData, iElem, material)

Arguments

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

The equation you solve.

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

Poly project

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

The state in nodal form

type(atl_scheme_type), intent(inout) :: scheme_min

The scheme information

type(atl_penalizationData_type), intent(inout) :: penalizationData

The penalization data

integer, intent(in) :: iElem

The current Element

type(atl_material_type), intent(in) :: material

Material description for the faces on the current level

public subroutine atl_modg_1d_euler_penalization_NonConst(equation, poly_proj, nodal_data, scheme_min, penalizationData, iElem, material)

Arguments

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

The equation you solve.

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

Poly project

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

The state in nodal form

type(atl_scheme_type), intent(inout) :: scheme_min

The scheme information

type(atl_penalizationData_type), intent(inout) :: penalizationData

The penalization data

integer, intent(in) :: iElem

The current Element

type(atl_material_type), intent(in) :: material

Material description for the faces on the current level

private subroutine modg_1d_euler_oneDim_numFlux(equation, facedata, faces, material)

Numerical flux calculation for Euler equation across the faces in a single spatial direction.

Arguments

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

The equation you solve.

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

The face state if the equation

type(tem_faceIterator_type), intent(in) :: faces

The faces to calculate the fluxes for.

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

The penalization material left and right of the face