Here follows a combined report/plan for the initial five-year phase of
development of the Kali code.
2003, July-Dec.:
After a two-week design study for the Kali code, we started
to explore how the Ruby language could be used for realistic large-scale
simulation projects. After extensive tests, we decided to go ahead with
Ruby, and we wrote the basic software for the production of html and
ps/pdf files directly from a shared source, in what we called the `ok'
(open knowledge) format. During this time, we also completed the C++
based pilot project, that resulted in the volume
Moving Stars Around.
2004, Jan-June:
We wrote the first few volumes of dialogues in the Kali series,
and released our first product, ACS 1.0.
In volume 0, we
presented the astrophysical motivation for the Kali project, followed
by an introduction to working with Ruby in
volume 1.
In addition we produced volumes describing simulations of the
2-body
problem and the
N-body
problem, and a step-by-step explanation of how
to set up initial conditions, based on a
Plummer model.
2004, July-Dec.:
Instead of writing more volumes, we concentrated on developing N-body
codes using individual time steps, as prototypes for the Kali code.
This gave us detailed practice in designing and developing highly
modular codes, in which is was easy to swap integration schemes.
We succeeded, as far as we know for the first time, to write a code
in which individual particles can be given individual integration
schemes, while still moving together under the influence of their
mutual gravitational forces in the same simulation.
2005, Jan-June:
We spent one week reviewing our progress so far, during which we
returned to the ideas we originally developed in the summer of 2003.
After considering various possibilities for a long-term strategy of
code development, we decided to continue to follow our original plan,
with some possible modifications to allow efficient inclusion of
massive central black holes in simulations of galactic nuclei.
We continued to develop our various prototypes, and we also started
some simple lab experiments, to explore how we could use Ruby to run
programs that in turn run slews of simulations. We then went back to
writing some volumes, about
shared
time-step codes and
individual
time-step codes.
Looking back on the progress we had made, we also realized that our
volume writing had grown rather uneven, and we drew up a plan of action
to guarantee a more sustainable development of documentation, in the
form of dialogues. This led to the first five-year plan, described on
this page.
2005, July-Dec.:
Plan: finish writing the basic volumes, describing the acs data structures,
acs documentation software, command line arguments, graphics, etc.
2006, Jan-June:
Plan: write the volumes that are needed for a treatment of the
1000-body problem. This will include some form of regularization of
internal binary motions as well as the perturbations on and by those
binary motions from and to the surrounding neighbors.
2006, July-Dec.:
Plan: write volumes about astrophysical applications of the software
developed in the first half of that year.
2007, Jan-June:
Plan: write extra volumes, to describe the treatment of primordial
binaries and massive black holes, to allow the simulation of realistic
star clusters and galactic nuclei, at least on the point-particle level.
2007, July-Dec.:
Plan: write volumes about astrophysical applications of the software
developed in the first half of that year.
2008, Jan-June:
Plan: write volumes about running the Kali code on the
GRAPE-DR,
predicted to be the first computer running at a speed of more than 1 Petaflops.