Newer
Older
//=======================================================================================
// ____ ____ __ ______ __________ __ __ __ __
// \ \ | | | | | _ \ |___ ___| | | | | / \ | |
// \ \ | | | | | |_) | | | | | | | / \ | |
// \ \ | | | | | _ / | | | | | | / /\ \ | |
// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____
// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______|
// \ \ | | ________________________________________________________________
// \ \ | | | ______________________________________________________________|
// \ \| | | | __ __ __ __ ______ _______
// \ | | |_____ | | | | | | | | | _ \ / _____)
// \ | | _____| | | | | | | | | | | \ \ \_______
// \ | | | | |_____ | \_/ | | | | |_/ / _____ |
// \ _____| |__| |________| \_______/ |__| |______/ (_______/
//
// This file is part of VirtualFluids. VirtualFluids is free software: you can
// redistribute it and/or modify it under the terms of the GNU General Public
// License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// VirtualFluids is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// for more details.
//
// You should have received a copy of the GNU General Public License along
// with VirtualFluids (see COPYING.txt). If not, see <http://www.gnu.org/licenses/>.
//
//! \file GridScalingKernelManager.h
//! \ingroup KernelManager
//! \author Martin Schoenherr
//=======================================================================================
#include "KernelManager/GridScalingKernelManager.h"
#include "GPU/CudaMemoryManager.h"
#include "GPU/GPU_Interface.h"
#include "Parameter/Parameter.h"
#include "Parameter/CudaStreamManager.h"
#include "PreCollisionInteractor/PreCollisionInteractor.h"
GridScalingKernelManager::GridScalingKernelManager(SPtr<Parameter> parameter): para(parameter){}
void GridScalingKernelManager::runFineToCoarseKernelLB(const int level, uint *iCellFCC, uint *iCellFCF, uint k_FC, int streamIndex) const{
cudaStream_t stream = (streamIndex == -1) ? CU_STREAM_LEGACY : para->getStreamManager()->getStream(streamIndex);
// ScaleFC_comp_D3Q27F3(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->g6.g[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// iCellFCC,
// iCellFCF,
// k_FC,
// para->getParD(level)->omega,
// para->getParD(level+1)->omega,
// para->getParD(level)->vis,
// para->getParD(level)->nx,
// para->getParD(level)->ny,
// para->getParD(level+1)->nx,
// para->getParD(level+1)->ny,
// para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC,
// stream);
// ScaleFC_0817_comp_27(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// iCellFCC,
// iCellFCF,
// k_FC,
// para->getParD(level)->omega,
// para->getParD(level+1)->omega,
// para->getParD(level)->vis,
// para->getParD(level)->nx,
// para->getParD(level)->ny,
// para->getParD(level+1)->nx,
// para->getParD(level+1)->ny,
// para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC,
// stream);
// ScaleFC_RhoSq_3rdMom_comp_27(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// iCellFCC,
// iCellFCF,
// k_FC,
// para->getParD(level)->omega,
// para->getParD(level+1)->omega,
// para->getParD(level)->vis,
// para->getParD(level)->nx,
// para->getParD(level)->ny,
// para->getParD(level+1)->nx,
// para->getParD(level+1)->ny,
// para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC,
// stream);
ScaleFC_RhoSq_comp_27(
para->getParD(level)->distributions.f[0],
para->getParD(level+1)->distributions.f[0],
para->getParD(level)->neighborX,
para->getParD(level)->neighborY,
para->getParD(level)->neighborZ,
para->getParD(level+1)->neighborX,
para->getParD(level+1)->neighborY,
para->getParD(level+1)->neighborZ,
para->getParD(level)->numberOfNodes,
para->getParD(level+1)->numberOfNodes,
para->getParD(level)->isEvenTimestep,
para->getParD(level)->omega,
para->getParD(level+1)->omega,
para->getParD(level)->vis,
para->getParD(level)->nx,
para->getParD(level)->ny,
para->getParD(level+1)->nx,
para->getParD(level+1)->ny,
para->getParD(level)->numberofthreads,
para->getParD(level)->offFC,
// ScaleFC_AA2016_comp_27(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// iCellFCC,
// iCellFCF,
// k_FC,
// para->getParD(level)->omega,
// para->getParD(level+1)->omega,
// para->getParD(level)->vis,
// para->getParD(level)->nx,
// para->getParD(level)->ny,
// para->getParD(level+1)->nx,
// para->getParD(level+1)->ny,
// para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC,
// stream);
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
//////////////////////////////////////////////////////////////////////////
// D E P R E C A T E D
//////////////////////////////////////////////////////////////////////////
//ScaleFC27( para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intFC.ICellFCC, para->getParD(level)->intFC.ICellFCF,
// para->getParD(level)->K_FC, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->gridNX);
//getLastCudaError("ScaleFC27 execution failed");
//ScaleFCEff27( para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intFC.ICellFCC, para->getParD(level)->intFC.ICellFCF,
// para->getParD(level)->K_FC, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC);
//getLastCudaError("ScaleFC27 execution failed");
//ScaleFCLast27( para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intFC.ICellFCC, para->getParD(level)->intFC.ICellFCF,
// para->getParD(level)->K_FC, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC);
//getLastCudaError("ScaleFC27 execution failed");
//ScaleFCpress27(para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intFC.ICellFCC, para->getParD(level)->intFC.ICellFCF,
// para->getParD(level)->K_FC, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC);
//getLastCudaError("ScaleFC27 execution failed");
// ScaleFC_Fix_comp_27( para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intFC.ICellFCC, para->getParD(level)->intFC.ICellFCF,
// para->getParD(level)->K_FC, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC);
// getLastCudaError("ScaleFC27 execution failed");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// incompressible
//ScaleFC_Fix_27(para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intFC.ICellFCC, para->getParD(level)->intFC.ICellFCF,
// para->getParD(level)->K_FC, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC);
//getLastCudaError("ScaleFC27 execution failed");
//ScaleFC_NSPress_27(para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intFC.ICellFCC, para->getParD(level)->intFC.ICellFCF,
// para->getParD(level)->K_FC, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offFC);
//getLastCudaError("ScaleFC27 execution failed");
}
void GridScalingKernelManager::runFineToCoarseKernelAD(const int level) const
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
{
//A D V E C T I O N D I F F U S I O N
if (para->getDiffMod() == 7)
{
// ScaleFCThS7(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->distributionsAD7.f[0],
// para->getParD(level+1)->distributionsAD7.f[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intFC.ICellFCC,
// para->getParD(level)->intFC.ICellFCF,
// para->getParD(level)->K_FC,
// para->getParD(level)->vis,
// para->getParD(level)->diffusivity,
// para->getParD(level)->numberofthreads);
ScaleFCThSMG7(
para->getParD(level)->distributions.f[0],
para->getParD(level+1)->distributions.f[0],
para->getParD(level)->distributionsAD7.f[0],
para->getParD(level+1)->distributionsAD7.f[0],
para->getParD(level)->neighborX,
para->getParD(level)->neighborY,
para->getParD(level)->neighborZ,
para->getParD(level+1)->neighborX,
para->getParD(level+1)->neighborY,
para->getParD(level+1)->neighborZ,
para->getParD(level)->numberOfNodes,
para->getParD(level+1)->numberOfNodes,
para->getParD(level)->isEvenTimestep,
para->getParD(level)->intFC.ICellFCC,
para->getParD(level)->intFC.ICellFCF,
para->getParD(level)->K_FC,
para->getParD(level)->vis,
para->getParD(level)->diffusivity,
para->getParD(level)->numberofthreads,
para->getParD(level)->offFC);
}
else if (para->getDiffMod() == 27)
{
ScaleFCThS27(
para->getParD(level)->distributions.f[0],
para->getParD(level+1)->distributions.f[0],
para->getParD(level)->distributionsAD27.f[0],
para->getParD(level+1)->distributionsAD27.f[0],
para->getParD(level)->neighborX,
para->getParD(level)->neighborY,
para->getParD(level)->neighborZ,
para->getParD(level+1)->neighborX,
para->getParD(level+1)->neighborY,
para->getParD(level+1)->neighborZ,
para->getParD(level)->numberOfNodes,
para->getParD(level+1)->numberOfNodes,
para->getParD(level)->isEvenTimestep,
para->getParD(level)->intFC.ICellFCC,
para->getParD(level)->intFC.ICellFCF,
para->getParD(level)->K_FC,
para->getParD(level)->vis,
para->getParD(level)->diffusivity,
para->getParD(level)->numberofthreads,
para->getParD(level)->offFC);
}
}
void GridScalingKernelManager::runCoarseToFineKernelLB(const int level, uint *iCellCFC, uint *iCellCFF, uint k_CF, OffCF &offCF, int streamIndex) const
cudaStream_t stream = (streamIndex == -1) ? CU_STREAM_LEGACY : para->getStreamManager()->getStream(streamIndex);
// ScaleCF_comp_D3Q27F3(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level+1)->g6.g[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// iCellCFC,
// iCellCFF,
// k_CF,
// para->getParD(level)->omega,
// para->getParD(level+1)->omega,
// para->getParD(level)->vis,
// para->getParD(level)->nx,
// para->getParD(level)->ny,
// para->getParD(level+1)->nx,
// para->getParD(level+1)->ny,
// para->getParD(level)->numberofthreads,
// ScaleCF_0817_comp_27(
// para->getParD(level)->distributions.f[0],
// para->getParD(level + 1)->distributions.f[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// iCellCFC,
// iCellCFF,
// k_CF,
// para->getParD(level)->omega,
// para->getParD(level+1)->omega,
// para->getParD(level)->vis,
// para->getParD(level)->nx,
// para->getParD(level)->ny,
// para->getParD(level+1)->nx,
// para->getParD(level+1)->ny,
// para->getParD(level)->numberofthreads,
// ScaleCF_RhoSq_3rdMom_comp_27(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// iCellCFC,
// iCellCFF,
// k_CF,
// para->getParD(level)->omega,
// para->getParD(level+1)->omega,
// para->getParD(level)->vis,
// para->getParD(level)->nx,
// para->getParD(level)->ny,
// para->getParD(level+1)->nx,
// para->getParD(level+1)->ny,
// para->getParD(level)->numberofthreads,
ScaleCF_RhoSq_comp_27(
para->getParD(level)->distributions.f[0],
para->getParD(level + 1)->distributions.f[0],
para->getParD(level)->neighborX,
para->getParD(level)->neighborY,
para->getParD(level)->neighborZ,
para->getParD(level + 1)->neighborX,
para->getParD(level + 1)->neighborY,
para->getParD(level + 1)->neighborZ,
para->getParD(level)->numberOfNodes,
para->getParD(level + 1)->numberOfNodes,
para->getParD(level)->isEvenTimestep,
para->getParD(level)->omega,
para->getParD(level + 1)->omega,
para->getParD(level)->vis,
para->getParD(level)->nx,
para->getParD(level)->ny,
para->getParD(level + 1)->nx,
para->getParD(level + 1)->ny,
para->getParD(level)->numberofthreads,
// ScaleCF_AA2016_comp_27(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// iCellCFC,
// iCellCFF,
// k_CF,
// para->getParD(level)->omega,
// para->getParD(level+1)->omega,
// para->getParD(level)->vis,
// para->getParD(level)->nx,
// para->getParD(level)->ny,
// para->getParD(level+1)->nx,
// para->getParD(level+1)->ny,
// para->getParD(level)->numberofthreads,
//////////////////////////////////////////////////////////////////////////
// D E P R E C A T E D
//////////////////////////////////////////////////////////////////////////
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
//ScaleCF27( para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intCF.ICellCFC, para->getParD(level)->intCF.ICellCFF,
// para->getParD(level)->K_CF, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->gridNX);
//getLastCudaError("ScaleCF27 execution failed");
//ScaleCFEff27( para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intCF.ICellCFC, para->getParD(level)->intCF.ICellCFF,
// para->getParD(level)->K_CF, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offCF);
//getLastCudaError("ScaleCF27 execution failed");
//ScaleCFLast27( para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intCF.ICellCFC, para->getParD(level)->intCF.ICellCFF,
// para->getParD(level)->K_CF, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offCF);
//getLastCudaError("ScaleCF27 execution failed");
//ScaleCFpress27(para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intCF.ICellCFC, para->getParD(level)->intCF.ICellCFF,
// para->getParD(level)->K_CF, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offCF);
//getLastCudaError("ScaleCF27 execution failed");
// ScaleCF_Fix_comp_27( para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intCF.ICellCFC, para->getParD(level)->intCF.ICellCFF,
// para->getParD(level)->K_CF, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offCF);
// getLastCudaError("ScaleCF27 execution failed");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// incompressible
//ScaleCF_Fix_27(para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intCF.ICellCFC, para->getParD(level)->intCF.ICellCFF,
// para->getParD(level)->K_CF, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offCF);
//getLastCudaError("ScaleCF27 execution failed");
//ScaleCF_NSPress_27(para->getParD(level)->distributions.f[0], para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->neighborX, para->getParD(level)->neighborY, para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX, para->getParD(level+1)->neighborY, para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes, para->getParD(level+1)->numberOfNodes, para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intCF.ICellCFC, para->getParD(level)->intCF.ICellCFF,
// para->getParD(level)->K_CF, para->getParD(level)->omega, para->getParD(level+1)->omega,
// para->getParD(level)->vis, para->getParD(level)->nx, para->getParD(level)->ny,
// para->getParD(level+1)->nx, para->getParD(level+1)->ny, para->getParD(level)->numberofthreads,
// para->getParD(level)->offCF);
//getLastCudaError("ScaleCF27 execution failed");
}
void GridScalingKernelManager::runCoarseToFineKernelAD(const int level) const
// A D V E C T I O N D I F F U S I O N
if (para->getDiffMod() == 7)
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
// ScaleCFThS7(
// para->getParD(level)->distributions.f[0],
// para->getParD(level+1)->distributions.f[0],
// para->getParD(level)->distributionsAD7.f[0],
// para->getParD(level+1)->distributionsAD7.f[0],
// para->getParD(level)->neighborX,
// para->getParD(level)->neighborY,
// para->getParD(level)->neighborZ,
// para->getParD(level+1)->neighborX,
// para->getParD(level+1)->neighborY,
// para->getParD(level+1)->neighborZ,
// para->getParD(level)->numberOfNodes,
// para->getParD(level+1)->numberOfNodes,
// para->getParD(level)->isEvenTimestep,
// para->getParD(level)->intCF.ICellCFC,
// para->getParD(level)->intCF.ICellCFF,
// para->getParD(level)->K_CF,
// para->getParD(level)->vis,
// para->getParD(level+1)->diffusivity,
// para->getParD(level)->numberofthreads);
ScaleCFThSMG7(
para->getParD(level)->distributions.f[0],
para->getParD(level+1)->distributions.f[0],
para->getParD(level)->distributionsAD7.f[0],
para->getParD(level+1)->distributionsAD7.f[0],
para->getParD(level)->neighborX,
para->getParD(level)->neighborY,
para->getParD(level)->neighborZ,
para->getParD(level+1)->neighborX,
para->getParD(level+1)->neighborY,
para->getParD(level+1)->neighborZ,
para->getParD(level)->numberOfNodes,
para->getParD(level+1)->numberOfNodes,
para->getParD(level)->isEvenTimestep,
para->getParD(level)->intCF.ICellCFC,
para->getParD(level)->intCF.ICellCFF,
para->getParD(level)->K_CF,
para->getParD(level)->vis,
para->getParD(level+1)->diffusivity,
para->getParD(level)->numberofthreads,
para->getParD(level)->offCF);
}
else if (para->getDiffMod() == 27)
{
ScaleCFThS27(
para->getParD(level)->distributions.f[0],
para->getParD(level+1)->distributions.f[0],
para->getParD(level)->distributionsAD27.f[0],
para->getParD(level+1)->distributionsAD27.f[0],
para->getParD(level)->neighborX,
para->getParD(level)->neighborY,
para->getParD(level)->neighborZ,
para->getParD(level+1)->neighborX,
para->getParD(level+1)->neighborY,
para->getParD(level+1)->neighborZ,
para->getParD(level)->numberOfNodes,
para->getParD(level+1)->numberOfNodes,
para->getParD(level)->isEvenTimestep,
para->getParD(level)->intCF.ICellCFC,
para->getParD(level)->intCF.ICellCFF,
para->getParD(level)->K_CF,
para->getParD(level)->vis,
para->getParD(level+1)->diffusivity,
para->getParD(level)->numberofthreads,
para->getParD(level)->offCF);