From 5a42999f2867113fcbe2e591e29b5e96b6b12457 Mon Sep 17 00:00:00 2001
From: Anna Wellmann <a.wellmann@tu-bs.de>
Date: Mon, 13 Jun 2022 15:47:59 +0000
Subject: [PATCH] Start adding geoBC

---
 src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.cpp | 8 ++++++++
 src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.h   | 3 +++
 src/gpu/VirtualFluids_GPU/Parameter/Parameter.h     | 5 +++++
 3 files changed, 16 insertions(+)

diff --git a/src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.cpp b/src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.cpp
index ee0dd8626..320214481 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.cpp
+++ b/src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.cpp
@@ -89,6 +89,14 @@ void CudaKernelManager::runVelocityBCKernel(SPtr<Parameter> para)
 	}
 }
 
+void CudaKernelManager::runGeoBCKernel(SPtr<Parameter> para)
+{
+    if (para->getParD()->numberOfVeloBCnodes > 0)
+    {
+        // ...
+    }
+}
+
 void CudaKernelManager::calculateMacroscopicValues(SPtr<Parameter> para)
 {
     if (para->getIsADcalculationOn()) {
diff --git a/src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.h b/src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.h
index c25787552..622bdf135 100644
--- a/src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.h
+++ b/src/gpu/VirtualFluids_GPU/GPU/CudaKernelManager.h
@@ -55,6 +55,9 @@ public:
 	//! \brief calls the device function of the velocity boundary condition
     void runVelocityBCKernel(SPtr<Parameter> para);
 
+	//! \brief calls the device function of the geometry boundary condition
+	void runGeoBCKernel(SPtr<Parameter> para);
+
     //! \brief calls the device function that calculates the macroscopic values
     void calculateMacroscopicValues(SPtr<Parameter> para);
 
diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
index 912c1c283..533ab72b0 100644
--- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
+++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h
@@ -84,6 +84,11 @@ struct ParameterStruct{
 	//! \brief number of lattice nodes for the velocity boundary condition
 	uint numberOfVeloBCnodes;
 	//////////////////////////////////////////////////////////////////////////
+	//! \brief stores the geometry boundary condition data
+	QforBoundaryConditions geometryBC;
+	//! \brief number of lattice nodes for the velocity boundary condition
+	uint numberOfgeometryBCnodes;
+	//////////////////////////////////////////////////////////////////////////
 	//! \brief sets the forcing uniform on every fluid node in all three space dimensions 
 	real *forcing;
 
-- 
GitLab