Spherical Shell
A spherical shell of gas centered in the unit cube, from inner_radius to outer_radius (fractions of the box size in [0, 0.5]). inner_radius: 0.0 fills the sphere entirely.
Density can be set as a number density (density, cm⁻³) or as an integrated column density (column_density, cm⁻²); the latter is often more convenient for comparison with observations.
max_step is the maximum step size per scattering, in box units; 1.0 (the full box) is fine for static shells. For MCRT options like xcrit and acc_scheme, see the Configuration Reference.
max_step for outflowing shells
When an outflow velocity is set, both shellmodel and powerlaw_shellmodel automatically limit the step size so that the velocity change per step stays below ~1% of the thermal velocity. The auto-computed limit is:
where \(\Delta r\) = outer_radius \(-\) inner_radius (in box units), \(v_\mathrm{out}\) is the outflow velocity, and the thermal velocity is \(v_\mathrm{th} = \sqrt{2 k_B T / m_\mathrm{H}}\). For Lya (\(m_\mathrm{H}\) = hydrogen mass) at \(T = 10^4\,\mathrm{K}\), \(v_\mathrm{th} \approx 12.85\,\mathrm{km/s}\).
The effective step size is min(max_step, auto_limit), so a smaller value always takes precedence.
Full configuration
dataset_type: 'shellmodel'
driver_type: 'mcrtsimulation'
device: "cpu"
shellmodel:
boxsize: 3.086e21 # cm (1 kpc)
inner_radius: 0.0 # fraction of box size [0, 0.5]
outer_radius: 0.1 # fraction of box size [0, 0.5]
temperature: 20000.0 # K
density: 0.078098 # cm^-3 (tau ~ 1e6)
outflow_velocity: 0.0 # cm/s (static shell)
mcrtsimulation:
outputpath: output
overwrite: true
linename: Lya
nphotons_max: 100000
nphotons_step_max: 100000
nsteps_per_photon_max: 10000000
xcrit: 0.0
acc_scheme: Smith15
max_step: 1.0
emissionmodel:
mode: "singlesource"
singlesource:
nphotons: 10000
lum_total: 1e42
position: [0.5, 0.5, 0.5]
outputprocessors:
- type: "photon"
active: true
Variants
Outflowing shell, add to shellmodel::
Specify column density instead of number density, replace density: with:
Dust absorption: not yet supported for shellmodel (see infiniteslab for dust support).