bgk_advRel_MSLiquid_generic_WTDF Subroutine

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

Unoptimized Advection relaxation routine for the multispecies BGK model with thermodynamic factors in Maxwell-Stefan formulation

This routine contains the implementation based on the paper "A Lattice Boltzmann Scheme for liquid mixtures - Part II: Discretization and Numerics, Jens Zudrop, Sabine Roller, Pietro Asinari. "\n

This subroutine interface must match the abstract interface definition kernel in scheme/mus_scheme_type_module.f90 in order to be callable via compute function pointer.

Arguments

TypeIntentOptionalAttributesName
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


Calls

proc~~bgk_advrel_msliquid_generic_wtdf~~CallsGraph proc~bgk_advrel_msliquid_generic_wtdf bgk_advRel_MSLiquid_generic_WTDF interface~mus_calc_thermfactor mus_calc_thermFactor proc~bgk_advrel_msliquid_generic_wtdf->interface~mus_calc_thermfactor interface~mus_calc_ms_diffmatrix mus_calc_MS_DiffMatrix proc~bgk_advrel_msliquid_generic_wtdf->interface~mus_calc_ms_diffmatrix proc~invert_matrix invert_matrix proc~bgk_advrel_msliquid_generic_wtdf->proc~invert_matrix proc~mus_calc_thermfactor_single mus_calc_thermFactor_single interface~mus_calc_thermfactor->proc~mus_calc_thermfactor_single proc~mus_calc_ms_diffmatrix_single mus_calc_MS_DiffMatrix_single interface~mus_calc_ms_diffmatrix->proc~mus_calc_ms_diffmatrix_single interface~calc_ms_diff_matrix_from_moledens calc_ms_diff_matrix_from_moledens proc~mus_calc_ms_diffmatrix_single->interface~calc_ms_diff_matrix_from_moledens interface~calc_therm_factor_loc calc_therm_factor_loc proc~mus_calc_thermfactor_single->interface~calc_therm_factor_loc

Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: pdfTmp(varSys%nScalars)
integer, private :: iElem
integer, private :: iField
integer, private :: iField_2
integer, private :: iField_3
integer, private :: nFields
integer, private :: iDir
integer, private :: QQ
integer, private :: nScalars
integer, private :: vPos(layout%fStencil%QQ)
type(mus_varSys_data_type), private, pointer:: fPtr
type(mus_scheme_type), private, pointer:: scheme
integer, private, dimension(varSys%nStateVars):: stateVarMap
integer, private, dimension(varSys%nStateVars):: dens_pos
integer, private :: mom_pos(3,varSys%nStateVars)
real(kind=rk), private, dimension(varSys%nStateVars):: mass_dens
real(kind=rk), private, dimension(varSys%nStateVars):: num_dens
real(kind=rk), private, dimension(varSys%nStateVars):: moleFrac
real(kind=rk), private, dimension(varSys%nStateVars):: molWeight
real(kind=rk), private, dimension(varSys%nStateVars):: phi
real(kind=rk), private, dimension(3, varSys%nStateVars):: first_moments
real(kind=rk), private, dimension(3, varSys%nStateVars):: velocity
real(kind=rk), private, dimension(3, varSys%nStateVars):: eqVel
real(kind=rk), private :: totNum_dens
real(kind=rk), private :: usqr
real(kind=rk), private :: ucx
real(kind=rk), private :: feq
real(kind=rk), private :: velAvg(3)
real(kind=rk), private :: velQuad(3)
real(kind=rk), private :: ucxQuadTerm
real(kind=rk), private :: theta_eq
real(kind=rk), private :: totMassDens
real(kind=rk), private :: omega
real(kind=rk), private :: omega_new
real(kind=rk), private :: paramB
real(kind=rk), private, dimension(varSys%nStateVars, varSys%nStateVars):: matA
real(kind=rk), private, dimension(varSys%nStateVars, varSys%nStateVars):: invA
real(kind=rk), private, dimension(varSys%nStateVars, varSys%nStateVars):: resi_coeff
real(kind=rk), private, dimension(varSys%nStateVars, varSys%nStateVars):: thermodynamic_fac
real(kind=rk), private, dimension(varSys%nStateVars, varSys%nStateVars):: inv_thermodyn_fac
real(kind=rk), private, dimension(varSys%nStateVars, varSys%nStateVars):: diff_coeff
real(kind=rk), private :: temp
real(kind=rk), private :: press
real(kind=rk), private :: moleDens0
real(kind=rk), private :: phy_moleDens_fac
integer, private :: elemOff
real(kind=rk), private :: wRestInv
real(kind=rk), private :: sRest(varSys%nStateVars)