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.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=labelLen), | private | :: | 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, | private | :: | nDimensions | Number of dimensions of the scheme |
|||
logical, | private | :: | adaptive_timestep | Flag for adaptive timestep calcualtion |
|||
type(atl_euler_type), | private | :: | Euler | Euler equations parameters |
|||
type(atl_navierStokes_type), | private | :: | NavierStokes | Navier-Stokes equations parameters (additional to Euler) |
|||
type(atl_FiltNavierStokes_type), | private | :: | FiltNavierStokes | filtered Navier-Stokes equation parameters (additional to NavierStokes and Euler) |
|||
type(atl_maxwell_type), | private | :: | Maxwell | Pure Maxwell equations parameters |
|||
type(atl_advection_1d_type), | private | :: | advection | Advection-Diffusion equation parameters |
|||
type(atl_BBMEM_type), | private | :: | BBMEM | Membrane equations |
|||
type(atl_nernstPlanck_type), | private | :: | NERPLANCK | Nernst-Planck equation |
|||
type(atl_acoustic_type), | private | :: | Acoustic | Lineraized Gas Dynamics/Acoustic equation |
|||
type(atl_heat_type), | private | :: | heat | Heat 1D,2D,3D equation parameters |
|||
type(atl_LinearEuler_type), | private | :: | 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.
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), | private | :: | varSys | ||||
type(tem_st_fun_linkedList_type), | private | :: | 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, | private | :: | 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, | private | :: | hasPrimitiveVariables | = | .false. | Does this equation type have primitive variables? |
|
integer, | private, | allocatable | :: | primVar(:) | Index of primitive variables in varSys, not allocated if the current equation has no primitive variables. |
||
integer, | private, | allocatable | :: | stateVar(:) | Index of state variables in varSys |
||
procedure(atl_eqn_load_bc), | private, | pointer | :: | load_bc | => | NULL() | Function pointer to the routine loading boundary conditions according to the equation system. |
procedure(eqn_varElem_trafo), | private, | pointer, pass(equation) | :: | cons2prim | => | NULL() | Function pointer to transform conservative variables to primitive variables (if the equation has primitive variables) |
procedure(eqn_varElem_trafo), | private, | pointer, pass(equation) | :: | prim2cons | => | NULL() | Function pointer to transform primitive variables to conservative variables (if the equation has primitive variables) |
type(coordRotation_type), | private | :: | varRotation(3) | Permutations for all variables of equation system to transform x,y,z axes to x axes aligned data. |
|||
logical, | private | :: | requiresDeviation | = | .false. | Flag to indicate, whether the equation system requires estimates on polynomial deviations during computation. |
|
logical, | private | :: | requires_gradmax | = | .false. | Flag to indicate, whether the equation system requires estimates on gradients of the polynomials during computation. |
|
logical, | private | :: | isNonlinear | = | .false. | Flag to determine if the given equation system is nonlinear |
|
type(atl_temp_flux_arrays_type), | private | :: | temp | block of temporary arrays that can be used within the flux computation for |
|||
type(atl_materialFun_type), | private | :: | material | Common information about the material the equation system is capable to use. |
|||
type(tem_varMap_type), | private | :: | redTransVarMap | Maps to reduction_transient operation variables in varSys |