BG_Flood  0.1
Documentation (Work-in-progress)
Bas_Cart_CPU.cpp File Reference
#include "Header.cuh"
Include dependency graph for Bas_Cart_CPU.cpp:

Functions

template<class T >
sq (T a)
 
int findright (int blksize, int ix, int iy, int bid, int blrightid)
 
int findleft (int blksize, int ix, int iy, int bid, int blleftid)
 
int findtop (int blksize, int ix, int iy, int bid, int bltopid)
 
int findbot (int blksize, int ix, int iy, int bid, int blbotid)
 
template<class T >
const T & max (const T &a, const T &b)
 
template<class T >
const T & min (const T &a, const T &b)
 
template<class T >
minmod2 (T theta, T s0, T s1, T s2)
 
float interp2wnd (int wndnx, int wndny, float wnddx, float wndxo, float wndyo, float x, float y, float *U)
 
double interp2wnd (int wndnx, int wndny, double wnddx, double wndxo, double wndyo, double x, double y, float *U)
 
template<class T >
void gradient (int nblk, int blksize, T theta, T delta, int *leftblk, int *rightblk, int *topblk, int *botblk, T *a, T *&dadx, T *&dady)
 
template<class T >
void kurganov (T g, T CFL, T hm, T hp, T um, T up, T Delta, T *fh, T *fq, T *dtmax)
 
void kurganovf (float g, float CFL, float hm, float hp, float um, float up, float Delta, float *fh, float *fq, float *dtmax)
 
void kurganovd (double g, double CFL, double hm, double hp, double um, double up, double Delta, double *fh, double *fq, double *dtmax)
 
void update (int nblk, int blksize, float theta, float dt, float eps, float g, float CFL, float delta, float *hh, float *zs, float *uu, float *vv, float *&dh, float *&dhu, float *&dhv)
 
void updateATM (int nblk, int blksize, int cstwind, int cstpress, int windnx, int windny, float winddx, float windxo, float windyo, float Uwndi, float Vwndi, float theta, float dt, float eps, float g, float CFL, float delta, float Cd, float Pa2m, float *hh, float *zs, float *uu, float *vv, float *&dh, float *&dhu, float *&dhv, float *Uwnd, float *Vwnd, float *Patm)
 
void updateD (int nblk, int blksize, double theta, double dt, double eps, double g, double CFL, double delta, double *hh, double *zs, double *uu, double *vv, double *&dh, double *&dhu, double *&dhv)
 
void update_spherical (int nblk, int blksize, double theta, double dt, double eps, double g, double CFL, double delta, double Radius, double ymax, double *blockyo, double *hh, double *zs, double *uu, double *vv, double *&dh, double *&dhu, double *&dhv)
 
template<class T >
void advance (int nblk, int blksize, T dt, T eps, T *zb, T *hh, T *zs, T *uu, T *vv, T *dh, T *dhu, T *dhv, T *&hho, T *&zso, T *&uuo, T *&vvo)
 
template<class T >
void cleanup (int nblk, int blksize, T *hhi, T *zsi, T *uui, T *vvi, T *&hho, T *&zso, T *&uuo, T *&vvo)
 
void create2dnc (int nx, int ny, double dx, double dy, double totaltime, double *xx, double *yy, float *var)
 
void write2varnc (int nx, int ny, double totaltime, float *var)
 
double FlowCPU (Param XParam, double nextoutputtime)
 
double FlowCPUATM (Param XParam, double nextoutputtime, int cstwind, int cstpress, float Uwindi, float Vwindi)
 
double FlowCPUSpherical (Param XParam, double nextoutputtime)
 
double FlowCPUDouble (Param XParam, double nextoutputtime)
 
void leftdirichletCPU_old (int nx, int ny, float g, std::vector< double > zsbndvec, float *zs, float *zb, float *hh, float *uu, float *vv)
 
