cuIBM
A GPU-based Immersed Boundary Method code
calculateForce.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include "utilities/types.h"
11 
12 
17 namespace kernels
18 {
19 
20 // calculate drag using a control-volume approach (left-right).
21 __global__
22 void dragLeftRight(real *FxX, real *q, real *lambda, real nu, real *dx, real *dy,
23  int nx, int ny, int I, int J, int ncx, int ncy);
24 
25 // calculate drag using a control-volume approach (bottom-top).
26 __global__
27 void dragBottomTop(real *FxY, real *q, real nu, real *dx, real *dy,
28  int nx, int ny, int I, int J, int ncx, int ncy);
29 
30 // calculate drag using a control-volume approach (unsteady).
31 __global__
32 void dragUnsteady(real *FxU, real *q, real *qOld, real *dx, real *dy, real dt,
33  int nx, int ny, int I, int J, int ncx, int ncy);
34 
35 // calculate lift using a control-volume approach (left-right).
36 __global__
37 void liftLeftRight(real *FyX, real *q, real nu, real *dx, real *dy,
38  int nx, int ny, int I, int J, int ncx, int ncy);
39 
40 // calculate lift using a control-volume approach (bottom-top).
41 __global__
42 void liftBottomTop(real *FyY, real *q, real *lambda, real nu, real *dx, real *dy,
43  int nx, int ny, int I, int J, int ncx, int ncy);
44 
45 // calculate lift using a control-volume approach (unsteady).
46 __global__
47 void liftUnsteady(real *FyU, real *q, real *qOld, real *dx, real *dy, real dt,
48  int nx, int ny, int I, int J, int ncx, int ncy);
49 
50 // kernel not usable
51 __global__
52 void forceX(real *f, real *q, real *rn, int *tags,
53  int nx, int ny, real *dx, real *dy,
54  real dt, real alpha, real nu);
55 
56 // kernel not usable
57 __global__
58 void forceY();
59 
60 } // End of namespace kernels
Definition of custom types required by the code.
__global__ void liftBottomTop(real *FyY, real *q, real *lambda, real nu, real *dx, real *dy, int nx, int ny, int I, int J, int ncx, int ncy)
Calculate lift using a control-volume approach (bottom-top).
double real
Is a float or a double depending on the machine precision.
Definition: types.h:116
Contains all the custom-written CUDA kernels.
__global__ void forceY()
Kernel not usable.
__global__ void liftUnsteady(real *FyU, real *q, real *qOld, real *dx, real *dy, real dt, int nx, int ny, int I, int J, int ncx, int ncy)
Calculate lift using a control-volume approach (unsteady).
__global__ void dragLeftRight(real *FxX, real *q, real *lambda, real nu, real *dx, real *dy, int nx, int ny, int I, int J, int ncx, int ncy)
Calculates drag using a control-volume approach (left-right).
__global__ void forceX(real *f, real *q, real *rn, int *tags, int nx, int ny, real *dx, real *dy, real dt, real alpha, real nu)
Kernel not usable.
__global__ void dragBottomTop(real *FxY, real *q, real nu, real *dx, real *dy, int nx, int ny, int I, int J, int ncx, int ncy)
Calculate drag using a control-volume approach (bottom-top).
__global__ void dragUnsteady(real *FxU, real *q, real *qOld, real *dx, real *dy, real dt, int nx, int ny, int I, int J, int ncx, int ncy)
Calculate drag using a control-volume approach (unsteady).
__global__ void liftLeftRight(real *FyX, real *q, real nu, real *dx, real *dy, int nx, int ny, int I, int J, int ncx, int ncy)
Calculate lift using a control-volume approach (left-right).