mus_auxFieldVar_module Module

This module contains routine to retrieve auxiliary field variables for getElement, getPoint, setupIndices and getValOfIndex. Auxilary field variables are: * density and velocity for fluid * species desity and velocity for multispecies * potential for poisson


Uses

Used by

  • module~~mus_auxfieldvar_module~~UsedByGraph module~mus_auxfieldvar_module mus_auxFieldVar_module module~mus_scheme_module mus_scheme_module module~mus_scheme_module->module~mus_auxfieldvar_module module~mus_variable_module mus_variable_module module~mus_scheme_module->module~mus_variable_module module~mus_variable_module->module~mus_auxfieldvar_module module~mus_derquanpoisson_module mus_derQuanPoisson_module module~mus_variable_module->module~mus_derquanpoisson_module module~mus_derquanpoisson_module->module~mus_auxfieldvar_module module~mus_hvs_config_module mus_hvs_config_module module~mus_hvs_config_module->module~mus_scheme_module module~mus_config_module mus_config_module module~mus_hvs_config_module->module~mus_config_module module~mus_config_module->module~mus_scheme_module module~mus_tools_module mus_tools_module module~mus_config_module->module~mus_tools_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_scheme_module program~mus_harvesting->module~mus_hvs_config_module module~mus_hvs_aux_module mus_hvs_aux_module program~mus_harvesting->module~mus_hvs_aux_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_scheme_module module~mus_dynloadbal_module->module~mus_tools_module module~mus_tracking_module mus_tracking_module module~mus_dynloadbal_module->module~mus_tracking_module module~mus_program_module mus_program_module module~mus_program_module->module~mus_scheme_module module~mus_program_module->module~mus_dynloadbal_module module~mus_program_module->module~mus_tools_module module~mus_aux_module mus_aux_module module~mus_program_module->module~mus_aux_module module~mus_tools_module->module~mus_scheme_module program~musubi musubi program~musubi->module~mus_config_module program~musubi->module~mus_program_module program~musubi->module~mus_aux_module module~mus_hvs_aux_module->module~mus_tools_module module~mus_hvs_aux_module->module~mus_tracking_module module~mus_tracking_module->module~mus_tools_module module~mus_aux_module->module~mus_tools_module module~mus_aux_module->module~mus_tracking_module module~mus_interpolate_verify_module mus_interpolate_verify_module module~mus_interpolate_verify_module->module~mus_config_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_aux_module module~mus_flow_module mus_flow_module module~mus_flow_module->module~mus_interpolate_verify_module

Contents


Subroutines

public subroutine mus_assign_calcAuxField_ptr(schemeHeader, calcAuxField)

This routine assign function pointer to compute auxField var

Arguments

TypeIntentOptionalAttributesName
type(mus_scheme_header_type), intent(in) :: schemeHeader

scheme defnition

procedure(mus_proc_calcAuxField), intent(out), pointer:: calcAuxField

function pointer to assign

public recursive subroutine mus_access_auxFieldVar_forElement(fun, varSys, elempos, time, tree, nElems, nDofs, res)

Return the solver aux variable for a given set of elements

Read more…

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

type(tem_varSys_type), intent(in) :: varSys

The variable system to obtain the variable from.