void leftdirichletCPU (int nblk, int blksize, float xo, float yo, float g, float dx, std::vector< double > zsbndvec, float *blockxo, float *blockyo, float *zs, float *zb, float *hh, float *uu, float *vv)
 
void leftdirichletCPUD (int nblk, int blksize, double xo, double yo, double g, double dx, std::vector< double > zsbndvec, double *blockxo, double *blockyo, double *zs, double *zb, double *hh, double *uu, double *vv)
 
void rightdirichletCPU (int nblk, int blksize, int nx, float xo, float yo, float g, float dx, std::vector< double > zsbndvec, float *blockxo, float *blockyo, float *zs, float *zb, float *hh, float *uu, float *vv)
 
void rightdirichletCPUD (int nblk, int blksize, int nx, double xo, double yo, double g, double dx, std::vector< double > zsbndvec, double *blockxo, double *blockyo, double *zs, double *zb, double *hh, double *uu, double *vv)
 
void topdirichletCPU (int nblk, int blksize, int ny, float xo, float yo, float g, float dx, std::vector< double > zsbndvec, float *blockxo, float *blockyo, float *zs, float *zb, float *hh, float *uu, float *vv)
 
void topdirichletCPUD (int nblk, int blksize, int ny, double xo, double yo, double g, double dx, std::vector< double > zsbndvec, double *blockxo, double *blockyo, double *zs, double *zb, double *hh, double *uu, double *vv)
 
void botdirichletCPU (int nblk, int blksize, int ny, float xo, float yo, float g, float dx, std::vector< double > zsbndvec, float *blockxo, float *blockyo, float *zs, float *zb, float *hh, float *uu, float *vv)
 
void botdirichletCPUD (int nblk, int blksize, int ny, double xo, double yo, double g, double dx, std::vector< double > zsbndvec, double *blockxo, double *blockyo, double *zs, double *zb, double *hh, double *uu, double *vv)
 
template<class T >
void bottomfrictionCPU (int nblk, int blksize, int smart, T dt, T eps, T *cf, T *hh, T *uu, T *vv)
 
template<class T >
void discharge_bnd_v_CPU (Param XParam, T *zs, T *hh)
 
void noslipbndLCPU (Param XParam)
 
void noslipbndRCPU (Param XParam)
 
void noslipbndTCPU (Param XParam)
 
void noslipbndBCPU (Param XParam)
 
template<class T >
void noslipbndLeftCPU (int nblk, int blksize, T xo, T eps, T *blockxo, T *zb, T *zs, T *hh, T *uu, T *vv)
 
template<class T >
void noslipbndRightCPU (int nblk, int blksize, T xo, T xmax, T eps, T dx, T *blockxo, T *zb, T *zs, T *hh, T *uu, T *vv)
 
template<class T >
void noslipbndTopCPU (int nblk, int blksize, T yo, T ymax, T eps, T dx, T *blockyo, T *zb, T *zs, T *hh, T *uu, T *vv)
 
template<class T >
void noslipbndBotCPU (int nblk, int blksize, T yo, T eps, T *blockyo, T *zb, T *zs, T *hh, T *uu, T *vv)
 
void AddmeanCPU (Param XParam)
 
void AddmeanCPUD (Param XParam)
 
void DivmeanCPU (Param XParam, float nstep)
 
void DivmeanCPUD (Param XParam, float nstep)
 
void ResetmeanCPU (Param XParam)
 
void ResetmeanCPUD (Param XParam)
 
void maxallCPU (Param XParam)
 
void maxallCPUD (Param XParam)
 
void CalcVort (Param XParam)
 
void CalcVortD (Param XParam)
 

Function Documentation

◆ AddmeanCPU()

void AddmeanCPU ( Param  XParam)

◆ AddmeanCPUD()

void AddmeanCPUD ( Param  XParam)

◆ advance()

