diff --git a/src/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp b/src/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp index 440576fe6a309c569b4809cb4eb18f85e5c228a6..d4f3885127ecd9f8cfe33fd55a88d62fad375ddf 100644 --- a/src/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp +++ b/src/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp @@ -1259,7 +1259,7 @@ void coarseToFine(Parameter* para, int level) - +/* void updateGrid27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, std::vector<std::shared_ptr<PorousMedia>> pm, int level, int max_level, unsigned int t, std::vector < SPtr< Kernel>> kernels) { @@ -2842,7 +2842,7 @@ void updateGrid27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaMa ////////////////////////////////////////////////////////////////////////////////// ////Calculation of cp ////////////////////////////////////////////////////////////////////////////////// - //if (/*(para->getParD(level)->numberOfPointsCpTop > 0)*/ (level == 5) && (t > para->getTStartOut())) + //if ((para->getParD(level)->numberOfPointsCpTop > 0) (level == 5) && (t > para->getTStartOut())) //{ // //////////////////////////////////////////////////////////////////////////////// // //Level 7 @@ -3256,5 +3256,5 @@ void updateGrid27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaMa } } - +*/ diff --git a/src/VirtualFluids_GPU/Calculation/UpdateGrid27.h b/src/VirtualFluids_GPU/Calculation/UpdateGrid27.h index 1cbd11ad65f719d2ee45f2e6ef6cc76b5be0e5e0..5d404e612c9e5ce9211245ac776f517278be4532 100644 --- a/src/VirtualFluids_GPU/Calculation/UpdateGrid27.h +++ b/src/VirtualFluids_GPU/Calculation/UpdateGrid27.h @@ -10,6 +10,32 @@ class Kernel; -extern "C" void updateGrid27(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, std::vector<std::shared_ptr<PorousMedia>> pm, int level, int max_level, unsigned int t, std::vector < SPtr< Kernel>> kernels); +extern "C" void updateGrid27(Parameter* para, + Communicator* comm, + CudaMemoryManager* cudaManager, + std::vector<std::shared_ptr<PorousMedia>>& pm, + int level, + unsigned int t, + std::vector < SPtr< Kernel>>& kernels); + +extern "C" void collision(Parameter* para, std::vector<std::shared_ptr<PorousMedia>>& pm, int level, unsigned int t, std::vector < SPtr< Kernel>>& kernels); + +extern "C" void collisionPorousMedia(Parameter* para, std::vector<std::shared_ptr<PorousMedia>>& pm, int level); + +extern "C" void collisionAdvectionDiffusion(Parameter* para, int level); + +extern "C" void exchangeMultiGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level); + +extern "C" void postCollisionBC(Parameter* para, int level, unsigned int t); + +extern "C" void swapBetweenEvenAndOddTimestep(Parameter* para, int level); + +extern "C" void calcMacroscopicQuantities(Parameter* para, int level); + +extern "C" void preCollisionBC(Parameter* para, CudaMemoryManager* cudaManager, int level, unsigned int t); + +extern "C" void fineToCoarse(Parameter* para, int level); + +extern "C" void coarseToFine(Parameter* para, int level); #endif diff --git a/src/VirtualFluids_GPU/LBM/LB.h b/src/VirtualFluids_GPU/LBM/LB.h index e19395c8abc92ab722fba0ec0bc831fce932ae2a..4ce6b1ff2d97f56d649e4c755a559360e808a111 100644 --- a/src/VirtualFluids_GPU/LBM/LB.h +++ b/src/VirtualFluids_GPU/LBM/LB.h @@ -166,7 +166,7 @@ typedef struct QforBC{ real* qread; real* q27[27]; real* q19[19]; - int kQ; + int kQ=0; int kArray; real *Vx, *Vy, *Vz, *deltaVz, *RhoBC; }QforBoundaryConditions; @@ -175,7 +175,7 @@ typedef struct QforBC{ typedef struct TempforBC{ int* k; real* temp; - int kTemp; + int kTemp=0; }TempforBoundaryConditions; //BCTempVel @@ -184,7 +184,7 @@ typedef struct TempVelforBC{ real* temp; real* tempPulse; real* velo; - int kTemp; + int kTemp=0; }TempVelforBoundaryConditions; //BCTempPress @@ -192,7 +192,7 @@ typedef struct TempPressforBC{ int* k; real* temp; real* velo; - int kTemp; + int kTemp=0; }TempPressforBoundaryConditions; //measurePoints diff --git a/src/VirtualFluids_GPU/LBM/Simulation.cpp b/src/VirtualFluids_GPU/LBM/Simulation.cpp index dd8b0fe5883fac6bd22698aff113a3d0d5b0bf3e..04a36ef726b0079cd229a0515d91d77498d66133 100644 --- a/src/VirtualFluids_GPU/LBM/Simulation.cpp +++ b/src/VirtualFluids_GPU/LBM/Simulation.cpp @@ -434,6 +434,10 @@ void Simulation::run() //////////////////////////////////////////////////////////////////////////////// for(t=para->getTStart();t<=para->getTEnd();t++) { + updateGrid27(para.get(), comm, cudaManager.get(), pm, 0, t, kernels); + + /* + getLastCudaError("before starting a kernel we get an execution failed"); if (para->getMaxLevel()>=1) { @@ -1192,7 +1196,7 @@ void Simulation::run() ////////////////////////////////////////////////////////////////////////////////// ////calculate the new forcing - //if (((t%10) == 0) && (t >= 10)/*((t%para->getTStartOut()) == 0) && (t >= para->getTStartOut())*/) + //if (((t%10) == 0) && (t >= 10)((t%para->getTStartOut()) == 0) && (t >= para->getTStartOut())) //{ // forceCalculator->calcPIDControllerForForce(para); // forceCalculator->printForcing(para); @@ -1950,7 +1954,7 @@ void Simulation::run() } ////////////////////////////////////////////////////////////////////////////////// - + */ //////////////////////////////////////////////////////////////////////////////// diff --git a/src/VirtualFluids_GPU/Parameter/Parameter.h b/src/VirtualFluids_GPU/Parameter/Parameter.h index 0cf62b35d24fe3797f84ec703202d5f7c6e5545f..1768868320f4cee7f7d73cd3416ceb71674ff090 100644 --- a/src/VirtualFluids_GPU/Parameter/Parameter.h +++ b/src/VirtualFluids_GPU/Parameter/Parameter.h @@ -159,7 +159,7 @@ struct ParameterStruct{ //BC's//////////////////// QforBoundaryConditions QWall, Qinflow, Qoutflow, QSlip; - unsigned int kQ, kInflowQ, kOutflowQ, kSlipQ; + unsigned int kQ=0, kInflowQ=0, kOutflowQ=0, kSlipQ=0; unsigned int kQread, kInflowQread, kOutflowQread, kSlipQread; QforBoundaryConditions QpressX0,QpressX1,QpressY0,QpressY1,QpressZ0,QpressZ1; @@ -171,7 +171,7 @@ struct ParameterStruct{ QforBoundaryConditions QOutflowNormalX, QOutflowNormalY, QOutflowNormalZ; QforBoundaryConditions QInlet, QOutlet, QPeriodic; unsigned int kInletQread, kOutletQread; - unsigned int kPressQ, kPressQread; + unsigned int kPressQ=0, kPressQread; //testRoundoffError Distributions27 kDistTestRE; diff --git a/targets/apps/LBM/gridGeneratorTest/gridGeneratorTest.cpp b/targets/apps/LBM/gridGeneratorTest/gridGeneratorTest.cpp index 866770733534061ccf5010f7ceb29c5b5b6cd101..c67827ffebd3a3172750e005fbd4eb8ff1a5af1d 100644 --- a/targets/apps/LBM/gridGeneratorTest/gridGeneratorTest.cpp +++ b/targets/apps/LBM/gridGeneratorTest/gridGeneratorTest.cpp @@ -184,10 +184,10 @@ void multipleLevel(const std::string& configPath) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { real dx = 1.0 / 16.0; - real vx = 0.0125; + real vx = 0.05; real D = 1.0; - real Re = 1140000; + real Re = 11400; para->setOutputPath( "F:/Work/Computations/out/Sphere/" ); para->setOutputPrefix( "Sphere" ); @@ -206,7 +206,7 @@ void multipleLevel(const std::string& configPath) para->setUseWale(false); - para->setMainKernel(kernelMapper->getEnum("CumulantK20Comp")); + para->setMainKernel(kernelMapper->getEnum("CumulantK15Comp")); ////////////////////////////////////////////////////////////////////////// @@ -218,18 +218,18 @@ void multipleLevel(const std::string& configPath) Object* sphere = new Sphere( 0, 0, 0, 0.5*D ); - gridBuilder->addCoarseGrid(-2.0*D, -5.5*D, -5.5*D, - 9.0*D, 5.5*D, 5.5*D, dx); // DrivAer + gridBuilder->addCoarseGrid(-2.0*D, -2.5*D, -2.5*D, + 9.0*D, 2.5*D, 2.5*D, dx); // DrivAer //gridBuilder->setNumberOfLayers(10,8); //gridBuilder->addGrid(SphereSTL, 2); gridBuilder->setNumberOfLayers(4,8); - gridBuilder->addGrid(sphereRef_1_STL, 3); - gridBuilder->addGrid(sphereRef_2_STL, 4); + gridBuilder->addGrid(sphereRef_1_STL, 1); + //gridBuilder->addGrid(sphereRef_2_STL, 4); - gridBuilder->setNumberOfLayers(10,8); - gridBuilder->addGrid(sphere, 5); + //gridBuilder->setNumberOfLayers(10,8); + //gridBuilder->addGrid(sphere, 5);