Learn R Programming

tgcd (version 2.0)

simPeak: Thermoluminescence glow peak simulation

Description

Simulating first-order, second-order, or general-order glow peaks.

Usage

simPeak(temps, n0, Nn = NULL, bv = NULL, ff, ae, hr, typ = c("f", "s", "g"), outfile = NULL, plot = TRUE)

Arguments

temps
vector(required): temperature values (K) where the values of the thermoluminescence intensity will be computed. It needs to be sorted increasingly. A vector of temperature values may be generated using the internal function seq
n0
numeric(required): initial concentration of trapped electrons (1/cm^3)
Nn
numeric(required): total concentration of the traps in the crystal (1/cm^3)
bv
numeric(required): order number for the general order glow peak
ff
numeric(required): the frequency factor (1/s)
ae
numeric(required): the activation energy (eV)
hr
numeric(with default): the linear heating rate (K/s)
typ
character(with default): the type of a glow peak, typ="f" means first-order, typ="s" means second-order, typ="g" means general-order, default typ="f"
outfile
character(optional): if specified, simulated intensities of glow peaks will be written to a file named "outfile" in CSV format and saved to the current work directory
plot
logical(with default): draw a plot according to the simulated glow peak or not

Value

Return an invisible list containing the following elements:

Details

Function simPeak simulates glow peaks of various orders. The first-, second-, and general-order glow peak can be simulated using the following three ordinary equations, respectively (Pagonis et al., 2006):

$\frac{dn}{dT}=-n*S*e^{-E/(k*T)}/hr$

$\frac{dn}{dT}=-n^{2}*S*e^{-E/(k*T)}/(Nn*hr)$

$\frac{dn}{dT}=-n^{bv}*S*e^{-E/(k*T)}/(Nn*hr)$

where $n$ is the concentration of trapped electrons, $\frac{dn}{dT}$ the rate of change of the concentration of trapped electrons, $S$ the frequency factor, $E$ the activation energy, $T$ the absolute temperature, $k$ the Boltzmann constant, $Nn$ the total concentration of the traps in the crystal, $bv$ the b value (kinetic order), and $hr$ the linear heating rate.

The ordinary equation is solved by the Fortran 77 subroutine lsoda (original version written by Linda R. Petzold and Alan C. Hindmarsh available at Netlib: http://www.netlib.org/odepack/, modified version by R. Woodrow Setzer from the R package deSolve (Soetaert et al., 2010) available at CRAN: http://CRAN.R-project.org/package=deSolve).

References

Pagonis V, Kitis G, Furetta C, 2006. Numerical and practical exercises in thermoluminescence. Springer Science & Business Media.

Soetaert K, Petzoldt T, Setzer RW, 2010. Solving Differential Equations in R: Package deSolve. Journal of Statistical Software, 33(9): 1-25.

See Also

tgcd; simqOTOR

Examples

Run this code
  
   # Simulate second-order glow peaks with various 
   # initial electron trap concentration (n0).
    temps <- seq(400, 600, by=0.5)
    peak1 <- simPeak(temps, n0=0.2e10, Nn=1e10, 
      ff=1e19, ae=2.0, hr=1, typ="s")
    peak2 <- simPeak(temps, n0=0.4e10, Nn=1e10, 
      ff=1e19, ae=2.0, hr=1, typ="s")
    peak3 <- simPeak(temps, n0=0.6e10, Nn=1e10, 
      ff=1e19, ae=2.0, hr=1, typ="s")
    peak4 <- simPeak(temps, n0=0.8e10, Nn=1e10, 
      ff=1e19, ae=2.0, hr=1, typ="s")
    peak5 <- simPeak(temps, n0=1.0e10, Nn=1e10, 
      ff=1e19, ae=2.0, hr=1, typ="s")
    peaks <- cbind(peak1$tl, peak2$tl, peak3$tl, peak4$tl, peak5$tl)
    matplot(temps, peaks, type="l", lwd=2, lty="solid", 
      xlab="Temperature (K)", ylab="TL intensity (counts)")

Run the code above in your browser using DataLab