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);
        
          }