tset ghost nodes for div(tau) - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 35a9742af2314b68fe8eb51056d0d996870d0bbd
(DIR) parent 9216f53f507b61c0f492f9903acfe0ab70058d37
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Thu, 5 Jun 2014 12:51:50 +0200
set ghost nodes for div(tau)
Diffstat:
M src/debug.h | 4 ++--
M src/device.cu | 22 ++++++++++++++++++++++
M src/navierstokes.cuh | 4 ++++
3 files changed, 28 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/src/debug.h b/src/debug.h
t@@ -40,10 +40,10 @@ const int conv_log_interval = 4;
#define CHECK_NS_FINITE
// Enable reporting of velocity prediction components to stdout
-//#define REPORT_V_P_COMPONENTS
+#define REPORT_V_P_COMPONENTS
// Enable reporting of forcing function terms to stdout
-//#define REPORT_FORCING_TERMS
+#define REPORT_FORCING_TERMS
// Choose solver model (see Zhou et al. 2010 "Discrete particle simulation of
// particle-fluid flow: model formulations and their applicability", table. 1.
(DIR) diff --git a/src/device.cu b/src/device.cu
t@@ -915,6 +915,23 @@ __host__ void DEM::startTime()
cudaThreadSynchronize();
checkForCudaErrorsIter("Post findFaceDivTau", iter);
+ /*setUpperDivTau<<<dimGridFluidFace, dimBlockFluid>>>(
+ dev_ns_p, ns.bc_bot, ns.bc_top);
+ cudaThreadSynchronize();
+ checkForCudaErrorsIter("Post setNSghostNodes(dev_ns_p)", iter)
+ */
+
+ setNSghostNodesFace<Float>
+ <<<dimGridFluidFace, dimBlockFluid>>>(
+ dev_ns_div_tau_x,
+ dev_ns_div_tau_y,
+ dev_ns_div_tau_z,
+ ns.bc_bot,
+ ns.bc_top);
+ cudaThreadSynchronize();
+ checkForCudaErrorsIter("Post setNSghostNodes(dev_ns_div_tau)",
+ iter);
+
setNSghostNodes<Float><<<dimGridFluid, dimBlockFluid>>>(
dev_ns_p, ns.bc_bot, ns.bc_top);
cudaThreadSynchronize();
t@@ -1514,6 +1531,11 @@ __host__ void DEM::startTime()
filetimeclock += time.dt;
++iter;
+ // Make sure all preceding tasks are complete
+ if (cudaDeviceSynchronize() != cudaSuccess) {
+ cerr << "Error during cudaDeviceSynchronize()" << endl;
+ }
+
// Report time to console
if (verbose == 1 && (iter % stdout_report == 0)) {
(DIR) diff --git a/src/navierstokes.cuh b/src/navierstokes.cuh
t@@ -13,6 +13,9 @@
#include "constants.cuh"
#include "debug.h"
+#define REPORT_V_P_COMPONENTS
+#define REPORT_FORCING_TERMS
+
// Arithmetic mean of two numbers
__inline__ __device__ Float amean(Float a, Float b) {
return (a+b)*0.5;
t@@ -2247,6 +2250,7 @@ __global__ void findPredNSvelocities(
+ porosity_term
+ advection_term;
+ printf("\n\nhello, world\n\n");
#ifdef REPORT_V_P_COMPONENTS
// Report velocity components to stdout for debugging
printf("[%d,%d,%d]\t"