Welcome to DYNAMITE’s documentation!

DYNAMITE (DYnamics, Age and Metallicity Indicators Tracing Evolution) is a tool for orbit-based dynamical modelling of stellar systems. It will soon be enhanced with stellar-population modelling tools.

How to cite

If you use DYNAMITE, please cite our ASCL entry using the following BibTeX citation. Moreover, please cite the paper presenting the original code, van den Bosch et al. 2008, and our most recent contribution, Thater et al. 2022.

If you use the dynamite.analysis.Decomposition class, please cite the papers describing its methodology, Zhu et al. 2018 and Santucci et al. 2022.

If you model a galaxy having a bar/disk (i.e., if your configuration file includes a bardisk component), please cite Tahmasebzadeh et al. 2022.

Orbit mirroring bug

Quenneville et al. 2022 reported a bug in the orbit calculation of the original van den Bosch et al. 2008 code that is used in DYNAMITE. We corrected the old mirroring in DYNAMITE, starting from version 3.0.0. From this version on, the default DYNAMITE run uses the correct mirrroring. We caution the user to not use the old orbit calculation routine.

In Thater et al. 2022, our team provides a thorough quantification of how this bug has affected the results of dynamical analyses performed with previous versions of the code. Focusing on the typical scientific applications of the Schwarzschild triaxial code, in all our tests we find that differences are negligible with respect to the statistical and systematic uncertainties.

The bug occurred in the orbit calculation (legacy-fortran/orblib_f.f90), where a few velocity components needed a different sign (as reported in Table 1 of Quenneville et al. 2022). The corrected orbit calculation is found in (legacy-fortran/orblib_f_new_mirror.f90).

Getting Started

To get started with DYNAMITE,

  1. Get the latest stable version from our GitHub release page. If you want the current version in development, you can also download this from our GitHub page.

  2. Install. The installation page has the full instructions. An overview is:

  1. (optional) Install Galahad: in the directory legacy_fortran/galahad-2.3/ run the command ./install_Galahad

  2. Compile the Fortran programs: in the directory legacy_fortran/ run the command make all if you have installed Galahad, or the command make nogal if you have not installed it

  3. Install DYNAMITE Python package: in the main directory run the command python setup.py install

  1. Run orbit-based models! The following program will run a single model,

import dynamite as dyn

c = dyn.config_reader.Configuration('my_config.yaml') # read configuration fie
parset = c.parspace.get_parset()                      # extract a parameter set from configuration
model = dyn.model.Model(config=c,parset=parset)       # make a model object
model.setup_directories() # make directory tree
model.get_orblib()        # make an orbit library
model.get_weights()       # find orbital weights

The following pages give all the information needed to get started,

The tutorials also show an example of running DYNAMITE from start to finish - this could also be a great place to start getting acquainted with the code. Further sections show other API-documentation for specific classes and methods, and other miscellaneous information.

Tutorials

The following tutorials give detailed walkthroughs for using DYNAMITE. Each page is an ipython notebook which you can either view in the browser, or download and interact with yourself.

API Documentation

These pages contain DYNAMITE’s API documentation, i.e. the classes and method definitions and descriptions. This may be useful for code developers, or anyone who intends to modify the code for their own personal use. The API overview may be a useful starting point.

More Information

Indices and tables