yt.analysis_modules.radmc3d_export.RadMC3DInterface.RadMC3DWriter

class yt.analysis_modules.radmc3d_export.RadMC3DInterface.RadMC3DWriter(ds, max_level=2)[source]

This class provides a mechanism for writing out data files in a format readable by radmc3d. Currently, only the ASCII, “Layer” style file format is supported. For more information please see the radmc3d manual at: http://www.ita.uni-heidelberg.de/~dullemond/software/radmc-3d

Parameters:

ds : Dataset

This is the dataset object corresponding to the simulation output to be written out.

max_level : int

An int corresponding to the maximum number of levels of refinement to include in the output. Often, this does not need to be very large as information on very high levels is frequently unobservable. Default = 2.

Examples

This will create a field called “DustDensity” and write it out to the file “dust_density.inp” in a form readable by RadMC3D.

>>> import yt
>>> from yt.analysis_modules.radmc3d_export.api import RadMC3DWriter
>>> dust_to_gas = 0.01
>>> def _DustDensity(field, data):
...     return dust_to_gas*data["Density"]
>>> yt.add_field("DustDensity", function=_DustDensity)
>>> ds = yt.load("galaxy0030/galaxy0030")
>>> writer = RadMC3DWriter(ds)
>>> writer.write_amr_grid()
>>> writer.write_dust_file("DustDensity", "dust_density.inp")

This example will create a field called “NumberDensityCO” and write it out to the file “numberdens_co.inp”. It will also write out information about the gas velocity to “gas_velocity.inp” so that this broadening may be included in the radiative transfer calculation by radmc3d:

>>> import yt
>>> from yt.analysis_modules.radmc3d_export.api import RadMC3DWriter
>>> x_co = 1.0e-4
>>> mu_h = yt.Quantity(2.34e-24, 'g')
>>> def _NumberDensityCO(field, data):
...     return (x_co/mu_h)*data["Density"]
>>> yt.add_field("NumberDensityCO", function=_NumberDensityCO)
>>> ds = yt.load("galaxy0030/galaxy0030")
>>> writer = RadMC3DWriter(ds)
>>> writer.write_amr_grid()
>>> writer.write_line_file("NumberDensityCO", "numberdens_co.inp")
>>> velocity_fields = ["velocity_x", "velocity_y", "velocity_z"]
>>> writer.write_line_file(velocity_fields, "gas_velocity.inp")

Methods