template<class T >
void advance ( int  nblk,
int  blksize,
dt,
eps,
T *  zb,
T *  hh,
T *  zs,
T *  uu,
T *  vv,
T *  dh,
T *  dhu,
T *  dhv,
T *&  hho,
T *&  zso,
T *&  uuo,
T *&  vvo 
)

◆ botdirichletCPU()

void botdirichletCPU ( int  nblk,
int  blksize,
int  ny,
float  xo,
float  yo,
float  g,
float  dx,
std::vector< double >  zsbndvec,
float *  blockxo,
float *  blockyo,
float *  zs,
float *  zb,
float *  hh,
float *  uu,
float *  vv 
)

◆ botdirichletCPUD()

void botdirichletCPUD ( int  nblk,
int  blksize,
int  ny,
double  xo,
double  yo,
double  g,
double  dx,
std::vector< double >  zsbndvec,
double *  blockxo,
double *  blockyo,
double *  zs,
double *  zb,
double *  hh,
double *  uu,
double *  vv 
)

◆ bottomfrictionCPU()

template<class T >
void bottomfrictionCPU ( int  nblk,
int  blksize,
int  smart,
dt,
eps,
T *  cf,
T *  hh,
T *  uu,
T *  vv 
)

◆ CalcVort()

void CalcVort ( Param  XParam)

◆ CalcVortD()

void CalcVortD ( Param  XParam)

◆ cleanup()

template<class T >
void cleanup ( int  nblk,
int  blksize,
T *  hhi,
T *  zsi,
T *  uui,
T *  vvi,
T *&  hho,
T *&  zso,
T *&  uuo,
T *&  vvo 
)

◆ create2dnc()

void create2dnc ( int  nx,
int  ny,
double  dx,
double  dy,
double  totaltime,
double *  xx,
double *  yy,
float *  var 
)

◆ discharge_bnd_v_CPU()

template<class T >
void discharge_bnd_v_CPU ( Param  XParam,
T *  zs,
T *  hh 
)

◆ DivmeanCPU()

void DivmeanCPU ( Param  XParam,
float  nstep 
)

◆ DivmeanCPUD()

void DivmeanCPUD ( Param  XParam,
float  nstep 
)

◆ findbot()

int findbot ( int  blksize,
int  ix,
int  iy,
int  bid,
int  blbotid 
)

◆ findleft()

int findleft ( int  blksize,
int  ix,
int  iy,
int  bid,
int  blleftid 
)

◆ findright()

int findright ( int  blksize,
int  ix,
int  iy,
int  bid,
int  blrightid 
)

◆ findtop()

int findtop ( int  blksize,
int  ix,
int  iy,
int  bid,
int  bltopid 
)

◆ FlowCPU()

double FlowCPU ( Param  XParam,
double  nextoutputtime 
)

◆ FlowCPUATM()

double FlowCPUATM ( Param  XParam,
double  nextoutputtime,
int  cstwind,
int  cstpress,
float  Uwindi,
float  Vwindi 
)

◆ FlowCPUDouble()

double FlowCPUDouble ( Param  XParam,
double  nextoutputtime 
)

◆ FlowCPUSpherical()

double FlowCPUSpherical ( Param  XParam,
double  nextoutputtime 
)

◆ gradient()

template<class T >
void gradient ( int  nblk,
int  blksize,
theta,
delta,
int *  leftblk,
int *  rightblk,
int *  topblk,
int *  botblk,
T *  a,
T *&  dadx,
T *&  dady 
)

◆ interp2wnd() [1/2]

double interp2wnd ( int  wndnx,
int  wndny,
double  wnddx,
double  wndxo,
double  wndyo,
double  x,
double  y,
float *  U 
)

◆ interp2wnd() [2/2]

float interp2wnd ( int  wndnx,
int  wndny,
float  wnddx,
float  wndxo,
float  wndyo,
float  x,
float  y,
float *  U 
)

◆ kurganov()

