diff --git a/examples/hamilton-jacobi-parallel/tnlParallelEikonalSolver_impl.h b/examples/hamilton-jacobi-parallel/tnlParallelEikonalSolver_impl.h index 276c02da5a05f6315d5c01e800ddfa11ba89ebef..049f712957a1c0c6ab4feebe05f0ddaf3c47a177 100644 --- a/examples/hamilton-jacobi-parallel/tnlParallelEikonalSolver_impl.h +++ b/examples/hamilton-jacobi-parallel/tnlParallelEikonalSolver_impl.h @@ -1474,7 +1474,7 @@ void /*tnlParallelEikonalSolver<SchemeHost, SchemeDevice, Device, double, int>:: //printf("hurewrwr %f \n", u[l]); if(u[0] * u[l] <= 0.0) { - printf("contains %d \n",i); + //printf("contains %d \n",i); atomicMax( &containsCurve, 1); } @@ -1508,97 +1508,87 @@ void /*tnlParallelEikonalSolver<SchemeHost, SchemeDevice, Device, double, int>:: int i = blockIdx.y * gridDim.x + blockIdx.x; int l = threadIdx.y * blockDim.x + threadIdx.x; - if(i+l == 0) - printf("a"); if(caller->getSubgridValueCUDA(i) != INT_MAX) { - double a; - caller->getSubgridCUDA(i,caller, &a); - u[l] = a; + caller->getSubgridCUDA(i,caller, &u[l]); int bound = caller->getBoundaryConditionCUDA(i); - if(l == 0) + //if(l == 0) //printf("i = %d, bound = %d\n",i,caller->getSubgridValueCUDA(i)); if(bound & 1) { caller->runSubgridCUDA(1,u,i); - //this->calculationsCount[i]++; + __syncthreads(); + caller->insertSubgridCUDA(u[l],i); + __syncthreads(); + caller->getSubgridCUDA(i,caller, &u[l]); + __syncthreads(); } - __syncthreads(); - caller->insertSubgridCUDA(u[l],i); - __syncthreads(); - caller->getSubgridCUDA(i,caller, &a); - u[l] = a; - __syncthreads(); if(bound & 2) { caller->runSubgridCUDA(2,u,i); - //this->calculationsCount[i]++; + __syncthreads(); + caller->insertSubgridCUDA(u[l],i); + __syncthreads(); + caller->getSubgridCUDA(i,caller, &u[l]); + __syncthreads(); } - __syncthreads(); - caller->insertSubgridCUDA(u[l],i); - __syncthreads(); - caller->getSubgridCUDA(i,caller, &a); - u[l] = a; - __syncthreads(); if(bound & 4) { caller->runSubgridCUDA(4,u,i); - //this->calculationsCount[i]++; + __syncthreads(); + caller->insertSubgridCUDA(u[l],i); + __syncthreads(); + caller->getSubgridCUDA(i,caller, &u[l]); + __syncthreads(); } - __syncthreads(); - caller->insertSubgridCUDA(u[l],i); - __syncthreads(); - caller->getSubgridCUDA(i,caller, &a); - u[l] = a; - __syncthreads(); if(bound & 8) { caller->runSubgridCUDA(8,u,i); - //this->calculationsCount[i]++; + __syncthreads(); + caller->insertSubgridCUDA(u[l],i); + __syncthreads(); + caller->getSubgridCUDA(i,caller, &u[l]); + __syncthreads(); } - __syncthreads(); - caller->insertSubgridCUDA(u[l],i); - __syncthreads(); - caller->getSubgridCUDA(i,caller, &a); - u[l] = a; - __syncthreads(); + + if( ((bound & 2) )) { caller->runSubgridCUDA(3,u,i); + __syncthreads(); + caller->insertSubgridCUDA(u[l],i); + __syncthreads(); + caller->getSubgridCUDA(i,caller, &u[l]); + __syncthreads(); } - __syncthreads(); - caller->insertSubgridCUDA(u[l],i); - __syncthreads(); - caller->getSubgridCUDA(i,caller, &a); - u[l] = a; - __syncthreads(); if( ((bound & 4) )) { caller->runSubgridCUDA(5,u,i); + __syncthreads(); + caller->insertSubgridCUDA(u[l],i); + __syncthreads(); + caller->getSubgridCUDA(i,caller, &u[l]); + __syncthreads(); } - __syncthreads(); - caller->insertSubgridCUDA(u[l],i); - __syncthreads(); - caller->getSubgridCUDA(i,caller, &a); - u[l] = a; - __syncthreads(); if( ((bound & 2) )) { caller->runSubgridCUDA(10,u,i); + __syncthreads(); + caller->insertSubgridCUDA(u[l],i); + __syncthreads(); + caller->getSubgridCUDA(i,caller, &u[l]); + __syncthreads(); } - __syncthreads(); - caller->insertSubgridCUDA(u[l],i); - __syncthreads(); - caller->getSubgridCUDA(i,caller, &a); - u[l] = a; - __syncthreads(); if( (bound & 4) ) { caller->runSubgridCUDA(12,u,i); + __syncthreads(); + caller->insertSubgridCUDA(u[l],i); + __syncthreads(); + caller->getSubgridCUDA(i,caller, &u[l]); + __syncthreads(); } - __syncthreads(); - caller->insertSubgridCUDA(u[l],i); caller->setBoundaryConditionCUDA(i, 0); @@ -1607,9 +1597,6 @@ void /*tnlParallelEikonalSolver<SchemeHost, SchemeDevice, Device, double, int>:: } - - if(i+l == 0) - printf("b"); } #endif /*HAVE_CUDA*/ diff --git a/src/operators/godunov-eikonal/parallelGodunovEikonal2D_impl.h b/src/operators/godunov-eikonal/parallelGodunovEikonal2D_impl.h index c0dd0565f7ce2728f30be19174088a1af2643eb2..c37134862f68f020964636e29d36108d28f79a9d 100644 --- a/src/operators/godunov-eikonal/parallelGodunovEikonal2D_impl.h +++ b/src/operators/godunov-eikonal/parallelGodunovEikonal2D_impl.h @@ -331,7 +331,7 @@ Real parallelGodunovEikonalScheme< tnlGrid< 2, MeshReal, Device, MeshIndex >, Re signui = sign(u[cellIndex],epsilon); #ifdef HAVE_CUDA - //printf("%d : %d ;;;; %d : %d\n",threadIdx.x, coordinates.x(), threadIdx.y,coordinates.y()); + //printf("%d : %d ;;;; %d : %d , %f \n",threadIdx.x, mesh.getDimensions().x() , threadIdx.y,mesh.getDimensions().y(), epsilon ); #endif //if(fabs(u[cellIndex]) < acc) return 0.0; @@ -351,7 +351,7 @@ Real parallelGodunovEikonalScheme< tnlGrid< 2, MeshReal, Device, MeshIndex >, Re else *//*if(boundaryCondition & 2) xb = 0.0; else /**/if(coordinates.x() == 0) - xb = positivePart((u[cellIndex] - u[mesh.template getCellNextToCell<+1,0>( cellIndex )])/hx); + xb = positivePart((u[cellIndex] - u[mesh.template getCellNextToCell<1,0>( cellIndex )])/hx); else xb = positivePart((u[cellIndex] - u[mesh.template getCellNextToCell<-1,0>( cellIndex )])/hx); @@ -388,7 +388,7 @@ Real parallelGodunovEikonalScheme< tnlGrid< 2, MeshReal, Device, MeshIndex >, Re // return 0.0; return signui*(1.0 - nabla); } - else if (signui < 0.0) + else if(signui < 0.0) { /**/ /* if(boundaryCondition & 2)