mus_fluid_module Module

This module keeps all information about the fluid

In this module, all infos about the fluid is collected. The file type mus_fluid_type contains all relevant information. This includes physical parameters such as the viscosity and reference density. Also, LBM-specific parameters such as the relaxation rates are defined.


Uses

Used by

  • module~~mus_fluid_module~~UsedByGraph module~mus_fluid_module mus_fluid_module module~mus_aux_module mus_aux_module module~mus_aux_module->module~mus_fluid_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_fluid_module module~mus_field_module mus_field_module module~mus_field_module->module~mus_fluid_module module~mus_field_prop_module mus_field_prop_module module~mus_field_prop_module->module~mus_fluid_module module~mus_flow_module mus_flow_module module~mus_flow_module->module~mus_fluid_module module~mus_hvs_aux_module mus_hvs_aux_module module~mus_hvs_aux_module->module~mus_fluid_module module~mus_interpolate_average_module mus_interpolate_average_module module~mus_interpolate_average_module->module~mus_fluid_module module~mus_interpolate_debug_module mus_interpolate_debug_module module~mus_interpolate_debug_module->module~mus_fluid_module module~mus_interpolate_linear_module mus_interpolate_linear_module module~mus_interpolate_linear_module->module~mus_fluid_module module~mus_interpolate_quadratic_module mus_interpolate_quadratic_module module~mus_interpolate_quadratic_module->module~mus_fluid_module

Derived Types

type, public ::  mus_fluid_type

collection of properties of the fluid

Components

Type Visibility Attributes Name Initial
logical, public :: active = .false.
real(kind=rk), public :: lambda = 0.25_rk

Magic value for TRT collision model Lambda = ( 1/omega_+ - 0.5 ) * ( 1/omega_- - 0.5 )

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

level-wise bulk omegas, used as relaxation in mrt model allocated in mus_init_fluid

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

Level wise bulk viscosity in lattice

type(mus_turbulence_type), public :: turbulence

Contains information for turbulence model

type(mus_nNwtn_type), public :: nNwtn

nonNewtonian fluid parameter

procedure(mus_proc_mrt), public, nopass, pointer :: mrtPtr => null()

function pointer to get MRT diagonal relaxation matrix

type(mus_viscosity_type), public :: viscKine

kinematic viscosity \todo KM: implement interpolation routine for constant viscosity

real(kind=rk), public :: viscBulk_phy
real(kind=rk), public :: force(3)
real(kind=rk), public :: HRR_sigma = 0.98_rk
real(kind=rk), public :: DRT_tauN = 0.70_rk
real(kind=rk), public :: omega_Cum(10)
real(kind=rk), public :: omega_Lim(3)

Subroutines

public subroutine mus_load_fluid(me, conf, parent, minLevel, physics, schemeHeader)

Read in the fluid property from the LUA parameter file

Read more…

Arguments

Type IntentOptional Attributes Name
type(mus_fluid_type), intent(out) :: me

fluid type

type(flu_State) :: conf

lua state

integer, intent(in), optional :: parent

parent handle

integer, intent(in) :: minLevel

global pdf info

type(mus_physics_type), intent(in) :: physics

physics type to convert physics to lattice unit or vice versa

type(mus_scheme_header_type), intent(in) :: schemeHeader

identifier of the scheme

public subroutine mus_init_fluid(me, physics, schemeHeader, minLevel, maxLevel, levelDesc, pdf, stencil, general, tNow)

This routine initilizes fluid visocity and relaxation paramters for each level

Arguments

Type IntentOptional Attributes Name
type(mus_fluid_type), intent(inout) :: me

fluid type

type(mus_physics_type), intent(in) :: physics

physics type to convert physics to lattice unit or vice versa

type(mus_scheme_header_type), intent(in) :: schemeHeader

scheme header

integer, intent(in) :: minLevel

min and max level

integer, intent(in) :: maxLevel

min and max level

type(tem_levelDesc_type), intent(in) :: levelDesc(minLevel:maxLevel)

level descriptor

type(pdf_data_type), intent(in) :: pdf(minLevel:maxLevel)

pdf info with neigh array for all levels

type(tem_stencilHeader_type), intent(in) :: stencil

stencil header

type(tem_general_type), intent(in) :: general

general type contains communication pattern and proc info

type(tem_time_type), intent(in) :: tNow

current simulation time

public subroutine mus_fluid_save2lua(me, conf)

write fluid prop into a lua file

Arguments

Type IntentOptional Attributes Name
type(mus_fluid_type), intent(in) :: me

single fluid type

type(aot_out_type) :: conf

public subroutine mus_fluid_cleanup(me)

This routines act as a destructor for fluid type

Arguments

Type IntentOptional Attributes Name
type(mus_fluid_type), intent(inout) :: me

single fluid type

private subroutine mus_fluid_dump(me, minLevel, maxLevel, physics, nSolve, general, outUnit, schemeHeader)

Arguments

Type IntentOptional Attributes Name
type(mus_fluid_type), intent(inout) :: me
integer, intent(in) :: minLevel

minlevel and maxlevel

integer, intent(in) :: maxLevel

minlevel and maxlevel

type(mus_physics_type), intent(in) :: physics

physics type to convert physics to lattice unit or vice versa

integer, intent(in) :: nSolve(minLevel:maxLevel)

number of elements to solve per level (fluid+ghost)

type(tem_general_type), intent(in) :: general

general type

integer, intent(in) :: outUnit
type(mus_scheme_header_type), intent(in) :: schemeHeader

scheme header