tcorrect velocity gradient at bottom neumann BC in staggered grid, show v_p for all cells - 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 ff67b9fd391caf9576d5c437bb92a14d914d63bd
 (DIR) parent bbc594bbe6b8c9dcbfa4e229fa28a6a1f6248959
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Wed, 22 Oct 2014 10:35:56 +0200
       
       correct velocity gradient at bottom neumann BC in staggered grid, show v_p for all cells
       
       Diffstat:
         M src/debug.h                         |       6 +++---
         M src/navierstokes.cuh                |      36 ++++++++++++++++----------------
       
       2 files changed, 21 insertions(+), 21 deletions(-)
       ---
 (DIR) diff --git a/src/debug.h b/src/debug.h
       t@@ -21,8 +21,8 @@ const unsigned int nijacnorm = 10;
        const int write_res_log = 0;
        
        // Report epsilon values during Jacobi iterations to stdout
       -#define REPORT_EPSILON
       -#define REPORT_MORE_EPSILON
       +//#define REPORT_EPSILON
       +//#define REPORT_MORE_EPSILON
        
        // Report the number of iterations it took before convergence to logfile
        // 'output/<sid>-conv.dat'
       t@@ -47,7 +47,7 @@ const int conv_log_interval = 1;
        #define REPORT_V_C_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/navierstokes.cuh b/src/navierstokes.cuh
       t@@ -692,7 +692,8 @@ __global__ void setNSghostNodes(
                // z
                if (z == 0 && bc_bot == 0)
                    dev_scalarfield[idx(x,y,-1)] = val;     // Dirichlet
       -        if (z == 1 && bc_bot == 1)
       +        //if (z == 1 && bc_bot == 1)
       +        if (z == 0 && bc_bot == 1)
                    dev_scalarfield[idx(x,y,-1)] = val;     // Neumann
                if (z == 0 && bc_bot == 2)
                    dev_scalarfield[idx(x,y,nz)] = val;     // Periodic -z
       t@@ -2450,23 +2451,22 @@ __global__ void findPredNSvelocities(
        
        #ifdef REPORT_V_P_COMPONENTS
                // Report velocity components to stdout for debugging
       -        if (z==0)
       -            printf("\n[%d,%d,%d]"
       -                   "\tv_p      = %+e %+e %+e\n"
       -                   "\tpres     = %+e %+e %+e\n"
       -                   "\tinteract = %+e %+e %+e\n"
       -                   "\tdiff     = %+e %+e %+e\n"
       -                   "\tgrav     = %+e %+e %+e\n"
       -                   "\tporos    = %+e %+e %+e\n"
       -                   "\tadv      = %+e %+e %+e\n",
       -                   x, y, z,
       -                   v_p.x, v_p.y, v_p.z,
       -                   pressure_term.x, pressure_term.y, pressure_term.z, 
       -                   interaction_term.x, interaction_term.y, interaction_term.z, 
       -                   diffusion_term.x, diffusion_term.y, diffusion_term.z, 
       -                   gravity_term.x, gravity_term.y, gravity_term.z, 
       -                   porosity_term.x, porosity_term.y, porosity_term.z, 
       -                   advection_term.x, advection_term.y, advection_term.z);
       +        printf("\n[%d,%d,%d]"
       +               "\tv_p      = %+e %+e %+e\n"
       +               "\tpres     = %+e %+e %+e\n"
       +               "\tinteract = %+e %+e %+e\n"
       +               "\tdiff     = %+e %+e %+e\n"
       +               "\tgrav     = %+e %+e %+e\n"
       +               "\tporos    = %+e %+e %+e\n"
       +               "\tadv      = %+e %+e %+e\n",
       +               x, y, z,
       +               v_p.x, v_p.y, v_p.z,
       +               pressure_term.x, pressure_term.y, pressure_term.z, 
       +               interaction_term.x, interaction_term.y, interaction_term.z, 
       +               diffusion_term.x, diffusion_term.y, diffusion_term.z, 
       +               gravity_term.x, gravity_term.y, gravity_term.z, 
       +               porosity_term.x, porosity_term.y, porosity_term.z, 
       +               advection_term.x, advection_term.y, advection_term.z);
        #endif
        
                // Save the predicted velocity