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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxeszbBathymetry 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxeszbBathymetry 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxeszbBathymetry 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxeszbBathymetry 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:
TData type
Parameters:
gGravitydeltaCell sizeepsiSmall epsilon for stabilityCFLCFL numbercmMetric coefficientfmFlux metrichpWater depth (plus side)hmWater depth (minus side)upVelocity (plus side)umVelocity (minus side)fhOutput: flux for hfuOutput: 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxesdtmaxMaximum time step arrayzbBathymetry arrayPatmAtmospheric pressure arraydPdxPressure 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxesdtmaxMaximum time step arrayzbBathymetry arrayPatmAtmospheric pressure arraydPdxPressure 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxesdtmaxMaximum time step arrayzbBathymetry 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxesdtmaxMaximum time step arrayzbBathymetry 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxesdtmaxMaximum time step arrayzbBathymetry arrayPatmAtmospheric pressure arraydPdyPressure 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxesdtmaxMaximum time step arrayzbBathymetry arrayPatmAtmospheric pressure arraydPdyPressure 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxesdtmaxMaximum time step arrayzbBathymetry 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:
TData type
Parameters:
XParamSimulation parametersXBlockBlock parametersXEvEvolving variablesXGradGradientsXFluxFluxesdtmaxMaximum time step arrayzbBathymetry array
The documentation for this class was generated from the following file src/Kurganov.h