Here follows a combined report/plan for the initial five-year phase of
the Maya project, to develop the Maya open lab, with the Kali
code for simulating dense stellar systems as its center piece.
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 Maya series
(then called Kali series)
and released our first product, ACS 1.0.
In volume 0, we
presented the astrophysical motivation for the 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.
2005, July-Dec.:
Since we became increasingly dissatisfied with the loss of coherence
of our codes and documentation, despite our best intentions, we decided
to rethink our whole approach. Our main conclusion was to introduce
two parallel series of web volumes, a development series and a
school series. At the same time, we introduced the name
Maya to indicate our whole project of providing modular tools
for modeling dense stellar systems, in contrast to our main tool, the
Kali code, which will form the center piece of the Maya open
lab, which invites users to pick and choose what they find of
their liking, and to combine what they like with their own software
modules, in their own setting or in Maya, as they prefer. From now
on, the development series, the main Maya
series will continue to be the repository of the documentation of
the history of the development of Maya. Currently at already more
than 1,000 pages, the Maya series is expected to reach some 10,000
pages. In contrast, the school series will be more compact,
and will provide students with self-study material, as a relatively
quick introduction to the Maya project. These plans led to a
revised five-year plan.
We then started to rewrite our first product,
Moving Stars Around,
into the first volume of the Maya school series.
2006, Jan-June:
Rewriting our original educational volume took significantly more
time than we had anticipated. One reason was that we decided to
make the new version much more self-contained than the previous
one. We added more background about the physics, including a
discusion of coordinate transformations, as well as concepts such as
the center of mass of a self-gravitating system. We added more
background about numerical integration algorithms, including a
geometric derivation of the modified Euler scheme. We added more
details about error analysis, including plots for the growth of errors
in energy for time-symmetric and non-time-symmetric integration schemes.
And finally we added an introduction to object-oriented programming
and operator overloading, taking as an example the construction and
use of a Vector class in Ruby.
2006, July-Dec.:
We finished the new volume
Moving Stars Around (2006),
as the first volume of the Maya School Series.
This volume treats the material that was presented in the early chapters
of the old volume with the same name,
Moving Stars Around (2003),
that was finished three years earlier. As sketched in the paragraph
above, the approach has been expanded significantly, with a number of new
features added. The lengths of both volumes are similar, and the new
volume only covers the two-body problem. The subjects treated in the
remainder of the original volume will be dealt with in subsequent
volumes in the Maya School Series. As for the
Maya Development Series, we returned
to the first few volumes, starting a whole new pass through the series,
to tie up many loose ends.
2007, Jan-June:
Plan for the Maya Development Series:
Clean up the description of the various ACS tools, in volumes 5
through 10. Then continue to clean up the description in the volumes
leading up to individual times steps. Plan for the
Maya School Series: start writing one or
more volumes, about the general N-body problem, as well as visualization
and simple usage of the ACS toolbox.
2007, July-Dec.:
Plan for the Maya Development Series:
start writing 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.
Plan for the Maya School Series: continue
writing one or more volumes, about the general N-body problem, as
well as visualization and simple usage of the ACS toolbox.
2008, Jan-June:
Plan for the Maya Development Series:
continue writing one or more volumes, about the general N-body problem,
as well as visualization and simple usage of the ACS toolbox. Start
running some early version of the Kali code on the
GRAPE-DR,
predicted to be the first computer running at a speed of more than 1 Petaflops.
Plan for the Maya School Series: try to finish
the series to the point of simulating core collapse for small-N systems.