Skip to content

File Kurganov.cu

FileList > src > Kurganov.cu

Go to the source code of this file

  • #include "Kurganov.h"

Public Functions

Type Name
__host__ void AddSlopeSourceXCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * zb)
Host function for adding topographic slope source terms in X direction.
template __host__ void AddSlopeSourceXCPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * zb)
template __host__ void AddSlopeSourceXCPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * zb)
__global__ void AddSlopeSourceXGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * zb)
CUDA kernel for adding topographic slope source terms in X direction.
template __global__ void AddSlopeSourceXGPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * zb)
template __global__ void AddSlopeSourceXGPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * zb)
__host__ void AddSlopeSourceYCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * zb)
Host function for adding topographic slope source terms in Y direction.
template __host__ void AddSlopeSourceYCPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * zb)
template __host__ void AddSlopeSourceYCPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * zb)
__global__ void AddSlopeSourceYGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * zb)
CUDA kernel for adding topographic slope source terms in Y direction.
template __global__ void AddSlopeSourceYGPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * zb)
template __global__ void AddSlopeSourceYGPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * zb)
__host__ __device__ T KurgSolver (T g, T delta, T epsi, T CFL, T cm, T fm, T hp, T hm, T up, T um, T & fh, T & fu)
Kurganov-Petrova approximate Riemann solver for fluxes and time step.
__host__ void updateKurgXATMCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * dtmax, T * zb, T * Patm, T * dPdx)
Host function for updating X-direction fluxes with atmospheric pressure effects.
template __host__ void updateKurgXATMCPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * dtmax, double * zb, double * Patm, double * dPdx)
template __host__ void updateKurgXATMCPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * dtmax, float * zb, float * Patm, float * dPdx)
__global__ void updateKurgXATMGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * dtmax, T * zb, T * Patm, T * dPdx)
CUDA kernel for updating X-direction fluxes with atmospheric pressure effects.
template __global__ void updateKurgXATMGPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * dtmax, double * zb, double * Patm, double * dPdx)
template __global__ void updateKurgXATMGPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * dtmax, float * zb, float * Patm, float * dPdx)
__host__ void updateKurgXCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * dtmax, T * zb)
Host function for updating X-direction fluxes using the Kurganov scheme.
template __host__ void updateKurgXCPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * dtmax, double * zb)
template __host__ void updateKurgXCPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * dtmax, float * zb)
__global__ void updateKurgXGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * dtmax, T * zb)
CUDA kernel for updating X-direction fluxes using the Kurganov scheme.
template __global__ void updateKurgXGPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * dtmax, double * zb)
template __global__ void updateKurgXGPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * dtmax, float * zb)
__host__ void updateKurgYATMCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * dtmax, T * zb, T * Patm, T * dPdy)
Host function for updating Y-direction fluxes with atmospheric pressure effects.
template __host__ void updateKurgYATMCPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * dtmax, double * zb, double * Patm, double * dPdy)
template __host__ void updateKurgYATMCPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * dtmax, float * zb, float * Patm, float * dPdy)
__global__ void updateKurgYATMGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * dtmax, T * zb, T * Patm, T * dPdy)
CUDA kernel for updating Y-direction fluxes with atmospheric pressure effects.
template __global__ void updateKurgYATMGPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * dtmax, double * zb, double * Patm, double * dPdy)
template __global__ void updateKurgYATMGPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * dtmax, float * zb, float * Patm, float * dPdy)
__host__ void updateKurgYCPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * dtmax, T * zb)
Host function for updating Y-direction fluxes using the Kurganov scheme.
template __host__ void updateKurgYCPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * dtmax, double * zb)
template __host__ void updateKurgYCPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * dtmax, float * zb)
__global__ void updateKurgYGPU (Param XParam, BlockP< T > XBlock, EvolvingP< T > XEv, GradientsP< T > XGrad, FluxP< T > XFlux, T * dtmax, T * zb)
CUDA kernel for updating Y-direction fluxes using the Kurganov scheme.
template __global__ void updateKurgYGPU< double > (Param XParam, BlockP< double > XBlock, EvolvingP< double > XEv, GradientsP< double > XGrad, FluxP< double > XFlux, double * dtmax, double * zb)
template __global__ void updateKurgYGPU< float > (Param XParam, BlockP< float > XBlock, EvolvingP< float > XEv, GradientsP< float > XGrad, FluxP< float > XFlux, float * dtmax, float * zb)

Public Functions Documentation

function AddSlopeSourceXCPU

