From 8566d2062316e61bb6f31ea51fd3f3886273dd49 Mon Sep 17 00:00:00 2001
From: Sven Marcus <s.marcus@outlook.de>
Date: Tue, 27 Oct 2020 11:51:51 +0100
Subject: [PATCH] Adds State class to geometry Python module

---
 Python/poiseuille/simulation.py                        |  6 +++---
 src/cpu/pythonbindings/src/submodules/geometry.cpp     | 10 ++++++++++
 .../src/submodules/simulationparameters.cpp            |  1 +
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/Python/poiseuille/simulation.py b/Python/poiseuille/simulation.py
index b8d3b2405..035fb4303 100644
--- a/Python/poiseuille/simulation.py
+++ b/Python/poiseuille/simulation.py
@@ -1,6 +1,6 @@
 from pyfluids import Simulation
 from pyfluids.boundaryconditions import NoSlipBCAdapter, NoSlipBCAlgorithm
-from pyfluids.geometry import GbCuboid3D
+from pyfluids.geometry import GbCuboid3D, State
 from pyfluids.kernel import LBMKernel, KernelType
 from pyfluids.parameters import SimulationParameters, GridParameters, PhysicalParameters
 from pyfluids.writer import Writer, WriterType
@@ -56,7 +56,7 @@ def run_simulation(physical_params=physical_params, grid_params=grid_params, sim
                    g_max_x2 + block_length,
                    g_min_x3),
         no_slip_adapter,
-        1, "/geo/addWallZMin")
+        State.SOLID, "/geo/addWallZMin")
 
     simulation.add_object(
         GbCuboid3D(g_min_x1 - block_length,
@@ -66,7 +66,7 @@ def run_simulation(physical_params=physical_params, grid_params=grid_params, sim
                    g_max_x2 + block_length,
                    g_max_x3 + block_length),
         no_slip_adapter,
-        1, "/geo/addWallZMax")
+        State.SOLID, "/geo/addWallZMax")
 
     simulation.run_simulation()
 
diff --git a/src/cpu/pythonbindings/src/submodules/geometry.cpp b/src/cpu/pythonbindings/src/submodules/geometry.cpp
index 9f03df1c4..dc6174b10 100644
--- a/src/cpu/pythonbindings/src/submodules/geometry.cpp
+++ b/src/cpu/pythonbindings/src/submodules/geometry.cpp
@@ -3,6 +3,7 @@
 #include <geometry3d/GbObject3D.h>
 #include <geometry3d/GbCuboid3D.h>
 #include <geometry3d/GbLine3D.h>
+#include <Interactors/Interactor3D.h>
 
 
 namespace py = pybind11;
@@ -63,4 +64,13 @@ void makeGeometryModule(py::module &parentModule)
                        << "point2: " << GbPoint3D_repr_(instance.getPoint2()) << ">";
                 return stream.str();
             });
+
+
+    py::class_<Interactor3D, std::shared_ptr<Interactor3D>>(geometry, "State")
+            .def_readonly_static("SOLID", &Interactor3D::SOLID)
+            .def_readonly_static("INVERSESOLID", &Interactor3D::INVERSESOLID)
+            .def_readonly_static("TIMEDEPENDENT", &Interactor3D::TIMEDEPENDENT)
+            .def_readonly_static("FLUID", &Interactor3D::FLUID)
+            .def_readonly_static("MOVEABLE", &Interactor3D::MOVEABLE)
+            .def_readonly_static("CHANGENOTNECESSARY", &Interactor3D::CHANGENOTNECESSARY);
 }
\ No newline at end of file
diff --git a/src/cpu/pythonbindings/src/submodules/simulationparameters.cpp b/src/cpu/pythonbindings/src/submodules/simulationparameters.cpp
index ffb93d01f..df5589246 100644
--- a/src/cpu/pythonbindings/src/submodules/simulationparameters.cpp
+++ b/src/cpu/pythonbindings/src/submodules/simulationparameters.cpp
@@ -30,4 +30,5 @@ void makeParametersModule(py::module &parentModule)
             .def_readwrite("number_of_timesteps", &SimulationParameters::numberOfTimeSteps)
             .def_readwrite("timestep_log_interval", &SimulationParameters::timeStepLogInterval)
             .def_readwrite("number_of_threads", &SimulationParameters::numberOfThreads);
+
 }
\ No newline at end of file
-- 
GitLab