Previous ToC Up Next

1. Preface

1.1. Tacit Knowledge

In many areas of science, computer simulations of complex physical systems cannot be performed with off-the-shelf software packages. Instead, computational scientists have to design and build their own software environment, just as experimental scientists have to design and build their own laboratories, before being able to use them. For a long time, however, the know-how needed to construct computational laboratories has remained only a form of tacit knowledge.

Unlike explicit knowledge that can be found in manuals, this type of implicit knowledge has been alive in conversations among experts, and has been passed down in that way only as a form of oral tradition. This kind of knowledge has not been written down anywhere in sufficient detail to allow it to be passed down without direct personal instructions, or indirect osmosis through personal participation in a joint project.

We have started the The Art of Computational Science (ACS) series with the aim of making explicit the implicit knowledge of experts of scientific simulations. Besides offering detailed explanations of the structure of the computer codes used, in an `open source' style, we provide a deeper layer of knowledge. Besides the what and how for any computer code, we also provide the why: the motivation for writing it the way it was written, within the context in which it was conceived. This will give the user more appreciation for the background of the structure chosen, and most importantly, this will give the user the ability to easily modify and extend the codes presented, without finding oneself at odds with the original style and aim.

1.2. Projects

So far, we have started two projects within the ACS series. The umbrella project is called Open Knowledge. Volumes in this series will address issues that are common for all branches of computational science. Other projects will be more specific, addressing issues for a particular set of scientific problems. The Maya project is an example of a project in astrophysics, aimed at developing a computational laboratory for the study of dense stellar systems.

It is our sincere hope that our example will inspire the start of various other projects, following the general philosophy of the ACS initiative. We welcome contributions from others along these lines, in any field of science.

The current volume forms the start of the Open Knowledge series. It will contain information about the background for the ACS approach, and general issues that come up with respects to its implementation. For now, we have written only the first chapter. In future releases we plan to add more material, based in a large part on reactions from colleagues and students, using our material.

The next volume will contain a detailed discussion of the infrastructure of ACS documentation. We have drawn our inspiration from various sources, including Donald Knuth's notion of literate programming. Our current implementation is based on extensions of the Rdoc system (see "http://rdoc.sourceforge.net/"), which we found to have a type of balance between generality and ease of implementation which was just right for our purpose.

1.3. 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.

1.4. A Historical Note

In preparing for our project, we wrote a complete manuscript, titled Moving Stars Around MSA), also in dialogue form, but aimed more at beginning students who may not yet have much familiarity with computer programming and the use of numerical methods. We have no current plans to continue that particular approach, but even so, the manuscript will remain a useful guide for N-body calculations, with a somewhat different emphasis than the one presented in the Kali series.

For example, MSA provides a very quick shortcut to playing with simple algorithms and simple graphics representations of orbit calculations. Both topics are treated in far more detail in the Kali series, leading to far more robust and general code, but it will also require more patience from the reader to get there. This is one of the reasons that we decided to keep the MSA volume on our web site indefinitely, as additional introductory material.

1.5. 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. We thank Martin Hansen and Douglas Heggie for comments on the manuscript.

Piet Hut and Jun Makino

Kyoto, June 2004

(written for the occasion of the ACS 1.0 release)
Previous ToC Up Next