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.


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