tback to cell-center f_pf and F_pf - 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 03a1e5cfa91cabac2788716303dc592da5d261f1
 (DIR) parent bcc75acd3cd0e3e2b9e32510e870232204eb3cc5
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Sat,  7 Jun 2014 11:36:43 +0200
       
       back to cell-center f_pf and F_pf
       
       Diffstat:
         M src/device.cu                       |       8 ++++++++
         M src/navierstokes.cuh                |       8 ++++----
         M src/sphere.h                        |       3 +++
       
       3 files changed, 15 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/src/device.cu b/src/device.cu
       t@@ -929,6 +929,11 @@ __host__ void DEM::startTime()
                        cudaThreadSynchronize();
                        checkForCudaErrorsIter("Post setNSghostNodes(dev_ns_p)", iter);
        
       +                setNSghostNodes<Float><<<dimGridFluid, dimBlockFluid>>>(
       +                        dev_ns_phi, ns.bc_bot, ns.bc_top);
       +                cudaThreadSynchronize();
       +                checkForCudaErrorsIter("Post setNSghostNodes(dev_ns_p)", iter);
       +
                        // Per particle, find the fluid-particle interaction force f_pf
                        // and apply it to the particle
                        findInteractionForce<<<dimGrid, dimBlock>>>(
       t@@ -959,6 +964,9 @@ __host__ void DEM::startTime()
                                dev_cellEnd,
                                dev_ns_f_pf,
                                dev_ns_F_pf);
       +                        //dev_ns_F_pf_x,
       +                        //dev_ns_F_pf_y,
       +                        //dev_ns_F_pf_z);
                        cudaThreadSynchronize();
                        checkForCudaErrorsIter("Post applyInteractionForceToFluid",
                                iter);
 (DIR) diff --git a/src/navierstokes.cuh b/src/navierstokes.cuh
       t@@ -2953,10 +2953,10 @@ __global__ void findInteractionForce(
        
                const Float v_x   = dev_ns_v_x[vidx(i_x,i_y,i_z)];
                const Float v_x_p = dev_ns_v_x[vidx(i_x+1,i_y,i_z)];
       -        const Float v_y   = dev_ns_v_x[vidx(i_x,i_y,i_z)];
       -        const Float v_y_p = dev_ns_v_x[vidx(i_x,i_y+1,i_z)];
       -        const Float v_z   = dev_ns_v_x[vidx(i_x,i_y,i_z)];
       -        const Float v_z_p = dev_ns_v_x[vidx(i_x,i_y,i_z+1)];
       +        const Float v_y   = dev_ns_v_y[vidx(i_x,i_y,i_z)];
       +        const Float v_y_p = dev_ns_v_y[vidx(i_x,i_y+1,i_z)];
       +        const Float v_z   = dev_ns_v_z[vidx(i_x,i_y,i_z)];
       +        const Float v_z_p = dev_ns_v_z[vidx(i_x,i_y,i_z+1)];
        
                const Float div_tau_x   = dev_ns_div_tau_x[vidx(i_x,i_y,i_z)];
                const Float div_tau_x_p = dev_ns_div_tau_x[vidx(i_x+1,i_y,i_z)];
 (DIR) diff --git a/src/sphere.h b/src/sphere.h
       t@@ -182,6 +182,9 @@ class DEM {
                Float3* dev_ns_vp_avg;       // Average particle velocity in cell
                Float*  dev_ns_d_avg;        // Average particle diameter in cell
                Float3* dev_ns_F_pf;         // Interaction force on fluid
       +        //Float*  dev_ns_F_pf_x;       // Interaction force on fluid
       +        //Float*  dev_ns_F_pf_y;       // Interaction force on fluid
       +        //Float*  dev_ns_F_pf_z;       // Interaction force on fluid
                Float*  dev_ns_phi;          // Cell porosity
                Float*  dev_ns_dphi;         // Cell porosity change
                //Float3* dev_ns_div_phi_v_v;  // Divegence used in velocity prediction