R: Planck's Law and Related Functions

planck {celestial} | R Documentation

## Planck's Law and Related Functions

### Description

Functions related to Planck's Law of thermal radiation.

### Usage

    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)

### Arguments

`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).

### Details

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.

### Value

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 `cosplanckLawRadFreq`.
`cosplanckPeakWave` | The wavelength location of the radiation peak for a black body as found in `cosplanckLawRadWave`.

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.

### Author(s)

Aaron Robotham

### References

Marr J.M., Wilkin F.P., 2012, AmJPh, 80, 399

### See Also

`cosgrow`

### Examples

    #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()

[Package celestial version 1.4.1 Index]