The Art of Computational Science

How to build a computational lab

© 2003-2009 Piet Hut and Jun Makino

Deutsch Español Français Italiano Nederlands Türkçe

What's New?

  • 2009, July 13: Grav-Sim, a C++ port of an extended subset of ACS, by Mark Ridler.


Below you can read our various book volumes directly on the web. If you prefer to download a copy, you can choose one of our ACS release versions, which also include the computer programs discussed in the text. We are making all our ACS (Art of Computational Science) material available under the conditions of our ACS open source license. See the What is New? page for a description of new developments, and the FAQ page for answers to frequently asked questions.

ACS: Introduction

Having access to the source code is one thing. Having access to the tacit knowledge that went into the process of writing the source code is quite something else. In our Manifesto below, we describe the philosophy behind the ACS initiative. Briefly, we want to go beyond the notion of open source to the much wider notion of open knowledge which includes a full background description for the design decisions made while writing the source.

An ACS Project: Maya

The Maya project is directed toward the construction of an open laboratory for dense stellar systems, such as star clusters, star forming regions, and galactic nuclei containing one or more massive black holes. The presentation is centered around dialogues between two astrophysicists who are developing the Kali code for simulating dense stellar systems. In the process, they construct an open lab, Maya, to set up initial conditions, run the Kali code, and analyze the results. We are currently in a start-up phase, as described in our newly revised five-year plan.

The ACS Toolbox

The ACS Toolbox is a collection of software tools, useful for large-scale simulations in any area of computational science. These tools were developed within the context of the Maya project, but they are presented here as a standalone package. In order to use these tools, the user does not need to know anything about the Maya project (this is our goal; the full decoupling from Maya will probably take place in 2007). Currently, the ACS toolbox contains the following six tool modules. We plan to provide stand-alone introductions to each one, but for now we give the references to the corresponding Maya volumes. By clicking on the title, you will be redirected to the respective web pages. If you prefer to read each volume in postscript or pdf format, click on the word "PS" or "PDF" listed after each title.

Moving Stars Around

As an introduction to our Maya Open Lab project, we present This book can also serve as an introduction to stellar dynamics, and as such can be used for self-study, as well as in a class room. It's main topic is the two-body problem, and it is fully self-contained, providing introductions to the physics, mathematics, numerical analysis and code writing involved in a modern object-oriented approach. Future volumes will continue with the general N-body problem.

Our older book, written in 2003, contains an introduction to setting up N-body experiments, in 260 pages:

It is still useful, offering a detailed explanation of a variable time step Hermite code written in C++. It will be deprecated in 2007-2008, when it will be gradually replaced by the volumes within the Maya school series, starting with the new volume with the same name, mentioned above.

Related Information

Related Literature

Here are some papers that give more background and context for the ACS initiative and in particular the Maya project:

Related projects

Here we list projects that are inspired by, or otherwise related to, ACS:
  • Formation Rate of Binaries in Three-Body Interactions , Mon. Not. Roy. astr. Soc. xxx, xxx-xxx (2007). In this paper we present a gravitational laboratory for modeling a chunk of a homogeneous star distribution, using periodic boundary conditions. The codes used in that paper can be found here
  • Galaxy Dynamics N-body Simulations, a self-teaching project, created by Jakub Schwarzmeier.
  • Visual Python N-Body, a solar-system dynamics package, created by Rodney Dunning.
  • Kaliope", a gravitational N-body simulator, written by Jason Underdown.
  • Grav-Sim: Gravity Simulation on a Desktop Computer, an evolution of the ACS code, by Mark Ridler.
    The new features include:
    • porting to C++
    • accelerator plug-in interface
    • tree-based accelerator as a faster alternative to brute-force
    • choice of precisions (float, double and dd_real)
    • batch processing for improved performance
    • transactional time-steps for improved accuracy
    • parallel processing via OpenMP
    • GLUT-based viewer that updates as you watch
  • StarryOrbits, an N-body visualization project, created by Dave Wilson

Similar literature and projects

Here are some other papers and projects that present interesting views about new approaches to computational science:

Picture credits:
The ACS logo, formed by the letters A, C, and S, was designed by Piet Hut (2003).
The Tower in Istanbul was photographed by Piet Hut (2001).
The globular cluster M80 was photographed by the Hubble Space Telescope.
The toolbox picture comes from a bronze age shipwreck excavation at Cape Gelidonya by the Institute of Nautical Archaeology.
The picture of the three stars in a figure 8 orbit was designed by Maryleen Schiltkamp (2001).
The picture of the yang-yin (i)go/weichi/baduk stones was designed by John Tromp.