This module contains the type defintion which stores position of all derive variables in global varSys.
function to compute equilFromAux for single element
Derive equilibrium from auxField for single element
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mus_derVarPos_type), | intent(in) | :: | derVarPos |
Position of current field derive variable in variable system |
||
real(kind=rk), | intent(in) | :: | auxField(:) |
Array of auxField of single element. Single species: dens_1, vel_1 multispecies: dens_1_sp1, vel_1_spc1, dens_1_sp2, vel_1_spc2, Access: (iElem-1)*nFields + iField |
||
integer, | intent(in) | :: | iField |
Current field |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
scheme layout contains stencil definition and lattice weights |
Output of this routine Dimension: QQ of res
Derive auxField from state for single element
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mus_derVarPos_type), | intent(in) | :: | derVarPos |
Position of derive variable in variable system |
||
real(kind=rk), | intent(in) | :: | state(:) |
Array of state layout%stencil(1)%QQ * nFields |
||
integer, | intent(in) | :: | iField |
Current field |
||
type(tem_stencilHeader_type), | intent(in) | :: | stencil |
stencil header contains discrete velocity vectors |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
Output of this routine Size: nAuxScalars
interface to derive equilibrium from macro. Mainly used in initial condition and boundary condition routines to avoid dublication of routines between different scheme kinds. In this interface, solver definition can be access via varSys%method%val(1)%method_data c_ptr
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | density(:) |
Array of density. Single species: dens_1, dens_2 .. dens_n multispecies: dens_1_sp1, dens_1_sp2, dens_2_sp1, dens_2_sp2 ... dens_n_sp1, dens_n_sp2 Access: (iElem-1)*nFields + iField |
||
real(kind=rk), | intent(in) | :: | velocity(:,:) |
Array of velocity. Size: (3, nnFields) Access: ( iComp, (iElem-1)nFields + iField ) |
||
integer, | intent(in) | :: | iField |
Current field |
||
integer, | intent(in) | :: | nElems |
number of elements |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
scheme layout contains stencil definition and lattice weights |
||
real(kind=rk), | intent(out) | :: | res(:) |
Output of this routine Dimension: n*nComponents of res |
Interface that takes state array as input calculate density, velocity or eq as output State should be AOS layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | state(:) |
Array of state n * layout%stencil(1)%QQ * nFields |
||
integer, | intent(in) | :: | iField |
Current field |
||
integer, | intent(in) | :: | nElems |
number of elements |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
scheme layout contains stencil definition and lattice weights |
||
real(kind=rk), | intent(out) | :: | res(:) |
Output of this routine Dimension: n * nComponents of res Access: (iElem-1)nComp + iComp To derive velocities of all species, dimension: nnFieldsnComp Access: (iElem-1)nFieldsnComp + (iField-1)nComp + iComp |
Interface that takes state array as input calculate density, velocity or eq as output from FETCH state i.e. precollision state State should be AOS layout
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | state(:) |
Array of state n * layout%stencil(1)%QQ * nFields |
||
integer, | intent(in) | :: | neigh(:) |
connectivity array |
||
integer, | intent(in) | :: | iField |
Current field |
||
integer, | intent(in) | :: | nSize |
number of elements in state array |
||
integer, | intent(in) | :: | nElems |
number of elements |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
scheme layout contains stencil definition and lattice weights |
||
real(kind=rk), | intent(out) | :: | res(:) |
Output of this routine Dimension: n * nComponents of res Access: (iElem-1)nComp + iComp To derive velocities of all species, dimension: nnFieldsnComp Access: (iElem-1)nFieldsnComp + (iField-1)nComp + iComp |
Derive equilibrium from auxField for given nelems
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mus_derVarPos_type), | intent(in) | :: | derVarPos |
Position of current field derive variable in variable system |
||
real(kind=rk), | intent(in) | :: | auxField(:) |
Array of auxField. Single species: dens_1, vel_1, dens_2, vel_2, .. dens_n, vel_n multispecies: dens_1_sp1, vel_1_spc1, dens_1_sp2, vel_1_spc2, dens_2_sp1, vel_2_spc2, dens_2_sp2, vel_2_spc2 ... dens_n_sp1, vel_n_sp1, dens_n_sp2, vel_n_spc2 Access: (iElem-1)*nFields + iField |
||
integer, | intent(in) | :: | iField |
Current field |
||
integer, | intent(in) | :: | nElems |
number of elements |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
scheme layout contains stencil definition and lattice weights |
||
real(kind=rk), | intent(out) | :: | res(:) |
Output of this routine Dimension: n*QQ of res |
Derive auxField from local state. \todo KM: pass external force to add to auxField
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(mus_derVarPos_type), | intent(in) | :: | derVarPos |
Position of current field derive variable in variable system |
||
real(kind=rk), | intent(in) | :: | state(:) |
Array of state nSize * layout%stencil(1)%QQ * nFields use IDX macro to access this state |
||
integer, | intent(in) | :: | neigh(:) |
connectivity vector |
||
integer, | intent(in) | :: | iField |
Current field |
||
integer, | intent(in) | :: | nElems |
number of elements to compute |
||
integer, | intent(in) | :: | nSize |
number of elements in state array |
||
integer, | intent(in) | :: | iLevel |
current level |
||
type(tem_stencilHeader_type), | intent(in) | :: | stencil |
stencil header contains discrete velocity vectors |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
real(kind=rk), | intent(inout) | :: | auxField(:) |
Output of this routine auxField is inout to allow storing auxField for each species seperately Size: nElems*nAuxScalars |
||
type(mus_scheme_derived_quantities_type), | intent(in) | :: | quantities |
Class that contains pointers to the proper derived quantities functions |
This type stores the position of each variable in the global sys
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | = | -1 | |||
integer, | public | :: | fetch_pdf | = | -1 | ||
integer, | public | :: | omega | = | -1 | ||
integer, | public | :: | density | = | -1 | ||
integer, | public | :: | moleDensity | = | -1 | ||
integer, | public | :: | pressure | = | -1 | ||
integer, | public | :: | kinePress | = | -1 | ||
integer, | public | :: | velocity | = | -1 | ||
integer, | public | :: | spc_velocities | = | -1 | ||
integer, | public | :: | velMag | = | -1 | ||
integer, | public | :: | momentum | = | -1 | ||
integer, | public | :: | spc_momenta | = | -1 | ||
integer, | public | :: | shearStress | = | -1 | ||
integer, | public | :: | wss | = | -1 | ||
integer, | public | :: | shearMag | = | -1 | ||
integer, | public | :: | strainRate | = | -1 | ||
integer, | public | :: | shearRate | = | -1 | ||
integer, | public | :: | kineticEnergy | = | -1 | ||
integer, | public | :: | temperature | = | -1 | ||
integer, | public | :: | moleFrac | = | -1 | ||
integer, | public | :: | massFrac | = | -1 | ||
integer, | public | :: | moleflux | = | -1 | ||
integer, | public | :: | equilibrium | = | -1 | ||
integer, | public | :: | nonEquilibrium | = | -1 | ||
integer, | public | :: | equilibriumVel | = | -1 | ||
integer, | public | :: | potential | = | -1 | ||
procedure(derive_FromMacro), | public, | pointer, nopass | :: | equilFromMacro | => | null() | |
procedure(derive_FromState), | public, | pointer, nopass | :: | velFromState | => | null() | |
procedure(derive_FromState), | public, | pointer, nopass | :: | equilFromState | => | null() | |
procedure(derive_FromState), | public, | pointer, nopass | :: | momFromState | => | null() | |
procedure(derive_FromState), | public, | pointer, nopass | :: | velocitiesFromState | => | null() | |
procedure(derive_FromState), | public, | pointer, nopass | :: | momentaFromState | => | null() | |
procedure(derive_FromPreColState), | public, | pointer, nopass | :: | velFromPreColState | => | null() | |
procedure(derive_auxFromState), | public, | pointer | :: | auxFieldFromState | => | null() |
return auxField from local pdf state |
procedure(derive_equilFromAux), | public, | pointer, nopass | :: | equilFromAux | => | null() |
return equilibrium from auxilary variable for given nElems |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | density(:) |
Array of density. Single species: dens_1, dens_2 .. dens_n multispecies: dens_1_sp1, dens_1_sp2, dens_2_sp1, dens_2_sp2 ... dens_n_sp1, dens_n_sp2 Access: (iElem-1)*nFields + iField |
||
real(kind=rk), | intent(in) | :: | velocity(:,:) |
Array of velocity. Size: (3, nnFields) Access: ( iComp, (iElem-1)nFields + iField ) |
||
integer, | intent(in) | :: | iField |
Current field |
||
integer, | intent(in) | :: | nElems |
number of elements |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
scheme layout contains stencil definition and lattice weights |
||
real(kind=rk), | intent(out) | :: | res(:) |
Output of this routine Dimension: n*nComponents of res |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | state(:) |
Array of state n * layout%stencil(1)%QQ * nFields |
||
integer, | intent(in) | :: | iField |
Current field |
||
integer, | intent(in) | :: | nElems |
number of elements |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
scheme layout contains stencil definition and lattice weights |
||
real(kind=rk), | intent(out) | :: | res(:) |
Output of this routine Dimension: n * nComponents of res Access: (iElem-1)nComp + iComp To derive velocities of all species, dimension: nnFieldsnComp Access: (iElem-1)nFieldsnComp + (iField-1)nComp + iComp |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | state(:) |
Array of state n * layout%stencil(1)%QQ * nFields |
||
integer, | intent(in) | :: | neigh(:) |
connectivity array |
||
integer, | intent(in) | :: | iField |
Current field |
||
integer, | intent(in) | :: | nSize |
number of elements in state array |
||
integer, | intent(in) | :: | nElems |
number of elements |
||
type(tem_varSys_type), | intent(in) | :: | varSys |
variable system which is required to access fieldProp information via variable method data c_ptr |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
scheme layout contains stencil definition and lattice weights |
||
real(kind=rk), | intent(out) | :: | res(:) |
Output of this routine Dimension: n * nComponents of res Access: (iElem-1)nComp + iComp To derive velocities of all species, dimension: nnFieldsnComp Access: (iElem-1)nFieldsnComp + (iField-1)nComp + iComp |