BG_Flood  0.1
Documentation (Work-in-progress)
Boundary.h
Go to the documentation of this file.
1 
2 #ifndef BOUNDARY_H
3 #define BOUNDARY_H
4 // includes, system
5 
6 #include "General.h"
7 #include "MemManagement.h"
8 #include "Util_CPU.h"
9 #include "Updateforcing.h"
10 
11 
12 
13 template <class T> void Flowbnd(Param XParam, Loop<T>& XLoop, BlockP<T> XBlock, bndparam side, DynForcingP<float> Atmp, EvolvingP<T> XEv);
14 __host__ __device__ int Inside(int halowidth, int blkmemwidth, int isright, int istop, int ix, int iy, int ib);
15 __host__ __device__ bool isbnd(int isright, int istop, int blkwidth, int ix, int iy);
16 
17 template <class T> __host__ void maskbnd(Param XParam, BlockP<T> XBlock, EvolvingP<T> Xev, T* zb);
18 template <class T> __global__ void maskbndGPUleft(Param XParam, BlockP<T> XBlock, EvolvingP<T> Xev, T* zb);
19 template <class T> __global__ void maskbndGPUtop(Param XParam, BlockP<T> XBlock, EvolvingP<T> Xev, T* zb);
20 template <class T> __global__ void maskbndGPUright(Param XParam, BlockP<T> XBlock, EvolvingP<T> Xev, T* zb);
21 template <class T> __global__ void maskbndGPUbot(Param XParam, BlockP<T> XBlock, EvolvingP<T> Xev, T* zb);
22 
23 template <class T> __global__ void maskbndGPUFluxleft(Param XParam, BlockP<T> XBlock, EvolvingP<T> Xev, FluxP<T> Flux);
24 template <class T> __global__ void maskbndGPUFluxtop(Param XParam, BlockP<T> XBlock, FluxP<T> Flux);
25 template <class T> __global__ void maskbndGPUFluxright(Param XParam, BlockP<T> XBlock, FluxP<T> Flux);
26 template <class T> __global__ void maskbndGPUFluxbot(Param XParam, BlockP<T> XBlock, FluxP<T> Flux);
27 
28 template <class T> void FlowbndFlux(Param XParam, double totaltime, BlockP<T> XBlock, bndsegment bndseg, DynForcingP<float> Atmp, EvolvingP<T> XEv, FluxP<T> XFlux);
29 template <class T> void FlowbndFlux(Param XParam,double totaltime, BlockP<T> XBlock, bndparam side, DynForcingP<float> Atmp, EvolvingP<T> XEv, FluxP<T> XFlux);
30 
31 
32 template <class T> __global__ void bndFluxGPUSide(Param XParam, bndsegmentside side, BlockP<T> XBlock, DynForcingP<float> Atmp, DynForcingP<float> Zsmap, bool uniform, int type, float zsbnd, T taper, T* zs, T* h, T* un, T* ut, T* Fh, T* Fq, T* Ss);
33 
34 template <class T> __global__ void bndGPU(Param XParam, bndparam side, BlockP<T> XBlock, DynForcingP<float> Atmp, float itime, T* zs, T* h, T* un, T* ut);
35 template <class T> __host__ void bndCPU(Param XParam, bndparam side, BlockP<T> XBlock, std::vector<double> zsbndvec, std::vector<double> uubndvec, std::vector<double> vvbndvec, DynForcingP<float> Atmp, T* zs, T* h, T* un, T* ut);
36 
37 
38 __device__ __host__ void findmaskside(int side, bool &isleftbot, bool& islefttop, bool& istopleft, bool& istopright, bool& isrighttop, bool& isrightbot, bool& isbotright, bool& isbotleft);
39 template <class T> __device__ __host__ void halowall(T zsinside, T& un, T& ut, T& zs, T& h,T&zb);
40 template <class T> __device__ __host__ void noslipbnd(T zsinside,T hinside,T &un, T &ut,T &zs, T &h);
41 template <class T> __device__ __host__ void noslipbndQ(T& F, T& G, T& S);
42 template <class T> __device__ __host__ void ABS1D(T g, T sign, T zsbnd, T zsinside, T hinside, T utbnd,T unbnd, T& un, T& ut, T& zs, T& h);
43 template <class T> __device__ __host__ void ABS1DQ(T g, T sign, T factime, T facrel, T zs, T zsbnd, T zsinside, T h, T& qmean, T& q, T& G, T& S);
44 template <class T> __device__ __host__ void Dirichlet1D(T g, T sign, T zsbnd, T zsinside, T hinside, T uninside, T& un, T& ut, T& zs, T& h);
45 
46 // End of global definition
47 #endif
float * zb
Definition: BasCart_gpu.cu:54
float * zs
Definition: BasCart_gpu.cu:54
__host__ __device__ bool isbnd(int isright, int istop, int blkwidth, int ix, int iy)
Definition: Boundary.cu:1746
void Flowbnd(Param XParam, Loop< T > &XLoop, BlockP< T > XBlock, bndparam side, DynForcingP< float > Atmp, EvolvingP< T > XEv)
Definition: Boundary.cu:4
__device__ __host__ void noslipbndQ(T &F, T &G, T &S)
Definition: Boundary.cu:1502
__global__ void maskbndGPUFluxright(Param XParam, BlockP< T > XBlock, FluxP< T > Flux)
Definition: Boundary.cu:1293
__host__ void bndCPU(Param XParam, bndparam side, BlockP< T > XBlock, std::vector< double > zsbndvec, std::vector< double > uubndvec, std::vector< double > vvbndvec, DynForcingP< float > Atmp, T *zs, T *h, T *un, T *ut)
Definition: Boundary.cu:654
void FlowbndFlux(Param XParam, double totaltime, BlockP< T > XBlock, bndsegment bndseg, DynForcingP< float > Atmp, EvolvingP< T > XEv, FluxP< T > XFlux)
Definition: Boundary.cu:81
__device__ __host__ void ABS1D(T g, T sign, T zsbnd, T zsinside, T hinside, T utbnd, T unbnd, T &un, T &ut, T &zs, T &h)
Definition: Boundary.cu:1512
__host__ __device__ int Inside(int halowidth, int blkmemwidth, int isright, int istop, int ix, int iy, int ib)
Definition: Boundary.cu:1709
__device__ __host__ void Dirichlet1D(T g, T sign, T zsbnd, T zsinside, T hinside, T uninside, T &un, T &ut, T &zs, T &h)
Definition: Boundary.cu:1559
__device__ __host__ void ABS1DQ(T g, T sign, T factime, T facrel, T zs, T zsbnd, T zsinside, T h, T &qmean, T &q, T &G, T &S)
Definition: Boundary.cu:1523
__global__ void maskbndGPUbot(Param XParam, BlockP< T > XBlock, EvolvingP< T > Xev, T *zb)
Definition: Boundary.cu:1342
__global__ void maskbndGPUFluxleft(Param XParam, BlockP< T > XBlock, EvolvingP< T > Xev, FluxP< T > Flux)
Definition: Boundary.cu:1044
__global__ void bndGPU(Param XParam, bndparam side, BlockP< T > XBlock, DynForcingP< float > Atmp, float itime, T *zs, T *h, T *un, T *ut)
Definition: Boundary.cu:528
__host__ void maskbnd(Param XParam, BlockP< T > XBlock, EvolvingP< T > Xev, T *zb)
Definition: Boundary.cu:806
__device__ __host__ void noslipbnd(T zsinside, T hinside, T &un, T &ut, T &zs, T &h)
Definition: Boundary.cu:1491
__global__ void maskbndGPUright(Param XParam, BlockP< T > XBlock, EvolvingP< T > Xev, T *zb)
Definition: Boundary.cu:1229
__device__ __host__ void halowall(T zsinside, T &un, T &ut, T &zs, T &h, T &zb)
Definition: Boundary.cu:1478
__global__ void maskbndGPUleft(Param XParam, BlockP< T > XBlock, EvolvingP< T > Xev, T *zb)
Definition: Boundary.cu:975
__global__ void maskbndGPUFluxtop(Param XParam, BlockP< T > XBlock, FluxP< T > Flux)
Definition: Boundary.cu:1181
__global__ void bndFluxGPUSide(Param XParam, bndsegmentside side, BlockP< T > XBlock, DynForcingP< float > Atmp, DynForcingP< float > Zsmap, bool uniform, int type, float zsbnd, T taper, T *zs, T *h, T *un, T *ut, T *Fh, T *Fq, T *Ss)
Definition: Boundary.cu:233
__device__ __host__ void findmaskside(int side, bool &isleftbot, bool &islefttop, bool &istopleft, bool &istopright, bool &isrighttop, bool &isrightbot, bool &isbotright, bool &isbotleft)
Definition: Boundary.cu:1453
__global__ void maskbndGPUFluxbot(Param XParam, BlockP< T > XBlock, FluxP< T > Flux)
Definition: Boundary.cu:1406
__global__ void maskbndGPUtop(Param XParam, BlockP< T > XBlock, EvolvingP< T > Xev, T *zb)
Definition: Boundary.cu:1119
Definition: Param.h:10
Definition: Forcing.h:86
Definition: Forcing.h:119
Definition: Forcing.h:105
F
Definition: ReadInput.py:75
Definition: Arrays.h:100
Definition: Arrays.h:29
Definition: Arrays.h:46
Definition: Arrays.h:221