#pragma once #include "lbm_unit.hpp" namespace kel { namespace lbm { template class converter { private: saw::data, SiMeter >> meter_conv_; saw::data, SiSecond >> second_conv_; public: converter() = delete; converter( saw::data, SiMeter >> meter_conv__, saw::data, SiSecond >> second_conv__ ): meter_conv_{meter_conv__}, second_conv_{second_conv__} {} saw::data> meter_si_to_lbm(const saw::data>& m_si){ return m_si * meter_conv_; } saw::data> second_si_to_lbm(const saw::data>& s_si){ return s_si * second_conv_; } saw::data> velocity_si_to_lbm(const saw::data>& vel_si){ return vel_si * meter_conv_ / second_conv_; } saw::data> acceleration_si_to_lbm(const saw::data>& acc_si){ return acc_si * meter_conv_ / (second_conv_ * second_conv_); } }; } }