Skip to content

File Kurganov.h

FileList > src > Kurganov.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 "Util_CPU.h"
  • #include "Spherical.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.
__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.
__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.
__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.
__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.
__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.
__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.
__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.
__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.
__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.
__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.
__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.

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 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 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 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 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 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 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 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 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 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 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 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


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