This topic briefly introduces the key components of the SKIRT project, i.e. the SKIRT code, the MakeUp graphical user interface, and the Python Toolkit for SKIRT. For further information on how to install these components and for details on system requirements and dependencies, see the Installation Guide. For a summary of features, see Key features of the SKIRT code and Key features of the Python Toolkit for SKIRT (PTS).
The core component of the SKIRT project is the SKIRT command line program, which allows simulating radiation transfer in astrophysical systems. The configuration for a particular SKIRT simulation is fully defined by means of a parameter file in XML text format. These parameter files can be created and edited in the following ways:
The MakeUp utility is built as a separate program, so it does not need to run on the same computer as the SKIRT command line program. The consecutive wizard panes follow the same pattern as the Q&A session driven by the command-line program, with the important benefit of a graphical user interface. One key advantage of the graphical wizard is the ability to navigate backward in the Q&A sequence. This allows verifying or adjusting your responses to the preceding questions.
The overall workflow in which SKIRT simulations take part can be exceedingly complex. For example:
Radiative transfer simulations can be very resource-intensive, which is why the SKIRT code is written in the compiled language C++. For the peripheral functions listed above, however, ease of development is much more important than execution speed. The Python language, properly extended with the relevant third-party libraries, perfectly fits the bill. Commonly available Python packages handle the data formats used in astronomy and support scientific computations. Plotting capabilities support quick graphs for initial analysis up to publication-quality figures.
The Python Toolkit for SKIRT (PTS) includes basic tools for working with SKIRT from the command line and offers a set of Python functions that can be invoked from a custom Python pipeline or simply serve as inpiration for a desired implementation.