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 aot_table_module aot_table_module module~mus_absorblayer_module->aot_table_module aotus_module aotus_module module~mus_absorblayer_module->aotus_module env_module env_module module~mus_absorblayer_module->env_module tem_aux_module tem_aux_module module~mus_absorblayer_module->tem_aux_module tem_logging_module tem_logging_module module~mus_absorblayer_module->tem_logging_module tem_tools_module tem_tools_module module~mus_absorblayer_module->tem_tools_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_aux_module mus_aux_module module~mus_aux_module->module~mus_source_module module~mus_auxfield_module mus_auxField_module module~mus_auxfield_module->module~mus_source_type_module module~mus_auxfieldvar_module mus_auxFieldVar_module module~mus_auxfieldvar_module->module~mus_source_type_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_source_module module~mus_derquan_module mus_derQuan_module module~mus_derquan_module->module~mus_source_type_module module~mus_derquanincomp_module mus_derQuanIncomp_module module~mus_derquanincomp_module->module~mus_source_type_module module~mus_derquanisothermaceq_module mus_derQuanIsothermAcEq_module module~mus_derquanisothermaceq_module->module~mus_source_type_module module~mus_derquanmsliquid_module mus_derQuanMSLiquid_module module~mus_derquanmsliquid_module->module~mus_source_type_module module~mus_derquannernstplanck_module mus_derQuanNernstPlanck_module module~mus_derquannernstplanck_module->module~mus_source_type_module module~mus_derquanpoisson_module mus_derQuanPoisson_module module~mus_derquanpoisson_module->module~mus_source_type_module module~mus_derquanps_module mus_derQuanPS_module module~mus_derquanps_module->module~mus_source_type_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_source_module module~mus_field_module mus_field_module module~mus_field_module->module~mus_source_type_module module~mus_scheme_module mus_scheme_module module~mus_scheme_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_source_var_module mus_source_var_module module~mus_source_var_module->module~mus_source_type_module module~mus_source_var_turbchanforce_module mus_source_var_turbChanForce_module module~mus_source_var_turbchanforce_module->module~mus_source_type_module module~mus_variable_module mus_variable_module module~mus_variable_module->module~mus_source_type_module

Derived Types

type, public ::  mus_absorbLayer_dynAvg_type

Stores time average values of density and velocity for dynamic absorbLayer

Components

Type Visibility Attributes Name Initial
real(kind=rk), public, allocatable :: dens(:)

density time average in lattice unit

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

velocity time average in lattice unit

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

It is used to initialiye dynamic average density with initial condition

logical, public :: isInitVel = .true.

It is used to initialiye dynamic average velocity with initial condition

type, public ::  mus_absorbLayer_type

Contains information for absorblayer

Components

Type Visibility Attributes Name Initial
type(absorbLayer_config_type), public :: config

Information loaded from configuration file

real(kind=rk), public :: smoothFac

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

type, private ::  absorbLayer_config_type

Contains additional information for absorblayer source

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: target_pressure

target pressure

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

target velocityX, velocityY and velocityZ

logical, public :: isPressDyn = .false.

Use time average for pressure. Default: false.

logical, public :: isVelDyn = .false.

Use time average for Velocity. Default: false.

integer, public :: 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

Type IntentOptional Attributes Name
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

Type IntentOptional Attributes Name
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