summaryrefslogtreecommitdiff
path: root/modules/core/c++
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2026-08-18 21:51:44 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2026-08-18 21:51:44 +0200
commit2124d0d49e122987ad080af8df53b1bb1faddf07 (patch)
tree3cb4f29e15160d47ea1650b4543842d07510433e /modules/core/c++
parentade88e2eb8a4df07489ed8c3b51ca336120b0a58 (diff)
parenteaa598784db491d37bdb1b9ff87d6e6bc9979476 (diff)
downloadlibs-lbm-2124d0d49e122987ad080af8df53b1bb1faddf07.tar.gz
Merge branch 'dev'
Diffstat (limited to 'modules/core/c++')
-rw-r--r--modules/core/c++/boundary.hpp37
-rw-r--r--modules/core/c++/converter.hpp8
2 files changed, 26 insertions, 19 deletions
diff --git a/modules/core/c++/boundary.hpp b/modules/core/c++/boundary.hpp
index 8312584..ca2b228 100644
--- a/modules/core/c++/boundary.hpp
+++ b/modules/core/c++/boundary.hpp
@@ -12,7 +12,10 @@ template<uint64_t i>
struct AntiBounceBack {};
template<bool East>
-struct ZouHeVelocityX{};
+struct ZouHePressureX{};
+
+template<bool East>
+using ZouHeHorizontal = ZouHePressureX<East>;
struct Equilibrium {};
@@ -170,7 +173,7 @@ public:
*
*/
template<typename FP, bool Dir, typename Encode>
-class component<FP, sch::Descriptor<2u,9u>, cmpt::ZouHeHorizontal<Dir>, Encode> final {
+class component<FP, sch::Descriptor<2u,9u>, cmpt::ZouHePressureX<Dir>, Encode> final {
public:
using Descriptor = sch::Descriptor<2u,9u>;
private:
@@ -224,7 +227,7 @@ public:
};
template<typename FP, bool East, typename Encode>
-class component<FP, sch::Descriptor<3u,27u>, cmpt::ZouHeHorizontal<East>, Encode> final {
+class component<FP, sch::Descriptor<3u,27u>, cmpt::ZouHePressureX<East>, Encode> final {
public:
using Descriptor = sch::Descriptor<3u,27u>;
private:
@@ -726,12 +729,12 @@ public:
template<typename T, typename Descriptor, bool East, typename Encode>
class component<T, Descriptor, cmpt::ZouHeVelocityX<East>, Encode> final {
private:
- saw::data<sch::Vector<T,Descriptor::D>> momentum_;
+ saw::data<sch::Vector<T,Descriptor::D>> velocity_;
public:
component(
- saw::data<sch::Vector<T,Descriptor::D>> momentum__
+ const saw::data<sch::Vector<T,Descriptor::D>>& velocity__
):
- momentum_{momentum__}
+ velocity_{velocity__}
{}
template<typename CellFieldSchema>
@@ -753,20 +756,20 @@ public:
}
saw::data<sch::Scalar<T>> rho;
- rho.at({}) = (dfs.at({0u}) + dfs.at({4u}) + dfs.at({3u}) + dir_sum * 2) / (momentum_.at({{0u}}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0)});
+ rho.at({}) = (dfs.at({0u}) + dfs.at({4u}) + dfs.at({3u}) + dir_sum * 2) / (velocity_.at({{0u}}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0)});
if constexpr (East) {
- dfs.at({2u}) = dfs.at({1u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(2.0 / 3.0)} * rho.at({}) * momentum_.at({{0u}});
- dfs.at({6u}) = dfs.at({5u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0 / 6.0)} * rho.at({}) * momentum_.at({{0u}})
- + (dfs.at({3u}) - dfs.at({4u}) + rho.at({}) * momentum_.at({{1u}})) * 0.5f;
- dfs.at({8u}) = dfs.at({7u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0 / 6.0)} * rho.at({}) * momentum_.at({{0u}})
- + (dfs.at({4u}) - dfs.at({3u}) + rho.at({}) * momentum_.at({{1u}})) * 0.5f;
+ dfs.at({2u}) = dfs.at({1u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(2.0 / 3.0)} * rho.at({}) * velocity_.at({{0u}});
+ dfs.at({6u}) = dfs.at({5u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0 / 6.0)} * rho.at({}) * velocity_.at({{0u}})
+ + (dfs.at({3u}) - dfs.at({4u}) + rho.at({}) * velocity_.at({{1u}})) * 0.5f;
+ dfs.at({8u}) = dfs.at({7u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0 / 6.0)} * rho.at({}) * velocity_.at({{0u}})
+ + (dfs.at({4u}) - dfs.at({3u}) + rho.at({}) * velocity_.at({{1u}})) * 0.5f;
}else if constexpr ( not East ){
- dfs.at({1u}) = dfs.at({2u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(2.0 / 3.0)} * rho.at({}) * momentum_.at({{0u}});
- dfs.at({5u}) = dfs.at({6u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0 / 6.0)} * rho.at({}) * momentum_.at({{0u}})
- + (dfs.at({4u}) - dfs.at({3u}) + rho.at({}) * momentum_.at({{1u}}))*0.5f;
- dfs.at({7u}) = dfs.at({8u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0 / 6.0)} * rho.at({}) * momentum_.at({{0u}})
- + (dfs.at({3u}) - dfs.at({4u}) + rho.at({}) * momentum_.at({{1u}}))*0.5f;
+ dfs.at({1u}) = dfs.at({2u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(2.0 / 3.0)} * rho.at({}) * velocity_.at({{0u}});
+ dfs.at({5u}) = dfs.at({6u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0 / 6.0)} * rho.at({}) * velocity_.at({{0u}})
+ + (dfs.at({4u}) - dfs.at({3u}) + rho.at({}) * velocity_.at({{1u}}))*0.5f;
+ dfs.at({7u}) = dfs.at({8u}) + saw::data<T>{static_cast<saw::native_data_type<T>::type>(1.0 / 6.0)} * rho.at({}) * velocity_.at({{0u}})
+ + (dfs.at({3u}) - dfs.at({4u}) + rho.at({}) * velocity_.at({{1u}}))*0.5f;
}
}
};
diff --git a/modules/core/c++/converter.hpp b/modules/core/c++/converter.hpp
index 4370a2c..600db0d 100644
--- a/modules/core/c++/converter.hpp
+++ b/modules/core/c++/converter.hpp
@@ -62,16 +62,20 @@ public:
return m_si / meter_conv_;
}
+ saw::data<sch::SiMeter<T>> meter_lbm_to_si(const saw::data<sch::LbmMeter<T>>& m_lbm) const {
+ return m_lbm * meter_conv_;
+ }
+
saw::data<sch::LbmSecond<T>> second_si_to_lbm(const saw::data<sch::SiSecond<T>>& s_si) const {
return s_si / second_conv_;
}
saw::data<sch::LbmVelocity<T>> velocity_si_to_lbm(const saw::data<sch::SiVelocity<T>>& vel_si) const {
- return vel_si * second_conv_ / meter_conv_;
+ return (vel_si / meter_conv_) * second_conv_;
}
saw::data<sch::LbmAcceleration<T>> acceleration_si_to_lbm(const saw::data<sch::SiAcceleration<T>>& acc_si) const {
- return acc_si * (second_conv_ * second_conv_) / meter_conv_;
+ return (acc_si / meter_conv_) * (second_conv_ * second_conv_);
}
saw::data<sch::LbmKinematicViscosity<T>> kinematic_viscosity_si_to_lbm (const saw::data<sch::SiKinematicViscosity<T>>& kin_si) const {