Skip to content

File ConserveElevation.h

FileList > src > ConserveElevation.h

Go to the source code of this file

  • #include "General.h"
  • #include "Param.h"
  • #include "Write_txtlog.h"
  • #include "Util_CPU.h"
  • #include "Arrays.h"
  • #include "MemManagement.h"

Public Functions

Type Name
__host__ __device__ void ProlongationElevation (int halowidth, int blkmemwidth, T eps, int ib, int ibn, int ihalo, int jhalo, int ip, int jp, T * h, T * zs, T * zb)
Prolongs elevation values from parent to child block halo cells, handling dry/wet logic.
void WetDryProlongation (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
Performs wet/dry prolongation for all block boundaries.
void WetDryProlongationGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
Performs wet/dry prolongation for all block boundaries on the GPU using CUDA kernels.
__global__ void WetDryProlongationGPUBot (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void WetDryProlongationGPULeft (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void WetDryProlongationGPURight (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void WetDryProlongationGPUTop (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
void WetDryRestriction (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
Performs wet/dry restriction for all block boundaries.
void WetDryRestrictionGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
Performs wet/dry restriction for all block boundaries on the GPU using CUDA kernels.
__global__ void WetDryRestrictionGPUBot (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void WetDryRestrictionGPULeft (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void WetDryRestrictionGPURight (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void WetDryRestrictionGPUTop (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
void conserveElevation (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
Conserves elevation across all active blocks by applying elevation conservation on each block's boundaries.
void conserveElevationBot (Param XParam, int ib, int ibBL, int ibBR, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void conserveElevationBot (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
void conserveElevationGHBot (Param XParam, int ib, int ibBL, int ibBR, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx)
__global__ void conserveElevationGHBot (Param XParam, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx)
void conserveElevationGHLeft (Param XParam, int ib, int ibLB, int ibLT, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx)
__global__ void conserveElevationGHLeft (Param XParam, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx)
void conserveElevationGHRight (Param XParam, int ib, int ibRB, int ibRT, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx)
__global__ void conserveElevationGHRight (Param XParam, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx)
void conserveElevationGHTop (Param XParam, int ib, int ibTL, int ibTR, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx)
__global__ void conserveElevationGHTop (Param XParam, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx)
void conserveElevationGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
Conserves elevation on the GPU for all active blocks using CUDA kernels.
void conserveElevationGradHalo (Param XParam, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx, T * dhdy, T * dzsdy)
Conserves elevation gradients in halo cells for all active blocks.
void conserveElevationGradHaloGPU (Param XParam, BlockP< T > XBlock, T * h, T * zs, T * zb, T * dhdx, T * dzsdx, T * dhdy, T * dzsdy)
void conserveElevationLeft (Param XParam, int ib, int ibLB, int ibLT, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void conserveElevationLeft (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
void conserveElevationRight (Param XParam, int ib, int ibRB, int ibRT, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void conserveElevationRight (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
void conserveElevationTop (Param XParam, int ib, int ibTL, int ibTR, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__global__ void conserveElevationTop (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, T * zb)
__host__ __device__ void wetdryrestriction (int halowidth, int blkmemwidth, T eps, int ib, int ibn, int ihalo, int jhalo, int i, int j, T * h, T * zs, T * zb)

Public Functions Documentation

function ProlongationElevation

Prolongs elevation values from parent to child block halo cells, handling dry/wet logic.

template<class T>
__host__ __device__ void ProlongationElevation (
    int halowidth,
    int blkmemwidth,
    T eps,
    int ib,
    int ibn,
    int ihalo,
    int jhalo,
    int ip,
    int jp,
    T * h,
    T * zs,
    T * zb
) 

Copies elevation and water surface values from parent to child halo if any neighbor is dry.

Template parameters:

  • T Data type (float or double)

Parameters:

  • halowidth Halo width
  • blkmemwidth Block memory width
  • eps Dry threshold
  • ib Block index
  • ibn Neighbor block index
  • ihalo Halo i-index
  • jhalo Halo j-index
  • ip Parent i-index
  • jp Parent j-index
  • h Water depth array
  • zs Water surface array
  • zb Bed elevation array

function WetDryProlongation

Performs wet/dry prolongation for all block boundaries.

template<class T>
void WetDryProlongation (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

Applies prolongation logic to left, right, top, and bottom boundaries where block level is greater than neighbor.

Template parameters:

  • T Data type (float or double)

Parameters:

  • XParam Simulation parameters
  • XBlock Block data structure
  • XEv Evolving variables structure
  • zb Bed elevation array

function WetDryProlongationGPU

Performs wet/dry prolongation for all block boundaries on the GPU using CUDA kernels.

template<class T>
void WetDryProlongationGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

Launches CUDA kernels for left, right, top, and bottom boundaries, synchronizing after each.

Template parameters:

  • T Data type (float or double)

Parameters:

  • XParam Simulation parameters
  • XBlock Block data structure
  • XEv Evolving variables structure
  • zb Bed elevation array

function WetDryProlongationGPUBot

template<class T>
__global__ void WetDryProlongationGPUBot (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function WetDryProlongationGPULeft

template<class T>
__global__ void WetDryProlongationGPULeft (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function WetDryProlongationGPURight

template<class T>
__global__ void WetDryProlongationGPURight (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function WetDryProlongationGPUTop

template<class T>
__global__ void WetDryProlongationGPUTop (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function WetDryRestriction

Performs wet/dry restriction for all block boundaries.

template<class T>
void WetDryRestriction (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

Applies restriction logic to left, right, top, and bottom boundaries where block level is less than neighbor.

Template parameters:

  • T Data type (float or double)

Parameters:

  • XParam Simulation parameters
  • XBlock Block data structure
  • XEv Evolving variables structure
  • zb Bed elevation array

function WetDryRestrictionGPU

Performs wet/dry restriction for all block boundaries on the GPU using CUDA kernels.

template<class T>
void WetDryRestrictionGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

Launches CUDA kernels for left, right, top, and bottom boundaries, synchronizing after each.

Template parameters:

  • T Data type (float or double)

Parameters:

  • XParam Simulation parameters
  • XBlock Block data structure
  • XEv Evolving variables structure
  • zb Bed elevation array

function WetDryRestrictionGPUBot

template<class T>
__global__ void WetDryRestrictionGPUBot (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function WetDryRestrictionGPULeft

template<class T>
__global__ void WetDryRestrictionGPULeft (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function WetDryRestrictionGPURight

template<class T>
__global__ void WetDryRestrictionGPURight (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function WetDryRestrictionGPUTop

template<class T>
__global__ void WetDryRestrictionGPUTop (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function conserveElevation

Conserves elevation across all active blocks by applying elevation conservation on each block's boundaries.

template<class T>
void conserveElevation (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

Iterates over all active blocks and applies conservation routines for left, right, top, and bottom boundaries.

Template parameters:

  • T Data type (float or double)

Parameters:

  • XParam Simulation parameters
  • XBlock Block data structure
  • XEv Evolving variables structure
  • zb Bed elevation array

function conserveElevationBot

template<class T>
void conserveElevationBot (
    Param XParam,
    int ib,
    int ibBL,
    int ibBR,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function conserveElevationBot

template<class T>
__global__ void conserveElevationBot (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function conserveElevationGHBot

template<class T>
void conserveElevationGHBot (
    Param XParam,
    int ib,
    int ibBL,
    int ibBR,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx
) 

function conserveElevationGHBot

template<class T>
__global__ void conserveElevationGHBot (
    Param XParam,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx
) 

function conserveElevationGHLeft

template<class T>
void conserveElevationGHLeft (
    Param XParam,
    int ib,
    int ibLB,
    int ibLT,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx
) 

function conserveElevationGHLeft

template<class T>
__global__ void conserveElevationGHLeft (
    Param XParam,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx
) 

function conserveElevationGHRight

template<class T>
void conserveElevationGHRight (
    Param XParam,
    int ib,
    int ibRB,
    int ibRT,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx
) 

function conserveElevationGHRight

template<class T>
__global__ void conserveElevationGHRight (
    Param XParam,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx
) 

function conserveElevationGHTop

template<class T>
void conserveElevationGHTop (
    Param XParam,
    int ib,
    int ibTL,
    int ibTR,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx
) 

function conserveElevationGHTop

template<class T>
__global__ void conserveElevationGHTop (
    Param XParam,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx
) 

function conserveElevationGPU

Conserves elevation on the GPU for all active blocks using CUDA kernels.

template<class T>
void conserveElevationGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

Launches CUDA kernels for left, right, top, and bottom boundaries, synchronizing after each.

Template parameters:

  • T Data type (float or double)

Parameters:

  • XParam Simulation parameters
  • XBlock Block data structure
  • XEv Evolving variables structure
  • zb Bed elevation array

function conserveElevationGradHalo

Conserves elevation gradients in halo cells for all active blocks.

template<class T>
void conserveElevationGradHalo (
    Param XParam,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx,
    T * dhdy,
    T * dzsdy
) 

Applies gradient conservation routines for left, right, top, and bottom boundaries.

Template parameters:

  • T Data type (float or double)

Parameters:

  • XParam Simulation parameters
  • XBlock Block data structure
  • h Water depth array
  • zs Water surface array
  • zb Bed elevation array
  • dhdx Water depth gradient x
  • dzsdx Water surface gradient x
  • dhdy Water depth gradient y
  • dzsdy Water surface gradient y

function conserveElevationGradHaloGPU

template<class T>
void conserveElevationGradHaloGPU (
    Param XParam,
    BlockP < T > XBlock,
    T * h,
    T * zs,
    T * zb,
    T * dhdx,
    T * dzsdx,
    T * dhdy,
    T * dzsdy
) 

function conserveElevationLeft

template<class T>
void conserveElevationLeft (
    Param XParam,
    int ib,
    int ibLB,
    int ibLT,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function conserveElevationLeft

template<class T>
__global__ void conserveElevationLeft (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function conserveElevationRight

template<class T>
void conserveElevationRight (
    Param XParam,
    int ib,
    int ibRB,
    int ibRT,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function conserveElevationRight

template<class T>
__global__ void conserveElevationRight (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function conserveElevationTop

template<class T>
void conserveElevationTop (
    Param XParam,
    int ib,
    int ibTL,
    int ibTR,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function conserveElevationTop

template<class T>
__global__ void conserveElevationTop (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    T * zb
) 

function wetdryrestriction

template<class T>
__host__ __device__ void wetdryrestriction (
    int halowidth,
    int blkmemwidth,
    T eps,
    int ib,
    int ibn,
    int ihalo,
    int jhalo,
    int i,
    int j,
    T * h,
    T * zs,
    T * zb
) 


The documentation for this class was generated from the following file src/ConserveElevation.h