28#ifndef UNITCONVERTER_H
29#define UNITCONVERTER_H
52 virtual void print(std::ostream& fout)
const = 0;
53 virtual void write(std::string
const& fileName =
"unitConverter")
const = 0;
84template <
typename T,
typename DESCRIPTOR>
96 constexpr UnitConverter( T physDeltaX, T physDeltaT, T charPhysLength, T charPhysVelocity,
97 T physViscosity, T physDensity, T charPhysPressure = 0 )
115 clout(std::cout,
"UnitConverter")
137 template <
typename DESCRIPTOR_>
140 return 1.0 / ( physDiffusivity /
_conversionViscosity * descriptors::invCs2<T,DESCRIPTOR_>() + 0.5 );
347 virtual void print()
const;
348 void print(std::ostream& fout)
const;
350 void write(std::string
const& fileName =
"unitConverter")
const;
381template <
typename T,
typename DESCRIPTOR>
402template <
typename T,
typename DESCRIPTOR>
407 T latticeRelaxationTime,
413 (charPhysLength/resolution),
414 (latticeRelaxationTime - 0.5) / descriptors::invCs2<T,DESCRIPTOR>() * util::pow((charPhysLength/resolution),2) / physViscosity,
424template <
typename T,
typename DESCRIPTOR>
429 T charLatticeVelocity,
435 (charPhysLength/resolution),
436 (charLatticeVelocity / charPhysVelocity * charPhysLength / resolution),
445template <
typename T,
typename DESCRIPTOR>
449 T latticeRelaxationTime,
450 T charLatticeVelocity,
456 (physViscosity * charLatticeVelocity / charPhysVelocity * descriptors::invCs2<T,DESCRIPTOR>() / (latticeRelaxationTime - 0.5)),
457 (physViscosity * charLatticeVelocity * charLatticeVelocity / charPhysVelocity / charPhysVelocity * descriptors::invCs2<T,DESCRIPTOR>() / (latticeRelaxationTime - 0.5)),
class for marking output with some text
constexpr UnitConverterFromRelaxationTimeAndLatticeVelocity(T latticeRelaxationTime, T charLatticeVelocity, T charPhysLength, T charPhysVelocity, T physViscosity, T physDensity, T charPhysPressure=0)
constexpr UnitConverterFromResolutionAndLatticeVelocity(size_t resolution, T charLatticeVelocity, T charPhysLength, T charPhysVelocity, T physViscosity, T physDensity, T charPhysPressure=0)
constexpr UnitConverterFromResolutionAndRelaxationTime(size_t resolution, T latticeRelaxationTime, T charPhysLength, T charPhysVelocity, T physViscosity, T physDensity, T charPhysPressure=0)
Conversion between physical and lattice units, as well as discretization.
constexpr T getConversionFactorViscosity() const
access (read-only) to private member variable
void write(std::string const &fileName="unitConverter") const
constexpr T getLatticeViscosity() const
conversion from physical to lattice viscosity
constexpr T getLatticeForce(T physForce) const
conversion from physical to lattice force
constexpr T getCharPhysLength() const
return characteristic length in physical units
constexpr T getLatticeTorque(T physTorque) const
conversion from physical to lattice torque
constexpr T getMachNumber() const
return Mach number
constexpr T getPhysViscosity(T latticeViscosity) const
conversion from lattice to physical viscosity
constexpr int getResolution() const
return resolution
const T _conversionViscosity
constexpr T getConversionFactorDensity() const
access (read-only) to private member variable
constexpr T getPhysDensity() const
return density in physical units
const T _charLatticeVelocity
constexpr T getLatticeRelaxationFrequency() const
return relaxation frequency in lattice units
const T _conversionPressure
constexpr T getConversionFactorLength() const
access (read-only) to private member variable
constexpr T getCharLatticeVelocity() const
return characteristic velocity in lattice units
constexpr T getLatticeDensity(T physDensity) const
conversion from physical to lattice density
constexpr size_t getLatticeTime(T physTime) const
conversion from physical to lattice time
constexpr T getLatticeDensityFromPhysPressure(T physPressure) const
constexpr T getPhysDensity(T latticeDensity) const
conversion from lattice to physical density
constexpr T getConversionFactorVelocity() const
access (read-only) to private member variable
constexpr T getPhysTorque(T latticeTorque) const
conversion from lattice to physical torque
constexpr T getPhysMass(T latticeMass) const
conversion from lattice to physical mass
constexpr T getPhysVelocity(T latticeVelocity) const
conversion from lattice to physical velocity
constexpr T getLatticePressure(T physPressure) const
conversion from physical to lattice pressure
constexpr T getConversionFactorMass() const
access (read-only) to private member variable
const T _conversionVelocity
constexpr T getPhysViscosity() const
return viscosity in physical units
constexpr T getConversionFactorForce() const
access (read-only) to private member variable
const T _conversionDensity
constexpr T getConversionFactorPressure() const
access (read-only) to private member variable
constexpr T getLatticeVelocity(T physVelocity) const
conversion from physical to lattice velocity
constexpr UnitConverter(T physDeltaX, T physDeltaT, T charPhysLength, T charPhysVelocity, T physViscosity, T physDensity, T charPhysPressure=0)
Documentation of constructor:
constexpr T getKnudsenNumber() const
return Knudsen number
constexpr T getCharPhysVelocity() const
return characteristic velocity in physical units
constexpr T getPhysDeltaT() const
returns time spacing (timestep length) in s
constexpr T getConversionFactorTime() const
access (read-only) to private member variable
constexpr T getPhysForce(T latticeForce) const
conversion from lattice to physical force
constexpr int getLatticeLength(T physLength) const
conversion from physical to lattice length, returns number of voxels for given physical length
const T _charPhysPressure
const T _conversionLength
constexpr T getCharPhysPressure() const
return characteristic pressure in physical units
virtual void print() const
nice terminal output for conversion factors, characteristical and physical data
constexpr T getPhysPressure(T latticePressure) const
conversion from lattice to physical pressure
virtual ~UnitConverter()=default
constexpr T getPhysLength(int latticeLength) const
conversion from lattice to physical length
constexpr T getLatticeRelaxationFrequencyFromDiffusivity(const T physDiffusivity) const
return relaxation frequency in lattice units computed from given physical diffusivity in m^2 / s
constexpr T getPhysTime(size_t latticeTime) const
conversion from lattice to physical time
const T _charPhysVelocity
constexpr T getLatticeMass(T physMass) const
conversion from physical to lattice mass
const T _conversionTorque
const T _latticeRelaxationTime
constexpr T getLatticeRelaxationTime() const
return relaxation time in lattice units
constexpr T getReynoldsNumber() const
return Reynolds number
constexpr T getPhysDeltaX() const
returns grid spacing (voxel length) in m
constexpr T getConversionFactorTorque() const
access (read-only) to private member variable
Unit conversion handling – header file.
cpu::simd::Pack< T > sqrt(cpu::simd::Pack< T > value)
Top level namespace for all of OpenLB.
UnitConverter< T, DESCRIPTOR > * createUnitConverter(XMLreader const ¶ms)
creator function with data given by a XML file
virtual void write(std::string const &fileName="unitConverter") const =0
virtual void print() const =0
virtual void print(std::ostream &fout) const =0
virtual ~UnitConverterBase()=default
Unit conversion handling – header file.
Set of functions commonly used in LB computations – header file.
Input/Output in XML format – header file.