File Meanmax.cu
FileList > src > Meanmax.cu
Go to the source code of this file
#include "Meanmax.h"
Public Functions
Type | Name |
---|---|
void | Calcmeanmax (Param XParam, Loop< T > & XLoop, Model< T > XModel, Model< T > XModel_g) Calculate mean and/or max of requested variables on GPU/CPU. |
template void | Calcmeanmax< double > (Param XParam, Loop< double > & XLoop, Model< double > XModel, Model< double > XModel_g) |
template void | Calcmeanmax< float > (Param XParam, Loop< float > & XLoop, Model< float > XModel, Model< float > XModel_g) |
void | Initmeanmax (Param XParam, Loop< T > XLoop, Model< T > XModel, Model< T > XModel_g) Initialize mean and max statistics at the start of the simulation. |
template void | Initmeanmax< double > (Param XParam, Loop< double > XLoop, Model< double > XModel, Model< double > XModel_g) |
template void | Initmeanmax< float > (Param XParam, Loop< float > XLoop, Model< float > XModel, Model< float > XModel_g) |
__host__ void | addUandhU_CPU (Param XParam, BlockP< T > XBlock, T * h, T * u, T * v, T * U, T * hU) Compute velocity magnitude and hU product on the CPU. |
__global__ void | addUandhU_GPU (Param XParam, BlockP< T > XBlock, T * h, T * u, T * v, T * U, T * hU) CUDA kernel to compute velocity magnitude and hU product. |
__host__ void | addavg_varCPU (Param XParam, BlockP< T > XBlock, T * Varmean, T * Var) Accumulate mean values for a variable on the CPU. |
__global__ void | addavg_varGPU (Param XParam, BlockP< T > XBlock, T * Varmean, T * Var) CUDA kernel to accumulate mean values for a variable. |
__host__ void | addwettime_CPU (Param XParam, BlockP< T > XBlock, T * wett, T * h, T thresold, T time) Accumulate wet duration for each cell on the CPU. |
__global__ void | addwettime_GPU (Param XParam, BlockP< T > XBlock, T * wett, T * h, T thresold, T time) CUDA kernel to accumulate wet duration for each cell. |
__host__ void | divavg_varCPU (Param XParam, BlockP< T > XBlock, T ntdiv, T * Varmean) Divide mean values by the number of steps on the CPU. |
__global__ void | divavg_varGPU (Param XParam, BlockP< T > XBlock, T ntdiv, T * Varmean) CUDA kernel to divide mean values by the number of steps. |
__host__ void | max_Norm_CPU (Param XParam, BlockP< T > XBlock, T * Varmax, T * Var1, T * Var2) Compute max velocity magnitude on the CPU. |
__global__ void | max_Norm_GPU (Param XParam, BlockP< T > XBlock, T * Varmax, T * Var1, T * Var2) CUDA kernel to compute max velocity magnitude. |
__host__ void | max_hU_CPU (Param XParam, BlockP< T > XBlock, T * Varmax, T * h, T * u, T * v) Compute max hU value on the CPU. |
__global__ void | max_hU_GPU (Param XParam, BlockP< T > XBlock, T * Varmax, T * h, T * u, T * v) CUDA kernel to compute max hU value. |
__host__ void | max_varCPU (Param XParam, BlockP< T > XBlock, T * Varmax, T * Var) Compute max value for a variable on the CPU. |
__global__ void | max_varGPU (Param XParam, BlockP< T > XBlock, T * Varmax, T * Var) CUDA kernel to compute max value for a variable. |
void | resetmaxCPU (Param XParam, Loop< T > XLoop, BlockP< T > XBlock, EvolvingP_M< T > & XEv) Reset max statistics arrays on the CPU. |
void | resetmaxGPU (Param XParam, Loop< T > XLoop, BlockP< T > XBlock, EvolvingP_M< T > & XEv) Reset max statistics arrays on the GPU. |
void | resetmeanCPU (Param XParam, Loop< T > XLoop, BlockP< T > XBlock, EvolvingP_M< T > & XEv) Reset mean statistics arrays on the CPU. |
template void | resetmeanCPU< double > (Param XParam, Loop< double > XLoop, BlockP< double > XBlock, EvolvingP_M< double > & XEv) |
template void | resetmeanCPU< float > (Param XParam, Loop< float > XLoop, BlockP< float > XBlock, EvolvingP_M< float > & XEv) |
void | resetmeanGPU (Param XParam, Loop< T > XLoop, BlockP< T > XBlock, EvolvingP_M< T > & XEv) Reset mean statistics arrays on the GPU. |
template void | resetmeanGPU< double > (Param XParam, Loop< double > XLoop, BlockP< double > XBlock, EvolvingP_M< double > & XEv) |
template void | resetmeanGPU< float > (Param XParam, Loop< float > XLoop, BlockP< float > XBlock, EvolvingP_M< float > & XEv) |
void | resetmeanmax (Param XParam, Loop< T > & XLoop, Model< T > XModel, Model< T > XModel_g) Reset mean and/or max statistics at output steps. |
template void | resetmeanmax< double > (Param XParam, Loop< double > & XLoop, Model< double > XModel, Model< double > XModel_g) |
template void | resetmeanmax< float > (Param XParam, Loop< float > & XLoop, Model< float > XModel, Model< float > XModel_g) |
void | resetvalCPU (Param XParam, BlockP< T > XBlock, T *& var, T val) Reset a variable array to a specified value on the CPU. |
template void | resetvalCPU< double > (Param XParam, BlockP< double > XBlock, double *& var, double val) |
template void | resetvalCPU< float > (Param XParam, BlockP< float > XBlock, float *& var, float val) |
void | resetvalGPU (Param XParam, BlockP< T > XBlock, T *& var, T val) Reset a variable array to a specified value on the GPU. |
template void | resetvalGPU< double > (Param XParam, BlockP< double > XBlock, double *& var, double val) |
template void | resetvalGPU< float > (Param XParam, BlockP< float > XBlock, float *& var, float val) |
Public Functions Documentation
function Calcmeanmax
Calculate mean and/or max of requested variables on GPU/CPU.
template<class T>
void Calcmeanmax (
Param XParam,
Loop < T > & XLoop,
Model < T > XModel,
Model < T > XModel_g
)
Computes mean, max, and wet duration statistics for evolving variables, handling both CPU and GPU execution paths.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXLoop
Loop control structureXModel
Model state (CPU)XModel_g
Model state (GPU)
function Calcmeanmax< double >
template void Calcmeanmax< double > (
Param XParam,
Loop < double > & XLoop,
Model < double > XModel,
Model < double > XModel_g
)
function Calcmeanmax< float >
template void Calcmeanmax< float > (
Param XParam,
Loop < float > & XLoop,
Model < float > XModel,
Model < float > XModel_g
)
function Initmeanmax
Initialize mean and max statistics at the start of the simulation.
template<class T>
void Initmeanmax (
Param XParam,
Loop < T > XLoop,
Model < T > XModel,
Model < T > XModel_g
)
Sets up/reset statistics arrays for the initial simulation step.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXLoop
Loop control structureXModel
Model state (CPU)XModel_g
Model state (GPU)
function Initmeanmax< double >
template void Initmeanmax< double > (
Param XParam,
Loop < double > XLoop,
Model < double > XModel,
Model < double > XModel_g
)
function Initmeanmax< float >
template void Initmeanmax< float > (
Param XParam,
Loop < float > XLoop,
Model < float > XModel,
Model < float > XModel_g
)
function addUandhU_CPU
Compute velocity magnitude and hU product on the CPU.
template<class T>
__host__ void addUandhU_CPU (
Param XParam,
BlockP < T > XBlock,
T * h,
T * u,
T * v,
T * U,
T * hU
)
Calculates the velocity magnitude and its product with water depth for each cell on the CPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block datah
Water depth arrayu
U-velocity arrayv
V-velocity arrayU
Output velocity magnitude arrayhU
Output hU product array
function addUandhU_GPU
CUDA kernel to compute velocity magnitude and hU product.
template<class T>
__global__ void addUandhU_GPU (
Param XParam,
BlockP < T > XBlock,
T * h,
T * u,
T * v,
T * U,
T * hU
)
Calculates the velocity magnitude and its product with water depth for each cell on the GPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block datah
Water depth arrayu
U-velocity arrayv
V-velocity arrayU
Output velocity magnitude arrayhU
Output hU product array
function addavg_varCPU
Accumulate mean values for a variable on the CPU.
template<class T>
__host__ void addavg_varCPU (
Param XParam,
BlockP < T > XBlock,
T * Varmean,
T * Var
)
Adds the current value to the running mean for each cell on the CPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block dataVarmean
Mean variable arrayVar
Source variable array
function addavg_varGPU
CUDA kernel to accumulate mean values for a variable.
template<class T>
__global__ void addavg_varGPU (
Param XParam,
BlockP < T > XBlock,
T * Varmean,
T * Var
)
Adds the current value to the running mean for each cell on the GPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block dataVarmean
Mean variable arrayVar
Source variable array
function addwettime_CPU
Accumulate wet duration for each cell on the CPU.
template<class T>
__host__ void addwettime_CPU (
Param XParam,
BlockP < T > XBlock,
T * wett,
T * h,
T thresold,
T time
)
Adds time to the wet duration for cells where water depth exceeds a threshold on the CPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block datawett
Wet duration arrayh
Water depth arraythresold
Wet threshold valuetime
Time increment
function addwettime_GPU
CUDA kernel to accumulate wet duration for each cell.
template<class T>
__global__ void addwettime_GPU (
Param XParam,
BlockP < T > XBlock,
T * wett,
T * h,
T thresold,
T time
)
Adds time to the wet duration for cells where water depth exceeds a threshold on the GPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block datawett
Wet duration arrayh
Water depth arraythresold
Wet threshold valuetime
Time increment
function divavg_varCPU
Divide mean values by the number of steps on the CPU.
template<class T>
__host__ void divavg_varCPU (
Param XParam,
BlockP < T > XBlock,
T ntdiv,
T * Varmean
)
Finalizes the mean calculation by dividing accumulated values by the number of time steps on the CPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block datantdiv
Number of time stepsVarmean
Mean variable array
function divavg_varGPU
CUDA kernel to divide mean values by the number of steps.
template<class T>
__global__ void divavg_varGPU (
Param XParam,
BlockP < T > XBlock,
T ntdiv,
T * Varmean
)
Finalizes the mean calculation by dividing accumulated values by the number of time steps on the GPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block datantdiv
Number of time stepsVarmean
Mean variable array
function max_Norm_CPU
Compute max velocity magnitude on the CPU.
template<class T>
__host__ void max_Norm_CPU (
Param XParam,
BlockP < T > XBlock,
T * Varmax,
T * Var1,
T * Var2
)
Updates the max velocity magnitude for each cell by comparing with the current value using CPU routines.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block dataVarmax
Max variable arrayVar1
U-velocity arrayVar2
V-velocity array
function max_Norm_GPU
CUDA kernel to compute max velocity magnitude.
template<class T>
__global__ void max_Norm_GPU (
Param XParam,
BlockP < T > XBlock,
T * Varmax,
T * Var1,
T * Var2
)
Updates the max velocity magnitude for each cell by comparing with the current value on the GPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block dataVarmax
Max variable arrayVar1
U-velocity arrayVar2
V-velocity array
function max_hU_CPU
Compute max hU value on the CPU.
template<class T>
__host__ void max_hU_CPU (
Param XParam,
BlockP < T > XBlock,
T * Varmax,
T * h,
T * u,
T * v
)
Updates the max hU value for each cell by comparing with the current value using CPU routines.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block dataVarmax
Max variable arrayh
Water depth arrayu
U-velocity arrayv
V-velocity array
function max_hU_GPU
CUDA kernel to compute max hU value.
template<class T>
__global__ void max_hU_GPU (
Param XParam,
BlockP < T > XBlock,
T * Varmax,
T * h,
T * u,
T * v
)
Updates the max hU value for each cell by comparing with the current value on the GPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block dataVarmax
Max variable arrayh
Water depth arrayu
U-velocity arrayv
V-velocity array
function max_varCPU
Compute max value for a variable on the CPU.
template<class T>
__host__ void max_varCPU (
Param XParam,
BlockP < T > XBlock,
T * Varmax,
T * Var
)
Updates the max value for each cell by comparing with the current value using CPU routines.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block dataVarmax
Max variable arrayVar
Source variable array
function max_varGPU
CUDA kernel to compute max value for a variable.
template<class T>
__global__ void max_varGPU (
Param XParam,
BlockP < T > XBlock,
T * Varmax,
T * Var
)
Updates the max value for each cell by comparing with the current value on the GPU.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block dataVarmax
Max variable arrayVar
Source variable array
function resetmaxCPU
Reset max statistics arrays on the CPU.
template<class T>
void resetmaxCPU (
Param XParam,
Loop < T > XLoop,
BlockP < T > XBlock,
EvolvingP_M < T > & XEv
)
Sets all max arrays to a large negative value using CPU routines.
Template parameters:
T
Data type (float or double)
Parameters:
function resetmaxGPU
Reset max statistics arrays on the GPU.
template<class T>
void resetmaxGPU (
Param XParam,
Loop < T > XLoop,
BlockP < T > XBlock,
EvolvingP_M < T > & XEv
)
Sets all max arrays to a large negative value using a CUDA kernel.
Template parameters:
T
Data type (float or double)
Parameters:
function resetmeanCPU
Reset mean statistics arrays on the CPU.
template<class T>
void resetmeanCPU (
Param XParam,
Loop < T > XLoop,
BlockP < T > XBlock,
EvolvingP_M < T > & XEv
)
Sets all mean arrays to zero using CPU routines.
Template parameters:
T
Data type (float or double)
Parameters:
function resetmeanCPU< double >
template void resetmeanCPU< double > (
Param XParam,
Loop < double > XLoop,
BlockP < double > XBlock,
EvolvingP_M < double > & XEv
)
function resetmeanCPU< float >
template void resetmeanCPU< float > (
Param XParam,
Loop < float > XLoop,
BlockP < float > XBlock,
EvolvingP_M < float > & XEv
)
function resetmeanGPU
Reset mean statistics arrays on the GPU.
template<class T>
void resetmeanGPU (
Param XParam,
Loop < T > XLoop,
BlockP < T > XBlock,
EvolvingP_M < T > & XEv
)
Sets all mean arrays to zero using a CUDA kernel.
Template parameters:
T
Data type (float or double)
Parameters:
function resetmeanGPU< double >
template void resetmeanGPU< double > (
Param XParam,
Loop < double > XLoop,
BlockP < double > XBlock,
EvolvingP_M < double > & XEv
)
function resetmeanGPU< float >
template void resetmeanGPU< float > (
Param XParam,
Loop < float > XLoop,
BlockP < float > XBlock,
EvolvingP_M < float > & XEv
)
function resetmeanmax
Reset mean and/or max statistics at output steps.
template<class T>
void resetmeanmax (
Param XParam,
Loop < T > & XLoop,
Model < T > XModel,
Model < T > XModel_g
)
Resets mean, max, and wet duration arrays after output is produced, handling both CPU and GPU paths.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXLoop
Loop control structureXModel
Model state (CPU)XModel_g
Model state (GPU)
function resetmeanmax< double >
template void resetmeanmax< double > (
Param XParam,
Loop < double > & XLoop,
Model < double > XModel,
Model < double > XModel_g
)
function resetmeanmax< float >
template void resetmeanmax< float > (
Param XParam,
Loop < float > & XLoop,
Model < float > XModel,
Model < float > XModel_g
)
function resetvalCPU
Reset a variable array to a specified value on the CPU.
Sets all elements of the array to the given value using CPU routines.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block datavar
Variable array to resetval
Value to set
function resetvalCPU< double >
template void resetvalCPU< double > (
Param XParam,
BlockP < double > XBlock,
double *& var,
double val
)
function resetvalCPU< float >
template void resetvalCPU< float > (
Param XParam,
BlockP < float > XBlock,
float *& var,
float val
)
function resetvalGPU
Reset a variable array to a specified value on the GPU.
Sets all elements of the array to the given value using a CUDA kernel.
Template parameters:
T
Data type (float or double)
Parameters:
XParam
Model parametersXBlock
Block datavar
Variable array to resetval
Value to set
function resetvalGPU< double >
template void resetvalGPU< double > (
Param XParam,
BlockP < double > XBlock,
double *& var,
double val
)
function resetvalGPU< float >
template void resetvalGPU< float > (
Param XParam,
BlockP < float > XBlock,
float *& var,
float val
)
The documentation for this class was generated from the following file src/Meanmax.cu