Introduction
Introduction Statistics Contact Development Disclaimer Help
tfluid cell sphere diameter = cell width - sphere - GPU-based 3D discrete eleme…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit 1c127a36deb9a4332f35818d424bd02942612594
parent d824437a33f907519d22e6a8fbd916c66bdd0e6c
Author: Anders Damsgaard <[email protected]>
Date: Wed, 23 Apr 2014 10:14:21 +0200
fluid cell sphere diameter = cell width
Diffstat:
M src/navierstokes.cuh | 45 ++++++-----------------------…
1 file changed, 8 insertions(+), 37 deletions(-)
---
diff --git a/src/navierstokes.cuh b/src/navierstokes.cuh
t@@ -874,8 +874,8 @@ __global__ void findPorositiesVelocitiesDiametersSpherical(
const Float dz = devC_grid.L[2]/nz;
// Cell sphere radius
- //const Float R = fmin(dx, fmin(dy,dz)) * 0.5; // diameter = cell width
- const Float R = fmin(dx, fmin(dy,dz)); // diameter = 2*cell width
+ const Float R = fmin(dx, fmin(dy,dz)) * 0.5; // diameter = cell width
+ //const Float R = fmin(dx, fmin(dy,dz)); // diameter = 2*cell width
const Float cell_volume = 4.0/3.0*M_PI*R*R*R;
Float void_volume = cell_volume;
t@@ -916,12 +916,14 @@ __global__ void findPorositiesVelocitiesDiametersSpheric…
unsigned int cellID, startIdx, endIdx, i;
// Iterate over 27 neighbor cells, R = cell width
- /*for (int z_dim=-1; z_dim<2; ++z_dim) { // z-axis
+ for (int z_dim=-1; z_dim<2; ++z_dim) { // z-axis
for (int y_dim=-1; y_dim<2; ++y_dim) { // y-axis
- for (int x_dim=-1; x_dim<2; ++x_dim) { // x-axis */
- for (int z_dim=-2; z_dim<3; ++z_dim) { // z-axis
+ for (int x_dim=-1; x_dim<2; ++x_dim) { // x-axis
+
+ // Iterate over 27 neighbor cells, R = 2*cell width
+ /*for (int z_dim=-2; z_dim<3; ++z_dim) { // z-axis
for (int y_dim=-2; y_dim<3; ++y_dim) { // y-axis
- for (int x_dim=-2; x_dim<3; ++x_dim) { // x-axis
+ for (int x_dim=-2; x_dim<3; ++x_dim) { // x-axis */
// Index of neighbor cell this iteration is looking at
targetCell = gridPos + make_int3(x_dim, y_dim, z_dim);
t@@ -1117,37 +1119,6 @@ __device__ Float3 gradient(
(zp - zn)/(2.0*dz));
}
-// Find the dv_i/di gradients in a cell in a homogeneous, cubic 3D vector field
-// using finite central differences
-__device__ Float3 gradient_vector(
- const Float3* dev_vectorfield,
- const unsigned int x,
- const unsigned int y,
- const unsigned int z,
- const Float dx,
- const Float dy,
- const Float dz)
-{
- // Read 6 neighbor cells
- __syncthreads();
- const Float xn = dev_vectorfield[idx(x-1,y,z)].x;
- const Float xp = dev_vectorfield[idx(x+1,y,z)].x;
- const Float yn = dev_vectorfield[idx(x,y-1,z)].y;
- const Float yp = dev_vectorfield[idx(x,y+1,z)].y;
- const Float zn = dev_vectorfield[idx(x,y,z-1)].z;
- const Float zp = dev_vectorfield[idx(x,y,z+1)].z;
-
- //__syncthreads();
- //if (p != 0.0)
- //printf("p[%d,%d,%d] =\t%f\n", x,y,z, p);
-
- // Calculate central-difference gradients
- return MAKE_FLOAT3(
- (xp - xn)/(2.0*dx),
- (yp - yn)/(2.0*dy),
- (zp - zn)/(2.0*dz));
-}
-
// Find the divergence in a cell in a homogeneous, cubic, 3D vector field
__device__ Float divergence(
const Float3* dev_vectorfield,
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.