summaryrefslogtreecommitdiff
path: root/c++
diff options
context:
space:
mode:
Diffstat (limited to 'c++')
-rw-r--r--c++/collision.hpp24
-rw-r--r--c++/component.hpp21
2 files changed, 45 insertions, 0 deletions
diff --git a/c++/collision.hpp b/c++/collision.hpp
new file mode 100644
index 0000000..4e16832
--- /dev/null
+++ b/c++/collision.hpp
@@ -0,0 +1,24 @@
+#pragma once
+
+#include "component.hpp"
+#include "equilibrium.hpp"
+
+namespace kel {
+namespace lbm {
+namespace cmpt {
+struct BGK {};
+}
+
+template<typename T>
+class component<T, cmpt::BGK> {
+public:
+ using access = cmpt::access_tuple<
+ cmpt::access<"dfs", 0, true, true>
+ >;
+
+ static constexpr saw::string_literal name = "collision";
+ static constexpr saw::string_literal after = "";
+ static constexpr saw::string_literal before = "streaming";
+};
+}
+}
diff --git a/c++/component.hpp b/c++/component.hpp
index 08be2f5..14f908a 100644
--- a/c++/component.hpp
+++ b/c++/component.hpp
@@ -1,8 +1,29 @@
#pragma once
+#include "descriptor.hpp"
+
namespace kel {
namespace lbm {
+namespace cmpt {
+template<saw::string_literal Name, uint64_t Dist, bool Read, bool Write>
+class access {
+public:
+ static constexpr saw::string_literal name = Name;
+ static constexpr uint64_t distance = Dist;
+ static constexpr bool read = Read;
+ static constexpr bool write = Write;
+};
+
+template<typename... Acc>
+class access_tuple {
+public:
+};
+}
+
+/**
+ * Compponent class which forms the basis of the
+ */
template<typename T>
class component {};
}