\documentclass[12pt,fleqn]{article}
\setlength\topmargin{-0.0cm}
\setlength\textheight{22.0cm}
\setlength\textwidth{15.0cm}
\addtolength\evensidemargin{-1.cm}
\addtolength\oddsidemargin{-0.5cm}
\renewcommand{\baselinestretch}{1.5}

\usepackage{psfig}
\bibliographystyle{unsrt}

\title{Comparison of Computational and Experimental Data using
Computational Steering in a Virtual Environment}
\author{Anirudh Modi\\ {\em (modi@cse.psu.edu)}}
\date{November 13, 2000}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\myfigure}[5]
        {
         \begin{figure}
                \centerline{\psfig
                        {figure=#1,angle=0,height=#3,width=#4}}
                \caption{#5}
                \label{fig:#2}
         \end{figure}
        }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\maketitle

This work attempts to bridge the gap between the Virtual Reality
(VR) community and the engineering community by bringing together
the benefits of VR and computational steering into the
evaluation of complex computational results. A lot of developments
have taken place in the field of VR in the past decade. VR is rapidly
emerging as a major technology to enhance interaction with complex 3D
geometries. VR provides an intuitive way to manipulate 3D data. Using
realistic multi-sensory cues in the virtual environment, people can
become fully immersed in their data and thus observe, explore and verify
the data more effectively~\cite{vr0, vr10, teraflopvr}. VR focuses on
``immersive'' 3-D display of data in real-time with a strong focus on
interaction with humans. A lot of work has been done on scientific
visualization of pre-computed datasets using VR~\cite{vr7, vr8, vr9,
vr11, virtualworkbench, virtualwindtunnel, 3dcomputation}. A thorough
literature review shows that quite a bit of work has been done on
the utilization of computational data generated in real-time using
computational steering~\cite{cosmicworm, cruzneira1, steering1,
steering2, steering3, steering4}.

%, primarily
%because of the large sizes of datasets involved and the complex
%computational algorithms that often take days to simulate a few seconds
%of real-time physics.

Some quality work has also been done in the field of computational
steering by Gu and Vetter~\cite{falcon, vetter2}, who have worked on a
comprehensive system called ``Falcon'', which enables on-line monitoring
and steering of large parallel programs. Computational
steering has also been attempted by coupling of a 2-D solver with
the VR environment by Carolina Cruz-Neira et al~\cite{cosmicworm,
cruzneira1} at the EVL, UIC, in as early as 1993. They worked on very
simple simulations of Rayleigh-Taylor instability and gravitational
wave components predicted by Einstein's Thoery of General Relativity.
The datasets were relatively small and calculations were simplified
by approximating theoretical algorithms and decreasing rendering
quality. The steering was implemented by means of providing a menu
to change input parameters of the simulation and then restarting
the simulation when a change was detected. The computation was done
simultaneously on a separate machine which was networked with the
{\em Cave Automatic Virtual Environment} (CAVE)~\cite{cave}. 
Parker et al. have several publications~\cite{steering1, steering3,
steering5} related to computational steering software systems and
strategies.

However, no work till date has been found which combines the VR and
computational steering along with the comparison to the available
experimental data in real-time. Such a system, if implemented, will
greatly facilitate both the development and validation of numerical
codes, and integrate basic visualization with the generation of the
computational data, thus saving valuable post-processing time. This work
aims at achieving this objective, thus providing the benefits of virtual
reality and computational steering to the difficult task of comparison
and validation of numerical codes. While the work eventually attempts
to be generalized so as to be able to use any kind of 3-D numerical
simulation, a relatively simple case is considered currently
to demonstrate the idea. Since a large amount of experimental
data~\cite{leishman1, leishman2, rotorwakeGT1} for the wake from a
rotor in hover is available, a numerical simulation of this problem is
proposed. A database of these experimental results for various states
of blade positions and speeds are expected to be available for the
comparison in the very near future. Moreover, fairly accurate empirical
models for these experimental data are also available~\cite{leishman},
making the reproduction of approximate experimental data extremely
easy. A FORTRAN code which simulates the rotor-wake in hover, is also
currently under development, and will be available soon. This code
has extremely fast runtime characteristics and has the capability to
generate 3-D wake simulation data within seconds, thus becoming a viable
computational steering candidate for our purposes. Highly advanced,
industry-standard commercial codes like CAMRAD-II~\cite{camrad2}
are also available for prediction of rotor wakes, but they were not
considered due to the lack of availability of the source code, which
is essential for our implementation.

For the computational steering, an approach similar to that used in {\em
Falcon}~\cite{falcon} will be used. Falcon's on-line steering component
consists of a steering server on the target machine that performs
steering, and a steering client that provides the user interface and
control facilities remotely. The steering server is typically created
as a separate execution thread of the application to which local
monitors forward only those monitoring event that are of interest to
steering activities. The steering client receives application run-time
information from the application, displays the information to the
user, accepts steering commands from the user, and enacts changes that
affect the application's execution. Communication between application
and steering client, and steering client and server, is handled by the
transmission tool, {\em Data Exchange}. Data Exchange is a transmission
tool for routing messages between multiple clients where clients can
be broadly classified as applications, visualization/analysis/steering
tools, or other {\em Data Exchanges}. Messages are identified by their
format names and registered with {\em Data Exchange} by both senders
and receivers. When a message is received, it is routed to those
clients who have registered their interest in receiving that message
type. Communication is done either through sockets or file I/O. The
FORTRAN code performing the numerical simulation will be running on a
separate machine and will be communicating to the computational steering
server using network sockets. For the virtual reality application which
will display the 3-D computational and experimental data, {\em CAVE
libraries}~\cite{cavelib} will be used. {\em Reconfigurable Automatic
Virtual Environment} (RAVE)~\cite{rave} from FakeSpace Systems will
be used for the display device. The experimental data will be shown
alongside the generated computational data for the chosen set of
parameters in the same orientation as that of the computational data.
The orientation can be changed interactively by the user. Moreover, the
display would be in stereo, thus providing a feel for the depth in the
visualization of the data leading to a ``true'' 3-D experience.

\myfigure{globalpicture.eps}{globalpicture}{20.0cm}{14.0cm}
        {The global picture}

\bibliography{references}
\end{document}
