spc_bb_vel_test Subroutine

public subroutine spc_bb_vel_test(me, state, bcBuffer, globBC, levelDesc, tree, nSize, iLevel, sim_time, neigh, layout, fieldProp, varPos, nScalars, varSys, derVarPos, physics, iField, mixture)

species bounce back velocity boundary Usage


boundary_condition = {
 { label = 'outlet',
   kind = 'spc_bb_vel_test',
   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.

write(dbgUnit(1),) 'Boundary label ', trim(me%label) write(dbgUnit(1),) 'iField ', iField

write(dbgUnit(1),) 'iElem ', iElem write(dbgUnit(1),) 'fTmp_all ', fTmp_all write(dbgUnit(1),*) 'local fTmp_Next ', fTmp_Next

write(dbgUnit(1),*) 'elemPos', elemPos, 'treeID ', levelDesc%total(elemPos)

write(dbgUnit(1),) 'iDir ', iNeigh, 'fluidNeighbor ', fluidNeighbor write(dbgUnit(1),) 'neighID ', levelDesc%total(fluidNeighbor) write(dbgUnit(1),*) 'fTmp_allNeigh ', fTmp_allNeigh

simple Bounce Back

Arguments

TypeIntentOptionalAttributesName
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


Calls

proc~~spc_bb_vel_test~~CallsGraph proc~spc_bb_vel_test spc_bb_vel_test proc~tem_abort tem_abort proc~spc_bb_vel_test->proc~tem_abort

Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: fTmp(layout%fStencil%QQ)
real(kind=rk), private :: fEq(layout%fStencil%QQ,varSys%nStateVars)
real(kind=rk), private :: fTmp_all(layout%fStencil%QQ*varSys%nStateVars)
integer, private :: iELem
integer, private :: iDir
integer, private :: iFieldLoc
integer, private :: nFields
integer, private :: pos
integer, private :: invPos
integer, private :: iNeigh
integer, private :: elemPos
integer, private :: fluidNeighbor
integer, private :: QQ
real(kind=rk), private :: mass_dens(varSys%nStateVars)
real(kind=rk), private :: vel(3,varSys%nStateVars)
real(kind=rk), private :: fTmp_allNeigh(layout%fStencil%QQ*varSys%nStateVars)
real(kind=rk), private :: fTmp_Next(layout%fStencil%QQ*varSys%nStateVars)
real(kind=rk), private :: fEqNeigh(layout%fStencil%QQ,varSys%nStateVars)
real(kind=rk), private :: fEqNext(layout%fStencil%QQ)
real(kind=rk), private :: ucx
real(kind=rk), private :: vel_b(globBC%nElems(iLevel)*3)
real(kind=rk), private :: inv_vel
integer, private :: posInBuffer
integer, private :: bcVel_pos
integer, private :: offset