0.3. A Narrative in Dialogue Form
The format we have chosen for our book series, is sufficiently unusual
that it deserves some clarification. Most scientific text books
summarize the state of the art of a field `after the dust has
settled.' Students are presented with a clean path of logic that
bears little resemblance to the historical process of trial and error
that underlies any scientific discovery, large or small. As a result,
a graduate student facing his or her first major piece of independent
research is in for a big shock, suddenly realizing how hard it is to
derive anything new with little or no guidance.
In practice, the blow is softened in many cases by conversations
with a range of helpers, from fellow students, somewhat more senior
postdocs, as well as thesis advisers and other faculty members.
However, not everyone is so lucky as to find sufficiently helpful
advice that way, and in a world of increasing specialization, the
advice of even the most well intended helpers may not suffice for
the problem at hand. This is especially true in a rapidly evolving
area such as computational science, where the most basic tools, from
languages to packages to the very approach to programming, have
changed so much even in the last ten years.
Nor is browsing in a book store is likely to turn up much that is
helpful. While there are many books that discuss algorithms and
programming languages, those are necessary but far from sufficient
ingredients for building a computational lab. What is needed is a
practical form of know-how, of how to approach the whole process of
lab building, from developing an overarching vision to connecting it
to nitty-gritty details. To present this form of know-how, via case
studies, is the central aim of our book series.
Given this wide-ranging challenge, a traditional approach of just
summarizing our basic points would most likely be insufficient to let
students apply our method to their own specific problem case.
Instead, our approach is based on giving a hands-on feel for the many
pitfalls and diversions on the road to the design and development of
large and complex software systems. And the only real way to get such
direct experience is to make mistakes, many of them, and then to learn
from them, systematically.
Even the best researchers spent most of their time making mistakes; it
is the fuel for the engine of exploration. Our aim in this series is
to share this approach with our readers, providing them with a sample
of the types of mistakes we have made in the the quarter century that
we have been working in computational science. The best way to share
this atmosphere of trial and error, we think, is through a dialogue
between researchers who resemble ourselves, in their way of
formulating plans, noticing problems, adjusting their aims, finding
ways around stumbling blocks, in short, dealing with the joys and
frustrations of every-day research.
One of us (J.M.) first applied
this approach in a short book called Pasokon Butsuri Jitchi Shidou
(Practical Computer Physics) [1999, Kyouritsu Shuppan, Tokyo, Japan].
Since we were both happy with the result, we decided to continue this
style in the ACS series.
We could of course have written a fictional dialogue between the two
of us, distilling our experience of working together for much of our
professional life: since 1988 we have been coauthors on some fifty
scientific publications, and together we have organized two symposia
sponsored by the International Astronomical Union and edited the
corresponding proceedings, as well as a number of workshops. However,
such an literal approach would have been too narrow, and we decided it
would be much more fun to use composite characters, drawing from
history and imagination.
0.4. ACS versions
We use the name The Art of Computational Science not only for
our book series, but more generally for the software environment for
which the books provide the narrative. The environment includes the
collection of computer codes discussed in the books, together with the
infrastructure to make it all work together seamlessly. This implies
extensive comments provided in the codes themselves, as well as manual
pages.
Our plan is to make successive stable versions of this software
environment available, starting with ACS 1.0, which contains a small
but self-sufficient core of simple N-body programs and accompanying
documentation and narrative. These versions can be freely downloaded
from our web site "http://www.ArtCompSci.org". They include all
completed and partly completed volumes in our book series. Text,
code, and everything else is presented as open source software under
the conditions of the MIT license:
Copyright (c) 2004 -- present, Piet Hut & Jun Makino
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
0.5. Background
The quickest way to obtain more background information about dense
stellar systems is to consult the web site
"http://www.manybody.org/modest.html" of the MODEST initiative (for
MOdeling DEnse STellar systems). There you
can find out about its many workshops and working groups, as well as
teaching activities, including N-body Schools where we regularly
present the current ACS material. You can also find literature references
there, under working group 8.
Two specific recent references, close to the material presented in the
Maya series, are:
-
Gravitational N-Body Simulations, by Sverre Aarseth, 2003
[Cambridge University Press]
-
The Gravitational Million-Body Problem, by Douglas Heggie and
Piet Hut, 2003 [Cambridge University Press]
0.6. Historical Note
The current version of this introduction was rewritten in December 2006,
to take into account the name change from Kali series to Maya series,
and the introduction of a School series in addition to the Development
series that was started in 2004.
0.7. Acknowledgments
Besides thanking our home institutes, the Institute for Advanced Study
in Princeton and the University of Tokyo, we want to convey our
special gratitude to the Yukawa Institute of Theoretical Physics in
Kyoto, where we have produced a substantial part of our ACS material,
including its basic infrastructure, during extended visits made
possible by the kind invitations to both of us by Professor Masao
Ninomiya. In addition, we thank the Observatory of Strasbourg, where
the kind invitation of Professor Christian Boily allowed us to make a
rapid beginning with the current volume.
Finally, it is our pleasure to thank Douglas Heggie, Stephan Kolassa,
Ernest Mamikonyan, Bill Paxton, Michele Trenti and John Tromp for
their comments on the manuscript.
Piet Hut and Jun Makino
Kyoto, June 2004 (revised in December 2006)