diff --git a/src/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp b/src/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp index aadfa18c658dcebe9e4c67a0c33995a0ba2cfca4..eee5c3c714e2fc1740612609636e8894b38ad5dc 100644 --- a/src/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp +++ b/src/VirtualFluids_GPU/Calculation/UpdateGrid27.cpp @@ -69,236 +69,6 @@ void collision(Parameter* para, std::vector<std::shared_ptr<PorousMedia>>& pm, i if (para->getDiffOn()) collisionAdvectionDiffusion(para, level); - - { - if (para->getDiffMod() == 7) - { - //output << " Diff Mod 7\n"; - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // incomp - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion kernel - //KernelADincomp7(para->getParD(level)->numberofthreads, para->getParD(level)->diffusivity, para->getParD(level)->geoSP, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->size_Mat_SP, - // para->getParD(level)->evenOrOdd); - //getLastCudaError("KernelADincomp7 execution failed"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion boundary condition - QNoSlipADincompDev7( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->Temp.temp, - para->getParD(level)->diffusivity, para->getParD(level)->Temp.k, para->getParD(level)->QGeom.q27[0], - para->getParD(level)->Temp.kTemp, para->getParD(level)->Temp.kTemp, para->getParD(level)->omega, - para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - getLastCudaError("QNoSlipADincompDev7 execution failed"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion + velocity boundary condition - if (t<15580)//(t>500000 && t<515580)//(t>300000 && t<315580) - { - QADVeloIncompDev7(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->TempVel.tempPulse, - para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempVel.k, - para->getParD(level)->Qinflow.q27[0], para->getParD(level)->TempVel.kTemp, para->getParD(level)->TempVel.kTemp, - para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - getLastCudaError("QADVeloIncompDev7 execution failed"); - } - else - { - QADVeloIncompDev7(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->TempVel.temp, - para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempVel.k, - para->getParD(level)->Qinflow.q27[0], para->getParD(level)->TempVel.kTemp, para->getParD(level)->TempVel.kTemp, - para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - getLastCudaError("QADVeloIncompDev7 execution failed"); - } - //QADVeloIncompDev7( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->TempVel.tempPulse, - // para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempVel.k, - // para->getParD(level)->Qinflow.q27[0], para->getParD(level)->TempVel.kTemp, para->getParD(level)->TempVel.kTemp, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - // para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QADVeloIncompDev7 execution failed"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion + velocity boundary condition - QADPressIncompDev7( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->TempPress.temp, - para->getParD(level)->TempPress.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempPress.k, - para->getParD(level)->QPress.q27[0], para->getParD(level)->TempPress.kTemp, para->getParD(level)->TempPress.kTemp, - para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - getLastCudaError("QADPressIncompDev7 execution failed"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //// comp - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////advection diffusion kernel - //KernelThS7( para->getParD(level)->numberofthreads, para->getParD(level)->diffusivity, para->getParD(level)->geoSP, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->size_Mat_SP, - // para->getParD(level)->evenOrOdd); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////advection diffusion boundary condition - //QADDev7( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->Temp.temp, - // para->getParD(level)->diffusivity, para->getParD(level)->Temp.k, para->getParD(level)->QGeom.q27[0], - // para->getParD(level)->Temp.kTemp, para->getParD(level)->Temp.kTemp, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QADDev27 execution failed"); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////advection diffusion + velocity boundary condition - //QADVelDev7( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->TempVel.temp, - // para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempVel.k, - // para->getParD(level)->Qinflow.q27[0], para->getParD(level)->TempVel.kTemp, para->getParD(level)->TempVel.kTemp, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - // para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QADVelDev27 execution failed"); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////advection diffusion + velocity boundary condition - //QADPressDev7( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->TempPress.temp, - // para->getParD(level)->TempPress.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempPress.k, - // para->getParD(level)->QPress.q27[0], para->getParD(level)->TempPress.kTemp, para->getParD(level)->TempPress.kTemp, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - // para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QADPressDev27 execution failed"); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - else if (para->getDiffMod() == 27) - { - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // incomp - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion kernel - // KernelADincomp27( para->getParD(level)->numberofthreads, para->getParD(level)->diffusivity, para->getParD(level)->geoSP, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->size_Mat_SP, - // para->getParD(level)->evenOrOdd); - //getLastCudaError("KernelADincomp27 execution failed"); - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // //advection diffusion boundary condition - // QNoSlipADincompDev27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->Temp.temp, - // para->getParD(level)->diffusivity, para->getParD(level)->Temp.k, para->getParD(level)->QGeom.q27[0], - // para->getParD(level)->Temp.kTemp, para->getParD(level)->Temp.kTemp, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - // getLastCudaError("QNoSlipADincompDev27 execution failed"); - // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // //advection diffusion + velocity boundary condition - //if (t>500000 && t<515580)//(t>300000 && t<315580) - //{ - //QADVeloIncompDev27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->TempVel.tempPulse, - // para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempVel.k, - // para->getParD(level)->Qinflow.q27[0], para->getParD(level)->TempVel.kTemp, para->getParD(level)->TempVel.kTemp, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - // para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QADVeloIncompDev27 execution failed"); - //} - //else - //{ - // QADVeloIncompDev27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->TempVel.temp, - // para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempVel.k, - // para->getParD(level)->Qinflow.q27[0], para->getParD(level)->TempVel.kTemp, para->getParD(level)->TempVel.kTemp, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - // para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - // getLastCudaError("QADVeloIncompDev27 execution failed"); - //} - // // QADVeloIncompDev27( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // //para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->TempVel.temp, - // //para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempVel.k, - // //para->getParD(level)->Qinflow.q27[0], para->getParD(level)->TempVel.kTemp, para->getParD(level)->TempVel.kTemp, - // //para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - // //para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - // // getLastCudaError("QADVeloIncompDev27 execution failed"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion + pressure boundary condition - // QADPressIncompDev27( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - //para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->TempPress.temp, - //para->getParD(level)->TempPress.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempPress.k, - //para->getParD(level)->QPress.q27[0], para->getParD(level)->TempPress.kTemp, para->getParD(level)->TempPress.kTemp, - //para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - //para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - // getLastCudaError("QADPressIncompDev27 execution failed"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //// comp - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion kernel - //KernelThS27(para->getParD(level)->numberofthreads, - // para->getParD(level)->diffusivity, - // para->getParD(level)->geoSP, - // para->getParD(level)->neighborX_SP, - // para->getParD(level)->neighborY_SP, - // para->getParD(level)->neighborZ_SP, - // para->getParD(level)->d0SP.f[0], - // para->getParD(level)->d27.f[0], - // para->getParD(level)->size_Mat_SP, - // para->getParD(level)->evenOrOdd); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion boundary condition - QADBBDev27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->Temp.temp, - para->getParD(level)->diffusivity, para->getParD(level)->Temp.k, para->getParD(level)->QGeom.q27[0], - para->getParD(level)->Temp.kTemp, para->getParD(level)->Temp.kTemp, para->getParD(level)->omega, - para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - getLastCudaError("QADBBDev27 execution failed"); - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //Street Manhattan - never use again, please - QADDirichletDev27( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->TempVel.tempPulse, - para->getParD(level)->diffusivity, para->getParD(level)->concIndex, para->getParD(level)->QGeom.q27[0], - para->getParD(level)->numberOfPointsConc, para->getParD(level)->numberOfPointsConc, para->getParD(level)->omega, - para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - getLastCudaError("QADDirichletDev27 execution failed"); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////advection diffusion + velocity boundary condition - //if (t<1000)//(t>100000 && t<103895)//(t>1600000 && t<1662317)//(t>500000 && t<515580)//(t<1000)//(t<15580)//(t>400000 && t<415580)// - //{ - // QADVelDev27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->TempVel.tempPulse, - // para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->Qinflow.k, - // para->getParD(level)->Qinflow.q27[0], para->getParD(level)->kInflowQ, para->getParD(level)->kInflowQ, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - // para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - // getLastCudaError("QADVelDev27 execution failed"); - //} - //else - //{ - // QADVelDev27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->TempVel.temp, - // para->getParD(level)->TempVel.velo, para->getParD(level)->diffusivity, para->getParD(level)->Qinflow.k, - // para->getParD(level)->Qinflow.q27[0], para->getParD(level)->kInflowQ, para->getParD(level)->kInflowQ, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - // para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - // getLastCudaError("QADVelDev27 execution failed"); - //} - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - ////advection diffusion + velocity boundary condition - ////QADPressDev27( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - //// para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->TempPress.temp, - //// para->getParD(level)->TempPress.velo, para->getParD(level)->diffusivity, para->getParD(level)->TempPress.k, - //// para->getParD(level)->QPress.q27[0], para->getParD(level)->TempPress.kTemp, para->getParD(level)->TempPress.kTemp, - //// para->getParD(level)->omega, para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, - //// para->getParD(level)->neighborZ_SP, para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - ////getLastCudaError("QADPressDev27 execution failed"); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - } - } } void collisionPorousMedia(Parameter* para, std::vector<std::shared_ptr<PorousMedia>>& pm, int level) @@ -328,11 +98,9 @@ void collisionAdvectionDiffusion(Parameter* para, int level) { if (para->getDiffMod() == 7) { - //output << " Diff Mod 7\n"; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // incomp + // incompressible //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion kernel //KernelADincomp7(para->getParD(level)->numberofthreads, para->getParD(level)->diffusivity, para->getParD(level)->geoSP, // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, // para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->size_Mat_SP, @@ -340,9 +108,8 @@ void collisionAdvectionDiffusion(Parameter* para, int level) //getLastCudaError("KernelADincomp7 execution failed"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // comp + // compressible //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion kernel //KernelThS7( para->getParD(level)->numberofthreads, para->getParD(level)->diffusivity, para->getParD(level)->geoSP, // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, // para->getParD(level)->d0SP.f[0], para->getParD(level)->d7.f[0], para->getParD(level)->size_Mat_SP, @@ -352,19 +119,17 @@ void collisionAdvectionDiffusion(Parameter* para, int level) else if (para->getDiffMod() == 27) { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // incomp + // incompressible //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion kernel // KernelADincomp27( para->getParD(level)->numberofthreads, para->getParD(level)->diffusivity, para->getParD(level)->geoSP, // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, // para->getParD(level)->d0SP.f[0], para->getParD(level)->d27.f[0], para->getParD(level)->size_Mat_SP, // para->getParD(level)->evenOrOdd); //getLastCudaError("KernelADincomp27 execution failed"); - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //// comp //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //advection diffusion kernel + // compressible + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //KernelThS27(para->getParD(level)->numberofthreads, // para->getParD(level)->diffusivity, // para->getParD(level)->geoSP, @@ -375,7 +140,8 @@ void collisionAdvectionDiffusion(Parameter* para, int level) // para->getParD(level)->d27.f[0], // para->getParD(level)->size_Mat_SP, // para->getParD(level)->evenOrOdd); - } + //getLastCudaError("KernelThS27 execution failed"); + } } void exchangeMultiGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cudaManager, int level) @@ -384,18 +150,12 @@ void exchangeMultiGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cu { // St. Lenz: exchange for post-collision data and pre-collision data are identical! - ////1D domain decomposition - //exchangePostCollDataGPU27(para, comm, level); + ////////////////////////////////////////////////////////////////////////// //3D domain decomposition - //printf("start exchange Post X (level: %d, myID: %d) \n", level, para->getMyID()); exchangePostCollDataXGPU27(para, comm, cudaManager, level); - //printf("end exchange Post X (level: %d, myID: %d) \n", level, para->getMyID()); - //printf("start exchange Post Y (level: %d, myID: %d) \n", level, para->getMyID()); exchangePostCollDataYGPU27(para, comm, cudaManager, level); - //printf("end exchange Post Y (level: %d, myID: %d) \n", level, para->getMyID()); - //printf("start exchange Post Z (level: %d, myID: %d) \n", level, para->getMyID()); exchangePostCollDataZGPU27(para, comm, cudaManager, level); - //printf("end exchange Post Z (level: %d, myID: %d) \n", level, para->getMyID()); + ////////////////////////////////////////////////////////////////////////// //3D domain decomposition convection diffusion if (para->getDiffOn()==true) @@ -404,6 +164,14 @@ void exchangeMultiGPU(Parameter* para, Communicator* comm, CudaMemoryManager* cu exchangePostCollDataADYGPU27(para, comm, cudaManager, level); exchangePostCollDataADZGPU27(para, comm, cudaManager, level); } + + ////////////////////////////////////////////////////////////////////////// + // D E P R E C A T E D + ////////////////////////////////////////////////////////////////////////// + + ////////////////////////////////////////////////////////////////////////// + //1D domain decomposition + //exchangePostCollDataGPU27(para, comm, level); } } @@ -852,54 +620,138 @@ void swapBetweenEvenAndOddTimestep(Parameter* para, int level) void preCollisionBC(Parameter* para, int level) { - //////////////////////////////////////////////////////////////////////////////// - //QPressDevNEQ27( para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, - // para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QPressDev27 execution failed"); - //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// + // I N F L O W + ////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////////////// - ////test for drag crisis - //if (para->getParD(level)->QGeom.kQ > 0) - //{ - // QDevCompHighNu27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->QGeom.k, para->getParD(level)->QGeom.q27[0], - // para->getParD(level)->QGeom.kQ, para->getParD(level)->QGeom.kQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - // getLastCudaError("QDevComp27 (Geom) execution failed"); - //} - ////////////////////////////////////////////////////////////////////////////////// + if (para->getParD(level)->kInflowQ > 0) + { + //if ( myid == 0) + //{ + // VelSchlaffer27(para->getParD(level)->numberofthreads, t, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qinflow.Vz, + // para->getParD(level)->Qinflow.deltaVz, para->getParD(level)->Qinflow.k, + // para->getParD(level)->Qinflow.kN, para->getParD(level)->kInflowQ, + // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, + // para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + // getLastCudaError("VelSchlaffer27 execution failed"); + //} + ////////////////////////////////////////////////////////////////////////////// + // high viscosity incompressible + //QVelDevIncompHighNu27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, + // para->getParD(level)->Qinflow.Vx, para->getParD(level)->Qinflow.Vy, para->getParD(level)->Qinflow.Vz, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qinflow.k, para->getParD(level)->Qinflow.q27[0], + // para->getParD(level)->kInflowQ, para->getParD(level)->kInflowQ, para->getParD(level)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QVelDevComp27 execution failed"); + ////////////////////////////////////////////////////////////////////////////// + // high viscosity compressible + //QVelDevCompHighNu27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, + // para->getParD(level)->Qinflow.Vx, para->getParD(level)->Qinflow.Vy, para->getParD(level)->Qinflow.Vz, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qinflow.k, para->getParD(level)->Qinflow.q27[0], + // para->getParD(level)->kInflowQ, para->getParD(level)->kInflowQ, para->getParD(level)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QVelDevComp27 execution failed"); + } - ////////////////////////////////////////////////////////////////////////////////// - ////press EQ comp - if (para->getParD(level)->QPress.kQ > 0) - { - QPressNoRhoDev27( para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, - para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, - para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(level)->omega, - para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - getLastCudaError("QPressNoRhoDev27 execution failed"); - - //QPressDevEQZ27(para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, - // para->getParD(level)->QPress.kN, para->getParD(level)->kDistTestRE.f[0], - // para->getParD(level)->QPress.kQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(0)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QPressDevEQZ27 execution failed"); - - //QInflowScaleByPressDev27( para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, - // para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(0)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(0)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QInflowScaleByPressDev27 execution failed"); - } + ////////////////////////////////////////////////////////////////////////// + // G E O M E T R Y + ////////////////////////////////////////////////////////////////////////// + + if (para->getParD(level)->QGeom.kQ > 0) + { + //////////////////////////////////////////////////////////////////////////////// + // high viscosity incompressible + //QDevIncompHighNu27( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->QGeom.k, para->getParD(level)->QGeom.q27[0], + // para->getParD(level)->QGeom.kQ, para->getParD(level)->QGeom.kQ, para->getParD(level)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QDevComp27 (Geom) execution failed"); + ////////////////////////////////////////////////////////////////////////////////// + // high viscosity compressible + //QDevCompHighNu27( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->QGeom.k, para->getParD(level)->QGeom.q27[0], + // para->getParD(level)->QGeom.kQ, para->getParD(level)->QGeom.kQ, para->getParD(level)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QDevComp27 (Geom) execution failed"); + } + + ////////////////////////////////////////////////////////////////////////// + // P R E S S U R E + ////////////////////////////////////////////////////////////////////////// + + if (para->getParD(level)->kPressQ > 0) + { + QPressNoRhoDev27(para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, + para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, + para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(level)->omega, + para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + getLastCudaError("QPressNoRhoDev27 execution failed"); + + //QPressDevEQZ27(para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, + // para->getParD(level)->QPress.kN, para->getParD(level)->kDistTestRE.f[0], + // para->getParD(level)->QPress.kQ, para->getParD(level)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(0)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QPressDevEQZ27 execution failed"); + + //QInflowScaleByPressDev27( para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, + // para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(0)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(0)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QInflowScaleByPressDev27 execution failed"); + + //////////////////////////////////////////////////////////////////////////////// + //press NEQ incompressible + //QPressDevIncompNEQ27(para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, + // para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(level)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QPressDevIncompNEQ27 execution failed"); + ////////////////////////////////////////////////////////////////////////////////// + //press NEQ compressible + //QPressDevNEQ27( para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, + // para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(level)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QPressDevNEQ27 execution failed"); + + } + + ////////////////////////////////////////////////////////////////////////// + // O U T F L O W + ////////////////////////////////////////////////////////////////////////// + + if (para->getParD(level)->kOutflowQ > 0) + { + //QPressNoRhoDev27( para->getParD(level)->numberofthreads, para->getParD(level)->Qoutflow.RhoBC, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qoutflow.k, + // para->getParD(level)->Qoutflow.kN, para->getParD(level)->Qoutflow.kQ, para->getParD(level)->omega, + // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("QPressNoRhoDev27 execution failed"); + + //if ( myid == numprocs - 1) + //PressSchlaffer27( para->getParD(level)->numberofthreads, para->getParD(level)->Qoutflow.RhoBC, + // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qoutflow.Vx, + // para->getParD(level)->Qoutflow.Vy, para->getParD(level)->Qoutflow.Vz, + // para->getParD(level)->Qoutflow.deltaVz, para->getParD(level)->Qoutflow.k, + // para->getParD(level)->Qoutflow.kN, para->getParD(level)->kOutflowQ, + // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, + // para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, + // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); + //getLastCudaError("PressSchlaffer27 execution failed"); + } ////////////////////////////////////////////////////////////////////////////////// ////only for a round off error test @@ -907,85 +759,6 @@ void preCollisionBC(Parameter* para, int level) //printRE(para, t); ////////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////////////////////////////// - //QPressNoRhoDev27( para->getParD(level)->numberofthreads, para->getParD(level)->Qoutflow.RhoBC, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qoutflow.k, - // para->getParD(level)->Qoutflow.kN, para->getParD(level)->Qoutflow.kQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QPressNoRhoDev27 execution failed"); - ////////////////////////////////////////////////////////////////////////////////// - ////press NEQ incomp - //QPressDevIncompNEQ27(para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, - // para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QPressDevIncompNEQ27 execution failed"); - ////////////////////////////////////////////////////////////////////////////////// - //press NEQ comp - //QPressDevNEQ27( para->getParD(level)->numberofthreads, para->getParD(level)->QPress.RhoBC, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->QPress.k, - // para->getParD(level)->QPress.kN, para->getParD(level)->QPress.kQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QPressDevNEQ27 execution failed"); - //////////////////////////////////////////////////////////////////////////////// - //if ( myid == numprocs - 1) - //PressSchlaffer27( para->getParD(level)->numberofthreads, para->getParD(level)->Qoutflow.RhoBC, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qoutflow.Vx, - // para->getParD(level)->Qoutflow.Vy, para->getParD(level)->Qoutflow.Vz, - // para->getParD(level)->Qoutflow.deltaVz, para->getParD(level)->Qoutflow.k, - // para->getParD(level)->Qoutflow.kN, para->getParD(level)->kOutflowQ, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, - // para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("PressSchlaffer27 execution failed"); - //////////////////////////////////////////////////////////////////////////////// - //if ( myid == 0) - //{ - // VelSchlaffer27(para->getParD(level)->numberofthreads, t, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qinflow.Vz, - // para->getParD(level)->Qinflow.deltaVz, para->getParD(level)->Qinflow.k, - // para->getParD(level)->Qinflow.kN, para->getParD(level)->kInflowQ, - // para->getParD(level)->omega, para->getParD(level)->neighborX_SP, - // para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - // getLastCudaError("VelSchlaffer27 execution failed"); - //} - //////////////////////////////////////////////////////////////////////////////// - ////High noon incomp - //QVelDevIncompHighNu27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->Qinflow.Vx, para->getParD(level)->Qinflow.Vy, para->getParD(level)->Qinflow.Vz, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qinflow.k, para->getParD(level)->Qinflow.q27[0], - // para->getParD(level)->kInflowQ, para->getParD(level)->kInflowQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QVelDevComp27 execution failed"); - - //QDevIncompHighNu27( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->QGeom.k, para->getParD(level)->QGeom.q27[0], - // para->getParD(level)->QGeom.kQ, para->getParD(level)->QGeom.kQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QDevComp27 (Geom) execution failed"); - ////////////////////////////////////////////////////////////////////////////////// - ////High noon comp - //QVelDevCompHighNu27(para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->Qinflow.Vx, para->getParD(level)->Qinflow.Vy, para->getParD(level)->Qinflow.Vz, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->Qinflow.k, para->getParD(level)->Qinflow.q27[0], - // para->getParD(level)->kInflowQ, para->getParD(level)->kInflowQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QVelDevComp27 execution failed"); - - //QDevCompHighNu27( para->getParD(level)->numberofthreads, para->getParD(level)->nx, para->getParD(level)->ny, - // para->getParD(level)->d0SP.f[0], para->getParD(level)->QGeom.k, para->getParD(level)->QGeom.q27[0], - // para->getParD(level)->QGeom.kQ, para->getParD(level)->QGeom.kQ, para->getParD(level)->omega, - // para->getParD(level)->neighborX_SP, para->getParD(level)->neighborY_SP, para->getParD(level)->neighborZ_SP, - // para->getParD(level)->size_Mat_SP, para->getParD(level)->evenOrOdd); - //getLastCudaError("QDevComp27 (Geom) execution failed"); - ////////////////////////////////////////////////////////////////////////////////// }