Host function for adding topographic slope source terms in X direction.

template<class T>
__host__ void AddSlopeSourceXCPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * zb
) 

Updates fluxes with slope source terms for well-balanced solutions on CPU (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • zb Bathymetry array

function AddSlopeSourceXCPU< double >

template __host__ void AddSlopeSourceXCPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * zb
) 

function AddSlopeSourceXCPU< float >

template __host__ void AddSlopeSourceXCPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * zb
) 

function AddSlopeSourceXGPU

CUDA kernel for adding topographic slope source terms in X direction.

template<class T>
__global__ void AddSlopeSourceXGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * zb
) 

Updates fluxes with slope source terms for well-balanced solutions (based on Kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • zb Bathymetry array

function AddSlopeSourceXGPU< double >

template __global__ void AddSlopeSourceXGPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * zb
) 

function AddSlopeSourceXGPU< float >

template __global__ void AddSlopeSourceXGPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * zb
) 

function AddSlopeSourceYCPU

Host function for adding topographic slope source terms in Y direction.

template<class T>
__host__ void AddSlopeSourceYCPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * zb
) 

Updates fluxes with slope source terms for well-balanced solutions in Y direction on CPU (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • zb Bathymetry array

function AddSlopeSourceYCPU< double >

template __host__ void AddSlopeSourceYCPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * zb
) 

function AddSlopeSourceYCPU< float >

template __host__ void AddSlopeSourceYCPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * zb
) 

function AddSlopeSourceYGPU

CUDA kernel for adding topographic slope source terms in Y direction.

template<class T>
__global__ void AddSlopeSourceYGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * zb
) 

Updates fluxes with slope source terms for well-balanced solutions in Y direction (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • zb Bathymetry array

function AddSlopeSourceYGPU< double >

template __global__ void AddSlopeSourceYGPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * zb
) 

function AddSlopeSourceYGPU< float >

template __global__ void AddSlopeSourceYGPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * zb
) 

function KurgSolver

Kurganov-Petrova approximate Riemann solver for fluxes and time step.

template<class T>
__host__ __device__ T KurgSolver (
    T g,
    T delta,
    T epsi,
    T CFL,
    T cm,
    T fm,
    T hp,
    T hm,
    T up,
    T um,
    T & fh,
    T & fu
) 

Computes fluxes and time step for the Kurganov scheme given left/right states and velocities (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • g Gravity
  • delta Cell size
  • epsi Small epsilon for stability
  • CFL CFL number
  • cm Metric coefficient
  • fm Flux metric
  • hp Water depth (plus side)
  • hm Water depth (minus side)
  • up Velocity (plus side)
  • um Velocity (minus side)
  • fh Output: flux for h
  • fu Output: flux for u

Returns:

Time step


function updateKurgXATMCPU

Host function for updating X-direction fluxes with atmospheric pressure effects.

template<class T>
__host__ void updateKurgXATMCPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * dtmax,
    T * zb,
    T * Patm,
    T * dPdx
) 

Computes fluxes and time step constraints for each cell in the X direction on CPU, including atmospheric pressure terms (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • dtmax Maximum time step array
  • zb Bathymetry array
  • Patm Atmospheric pressure array
  • dPdx Pressure gradient array

function updateKurgXATMCPU< double >

template __host__ void updateKurgXATMCPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * dtmax,
    double * zb,
    double * Patm,
    double * dPdx
) 

function updateKurgXATMCPU< float >

template __host__ void updateKurgXATMCPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * dtmax,
    float * zb,
    float * Patm,
    float * dPdx
) 

function updateKurgXATMGPU

CUDA kernel for updating X-direction fluxes with atmospheric pressure effects.

template<class T>
__global__ void updateKurgXATMGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * dtmax,
    T * zb,
    T * Patm,
    T * dPdx
) 

Computes fluxes and time step constraints for each cell in the X direction, including atmospheric pressure terms (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • dtmax Maximum time step array
  • zb Bathymetry array
  • Patm Atmospheric pressure array
  • dPdx Pressure gradient array

function updateKurgXATMGPU< double >

template __global__ void updateKurgXATMGPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * dtmax,
    double * zb,
    double * Patm,
    double * dPdx
) 

function updateKurgXATMGPU< float >

template __global__ void updateKurgXATMGPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * dtmax,
    float * zb,
    float * Patm,
    float * dPdx
) 

function updateKurgXCPU

Host function for updating X-direction fluxes using the Kurganov scheme.

template<class T>
__host__ void updateKurgXCPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * dtmax,
    T * zb
) 

