atl_eqn_euler_hlp_module Module

Helper routines for the euler equation system.


Uses

Used by

  • module~~atl_eqn_euler_hlp_module~~UsedByGraph module~atl_eqn_euler_hlp_module atl_eqn_euler_hlp_module proc~implicit_update implicit_update proc~implicit_update->module~atl_eqn_euler_hlp_module module~atl_equation_init_module atl_equation_init_module module~atl_equation_init_module->module~atl_eqn_euler_hlp_module module~atl_eqn_nvrstk_hlp_module atl_eqn_nvrstk_hlp_module module~atl_equation_init_module->module~atl_eqn_nvrstk_hlp_module module~atl_eqn_nvrstk_hlp_module->module~atl_eqn_euler_hlp_module module~atl_initialize_module atl_initialize_module module~atl_initialize_module->module~atl_equation_init_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_initialize_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_initialize_module program~atl_harvesting->module~atl_program_module program~ateles ateles program~ateles->module~atl_program_module

Contents


Functions

private pure function linearization_deactivated(euler, mean, deviation) result(islinear)

An indicator that completely deactivates linearization.

Arguments

TypeIntentOptionalAttributesName
class(atl_euler_type), intent(in) :: euler

Description of the equation

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

The mean value of each state

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

Maximal deviation of each state

Return Value logical

private pure function linearization_indicator_density(euler, mean, deviation) result(islinear)

An indicator to decide whether linearization of fluxes is tolerable based on the density.

Arguments

TypeIntentOptionalAttributesName
class(atl_euler_type), intent(in) :: euler

Description of the equation

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

The mean value of each state

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

Maximal deviation of each state

Return Value logical

private pure function linearization_indicator_energy3d(euler, mean, deviation) result(islinear)

An indicator to decide whether linearization of fluxes is tolerable based on the energy in 3D.

Arguments

TypeIntentOptionalAttributesName
class(atl_euler_type), intent(in) :: euler

Description of the equation

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

The mean value of each state

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

Maximal deviation of each state

Return Value logical

private pure function linearization_indicator_energy2d(euler, mean, deviation) result(islinear)

An indicator to decide whether linearization of fluxes is tolerable based on the energy in 2D.

Arguments

TypeIntentOptionalAttributesName
class(atl_euler_type), intent(in) :: euler

Description of the equation

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

The mean value of each state

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

Maximal deviation of each state

Return Value logical

private pure function linearization_indicator_energy1d(euler, mean, deviation) result(islinear)

An indicator to decide whether linearization of fluxes is tolerable based on the energy in 2D.

Arguments

TypeIntentOptionalAttributesName
class(atl_euler_type), intent(in) :: euler

Description of the equation

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

The mean value of each state

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

Maximal deviation of each state

Return Value logical

private pure function linearization_indicator_err3d(euler, mean, deviation) result(islinear)

An indicator to decide whether linearization of fluxes is tolerable based on the error estimate.

Arguments

TypeIntentOptionalAttributesName
class(atl_euler_type), intent(in) :: euler

Description of the equation

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

The mean value of each state

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

Maximal deviation of each state

Return Value logical

private pure function linearization_indicator_err2d(euler, mean, deviation) result(islinear)

An indicator to decide whether linearization of fluxes is tolerable based on the error estimate.

Arguments

TypeIntentOptionalAttributesName
class(atl_euler_type), intent(in) :: euler

Description of the equation

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

The mean value of each state

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

Maximal deviation of each state

Return Value logical

private pure function linearization_indicator_err1d(euler, mean, deviation) result(islinear)

An indicator to decide whether linearization of fluxes is tolerable based on the error estimate.

Arguments

TypeIntentOptionalAttributesName
class(atl_euler_type), intent(in) :: euler

Description of the equation

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

The mean value of each state

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

Maximal deviation of each state

Return Value logical


Subroutines

public subroutine atl_eqn_euler_init(conf, thandle, equation, nDimensions, initSource, initMaterial, varSys_data)

Initialization of the Euler equation.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(flu_State), intent(in) :: conf

