atl_Equations_type Derived Type

type, public :: atl_Equations_type

Datatype representing the equation which is used for the simulation.

The eq_kind component specifies which eqation system is simulated (e.g. the navier-stokes equations).

For each possible equation system there is a component to store necessary parameters (e.g. ideal gas constant, viscosity...). The definition of these subtypes can be found in their own modules (atl_eqn_*_module).

Provides information about the variables of the current equation system (variable names, derived quantities) and possible source terms.


Inherits

type~~atl_equations_type~~InheritsGraph type~atl_equations_type atl_Equations_type coordRotation_type coordRotation_type type~atl_equations_type->coordRotation_type varRotation tem_st_fun_linkedList_type tem_st_fun_linkedList_type type~atl_equations_type->tem_st_fun_linkedList_type stFunList tem_varMap_type tem_varMap_type type~atl_equations_type->tem_varMap_type redTransVarMap tem_varSys_type tem_varSys_type type~atl_equations_type->tem_varSys_type varSys type~atl_acoustic_type atl_acoustic_type type~atl_equations_type->type~atl_acoustic_type Acoustic type~atl_advection_1d_type atl_advection_1d_type type~atl_equations_type->type~atl_advection_1d_type advection type~atl_bbmem_type atl_BBMEM_type type~atl_equations_type->type~atl_bbmem_type BBMEM type~atl_euler_type atl_euler_type type~atl_equations_type->type~atl_euler_type Euler type~atl_filtnavierstokes_type atl_FiltNavierStokes_type type~atl_equations_type->type~atl_filtnavierstokes_type FiltNavierStokes type~atl_heat_type atl_heat_type type~atl_equations_type->type~atl_heat_type heat type~atl_lineareuler_type atl_LinearEuler_type type~atl_equations_type->type~atl_lineareuler_type LinearEuler type~atl_materialfun_type atl_materialFun_type type~atl_equations_type->type~atl_materialfun_type material type~atl_maxwell_type atl_maxwell_type type~atl_equations_type->type~atl_maxwell_type Maxwell type~atl_navierstokes_type atl_navierStokes_type type~atl_equations_type->type~atl_navierstokes_type NavierStokes type~atl_nernstplanck_type atl_nernstPlanck_type type~atl_equations_type->type~atl_nernstplanck_type NERPLANCK type~atl_temp_flux_arrays_type atl_temp_flux_arrays_type type~atl_equations_type->type~atl_temp_flux_arrays_type temp type~atl_acoustic_type->type~atl_materialfun_type penalization type~atl_navier_stokes_rans_type atl_navier_stokes_rans_type type~atl_filtnavierstokes_type->type~atl_navier_stokes_rans_type rans type~atl_heat_type->type~atl_materialfun_type penalization type~atl_lineareuler_type->type~atl_materialfun_type penalization type~dir_proc dir_proc type~atl_lineareuler_type->type~dir_proc dir_proc type~temporal_background_type temporal_background_type type~atl_lineareuler_type->type~temporal_background_type temporal_background type~atl_mode_reduction_type atl_mode_reduction_type type~atl_materialfun_type->type~atl_mode_reduction_type mode_reduction tem_temporal_type tem_temporal_type type~temporal_background_type->tem_temporal_type density, velocityX, velocityY, velocityZ, pressure

Inherited by

type~~atl_equations_type~~InheritedByGraph type~atl_equations_type atl_Equations_type type~atl_varsys_solverdata_type atl_varSys_solverData_type type~atl_varsys_solverdata_type->type~atl_equations_type equationPtr type~atl_varsys_data_type atl_varSys_data_type type~atl_varsys_data_type->type~atl_varsys_solverdata_type solverData

Components

Type Visibility Attributes Name Initial
character(len=labelLen), public :: eq_kind = ''

The type of the equation

