21 lines
790 B
Plaintext
21 lines
790 B
Plaintext
// Physical parent walls; NX/NY remain local storage strides.
|
|
#ifndef CELERIS_BOUNDARY_BLOCK_WALL_CUH
|
|
#define CELERIS_BOUNDARY_BLOCK_WALL_CUH
|
|
|
|
#include "planar_velocity.cuh"
|
|
|
|
struct BlockWall { unsigned int nx, ny, slot_width; float amplitude; };
|
|
extern "C" { __constant__ BlockWall d_block_wall; }
|
|
|
|
__device__ __forceinline__ void block_wall(float* f, unsigned int x, unsigned int y,
|
|
unsigned int halo) {
|
|
unsigned int gx, gy;
|
|
block_global_xy(x, y, halo, d_block_wall.nx, gx, gy);
|
|
if (gy == 1)
|
|
reconstruct_bottom_velocity(f, 0.0f, bottom_wall_normal_velocity(
|
|
gx, d_block_wall.nx, d_block_wall.slot_width, d_block_wall.amplitude));
|
|
else if (gy == d_block_wall.ny - 2) reconstruct_top_reservoir(f, RHO);
|
|
}
|
|
|
|
#endif
|