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:
User-Guide
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.