mus_absorbLayer_module Module

Module containing subroutines for building MUSUBI specific absorbLayer source variables

Make target_pressure and target_velocity as stFun.


Uses

  • module~~mus_absorblayer_module~~UsesGraph module~mus_absorblayer_module mus_absorbLayer_module module~tem_tools_module tem_tools_module module~mus_absorblayer_module->module~tem_tools_module module~env_module env_module module~mus_absorblayer_module->module~env_module module~aotus_module aotus_module module~mus_absorblayer_module->module~aotus_module module~tem_aux_module tem_aux_module module~mus_absorblayer_module->module~tem_aux_module module~aot_table_module aot_table_module module~mus_absorblayer_module->module~aot_table_module module~tem_logging_module tem_logging_module module~mus_absorblayer_module->module~tem_logging_module

Used by

  • module~~mus_absorblayer_module~~UsedByGraph module~mus_absorblayer_module mus_absorbLayer_module module~mus_source_module mus_source_module module~mus_source_module->module~mus_absorblayer_module module~mus_source_type_module mus_source_type_module module~mus_source_module->module~mus_source_type_module module~mus_source_type_module->module~mus_absorblayer_module module~mus_auxfield_module mus_auxField_module module~mus_auxfield_module->module~mus_source_type_module module~mus_scheme_type_module mus_scheme_type_module module~mus_scheme_type_module->module~mus_source_type_module module~mus_variable_module mus_variable_module module~mus_variable_module->module~mus_source_type_module module~mus_derquanps_module mus_derQuanPS_module module~mus_derquanps_module->module~mus_source_type_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_source_module module~mus_field_module mus_field_module module~mus_field_module->module~mus_source_type_module module~mus_derquanmsliquid_module mus_derQuanMSLiquid_module module~mus_derquanmsliquid_module->module~mus_source_type_module module~mus_auxfieldvar_module mus_auxFieldVar_module module~mus_auxfieldvar_module->module~mus_source_type_module module~mus_derquanincomp_module mus_derQuanIncomp_module module~mus_derquanincomp_module->module~mus_source_type_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_source_module module~mus_derquanpoisson_module mus_derQuanPoisson_module module~mus_derquanpoisson_module->module~mus_source_type_module module~mus_source_var_module mus_source_var_module module~mus_source_var_module->module~mus_source_type_module module~mus_derquan_module mus_derQuan_module module~mus_derquan_module->module~mus_source_type_module module~mus_aux_module mus_aux_module module~mus_aux_module->module~mus_source_module module~mus_derquannernstplanck_module mus_derQuanNernstPlanck_module module~mus_derquannernstplanck_module->module~mus_source_type_module module~mus_scheme_module mus_scheme_module module~mus_scheme_module->module~mus_source_type_module module~mus_derquanisothermaceq_module mus_derQuanIsothermAcEq_module module~mus_derquanisothermaceq_module->module~mus_source_type_module

Contents


Derived Types

Stores time average values of density and velocity for dynamic absorbLayer

Components

TypeVisibilityAttributesNameInitial
real(kind=rk), private, allocatable:: dens(:)

density time average in lattice unit

real(kind=rk), private, allocatable:: velX(:)

velocity time average in lattice unit

real(kind=rk), private, allocatable:: velY(:)
real(kind=rk), private, allocatable:: velZ(:)
logical, private :: isInitDens =.true.

It is used to initialiye dynamic average density with initial condition

logical, private :: isInitVel =.true.

It is used to initialiye dynamic average velocity with initial condition

type, public :: mus_absorbLayer_type

Contains information for absorblayer

Components

TypeVisibilityAttributesNameInitial
type(absorbLayer_config_type), private :: config

Information loaded from configuration file

real(kind=rk), private :: smoothFac

Smoothing factor for expoential moving average = 2 / (nRecord+1)

type, private :: absorbLayer_config_type

Contains additional information for absorblayer source

Components

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: target_pressure

target pressure

real(kind=rk), private :: target_velocity(3)

target velocityX, velocityY and velocityZ

logical, private :: isPressDyn =.false.

Use time average for pressure. Default: false.

logical, private :: isVelDyn =.false.

Use time average for Velocity. Default: false.

integer, private :: nRecord =100

Number of iterations to record for time-averaging


Subroutines

public subroutine mus_load_absorbLayer(me, conf, key, parent, loadPres, loadVel)

This routine load additional information for absorblayer

Arguments

TypeIntentOptionalAttributesName
type(absorbLayer_config_type), intent(out) :: me

Absorb layer

type(flu_State) :: conf

flu state

character(len=*), intent(in) :: key

Table name to load target states

integer, intent(in) :: parent

parent source handle

logical, intent(in) :: loadPres

Load pressure if true else set to dynamic

logical, intent(in) :: loadVel

Load velocity if true else set to dynamic

public subroutine mus_init_absorbLayer(absLayer, dynAvg, nElems)

Initialize arrays to store time average density and velocity for dynamic absorbing layer. \todo KM: 20210301 Allocate only pressure or velocity depending on absorb_layer_inlet or absorb_layer_outlet

Arguments

TypeIntentOptionalAttributesName
type(mus_absorbLayer_type), intent(inout) :: absLayer

Absorblayer type

type(mus_absorbLayer_dynAvg_type), intent(inout) :: dynAvg

Contains dynamic average density and velocity for absorblayer

integer, intent(in) :: nElems

Number of source elements