\documentclass{article}
\usepackage[mathletters]{ucs}
\usepackage[utf8x]{inputenc}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\usepackage{graphics}
\usepackage[ps,dvips,xdvi,arrow,frame,matrix,graph,curve,cmtip]{xy}
\usepackage[pdftex]{graphicx}

\usepackage[breaklinks=true]{hyperref}
\usepackage{enumerate}

\setcounter{secnumdepth}{0}
\title{``baREUcuda'' Project Proposal}
\author{Abdulmajed Dakkak}
\date{June 23st, 2008}
\begin{document}
\maketitle

Much like Stephen Wolfram, I have been fascinated by the
capabilities of cellular automata (CA), and while I do not share
his opinion that everything can be decomposed into a CA problem, I
do believe that many problem exhibit similarities to problems in
CA. This rich field is rarely explored by undergraduate students,
and aside from writing basic programs that simulate the Game of
Life or draw the Sierpinski triangle, I too have little intuition
of the field's application.

While the primary motivation for singling out Wolfram's method is
to speak to his intellectual interest, Wolfram's papers can be used
to explorer extensions of CA that are used for
\emph{computational fluid dynamics} (CFD). The reason is that a new
methods of CFD such as \emph{Lattice Gas Automata} (LGA) and later
\emph{Lattice Boltzmann Methods} (LBM) arose directly%
\footnote{When asked on the
\href{http://forum.wolframscience.com/showthread.php?s=1d3b456c994c3a88f9a96dd3352c9907&threadid=1457&highlight=*chapter+10*}{NKS forums}
about the most successful application of CAs thus far, Jason
Cowley, of Wolfram Research, labeled Wolfram's work on
computational fluid dynamics as the ``most successful use of NKS''
thus far.}
from 7 landmark paper on the relationship between fluid dynamics
and CA by Wolfram in the latter half of the 1980s (see
references).

In this project we will explore what Wolfram described in his
papers, look at papers that build upon his revolutionary work, and
compare them to other methods in contemporary CFD. All experiments
will be simulated on CUDA enabled NVIDIA chips to maximize
performance, and a 3D simulation of Naiver-Stokes equations using
Wolfram's work will be programmed on it to demonstrate and explore
the parallelization of both CA and computation. Also, we will
replace the conventional input devices (mice and keyboards) with
the WiiMote. This would enable us to explore input methods
described in current Human Interface Interaction literature.
Finally, we will place our fluid simulation into the Beckman
Institute's Cube virtual environment via the cluster based
distributed graphics language, Syzygy%
\footnote{Syzygy is a cluster-based distributed graphics system currently
powering several virtual environments, such as the Cube and CAVEs
at the University of Illinois, the Portal at the Technical
University of Berlin, and the DiVE at Duke University.}
.

\section{Project Timeline}

The following gantt chart displays the time line for each
subproject accomplished in the REU along with a brief description
of what each entails.

\includegraphics[scale=0.6]{graphics/project_timeline.png}

\begin{quote}
\emph{I am aware that the time line is overambitious, but I would rather be in a pinch against time than bored with nothing to do.}

\end{quote}
\begin{enumerate}[1.]
\item 
  There are a few books describing CA as it relates to CFD, and
  Wolfram himself has written around 100 pages on the subject. It
  would take around a week or a week and a half to absorb the
  content.

  Also, CUDA must be learn, and while I have written a basic matrix
  adder, there is more to learn in terms of optimization and
  interfacing with OpenGL. I thus plan on writing one 1D CA, move to
  2D CA, and, finally, implement Wolfram's ideas in 2D. Only when I
  have understood those will I tackle 3D.

\item 
  Implement what I have read in the papers and optimize.
\item 
  Optimization has never been important to me, but after programming
  a basic matrix adder in CUDA, I realized that I can easily cut
  computation by a half if I use the right directives and memory
  spots.
\item 
  I will place the simulation in the Cub. This can be done by
  extending the existing socket connection program devised. A more
  interesting idea is to simulate the Mathematica kernel and use
  caveMathematica to display the simulation in the Cube. This method
  is more difficult, however.
\item 
  I will spend some time figuring out how the Wiimote works and how
  to interface it with an OpenGL program first and then interface
  with CUDA. One potential problem, at least with the \verb!wiiuse!
  library is that an infinite loop is required to capture events. I
  will thus examine other libraries or ways around this issue.
\item 
  Integrate the WiiMote with the Cube. While this has been done, I
  would like to extend it and specifically see how it can interface
  with CUDA in the CAVE.
\item 
  A few days will be reserved to examining and comparing other CFD
  models.
\item 
  Write final report.
\item 
  Prepare presentation for \emph{Mathfest}, and attend the
  conference.

\end{enumerate}
\section{SubProjects}

\begin{itemize}
\item 
  Help other REU student with their projects whenever possible.
\item 
  Write the \verb!igl2ogl! guide.
\end{itemize}
\section{References}

\begin{itemize}
\item 
  S. Wolfram. Minimal cellular automaton approximations to continuum
  systems. In Stephen Wolfram, editor, Cellular Automata and
  Complexity: collected papers. Addison-Wesley, 1994.
\item 
  S. Wolfram. Cellular automaton fluids 1: Basic theory. Journal of
  Statistical Physics, 45(3):471--526, 1986.
\item 
  S. Wolfram. Statistical mechanics of cellular automata. Reviews of
  Modern Physics, 55(3):601--644, 1983.
\item 
  N.H. Packard and S. Wolfram. Two-dimensional cellular automata.
  Journal of Statistical Physics, 38(5):901--946, 1985.
\item 
  S. Wolfram. Twenty problems in the theory of cellular automata.
  Physica Scripta, 9:170--183, 1985.
\item 
  S. Wolfram. Cellular automation supercomputing. 1988.
\item 
  J.B. Salem and S. Wolfram. Thermodynamics and hydrodynamics with
  cellular automata. Theory and Applications of Cellular Automata.
  World Scientific, 1986.
\end{itemize}
\end{document}
