tonly restrict f_p.z at top when there is constant pressure - 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 122961646538904260583d0f4dd5afe0a98b312d
 (DIR) parent d7c50fd0540071e68bd56b8eb99188627e5620f7
 (HTM) Author: Anders Damsgaard Christensen <adc@geo.au.dk>
       Date:   Wed, 24 Aug 2016 11:23:38 -0700
       
       only restrict f_p.z at top when there is constant pressure
       
       Diffstat:
         M src/darcy.cuh                       |       3 ++-
         M src/device.cu                       |       1 +
       
       2 files changed, 3 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/src/darcy.cuh b/src/darcy.cuh
       t@@ -1153,6 +1153,7 @@ __global__ void findDarcyPressureForceLinear(
            const Float*  __restrict__ dev_darcy_phi,    // in
            const unsigned int wall0_iz,                 // in
            const Float rho_f,                           // in
       +    const int bc_top,                            // in
            Float4* __restrict__ dev_force,              // out
            Float4* __restrict__ dev_darcy_f_p)          // out
        {
       t@@ -1273,7 +1274,7 @@ __global__ void findDarcyPressureForceLinear(
        
                // Add Neumann BC at top wall
                //if (i_z >= wall0_iz - 1)
       -        if (i_z >= wall0_iz)
       +        if (bc_top == 0 && i_z >= wall0_iz)
                    f_p.z = 0.0;
        
                //if (length(f_p) > 1.0e-12)
 (DIR) diff --git a/src/device.cu b/src/device.cu
       t@@ -1921,6 +1921,7 @@ __host__ void DEM::startTime()
                                    dev_darcy_phi,
                                    wall0_iz,
                                    darcy.rho_f,
       +                            darcy.bc_top,
                                    dev_force,
                                    dev_darcy_f_p);
                            cudaThreadSynchronize();