28#ifndef FRACTIONAL_UNITCONVERTER_H
29#define FRACTIONAL_UNITCONVERTER_H
35template <
typename T,
typename DESCRIPTOR,
typename DESCRIPTOR_AD>
38 int fraction, T targetLatticeRelaxationTime )
41 throw std::out_of_range(
"fracton must be positive.");
45 T physViscosiyOrDiffusivity = (targetLatticeRelaxationTime - 0.5) * conversionViscosityOrDiffusivity / descriptors::invCs2<T,DESCRIPTOR_AD>();
52 physViscosiyOrDiffusivity,
58template <
typename T,
typename DESCRIPTOR>
61 int fraction, T targetLatticeRelaxationTime )
63 return createADfractionalUnitConverter<T,DESCRIPTOR,DESCRIPTOR> (
64 converter, fraction, targetLatticeRelaxationTime );
67template <
typename T,
typename DESCRIPTOR>
Conversion between physical and lattice units, as well as discretization.
constexpr T getCharPhysLength() const
return characteristic length in physical units
constexpr T getPhysDensity() const
return density in physical units
constexpr T getPhysViscosity() const
return viscosity in physical units
constexpr T getCharPhysVelocity() const
return characteristic velocity in physical units
constexpr T getPhysDeltaT() const
returns time spacing (timestep length) in s
constexpr T getCharPhysPressure() const
return characteristic pressure in physical units
constexpr T getPhysDeltaX() const
returns grid spacing (voxel length) in m
Top level namespace for all of OpenLB.
UnitConverter< T, DESCRIPTOR > createFractionalUnitConverter(const UnitConverter< T, DESCRIPTOR > &converter, int fraction, T targetLatticeRelaxationTime)
T residualPhysDiffusivity(const UnitConverter< T, DESCRIPTOR > &converterFractional, T physDiffusivity)
UnitConverter< T, DESCRIPTOR > createADfractionalUnitConverter(const UnitConverter< T, DESCRIPTOR > &converter, int fraction, T targetLatticeRelaxationTime)
Unit conversion handling – header file.