Monte Carlo radiative transfer, at Warp speed!

Monte Carlo radiative transfer, at Warp speed!#

pinball-rt is a modern Monte Carlo radiative transfer code, designed to run on GPUs and to leverage Machine Learning to accelerate the radiative transfer calculations.

Quickstart#

Install pinball-rt with pip:

pip install git+https://github.com/psheehan/pinball-rt.git

Then set up a model and run:

from pinballrt.sources import BlackbodyStar
from pinballrt.grids import UniformCartesianGrid
from pinballrt.model import Model
import astropy.units as u
import numpy as np

# Set up the star.
star = BlackbodyStar()

# Set up the grid.
model = Model(grid=UniformCartesianGrid, grid_kwargs={"ncells":9, "dx":2.0*u.au})

density = np.ones(model.grid.shape)*1.0e-16 * u.g / u.cm**3
amax = np.ones(model.grid.shape) * u.cm
amax[4,4,4] = 1.0 * u.micron

model.set_physical_properties(density=density, dust="diana_wice.dst", amax=amax)
model.add_sources(star)

# Calculate the temperature structure.
model.thermal_mc(nphotons=100000)

# Make an image.
image = model.make_image(npix=256, pixel_size=0.2*u.arcsec,
                         channels=np.array([1., 1000.])*u.micron, incl=45.*u.degree,
                         pa=45.*u.degree, distance=1.*u.pc, device='cpu',
                         include_gas=False, nphotons=1000000)

Or, click the link below to try it out in Google Colab:

Or, Try Me In Colab

Acknowledging pinball#

Love pinball and want to cite it in your paper? Please include the following citations:

<COMING SOON>

Contributing and/or Bugs#

Want to contribute? Found a bug? Please feel free to open an issue or pull request on GitHub and the pinball team will follow up with you there.