Handle to the Lua configuration

integer, intent(in) :: thandle

Handle to the equation table in the Lua script given in conf.

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

Equation system to set with this routine.

integer, intent(in) :: nDimensions

Number of spatial dimensions, the Euler equations should live on.

Has to be 1, 2 or 3.

type(atl_init_source_type), intent(inout) :: initSource

Type to be filled with the possible source variables for the equation system. These source variables are later on used to extract the corresponding information from the configuration file.

type(atl_init_material_type), intent(inout) :: initMaterial

Type to be filled with the possible material variables for the equation system. These material variables are later on used to extract the corresponding information from the configuration file.

type(atl_varSys_solverData_type), intent(inout) :: varSys_data

the pointer to the data required for the varsys

public subroutine atl_eqn_euler_load_bc(equation, bc_state, bc_state_gradient, bc_varDict, bc_varDict_gradient, bc_normal_vec, bc_normal_vec_gradient, bc_trafo, bc_trafo_gradient, bc_label, bc_kind, thandle, conf)

Reading boundary conditions for the euler equations.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(atl_Equations_type), intent(inout) :: equation
type(tem_bc_state_type), intent(out), allocatable:: bc_state(:)
type(tem_bc_state_type), intent(out), allocatable:: bc_state_gradient(:)
type(grw_stringkeyvaluepairarray_type), intent(out) :: bc_varDict

Dictionary of boundary variables in bc_state

type(grw_stringkeyvaluepairarray_type), intent(out) :: bc_varDict_gradient

Dictionary of boundary variables in bc_state_gradient

logical, intent(out) :: bc_normal_vec
logical, intent(out) :: bc_normal_vec_gradient
type(atl_eqn_var_trafo_type), intent(out) :: bc_trafo
type(atl_eqn_var_trafo_type), intent(out) :: bc_trafo_gradient
character(len=*), intent(in) :: bc_label
character(len=*), intent(in) :: bc_kind
integer, intent(in) :: thandle
type(flu_State) :: conf

public subroutine atl_getEulerFluxes(euler, conf, eqn_handle, eqn_dim)

Arguments

TypeIntentOptionalAttributesName
type(atl_euler_type), intent(inout) :: euler

The equations type to set the numerical flux in.

type(flu_state) :: conf

Configuration file handle to get the numerical flux setting from.

integer, intent(in) :: eqn_handle

Handle to the equation table in the configuration script.

integer, intent(in) :: eqn_dim

Dimension of the equation to set the flux for.

public subroutine atl_getEulerLinInd(euler, conf, eqn_handle, eqn_dim)

Getting the linearization indicator for Euler equations from the config.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(atl_euler_type), intent(inout) :: euler

The equations type to set the numerical flux in.

type(flu_state) :: conf

Configuration file handle to get the numerical flux setting from.

integer, intent(in) :: eqn_handle

Handle to the equation table in the configuration script.

integer, intent(in) :: eqn_dim

Dimension of the equation to set the flux for.

public subroutine atl_eqn_euler_implicit_pen(material, eqn, weighted_dt, ndims, poly_proj, state, timestep_rhs)

Solve the equation system with just the penalization terms to find an implicit update for the IMEX timestepping procedure.

Arguments

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

Definition of the material, which directly describes the penalization.

We expect the mask function Chi to be defined in materialdat(:,:,1), the obstacle velocity U_o in materialdat(:,:,2:nDims+1) and the obstacle Temperature T_o in materialdat(:,:,nDims+2).

type(atl_euler_type), intent(in) :: eqn

Definition of parameters in the Euler equations.

This has to provide cv, the viscous permeability and the thermal permeability.

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

Timestep which is already weighted by the time integration scheme.

integer, intent(in) :: ndims

Number of dimensions, the equation system is computed in (2 or 3).

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

Description of the projection for the material.

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

The state variables of the equation system, they will be updated to the solution of the implicit computation for penalization.

real(kind=rk), intent(out) :: timestep_rhs(:,:,:)

Right hand side contribution by the implicit calculation.