BG_Flood  0.8
Documentation (Work-in-progress)
Gradients.h
Go to the documentation of this file.
1 #ifndef GRADIENTS_H
2 #define GRADIENTS_H
3 
4 #include "General.h"
5 #include "Param.h"
6 #include "Arrays.h"
7 #include "Forcing.h"
8 #include "Util_CPU.h"
9 #include "Setup_GPU.h"
10 #include "MemManagement.h"
11 #include "Halo.h"
12 
13 // CPU specific functions
14 template <class T> void gradientCPU(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
15 template <class T> void gradientC(Param XParam, BlockP<T> XBlock, T* a, T* dadx, T* dady);
16 template <class T> void gradientHalo(Param XParam, BlockP<T>XBlock, T* a, T* dadx, T* dady);
17 
18 // GPU specific functions
19 template <class T> void gradientGPU(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
20 template <class T> void gradientGPUnew(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
21 template <class T> __global__ void gradient(int halowidth, int* active, int* level, T theta, T dx, T* a, T* dadx, T* dady);
22 template <class T> __global__ void gradientSM(int halowidth, int* active, int* level, T theta, T dx, T* a, T* dadx, T* dady);
23 template <class T> __global__ void gradientSMB(int halowidth, int* active, int* level, T theta, T dx, T* a, T* dadx, T* dady);
24 template <class T> __global__ void gradientSMC(int halowidth, int* active, int* level, T theta, T dx, T* a, T* dadx, T* dady);
25 template <class T> __global__ void gradientedgeX(int halowidth, int* active, int* level, T theta, T dx, T* a, T* dadx);
26 template <class T> __global__ void gradientedgeY(int halowidth, int* active, int* level, T theta, T dx, T* a, T* dady);
27 template <class T> void gradientHaloGPU(Param XParam, BlockP<T>XBlock, T* a, T* dadx, T* dady);
28 
29 template <class T> __global__ void WetsloperesetXGPU(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
30 template <class T> __global__ void WetsloperesetYGPU(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
31 
32 template <class T> __global__ void WetsloperesetHaloLeftGPU(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
33 template <class T> __global__ void WetsloperesetHaloRightGPU(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
34 template <class T> __global__ void WetsloperesetHaloBotGPU(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
35 template <class T> __global__ void WetsloperesetHaloTopGPU(Param XParam, BlockP<T>XBlock, EvolvingP<T> XEv, GradientsP<T> XGrad, T* zb);
36 
37 
38 template <class T> __global__ void gradientHaloLeftGPU(Param XParam, BlockP<T>XBlock, T* a, T* dadx, T* dady);
39 template <class T> __global__ void gradientHaloRightGPU(Param XParam, BlockP<T>XBlock, T* a, T* dadx, T* dady);
40 template <class T> __global__ void gradientHaloTopGPU(Param XParam, BlockP<T>XBlock, T* a, T* dadx, T* dady);
41 template <class T> __global__ void gradientHaloBotGPU(Param XParam, BlockP<T>XBlock, T* a, T* dadx, T* dady);
42 // End of global definition
43 #endif
__global__ void gradientedgeX(int halowidth, int *active, int *level, T theta, T dx, T *a, T *dadx)
Definition: Gradients.cu:681
__global__ void gradientSM(int halowidth, int *active, int *level, T theta, T dx, T *a, T *dadx, T *dady)
Definition: Gradients.cu:445
__global__ void gradientHaloRightGPU(Param XParam, BlockP< T >XBlock, T *a, T *dadx, T *dady)
Definition: Gradients.cu:3226
void gradientC(Param XParam, BlockP< T > XBlock, T *a, T *dadx, T *dady)
Definition: Gradients.cu:813
__global__ void gradientHaloLeftGPU(Param XParam, BlockP< T >XBlock, T *a, T *dadx, T *dady)
Definition: Gradients.cu:2948
__global__ void gradientSMB(int halowidth, int *active, int *level, T theta, T dx, T *a, T *dadx, T *dady)
Definition: Gradients.cu:524
void gradientGPUnew(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:186
__global__ void WetsloperesetHaloTopGPU(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:2016
__global__ void WetsloperesetYGPU(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:1042
__global__ void WetsloperesetXGPU(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:1003
void gradientHaloGPU(Param XParam, BlockP< T >XBlock, T *a, T *dadx, T *dady)
Definition: Gradients.cu:2353
__global__ void gradientSMC(int halowidth, int *active, int *level, T theta, T dx, T *a, T *dadx, T *dady)
Definition: Gradients.cu:579
void gradientCPU(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:853
void gradientGPU(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:8
__global__ void gradientedgeY(int halowidth, int *active, int *level, T theta, T dx, T *a, T *dady)
Definition: Gradients.cu:749
__global__ void WetsloperesetHaloBotGPU(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:1703
__global__ void gradient(int halowidth, int *active, int *level, T theta, T dx, T *a, T *dadx, T *dady)
Definition: Gradients.cu:388
__global__ void WetsloperesetHaloLeftGPU(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:1082
__global__ void gradientHaloTopGPU(Param XParam, BlockP< T >XBlock, T *a, T *dadx, T *dady)
Definition: Gradients.cu:3792
__global__ void WetsloperesetHaloRightGPU(Param XParam, BlockP< T >XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, T *zb)
Definition: Gradients.cu:1385
__global__ void gradientHaloBotGPU(Param XParam, BlockP< T >XBlock, T *a, T *dadx, T *dady)
Definition: Gradients.cu:3503
void gradientHalo(Param XParam, BlockP< T >XBlock, T *a, T *dadx, T *dady)
Definition: Gradients.cu:2329
Definition: Param.h:10
Definition: Arrays.h:86
Definition: Arrays.h:29
Definition: Arrays.h:11