summaryrefslogtreecommitdiff
path: root/c++/converter.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'c++/converter.hpp')
-rw-r--r--c++/converter.hpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/c++/converter.hpp b/c++/converter.hpp
index e07847f..f3c3518 100644
--- a/c++/converter.hpp
+++ b/c++/converter.hpp
@@ -4,10 +4,38 @@
namespace kel {
namespace lbm {
+
+template<typename T>
class converter {
private:
+ saw::data<saw::unit_division<T, LbmMeter<T>, SiMeter<T> >> meter_conv_;
+ saw::data<saw::unit_division<T, LbmSecond<T>, SiSecond<T> >> second_conv_;
public:
converter() = delete;
+ converter(
+ saw::data<saw::unit_division<T, LbmMeter<T>, SiMeter<T> >> meter_conv__,
+ saw::data<saw::unit_division<T, LbmSecond<T>, SiSecond<T> >> second_conv__
+ ):
+ meter_conv_{meter_conv__},
+ second_conv_{second_conv__}
+ {}
+
+ saw::data<sch::LbmMeter<T>> meter_si_to_lbm(const saw::data<sch::SiMeter<T>>& m_si){
+ return m_si * meter_conv_;
+ }
+
+ saw::data<sch::LbmSecond<T>> second_si_to_lbm(const saw::data<sch::SiSecond<T>>& s_si){
+ return s_si * second_conv_;
+ }
+
+ saw::data<sch::LbmVelocity<T>> velocity_si_to_lbm(const saw::data<sch::SiVelocity<T>>& vel_si){
+ return vel_si * meter_conv_ / second_conv_;
+ }
+
+ saw::data<sch::LbmAcceleration<T>> acceleration_si_to_lbm(const saw::data<sch::SiAcceleration<T>>& acc_si){
+ return acc_si * meter_conv_ / (second_conv_ * second_conv_);
+ }
+
};
}
}