tuse amean function instead of manual calculation - 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 3667a75304e1a30de168f753696d06c28cbddb1e
(DIR) parent b5c9bbf0de831d1dd2237fdc47ab53f5c9319018
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Thu, 5 Jun 2014 09:39:21 +0200
use amean function instead of manual calculation
Diffstat:
M src/navierstokes.cuh | 54 ++++++++++++++++----------------
1 file changed, 27 insertions(+), 27 deletions(-)
---
(DIR) diff --git a/src/navierstokes.cuh b/src/navierstokes.cuh
t@@ -2126,13 +2126,13 @@ __global__ void findPredNSvelocities(
// component-wise average values
const Float3 phi = MAKE_FLOAT3(
- (phi_c + phi_xn)/2.0,
- (phi_c + phi_yn)/2.0,
- (phi_c + phi_zn)/2.0);
+ amean(phi_c, phi_xn),
+ amean(phi_c, phi_yn),
+ amean(phi_c, phi_zn));
const Float3 dphi = MAKE_FLOAT3(
- (dphi_c + dphi_xn)/2.0,
- (dphi_c + dphi_yn)/2.0,
- (dphi_c + dphi_zn)/2.0);
+ amean(dphi_c, dphi_xn),
+ amean(dphi_c, dphi_yn),
+ amean(dphi_c, dphi_zn));
// The particle-fluid interaction force should only be incoorporated if
// there is a fluid viscosity
t@@ -2149,9 +2149,9 @@ __global__ void findPredNSvelocities(
f_i_zn = MAKE_FLOAT3(0.0, 0.0, 0.0);
}
const Float3 f_i = MAKE_FLOAT3(
- (f_i_c.x + f_i_xn.x)/2.0,
- (f_i_c.y + f_i_yn.y)/2.0,
- (f_i_c.z + f_i_zn.z)/2.0);
+ amean(f_i_c.x, f_i_xn.x),
+ amean(f_i_c.y, f_i_yn.y),
+ amean(f_i_c.z, f_i_zn.z));
const Float dt = ndem*devC_dt;
const Float rho = devC_params.rho_f;
t@@ -2179,9 +2179,9 @@ __global__ void findPredNSvelocities(
}
const Float3 div_phi_vi_v = MAKE_FLOAT3(
- (div_phi_vi_v_xn.x + div_phi_vi_v_c.x)/2.0,
- (div_phi_vi_v_yn.y + div_phi_vi_v_c.y)/2.0,
- (div_phi_vi_v_zn.z + div_phi_vi_v_c.z)/2.0);
+ amean(div_phi_vi_v_xn.x, div_phi_vi_v_c.x),
+ amean(div_phi_vi_v_yn.y, div_phi_vi_v_c.y),
+ amean(div_phi_vi_v_zn.z, div_phi_vi_v_c.z));
// Determine the predicted velocity
#ifdef SET_1
t@@ -2723,9 +2723,9 @@ __global__ void updateNSvelocity(
const Float phi_zn = dev_ns_phi[idx(x,y,z-1)];
const Float3 phi = MAKE_FLOAT3(
- (phi_c + phi_xn)/2.0,
- (phi_c + phi_yn)/2.0,
- (phi_c + phi_zn)/2.0);
+ amean(phi_c, phi_xn),
+ amean(phi_c, phi_yn),
+ amean(phi_c, phi_zn));
// Find corrector gradient
const Float3 grad_epsilon = MAKE_FLOAT3(
t@@ -2921,14 +2921,14 @@ __global__ void findInteractionForce(
const Float div_tau_z_p = dev_ns_div_tau_z[vidx(i_x,i_y,i_z+1)];
const Float3 v_f = MAKE_FLOAT3(
- (v_x + v_x_p)/2.0,
- (v_y + v_y_p)/2.0,
- (v_z + v_z_p)/2.0);
+ amean(v_x, v_x_p),
+ amean(v_y, v_y_p),
+ amean(v_z, v_z_p));
const Float3 div_tau = MAKE_FLOAT3(
- (div_tau_x + div_tau_x_p)/2.0,
- (div_tau_y + div_tau_y_p)/2.0,
- (div_tau_z + div_tau_z_p)/2.0);
+ amean(div_tau_x, div_tau_x_p),
+ amean(div_tau_y, div_tau_y_p),
+ amean(div_tau_z, div_tau_z_p));
const Float3 v_rel = v_f - v_p;
const Float v_rel_length = length(v_rel);
t@@ -3073,9 +3073,9 @@ __global__ void interpolateCenterToFace(
const Float3 zn = dev_in[idx(x,y,z-1)];
const Float3 center = dev_in[idx(x,y,z)];
- const Float x_val = (center.x - xn.x)/2.0;
- const Float y_val = (center.y - yn.y)/2.0;
- const Float z_val = (center.z - zn.z)/2.0;
+ const Float x_val = amean(center.x, xn.x);
+ const Float y_val = amean(center.y, yn.y);
+ const Float z_val = amean(center.z, zn.z);
__syncthreads();
//printf("c2f [%d,%d,%d] = %f,%f,%f\n", x,y,z, x_val, y_val, z_val);
t@@ -3115,9 +3115,9 @@ __global__ void interpolateFaceToCenter(
const Float z_p = dev_in_z[vidx(x,y,z+1)];
const Float3 val = MAKE_FLOAT3(
- (x_n + x_p)/2.0,
- (y_n + y_p)/2.0,
- (z_n + z_p)/2.0);
+ amean(x_n, x_p),
+ amean(y_n, y_p),
+ amean(z_n, z_p));
__syncthreads();
//printf("[%d,%d,%d] = %f, %f, %f\n", x,y,z, val.x, val.y, val.z);