summaryrefslogtreecommitdiff
path: root/modules/core
diff options
context:
space:
mode:
Diffstat (limited to 'modules/core')
-rw-r--r--modules/core/c++/boundary.hpp2
-rw-r--r--modules/core/c++/descriptor/d2q4.hpp48
-rw-r--r--modules/core/c++/psm.hpp3
3 files changed, 52 insertions, 1 deletions
diff --git a/modules/core/c++/boundary.hpp b/modules/core/c++/boundary.hpp
index e7567c9..8312584 100644
--- a/modules/core/c++/boundary.hpp
+++ b/modules/core/c++/boundary.hpp
@@ -12,7 +12,7 @@ template<uint64_t i>
struct AntiBounceBack {};
template<bool East>
-struct ZouHeHorizontal{};
+struct ZouHeVelocityX{};
struct Equilibrium {};
diff --git a/modules/core/c++/descriptor/d2q4.hpp b/modules/core/c++/descriptor/d2q4.hpp
new file mode 100644
index 0000000..e867bbc
--- /dev/null
+++ b/modules/core/c++/descriptor/d2q4.hpp
@@ -0,0 +1,48 @@
+#pragma once
+
+#include "common.hpp"
+
+namespace kel {
+namespace lbm {
+namespace sch {
+using D2Q5 = Descriptor<2u,4u>;
+}
+
+template<typename T>
+class df_info<T,sch::Descriptor<2, 4>> {
+public:
+ using Descriptor = sch::Descriptor<2,4>;
+
+ static constexpr uint64_t D = 2u;
+ static constexpr uint64_t Q = 4u;
+
+ static constexpr std::array<std::array<int32_t, D>, Q> directions = {{
+ { 0, 0}, // 0
+ {-1, 0}, // 1
+ { 1, 0}, // 2
+ { 0,-1}, // 3
+ }};
+
+ static constexpr std::array<typename saw::native_data_type<T>::type,Q> weights = {
+ 1./3.,
+ 1./6.,
+ 1./6.,
+ 1./6.
+ };
+
+ /*
+ static constexpr std::array<uint64_t,Q> opposite_index = {
+ 0,
+ 2,
+ 1,
+ 3
+ };
+ */
+
+ static constexpr typename saw::native_data_type<T>::type inv_cs2 = 3.0;
+ static constexpr typename saw::native_data_type<T>::type cs2 = 1./3.;
+};
+
+
+}
+}
diff --git a/modules/core/c++/psm.hpp b/modules/core/c++/psm.hpp
index 2daff5e..1dca64b 100644
--- a/modules/core/c++/psm.hpp
+++ b/modules/core/c++/psm.hpp
@@ -11,6 +11,9 @@ struct PsmReset {};
struct PsmOneParticle {};
struct Psm {};
}
+namespace method {
+struct Psm {};
+}
template<typename T, typename Descriptor, typename Encode>
class component<T, Descriptor, cmpt::PsmReset, Encode> final {