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,
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.
Install. The installation page has the full instructions. An overview is:
(optional) Install Galahad: in the directory
legacy_fortran/galahad-2.3/
run the command./install_Galahad
Compile the Fortran programs: in the directory
legacy_fortran/
run the commandmake all
if you have installed Galahad, or the commandmake nogal
if you have not installed itInstall DYNAMITE Python package: in the main directory run the command
python setup.py install
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.