This module contains the type definition(s) required in the scheme routines In addition depend type and condition type for geometry increase routine are defined. Compute kernel definition is also defined in this module
What does the kernel interface look like? Every kernel's argument list must correspond to this one.
The common subroutine interface for compute kernels. All kernels have to implement this interface in order to be callable via mus_scheme_type%compute function pointer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_field_prop_type), | intent(in) | :: | fieldProp(:) |
Array of field properties (fluid or species) |
||
real(kind=rk), | intent(in) | :: | inState(nElems*varSys%nScalars) |
input pdf vector |
||
real(kind=rk), | intent(out) | :: | outState(nElems*varSys%nScalars) |
output pdf vector |
||
real(kind=rk), | intent(inout) | :: | auxField(nElems*varSys%nAuxScalars) |
Auxiliary field computed from pre-collision state Is updated with correct velocity field for multicomponent models |
||
integer, | intent(in) | :: | neigh(nElems*layout%fStencil%QQ) |
connectivity vector |
||
integer, | intent(in) | :: | nElems |
number of elements in state Array |
||
integer, | intent(in) | :: | nSolve |
number of elements solved in kernel |
||
integer, | intent(in) | :: | level |
current level |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
current layout |
||
type(mus_param_type), | intent(in) | :: | params |
global parameters |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system definition |
||
type(mus_derVarPos_type), | intent(in) | :: | derVarPos(:) |
position of derived quantities in varsys for all fields |
To allow Intel AVX SIMD streaming store instructions, the array must be aligned at 32 bytes
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | public, | allocatable, dimension(:,:) | :: | val |
Datatype containing all information on the scheme.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(mus_interpolation_type), | public | :: | intp |
Interpolation description for each scheme to do its own interpolation |
|||
type(mus_mixture_type), | public | :: | mixture |
contains mixture information for multispecies |
|||
type(mus_nernstPlanck_type), | public | :: | nernstPlanck | ||||
integer, | public | :: | nFields | = | 0 |
number of fields in the current scheme |
|
type(mus_field_type), | public, | allocatable | :: | field(:) |
array of field type for each field |
||
type(glob_boundary_type), | public, | allocatable | :: | globBC(:) |
array of boundary types contains elems of each boundary |
||
type(mus_source_type), | public | :: | globSrc |
global source applied to all fields |
|||
type(tem_possible_variable_type), | public | :: | poss_srcVar |
possible source variables depends on scheme kind |
|||
type(mus_transport_var_type), | public | :: | transVar |
transport variables |
|||
type(tem_possible_variable_type), | public | :: | poss_transVar |
possible transport variables depends on scheme kind This variables might be used in compute kernel |
|||
type(mus_scheme_header_type), | public | :: | header |
identifier of the scheme |
|||
type(tem_levelDesc_type), | public, | allocatable | :: | levelDesc(:) | |||
type(pdf_data_type), | public, | allocatable | :: | pdf(:) |
pdf_data_types for every level size: minLevel:maxLevel |
||
type(array2D_type), | public, | allocatable | :: | state(:) |
Data vector containing the pdf state allocated in routine: mus_construct size: minLevel:maxLevel |
||
type(mus_scheme_layout_type), | public | :: | layout |
the scheme representation used in this scheme |
|||
procedure(kernel), | public, | pointer, nopass | :: | compute | => | null() |
function pointer to compute kernel |
type(tem_tracking_type), | public | :: | track |
Contains trackingControl, config and instances |
|||
type(tem_varMap_type), | public | :: | redTransVarMap |
Position of reduction transient variable in varSys |
|||
type(mus_derVarPos_type), | public, | allocatable | :: | derVarPos(:) |
store position of derived variable each field and total field in the global system |
||
type(tem_varSys_type), | public | :: | varSys |
global variable system definition |
|||
type(tem_variable_type), | public, | allocatable | :: | luaVar(:) |
Variables defined in the lua file |
||
type(tem_varMap_type), | public | :: | stateVarMap |
state variable position in the global varSys |
|||
type(tem_st_fun_linkedList_type), | public | :: | st_funList |
contains spacetime functions defined for lua variables |
|||
logical, | public | :: | readVarIsPdf |
Used in mus_harvesting to check whether variables loaded from restart file has pdf variable |
|||
type(mus_auxFieldVar_type), | public, | allocatable | :: | auxField(:) |
stores auxField variable values and function pointer to compute auxiliary field Size: minlevel:maxLevel |
||
type(mus_gradData_type), | public, | allocatable | :: | gradData(:) |
Contains direct neighbor position in the state and finite difference coefficients to compute gradient |
||
procedure(mus_proc_calcAuxField), | public, | pointer, nopass | :: | calcAuxField | => | null() |
Function pointer to evaluate auxilary variable |
type(mus_Grad_type), | public | :: | Grad |
Contains the different pointers to calculate the gradients |