possible values: * 'advection_1d' : 1D advection advection * 'bbmem' : blackbox membrane model equations * 'euler' : (3D) Euler equations * 'euler_2d' : 2D Euler equations * 'navier_stokes' : Navier-Stokes equations * 'filtered_navier_stokes' : Navier-Stokes with turbulence modeling * 'maxwell' : Maxwell equations * 'maxwelldivcorrection' : Maxwell equations with divergence corection * 'nernstplanck' : Nernst-Planck equation * 'acoustic' : Linearized Gas Dynamics -isentropic * 'acoustic_2d' : 2D Linearized Gas Dynamics -isentropic * 'heat_1d' : 1D Heat Equation * 'heat_2d' : 2D Heat Equation * 'heat' : 3D Heat Equation * 'linearEuler' : 3d Linearized euler equation If you want to add an additional equation you should also add a new character representing the equation type here. DO NOT FORGET to add a comment above!

integer, public :: nDimensions

Number of dimensions of the scheme

logical, public :: adaptive_timestep

Flag for adaptive timestep calcualtion

type(atl_euler_type), public :: Euler

Euler equations parameters

type(atl_navierStokes_type), public :: NavierStokes

Navier-Stokes equations parameters (additional to Euler)

type(atl_FiltNavierStokes_type), public :: FiltNavierStokes

filtered Navier-Stokes equation parameters (additional to NavierStokes and Euler)

type(atl_maxwell_type), public :: Maxwell

Pure Maxwell equations parameters

type(atl_advection_1d_type), public :: advection

Advection-Diffusion equation parameters

type(atl_BBMEM_type), public :: BBMEM

Membrane equations

type(atl_nernstPlanck_type), public :: NERPLANCK

Nernst-Planck equation

type(atl_acoustic_type), public :: Acoustic

Lineraized Gas Dynamics/Acoustic equation

type(atl_heat_type), public :: heat

Heat 1D,2D,3D equation parameters

type(atl_LinearEuler_type), public :: LinearEuler

Lineraized Euler equation, 3D and 2D

Variables of the equation system.

The conservative variables are stored first. Additional variables for primitive and characteristic variable systems can be stored as derived quantities if needed.

 +----------------------------+
 | consVar | derived vars     |
 +----------------------------+

Not all variable kinds have to be there. The entries of primitive variables can be accessed indirectly through varSys%Variable(primVar(i)).

type(tem_varSys_type), public :: varSys
type(tem_st_fun_linkedList_type), public :: stFunList

Contains all available space-time-functions.

This list contains all space-time-function, regardless of their purpose. I.e. source terms, material parameters, etc. can point to this particular list to reference their space-time-functions.

integer, public :: nDerivatives = 0

The number of derivatives we have to use in our simulation. Zero means that we use only cell values. One means that we calculate first derivatives (for each spatial direction).

logical, public :: hasPrimitiveVariables = .false.

Does this equation type have primitive variables?

integer, public, allocatable :: primVar(:)

Index of primitive variables in varSys, not allocated if the current equation has no primitive variables.

integer, public, allocatable :: stateVar(:)

Index of state variables in varSys

procedure(atl_eqn_load_bc), public, pointer :: load_bc => NULL()

Function pointer to the routine loading boundary conditions according to the equation system.

procedure(eqn_varElem_trafo), public, pointer, pass(equation) :: cons2prim => NULL()

Function pointer to transform conservative variables to primitive variables (if the equation has primitive variables)

procedure(eqn_varElem_trafo), public, pointer, pass(equation) :: prim2cons => NULL()

Function pointer to transform primitive variables to conservative variables (if the equation has primitive variables)

type(coordRotation_type), public :: varRotation(3)

Permutations for all variables of equation system to transform x,y,z axes to x axes aligned data.

logical, public :: requiresDeviation = .false.

Flag to indicate, whether the equation system requires estimates on polynomial deviations during computation.

logical, public :: requires_gradmax = .false.

Flag to indicate, whether the equation system requires estimates on gradients of the polynomials during computation.

logical, public :: isNonlinear = .false.

Flag to determine if the given equation system is nonlinear

type(atl_temp_flux_arrays_type), public :: temp

block of temporary arrays that can be used within the flux computation for

type(atl_materialFun_type), public :: material

Common information about the material the equation system is capable to use.

type(tem_varMap_type), public :: redTransVarMap

Maps to reduction_transient operation variables in varSys