tmodulate fluid pressure at top wall - sphere - GPU-based 3D discrete element m… | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 5fbc9d4c2cdfed9c7c9a308b784075808714f25f | |
parent 51a9c589ead9a483532e430e76eae58cd49300e8 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Wed, 14 Jan 2015 15:06:58 +0100 | |
modulate fluid pressure at top wall | |
Diffstat: | |
M src/darcy.cuh | 8 +++++--- | |
M src/device.cu | 3 ++- | |
2 files changed, 7 insertions(+), 4 deletions(-) | |
--- | |
diff --git a/src/darcy.cuh b/src/darcy.cuh | |
t@@ -654,17 +654,19 @@ __global__ void findDarcyPressureForce( | |
// Set the pressure at the top boundary to new_pressure | |
__global__ void setDarcyTopPressure( | |
- const Float new_pressure, Float* __restrict__ dev_darcy_p) | |
+ const Float new_pressure, | |
+ Float* __restrict__ dev_darcy_p, | |
+ const unsigned int wall0_iz) | |
{ | |
// 3D thread index | |
const unsigned int x = blockDim.x * blockIdx.x + threadIdx.x; | |
const unsigned int y = blockDim.y * blockIdx.y + threadIdx.y; | |
const unsigned int z = blockDim.z * blockIdx.z + threadIdx.z; | |
- // check that the thread is located at the top boundary | |
+ // check that the thread is located at the top boundary or at the top wall | |
if (x < devC_grid.num[0] && | |
y < devC_grid.num[1] && | |
- z == devC_grid.num[2]-1) { | |
+ z == devC_grid.num[2]-1 || z == wall0_iz) { | |
const unsigned int cellidx = idx(x,y,z); | |
diff --git a/src/device.cu b/src/device.cu | |
t@@ -1878,7 +1878,8 @@ __host__ void DEM::startTime() | |
startTimer(&kernel_tic); | |
setDarcyTopPressure<<<dimGridFluid, dimBlockFluid>>>( | |
new_pressure, | |
- dev_darcy_p); | |
+ dev_darcy_p, | |
+ wall0_iz); | |
if (PROFILING == 1) | |
stopTimer(&kernel_tic, &kernel_toc, &kernel_elapse… | |
&t_setDarcyTopPressure); |