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.
collection of properties of the fluid
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 |
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 | ||
real(kind=rk), | private | :: | DRT_tauN | = | 0.70_rk | ||
real(kind=rk), | private | :: | omega_Cum(10) | ||||
real(kind=rk), | private | :: | omega_Lim(3) |
Read in the fluid property from the LUA parameter file
Type | Intent | Optional | 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 |
This routine initilizes fluid visocity and relaxation paramters for each level
Type | Intent | Optional | 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 |
write fluid prop into a lua file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_fluid_type), | intent(in) | :: | me | single fluid type |
||
type(aot_out_type) | :: | conf |
This routines act as a destructor for fluid type
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_fluid_type), | intent(inout) | :: | me | single fluid type |
Type | Intent | Optional | 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 |