mus_turbVisc_Smagorinsky_fromPreColPDF Subroutine

public subroutine mus_turbVisc_Smagorinsky_fromPreColPDF(turbVisc, turbConfig, state, neigh, auxField, densPos, velPos, nSize, nSolve, nScalars, nAuxScalars, layout, dxL, dtL, viscKine)

Calculate eddy viscosity with smagorinsky model for compressible model using pre-collision PDF. Schneider, A. (2015). A Consistent Large Eddy Approach for Lattice Boltzmann Methods and its Application to Complex Flows. Technical University Kaiserslautern.

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(out) :: turbVisc(:)

output: turbulent viscosity

type(mus_turbulence_config_type), intent(in) :: turbConfig

Contains turbulenct coefficients

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

state array

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

neigh array to obtain precollision pdf

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

Auxiliary field variable array

integer, intent(in) :: densPos

position of density in auxField

integer, intent(in) :: velPos(3)

position of velocity components in auxField

integer, intent(in) :: nSize

number of elements in state array

integer, intent(in) :: nSolve

Number of element to solve in this level

integer, intent(in) :: nScalars

number of scalars in state array

integer, intent(in) :: nAuxScalars

number of scalars in auxField array

type(mus_scheme_layout_type), intent(in) :: layout

scheme layout

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

current level lattice element size

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

current level lattice time step size

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

Background kinematic viscosity in lattice divided by dtL


Calls

proc~~mus_turbvisc_smagorinsky_fromprecolpdf~~CallsGraph proc~mus_turbvisc_smagorinsky_fromprecolpdf mus_turbVisc_Smagorinsky_fromPreColPDF interface~getequilibrium getEquilibrium proc~mus_turbvisc_smagorinsky_fromprecolpdf->interface~getequilibrium proc~getequilibrium_forpdfsubset getEquilibrium_forPdfSubset interface~getequilibrium->proc~getequilibrium_forpdfsubset proc~getequilibrium_forelemfromstate getEquilibrium_forElemfromState interface~getequilibrium->proc~getequilibrium_forelemfromstate proc~geteqbydensvel getEqByDensVel interface~getequilibrium->proc~geteqbydensvel proc~getvelocity_forpdfsubset getVelocity_forPdfSubset proc~getequilibrium_forpdfsubset->proc~getvelocity_forpdfsubset proc~getdensity_forpdfsubset getDensity_forPdfSubset proc~getequilibrium_forpdfsubset->proc~getdensity_forpdfsubset interface~getvelocity getVelocity proc~getequilibrium_forelemfromstate->interface~getvelocity interface~getdensity getDensity proc~getequilibrium_forelemfromstate->interface~getdensity interface~getvelocity->proc~getvelocity_forpdfsubset proc~getvelocity_forelemfromstate_noforce getVelocity_forElemFromState_noForce interface~getvelocity->proc~getvelocity_forelemfromstate_noforce interface~getdensity->proc~getdensity_forpdfsubset proc~getdensity_forelemfromstate getDensity_forElemFromState interface~getdensity->proc~getdensity_forelemfromstate

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: iElem
integer, private :: iDir
integer, private :: QQ
integer, private :: elemOff
real(kind=rk), private :: visc_coeff
real(kind=rk), private :: rho
real(kind=rk), private :: inv_rho
real(kind=rk), private :: vel(3)
real(kind=rk), private :: f_preCol(layout%fStencil%QQ)

precollision PDF

real(kind=rk), private :: fEq(layout%fStencil%QQ)
real(kind=rk), private :: nEq(layout%fStencil%QQ)
real(kind=rk), private :: nEqTens(6)
real(kind=rk), private :: nEqTensMag
real(kind=rk), private :: viscKineTerm
real(kind=rk), private :: nEqTensTerm