31template<
typename T,
bool check=false>
33 T charPhysLength, T physPermeability )
35 T minPermeabiliy = physDeltaX * physDeltaX * latticeViscosity * latticeRelaxationTime;
37 if ( physPermeability >= minPermeabiliy ){
38 throw std::invalid_argument(
"Error: Min permeability exceeded!" );
41 return 1. - minPermeabiliy / physPermeability;
44 return 1. - minPermeabiliy / physPermeability;
47 __builtin_unreachable();
50template<
typename T,
typename DESCRIPTOR,
bool check=false>
52 return getConfinedPermeability<T,check>(
60 T charPhysLength, T confinedPermeability )
62 T minPermeabiliy = physDeltaX * physDeltaX * latticeViscosity * latticeRelaxationTime;
63 return minPermeabiliy / (1. - confinedPermeability);
66template<
typename T,
typename DESCRIPTOR,
bool check=false>
68 return getPhysPermeability<T>(
71 confinedPermeability );
Conversion between physical and lattice units, as well as discretization.
constexpr T getLatticeViscosity() const
conversion from physical to lattice viscosity
constexpr T getCharPhysLength() const
return characteristic length in physical units
constexpr T getLatticeRelaxationTime() const
return relaxation time in lattice units
constexpr T getPhysDeltaX() const
returns grid spacing (voxel length) in m
Top level namespace for all of OpenLB.
T getPhysPermeability(T latticeViscosity, T latticeRelaxationTime, T physDeltaX, T charPhysLength, T confinedPermeability)
T getConfinedPermeability(T latticeViscosity, T latticeRelaxationTime, T physDeltaX, T charPhysLength, T physPermeability)