Skip to content

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 parameters
  • XBlock Block data structure
  • dt Time step
  • zb Bed elevation array
  • XEv Evolving variables
  • XAdv Advance variables
  • XEv_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 parameters
  • XBlock Block data structure
  • dt Time step
  • zb Bed elevation array
  • XEv Evolving variables
  • XAdv Advance variables
  • XEv_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 parameters
  • XLoop Loop control structure
  • XBlock Block data structure
  • XTime 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 parameters
  • XLoop Loop control structure
  • XBlock Block data structure
  • XTime 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 parameters
  • XBlock Block data structure
  • XEv Evolving variables
  • XEv_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 parameters
  • XBlock Block data structure
  • XEv Evolving variables
  • XEv_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 parameters
  • XBlock Block data structure
  • g_idata Input array
  • g_odata Output array

function reducemin3

GPU kernel to compute the minimum value in an array using parallel reduction.

template<class T>
__global__ void reducemin3 (
    T * g_idata,
    T * g_odata,
    unsigned int n
) 

Template parameters:

  • T Data type

Parameters:

  • g_idata Input array
  • g_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 parameters
  • XLoop Loop control structure
  • XBlock Block data structure
  • XTime 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 parameters
  • XBlock Block data structure
  • XEv Evolving variables
  • XFlux Flux variables
  • XAdv 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 parameters
  • XBlock Block data structure
  • XEv Evolving variables
  • XFlux Flux variables
  • XAdv 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