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:
TData type
Parameters:
XParamModel parametersXBlockBlock data structuredtTime stepzbBed elevation arrayXEvEvolving variablesXAdvAdvance variablesXEv_oOutput 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:
TData type
Parameters:
XParamModel parametersXBlockBlock data structuredtTime stepzbBed elevation arrayXEvEvolving variablesXAdvAdvance variablesXEv_oOutput 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:
TData type
Parameters:
XParamModel parametersXLoopLoop control structureXBlockBlock data structureXTimeTime 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:
TData type
Parameters:
XParamModel parametersXLoopLoop control structureXBlockBlock data structureXTimeTime 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:
TData type
Parameters:
XParamModel parametersXBlockBlock data structureXEvEvolving variablesXEv_oOutput 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:
TData type
Parameters:
XParamModel parametersXBlockBlock data structureXEvEvolving variablesXEv_oOutput 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:
TData type
Parameters:
XParamModel parametersXBlockBlock data structureg_idataInput arrayg_odataOutput array
function reducemin3
GPU kernel to compute the minimum value in an array using parallel reduction.
Template parameters:
TData type
Parameters:
g_idataInput arrayg_odataOutput array (min per block)nNumber 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:
TData type
Parameters:
XParamModel parametersXLoopLoop control structureXBlockBlock data structureXTimeTime 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:
TData type
Parameters:
XParamModel parametersXBlockBlock data structureXEvEvolving variablesXFluxFlux variablesXAdvAdvance 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:
TData type
Parameters:
XParamModel parametersXBlockBlock data structureXEvEvolving variablesXFluxFlux variablesXAdvAdvance 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