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:
isen_coef
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_temporaldensity
the background densityvelocityX
the background velocity in X directionvelocityY
the background velocity in Y directionvelocityZ
for the background velocity in Z directionpressure
the background pressureHence, 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
Interface definition for numerical fluxes.
Todo
HK: should be vectorized to reduce overheads.
Type | Intent | Optional | 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 |
The Euler equation properties are stored here
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 to store the temporal function for each background state
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 | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
procedure(atl_lineuler_numflux), | public, | pointer, nopass | :: | numflux | => | NULL() |
Procedure to compute the numerical flux for the equation at hand. |
subroutine to initialize an equation of type linear euler equation as defined in the configuration file
Type | Intent | Optional | 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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_LinearEuler_type), | intent(in) | :: | me | |||
character(len=*), | intent(in) | :: | eqn_name | |||
integer, | intent(in) | :: | nDimensions | |||
type(aot_out_type) | :: | conf |
Routine which updates the background since it is a temporal function and
Type | Intent | Optional | 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 |