Skip to content

File Mesh.cu

FileList > src > 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.

int CalcInitnblk (
    Param XParam,
    Forcing < float > XForcing
) 

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<class T>
int CalcMaskblk (
    Param XParam,
    BlockP < T > XBlock
) 

Template parameters:

  • T Data type

Parameters:

  • XParam Model parameters
  • XBlock Block data structure

Returns:

Number of blocks with masked neighbors.


function CalcMaskblk< double >

template int CalcMaskblk< double > (
    Param XParam,
    BlockP < double > XBlock
) 

function CalcMaskblk< float >

template int CalcMaskblk< float > (
    Param XParam,
    BlockP < float > XBlock
) 

function FindMaskblk

Identifies and stores blocks with masked sides for boundary processing.

template<class T>
void FindMaskblk (
    Param XParam,
    BlockP < T > & XBlock
) 

Template parameters:

  • T Data type

Parameters:

  • XParam Model parameters
  • XBlock Block data structure

Populates mask arrays for blocks with masked sides for later boundary condition handling.


function FindMaskblk< double >

template void FindMaskblk< double > (
    Param XParam,
    BlockP < double > & XBlock
) 

function FindMaskblk< float >

template void FindMaskblk< float > (
    Param XParam,
    BlockP < float > & XBlock
) 

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:

  • XParam Model parameters
  • XForcing Forcing data
  • XBlock Block data structure

function InitBlockadapt

Initializes block adaptation arrays for mesh refinement/coarsening.

template<class T>
void InitBlockadapt (
    Param & XParam,
    BlockP < T > XBlock,
    AdaptP & XAdap
) 

Template parameters:

  • T Data type

Parameters:

  • XParam Model parameters
  • XBlock Block data structure
  • XAdap Adaptation data structure

function InitBlockadapt< double >

template void InitBlockadapt< double > (
    Param & XParam,
    BlockP < double > XBlock,
    AdaptP & XAdap
) 

function InitBlockadapt< float >

template void InitBlockadapt< float > (
    Param & XParam,
    BlockP < float > XBlock,
    AdaptP & XAdap
) 

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:

  • XParam Model parameters
  • XForcing Forcing data
  • XBlock Block data structure

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:

  • XParam Model parameters
  • XForcing Forcing data
  • XBlock Block data structure

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:

  • XParam Model parameters
  • XForcing Forcing data
  • XModel Model structure to hold mesh and block data

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