Abstract
We discuss the architecture and design principles that underpin the latest
version of SKIRT, a state-of-the-art open source code for simulating continuum
radiation transfer in dusty astrophysical systems, such as spiral galaxies and
accretion disks. SKIRT employs the Monte Carlo technique to emulate the
relevant physical processes including scattering, absorption and emission by
the dust. The code features a wealth of built-in geometries, radiation source
spectra, dust characterizations, dust grids, and detectors, in addition to
various mechanisms for importing snapshots generated by hydrodynamical
simulations. The configuration for a particular simulation is defined at
run-time through a user-friendly interface suitable for both occasional and
power users. These capabilities are enabled by careful C++ code design. The
programming interfaces between components are well defined and narrow. Adding a
new feature is usually as simple as adding another class; the user interface
automatically adjusts to allow configuring the new options. We argue that many
scientific codes, like SKIRT, can benefit from careful object-oriented design
and from a friendly user interface, even if it is not a graphical user
interface.
Users
Please
log in to take part in the discussion (add own reviews or comments).