mus_physics_type Derived Type

type, public :: mus_physics_type

This type contains the basic SI units used to convert lattice to physical unit and vice versa. keep reference mass density, mole density and molecular weight same for all levels.


Inherits

type~~mus_physics_type~~InheritsGraph type~mus_physics_type mus_physics_type type~mus_convertfac_type mus_convertFac_type type~mus_physics_type->type~mus_convertfac_type fac

Inherited by

type~~mus_physics_type~~InheritedByGraph type~mus_physics_type mus_physics_type type~mus_param_type mus_param_type type~mus_param_type->type~mus_physics_type physics

Components

Type Visibility Attributes Name Initial
logical, public :: active = .false.

needed to check if physics table is defined

real(kind=rk), public :: dx = -1.0_rk

reference length - discretization size of the coarsest level SI unit - meter

real(kind=rk), public, allocatable :: dxLvl(:)
real(kind=rk), public :: dt = -1.0_rk

reference time - time discretization for discretization size of the coarsest level SI unit - seconds

real(kind=rk), public, allocatable :: dtLvl(:)
real(kind=rk), public :: rho0 = -1.0_rk

reference physical mass density SI unit - kg/m^3

real(kind=rk), public :: moleDens0 = -1.0_rk

reference physical mole density SI unit - mol/m^3

real(kind=rk), public :: molWeight0 = -1.0_rk

reference molecular weight SI unit - kg/mol

real(kind=rk), public :: temp0 = -1.0_rk

reference temperature SI unit - Kelvin

real(kind=rk), public :: coulomb0 = -1.0_rk

reference fundamental electrical charge SI unit - Coulomb

real(kind=rk), public :: mole0 = -1.0_rk

mole is defined by inverse of Avogadro Constant Avogadro Constant = 6.02214129e23 [1/mol]

real(kind=rk), public :: mass0 = -1.0_rk

reference mass in kg derived from density or moleweight SI unit :: kg

type(mus_convertFac_type), public, allocatable :: fac(:)

Level-wise conversion factor for derived variables size: minLevel:maxLevel allocated in mus_load_physics \todo KM: conversion factor should not be level-dependent. it should be same for all levels, the lattice dx and dt for each level must be considered to scale variables in multilevel. Implemented force, visc, etc using dtL according to formula Introduced lattice speed variable: dx/dt for each level it should be same for all level for acoustic scaling and different for diffusive scaling

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

Pressure (strain rate) over level scale factor. This factor is meant to convert pressure in LB unit on source level to the required pressure on target level. It is mainly used in interpolation routine. It is allocated as: allocate(pFac( minLevel:maxLevel, minLevel:maxLevel)) It is allocated and initialized in routine: mus_set_scaleFac How to use it in the code: pTargetLevel = pSourceLevel * pFac( sourceLevel, targetLevel )

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

Velocity over level scale factor Its usage is the same as pressure scale factor

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

Strain rate over level scale factor Its usage is the same as pressure scale factor