diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.cpp b/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.cpp index 8ea8b58598274106815e617327ac282b7a629ddc..53c7707b6be07f5115f0585ad896402b453c4ddc 100644 --- a/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.cpp +++ b/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.cpp @@ -165,13 +165,4 @@ void ADKernelManager::printAD(SPtr<CudaMemoryManager> cudaMemoryManager) cudaMemoryManager->cudaCopyConcentrationDeviceToHost(); } -SPtr<ADKernelManager> ADKernelManager::make(SPtr<Parameter> parameter){ - return SPtr<ADKernelManager>(new ADKernelManager(parameter)); -} - ADKernelManager::ADKernelManager(SPtr<Parameter> parameter): para(parameter){} - -ADKernelManager::ADKernelManager(const ADKernelManager&) -{ - -} \ No newline at end of file diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.h b/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.h index 3c781b29781b59cd26eb1d1f720739d2849490b7..d48b2ff0631efe52369712bfceb5168b115f762d 100644 --- a/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.h +++ b/src/gpu/VirtualFluids_GPU/KernelManager/ADKernelManager.h @@ -33,8 +33,8 @@ #ifndef ADVECTION_DIFFUSION_H #define ADVECTION_DIFFUSION_H -#include "PointerDefinitions.h" #include "Core/DataTypes.h" +#include "PointerDefinitions.h" #include "VirtualFluids_GPU_export.h" //! \brief Class forwarding for Parameter, DataWriter and CudaMemoryManager @@ -43,44 +43,36 @@ class CudaMemoryManager; //! \class ADKernelManager //! \brief manage the advection diffusion kernel calls -class VIRTUALFLUIDS_GPU_EXPORT ADKernelManager{ +class VIRTUALFLUIDS_GPU_EXPORT ADKernelManager +{ public: + //! Class constructor + //! \param parameter shared pointer to instance of class Parameter + ADKernelManager(SPtr<Parameter> parameter); + + //! \brief initialize the Advection Diffusion distributions + //! \param para instance of class Parameter + void initAD(); -//! \brief makes an object of ADKernelManager -//! \param para shared pointer to instance of class Parameter -static SPtr<ADKernelManager> make(SPtr<Parameter> parameter); - -//! \brief initialize the Advection Diffusion distributions -//! \param para instance of class Parameter -void initAD(); - -//! \brief set initial concentration values at all nodes -//! \param para instance of class Parameter -//! \param cudaManager instance of class CudaMemoryManager -void setInitialNodeValuesAD(SPtr<CudaMemoryManager> cudaMemoryManager); - -//! \brief calculate the state of the next time step of the Advection Diffusion distributions -//! \param para instance of class Parameter -void runADcollisionKernel(); + //! \brief set initial concentration values at all nodes + //! \param para instance of class Parameter + //! \param cudaManager instance of class CudaMemoryManager + void setInitialNodeValuesAD(SPtr<CudaMemoryManager> cudaMemoryManager); -//! \brief calls the device function of the slip boundary condition for advection diffusion -void runADslipBCKernel(); + //! \brief calculate the state of the next time step of the Advection Diffusion distributions + //! \param para instance of class Parameter + void runADcollisionKernel(); -//! \brief copy the concentration from device to host and writes VTK file with concentration -//! \param para instance of class Parameter -//! \param cudaManager instance of class CudaMemoryManager -void printAD(SPtr<CudaMemoryManager> cudaMemoryManager); + //! \brief calls the device function of the slip boundary condition for advection diffusion + void runADslipBCKernel(); + //! \brief copy the concentration from device to host and writes VTK file with concentration + //! \param para instance of class Parameter + //! \param cudaManager instance of class CudaMemoryManager + void printAD(SPtr<CudaMemoryManager> cudaMemoryManager); private: - //! Class constructor - //! \param parameter shared pointer to instance of class Parameter - ADKernelManager(SPtr<Parameter> parameter); - //! Class copy constructor - //! \param ADKernelManager is a reference to ADKernelManager object - ADKernelManager(const ADKernelManager&); - //! \property para is a shared pointer to an object of Parameter SPtr<Parameter> para; }; diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/BCKernelManager.h b/src/gpu/VirtualFluids_GPU/KernelManager/BCKernelManager.h index 68b9fa5f0de861d4f7437954f1a985a79c8bc913..a519d40cf06b34d4d7ee8f477f6dccd8e77bb049 100644 --- a/src/gpu/VirtualFluids_GPU/KernelManager/BCKernelManager.h +++ b/src/gpu/VirtualFluids_GPU/KernelManager/BCKernelManager.h @@ -26,7 +26,7 @@ // You should have received a copy of the GNU General Public License along // with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>. // -//! \file LBKernelManager.h +//! \file BCKernelManager.h //! \ingroup KernelManager //! \author Martin Schoenherr //======================================================================================= @@ -49,8 +49,8 @@ struct ParameterStruct; using boundaryCondition = std::function<void(ParameterStruct *, QforBoundaryConditions *)>; using boundaryConditionPara = std::function<void(Parameter *, QforBoundaryConditions *, const int level)>; -//! \class LBKernelManager -//! \brief manage the cuda kernel calls +//! \class BCKernelManager +//! \brief manage the cuda kernel calls to boundary conditions class VIRTUALFLUIDS_GPU_EXPORT BCKernelManager { public: @@ -64,10 +64,10 @@ public: //! \brief calls the device function of the geometry boundary condition (post-collision) void runGeoBCKernelPost(const int level) const; - //! \brief calls the device function of the slip boundary condition + //! \brief calls the device function of the slip boundary condition (post-collision) void runSlipBCKernelPost(const int level) const; - //! \brief calls the device function of the no-slip boundary condition + //! \brief calls the device function of the no-slip boundary condition (post-collision) void runNoSlipBCKernelPost(const int level) const; //! \brief calls the device function of the pressure boundary condition (pre-collision) diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.cpp b/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.cpp index 6ed36f4eb6ed3f333093db1276f840dee7c14f0c..1d94c73f5367aca4f9300a753a115c5717fcd991 100644 --- a/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.cpp +++ b/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.cpp @@ -104,27 +104,7 @@ void LBKernelManager::calculateMacroscopicValues(SPtr<Parameter> para) } } +LBKernelManager::LBKernelManager(SPtr<Parameter> parameter): parameter(parameter) +{ +} - - - - - - - - - -// SPtr<LBKernelManager> LBKernelManager::make(SPtr<Parameter> parameter) -// { -// return SPtr<LBKernelManager>(new LBKernelManager(parameter)); -// } - -// LBKernelManager::LBKernelManager(SPtr<Parameter> parameter) -// { -// this->parameter = parameter; -// } - -// LBKernelManager::LBKernelManager(const LBKernelManager&) -// { - -// } diff --git a/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.h b/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.h index 29ccf030601f27b255ef56aeed87f965a28362e4..d023457fe79bec456ce9c53e402bca9c06406df2 100644 --- a/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.h +++ b/src/gpu/VirtualFluids_GPU/KernelManager/LBKernelManager.h @@ -45,10 +45,10 @@ class Parameter; class VIRTUALFLUIDS_GPU_EXPORT LBKernelManager { public: - //! \brief makes an object of LBKernelManager - //! \param para shared pointer to instance of class Parameter - static SPtr<LBKernelManager> make(std::shared_ptr<Parameter> parameter); - + //! Class constructor + //! \param parameter shared pointer to instance of class Parameter + LBKernelManager(SPtr<Parameter> parameter); + //! \brief calls the device function of the lattice Boltzmann kernel void runLBMKernel(SPtr<Parameter> para); @@ -56,12 +56,6 @@ public: void calculateMacroscopicValues(SPtr<Parameter> para); private: - //! Class constructor - //! \param parameter shared pointer to instance of class Parameter - LBKernelManager(SPtr<Parameter> parameter); - //! Class copy constructor - //! \param LBKernelManager is a reference to LBKernelManager object - LBKernelManager(const LBKernelManager&); //! \property para is a shared pointer to an object of Parameter SPtr<Parameter> parameter; diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp index f688e933d7401e0b774b56a99bd71c3a4b1a5c8b..d9d8f0e5b9a28f516580c97b0a94d0e1bc769cda 100644 --- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp +++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.cpp @@ -60,9 +60,9 @@ void Simulation::init(SPtr<Parameter> para, SPtr<GridProvider> gridProvider, SPt this->gridProvider = gridProvider; this->cudaMemoryManager = cudaMemoryManager; this->para = para; - this->cudaKernelManager = LBKernelManager::make(para); - this->adKernelManager = ADKernelManager::make(para); - this->bcKernelManager = std::make_shared<BCKernelManager>(para, bcFactory); + this->lbKernelManager = std::make_shared<LBKernelManager>(para); + this->adKernelManager = std::make_shared<ADKernelManager>(para); + this->bcKernelManager = std::make_shared<BCKernelManager>(para, bcFactory); para->initParameter(); @@ -112,7 +112,7 @@ void Simulation::init(SPtr<Parameter> para, SPtr<GridProvider> gridProvider, SPt ////////////////////////////////////////////////////////////////////////// // print initialized grid output << "Print files Init..."; - dataWriter->writeInit(para, cudaMemoryManager, cudaKernelManager, adKernelManager.get()); + dataWriter->writeInit(para, cudaMemoryManager, lbKernelManager, adKernelManager.get()); output << "done.\n"; ////////////////////////////////////////////////////////////////////////// @@ -143,7 +143,7 @@ void Simulation::run() //////////////////////////////////////////////////////////////////////////////// // LBM Kernel - cudaKernelManager->runLBMKernel(para); + lbKernelManager->runLBMKernel(para); //////////////////////////////////////////////////////////////////////////////// // velocity boundary condition @@ -171,7 +171,7 @@ void Simulation::run() // IO if (para->getPrintFiles()) { output << "File IO for t=" << timestep << "..."; - dataWriter->writeTimestep(para, cudaMemoryManager, cudaKernelManager, adKernelManager.get(), timestep); + dataWriter->writeTimestep(para, cudaMemoryManager, lbKernelManager, adKernelManager.get(), timestep); output << "done.\n"; } timer->start(); diff --git a/src/gpu/VirtualFluids_GPU/LBM/Simulation.h b/src/gpu/VirtualFluids_GPU/LBM/Simulation.h index 1130b5da0afb543e77e559ebd60260844cd5dd84..ca61f982875d8e4c8d4c50c2dd3870b19d266fd1 100644 --- a/src/gpu/VirtualFluids_GPU/LBM/Simulation.h +++ b/src/gpu/VirtualFluids_GPU/LBM/Simulation.h @@ -74,10 +74,10 @@ protected: //! \property cudaMemoryManager is a shared pointer to an object of CudaMemoryManager SPtr<CudaMemoryManager> cudaMemoryManager; //! \property cudaKernelManager is a shared pointer to an object of LBKernelManager - SPtr<LBKernelManager> cudaKernelManager; + SPtr<LBKernelManager> lbKernelManager; //! \property adKernelManager is a shared pointer to an object of ADKernelManager - std::shared_ptr<ADKernelManager> adKernelManager; + SPtr<ADKernelManager> adKernelManager; //! \property bcKernelManager is a shared pointer to an object of BCKernelManager - std::shared_ptr<BCKernelManager> bcKernelManager; + SPtr<BCKernelManager> bcKernelManager; }; #endif