diff --git a/apps/gpu/LBM/BoundaryLayer/BoundaryLayer.cpp b/apps/gpu/LBM/BoundaryLayer/BoundaryLayer.cpp index c397092e083ec685efb8b38682ebe4890c8a6d71..6b6bf19318cc7d312c7bca94ac4685705a4a5943 100644 --- a/apps/gpu/LBM/BoundaryLayer/BoundaryLayer.cpp +++ b/apps/gpu/LBM/BoundaryLayer/BoundaryLayer.cpp @@ -184,11 +184,10 @@ void multipleLevel(const std::string& configPath) gridBuilder->addCoarseGrid(0.0, 0.0, 0.0, L_x, L_y, L_z, dx); - // gridBuilder->setNumberOfLayers(12, 8); + gridBuilder->setNumberOfLayers(12, 8); - // gridBuilder->addGrid( new Cuboid( 0.0, 0.0, 0.0, L_x, L_y, 0.2*L_z) , 1 ); - // gridBuilder->addGrid( new Cuboid( 0.0, 0.0, 0.0, L_x, L_y, 0.1*L_z) , 2 ); - // para->setMaxLevel(3); + gridBuilder->addGrid( new Cuboid( 0.0, 0.0, 0.0, L_x, L_y, 0.3*L_z) , 1 ); + para->setMaxLevel(2); gridBuilder->setPeriodicBoundaryCondition(true, true, false); diff --git a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/Probe.cu b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/Probe.cu index e13f411273a824cfee4d52c712dd81245301396d..0c56e557ca7314a7cd2da5d916715ab7d65fd839 100644 --- a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/Probe.cu +++ b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/Probe.cu @@ -441,7 +441,7 @@ void Probe::writeGridFiles(Parameter* para, int level, std::vector<std::string>& uint arrOff = probeStruct->arrayOffsetsH[var]; uint arrLen = probeStruct->nPoints; - + for(uint arr=0; arr<n_arrs; arr++) { coeff = postProcessingVariables[arr].conversionFactor; diff --git a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/WallModelProbe.cu b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/WallModelProbe.cu index da50219b11eeede9775b4e6e165133a95d6fe7a1..06039e323452b209b8e6306531e726158ce067f6 100644 --- a/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/WallModelProbe.cu +++ b/src/gpu/VirtualFluids_GPU/PreCollisionInteractor/Probes/WallModelProbe.cu @@ -155,7 +155,6 @@ void WallModelProbe::findPoints(Parameter* para, GridProvider* gridProvider, std std::vector<real>& pointCoordsX_level, std::vector<real>& pointCoordsY_level, std::vector<real>& pointCoordsZ_level, int level) { - if ( para->getParD(level)->stressBC.numberOfBCnodes < 1) throw std::runtime_error("WallModelProbe::findPoints(): stressBC.numberOfBCnodes < 1 !"); if ( !para->getHasWallModelMonitor()) throw std::runtime_error("WallModelProbe::findPoints(): !para->getHasWallModelMonitor() !"); real dt = para->getTimeRatio(); @@ -187,6 +186,10 @@ void WallModelProbe::findPoints(Parameter* para, GridProvider* gridProvider, std void WallModelProbe::calculateQuantities(SPtr<ProbeStruct> probeStruct, Parameter* para, uint t, int level) { bool doTmpAveraging = (t>this->getTStartTmpAveraging()); + real N = para->getParD(level)->stressBC.numberOfBCnodes; + if(N<1) return; //Skipping levels without StressBC + real n = (real)probeStruct->vals; + int nPoints = probeStruct->nPoints; // Pointer casts to use device arrays in thrust reductions thrust::device_ptr<real> u_el_thrust = thrust::device_pointer_cast(para->getParD(level)->stressBC.Vx); @@ -213,10 +216,6 @@ void WallModelProbe::calculateQuantities(SPtr<ProbeStruct> probeStruct, Paramete thrust::permutation_iterator<valIterator, indIterator> dpdz_iter_begin(dpdz_thrust, indices_thrust); thrust::permutation_iterator<valIterator, indIterator> dpdz_iter_end (dpdz_thrust, indices_thrust+probeStruct->nIndices); - real N = para->getParD(level)->stressBC.numberOfBCnodes; - real n = (real)probeStruct->vals; - int nPoints = probeStruct->nPoints; - if(probeStruct->quantitiesH[int(Statistic::SpatialMeans)]) { // Compute the instantaneous spatial means of the velocity moments @@ -293,6 +292,7 @@ void WallModelProbe::calculateQuantities(SPtr<ProbeStruct> probeStruct, Paramete } } } + this->tProbe += 1; getLastCudaError("WallModelProbe::calculateQuantities execution failed");