spc_inflow Subroutine

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

Inflow boundary condition based on non-Equilbrium extrapolation method. Usage

boundary_condition = {
 { label = 'outlet',
    kind = 'spc_inflow',
    mole_fraction = 0.01,
    velocity = {0.1,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.


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


proc~~spc_inflow~~CallsGraph proc~spc_inflow spc_inflow species species proc~spc_inflow->species none~calcmacrosfrompdf calcMacrosFromPDF proc~spc_inflow->none~calcmacrosfrompdf proc~momentumfrommacrolse momentumFromMacroLSE none~calcmacrosfrompdf->proc~momentumfrommacrolse proc~invert_matrix invert_matrix proc~momentumfrommacrolse->proc~invert_matrix



real(kind=rk), private :: fTmpAll_f(nScalars)
real(kind=rk), private :: fTmpAll_ff(nScalars)
real(kind=rk), private :: fEq_b
real(kind=rk), private :: fEq_f
real(kind=rk), private :: fEq_ff
real(kind=rk), private :: fnEq_f
real(kind=rk), private :: fnEq_ff
real(kind=rk), private :: fnEq_b
real(kind=rk), private :: eqVel_f(3)
real(kind=rk), private :: velAvg_f(3)
real(kind=rk), private :: eqVel_ff(3)
real(kind=rk), private :: velAvg_ff(3)
real(kind=rk), private :: vel_b(3)
real(kind=rk), private :: usq_f
real(kind=rk), private :: ucx_f
real(kind=rk), private :: ucxQuad_f
real(kind=rk), private :: usq_b
real(kind=rk), private :: ucx_b
real(kind=rk), private :: usq_ff
real(kind=rk), private :: ucx_ff
real(kind=rk), private :: ucxQuad_ff
real(kind=rk), private, dimension(varSys%nStateVars):: mass_dens_f
real(kind=rk), private, dimension(varSys%nStateVars):: mass_dens_ff
real(kind=rk), private, dimension(3, varSys%nStateVars):: velocity_f
real(kind=rk), private, dimension(3, varSys%nStateVars):: velocity_ff
real(kind=rk), private :: resi_coeff(varSys%nStateVars,varSys%nStateVars)
real(kind=rk), private :: omega_fac
real(kind=rk), private :: paramBInv
integer, private :: iElem
integer, private :: iDir
integer, private :: QQ
integer, private :: iFld
integer, private :: vPos
integer, private :: posInBuffer
integer, private :: bcMoleFrac_pos
integer, private :: bcVel_pos
integer, private :: elemPos
integer, private :: neighPos_1
integer, private :: neighPos_2
real(kind=rk), private :: vel_w(3*globBC%nElems(iLevel))
real(kind=rk), private :: inv_vel
real(kind=rk), private :: moleFrac_w(globBC%nElems(iLevel))
real(kind=rk), private :: mass_dens_b
type(mus_varSys_data_type), private, pointer:: fPtr
real(kind=rk), private :: coeff_w
real(kind=rk), private :: coeff_f
real(kind=rk), private :: coeff_ff
integer, private :: nFields
real(kind=rk), private :: weight0Inv

Inverse of lattice weight ar restPosition


subroutine calcMacrosFromPDF(varSys, pdf, mass_dens, velocity, velAvg, eqVel, species)

This routine computes macroscopic quantities like density, velocity equilibrium velocity, velocity average for given iField from PDF


type(tem_varSys_type), intent(in) :: varSys
real(kind=rk), intent(in) :: pdf(varSys%nScalars)
real(kind=rk), intent(out) :: mass_dens(nFields)
real(kind=rk), intent(out) :: velocity(nFields,nFields)
real(kind=rk), intent(out) :: velAvg(3)
real(kind=rk), intent(out) :: eqVel(3)
type(mus_species_type), intent(in) :: species(nFields)