summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--c++/converter.hpp16
-rw-r--r--c++/lbm.hpp11
-rw-r--r--c++/lbm_unit.hpp5
-rw-r--r--examples/cavity_2d.cpp2
-rw-r--r--examples/meta.cpp5
5 files changed, 31 insertions, 8 deletions
diff --git a/c++/converter.hpp b/c++/converter.hpp
index 2ad5185..6e0a7a6 100644
--- a/c++/converter.hpp
+++ b/c++/converter.hpp
@@ -20,6 +20,20 @@ public:
second_conv_{second_conv__}
{}
+ /**
+ * Get the conversion parameter with the conversion type
+ */
+ auto conversion_x() const {
+ return meter_conv_;
+ }
+
+ /**
+ * Get the conversion parameter with the conversion type
+ */
+ auto conversion_t() const {
+ return second_conv_;
+ }
+
auto delta_x() const {
return meter_conv_*saw::data<sch::LbmMeter<T>>{1.0};
}
@@ -45,7 +59,7 @@ public:
}
saw::data<sch::LbmKinematicViscosity<T>> kinematic_viscosity_si_to_lbm (const saw::data<sch::SiKinematicViscosity<T>>& kin_si) const {
- return kin_si * second_conv_ / (meter_conv_ * meter_conv_);
+ return kin_si / (meter_conv_ * meter_conv_) * second_conv_;
}
};
diff --git a/c++/lbm.hpp b/c++/lbm.hpp
index ddfa948..9cd7296 100644
--- a/c++/lbm.hpp
+++ b/c++/lbm.hpp
@@ -8,15 +8,16 @@
namespace kel {
namespace lbm {
-template<typename T>
-void print_lbm_meta(const converter<T>& conv){
+template<typename T, typename Desc>
+void print_lbm_meta(const converter<T>& conv, const saw::data<sch::SiKinematicViscosity<T>>& kin_vis_si){
std::cout
<<"[LBM Meta]\n"
<<"==========\n"
<<"\n"
- <<"Δx: "<<conv.delta_x()<<"\n"
- <<"Δt: "<<conv.delta_t()<<"\n"
- <<""
+ <<"Δx: "<<conv.delta_x()<<"\n"
+ <<"Δt: "<<conv.delta_t()<<"\n"
+ <<"KinVis: "<<kin_vis_si<<"\n"
+ <<"τ: "<<(saw::data<typename saw::unit_division<sch::Scalar<T>, sch::LbmKinematicViscosity<T>>::Schema >{df_info<T,Desc>::inv_cs2} * conv.kinematic_viscosity_si_to_lbm(kin_vis_si) + saw::data<sch::Scalar<T>>{0.5})<<"\n"
;
}
}
diff --git a/c++/lbm_unit.hpp b/c++/lbm_unit.hpp
index e69323f..2d90652 100644
--- a/c++/lbm_unit.hpp
+++ b/c++/lbm_unit.hpp
@@ -1,4 +1,7 @@
#pragma once
+ /**
+ * Get the conversion parameter with the conversion type
+ */
#include <forstio/codec/unit/unit.hpp>
@@ -39,7 +42,7 @@ template<typename S>
using LbmMeter = Unit<S, UnitElement<lbm_type::meter, 1>>;
template<typename S>
-using SiSecond = Unit<S, UnitElement<si_type::meter, 1>>;
+using SiSecond = Unit<S, UnitElement<si_type::second, 1>>;
template<typename S>
using LbmSecond = Unit<S, UnitElement<lbm_type::second, 1>>;
diff --git a/examples/cavity_2d.cpp b/examples/cavity_2d.cpp
index f1e2f51..4df4f2b 100644
--- a/examples/cavity_2d.cpp
+++ b/examples/cavity_2d.cpp
@@ -377,7 +377,7 @@ int main(){
{0.1}
};
- print_lbm_meta(conv);
+ print_lbm_meta<sch::T, sch::D2Q9>(conv, {1e-3});
//auto& df_field = lattices.at(0).template get<"dfs">();
//for(uint64_t i = 0; i < df_field.get_dim_size<0u>(); ++i){
diff --git a/examples/meta.cpp b/examples/meta.cpp
new file mode 100644
index 0000000..6bdc40d
--- /dev/null
+++ b/examples/meta.cpp
@@ -0,0 +1,5 @@
+#include "../c++/lbm.hpp"
+
+int main(int argc, char** argv){
+ return 0;
+}