summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2023-07-03 14:22:20 +0200
committerClaudius "keldu" Holeksa <mail@keldu.de>2023-07-03 14:22:20 +0200
commita97669c0e67b4068d8491a8993a12aacb717768e (patch)
tree5994b9cd00c19a3654474532b04c8e08ae98ef33
parente94b82a2dbfbe03cde38375dc687b5952cdfa2c3 (diff)
c++: Building basic blocks for a setup
-rw-r--r--README.md1
-rw-r--r--c++/descriptor.h31
-rw-r--r--c++/lattice.h12
-rw-r--r--c++/lbm_unit.h (renamed from src/lbm_unit.h)0
-rw-r--r--src/block.h10
-rw-r--r--src/descriptor.h6
6 files changed, 38 insertions, 22 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a3bc0b2
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# Lattice-Boltzmann-Method library
diff --git a/c++/descriptor.h b/c++/descriptor.h
new file mode 100644
index 0000000..f0f7f28
--- /dev/null
+++ b/c++/descriptor.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#include <forstio/codec/schema.h>
+
+namespace kel {
+namespace lbm {
+namespace schema {
+using namespace saw::schema;
+
+template<typename T, uint64_t D, uint64_t Q>
+struct Descriptor {};
+
+template<typename T, uint64_t D, uint64_t Q, uint64_t SC, uint64_t DC, uint64_t QC>
+using CellType = FixedArray<T,SC+D*DC+Q*QC>;
+
+/**
+ * T... is restricted to Member schemas
+ */
+template<typename... CellT>
+using CellData = Struct<
+ CellT...
+>;
+
+/**
+ * T is an array of CellData
+ */
+template<size_t D, typename T>
+using Lattice = Array<T, D>;
+}
+}
+}
diff --git a/c++/lattice.h b/c++/lattice.h
index eb3b4cc..86c643c 100644
--- a/c++/lattice.h
+++ b/c++/lattice.h
@@ -7,14 +7,14 @@ namespace lbm {
namespace schema {
using namespace saw::schema;
-template<typename T, size_t D>
-using Lattice = Array<T,D>;
+template<typename T, uint16_t D, uint16_t Q>
+using Lattice = Array<FixedArray<T,Q>,D>;
-template<typename T>
-using Lattice2D = Lattice<T,2>;
+template<typename T, uint16_t Q>
+using Lattice2D = Lattice<T,2,Q>;
-template<typename T>
-using Lattice3D = Lattice<T,3>;
+template<typename T, uint16_t Q>
+using Lattice3D = Lattice<T,3,Q>;
}
}
}
diff --git a/src/lbm_unit.h b/c++/lbm_unit.h
index 20c6e70..20c6e70 100644
--- a/src/lbm_unit.h
+++ b/c++/lbm_unit.h
diff --git a/src/block.h b/src/block.h
deleted file mode 100644
index 0d9de22..0000000
--- a/src/block.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#include "descriptor.h"
-
-namespace kel {
-template<typename descriptor>
-class block;
-
-
-}
diff --git a/src/descriptor.h b/src/descriptor.h
deleted file mode 100644
index 4ef41e5..0000000
--- a/src/descriptor.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-
-namespace kel {
-template<uint16_t D, uint16_t Q, typename... T>
-class descriptor {};
-}