URI:
       tRemoved legacy raytracer folder, moved rt doc into main doc - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
  HTML git clone git://src.adamsgaard.dk/sphere
   DIR Log
   DIR Files
   DIR Refs
   DIR LICENSE
       ---
   DIR commit d30540ae62abcfd984b3eda396cf534e72aaad66
   DIR parent 5cd210a9136c5c2dfee90711cedf294fc6f0484e
  HTML Author: Anders Damsgaard <adc@geo.au.dk>
       Date:   Tue, 18 Dec 2012 13:58:29 +0100
       
       Removed legacy raytracer folder, moved rt doc into main doc
       
       Diffstat:
         R raytracer/doc/IEEEtran.cls -> doc/… |       0 
         R raytracer/doc/np-performance.pdf -… |       0 
         R raytracer/doc/np-performance.txt -… |       0 
         R raytracer/doc/np500.png -> doc/ray… |       0 
         R raytracer/doc/np50000.png -> doc/r… |       0 
         R raytracer/doc/px-performance.pdf -… |       0 
         R raytracer/doc/px-performance.txt -… |       0 
         A doc/raytracer/raytracer.pdf         |       0 
         A doc/raytracer/raytracer.tex         |     264 +++++++++++++++++++++++++++++++
         D raytracer/Makefile                  |     101 -------------------------------
         D raytracer/README                    |      43 ------------------------------
         D raytracer/colorbar.h                |      22 ----------------------
         D raytracer/doc/.DS_Store             |       0 
         D raytracer/doc/.raytracer.tex.swp    |       0 
         D raytracer/doc/bloopers/black.png    |       0 
         D raytracer/doc/bloopers/colorful.png |       0 
         D raytracer/doc/bloopers/cpu_wrong_c… |       0 
         D raytracer/doc/bloopers/twisted.png  |       0 
         D raytracer/doc/bloopers/wrong_order… |       0 
         D raytracer/doc/raytracer.pdf         |       0 
         D raytracer/doc/raytracer.tex         |     317 -------------------------------
         D raytracer/header.h                  |      26 --------------------------
         D raytracer/main.cpp                  |     264 -------------------------------
         D raytracer/o-ppm.cpp                 |      30 ------------------------------
         D raytracer/o-ppm.h                   |       7 -------
         D raytracer/render_all_outputs_CPU.sh |      27 ---------------------------
         D raytracer/render_all_outputs_GPU.sh |      29 -----------------------------
         D raytracer/rt-kernel-cpu.cpp         |     273 -------------------------------
         D raytracer/rt-kernel-cpu.h           |      14 --------------
         D raytracer/rt-kernel.cu              |     454 -------------------------------
         D raytracer/rt-kernel.h               |      35 -------------------------------
         D raytracer/rt_GPU_init_pres.sh       |      36 -------------------------------
         D raytracer/rt_GPU_pres.sh            |      36 -------------------------------
         D raytracer/rt_GPU_tall_pres.sh       |      36 -------------------------------
       
       34 files changed, 264 insertions(+), 1750 deletions(-)
       ---
   DIR diff --git a/raytracer/doc/IEEEtran.cls b/doc/raytracer/IEEEtran.cls
   DIR diff --git a/raytracer/doc/np-performance.pdf b/doc/raytracer/np-performance.pdf
       Binary files differ.
   DIR diff --git a/raytracer/doc/np-performance.txt b/doc/raytracer/np-performance.txt
   DIR diff --git a/raytracer/doc/np500.png b/doc/raytracer/np500.png
       Binary files differ.
   DIR diff --git a/raytracer/doc/np50000.png b/doc/raytracer/np50000.png
       Binary files differ.
   DIR diff --git a/raytracer/doc/px-performance.pdf b/doc/raytracer/px-performance.pdf
       Binary files differ.
   DIR diff --git a/raytracer/doc/px-performance.txt b/doc/raytracer/px-performance.txt
   DIR diff --git a/doc/raytracer/raytracer.pdf b/doc/raytracer/raytracer.pdf
       Binary files differ.
   DIR diff --git a/doc/raytracer/raytracer.tex b/doc/raytracer/raytracer.tex
       t@@ -0,0 +1,264 @@
       +\documentclass[journal]{IEEEtran}
       +
       +
       +\ifCLASSINFOpdf
       +  \usepackage[pdftex]{graphicx}
       +\else
       +   \usepackage[dvips]{graphicx}
       +\fi
       +
       +\usepackage{color}
       +
       +\usepackage{url}
       +%\usepackage{showkeys}
       +\usepackage{siunitx}
       +
       +% correct bad hyphenation here
       +\hyphenation{op-tical net-works semi-conduc-tor}
       +
       +\definecolor{DarkGreen}{rgb}{0,0.45,0.08}
       +\usepackage{listings}
       +\lstset{language=C++,breaklines=true,breakatwhitespace=true,basicstyle=\small,prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}, commentstyle=\color{DarkGreen}, tabsize=4}
       +
       +
       +\begin{document}
       +\title{CUDA raytracing algorithm for visualizing\\ discrete element model output}
       +
       +\author{Anders Damsgaard Christensen,~\IEEEmembership{20062213}
       +\thanks{Contact: {anders.damsgaard@geo.au.dk}}%
       +\thanks{Webpage: {http://users-cs.au.dk/adc}}%
       +\thanks{Manuscript, last revision: \today.}}
       +
       +% The paper headers
       +\markboth{Data Parallel Computing 2011}{Christensen: CUDA raytracing algorithm for visualizing DEM output}
       +
       +% make the title area
       +\maketitle
       +
       +
       +\begin{abstract}
       +%\boldmath
       +A raytracing algorithm is constructed using the CUDA API for visualizing output from a CUDA discrete element model, which outputs spatial information in dynamic particle systems. 
       +The raytracing algorithm is optimized with constant memory and compilation flags, and performance is measured as a function of the number of particles and the number of pixels. The execution time is compared to equivalent CPU code, and the speedup under a variety of conditions is found to have a mean value of 55.6 times.
       +\end{abstract}
       +\begin{IEEEkeywords}
       +CUDA, discrete element method, raytracing
       +\end{IEEEkeywords}
       +
       +
       +\IEEEpeerreviewmaketitle
       +
       +
       +\section{Introduction}
       +\IEEEPARstart{V}{isualizing} systems containing many spheres using traditional object-order graphics rendering can often result in very high computational requirements, as the usual automated approach is to construct a meshed surface with a specified resolution for each sphere. The memory requirements are thus quite high, as each surface will consist of many vertices. Raytracing \cite{Whitted:1980} is a viable alternative, where spheric entities are saved as data structures with a centre coordinate and a radius. The rendering is performed on the base of these values, which results in a perfectly smooth surfaced sphere. To accelerate the rendering, the algorithm is constructed utilizing the CUDA API \cite{Nvidia-1:2010}, where the problem is divided into $n\times m$ threads, corresponding to the desired output image resolution. Each thread iterates through all particles and applies a simple shading model to determine the final RGB values of the pixel.
       +
       +Previous studies of GPU or CUDA implementations of ray tracing algorithms reported major speedups, compared to corresponding CPU applications (e.g. \cite{Horn:2007,Shih:2009,Popov:2007,Luebke:2008}). None of the software was however found to be open-source and GPL licensed, so a simple raytracer was constructed, customized to render particles, where the data was stored in a specific data format.
       +
       +\subsection{Discrete Element Method}
       +The input particle data to the raytracer is the output of a custom CUDA-based Discrete Element Method (DEM) application currently in development. The DEM model is used to numerically simulate the response of a drained, soft, granular sediment bed upon normal stresses and shearing velocities similar to subglacial environments under ice streams \cite{Evans:2006}. In contrast to laboratory experiments on granular material, the discrete element method \cite{Cundall:1979} approach allows close monitoring of the progressive deformation, where all involved physical parameters of the particles and spatial boundaries are readily available for continuous inspection. 
       +
mx1.adamsgaard.dk:70 /src/sphere/commit/d30540ae62abcfd984b3eda396cf534e72aaad66.gph:127: line too long