Inlet Velocity Bounce Back boundary condition with qvalues
This is taken from the paper: [1] S. Izquierdo and N. Fueyo, "Characteristic non-reflecting boundary conditions for open boundaries in lattice Boltzmann methods," Physical Review E, vol. 78, no. 46707, 2008 The incoming densities are reconstructed from the already reflected densities, enforcing the given velocity me\%ubb\%velocity. [2] M. Junk and Z. Yang. One-point boundary condition for the lattice Boltzmann method, Physical Review E, vol 72, issue 8, year 2005.
This boundary condition has error of 1st order pressure and 2nd order velocity only if wall is located exactly at q=1/2 else the accuracy of both pressure and velocity reduce by order 1.
Usage
boundary_condition = {
{ label = 'inlet',
kind = 'velocity_bounceback',
velocity = 'inlet_vel',
}
}
variable = {
name = 'inlet_vel',
ncomponents = 3,
vartype = 'st_fun',
st_fun = {0.06, 0.0, 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 | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | iLink | ||||
integer, | private | :: | iDir | ||||
real(kind=rk), | private | :: | fOut | ||||
real(kind=rk), | private | :: | eqPlus | ||||
real(kind=rk), | private | :: | inv_vel | ||||
real(kind=rk), | private | :: | vel_b(me%links(iLevel)%nVals*3) | ||||
integer, | private | :: | bcVel_pos | ||||
integer, | private | :: | offset |