File Advection.h
FileList > src > Advection.h
Go to the source code of this file
#include "General.h"
#include "Param.h"
#include "Arrays.h"
#include "Forcing.h"
#include "MemManagement.h"
#include "Spherical.h"
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. |
__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. |
__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. |
__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. |
__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. |
__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. |
__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. |
__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. |
__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. |
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 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 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 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 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 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 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 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 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.
The documentation for this class was generated from the following file src/Advection.h