Learn R Programming

tgcd (version 2.7)

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)

Value

Return an invisible list containing the following elements:

temps

a vector of temperature values

tl

values of the thermoluminescence intensity

n

variation of concentration of trapped electrons with temperature

sp

parameters used for describing the shape of a glow peak (Pagonis et al., 2006):
the temperature corresponding to half intensity on the left side of the peak (T1);
the temperature corresponding to half intensity on the right side of the peak (T2);
the temperature corresponding to maximum intensity (Tm);
the half-width at the left side of the peak (d1=Tm-T1);
the half-width at the right side of the peak (d2=T2-Tm);
the total half-width (thw=d1+d2);
the symmetry factor (sf=d2/thw)

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

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{d_n}{d_T}=\frac{-nSexp(-\frac{E}{kT})}{\beta}\)

\(\frac{d_n}{d_T}=\frac{-n^{2}Sexp(-\frac{E}{kT})}{N_n\beta}\)

\(\frac{d_n}{d_T}=\frac{-n^{b}Sexp(-\frac{E}{kT})}{N_n\beta}\)

where \(n\) is the concentration of trapped electrons, \(\frac{d_n}{d_T}\) 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, \(N_n\) the total concentration of the traps in the crystal, \(b\) the b value (kinetic order), and \(\beta\) 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: https://www.netlib.org/odepack/, modified version by R. Woodrow Setzer from the R package deSolve (Soetaert et al., 2010) available at CRAN: https://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