integer, intent(in) :: elempos(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

type(tem_time_type), intent(in) :: time

Point in time at which to evaluate the variable.

type(treelmesh_type), intent(in) :: tree

global treelm mesh info

integer, intent(in) :: nElems

Number of values to obtain for this variable (vectorized access).

integer, intent(in) :: nDofs

Number of degrees of freedom within an element.

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

public recursive subroutine mus_auxFieldVar_forPoint(fun, varSys, point, time, tree, nPnts, res)

Auxilary field variable for a given set of points using linear interpolation. Unlike mus_deriveVar_forPoint which does not consider ghost and halo elements, this routine considers them because auxField vars on ghost elements are interpolated and halo elements are exchanged. The interface has to comply to the abstract interface tem_varSys_proc_point.

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables.

type(tem_varSys_type), intent(in) :: varSys

The variable system to obtain the variable from.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

type(tem_time_type), intent(in) :: time

Point in time at which to evaluate the variable.

type(treelmesh_type), intent(in) :: tree

global treelm mesh info

integer, intent(in) :: nPnts

Number of values to obtain for this variable (vectorized access).

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public subroutine mus_auxFieldVar_fromIndex(fun, varSys, time, iLevel, idx, idxLen, nVals, res)

Routine to get the actual value for a given array of indices. The indices belong to the grwarray of points storing levelwise in Pointdata%pntLvl(iLevel). Hence this routines takes the indeices as input, can refer to the pointData and evaluate the variable and returns the values

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables,

type(tem_varSys_type), intent(in) :: varSys

The variable system to obtain the variable from.

type(tem_time_type), intent(in) :: time

Point in time at which to evaluate the variable.

integer, intent(in) :: iLevel

Level on which values are requested

integer, intent(in) :: idx(:)

Index of points in the growing array and variable val array to return. Size: n

integer, intent(in), optional :: idxLen(:)

With idx as start index in contiguous memory, idxLength defines length of each contiguous memory Size: dependes on number of first index for contiguous array, but the sum of all idxLen is equal to nVals

integer, intent(in) :: nVals

Number of values to obtain for this variable (vectorized access).

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

public subroutine mus_addForceToAuxField_fluid(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add body force to velocity in auxField for weakly-compressible model.

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addForceToAuxField_fluidIncomp(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add force to velocity in auxField for incompressible model

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addForceToAuxField_MSL(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add body force to momentum in auxField for multispecies liquid model Refer to Appendix in PhD Thesis of K. Masilamani "Coupled Simulation Framework to Simulate Electrodialysis Process for Seawater Desalination"

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addElectricToAuxField_MSL(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add electric force to momentum in auxField for multispecies liquid model Refer to Appendix in PhD Thesis of K. Masilamani "Coupled Simulation Framework to Simulate Electrodialysis Process for Seawater Desalination"

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addForceToAuxField_MSL_WTDF(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add body force to momentum in auxField for multispecies liquid model with thermodynamic factor Refer to Appendix in PhD Thesis of K. Masilamani "Coupled Simulation Framework to Simulate Electrodialysis Process for Seawater Desalination"

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addElectricToAuxField_MSL_WTDF(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add electric force to momentum in auxField for multispecies liquid model with thermodynamic factor Refer to Appendix in PhD Thesis of K. Masilamani "Coupled Simulation Framework to Simulate Electrodialysis Process for Seawater Desalination"

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addSrcToAuxField_poisson(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add source term with charge density in the Poisson equation to the potential. Refer to Appendix in PhD Thesis of K. Masilamani "Coupled Simulation Framework to Simulate Electrodialysis Process for Seawater Desalination"

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addSponFldToAuxField_fluid(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add sponge density and velocity field to density and velocity in auxField for weakly-compressible model. Reference: Jacob, J.; Sagaut, P. (2019): Solid wall and open boundary conditions in hybrid recursive regularized lattice Boltzmann method for compressible flows. In Physics of Fluids 31 (12), p. 126103.

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addDynSponFldToAuxField_fluid(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add sponge density and velocity field to density and velocity in auxField. Density and velocity in far field are computed by time average.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addHRRCorrToAuxField_fluid_D2Q9(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add sponge density and velocity field to density and velocity in auxField. Density and velocity in far field are computed by time average.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addHRRCorrToAuxField_fluid_D3Q19(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add sponge density and velocity field to density and velocity in auxField. Density and velocity in far field are computed by time average.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addHRRCorrToAuxField_fluid_D3Q27(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add sponge density and velocity field to density and velocity in auxField. Density and velocity in far field are computed by time average.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

public subroutine mus_addTurbChanForceToAuxField_fluid(fun, auxField, iLevel, time, varSys, phyConvFac, derVarPos)

This routine add dynamic force to velocity in auxField for weakly-compressible model for turbulent channel test case. Force definition: Force = rhou_tau^2/H + rho(u_bulk_ref-uX_bulk_avg)*u_bulk_ref/H Reference: 1) https://www.wias-berlin.de/people/john/ELECTRONIC_PAPERS/JR07.IJNMF.pdf 2) Haussmann, Marc; BARRETO, Alejandro CLARO; KOUYI, Gislain LIPEME; Rivière, Nicolas; Nirschl, Hermann; Krause, Mathias J. (2019): Large-eddy simulation coupled with wall models for turbulent channel flows at high Reynolds numbers with a lattice Boltzmann method — Application to Coriolis mass flowmeter. In Computers & Mathematics with Applications 78 (10), pp. 3285–3302. DOI: 10.1016/j.camwa.2019.04.033.

Arguments

TypeIntentOptionalAttributesName
class(mus_source_op_type), intent(inout) :: fun

Description of method to update source

real(kind=rk), intent(inout) :: auxField(:)

output auxField array

integer, intent(in) :: iLevel

current level

type(tem_time_type), intent(in) :: time

current timing information

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_convertFac_type), intent(in) :: phyConvFac

Physics conversion factor for current level

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_fluid(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxFields density and velocity for compressible model for fluid and nGhostFromCoarser elements

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_fluid_d2q9(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxFields density and velocity for compressible d2q9 model for fluid and nGhostFromCoarser elements

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_fluid_d3q19(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxFields density and velocity for compressible d3q19 model for fluid and nGhostFromCoarser elements

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_fluid_d3q27(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxFields density and velocity for compressible d3q27 model for fluid and nGhostFromCoarser elements

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_fluidIncomp(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxFields density and velocity for incompressible model for fluid and nGhostFromCoarser elements

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_fluidIncomp_d2q9(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxFields density and velocity for incompressible d2q9 model for fluid and nGhostFromCoarser elements

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_fluidIncomp_d3q19(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxFields density and velocity for incompressible d3q19 model for fluid and nGhostFromCoarser elements

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_fluidIncomp_d3q27(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxFields density and velocity for incompressible d3q27 model for fluid and nGhostFromCoarser elements

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_zerothMoment(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute zeroth moment from state and store in auxField. use this routine only for models which requires only zeroth-order moment as auxField

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_nernst_planck(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute zeroth moment (mole density) from state for each species and store in auxField.

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_MS(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

This routine compute auxField density and momentum for each species for multicomponent models. The momentum computed here is only momentum of transformed PDF. The momentum of original PDF is computed by solving linear equation system in compute kernel and the momentum in auxField is updated there.

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys

private subroutine mus_calcAuxField_dummy(auxField, state, neigh, nSize, nSolve, iLevel, stencil, varSys, derVarPos)

Dummy routine for calcAuxField

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(inout) :: auxField(:)

output auxField array

real(kind=rk), intent(in) :: state(:)

input state array

integer, intent(in) :: neigh(:)

connectivity array

integer, intent(in) :: nSize

number of elements in the state array

integer, intent(in) :: nSolve

number of elements excluding halos

integer, intent(in) :: iLevel

current level

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_varSys_type), intent(in) :: varSys

variable system definition

type(mus_derVarPos_type), intent(in) :: derVarPos(:)

position of derived quantities in varsys