| planck {celestial} | R Documentation |
Functions related to Planck's Law of thermal radiation.
cosplanckLawRadFreq(nu,Temp=2.725) cosplanckLawRadWave(lambda,Temp=2.725) cosplanckLawEnFreq(nu,Temp=2.725) cosplanckLawEnWave(lambda,Temp=2.725) cosplanckLawRadFreqN(nu,Temp=2.725) cosplanckLawRadWaveN(lambda,Temp=2.725) cosplanckPeakFreq(Temp=2.725) cosplanckPeakWave(Temp=2.725) cosplanckSBLawRad(Temp=2.725) cosplanckSBLawRad_sr(Temp=2.725) cosplanckSBLawEn(Temp=2.725) cosplanckLawRadPhotEnAv(Temp=2.725) cosplanckLawRadPhotN(Temp=2.725) cosplanckCMBTemp(z,Temp=2.725)
nu |
The frequency of radiation in Hertz (Hz). |
lambda |
The wavelength of radiation in metres (m). |
Temp |
The absolute temperature of the system in Kelvin (K). |
z |
Redshift, where z must be > -1 (can be a vector). |
The functions with Rad in the name are related the spectral radiance form of Planck's Law (typically designated I or B), whilst those with En are related to the spectral energy density form of Planck's Law (u), where u=4.pi.I/c.
To calculate the number of photons in a mode we simply use E=h.nu=h.c/lambda.
Below h is the Planck constant, k[B] is the Boltzmann constant, c is the speed-of-light in a vacuum and sigma is the Stefan-Boltzmann constant.
cosplanckLawRadFreq is the spectral radiance per unit frequency version of Planck's Law, defined as:
B[nu](nu,T) = I[nu](nu,T) = (2.h.nu^3/c^2).(1/(exp(h.nu/k[B].T)-1))
cosplanckLawRadWave is the spectral radiance per unit wavelength version of Planck's Law, defined as:
B[lambda](lambda,T) = I[lambda](lambda,T) = (2.h.c^2/lambda^5).(1/(exp(h.c/lambda.k[B].T)-1))
cosplanckLawRadFreqN is the number of photons per unit frequency, defined as:
B[nu](nu,T) = I[nu](nu,T) = (2.nu^2/c^2).(1/(exp(h.nu/k[B].T)-1))
cosplanckLawRadWaveN is the number of photons per unit wavelength, defined as:
B[lambda](lambda,T) = I[lambda](lambda,T) = (2.c/lambda^4).(1/(exp(h.c/lambda.k[B].T)-1))
cosplanckLawEnFreq is the spectral energy density per unit frequency version of Planck's Law, defined as:
u[nu](nu,T) = (8.pi.h.nu^3/c^3).(1/(exp(h.nu/k[B].T)-1))
cosplanckLawEnWave is the spectral energy density per unit wavelength version of Planck's Law, defined as:
u[lambda](lambda,T) = (8.pi.h.c/lambda^5).(1/(exp(h.c/lambda.k[B].T)-1))
cosplanckPeakFreq gives the location in frequency of the peak of I[nu](nu,T), defined as:
nu[peak] = 2.821.k[B].T
cosplanckPeakWave gives the location in wavelength of the peak of I[lambda](lambda,T), defined as:
lambda[peak] = 4.965.k[B].T
cosplanckSBLawRad gives the emissive power (or radiant exitance) version of the Stefan-Boltzmann Law, defined as:
j^* = sigma.T^4
cosplanckSBLawRad_sr gives the spectral radiance version of the Stefan-Boltzmann Law, defined as:
L = sigma.T^4/pi
cosplanckSBLawEn gives the energy density version of the Stefan-Boltzmann Law, defined as:
epsilon = 4.sigma.T^4/c
Notice that J^* and L merely differ by a factor of pi, i.e. L is per steradian.
cosplanckLawRadPhotEnAv gives the average energy of the emitted black body photon, defined as:
<E[phot]> = 3.729282e-23 T
cosplanckLawRadPhotN gives the total number of photons produced by black body per metre squared per second per steradian, defined as:
N[phot] = 1.5205e+15.T^3/pi
Various confidence building sanity checks of how to use these functions are given in the Examples below.
Planck's Law in terms of spectral radiance:
cosplanckLawRadFreq |
The power per steradian per metre squared per unit frequency for a black body (W.sr^-1.m^-2.Hz^-1). |
cosplanckLawRadWave |
The power per steradian per metre squared per unit wavelength for a black body (W.sr^-1.m^-2.m^-1). |
Planck's Law in terms of spectral energy density:
cosplanckLawEnFreq |
The energy per metre cubed per unit frequency for a black body (J.m^-3.Hz^-1). |
cosplanckLawEnWave |
The energy per metre cubed per unit wavelength for a black body (J.m^-3.m^-1). |
Photon counts:
cosplanckLawRadFreqN |
The number of photons per steradian per metre squared per second per unit frequency for a black body (photons.sr^-1.m^-2.s^-1.Hz^-1). |
cosplanckLawRadWaveN |
The number of photonsper steradian per metre squared per second per unit wavelength for a black body (photons.sr^-1.m^-2.s^-1.m^-1). |
Peak locations (via Wien's displacement law):
cosplanckPeakFreq |
The frequency location of the radiation peak for a black body as found in |
cosplanckPeakWave |
The wavelength location of the radiation peak for a black body as found in |
Stefan-Boltzmann Law:
cosplanckSBLawRad |
Total energy radiated per metre squared per second across all wavelengths for a black body (W.m^-2). This is the emissive power version of the Stefan-Boltzmann Law. |
cosplanckSBLawRad_sr |
Total energy radiated per metre squared per second per steradian across all wavelengths for a black body (W.m^-2.sr^-1). This is the radiance version of the Stefan-Boltzmann Law. |
cosplanckSBLawEn |
Total energy per metre cubed across all wavelengths for a black body (J.m^-3). This is the energy density version of the Stefan-Boltzmann Law. |
Photon properties:
cosplanckLawRadPhotEnAv |
Average black body photon energy (J). |
cosplanckLawRadPhotN |
Total number of photons produced by black body per metre squared per second per steradian (m^-2.s^-1.sr^-1). |
Cosmic Microwave Background:
cosplanckCMBTemp |
The temperaure of the CMB at redshift z. |
Aaron Robotham
Marr J.M., Wilkin F.P., 2012, AmJPh, 80, 399
#Classic example for different temperature stars:
waveseq=10^seq(-7,-5,by=0.01)
plot(waveseq, cosplanckLawRadWave(waveseq,5000),
log='x', type='l', xlab=expression(Wavelength / m),
ylab=expression('Spectral Radiance' / W*sr^{-1}*m^{-2}*m^{-1}), col='blue')
lines(waveseq, cosplanckLawRadWave(waveseq,4000), col='green')
lines(waveseq, cosplanckLawRadWave(waveseq,3000), col='red')
legend('topright', legend=c('3000K','4000K','5000K'), col=c('red','green','blue'), lty=1)
#CMB now:
plot(10^seq(9,12,by=0.01), cosplanckLawRadFreq(10^seq(9,12,by=0.01)),
log='x', type='l', xlab=expression(Frequency / Hz),
ylab=expression('Spectral Radiance' / W*sr^{-1}*m^{-2}*Hz^{-1}))
abline(v=cosplanckPeakFreq(),lty=2)
plot(10^seq(-4,-1,by=0.01), cosplanckLawRadWave(10^seq(-4,-1,by=0.01)),
log='x', type='l', xlab=expression(Wavelength / m),
ylab=expression('Spectral Radiance' / W*sr^{-1}*m^{-2}*m^{-1}))
abline(v=cosplanckPeakWave(),lty=2)
#CMB at surface of last scattering:
TempLastScat=cosplanckCMBTemp(1100) #Note this is still much cooler than our Sun!
plot(10^seq(12,15,by=0.01), cosplanckLawRadFreq(10^seq(12,15,by=0.01),TempLastScat),
log='x', type='l', xlab=expression(Frequency / Hz),
ylab=expression('Spectral Radiance' / W*sr^{-1}*m^{-2}*Hz^{-1}))
abline(v=cosplanckPeakFreq(TempLastScat),lty=2)
plot(10^seq(-7,-4,by=0.01), cosplanckLawRadWave(10^seq(-7,-4,by=0.01),TempLastScat),
log='x', type='l', xlab=expression(Wavelength / m),
ylab=expression('Spectral Radiance' / W*sr^{-1}*m^{-2}*m^{-1}))
abline(v=cosplanckPeakWave(TempLastScat),lty=2)
#Exact number of photons produced by black body:
cosplanckLawRadPhotN()
#We can get pretty much the correct answer through direct integration, i.e.:
integrate(cosplanckLawRadFreqN,1e8,1e12)
integrate(cosplanckLawRadWaveN,1e-4,1e-1)
#Stefan-Boltzmann Law:
cosplanckSBLawRad_sr()
#We can get (almost, some rounding is off) the same answer by multiplying
#the total number of photons produced by a black body per metre squared per
#second per steradian by the average photon energy:
cosplanckLawRadPhotEnAv()*cosplanckLawRadPhotN()