BC routine for turbulent wall. It uses wall model to compute velocity on the boundary node. The implementation is based on the following paper: Haussmann, Marc; Ries, Florian; Jeppener-Haltenhoff, Jonathan B.; Li, Yongxiang; Schmidt, Marius; Welch, Cooper et al. (2020): Evaluation of a Near-Wall-Modeled Large Eddy Lattice Boltzmann Method for the Analysis of Complex Flows Relevant to IC Engines. In Computation 8 (2), p. 43. DOI: 10.3390/computation8020043.
Usage
```lua boundary_condition = { { label = 'wall', kind = 'turbulent_wall', curved = true, wall_model = 'musker', nonlinear_solver = 'fixed_point' } }
This subroutine's interface must match the abstract interface definition boundaryRoutine in bc/mus_bc_header_module.f90 in order to be callable via fnct function pointer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(boundary_type) | :: | me | global boundary type |
|||
real(kind=rk), | intent(inout) | :: | state(:) | Current state vector of iLevel |
||
real(kind=rk), | intent(in) | :: | bcBuffer(:) | state values of boundary elements of all fields of iLevel |
||
type(glob_boundary_type), | intent(in) | :: | globBC | scheme global boundary type |
||
type(tem_levelDesc_type), | intent(in) | :: | levelDesc | iLevel descriptor |
||
type(treelmesh_type), | intent(in) | :: | tree | Treelm Mesh |
||
integer, | intent(in) | :: | nSize | size of state array ( in terms of elements ) |
||
integer, | intent(in) | :: | iLevel | the level On which this boundary was invoked |
||
type(tem_time_type), | intent(in) | :: | sim_time | global time information |
||
integer, | intent(in) | :: | neigh(:) | connectivity array corresponding to state vector |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout | stencil layout information |
||
type(mus_field_prop_type), | intent(in) | :: | fieldProp | fluid parameters and properties |
||
integer, | intent(in) | :: | varPos(:) | pointer to field variable in the state vector |
||
integer, | intent(in) | :: | nScalars | number of Scalars in the scheme var system |
||
type(tem_varSys_type), | intent(in) | :: | varSys | scheme variable system |
||
type(mus_derVarPos_type), | intent(in) | :: | derVarPos | position of derived quantities in varsys |
||
type(mus_physics_type), | intent(in) | :: | physics | scheme global boundary type |
||
integer, | intent(in) | :: | iField | current field |
||
type(mus_mixture_type), | intent(in) | :: | mixture | mixture info |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private | :: | fIn | ||||
real(kind=rk), | private | :: | fOut | ||||
real(kind=rk), | private | :: | fNgh | ||||
real(kind=rk), | private | :: | cIn | ||||
real(kind=rk), | private | :: | cOut | ||||
real(kind=rk), | private | :: | cNgh | ||||
integer, | private | :: | iLink | ||||
integer, | private | :: | iElem | ||||
integer, | private | :: | iDir | ||||
integer, | private | :: | |||||
integer, | private | :: | elemPos | ||||
integer, | private | :: | invDir | ||||
real(kind=rk), | private | :: | f_pre(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | f_neigh(layout%fStencil%QQ) | ||||
real(kind=rk), | private | :: | f_preBuffer(layout%fStencil%QQ*globBC%nElems(iLevel)) | ||||
real(kind=rk), | private | :: | dens | ||||
real(kind=rk), | private | :: | dens_inv | ||||
real(kind=rk), | private | :: | vel(3) | ||||
real(kind=rk), | private | :: | velSW(3) | ||||
real(kind=rk), | private | :: | dens_neigh | ||||
real(kind=rk), | private | :: | dens_neigh_inv | ||||
real(kind=rk), | private | :: | vel_neigh(3) | ||||
real(kind=rk), | private | :: | qVal | ||||
real(kind=rk), | private | :: | fEq | ||||
real(kind=rk), | private | :: | fEq_bnd | ||||
real(kind=rk), | private | :: | fEq_neigh | ||||
real(kind=rk), | private | :: | fNEq | ||||
real(kind=rk), | private | :: | unitSW(3,globBC%nElems(iLevel)) | ||||
real(kind=rk), | private | :: | velSW_bnd(globBC%nElems(iLevel)) |