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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxeszb
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxeszb
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxeszb
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxeszb
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
Gravitydelta
Cell sizeepsi
Small epsilon for stabilityCFL
CFL numbercm
Metric coefficientfm
Flux metrichp
Water depth (plus side)hm
Water depth (minus side)up
Velocity (plus side)um
Velocity (minus side)fh
Output: flux for hfu
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxesdtmax
Maximum time step arrayzb
Bathymetry arrayPatm
Atmospheric pressure arraydPdx
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxesdtmax
Maximum time step arrayzb
Bathymetry arrayPatm
Atmospheric pressure arraydPdx
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxesdtmax
Maximum time step arrayzb
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxesdtmax
Maximum time step arrayzb
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxesdtmax
Maximum time step arrayzb
Bathymetry arrayPatm
Atmospheric pressure arraydPdy
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxesdtmax
Maximum time step arrayzb
Bathymetry arrayPatm
Atmospheric pressure arraydPdy
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxesdtmax
Maximum time step arrayzb
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 parametersXBlock
Block parametersXEv
Evolving variablesXGrad
GradientsXFlux
Fluxesdtmax
Maximum time step arrayzb
Bathymetry array
The documentation for this class was generated from the following file src/Kurganov.h