Introduction
Introduction Statistics Contact Development Disclaimer Help
tdo not calculate all velocity components at the outer grid edges - sphere - GP…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit 88c6e28ce4e3c26bbde24ea7275f2e6430bd3572
parent 837f320e197769680e0c4ac3a95ede30f4bb5072
Author: Anders Damsgaard <[email protected]>
Date: Tue, 26 Aug 2014 15:32:17 +0200
do not calculate all velocity components at the outer grid edges
Diffstat:
M src/debug.h | 4 ++--
M src/navierstokes.cuh | 29 ++++++++++++++++++++++++-----
2 files changed, 26 insertions(+), 7 deletions(-)
---
diff --git a/src/debug.h b/src/debug.h
t@@ -21,8 +21,8 @@ const unsigned int nijacnorm = 10;
const int write_res_log = 0;
// Report epsilon values during Jacobi iterations to stdout
-//#define REPORT_EPSILON
-//#define REPORT_MORE_EPSILON
+#define REPORT_EPSILON
+#define REPORT_MORE_EPSILON
// Report the number of iterations it took before convergence to logfile
// 'output/<sid>-conv.dat'
diff --git a/src/navierstokes.cuh b/src/navierstokes.cuh
t@@ -2894,7 +2894,6 @@ __global__ void updateNSvelocity(
const Float epsilon_yn = dev_ns_epsilon[idx(x,y-1,z)];
const Float epsilon_zn = dev_ns_epsilon[idx(x,y,z-1)];
-
const Float phi_xn = dev_ns_phi[idx(x-1,y,z)];
const Float phi_c = dev_ns_phi[idx(x,y,z)];
const Float phi_yn = dev_ns_phi[idx(x,y-1,z)];
t@@ -2932,20 +2931,40 @@ __global__ void updateNSvelocity(
e_down);
}*/
- if ((z == 0 && bc_bot == 1) || (z == nz-1 && bc_top == 1))
+ //if ((z == 0 && bc_bot == 1) || (z == nz-1 && bc_top == 1))
+ if ((z == 0 && bc_bot == 1) || (z > nz-1 && bc_top == 1))
v.z = 0.0;
- if ((z == 0 && bc_bot == 2) || (z == nz-1 && bc_top == 2))
+ //if ((z == 0 && bc_bot == 2) || (z == nz-1 && bc_top == 2))
+ if ((z == 0 && bc_bot == 2) || (z > nz-1 && bc_top == 2))
v = MAKE_FLOAT3(0.0, 0.0, 0.0);
+ // Do not calculate all components at the outer grid edges (nx, ny, nz)
+ if (x == nx) {
+ v.y = 0.0;
+ v.z = 0.0;
+ }
+ if (y == ny) {
+ v.x = 0.0;
+ v.z = 0.0;
+ }
+ if (z == nz) {
+ v.x = 0.0;
+ v.y = 0.0;
+ }
+
// Check the advection term using the Courant-Friedrichs-Lewy condition
__syncthreads();
if (v.x*ndem*devC_dt/dx
+ v.y*ndem*devC_dt/dy
+ v.z*ndem*devC_dt/dz > 1.0) {
printf("[%d,%d,%d] Warning: Advection term in fluid may be "
- "unstable (CFL condition), v = %f,%f,%f\n",
- x,y,z, v.x, v.y, v.z);
+ "unstable (CFL condition)\n"
+ "\tv = %.2e,%.2e,%.2e\n"
+ "\te_c,e_xn,e_yn,e_zn = %.2e,%.2e,%.2e,%.2e\n",
+ x,y,z, v.x, v.y, v.z,
+ epsilon_c, epsilon_xn, epsilon_yn, epsilon_zn
+ );
}
// Write new values
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.