atl_eqn_LinearEuler_module Module

The linearized Euler equations of compressible inviscid flows.

These are the Euler equations but linearized around a global background state. In contrast to the nonlinear Euler equations in atl_eqn_euler_module, The state is represented in terms of the primitive variables density, velocity and pressure. To define the properties of the fluid the following parameters need to be defined:

  • The isentropic expansion coefficient isen_coef
  • The background state around the Euler equations are linearized each state variable needs to be given, and may be a function of time, see tem_load_temporal
  • density the background density
  • velocityX the background velocity in X direction
  • velocityY the background velocity in Y direction
  • If 3D: velocityZ for the background velocity in Z direction
  • pressure the background pressure

Hence, the definition for the linearized euler equation takes a form like

  equation = {
    name   = 'linearEuler',
    isen_coef = 1.4,
    background = {
      density = 1.225,
      velocityX = 100.0,
      velocityY = 0.0,
      velocityZ = 0.0,
      pressure = 100000.0
    }
  }

The following equation names are implementing the linearized Euler equations:

  • lineareuler
  • lineareuler_2d

Uses

Used by

  • module~~atl_eqn_lineareuler_module~~UsedByGraph module~atl_eqn_lineareuler_module atl_eqn_LinearEuler_module module~atl_calc_time_module atl_calc_time_module module~atl_calc_time_module->module~atl_eqn_lineareuler_module module~atl_compute_module atl_compute_module module~atl_compute_module->module~atl_eqn_lineareuler_module module~atl_eqn_lineareuler_2d_derive_module atl_eqn_lineareuler_2d_derive_module module~atl_eqn_lineareuler_2d_derive_module->module~atl_eqn_lineareuler_module module~atl_eqn_lineareuler_derive_module atl_eqn_lineareuler_derive_module module~atl_eqn_lineareuler_derive_module->module~atl_eqn_lineareuler_module module~atl_eqn_lineareuler_hlp_module atl_eqn_LinearEuler_hlp_module module~atl_eqn_lineareuler_hlp_module->module~atl_eqn_lineareuler_module module~atl_equation_module atl_equation_module module~atl_equation_module->module~atl_eqn_lineareuler_module module~atl_laxfriedrichflux_2d_module atl_laxFriedrichFlux_2d_module module~atl_laxfriedrichflux_2d_module->module~atl_eqn_lineareuler_module module~atl_laxfriedrichflux_module atl_laxFriedrichFlux_module module~atl_laxfriedrichflux_module->module~atl_eqn_lineareuler_module module~atl_lineareuler_2d_numflux_module atl_LinearEuler_2d_numflux_module module~atl_lineareuler_2d_numflux_module->module~atl_eqn_lineareuler_module module~atl_lineareuler_2d_physflux_module atl_LinearEuler_2d_physflux_module module~atl_lineareuler_2d_physflux_module->module~atl_eqn_lineareuler_module module~atl_lineareuler_numflux_module atl_LinearEuler_numflux_module module~atl_lineareuler_numflux_module->module~atl_eqn_lineareuler_module module~atl_lineareuler_physflux_module atl_LinearEuler_physflux_module module~atl_lineareuler_physflux_module->module~atl_eqn_lineareuler_module proc~atl_eqn_write atl_eqn_write proc~atl_eqn_write->module~atl_eqn_lineareuler_module

Abstract Interfaces

abstract interface

  • public subroutine atl_lineuler_numflux(nSides, nFaceDofs, faceRep, faceFlux, leftPos, rightPos, var, LinearEuler, idir)

    Interface definition for numerical fluxes.

    Todo

    HK: should be vectorized to reduce overheads.

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(in) :: nSides
    integer, intent(in) :: nFaceDofs
    real(kind=rk), intent(in) :: faceRep(:,:,:,:)
    real(kind=rk), intent(inout) :: faceFlux(:,:,:,:)
    integer, intent(in) :: leftPos(nSides)
    integer, intent(in) :: rightPos(nsides)
    integer, intent(in) :: var(:)
    type(atl_LinearEuler_type), intent(in) :: LinearEuler

    Datatype for LinearEuler equation include all background data

    integer, intent(in) :: idir

    Direction of the flow, used for background velocity


Derived Types

type, public ::  atl_LinearEuler_type

The Euler equation properties are stored here

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: isen_coef

isentropic coefficient

real(kind=rk), public :: density_0

background density

real(kind=rk), public, allocatable :: velocity_0(:)

background velocity (x,y,z) direction

real(kind=rk), public :: pressure_0

background pressure

real(kind=rk), public :: speedOfSound

speedofSound, depends on temporal background

type(temporal_background_type), public :: temporal_background

type for the temporal function of background, used to update background

type(atl_materialFun_type), public :: penalization

The functions for the penalizations

type(dir_proc), public :: dir_proc(3)

type for direction specific procedure like the numerical flux

type, private ::  temporal_background_type

Type to store the temporal function for each background state

Components

Type Visibility Attributes Name Initial
type(tem_temporal_type), public :: density
type(tem_temporal_type), public :: velocityX
type(tem_temporal_type), public :: velocityY
type(tem_temporal_type), public :: velocityZ
type(tem_temporal_type), public :: pressure

type, private ::  dir_proc

Components

Type Visibility Attributes Name Initial
procedure(atl_lineuler_numflux), public, pointer, nopass :: numflux => NULL()

Procedure to compute the numerical flux for the equation at hand.

Read more…

Subroutines

public subroutine atl_load_LinearEuler(LinearEuler, conf, eq_table, spatial_dim)

subroutine to initialize an equation of type linear euler equation as defined in the configuration file

Arguments

Type IntentOptional Attributes Name
type(atl_LinearEuler_type), intent(out) :: LinearEuler

Resulting description of the Euler equation parameters.

type(flu_State) :: conf

Handle to the configuration script, to load the parameters from.

integer, intent(in) :: eq_table

Handle to the table containing the description for the equation system.

integer :: spatial_dim

The spatial dimension of the Euler equation

public subroutine atl_save_LinearEuler(me, eqn_name, nDimensions, conf)

Arguments

Type IntentOptional Attributes Name
type(atl_LinearEuler_type), intent(in) :: me
character(len=*), intent(in) :: eqn_name
integer, intent(in) :: nDimensions
type(aot_out_type) :: conf

public subroutine atl_eqn_update_background(me, time, nDimensions)

Routine which updates the background since it is a temporal function and

Arguments

Type IntentOptional Attributes Name
type(atl_LinearEuler_type), intent(inout) :: me

linearEuler type including background

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

timer object incl. the current time information

integer, intent(in) :: nDimensions

spatial dimension