72 this->directionalPressureBoundaryConditionPre =
77 checkBoundaryCondition(this->velocityBoundaryConditionPost, this->para->getParD(0)->velocityBC,
78 "velocityBoundaryConditionPost");
79 checkBoundaryCondition(this->noSlipBoundaryConditionPost, this->para->getParD(0)->noSlipBC,
80 "noSlipBoundaryConditionPost");
81 checkBoundaryCondition(this->slipBoundaryConditionPost, this->para->getParD(0)->slipBC,
82 "slipBoundaryConditionPost");
83 checkBoundaryCondition(this->geometryBoundaryConditionPost, this->para->getParD(0)->geometryBC,
84 "geometryBoundaryConditionPost");
85 checkBoundaryCondition(this->stressBoundaryConditionPost, this->para->getParD(0)->stressBC,
86 "stressBoundaryConditionPost");
87 checkBoundaryCondition(this->precursorBoundaryConditionPost, this->para->getParD(0)->precursorBC,
88 "precursorBoundaryConditionPost");
89 checkBoundaryCondition(this->pressureBoundaryConditionPre, this->para->getParD(0)->pressureBC,
90 "pressureBoundaryConditionPre");
91 checkBoundaryCondition(this->directionalPressureBoundaryConditionPre, this->para->getParD(0)->pressureBCDirectional,
92 "directionalPressureBoundaryConditionPre");
93 checkBoundaryCondition(this->ADNoFluxBoundaryConditionPost, this->para->getParD(0)->AdvectionDiffusionNoFluxBC,
94 "AdvectionDiffusionNoFluxBoundaryConditionPost");
95 checkBoundaryCondition(this->ADFluxBoundaryConditionPost,
96 this->para->getParD(0)->AdvectionDiffusionFluxBC,
97 "AdvectionDiffusionFluxBoundaryConditionPost");
98 checkBoundaryCondition(this->ADDirichletBoundaryConditionPost, this->para->getParD(0)->AdvectionDiffusionDirichletBC,
99 "AdvectionDiffusionDirichletBoundaryConditionPost");
100 checkBoundaryCondition(this->ADNeumannBoundaryConditionPost, this->para->getParD(0)->AdvectionDiffusionNeumannBC,
101 "AdvectionDiffusionNeumannBoundaryConditionPost");
102 checkBoundaryCondition(this->ADDirectionalBoundaryConditionPost, this->para->getParD(0)->concentrationBCDirectional,
103 "AdvectionDiffusionDirectionalBoundaryConditionPost");
104 checkBoundaryCondition(this->surfaceLayerBoundaryConditionPost, this->para->getParD(0)->surfaceLayerBC,
105 "surfaceLayerBoundaryConditionPost");
173 if (para->getParD(level)->geometryBC.numberOfBCnodes > 0){
174 if (para->getCalcDragLift())
178 para->getParD(level)->distributions.f[0],
179 para->getParD(level)->geometryBC.k,
180 para->getParD(level)->geometryBC.q27[0],
181 para->getParD(level)->geometryBC.numberOfBCnodes,
182 para->getParD(level)->DragLiftPreProcessingInXdirection,
183 para->getParD(level)->DragLiftPreProcessingInYdirection,
184 para->getParD(level)->DragLiftPreProcessingInZdirection,
185 para->getParD(level)->neighborX,
186 para->getParD(level)->neighborY,
187 para->getParD(level)->neighborZ,
188 para->getParD(level)->numberOfNodes,
189 para->getParD(level)->isEvenTimestep,
190 para->getParD(level)->numberofthreads);
198 if (para->getCalcCp())
204 if(
t > para->getTimestepStartOut())
208 para->getParD(level)->distributions.f[0],
209 para->getParD(level)->cpTopIndex,
210 para->getParD(level)->numberOfPointsCpTop,
211 para->getParD(level)->cpPressTop,
212 para->getParD(level)->neighborX,
213 para->getParD(level)->neighborY,
214 para->getParD(level)->neighborZ,
215 para->getParD(level)->numberOfNodes,
216 para->getParD(level)->isEvenTimestep,
217 para->getParD(level)->numberofthreads);
220 para->getParD(level)->distributions.f[0],
221 para->getParD(level)->cpBottomIndex,
222 para->getParD(level)->numberOfPointsCpBottom,
223 para->getParD(level)->cpPressBottom,
224 para->getParD(level)->neighborX,
225 para->getParD(level)->neighborY,
226 para->getParD(level)->neighborZ,
227 para->getParD(level)->numberOfNodes,
228 para->getParD(level)->isEvenTimestep,
229 para->getParD(level)->numberofthreads);
232 para->getParD(level)->distributions.f[0],
233 para->getParD(level)->cpBottom2Index,
234 para->getParD(level)->numberOfPointsCpBottom2,
235 para->getParD(level)->cpPressBottom2,
236 para->getParD(level)->neighborX,
237 para->getParD(level)->neighborY,
238 para->getParD(level)->neighborZ,
239 para->getParD(level)->numberOfNodes,
240 para->getParD(level)->isEvenTimestep,
241 para->getParD(level)->numberofthreads);
243 calcCp(para.get(), cudaMemoryManager, level);
282 if (para->getParD(level)->geometryBC.numberOfBCnodes > 0)
284 if (para->getCalcDragLift())
288 para->getParD(level)->geometryBC.k,
289 para->getParD(level)->geometryBC.q27[0],
290 para->getParD(level)->geometryBC.numberOfBCnodes,
291 para->getParD(level)->DragLiftPostProcessingInXdirection,
292 para->getParD(level)->DragLiftPostProcessingInYdirection,
293 para->getParD(level)->DragLiftPostProcessingInZdirection,
294 para->getParD(level)->neighborX,
295 para->getParD(level)->neighborY,
296 para->getParD(level)->neighborZ,
297 para->getParD(level)->numberOfNodes,
298 para->getParD(level)->isEvenTimestep,
299 para->getParD(level)->numberofthreads);
303 geometryBoundaryConditionPost(para->getParD(level).get(), &(para->getParD(level)->geometryBC));
376 if(para->getParH(level)->precursorBC.numberOfBCnodes == 0)
return;
380 uint lastTime = (para->getParD(level)->precursorBC.nPrecursorReads-2)*para->getParD(level)->precursorBC.timeStepsBetweenReads;
381 uint currentTime = (para->getParD(level)->precursorBC.nPrecursorReads-1)*para->getParD(level)->precursorBC.timeStepsBetweenReads;
382 uint nextTime = para->getParD(level)->precursorBC.nPrecursorReads *para->getParD(level)->precursorBC.timeStepsBetweenReads;
389 nextTime += para->getParD(level)->precursorBC.timeStepsBetweenReads;
392 real*
tmp = para->getParD(level)->precursorBC.last;
393 para->getParD(level)->precursorBC.last = para->getParD(level)->precursorBC.current;
394 para->getParD(level)->precursorBC.current = para->getParD(level)->precursorBC.next;
395 para->getParD(level)->precursorBC.next =
tmp;
399 for(
auto reader : para->getParH(level)->transientBCInputFileReader)
401 reader->getNextData(para->getParH(level)->precursorBC.next, para->getParH(level)->precursorBC.numberOfPrecursorNodes,
loadTime);
404 para->getParD(level)->precursorBC.nPrecursorReads++;
405 para->getParH(level)->precursorBC.nPrecursorReads++;
409 precursorBoundaryConditionPost(para->getParD(level).get(), ¶->getParD(level)->precursorBC,
tRatio, para->getVelocityRatio());