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.
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).
To get started with DYNAMITE,
Install. The installation page has the full instructions. An overview is:
Install Galahad: in the directory
legacy_fortran/galahad-2.3/run the command
Compile the Fortran programs: in the directory
legacy_fortran/run the command
Install 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.
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.
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.