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_interpolate_d3q27_module mus_interpolate_d3q27_module module~mus_interpolate_d3q27_module->module~mus_fluid_module module~mus_interpolate_quadratic_module mus_interpolate_quadratic_module module~mus_interpolate_quadratic_module->module~mus_fluid_module module~mus_interpolate_d2q9_module mus_interpolate_d2q9_module module~mus_interpolate_d2q9_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_field_module mus_field_module module~mus_field_module->module~mus_fluid_module module~mus_interpolate_compact_module mus_interpolate_compact_module module~mus_interpolate_compact_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_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_fluid_module module~mus_interpolate_d3q19_module mus_interpolate_d3q19_module module~mus_interpolate_d3q19_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_field_prop_module mus_field_prop_module module~mus_field_prop_module->module~mus_fluid_module module~mus_interpolate_linear_module mus_interpolate_linear_module module~mus_interpolate_linear_module->module~mus_fluid_module

Contents


Derived Types

type, public :: mus_fluid_type

collection of properties of the fluid

Components

TypeVisibilityAttributesNameInitial
logical, private :: active =.false.
real(kind=rk), private :: lambda =0.25_rk

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

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

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

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

Level wise bulk viscosity in lattice

type(mus_turbulence_type), private :: turbulence

Contains information for turbulence model

type(mus_nNwtn_type), private :: nNwtn

nonNewtonian fluid parameter

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

function pointer to get MRT diagonal relaxation matrix

procedure(mus_proc_intp_nonEqScalingFacs), private, nopass, pointer:: nonEqScalingFacs=> null()

function pointer to get MRT diagonal relaxation matrix

type(mus_viscosity_type), private :: viscKine

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

real(kind=rk), private :: viscBulk_phy
real(kind=rk), private :: force(3)
real(kind=rk), private :: HRR_sigma =0.98_rk

Workaround for ICE with Intel 19.1:


Subroutines

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

Read in the fluid property from the LUA parameter file

Arguments

TypeIntentOptionalAttributesName
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, nScalars, general, tNow)

This routine initilizes fluid visocity and relaxation paramters for each level

Arguments

TypeIntentOptionalAttributesName
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

integer, intent(in) :: nScalars

number of scalars in state array

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

TypeIntentOptionalAttributesName
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

TypeIntentOptionalAttributesName
type(mus_fluid_type), intent(inout) :: me

single fluid type

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

Arguments

TypeIntentOptionalAttributesName
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