template<class T >
void kurganov ( g,
CFL,
hm,
hp,
um,
up,
Delta,
T *  fh,
T *  fq,
T *  dtmax 
)

◆ kurganovd()

void kurganovd ( double  g,
double  CFL,
double  hm,
double  hp,
double  um,
double  up,
double  Delta,
double *  fh,
double *  fq,
double *  dtmax 
)

◆ kurganovf()

void kurganovf ( float  g,
float  CFL,
float  hm,
float  hp,
float  um,
float  up,
float  Delta,
float *  fh,
float *  fq,
float *  dtmax 
)

◆ leftdirichletCPU()

void leftdirichletCPU ( int  nblk,
int  blksize,
float  xo,
float  yo,
float  g,
float  dx,
std::vector< double >  zsbndvec,
float *  blockxo,
float *  blockyo,
float *  zs,
float *  zb,
float *  hh,
float *  uu,
float *  vv 
)

◆ leftdirichletCPU_old()

void leftdirichletCPU_old ( int  nx,
int  ny,
float  g,
std::vector< double >  zsbndvec,
float *  zs,
float *  zb,
float *  hh,
float *  uu,
float *  vv 
)

◆ leftdirichletCPUD()

void leftdirichletCPUD ( int  nblk,
int  blksize,
double  xo,
double  yo,
double  g,
double  dx,
std::vector< double >  zsbndvec,
double *  blockxo,
double *  blockyo,
double *  zs,
double *  zb,
double *  hh,
double *  uu,
double *  vv 
)

◆ max()

template<class T >
const T& max ( const T &  a,
const T &  b 
)

◆ maxallCPU()

void maxallCPU ( Param  XParam)

◆ maxallCPUD()

void maxallCPUD ( Param  XParam)

◆ min()

template<class T >
const T& min ( const T &  a,
const T &  b 
)

◆ minmod2()

template<class T >
T minmod2 ( theta,
s0,
s1,
s2 
)

◆ noslipbndBCPU()

void noslipbndBCPU ( Param  XParam)

◆ noslipbndBotCPU()

template<class T >
void noslipbndBotCPU ( int  nblk,
int  blksize,
yo,
eps,
T *  blockyo,
T *  zb,
T *  zs,
T *  hh,
T *  uu,
T *  vv 
)

◆ noslipbndLCPU()

void noslipbndLCPU ( Param  XParam)

◆ noslipbndLeftCPU()

template<class T >
void noslipbndLeftCPU ( int  nblk,
int  blksize,
xo,
eps,
T *  blockxo,
T *  zb,
T *  zs,
T *  hh,
T *  uu,
T *  vv 
)

◆ noslipbndRCPU()

void noslipbndRCPU ( Param  XParam)

◆ noslipbndRightCPU()

template<class T >
void noslipbndRightCPU ( int  nblk,
int  blksize,
xo,
xmax,
eps,
dx,
T *  blockxo,
T *  zb,
T *  zs,
T *  hh,
T *  uu,
T *  vv 
)

◆ noslipbndTCPU()

void noslipbndTCPU ( Param  XParam)

◆ noslipbndTopCPU()

template<class T >
void noslipbndTopCPU ( int  nblk,
int  blksize,
yo,
ymax,
eps,
dx,
T *  blockyo,
T *  zb,
T *  zs,
T *  hh,
T *  uu,
T *  vv 
)

◆ ResetmeanCPU()

void ResetmeanCPU ( Param  XParam)

◆ ResetmeanCPUD()

void ResetmeanCPUD ( Param  XParam)

◆ rightdirichletCPU()

void rightdirichletCPU ( int  nblk,
int  blksize,
int  nx,
float  xo,
float  yo,
float  g,
float  dx,
std::vector< double >  zsbndvec,
float *  blockxo,
float *  blockyo,
float *  zs,
float *  zb,
float *  hh,
float *  uu,
float *  vv 
)

◆ rightdirichletCPUD()

