SWE
Functions
/import/home/rettenbs/src/SWE/src/blocks/cuda/SWE_BlockCUDA_kernels.hh File Reference

Go to the source code of this file.

Functions

__global__ void kernelHdBufferEdges (float *hd, int nx, int ny)
__global__ void kernelMaximum (float *maxhd, float *maxvd, int start, int size)
__global__ void kernelLeftBoundary (float *hd, float *hud, float *hvd, int nx, int ny, BoundaryType bound)
__global__ void kernelRightBoundary (float *hd, float *hud, float *hvd, int nx, int ny, BoundaryType bound)
__global__ void kernelBottomBoundary (float *hd, float *hud, float *hvd, int nx, int ny, BoundaryType bound)
__global__ void kernelTopBoundary (float *hd, float *hud, float *hvd, int nx, int ny, BoundaryType bound)
__global__ void kernelBottomGhostBoundary (float *hd, float *hud, float *hvd, float *bottomGhostLayer, int nx, int ny)
__global__ void kernelTopGhostBoundary (float *hd, float *hud, float *hvd, float *topGhostLayer, int nx, int ny)
__global__ void kernelBottomCopyLayer (float *hd, float *hud, float *hvd, float *bottomCopyLayer, int nx, int ny)
__global__ void kernelTopCopyLayer (float *hd, float *hud, float *hvd, float *topCopyLayer, int nx, int ny)

Detailed Description

This file is part of SWE.

Author:
Michael Bader (bader AT in.tum.de, http://www5.in.tum.de/wiki/index.php/Univ.-Prof._Dr._Michael_Bader)

LICENSE

SWE 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.

SWE 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 SWE. If not, see <http://www.gnu.org/licenses/>.

DESCRIPTION

TODO


Function Documentation

__global__ void kernelBottomBoundary ( float *  hd,
float *  hud,
float *  hvd,
int  nx,
int  ny,
BoundaryType  bound 
)

CUDA kernel to set bottom boundary layer for conditions WALL & OUTFLOW blockIdx.x and threadIdx.x loop over the boundary elements SWE_Block size ny is assumed to be a multiple of the TILE_SIZE

__global__ void kernelBottomCopyLayer ( float *  hd,
float *  hud,
float *  hvd,
float *  bottomCopyLayer,
int  nx,
int  ny 
)

CUDA kernel to update bottom copy layer according (for boundary conditions PASSIVE and CONNECT) blockIdx.x and threadIdx.x loop over the boundary elements. Note that diagonal elements are currently not copied! SWE_Block size ny is assumed to be a multiple of the TILE_SIZE

__global__ void kernelBottomGhostBoundary ( float *  hd,
float *  hud,
float *  hvd,
float *  bottomGhostLayer,
int  nx,
int  ny 
)

CUDA kernel to set bottom boundary layer according to the external ghost layer status (conditions PASSIVE and CONNECT) blockIdx.x and threadIdx.x loop over the boundary elements. Note that diagonal elements are currently not copied! SWE_Block size ny is assumed to be a multiple of the TILE_SIZE

__global__ void kernelHdBufferEdges ( float *  hd,
int  nx,
int  ny 
)

Sets corner values of hd (only needed for visualization)

Parameters:
hdh-values on device
__global__ void kernelLeftBoundary ( float *  hd,
float *  hud,
float *  hvd,
int  nx,
int  ny,
BoundaryType  bound 
)

CUDA kernel to set left boundary layer for conditions WALL & OUTFLOW blockIdx.y and threadIdx.y loop over the boundary elements SWE_Block size ny is assumed to be a multiple of the TILE_SIZE

__global__ void kernelMaximum ( float *  maxhd,
float *  maxvd,
int  start,
int  size 
)

CUDA kernel for maximum reduction required to compute maximum water height and velocities to determine allow time step

__global__ void kernelRightBoundary ( float *  hd,
float *  hud,
float *  hvd,
int  nx,
int  ny,
BoundaryType  bound 
)

CUDA kernel to set right boundary layer for conditions WALL & OUTFLOW blockIdx.y and threadIdx.y loop over the boundary elements SWE_Block size ny is assumed to be a multiple of the TILE_SIZE

__global__ void kernelTopBoundary ( float *  hd,
float *  hud,
float *  hvd,
int  nx,
int  ny,
BoundaryType  bound 
)

CUDA kernel to set bottom boundary layer for conditions WALL & OUTFLOW blockIdx.x and threadIdx.x loop over the boundary elements

__global__ void kernelTopCopyLayer ( float *  hd,
float *  hud,
float *  hvd,
float *  topCopyLayer,
int  nx,
int  ny 
)

CUDA kernel to set top boundary layer according to the external ghost layer status (conditions PASSIVE and CONNECT) blockIdx.x and threadIdx.x loop over the boundary elements Note that diagonal elements are currently not copied! SWE_Block size ny is assumed to be a multiple of the TILE_SIZE

__global__ void kernelTopGhostBoundary ( float *  hd,
float *  hud,
float *  hvd,
float *  topGhostLayer,
int  nx,
int  ny 
)

CUDA kernel to set top boundary layer according to the external ghost layer status (conditions PASSIVE and CONNECT) blockIdx.x and threadIdx.x loop over the boundary elements Note that diagonal elements are currently not copied! SWE_Block size ny is assumed to be a multiple of the TILE_SIZE

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends