Boundary condition wall treatment routines
This module contains higher order wall treatments A detailed description on the implementation details are given in tem_bc_module.
Constant parameters for van-driest damping function
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private, | parameter | :: | vd_Aplus | = | 26.0_rk |
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.
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 |
contains physics conversion factors |
||
integer, | intent(in) | :: | iField |
current field |
||
type(mus_mixture_type), | intent(in) | :: | mixture |
mixture info |
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.
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 |
contains physics conversion factors |
||
integer, | intent(in) | :: | iField |
current field |
||
type(mus_mixture_type), | intent(in) | :: | mixture |
mixture info |
BC routine for turbulent wall based on Guo's nonequilibrium extrapolation. The implementation is based on the following paper: Haussmann, M. et al. (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’, Computers & Mathematics with Applications. Elsevier Ltd, 78(10), pp. 3285–3302.
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 |
contains physics conversion factors |
||
integer, | intent(in) | :: | iField |
current field |
||
type(mus_mixture_type), | intent(in) | :: | mixture |
mixture info |
BC routine for turbulent wall based on Guo's nonequilibrium extrapolation. The implementation is based on the following paper: Haussmann, M. et al. (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’, Computers & Mathematics with Applications. Elsevier Ltd, 78(10), pp. 3285–3302.
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 |
contains physics conversion factors |
||
integer, | intent(in) | :: | iField |
current field |
||
type(mus_mixture_type), | intent(in) | :: | mixture |
mixture info |
BC routine for turbulent wall based on equilibrium BC. The implementation is based on the following paper: Haussmann, M. et al. (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’, Computers & Mathematics with Applications. Elsevier Ltd, 78(10), pp. 3285–3302.
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 |
contains physics conversion factors |
||
integer, | intent(in) | :: | iField |
current field |
||
type(mus_mixture_type), | intent(in) | :: | mixture |
mixture info |
BC routine for turbulent wall based on equilibrium BC. The implementation is based on the following paper: Haussmann, M. et al. (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’, Computers & Mathematics with Applications. Elsevier Ltd, 78(10), pp. 3285–3302.
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 |
contains physics conversion factors |
||
integer, | intent(in) | :: | iField |
current field |
||
type(mus_mixture_type), | intent(in) | :: | mixture |
mixture info |
Calculation stream-wise velocity compononent from wall function and friction velocity, stream-wise unit vector and turbulent viscosity with mixing length formulation.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(out) | :: | velSW(:) |
Stream-wise velocity component from wall function |
||
real(kind=rk), | intent(out) | :: | unitSW(:,:) |
Stream-wise unit vector |
||
type(mus_turb_wallFunc_type), | intent(inout) | :: | turbwallFunc |
Turbulent wall model type contains viscosity, velTau, distToBnd and function pointers to compute velTau and velSW |
||
integer, | intent(in) | :: | nElems |
Number of elements in current boundary |
||
integer, | intent(in) | :: | elemPos(:) |
Current element position in state array. (Used to access viscosity) |
||
real(kind=rk), | intent(in) | :: | neighBufferPre(:,:) |
Pre-collision from 1st and 2nd fluid neighbor |
||
type(mus_viscosity_type) | :: | viscKine |
Kinematic viscosity |
|||
type(mus_turbulence_type), | intent(in) | :: | turbulence |
turbulence model type |
||
type(tem_stencilHeader_type), | intent(in) | :: | stencil |
Fluid stencil |
||
integer, | intent(in) | :: | iLevel |
Current level |
||
type(mus_scheme_derived_quantities_type), | intent(in) | :: | quantities |
Class that contains pointers to the proper derived quantities functions |
This routine computes bndForce on boundary elements using momentum exchange method.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(out) | :: | bndForce(:,:) |
Boundary force |
||
real(kind=rk), | intent(out) | :: | bndMoment(:,:) |
Boundary moment |
||
real(kind=rk), | intent(in) | :: | momRefPnt(:) |
Reference point for moment calculation |
||
type(glob_boundary_type), | intent(in) | :: | globBC |
scheme global boundary type |
||
real(kind=rk), | intent(in) | :: | baryOfTotal(:,:) |
barycenter of elements in total list Size: nElemsTotal, 3 |
||
real(kind=rk), | intent(in) | :: | bcBuffer(:) |
state values of boundary elements of all fields of iLevel |
||
real(kind=rk), | intent(inout) | :: | state(:) |
Current state vector of iLevel |
||
integer, | intent(in) | :: | nSize |
size of state array ( in terms of elements ) |
||
integer, | intent(in) | :: | neigh(:) |
connectivity array corresponding to state vector |
||
type(mus_scheme_layout_type), | intent(in) | :: | layout |
stencil layout information |
||
type(mus_physics_type), | intent(in) | :: | physics |
contains physics conversion factors |
||
integer, | intent(in) | :: | nScalars |
number of Scalars in the scheme var system |
||
integer, | intent(in) | :: | varPos(:) |
pointer to field variable in the state vector |
||
integer, | intent(in) | :: | iLevel |
the level On which this boundary was invoked |
||
integer, | intent(in) | :: | iField |
current field |