void rightdirichletCPUD ( int  nblk,
int  blksize,
int  nx,
double  xo,
double  yo,
double  g,
double  dx,
std::vector< double >  zsbndvec,
double *  blockxo,
double *  blockyo,
double *  zs,
double *  zb,
double *  hh,
double *  uu,
double *  vv 
)

◆ sq()

template<class T >
T sq ( a)

◆ topdirichletCPU()

void topdirichletCPU ( int  nblk,
int  blksize,
int  ny,
float  xo,
float  yo,
float  g,
float  dx,
std::vector< double >  zsbndvec,
float *  blockxo,
float *  blockyo,
float *  zs,
float *  zb,
float *  hh,
float *  uu,
float *  vv 
)

◆ topdirichletCPUD()

void topdirichletCPUD ( int  nblk,
int  blksize,
int  ny,
double  xo,
double  yo,
double  g,
double  dx,
std::vector< double >  zsbndvec,
double *  blockxo,
double *  blockyo,
double *  zs,
double *  zb,
double *  hh,
double *  uu,
double *  vv 
)

◆ update()

void update ( int  nblk,
int  blksize,
float  theta,
float  dt,
float  eps,
float  g,
float  CFL,
float  delta,
float *  hh,
float *  zs,
float *  uu,
float *  vv,
float *&  dh,
float *&  dhu,
float *&  dhv 
)

Topographic source term

In the case of adaptive refinement, care must be taken to ensure well-balancing at coarse/fine faces (see [notes/balanced.tm]()).

Topographic source term

In the case of adaptive refinement, care must be taken to ensure well-balancing at coarse/fine faces (see [notes/balanced.tm]()).

◆ update_spherical()

void update_spherical ( int  nblk,
int  blksize,
double  theta,
double  dt,
double  eps,
double  g,
double  CFL,
double  delta,
double  Radius,
double  ymax,
double *  blockyo,
double *  hh,
double *  zs,
double *  uu,
double *  vv,
double *&  dh,
double *&  dhu,
double *&  dhv 
)

Topographic source term

In the case of adaptive refinement, care must be taken to ensure well-balancing at coarse/fine faces (see [notes/balanced.tm]()).

Topographic source term

In the case of adaptive refinement, care must be taken to ensure well-balancing at coarse/fine faces (see [notes/balanced.tm]()).

◆ updateATM()

void updateATM ( int  nblk,
int  blksize,
int  cstwind,
int  cstpress,
int  windnx,
int  windny,
float  winddx,
float  windxo,
float  windyo,
float  Uwndi,
float  Vwndi,
float  theta,
float  dt,
float  eps,
float  g,
float  CFL,
float  delta,
float  Cd,
float  Pa2m,
float *  hh,
float *  zs,
float *  uu,
float *  vv,
float *&  dh,
float *&  dhu,
float *&  dhv,
float *  Uwnd,
float *  Vwnd,
float *  Patm 
)

Topographic source term

In the case of adaptive refinement, care must be taken to ensure well-balancing at coarse/fine faces (see [notes/balanced.tm]()).

Topographic source term

In the case of adaptive refinement, care must be taken to ensure well-balancing at coarse/fine faces (see [notes/balanced.tm]()).

◆ updateD()

void updateD ( int  nblk,
int  blksize,
double  theta,
double  dt,
double  eps,
double  g,
double  CFL,
double  delta,
double *  hh,
double *  zs,
double *  uu,
double *  vv,
double *&  dh,
double *&  dhu,
double *&  dhv 
)

Topographic source term

In the case of adaptive refinement, care must be taken to ensure well-balancing at coarse/fine faces (see [notes/balanced.tm]()).

Topographic source term

In the case of adaptive refinement, care must be taken to ensure well-balancing at coarse/fine faces (see [notes/balanced.tm]()).

◆ write2varnc()

void write2varnc ( int  nx,
int  ny,
double  totaltime,
float *  var 
)