BG_Flood
0.1
Documentation (Work-in-progress)
|
#include "Header.cuh"
#include "Flow_kernel.cu"
#include "Init.cpp"
#include "Init_gpu.cu"
#include "Adapt_Flow_kernel.cu"
#include "Adapt_gpu.cu"
#include "write_output.cu"
#include "Mainloop_Adapt.cu"
Functions | |
void | mainloopGPUDB (Param XParam) |
void | mainloopGPUDATM (Param XParam) |
void | mainloopGPUDSPH (Param XParam) |
void | mainloopGPUDSPHATM (Param XParam) |
void | mainloopGPU (Param XParam) |
void | mainloopGPUATM (Param XParam) |
void | mainloopGPUold (Param XParam) |
void | mainloopCPU (Param XParam) |
int | main (int argc, char **argv) |
Variables | |
double | epsilon = 1e-30 |
double * | x |
double * | y |
double * | x_g |
double * | y_g |
float * | zs |
float * | hh |
float * | zb |
float * | uu |
float * | vv |
double * | zs_d |
double * | hh_d |
double * | zb_d |
double * | uu_d |
double * | vv_d |
float * | zs_g |
float * | hh_g |
float * | zb_g |
float * | uu_g |
float * | vv_g |
double * | zs_gd |
double * | hh_gd |
double * | zb_gd |
double * | uu_gd |
double * | vv_gd |
float * | zso |
float * | hho |
float * | uuo |
float * | vvo |
double * | zso_d |
double * | hho_d |
double * | uuo_d |
double * | vvo_d |
float * | zso_g |
float * | hho_g |
float * | uuo_g |
float * | vvo_g |
double * | zso_gd |
double * | hho_gd |
double * | uuo_gd |
double * | vvo_gd |
float * | dhdx |
float * | dhdy |
float * | dudx |
float * | dudy |
float * | dvdx |
float * | dvdy |
float * | dzsdx |
float * | dzsdy |
float * | dhdx_g |
float * | dhdy_g |
float * | dudx_g |
float * | dudy_g |
float * | dvdx_g |
float * | dvdy_g |
float * | dzsdx_g |
float * | dzsdy_g |
double * | dhdx_d |
double * | dhdy_d |
double * | dudx_d |
double * | dudy_d |
double * | dvdx_d |
double * | dvdy_d |
double * | dzsdx_d |
double * | dzsdy_d |
double * | dhdx_gd |
double * | dhdy_gd |
double * | dudx_gd |
double * | dudy_gd |
double * | dvdx_gd |
double * | dvdy_gd |
double * | dzsdx_gd |
double * | dzsdy_gd |
float * | Su |
float * | Sv |
float * | Fqux |
float * | Fquy |
float * | Fqvx |
float * | Fqvy |
float * | Fhu |
float * | Fhv |
float * | dh |
float * | dhu |
float * | dhv |
double * | Su_d |
double * | Sv_d |
double * | Fqux_d |
double * | Fquy_d |
double * | Fqvx_d |
double * | Fqvy_d |
double * | Fhu_d |
double * | Fhv_d |
double * | dh_d |
double * | dhu_d |
double * | dhv_d |
float * | Su_g |
float * | Sv_g |
float * | Fqux_g |
float * | Fquy_g |
float * | Fqvx_g |
float * | Fqvy_g |
float * | Fhu_g |
float * | Fhv_g |
float * | dh_g |
float * | dhu_g |
float * | dhv_g |
double * | Su_gd |
double * | Sv_gd |
double * | Fqux_gd |
double * | Fquy_gd |
double * | Fqvx_gd |
double * | Fqvy_gd |
double * | Fhu_gd |
double * | Fhv_gd |
double * | dh_gd |
double * | dhu_gd |
double * | dhv_gd |
float * | TSstore |
float * | TSstore_g |
double * | TSstore_d |
double * | TSstore_gd |
float * | hhmean |
float * | uumean |
float * | vvmean |
float * | zsmean |
float * | hhmean_g |
float * | uumean_g |
float * | vvmean_g |
float * | zsmean_g |
double * | hhmean_d |
double * | uumean_d |
double * | vvmean_d |
double * | zsmean_d |
double * | hhmean_gd |
double * | uumean_gd |
double * | vvmean_gd |
double * | zsmean_gd |
float * | hhmax |
float * | uumax |
float * | vvmax |
float * | zsmax |
float * | hhmax_g |
float * | uumax_g |
float * | vvmax_g |
float * | zsmax_g |
double * | hhmax_d |
double * | uumax_d |
double * | vvmax_d |
double * | zsmax_d |
double * | hhmax_gd |
double * | uumax_gd |
double * | vvmax_gd |
double * | zsmax_gd |
float * | vort |
float * | vort_g |
double * | vort_d |
double * | vort_gd |
float | dtmax = (float) (1.0 / epsilon) |
double | dtmax_d = 1.0 / epsilon |
double * | dtmax_gd |
float * | dtmax_g |
float * | arrmax_g |
float * | arrmin_g |
float * | arrmin |
double * | arrmax_gd |
double * | arrmin_gd |
double * | arrmin_d |
float * | dummy |
double * | dummy_d |
float * | bathydata |
float * | cf |
float * | cf_g |
double * | cf_d |
double * | cf_gd |
float * | blockxo |
float * | blockyo |
double * | blockxo_d |
double * | blockyo_d |
int * | leftblk |
int * | rightblk |
int * | topblk |
int * | botblk |
int * | bndleftblk |
int * | bndrightblk |
int * | bndtopblk |
int * | bndbotblk |
double * | blockxo_gd |
double * | blockyo_gd |
float * | blockxo_g |
float * | blockyo_g |
int * | leftblk_g |
int * | rightblk_g |
int * | topblk_g |
int * | botblk_g |
int * | bndleftblk_g |
int * | bndrightblk_g |
int * | bndtopblk_g |
int * | bndbotblk_g |
int * | Riverblk |
int * | Riverblk_g |
float * | Uwind |
float * | Uwbef |
float * | Uwaft |
float * | Vwind |
float * | Vwbef |
float * | Vwaft |
float * | PatmX |
float * | Patmbef |
float * | Patmaft |
float * | Patm |
float * | dPdx |
float * | dPdy |
double * | Patm_d |
double * | dPdx_d |
double * | dPdy_d |
float * | Uwind_g |
float * | Uwbef_g |
float * | Uwaft_g |
float * | Vwind_g |
float * | Vwbef_g |
float * | Vwaft_g |
float * | PatmX_g |
float * | Patmbef_g |
float * | Patmaft_g |
float * | Patm_g |
float * | dPdx_g |
float * | dPdy_g |
double * | Patm_gd |
double * | dPdx_gd |
double * | dPdy_gd |
float * | Rain |
float * | Rainbef |
float * | Rainaft |
float * | Rain_g |
float * | Rainbef_g |
float * | Rainaft_g |
int * | level |
int * | level_g |
int * | newlevel |
int * | newlevel_g |
int * | activeblk |
int * | availblk |
int * | invactive |
int * | activeblk_g |
int * | availblk_g |
int * | csumblk |
int * | csumblk_g |
int * | invactive_g |
bool * | coarsen |
bool * | refine |
std::map< std::string, float * > | OutputVarMapCPU |
std::map< std::string, double * > | OutputVarMapCPUD |
std::map< std::string, float * > | OutputVarMapGPU |
std::map< std::string, double * > | OutputVarMapGPUD |
std::map< std::string, int > | OutputVarMaplen |
cudaArray * | leftWLS_gp |
cudaArray * | rightWLS_gp |
cudaArray * | topWLS_gp |
cudaArray * | botWLS_gp |
cudaArray * | leftUvel_gp |
cudaArray * | rightUvel_gp |
cudaArray * | topUvel_gp |
cudaArray * | botUvel_gp |
cudaArray * | leftVvel_gp |
cudaArray * | rightVvel_gp |
cudaArray * | topVvel_gp |
cudaArray * | botVvel_gp |
cudaArray * | Uwind_gp |
cudaArray * | Vwind_gp |
cudaArray * | Patm_gp |
cudaArray * | Rain_gp |
cudaChannelFormatDesc | channelDescleftbndzs = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescrightbndzs = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescbotbndzs = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDesctopbndzs = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescleftbnduu = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescrightbnduu = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescbotbnduu = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDesctopbnduu = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescleftbndvv = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescrightbndvv = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescbotbndvv = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDesctopbndvv = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescUwind = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescVwind = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescPatm = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc | channelDescRain = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
int main | ( | int | argc, |
char ** | argv | ||
) |
Main function This function is the entry point to the software The main function setups all the init of the model and then calls the mainloop to actually run the model
There are 3 main class storing information about the model: XParam (class Param), XModel (class Model) and XForcing (class Forcing) Leading X stands for eXecution and is to avoid confusion between the class variable and the class declaration When running with the GPU there is also XModel_g which is the same as XModel but with GPU specific pointers
This function does:
WARMING
WARMING
WARMING
leftWLbnd.empty()
void mainloopCPU | ( | Param | XParam | ) |
void mainloopGPU | ( | Param | XParam | ) |
void mainloopGPUATM | ( | Param | XParam | ) |
void mainloopGPUDATM | ( | Param | XParam | ) |
void mainloopGPUDB | ( | Param | XParam | ) |
void mainloopGPUDSPH | ( | Param | XParam | ) |
void mainloopGPUDSPHATM | ( | Param | XParam | ) |
void mainloopGPUold | ( | Param | XParam | ) |
int * activeblk |
int * activeblk_g |
float* arrmax_g |
double* arrmax_gd |
float* arrmin |
double* arrmin_d |
float* arrmin_g |
double* arrmin_gd |
int * availblk |
int * availblk_g |
float* bathydata |
float* blockxo |
double* blockxo_d |
float* blockxo_g |
double* blockxo_gd |
float * blockyo |
double * blockyo_d |
float * blockyo_g |
double * blockyo_gd |
int * bndbotblk |
int * bndbotblk_g |
int* bndleftblk |
int* bndleftblk_g |
int * bndrightblk |
int * bndrightblk_g |
int * bndtopblk |
int * bndtopblk_g |
int * botblk |
int * botblk_g |
cudaArray* botUvel_gp |
cudaArray* botVvel_gp |
cudaArray* botWLS_gp |
float* cf |
double* cf_d |
float* cf_g |
double* cf_gd |
cudaChannelFormatDesc channelDescbotbnduu = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescbotbndvv = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescbotbndzs = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescleftbnduu = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescleftbndvv = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescleftbndzs = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescPatm = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescRain = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescrightbnduu = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescrightbndvv = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescrightbndzs = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDesctopbnduu = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDesctopbndvv = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDesctopbndzs = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescUwind = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
cudaChannelFormatDesc channelDescVwind = cudaCreateChannelDesc(32, 0, 0, 0, cudaChannelFormatKindFloat) |
bool* coarsen |
int * csumblk |
int * csumblk_g |
float* dh |
double* dh_d |
float* dh_g |
double* dh_gd |
float* dhdx |
double* dhdx_d |
float* dhdx_g |
double* dhdx_gd |
float * dhdy |
double * dhdy_d |
float * dhdy_g |
double * dhdy_gd |
float * dhu |
double * dhu_d |
float * dhu_g |
double * dhu_gd |
float * dhv |
double * dhv_d |
float * dhv_g |
double * dhv_gd |
float * dPdx |
double * dPdx_d |
float * dPdx_g |
double * dPdx_gd |
float * dPdy |
double * dPdy_d |
float * dPdy_g |
double * dPdy_gd |
float dtmax = (float) (1.0 / epsilon) |
double dtmax_d = 1.0 / epsilon |
float* dtmax_g |
double* dtmax_gd |
float * dudx |
double * dudx_d |
float * dudx_g |
double * dudx_gd |
float * dudy |
double * dudy_d |
float * dudy_g |
double * dudy_gd |
float* dummy |
double* dummy_d |
float * dvdx |
double * dvdx_d |
float * dvdx_g |
double * dvdx_gd |
float * dvdy |
double * dvdy_d |
float * dvdy_g |
double * dvdy_gd |
float* dzsdx |
double* dzsdx_d |
float* dzsdx_g |
double* dzsdx_gd |
float * dzsdy |
double * dzsdy_d |
float * dzsdy_g |
double * dzsdy_gd |
double epsilon = 1e-30 |
float* Fhu |
double* Fhu_d |
float* Fhu_g |
double* Fhu_gd |
float * Fhv |
double * Fhv_d |
float * Fhv_g |
double * Fhv_gd |
float * Fqux |
double * Fqux_d |
float * Fqux_g |
double * Fqux_gd |
float * Fquy |
double * Fquy_d |
float * Fquy_g |
double * Fquy_gd |
float * Fqvx |
double * Fqvx_d |
float * Fqvx_g |
double * Fqvx_gd |
float * Fqvy |
double * Fqvy_d |
float * Fqvy_g |
double * Fqvy_gd |
float * hh |
double * hh_d |
float * hh_g |
double * hh_gd |
float* hhmax |
double* hhmax_d |
float* hhmax_g |
double* hhmax_gd |
float* hhmean |
double* hhmean_d |
float* hhmean_g |
double* hhmean_gd |
float * hho |
double * hho_d |
float * hho_g |
double * hho_gd |
int * invactive |
int * invactive_g |
int* leftblk |
int* leftblk_g |
cudaArray* leftUvel_gp |
cudaArray* leftVvel_gp |
cudaArray* leftWLS_gp |
int* level |
int * level_g |
int * newlevel |
int * newlevel_g |
std::map<std::string, float *> OutputVarMapCPU |
std::map<std::string, double *> OutputVarMapCPUD |
std::map<std::string, float *> OutputVarMapGPU |
std::map<std::string, double *> OutputVarMapGPUD |
std::map<std::string, int> OutputVarMaplen |
float* Patm |
double* Patm_d |
float* Patm_g |
double* Patm_gd |
cudaArray* Patm_gp |
float * Patmaft |
float * Patmaft_g |
float * Patmbef |
float * Patmbef_g |
float* PatmX |
float* PatmX_g |
float* Rain |
float* Rain_g |
cudaArray* Rain_gp |
float * Rainaft |
float * Rainaft_g |
float * Rainbef |
float * Rainbef_g |
bool * refine |
int * rightblk |
int * rightblk_g |
cudaArray* rightUvel_gp |
cudaArray* rightVvel_gp |
cudaArray* rightWLS_gp |
int* Riverblk |
int * Riverblk_g |
float* Su |
double* Su_d |
float* Su_g |
double* Su_gd |
float * Sv |
double * Sv_d |
float * Sv_g |
double * Sv_gd |
int * topblk |
int * topblk_g |
cudaArray* topUvel_gp |
cudaArray* topVvel_gp |
cudaArray* topWLS_gp |
float* TSstore |
double* TSstore_d |
float * TSstore_g |
double * TSstore_gd |
float * uu |
double * uu_d |
float * uu_g |
double * uu_gd |
float * uumax |
double * uumax_d |
float * uumax_g |
double * uumax_gd |
float * uumean |
double * uumean_d |
float * uumean_g |
double * uumean_gd |
float * uuo |
double * uuo_d |
float * uuo_g |
double * uuo_gd |
float * Uwaft |
float * Uwaft_g |
float * Uwbef |
float * Uwbef_g |
float* Uwind |
float* Uwind_g |
cudaArray* Uwind_gp |
float* vort |
double* vort_d |
float * vort_g |
double * vort_gd |
float * vv |
double * vv_d |
float * vv_g |
double * vv_gd |
float * vvmax |
double * vvmax_d |
float * vvmax_g |
double * vvmax_gd |
float * vvmean |
double * vvmean_d |
float * vvmean_g |
double * vvmean_gd |
float * vvo |
double * vvo_d |
float * vvo_g |
double * vvo_gd |
float * Vwaft |
float * Vwaft_g |
float * Vwbef |
float * Vwbef_g |
float* Vwind |
float* Vwind_g |
cudaArray* Vwind_gp |
double* x |
double* x_g |
double * y |
double * y_g |
float * zb |
double * zb_d |
float * zb_g |
double * zb_gd |
float* zs |
double* zs_d |
float* zs_g |
double* zs_gd |
float * zsmax |
double * zsmax_d |
float * zsmax_g |
double * zsmax_gd |
float * zsmean |
double * zsmean_d |
float * zsmean_g |
double * zsmean_gd |
float* zso |
double* zso_d |
float* zso_g |
double* zso_gd |