|
Frequently Asked Questions (FAQs) about Interactive
Computational Simulation
Q: What is a "Computational Simulation"?
A: It's software that models some process, typically
from an area of science or engineering. Examples of
continuous phenomena include simulation of
electromagnetism, heat
transfer, fluid dynamics, climate; examples of discrete phenomena
include simulation of atoms, traffic, network systems.
Q: What's the "Interactive" part?
A: Two things: (1) seeing the simulation update
quickly, e.g., every tenth of a second; (2) influencing
the computation through an input device (such as a mouse
or keyboard). The first issue is the concern of real-time
systems. The second is sometimes called interactive steering.
Currently many scientific computations are performed
in "batch mode" -- you start one up on a supercomputer,
let it run overnight, and then examine the data tomorrow.
If there was a bug in the code or in the parameters,
you make a change and repeat the process.
Software designed according to this paradigm is difficult
to retro-fit with a visual interface for browsing data
or changing parameters. This course starts from a different
premise: you run a lightweight simulation on your
desktop computer and you can experiment with it as it runs.
This combination of simulation and interaction is sometimes
called a "problem solving environment".
Q: Why is the course being offered?
A: To equip students in the sciences to experiment
with physical situations using software that they create
themselves. A computer doesn't replace nature, but a computational
simulation can give insight into physical processes.
Research in the sciences increasingly uses computational
simulation for experimentation. The next generation
of scientists and engineers will use simulation systems
as their laboratories. Those who can create their own
systems will have a competitive advantage over those
who use systems created by others.
Q: Why hasn't the course been offered before?
A: The technology simply wasn't available.
With a 2 gigahertz processor
and an nVidia
GeForce4
card, a desktop computer is now capable
of supporting an interactive 3D physical simulation. A similar
capability wasn't even available ten years ago (1992); five years ago
(1997) it
would have cost at least $500,000. Now is a great time to be
a student learning how to create an interactive computational simulation.
Q: Is
all science computer science?
A: So says the
New York Times article by George Johnson
(March 25, 2001). He really meant "all science
is computational science."
Q: Why does the course require
object-oriented programming?
A: The assignments use Open Inventor, an object-oriented
graphics library in C++.
Q: What if I've never written C++ code before, but I've
programmed using another language?
A: Then you will need to learn some C++ as we go.
The programming assignments require you to modify working
code, not create code from scratch. The course also requires
you to create a Web page for each assignment. If you have
never created a Web page, you will need to learn some
HTML as we go. The course will include some instruction
in C++ programming and in creation of Web content.
Q: Why not use the FORTRAN programming language?
A: C++ is an important language to know, with
widespread use among professional programmers.
Many computational libraries have been developed
both in FORTRAN and in C++, but there is weak support for
FORTRAN-based graphics libraries, which are essential
for interaction.
Q: Why does the course
require Computer Graphics?
A: Because of the interactive part. To see a
three-dimensional simulation as it runs, you need to display it
graphically on the
computer screen.
Q: Why does the course use Linux?
A: Because of free software tools under Linux
that support interaction. Such
as Open Inventor (based on OpenGL).
Q: Why does the course use
Open Inventor?
A: It's a free, open-source 3D graphics library, written
in C++, that supports interaction.
Q: Why does the course
recommend Differential Equations?
A: Because they describe
so many continuous physical processes.
One of the great successes in scientific computing
has been the development of algorithms to solve complicated
differential equations efficiently and accurately.
The programming assignments will make use of discrete
approximations to differential equations.
Q: Why not use Maple or Matlab or some other
existing software package to do the simulations? Why write
our own code?
A: When you write your own interactive computational
simulation, you have total control over its workings.
Plus, you have a competitive advantage over people who don't
know how to create one.
Q: Is this a course about Fourier transforms
and elliptic solvers and stability and pre-conditioning
and convergence?
A: No. These topics are covered in courses on
numerical algorithms such as MAP 4341,
MAD 5420, MAD 5427, MAD 5738, MAD 5739,
and ECH 5842.
Q: How much programming will I have to do?
A: The target is 6 hours per week for homework,
including programming.
|