Computes fluxes and time step constraints for each cell in the X direction on CPU (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • dtmax Maximum time step array
  • zb Bathymetry array

function updateKurgXCPU< double >

template __host__ void updateKurgXCPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * dtmax,
    double * zb
) 

function updateKurgXCPU< float >

template __host__ void updateKurgXCPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * dtmax,
    float * zb
) 

function updateKurgXGPU

CUDA kernel for updating X-direction fluxes using the Kurganov scheme.

template<class T>
__global__ void updateKurgXGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * dtmax,
    T * zb
) 

Computes fluxes and time step constraints for each cell in the X direction (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • dtmax Maximum time step array
  • zb Bathymetry array

function updateKurgXGPU< double >

template __global__ void updateKurgXGPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * dtmax,
    double * zb
) 

function updateKurgXGPU< float >

template __global__ void updateKurgXGPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * dtmax,
    float * zb
) 

function updateKurgYATMCPU

Host function for updating Y-direction fluxes with atmospheric pressure effects.

template<class T>
__host__ void updateKurgYATMCPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * dtmax,
    T * zb,
    T * Patm,
    T * dPdy
) 

Computes fluxes and time step constraints for each cell in the Y direction on CPU, including atmospheric pressure terms (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • dtmax Maximum time step array
  • zb Bathymetry array
  • Patm Atmospheric pressure array
  • dPdy Pressure gradient array

function updateKurgYATMCPU< double >

template __host__ void updateKurgYATMCPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * dtmax,
    double * zb,
    double * Patm,
    double * dPdy
) 

function updateKurgYATMCPU< float >

template __host__ void updateKurgYATMCPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * dtmax,
    float * zb,
    float * Patm,
    float * dPdy
) 

function updateKurgYATMGPU

CUDA kernel for updating Y-direction fluxes with atmospheric pressure effects.

template<class T>
__global__ void updateKurgYATMGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * dtmax,
    T * zb,
    T * Patm,
    T * dPdy
) 

Computes fluxes and time step constraints for each cell in the Y direction, including atmospheric pressure terms (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • dtmax Maximum time step array
  • zb Bathymetry array
  • Patm Atmospheric pressure array
  • dPdy Pressure gradient array

function updateKurgYATMGPU< double >

template __global__ void updateKurgYATMGPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * dtmax,
    double * zb,
    double * Patm,
    double * dPdy
) 

function updateKurgYATMGPU< float >

template __global__ void updateKurgYATMGPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * dtmax,
    float * zb,
    float * Patm,
    float * dPdy
) 

function updateKurgYCPU

Host function for updating Y-direction fluxes using the Kurganov scheme.

template<class T>
__host__ void updateKurgYCPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * dtmax,
    T * zb
) 

Computes fluxes and time step constraints for each cell in the Y direction on CPU (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • dtmax Maximum time step array
  • zb Bathymetry array

function updateKurgYCPU< double >

template __host__ void updateKurgYCPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * dtmax,
    double * zb
) 

function updateKurgYCPU< float >

template __host__ void updateKurgYCPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * dtmax,
    float * zb
) 

function updateKurgYGPU

CUDA kernel for updating Y-direction fluxes using the Kurganov scheme.

template<class T>
__global__ void updateKurgYGPU (
    Param XParam,
    BlockP < T > XBlock,
    EvolvingP < T > XEv,
    GradientsP < T > XGrad,
    FluxP < T > XFlux,
    T * dtmax,
    T * zb
) 

Computes fluxes and time step constraints for each cell in the Y direction (based on kurganov and Petrova 2007).

Template parameters:

  • T Data type

Parameters:

  • XParam Simulation parameters
  • XBlock Block parameters
  • XEv Evolving variables
  • XGrad Gradients
  • XFlux Fluxes
  • dtmax Maximum time step array
  • zb Bathymetry array

function updateKurgYGPU< double >

template __global__ void updateKurgYGPU< double > (
    Param XParam,
    BlockP < double > XBlock,
    EvolvingP < double > XEv,
    GradientsP < double > XGrad,
    FluxP < double > XFlux,
    double * dtmax,
    double * zb
) 

function updateKurgYGPU< float >

template __global__ void updateKurgYGPU< float > (
    Param XParam,
    BlockP < float > XBlock,
    EvolvingP < float > XEv,
    GradientsP < float > XGrad,
    FluxP < float > XFlux,
    float * dtmax,
    float * zb
) 


The documentation for this class was generated from the following file src/Kurganov.cu