greybody | R Documentation |
Produces diferent types of blackbody and greybody spectra.
blackbody(wave, Temp = 50, k850 = 0.077)
blackbody_norm(wave, Temp = 50, z = 0, norm = 1)
greybody(wave, Temp = 50, beta = 1.5, k850 = 0.077)
greybody_norm(wave, Temp = 50, beta = 1.5, z = 0, norm = 1)
wave |
Observed wavelength in Angstroms. |
Temp |
Numeric vector; the absolute temperature of the system in Kelvin (K). For |
z |
Numeric scalar; cosmological redshift, where z must be > 0. |
beta |
Numeric vector; represents emissivity, or the spectral emissivity index. This is usually in the range 1-2 (see Hildebrand 1983). For |
k850 |
Numeric scalar; the dust mass normalisation. The default is as used in MAGPHYS (0.077 kg/m^2). A sensible alternative might be 0.0383 (Draine 2003). The latter requires almost twice as much dust to achieve the same luminosity. |
norm |
Numeric vector; for |
We use a modified version of Eqn 2 from Casey et al (2012). The idea is the normalised output can be scaled to equal any amount of required energy in a simple manner, i.e. if the difference between intrinsic and attenuated flux is known then this can be trivially mapped onto output greybody dust by scaling by this same factor using the norm argument (since both sets of fluxes are per angstrom).
Numeric vector; observed luminosity in units Lsol / Ang (for 1 Msol of dust) for blackbody
and greybody
, and normalised as specified by norm for blackbody_norm
and greybody_norm
.
Aaron Robotham
Casey C.M., 2012, MNRAS, 425, 3094; da Cunha E. et al, 2008, MNRAS 388, 1595; Draine B.T., 2003, ARA&A, 41, 241; Hildebrand R.H., 1983, QJRAS, 24, 267
dust
, Dale
#The greybody_norm function can take vector inputs:
plot(greybody_norm(10^seq(5,7,by=0.01), norm=1), type='l', log='x', col='grey',
ylim=c(0, 3e-6))
lines(greybody_norm(10^seq(5,7,by=0.01), Temp=100, norm=0.5), col='grey')
lines(greybody_norm(10^seq(5,7,by=0.01), Temp=c(50,100), norm=c(1,0.5)))
### Check against greybody template:
fluxBC03=Lum2Flux(BC03lr$Wave, BC03lr$Zspec[[5]][161,]*1e10)
birthBC03_atten=CF_birth_atten(fluxBC03[,1],fluxBC03[,2])
screenBC03_atten=CF_screen_atten(fluxBC03[,1],fluxBC03[,2])
totalatten=birthBC03_atten$total_atten+screenBC03_atten$total_atten
# Here we show 3 pure greybodies, and then 3 Dale templates normalised by SFR with
# differing amounts of AGN contribution. Note even the pure SFR template is not quite
# greybody (there is an excess in the MIR and very-FIR).
plot(fluxBC03, log='xy', xlab=BC03lr$Labels$Wavelab, ylab='Flux / erg/s/cm^2/Angstrom',
type='l', col='red', xlim=c(1e2,1e7))
lines(fluxBC03[,1], (birthBC03_atten$flux+screenBC03_atten$flux)/2, col='black')
lines(10^seq(5,7,by=0.01), greybody_norm(10^seq(5,7,by=0.01), beta=1, norm=totalatten),
col='brown', lty=1)
lines(10^seq(5,7,by=0.01), greybody_norm(10^seq(5,7,by=0.01), beta=1.5, norm=totalatten),
col='brown', lty=2)
lines(10^seq(5,7,by=0.01), greybody_norm(10^seq(5,7,by=0.01), beta=2, norm=totalatten),
col='brown', lty=3)
lines(Dale_NormSFR$Wave, Dale_NormSFR$Aspec[[1]][24,]*totalatten, col='purple')
lines(Dale_NormSFR$Wave, Dale_NormSFR$Aspec[[11]][24,]*totalatten, col='orange')
lines(Dale_NormSFR$Wave, Dale_NormSFR$Aspec[[20]][24,]*totalatten, col='green')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.