VM2D  1.12
Vortex methods for 2D flows simulation
wrapper.h
Go to the documentation of this file.
1 #ifndef WRAPPER_H_
2 #define WRAPPER_H_
3 
4 #include "cuKernels.cuh"
5 
6 namespace BHcu
7 {
8  double memoryAllocate(CUDApointers& ptrs, int nnodes, int nbodies, int nbodiesOld, int blocks, int order);
9 
28 
29  double wrapperInfluence(const realVortex* vtxl, realPoint* vell, real* epsastl, CUDApointers& ptrs, int nbodies,
30  double* timing, real eps, real theta, size_t& nbodiesOld, int nbodiesUp, int order,
31  size_t nAfls, size_t* nVtxs, double** ptrVtxs);
32 
35  const realVortex* vtxl, const realVortex* pointsl, realPoint* vell, real* epsastl,
36  CUDApointers& ptrs, bool rebuild,
37  int nbodies, int npoints, double* timing, real eps, real theta,
38  size_t& nbodiesOld, int nbodiesUp, int order,
39  size_t nAfls, size_t* nVtxs, double** ptrVtxs);
40 
41 
42  double wrapperInfluenceToRHS(
43  const realVortex* dev_ptr_vt, //вихри в следе const double* dev_ptr_pt, //начала и концы панелей double* dev_ptr_rhs, //куда сохранить результат double* dev_ptr_rhslin, //куда сохранить результат CUDApointers& ptrs, //указатели на делево вихрей bool rebuild, //признак перестроения делева вихрей int nvt, //число вихрей в следе int nTotPan, //общее число панелей на всех профилях double* timingsToRHS, //засечки времени //double eps, //eps double theta, //theta size_t& nbodiesOld, int nbodiesUp, int order, int scheme); double wrapperDiffusiveVelo(const realVortex* vtxl, real* i1l, realPoint* i2l, real* epsastl, CUDApointers& ptrs, bool rebuild, int nbodies, double* timing, real eps, real theta, size_t& nbodiesOld, int nbodiesUp, int order, size_t nAfls, size_t* nVtxs, double** ptrVtxs); } #endif
44  const double* dev_ptr_pt, //начала и концы панелей double* dev_ptr_rhs, //куда сохранить результат double* dev_ptr_rhslin, //куда сохранить результат CUDApointers& ptrs, //указатели на делево вихрей bool rebuild, //признак перестроения делева вихрей int nvt, //число вихрей в следе int nTotPan, //общее число панелей на всех профилях double* timingsToRHS, //засечки времени //double eps, //eps double theta, //theta size_t& nbodiesOld, int nbodiesUp, int order, int scheme); double wrapperDiffusiveVelo(const realVortex* vtxl, real* i1l, realPoint* i2l, real* epsastl, CUDApointers& ptrs, bool rebuild, int nbodies, double* timing, real eps, real theta, size_t& nbodiesOld, int nbodiesUp, int order, size_t nAfls, size_t* nVtxs, double** ptrVtxs); } #endif
45  double* dev_ptr_rhs, //куда сохранить результат
46  double* dev_ptr_rhslin, //куда сохранить результат
47 
48  CUDApointers& ptrs, //указатели на делево вихрей
49  bool rebuild, //признак перестроения делева вихрей
50 
51  int nvt, //число вихрей в следе int nTotPan, //общее число панелей на всех профилях double* timingsToRHS, //засечки времени //double eps, //eps double theta, //theta size_t& nbodiesOld, int nbodiesUp, int order, int scheme); double wrapperDiffusiveVelo(const realVortex* vtxl, real* i1l, realPoint* i2l, real* epsastl, CUDApointers& ptrs, bool rebuild, int nbodies, double* timing, real eps, real theta, size_t& nbodiesOld, int nbodiesUp, int order, size_t nAfls, size_t* nVtxs, double** ptrVtxs); } #endif
52  int nTotPan, //общее число панелей на всех профилях double* timingsToRHS, //засечки времени //double eps, //eps double theta, //theta size_t& nbodiesOld, int nbodiesUp, int order, int scheme); double wrapperDiffusiveVelo(const realVortex* vtxl, real* i1l, realPoint* i2l, real* epsastl, CUDApointers& ptrs, bool rebuild, int nbodies, double* timing, real eps, real theta, size_t& nbodiesOld, int nbodiesUp, int order, size_t nAfls, size_t* nVtxs, double** ptrVtxs); } #endif
53  double* timingsToRHS, //засечки времени //double eps, //eps double theta, //theta size_t& nbodiesOld, int nbodiesUp, int order, int scheme); double wrapperDiffusiveVelo(const realVortex* vtxl, real* i1l, realPoint* i2l, real* epsastl, CUDApointers& ptrs, bool rebuild, int nbodies, double* timing, real eps, real theta, size_t& nbodiesOld, int nbodiesUp, int order, size_t nAfls, size_t* nVtxs, double** ptrVtxs); } #endif
54  //double eps, //eps
55  double theta, //theta
56  size_t& nbodiesOld, int nbodiesUp, int order, int scheme);
57 
58  double wrapperDiffusiveVelo(const realVortex* vtxl,
59  real* i1l,
60  realPoint* i2l,
61  real* epsastl,
62  CUDApointers& ptrs,
63  bool rebuild,
64  int nbodies,
65  double* timing,
66  real eps, real theta,
67  size_t& nbodiesOld,
68  int nbodiesUp,
69  int order,
70  size_t nAfls,
71  size_t* nVtxs,
72  double** ptrVtxs);
73 
74 }
75 
76 #endif
double wrapperInfluence(const realVortex *vtxl, realPoint *vell, real *epsastl, CUDApointers &ptrs, int nbodies, double *timing, real eps, real theta, size_t &nbodiesOld, int nbodiesUp, int order, size_t nAfls, size_t *nVtxs, double **ptrVtxs)
Definition: wrapper.cpp:280
Definition: wrapper.cpp:92
double wrapperDiffusiveVelo(const realVortex *vtxl, real *i1l, realPoint *i2l, real *epsastl, CUDApointers &ptrs, bool rebuild, int nbodies, double *timing, real eps, real theta, size_t &nbodiesOld, int nbodiesUp, int order, size_t nAfls, size_t *nVtxs, double **ptrVtxs)
Definition: wrapper.cpp:497
double wrapperInfluenceToRHS(const realVortex *dev_ptr_vt, const double *dev_ptr_pt, double *dev_ptr_rhs, double *dev_ptr_rhslin, CUDApointers &ptrs, bool rebuild, int nvt, int nTotPan, double *timingsToRHS, double theta, size_t &nbodiesOld, int nbodiesUp, int order, int scheme)
Definition: wrapper.cpp:410
double wrapperInfluenceToPoints(const realVortex *vtxl, const realVortex *pointsl, realPoint *vell, real *epsastl, CUDApointers &ptrs, bool rebuild, int nbodies, int npoints, double *timing, real eps, real theta, size_t &nbodiesOld, int nbodiesUp, int order, size_t nAfls, size_t *nVtxs, double **ptrVtxs)
npoints - число точек наблюдения
Definition: wrapper.cpp:340
double memoryAllocate(CUDApointers &ptrs, int nnodes, int nbodies, int nbodiesOld, int blocks, int order)
Definition: wrapper.cpp:193