tfixed v_p debug output - 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 c6d44f81e30f3b9f8bf1cb99f078a16dc1965db9
(DIR) parent 396db48750933e4dbbbecf607fb7c9c92173887b
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Fri, 23 May 2014 11:01:32 +0200
fixed v_p debug output
Diffstat:
M src/navierstokes.cuh | 83 ++++++++++++++-----------------
1 file changed, 38 insertions(+), 45 deletions(-)
---
(DIR) diff --git a/src/navierstokes.cuh b/src/navierstokes.cuh
t@@ -2104,55 +2104,49 @@ __global__ void findPredNSvelocities(
;*/
#ifdef SET_1
- Float3 v_p = v
- + pressure_term // pressure gradient
- - dt/(rho*phi)*f_i // particle fluid interaction
- + dt/(rho*phi)*div_tau // diffusion
- + MAKE_FLOAT3(devC_params.g[0], devC_params.g[1],
- devC_params.g[2])*dt // gravity
- - v*dphi/phi // porosity change
- - div_phi_vi_v*dt/phi; // advection
+ const Float3 interaction_term = -dt/(rho*phi)*f_i;
+ const Float3 diffusion_term = dt/(rho*phi)*div_tau;
+ const Float3 gravity_term = MAKE_FLOAT3(
+ devC_params.g[0], devC_params.g[1], devC_params.g[2])*dt;
+ const Float3 porosity_term = -v*dphi/phi;
+ const Float3 advection_term = -div_phi_vi_v*dt/phi;
#endif
#ifdef SET_2
- Float3 v_p = v
- + pressure_term // pressure gradient
- - dt/(rho*phi)*f_i // particle fluid interaction
- + dt/rho*div_tau // diffusion
- + MAKE_FLOAT3(devC_params.g[0], devC_params.g[1],
- devC_params.g[2])*dt // gravity
- - v*dphi/phi // porosity change
- - div_phi_vi_v*dt/phi; // advection
+ const Float3 interaction_term = -dt/(rho*phi)*f_i;
+ const Float3 diffusion_term = dt/rho*div_tau;
+ const Float3 gravity_term = MAKE_FLOAT3(
+ devC_params.g[0], devC_params.g[1], devC_params.g[2])*dt;
+ const Float3 porosity_term = -v*dphi/phi;
+ const Float3 advection_term = -div_phi_vi_v*dt/phi;
#endif
+ Float v_p = v
+ + pressure_term
+ + interaction_term
+ + diffusion_term
+ + gravity_term
+ + porosity_term
+ + advection_term;
- /*
#ifdef REPORT_V_P_COMPONENTS
// Report velocity components to stdout for debugging
- const Float3 dv_pres = pressure_term;
- const Float3 dv_diff =
- 1.0/devC_params.rho_f*div_phi_tau*ndem*devC_dt/phi;
- const Float3 dv_g = MAKE_FLOAT3(devC_params.g[0], devC_params.g[1],
- devC_params.g[2])*ndem*devC_dt;
- const Float3 dv_fi = -1.0*ndem*devC_dt/(devC_params.rho_f*phi)*f_i;
- const Float3 dv_dphi = -1.0*v*dphi/phi;
- const Float3 dv_adv = -1.0*div_phi_vi_v*ndem*devC_dt/phi;
- printf("[%d,%d,%d]\t"
- "v_p = %e\t%e\t%e\t"
- "dv_pres = %e\t%e\t%e\t"
- "dv_diff = %e\t%e\t%e\t"
- "dv_g = %e\t%e\t%e\t"
- "dv_fi = %e\t%e\t%e\t"
- "v_dphi = %e\t%e\t%e\t"
- "dv_adv = %e\t%e\t%e\n",
- x, y, z,
- v_p.x, v_p.y, v_p.z,
- dv_pres.x, dv_pres.y, dv_pres.z,
- dv_diff.x, dv_diff.y, dv_diff.z,
- dv_g.x, dv_g.y, dv_g.z,
- dv_fi.x, dv_fi.y, dv_fi.z,
- dv_dphi.x, dv_dphi.y, dv_dphi.z,
- dv_adv.x, dv_adv.y, dv_adv.z);
-#endif*/
+ printf("[%d,%d,%d]\t"
+ "v_p = %e\t%e\t%e\t"
+ "pres = %e\t%e\t%e\t"
+ "interact = %e\t%e\t%e\t"
+ "diff = %e\t%e\t%e\t"
+ "grav = %e\t%e\t%e\t"
+ "poros = %e\t%e\t%e\t"
+ "adv = %e\t%e\t%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
// Enforce Neumann BC if specified
if ((z == 0 && bc_bot == 1) || (z == nz-1 && bc_top == 1))
t@@ -2247,9 +2241,8 @@ __global__ void findNSforcing(
#ifdef REPORT_FORCING_TERMS
// Report values terms in the forcing function for debugging
- if (z >= nz-3)
- printf("[%d,%d,%d]\tt1 = %f\tt2 = %f\tt4 = %f\n",
- x,y,z, t1, t2, t4);
+ printf("[%d,%d,%d]\tt1 = %f\tt2 = %f\tt4 = %f\n",
+ x,y,z, t1, t2, t4);
#endif
// Save values