File Mesh.cu
Go to the source code of this file
Mesh initialization and management routines for BG_Flood GPU model. More...
#include "Mesh.h"
Public Functions
Type | Name |
---|---|
int | CalcInitnblk (Param XParam, Forcing< float > XForcing) Calculates the initial number of blocks for the mesh. |
int | CalcMaskblk (Param XParam, BlockP< T > XBlock) Calculates the number of blocks with masked neighbors (for boundary handling). |
template int | CalcMaskblk< double > (Param XParam, BlockP< double > XBlock) |
template int | CalcMaskblk< float > (Param XParam, BlockP< float > XBlock) |
void | FindMaskblk (Param XParam, BlockP< T > & XBlock) Identifies and stores blocks with masked sides for boundary processing. |
template void | FindMaskblk< double > (Param XParam, BlockP< double > & XBlock) |
template void | FindMaskblk< float > (Param XParam, BlockP< float > & XBlock) |
void | InitBlockInfo (Param & XParam, Forcing< float > & XForcing, BlockP< T > & XBlock) Initializes block information (active status, level, coordinates, neighbors). |
void | InitBlockadapt (Param & XParam, BlockP< T > XBlock, AdaptP & XAdap) Initializes block adaptation arrays for mesh refinement/coarsening. |
template void | InitBlockadapt< double > (Param & XParam, BlockP< double > XBlock, AdaptP & XAdap) |
template void | InitBlockadapt< float > (Param & XParam, BlockP< float > XBlock, AdaptP & XAdap) |
void | InitBlockneighbours (Param & XParam, Forcing< float > & XForcing, BlockP< T > & XBlock) Initializes neighbor relationships for each block in a uniform mesh. |
template void | InitBlockneighbours< double > (Param & XParam, Forcing< float > & XForcing, BlockP< double > & XBlock) |
template void | InitBlockneighbours< float > (Param & XParam, Forcing< float > & XForcing, BlockP< float > & XBlock) |
void | InitBlockxoyo (Param XParam, Forcing< float > XForcing, BlockP< T > & XBlock) Initializes block coordinates and active status for the mesh. |
template void | InitBlockxoyo< double > (Param XParam, Forcing< float > XForcing, BlockP< double > & XBlockP) |
template void | InitBlockxoyo< float > (Param XParam, Forcing< float > XForcing, BlockP< float > & XBlock) |
void | InitMesh (Param & XParam, Forcing< float > & XForcing, Model< T > & XModel) Initializes the mesh and allocates memory for blocks. |
template void | InitMesh< double > (Param & XParam, Forcing< float > & XForcing, Model< double > & XModel) |
template void | InitMesh< float > (Param & XParam, Forcing< float > & XForcing, Model< float > & XModel) |
Detailed Description
Contains functions for block-based mesh setup, memory allocation, block adaptation, and block neighbor initialization.
Public Functions Documentation
function CalcInitnblk
Calculates the initial number of blocks for the mesh.
Parameters:
XParam
Model parameters (resolution, block size, etc.)XForcing
Forcing data (bathymetry, AOI polygon, etc.)
Returns:
Number of blocks to allocate for the mesh.
This function divides the domain into uniform blocks, checks masking and AOI, and counts blocks that are active for computation.
function CalcMaskblk
Calculates the number of blocks with masked neighbors (for boundary handling).
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structure
Returns:
Number of blocks with masked neighbors.
function CalcMaskblk< double >
function CalcMaskblk< float >
function FindMaskblk
Identifies and stores blocks with masked sides for boundary processing.
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structure
Populates mask arrays for blocks with masked sides for later boundary condition handling.
function FindMaskblk< double >
function FindMaskblk< float >
function InitBlockInfo
Initializes block information (active status, level, coordinates, neighbors).
template<class T>
void InitBlockInfo (
Param & XParam,
Forcing < float > & XForcing,
BlockP < T > & XBlock
)
Template parameters:
T
Data type
Parameters:
function InitBlockadapt
Initializes block adaptation arrays for mesh refinement/coarsening.
Template parameters:
T
Data type
Parameters:
XParam
Model parametersXBlock
Block data structureXAdap
Adaptation data structure
function InitBlockadapt< double >
function InitBlockadapt< float >
function InitBlockneighbours
Initializes neighbor relationships for each block in a uniform mesh.
template<class T>
void InitBlockneighbours (
Param & XParam,
Forcing < float > & XForcing,
BlockP < T > & XBlock
)
Template parameters:
T
Data type
Parameters:
Sets up neighbor indices for each block (left, right, top, bottom, corners).
function InitBlockneighbours< double >
template void InitBlockneighbours< double > (
Param & XParam,
Forcing < float > & XForcing,
BlockP < double > & XBlock
)
function InitBlockneighbours< float >
template void InitBlockneighbours< float > (
Param & XParam,
Forcing < float > & XForcing,
BlockP < float > & XBlock
)
function InitBlockxoyo
Initializes block coordinates and active status for the mesh.
template<class T>
void InitBlockxoyo (
Param XParam,
Forcing < float > XForcing,
BlockP < T > & XBlock
)
Template parameters:
T
Data type (float or double)
Parameters:
Sets block coordinates and marks active blocks based on mask and AOI polygon. Loops over all blocks, checks if each block is inside the area of interest (AOI), and if the mask threshold is met, sets the block as active and stores its coordinates.
function InitBlockxoyo< double >
template void InitBlockxoyo< double > (
Param XParam,
Forcing < float > XForcing,
BlockP < double > & XBlockP
)
function InitBlockxoyo< float >
template void InitBlockxoyo< float > (
Param XParam,
Forcing < float > XForcing,
BlockP < float > & XBlock
)
function InitMesh
Initializes the mesh and allocates memory for blocks.
template<class T>
void InitMesh (
Param & XParam,
Forcing < float > & XForcing,
Model < T > & XModel
)
Template parameters:
T
Data type (float or double)
Parameters:
Allocates memory, initializes block info, adaptation info, and boundary masks.
function InitMesh< double >
template void InitMesh< double > (
Param & XParam,
Forcing < float > & XForcing,
Model < double > & XModel
)
function InitMesh< float >
template void InitMesh< float > (
Param & XParam,
Forcing < float > & XForcing,
Model < float > & XModel
)
The documentation for this class was generated from the following file src/Mesh.cu