2D Interface

With the 2D interface of ProDiMo it is possible to provide input files for the 2D (r,z) density structure. This is possible for the gas but also for the dust (i.e. gas to dust mass ratio, grain size distribution function f(a,x,z) etc.). Furthermore, one can provide the velocity field (relevant for line predictions), gas and dust temperature. The main purpose of the 2D interface is to post-process (M)HD simulations to calculate the chemistry and line emission.

This 2D interface was succesfully used for PLUTO, NIRVANA, IDEFIX (work in progress) and some custom (M)HD simulations (e.g. Rab+ 2022,Weber+ 2025).

Things to consider

Transferring results from an (M)HD simulation to ProDiMo is not trivial and requires some work by the user. Here we list some aspects the are likely relevant for most applications.

  • If just the gas structure is available, one has to make a choice for the dust (i.e. opacities etc.). Running ProDiMo completely without dust is usually not what one wants for a protoplanetary disk model.
  • It is necessary to *interpolate the data from the (M)HD model grid to a grid that is suitable for ProDiMo. This can be challenging, as the ProDiMo grid is optimized for a "flat", disk like structure (i.e. cylindrical grid), while hydro models might use spherical grids, and can include e.g. outflows or winds. One needs to make sure to have enough grid points to properly sample the hydro structure, but also to have accurate results for the chemistry.
  • It might be necessary to manipulate the data from the hydro models, as there could be invalid values (zero densities, temperatures etc.).
  • Depending on the hydro model, one also has to "transfer" stellar properties such as luminosity, mass or the stellar spectrum, this has to be done manually.
  • gas properties such as the molecular weight, have to be somehow translated to ProDiMo (i.e. proper setting of Elements.in and Species.in).
  • Use temperatures from the hydro code or recalculate them with ProDiMo? Both options are possible, but one has to decide what is the best option for the particular application. However, in both cases there will be inconsistencies.
  • If e.g. a dust size distribution is provided by the (M)HD model, one still has to make a choice for the dust composition, which is relevant for the opacities. Furthermore, the internal grain density, should match with what is assumed in the (M)HD model (if it is relevant there). This has to be done manually by the user, and it is not possible to transfer this information from the (M)HD model to ProDiMo.
  • one always has to be careful with the post-processing approach, doing the chemistry just for a static snapshot is always an approximations, and one has to check if the results make sense physically. This really depends on your hydro model and application.

How to use the 2D interface

The current approach we are using has the following steps:

  • gather some information on the disk size, star etc. from the (M)HD model.
  • prepare stellar spectrum file if necessary or set the stellar parameters accordingly in Parameter.in
  • setup a ProDiMo model with a grid that covers the computational domain of the hydro model, and with a suitable number of grid points (usually a couple of 100 points in r and z).
  • run that model with stop_after_init = .true. to create the initial ProDiMo model, and check the grid, dimensions etc.
  • use the tools from prodimopy (2D Interface), to interpolate the (M)HD data onto the grid of this initial ProDiMo model and produce the necessary input files for ProDiMo. In the prodimopy documentation you will also find an example on how to do this.
  • adapt the Parameter.in to use the 2D interface and the created input files and run ProDiMo.

With this approach it is secured that one has a proper ProDiMo grid and setup. The prodimopy tools are not necessary, one can also generate the input files by other means, but it is likely easier and safer to use prodimopy

IMPORTANT: Please be aware that the generated input files do not have information about the grid, so if you are changing the grid in the ProDiMo model you need to redo the interpolation step and regenerate the 2D input file.

Once one is happy with the generated input files, one can activate the interface in Parameter.in:

.true.        ! interface2D       : activate the 2D interface

If interface2D is set to true, ProDiMo will look for the 2D input files, which were created with the prodimopy tools. Those have currently names such as pluto_rho.dat or pluto_vx.dat. Those names are currently hard-coded in ProDiMo and cannot be changed by the user.

Limitations

  • dust settling is not allowed with the 2D interface at the moment (however, it might be possible to include it).
  • multi-zone models are not possible (never tried it though)
  • possibly more, by far not all features of ProDiMo have been tested with the 2D interface!