mus_scheme_type_module Module

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


Used by


Abstract Interfaces

abstract interface

What does the kernel interface look like? Every kernel's argument list must correspond to this one

  • public subroutine kernel(fieldProp, inState, outState, auxField, neigh, nElems, nSolve, level, layout, params, varSys, derVarPos)

    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(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

Derived Types

type, public :: array2D_type

To allow Intel AVX SIMD streaming store instructions, the array must be aligned at 32 bytes


real(kind=rk), private, allocatable, dimension(:,:):: val

type, public :: mus_scheme_type

Datatype containing all information on the scheme.

Read more…


type(mus_interpolation_type), private :: intp

Interpolation description for each scheme to do its own interpolation

type(mus_mixture_type), private :: mixture

contains mixture information for multispecies

type(mus_nernstPlanck_type), private :: nernstPlanck
integer, private :: nFields =0

number of fields in the current scheme

type(mus_field_type), private, allocatable:: field(:)

array of field type for each field

type(glob_boundary_type), private, allocatable:: globBC(:)

array of boundary types contains elems of each boundary

type(mus_source_type), private :: globSrc

global source applied to all fields

type(tem_possible_variable_type), private :: poss_srcVar

possible source variables depends on scheme kind

type(mus_transport_var_type), private :: transVar

transport variables

type(tem_possible_variable_type), private :: poss_transVar

possible transport variables depends on scheme kind This variables might be used in compute kernel

type(mus_scheme_header_type), private :: header

identifier of the scheme

type(tem_levelDesc_type), private, allocatable:: levelDesc(:)
type(pdf_data_type), private, allocatable:: pdf(:)

pdf_data_types for every level size: minLevel:maxLevel

type(array2D_type), private, allocatable:: state(:)

Data vector containing the pdf state allocated in routine: mus_construct size: minLevel:maxLevel

type(mus_scheme_layout_type), private :: layout

the scheme representation used in this scheme

procedure(kernel), private, pointer, nopass:: compute=> null()

function pointer to compute kernel

type(tem_tracking_type), private :: track

Contains trackingControl, config and instances

type(tem_varMap_type), private :: redTransVarMap

Position of reduction transient variable in varSys

type(mus_derVarPos_type), private, allocatable:: derVarPos(:)

store position of derived variable each field and total field in the global system

type(tem_varSys_type), private :: varSys

global variable system definition

type(tem_variable_type), private, allocatable:: luaVar(:)

Variables defined in the lua file

type(tem_varMap_type), private :: stateVarMap

state variable position in the global varSys

type(tem_st_fun_linkedList_type), private :: st_funList

contains spacetime functions defined for lua variables

logical, private :: readVarIsPdf

Used in mus_harvesting to check whether variables loaded from restart file has pdf variable

type(mus_auxFieldVar_type), private, allocatable:: auxField(:)

stores auxField variable values and function pointer to compute auxiliary field Size: minlevel:maxLevel

type(mus_gradData_type), private, allocatable:: gradData(:)

Contains direct neighbor position in the state and finite difference coefficients to compute gradient

procedure(mus_proc_calcAuxField), private, pointer, nopass:: calcAuxField=> null()

Function pointer to evaluate auxilary variable

type(mus_Grad_type), private :: Grad

Contains the different pointers to calculate the gradients