tAdded cudaMemcpy for linarr, fixed syntax typo - 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 c7f78b18b797dbca3702981e823f42c64a9bb18e
(DIR) parent 5a74cfa8ba1c751e92ba190c00fe0d4a3d5acc56
(HTM) Author: Anders Damsgaard Christensen <adc@geo.au.dk>
Date: Fri, 9 Nov 2012 22:09:04 +0100
Added cudaMemcpy for linarr, fixed syntax typo
Diffstat:
M src/raytracer.cuh | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/src/raytracer.cuh b/src/raytracer.cuh
t@@ -417,6 +417,7 @@ __host__ void DEM::render(
std::string desc; // Description of parameter visualized
std::string unit; // Unit of parameter values visualized
unsigned int i;
+ int transfer = 0; // If changed to 1, linarr will be copied to dev_linarr
// Visualize spheres without color scale overlay
if (method == 0) {
t@@ -439,6 +440,7 @@ __host__ void DEM::render(
+ k.vel[i].y*k.vel[i].y
+ k.vel[i].z*k.vel[i].z);
}
+ transfer = 1;
desc = "Linear velocity";
unit = "m/s";
t@@ -451,6 +453,7 @@ __host__ void DEM::render(
+ k.angvel[i].y*k.angvel[i].y
+ k.angvel[i].z*k.angvel[i].z);
}
+ transfer = 1;
desc = "Angular velocity";
unit = "rad/s";
t@@ -461,6 +464,7 @@ __host__ void DEM::render(
for (i = 0; i<np; ++i) {
linarr[i] = k.xysum[i].x;
}
+ transfer = 1;
desc = "X-axis displacement";
unit = "m";
t@@ -473,6 +477,7 @@ __host__ void DEM::render(
+ k.angpos[i].y*k.angpos[i].y
+ k.angpos[i].z*k.angpos[i].z);
}
+ transfer = 1;
desc = "Angular positions";
unit = "rad";
}
t@@ -480,13 +485,17 @@ __host__ void DEM::render(
// Report color visualization method and color map range
cout << " " << desc << " color map range: [0, "
- << maxval << "] " unit << endl;
+ << maxval << "] " << unit << endl;
+
+ // Copy linarr to dev_linarr if required
+ if (transfer == 1)
+ cudaMemcpy(dev_linarr, &linarr, np*sizeof(Float), cudaMemcpyDeviceToHost);
// Start raytracing kernel
rayIntersectSpheresColormap<<< blocksPerGrid, threadsPerBlock >>>(
dev_ray_origo, dev_ray_direction,
dev_x, dev_vel,
- linarr, maxval,
+ dev_linarr, maxval,
dev_img);
}