RADMC-3D

Code description

RADMC-3D is a highly flexible code for "postprocessing" models to compute predictions for observable images and spectra. It is not a "model" itself, but a code with which models can be computed. Here follows a description of the basic workings of the code.

Radiative transfer in dust and lines

RADMC-3D is a radiative transfer code for dust and lines. The dust continuum radiative transfer is performed using the Monte Carlo method of Bjorkman and Wood. This computes the dust temperature in the model self-consistently, after which spectra and images can be made. The line transfer is performed in LTE or local non-LTE approximations (such as the LVG approximation).

Model setup: you decide!

RADMC-3D leaves all the decisions to you. The model you wish to compute is 100% your own. You specify a grid (e.g. a 3-D cartesian grid), and the dust (or gas) density in each of these grid cells. You specify one or more energy sources: for instance the location, luminosity and spectrum of one or more stars. You then ask RADMC-3D to produce an image at some wavelength and zoom-factor, or to produce an SED or spectrum in a certain wavelength range.

Postprocessing hydrodynamic models

This "you decide" philosophy makes RADMC-3D ideal for postprocessing (magneto/radiation-)hydrodynamic models made with another code.

Loading model data into RADMC-3D

RADMC-3D provides many ways by which model data can be fed into the code. The main ones are: reading a file in which these data are stored (the format being described in the manual), or inlining a model-creating subroutine straight into RADMC-3D (using the userdef_module.f90 module).

Flexible microphysics

Also the microphysics, such as dust opacities, gas line lists or gas level diagrams, can be specified completely flexibly. This data is also fed into RADMC-3D through data files. The RADMC-3D package provides example files for these, so that the user can directly start. It also provides information and Python scripts to create your own microphysical input files (for instance if you wish to use different dust minerals or grain sizes, or different molecules).

Example models

Although RADMC-3D comes with an extensive manual in which everything is described in detail, it is always helpful to have template models. The RADMC-3D package comes with numerous example models which are kept as simple as possible. If you wish to make your own model, you typically start from one of these example models, and take it from there.

F90 core, Python interface

The main code, which does the radiative transfer computations, is written in Fortran 90. But that does not mean that you, the user, have to learn Fortran 90. Nearly all interaction with the code goes through the reading and writing of files. These files can be written and read by programs in any other language. We provide several examples and tools in Python, but you can use anything you like.

The radmc3dPy python package

Attila Juhasz developed a sophisticated Python package, called radmc3dPy, for analyzing the results of RADMC-3D in Python. This package was originally developed separately from RADMC-3D, but has later been incorporated into the RADMC-3D distribution. As of Version 2.0 of RADMC-3D, the radmc3dPy package is now an integral part of the RADMC-3D distribution, and will be kept up to date as part of RADMC-3D.

logo

Copyright © 2020
C.P. Dullemond

logo