Introduction
Introduction Statistics Contact Development Disclaimer Help
tuse amean function instead of manual calculation - sphere - GPU-based 3D discr…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit 3667a75304e1a30de168f753696d06c28cbddb1e
parent b5c9bbf0de831d1dd2237fdc47ab53f5c9319018
Author: Anders Damsgaard <[email protected]>
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(-)
---
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);
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.