Pressure Non-Equilibrium type boundary conditions from Guo, Z., & Shi, B. (2002). "Non-equilibrium extrapolation method for velocity and pressure boundary conditions in the lattice Boltzmann method." Chinese Physics, (November 2016).
The incoming densities are updated as macroscopic values for : - density is defined in config file as pressure - velocity is extrapolated from fluid node
Usage
boundary_condition = {
  { label = 'outlet',
    kind = 'pressure_neq',
    pressure = 'press',
  }
}
variable = {
  name = 'press',
  ncomponents = 1,
  vartype = 'st_fun',
  st_fun = 0.0
}
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 | :: | fEq(layout%fStencil%QQ*globBC%nElems(iLevel)) | ||||
| real(kind=rk), | private | :: | fEq_Bnd(layout%fStencil%QQ*globBC%nElems(iLevel)) | ||||
| real(kind=rk), | private | :: | fTmp(layout%fStencil%QQ*globBC%nElems(iLevel)) | ||||
| real(kind=rk), | private | :: | fTmp_loc(layout%fStencil%QQ) | ||||
| real(kind=rk), | private | :: | vel(3,globBC%nElems(iLevel)) | ||||
| real(kind=rk), | private | :: | omega | ||||
| real(kind=rk), | private | :: | rhoB(globBC%nElems(iLevel)) | ||||
| real(kind=rk), | private | :: | inv_rho_phy | ||||
| integer, | private | :: | iELem | ||||
| integer, | private | :: | iDir | ||||
| integer, | private | :: | |||||
| integer, | private | :: | elemPos | ||||
| integer, | private | :: | posInBuffer | ||||
| integer, | private | :: | offset | ||||
| integer, | private | :: | bcPress_pos |