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.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | private | :: | active | = | .false. | needed to check if physics table is defined |
|
real(kind=rk), | private | :: | dx | = | -1.0_rk | reference length - discretization size of the coarsest level SI unit - meter |
|
real(kind=rk), | private, | allocatable | :: | dxLvl(:) | |||
real(kind=rk), | private | :: | dt | = | -1.0_rk | reference time - time discretization for discretization size of the coarsest level SI unit - seconds |
|
real(kind=rk), | private, | allocatable | :: | dtLvl(:) | |||
real(kind=rk), | private | :: | rho0 | = | -1.0_rk | reference physical mass density SI unit - kg/m^3 |
|
real(kind=rk), | private | :: | moleDens0 | = | -1.0_rk | reference physical mole density SI unit - mol/m^3 |
|
real(kind=rk), | private | :: | molWeight0 | = | -1.0_rk | reference molecular weight SI unit - kg/mol |
|
real(kind=rk), | private | :: | temp0 | = | -1.0_rk | reference temperature SI unit - Kelvin |
|
real(kind=rk), | private | :: | coulomb0 | = | -1.0_rk | reference fundamental electrical charge SI unit - Coulomb |
|
real(kind=rk), | private | :: | mole0 | = | -1.0_rk | mole is defined by inverse of Avogadro Constant Avogadro Constant = 6.02214129e23 [1/mol] |
|
real(kind=rk), | private | :: | mass0 | = | -1.0_rk | reference mass in kg derived from density or moleweight SI unit :: kg |
|
type(mus_convertFac_type), | private, | 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), | private, | 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), | private, | allocatable | :: | vFac(:,:) | Velocity over level scale factor Its usage is the same as pressure scale factor |
||
real(kind=rk), | private, | allocatable | :: | sFac(:,:) | Strain rate over level scale factor Its usage is the same as pressure scale factor |