summaryrefslogtreecommitdiff
path: root/lib/core/c++/grid.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/core/c++/grid.hpp')
-rw-r--r--lib/core/c++/grid.hpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/core/c++/grid.hpp b/lib/core/c++/grid.hpp
new file mode 100644
index 0000000..be86e18
--- /dev/null
+++ b/lib/core/c++/grid.hpp
@@ -0,0 +1,34 @@
+#pragma once
+
+#include "common.hpp"
+
+namespace kel {
+namespace lbm {
+
+/**
+ * I'm mixing up the geometry values regarding inflow etc. And a bit of logic
+ */
+template<typename InfoSchema>
+class domain_registry final {
+private:
+ saw::data<sch::Array<InfoSchema>> infos_;
+public:
+ template<typename T>
+ saw::data<InfoSchema> get_template_id() {
+ static saw::data<InfoSchema> id{std::numeric_limits<typename saw::native_data_type<InfoSchema>::type>::max()};
+
+ if( id == std::numeric_limits<typename saw::native_data_type<InfoSchema>::type>::max() ){
+ auto err_or_id = search_or_register_id(T::name);
+ if(err_or_id.is_error()){
+ // Unsure about recovery from this
+ exit(-1);
+ }
+ }
+ }
+};
+
+void clean_grid(saw::data<Schema>& info_field){
+
+}
+}
+}