File Advection.cu
FileList > src > Advection.cu
Go to the source code of this file
#include "Advection.h"
Classes
Type | Name |
---|---|
struct | SharedMemory <class T> |
struct | SharedMemory< double > <> |
Public Functions
Type | Name |
---|---|
__host__ void | AdvkernelCPU (Param XParam, BlockP< T > XBlock, T dt, T * zb, EvolvingP< T > XEv, AdvanceP< T > XAdv, EvolvingP< T > XEv_o) CPU routine for advancing the solution in time for each block and cell. |
template __host__ void | AdvkernelCPU< double > (Param XParam, BlockP< double > XBlock, double dt, double * zb, EvolvingP< double > XEv, AdvanceP< double > XAdv, EvolvingP< double > XEv_o) |
template __host__ void | AdvkernelCPU< float > (Param XParam, BlockP< float > XBlock, float dt, float * zb, EvolvingP< float > XEv, AdvanceP< float > XAdv, EvolvingP< float > XEv_o) |
__global__ void | AdvkernelGPU (Param XParam, BlockP< T > XBlock, T dt, T * zb, EvolvingP< T > XEv, AdvanceP< T > XAdv, EvolvingP< T > XEv_o) GPU kernel for advancing the solution in time for each block and cell. |
template __global__ void | AdvkernelGPU< double > (Param XParam, BlockP< double > XBlock, double dt, double * zb, EvolvingP< double > XEv, AdvanceP< double > XAdv, EvolvingP< double > XEv_o) |
template __global__ void | AdvkernelGPU< float > (Param XParam, BlockP< float > XBlock, float dt, float * zb, EvolvingP< float > XEv, AdvanceP< float > XAdv, EvolvingP< float > XEv_o) |
__host__ T | CalctimestepCPU (Param XParam, Loop< T > XLoop, BlockP< T > XBlock, TimeP< T > XTime) CPU routine to calculate the next time step for the simulation. |
template __host__ double | CalctimestepCPU< double > (Param XParam, Loop< double > XLoop, BlockP< double > XBlock, TimeP< double > XTime) |
template __host__ float | CalctimestepCPU< float > (Param XParam, Loop< float > XLoop, BlockP< float > XBlock, TimeP< float > XTime) |
__host__ T | CalctimestepGPU (Param XParam, Loop< T > XLoop, BlockP< T > XBlock, TimeP< T > XTime) GPU routine to calculate the next time step for the simulation. |
template __host__ double | CalctimestepGPU< double > (Param XParam, Loop< double > XLoop, BlockP< double > XBlock, TimeP< double > XTime) |
template __host__ float | CalctimestepGPU< float > (Param XParam, Loop< float > XLoop, BlockP< float > XBlock, TimeP< float > XTime) |
__host__ void | cleanupCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, EvolvingP< T > XEv_o) CPU routine to clean up evolving variables after advection step. |
template __host__ void | cleanupCPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, EvolvingP< double > XEv_o) |
template __host__ void | cleanupCPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, EvolvingP< float > XEv_o) |
__global__ void | cleanupGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, EvolvingP< T > XEv_o) GPU kernel to clean up evolving variables after advection step. |
template __global__ void | cleanupGPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, EvolvingP< double > XEv_o) |
template __global__ void | cleanupGPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, EvolvingP< float > XEv_o) |
__global__ void | densify (Param XParam, BlockP< T > XBlock, T * g_idata, T * g_odata) GPU kernel to copy and densify data from block memory to output array. |
__global__ void | reducemin3 (T * g_idata, T * g_odata, unsigned int n) GPU kernel to compute the minimum value in an array using parallel reduction. |
__host__ T | timestepreductionCPU (Param XParam, Loop< T > XLoop, BlockP< T > XBlock, TimeP< T > XTime) CPU routine to compute the minimum allowed time step across all blocks and cells. |
template __host__ float | timestepreductionCPU (Param XParam, Loop< float > XLoop, BlockP< float > XBlock, TimeP< float > XTime) |
template __host__ double | timestepreductionCPU (Param XParam, Loop< double > XLoop, BlockP< double > XBlock, TimeP< double > XTime) |
__host__ void | updateEVCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, FluxP< T > XFlux, AdvanceP< T > XAdv) CPU routine to update evolving variables (h, u, v, zs) for each block and cell. |
template __host__ void | updateEVCPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, FluxP< double > XFlux, AdvanceP< double > XAdv) |
template __host__ void | updateEVCPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, FluxP< float > XFlux, AdvanceP< float > XAdv) |
__global__ void | updateEVGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, FluxP< T > XFlux, AdvanceP< T > XAdv) GPU kernel to update evolving variables (h, u, v, zs) for each block and cell. |
template __global__ void | updateEVGPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, FluxP< double > XFlux, AdvanceP< double > XAdv) |
template __global__ void | updateEVGPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, FluxP< float > XFlux, AdvanceP< float > XAdv) |
Public Functions Documentation
function AdvkernelCPU
CPU routine for advancing the solution in time for each block and cell.
template<class T>
__host__ void AdvkernelCPU (
Param XParam,
BlockP < T > XBlock,
T dt,
T * zb,
EvolvingP < T > XEv,
AdvanceP < T > XAdv,
EvolvingP < T > XEv_o
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structuredt
Time stepzb
Bed elevation arrayXEv
Evolving variablesXAdv
Advance variablesXEv_o
Output evolving variables
Updates water height, velocity, and surface elevation for the next time step.
function AdvkernelCPU< double >
template __host__ void AdvkernelCPU< double > (
Param XParam,
BlockP < double > XBlock,
double dt,
double * zb,
EvolvingP < double > XEv,
AdvanceP < double > XAdv,
EvolvingP < double > XEv_o
)
function AdvkernelCPU< float >
template __host__ void AdvkernelCPU< float > (
Param XParam,
BlockP < float > XBlock,
float dt,
float * zb,
EvolvingP < float > XEv,
AdvanceP < float > XAdv,
EvolvingP < float > XEv_o
)
function AdvkernelGPU
GPU kernel for advancing the solution in time for each block and cell.
template<class T>
__global__ void AdvkernelGPU (
Param XParam,
BlockP < T > XBlock,
T dt,
T * zb,
EvolvingP < T > XEv,
AdvanceP < T > XAdv,
EvolvingP < T > XEv_o
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structuredt
Time stepzb
Bed elevation arrayXEv
Evolving variablesXAdv
Advance variablesXEv_o
Output evolving variables
Updates water height, velocity, and surface elevation for the next time step.
function AdvkernelGPU< double >
template __global__ void AdvkernelGPU< double > (
Param XParam,
BlockP < double > XBlock,
double dt,
double * zb,
EvolvingP < double > XEv,
AdvanceP < double > XAdv,
EvolvingP < double > XEv_o
)
function AdvkernelGPU< float >
template __global__ void AdvkernelGPU< float > (
Param XParam,
BlockP < float > XBlock,
float dt,
float * zb,
EvolvingP < float > XEv,
AdvanceP < float > XAdv,
EvolvingP < float > XEv_o
)
function CalctimestepCPU
CPU routine to calculate the next time step for the simulation.
template<class T>
__host__ T CalctimestepCPU (
Param XParam,
Loop < T > XLoop,
BlockP < T > XBlock,
TimeP < T > XTime
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXLoop
Loop control structureXBlock
Block data structureXTime
Time control structure
Returns:
Computed time step
function CalctimestepCPU< double >
template __host__ double CalctimestepCPU< double > (
Param XParam,
Loop < double > XLoop,
BlockP < double > XBlock,
TimeP < double > XTime
)
function CalctimestepCPU< float >
template __host__ float CalctimestepCPU< float > (
Param XParam,
Loop < float > XLoop,
BlockP < float > XBlock,
TimeP < float > XTime
)
function CalctimestepGPU
GPU routine to calculate the next time step for the simulation.
template<class T>
__host__ T CalctimestepGPU (
Param XParam,
Loop < T > XLoop,
BlockP < T > XBlock,
TimeP < T > XTime
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXLoop
Loop control structureXBlock
Block data structureXTime
Time control structure
Returns:
Computed time step
function CalctimestepGPU< double >
template __host__ double CalctimestepGPU< double > (
Param XParam,
Loop < double > XLoop,
BlockP < double > XBlock,
TimeP < double > XTime
)
function CalctimestepGPU< float >
template __host__ float CalctimestepGPU< float > (
Param XParam,
Loop < float > XLoop,
BlockP < float > XBlock,
TimeP < float > XTime
)
function cleanupCPU
CPU routine to clean up evolving variables after advection step.
template<class T>
__host__ void cleanupCPU (
Param XParam,
BlockP < T > XBlock,
EvolvingP < T > XEv,
EvolvingP < T > XEv_o
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structureXEv
Evolving variablesXEv_o
Output evolving variables
function cleanupCPU< double >
template __host__ void cleanupCPU< double > (
Param XParam,
BlockP < double > XBlock,
EvolvingP < double > XEv,
EvolvingP < double > XEv_o
)
function cleanupCPU< float >
template __host__ void cleanupCPU< float > (
Param XParam,
BlockP < float > XBlock,
EvolvingP < float > XEv,
EvolvingP < float > XEv_o
)
function cleanupGPU
GPU kernel to clean up evolving variables after advection step.
template<class T>
__global__ void cleanupGPU (
Param XParam,
BlockP < T > XBlock,
EvolvingP < T > XEv,
EvolvingP < T > XEv_o
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structureXEv
Evolving variablesXEv_o
Output evolving variables
function cleanupGPU< double >
template __global__ void cleanupGPU< double > (
Param XParam,
BlockP < double > XBlock,
EvolvingP < double > XEv,
EvolvingP < double > XEv_o
)
function cleanupGPU< float >
template __global__ void cleanupGPU< float > (
Param XParam,
BlockP < float > XBlock,
EvolvingP < float > XEv,
EvolvingP < float > XEv_o
)
function densify
GPU kernel to copy and densify data from block memory to output array.
template<class T>
__global__ void densify (
Param XParam,
BlockP < T > XBlock,
T * g_idata,
T * g_odata
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structureg_idata
Input arrayg_odata
Output array
function reducemin3
GPU kernel to compute the minimum value in an array using parallel reduction.
Template parameters:
T
Data type
Parameters:
g_idata
Input arrayg_odata
Output array (min per block)n
Number of elements
function timestepreductionCPU
CPU routine to compute the minimum allowed time step across all blocks and cells.
template<class T>
__host__ T timestepreductionCPU (
Param XParam,
Loop < T > XLoop,
BlockP < T > XBlock,
TimeP < T > XTime
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXLoop
Loop control structureXBlock
Block data structureXTime
Time control structure
Returns:
Minimum allowed time step
function timestepreductionCPU
template __host__ float timestepreductionCPU (
Param XParam,
Loop < float > XLoop,
BlockP < float > XBlock,
TimeP < float > XTime
)
function timestepreductionCPU
template __host__ double timestepreductionCPU (
Param XParam,
Loop < double > XLoop,
BlockP < double > XBlock,
TimeP < double > XTime
)
function updateEVCPU
CPU routine to update evolving variables (h, u, v, zs) for each block and cell.
template<class T>
__host__ void updateEVCPU (
Param XParam,
BlockP < T > XBlock,
EvolvingP < T > XEv,
FluxP < T > XFlux,
AdvanceP < T > XAdv
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structureXEv
Evolving variablesXFlux
Flux variablesXAdv
Advance variables
Computes new values for water height, velocity, and surface elevation using fluxes and advances.
function updateEVCPU< double >
template __host__ void updateEVCPU< double > (
Param XParam,
BlockP < double > XBlock,
EvolvingP < double > XEv,
FluxP < double > XFlux,
AdvanceP < double > XAdv
)
function updateEVCPU< float >
template __host__ void updateEVCPU< float > (
Param XParam,
BlockP < float > XBlock,
EvolvingP < float > XEv,
FluxP < float > XFlux,
AdvanceP < float > XAdv
)
function updateEVGPU
GPU kernel to update evolving variables (h, u, v, zs) for each block and cell.
template<class T>
__global__ void updateEVGPU (
Param XParam,
BlockP < T > XBlock,
EvolvingP < T > XEv,
FluxP < T > XFlux,
AdvanceP < T > XAdv
)
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structureXEv
Evolving variablesXFlux
Flux variablesXAdv
Advance variables
Computes new values for water height, velocity, and surface elevation using fluxes and advances.
function updateEVGPU< double >
template __global__ void updateEVGPU< double > (
Param XParam,
BlockP < double > XBlock,
EvolvingP < double > XEv,
FluxP < double > XFlux,
AdvanceP < double > XAdv
)
function updateEVGPU< float >
template __global__ void updateEVGPU< float > (
Param XParam,
BlockP < float > XBlock,
EvolvingP < float > XEv,
FluxP < float > XFlux,
AdvanceP < float > XAdv
)
The documentation for this class was generated from the following file src/Advection.cu