diff --git a/docs/404.html b/docs/404.html index 65eb510..9aac88a 100644 --- a/docs/404.html +++ b/docs/404.html @@ -1,76 +1,33 @@ - - -
- + + + + -vignettes/RLumModel_-_Getting_started_with_RLumModel.Rmd
+ Source: vignettes/RLumModel_-_Getting_started_with_RLumModel.Rmd
RLumModel_-_Getting_started_with_RLumModel.Rmd
This vignette shows a few examples for the R-package ‘RLumModel’. The main function model_LuminescenceSignals()
and their arguments will be explained. All calculations were done with ‘RLumModel’ (version: 0.2.9) and ‘Luminescence’ (version: 0.9.16.9000.30).
This vignette shows a few examples for the R-package
+‘RLumModel’. The main function model_LuminescenceSignals()
+and their arguments will be explained. All calculations were done with
+‘RLumModel’ (version: 0.2.10) and ‘Luminescence’ (version:
+0.9.19.9000.7).
The output from the main function model_LuminescenceSignals()
is of class RLum.Analysis
(Kreutzer et al. 2012) and contains data of class RLum.Data.Curve
in the slot ‘records’. The advantage of this infrastructure is that the package ‘Luminescence’ offers a lot of methods to visualize and manipulate data.
All simulated data are stored in the slot ‘records’: TL/OSL/RF curves as well as the concentrations of every energy level from every step.
-The following code loads a data set provided by the ‘RLumModel’ package and shows how to separate TL/OSL/RF data from concentrations and how to visualize them.
+The output from the main function
+model_LuminescenceSignals()
is of class
+RLum.Analysis
(Kreutzer et al.
+2012) and contains data of class RLum.Data.Curve
in
+the slot ‘records’. The advantage of this infrastructure is that the
+package ‘Luminescence’ offers a lot of methods to visualize and
+manipulate data.
All simulated data are stored in the slot ‘records’: TL/OSL/RF curves +as well as the concentrations of every energy level from every step.
+The following code loads a data set provided by the ‘RLumModel’ +package and shows how to separate TL/OSL/RF data from concentrations and +how to visualize them.
-data("ExampleData.ModelOutput", package = "RLumModel")
+data("ExampleData.ModelOutput", package = "RLumModel")
##show class
-class(model.output)
+class(model.output)
##show structure
-Luminescence::structure_RLum(model.output)
+Luminescence::structure_RLum(model.output)
##separate TL-curve from TL-concentrations
-TL_curve <- Luminescence::get_RLum(model.output, recordType = "TL$")
-TL_conc <- Luminescence::get_RLum(model.output, recordType = "(TL)", drop = FALSE)
+TL_curve <- Luminescence::get_RLum(model.output, recordType = "TL$")
+TL_conc <- Luminescence::get_RLum(model.output, recordType = "(TL)", drop = FALSE)
##also possible: TL_curve <- get_RLum(model.output, record.id = 1)
##plot results
-Luminescence::plot_RLum(TL_curve)
-Luminescence::plot_RLum(TL_conc)
Some notes to the code example above:
drop = FALSE
was used to keep the RLum.Analysis
class for ‘TL_conc’.plot.single = TRUE
in plot_RLum()
. For more details see the manual of ‘Luminescence’.drop = FALSE
was used to keep the
+RLum.Analysis
class for ‘TL_conc’.
+plot.single = TRUE
in plot_RLum()
. For more
+details see the manual of ‘Luminescence’.
##plot every energy-level by an extra plot
-Luminescence::plot_RLum(TL_conc, plot.single = TRUE)
It is also possible to choose a RLum.Data.Curve
by their ‘record.id’, which can be seen with:
It is also possible to choose a RLum.Data.Curve
by their
+‘record.id’, which can be seen with:
##see structure of model.output
-Luminescence::structure_RLum(model.output)
The first argument required for the function model_LuminescenceSignals()
is the name of a quartz luminescence model to be used, respectively the used parameter set in this quartz luminescence model. All currently implemented quartz luminescence models were described in Friedrich, Kreutzer, and Schmidt (2016). The command to select a set of parameters from a specific model in RLumModel
is a character string with the name of the author and the year, e.g.
The first argument required for the function
+model_LuminescenceSignals()
is the name of a quartz
+luminescence model to be used, respectively the used parameter set in
+this quartz luminescence model. All currently implemented quartz
+luminescence models were described in Friedrich,
+Kreutzer, and Schmidt (2016). The command to select a set of
+parameters from a specific model in RLumModel
is a
+character string with the name of the author and the year, e.g.
model <- "Bailey2001"
The available models are “Bailey2001”, “Bailey2002”, “Bailey2004”, “Pagonis2007”, “Pagonis2008”,“Friedrich2017” and “customized” (R. M. Bailey (2001), R. Bailey (2002), R. Bailey (2004), V. Pagonis, Chen, and Wintle (2007), V. Pagonis et al. (2008b), Friedrich et al. (2017)). For customized or own parameter sets, see vignette RLumModel - Using own parameter sets
-The corresponding parameter set will be loaded automatically with the function call.
+The available models are “Bailey2001”, “Bailey2002”, “Bailey2004”, +“Pagonis2007”, “Pagonis2008”,“Friedrich2017” and “customized” (R. M. Bailey (2001), R. +Bailey (2002), R. Bailey (2004), +V. Pagonis, Chen, and Wintle (2007), V. Pagonis et al. (2008b), Friedrich et al. (2017)). For customized or own +parameter sets, see vignette RLumModel - Using own +parameter sets
+The corresponding parameter set will be loaded automatically with the +function call.
The second argument in the model_LuminescenceSignals()
function is the sequence to be simulated. There are three different ways of creating a sequence.
For all sequences, temperature differences between sequence steps are automatically simulated with a heating or cooling step in between. Also, after irradiating the sample, it is automatically kept at irradiation temperature for further 5 s to allow the system to relax prior to the next step (R. M. Bailey 2001).
-The first one is to use the popular and freely available Risø to build a personal sequence and to save it as a SEQ-file (*.seq). Files created by the Sequence Editor can be imported directly using the path of the SEQ-file. The package comes along with an example SEQ-file in the package folder in ‘extdata’. Thus, a potential sequence is created with
+The second argument in the model_LuminescenceSignals()
+function is the sequence to be simulated. There are three different ways
+of creating a sequence.
For all sequences, temperature differences between sequence steps are +automatically simulated with a heating or cooling step in between. Also, +after irradiating the sample, it is automatically kept at irradiation +temperature for further 5 s to allow the system to relax prior to the +next step (R. M. Bailey 2001).
+The first one is to use the popular and freely available Risø to +build a personal sequence and to save it as a SEQ-file (*.seq). Files +created by the Sequence Editor can be imported directly using the path +of the SEQ-file. The package comes along with an example SEQ-file in the +package folder in ‘extdata’. Thus, a potential sequence is created +with
-sequence <- system.file(
+sequence <- system.file(
"extdata",
"example_SAR_cycle.SEQ",
package = "RLumModel")
or wherever the SEQ-file is stored. While in the Sequence Editor irradiation is commonly defined in seconds, performing the simulation requires a dose transformation to Gray. Therefore, the function model_LuminescenceSignals()
offers a special argument called lab.dose_rate
, representing the dose rate of the irradiation unit in the laboratory. By default, this dose rate is 1 Gy/s, but can be modified, e.g.,
or wherever the SEQ-file is stored. While in the Sequence Editor
+irradiation is commonly defined in seconds, performing the simulation
+requires a dose transformation to Gray. Therefore, the function
+model_LuminescenceSignals()
offers a special argument
+called lab.dose_rate
, representing the dose rate of the
+irradiation unit in the laboratory. By default, this dose rate is 1
+Gy/s, but can be modified, e.g.,
lab.dose_rate <- 0.105
The second way of creating a sequence is by referring to a list with keywords and a certain order of code numbers or named values, which are shown in Table 1. With these keywords, it is possible to create quickly an R object of type list, which can be read by the model_LuminescenceSignals()
function.
-’temp’ [°C], ’duration’ [s], optional: ’start_power’ [%], ’end_power’ [%] +’temp’ [°C], ’duration’ [s], optional: ’start_power’ [%], ’end_power’ +[%] |
-’temp_begin’ [°C], ’temp_end’ [°C], ‘heating rate’ [°C/s], ‘dose_rate’ [Gy/s] +’temp_begin’ [°C], ’temp_end’ [°C], ‘heating rate’ [°C/s], ‘dose_rate’ +[Gy/s] |
Some examples to this kind of sequence creating:
-sequence <- list(
- IRR = c(temp = 20, dose = 10, dose_rate = 1),
- TL = c(temp_begin = 20, temp_end = 400 , heating_rate = 5))
This sequences describes an irradiation simulation at 20 °C with a dose of 10 Gy and a dose rate of 1 Gy/s, which is followed by a TL simulation from 20 °C to 400 °C with a heating rate of 5 °C/s. Note that it is important that for each sequence keyword like ‘IRR’ or ‘TL’ either the vector has to be named or the correct order of arguments is used, see ‘sub-arguments’ in Table 1. Thus the above mentioned code is equivalent to the following one:
+sequence <- list(
+ IRR = c(temp = 20, dose = 10, dose_rate = 1),
+ TL = c(temp_begin = 20, temp_end = 400 , heating_rate = 5))
This sequences describes an irradiation simulation at 20 °C with a +dose of 10 Gy and a dose rate of 1 Gy/s, which is followed by a TL +simulation from 20 °C to 400 °C with a heating rate of 5 °C/s. Note that +it is important that for each sequence keyword like ‘IRR’ or ‘TL’ either +the vector has to be named or the correct order of arguments is used, +see ‘sub-arguments’ in Table 1. Thus the above mentioned code is +equivalent to the following one:
+sequence <- list(
+ IRR = c(20, 10, 1),
+ TL = c(20, 400, 5))
-However, to create a SAR or dose-recovery-test (DRT) sequence with the Risø Sequence Editor or with keywords is time-consuming, because it contains a lot of individual sequence steps (preheat, optical stimulation, irradiation, …). Therefore, a third way was implemented in ‘RLumModel’ to create a (SAR) sequence after Murray and Wintle (2000) with the (required) keywords RegDose, TestDose, PH, CH and OSL temp. In addition to these keywords, the user is able to set more detailed parameters for the SAR sequence, see Table 2:
-So a possible DRT sequence could be the next code example:
-sequence <- list(
- RegDose = c(0,10,20,50,90,0,10),
+sequence <- list(
+ RegDose = c(0,10,20,50,90,0,10),
TestDose = 2,
PH = 220,
CH = 220,
OSL_temp = 125,
Irr_2recover = 20)
This sequence describes a DRT, where a dose of 20 Gy will be recovered with this test. The regenerative doses are defined as 0 (natural), 10 Gy, 20 Gy, 50 Gy, 90 Gy and for recuperation and recycling ratio 0 Gy and 10 Gy, respectively. The test dose is defined as 2 Gy. Preheat and cutheat are at 220 °C and all OSL measurements are simulated at 125 °C. There are more options to set, see Table 2.
-The ‘RLumModel’ function model_LuminescenceSignals()
is able to interpret this (sequence-) list as a DRT sequence.
This sequence describes a DRT, where a dose of 20 Gy will be +recovered with this test. The regenerative doses are defined as 0 +(natural), 10 Gy, 20 Gy, 50 Gy, 90 Gy and for recuperation and recycling +ratio 0 Gy and 10 Gy, respectively. The test dose is defined as 2 Gy. +Preheat and cutheat are at 220 °C and all OSL measurements are simulated +at 125 °C. There are more options to set, see Table 2.
+The ‘RLumModel’ function model_LuminescenceSignals()
is
+able to interpret this (sequence-) list as a DRT sequence.
First of all, a sequence is needed, which produces a TL signal after the sample has received a dose:
+First of all, a sequence is needed, which produces a TL signal after +the sample has received a dose:
-Here, at a temperature of 20 °C a dose of 10 Gy was applied with a dose rate of 1 Gy/s followed by a TL measurement from 20 °C to 400 °C with a heating rate of 5 °C/s. Running this sequence with the model_LuminescenceSignals()
function produces a model output:
sequence <- list (
+IRR = c (20 , 10 , 1) ,
+TL = c (20 , 400 , 5))
Here, at a temperature of 20 °C a dose of 10 Gy was applied with a
+dose rate of 1 Gy/s followed by a TL measurement from 20 °C to 400 °C
+with a heating rate of 5 °C/s. Running this sequence with the
+model_LuminescenceSignals()
function produces a model
+output:
model.output <- model_LuminescenceSignals(
model = "Bailey2001",
@@ -509,18 +593,21 @@
TL curve with parameter set ‘Bailey2001’ after 10 Gy laboratory dose
This results in a TL curve like the one published in (R. M. Bailey (2001), Fig. 1), see figure above. In a further step, it is easy to produce known TL phenomena like the shift of the TL peak with varying heating rate. For this purpose, a loop over a TL simulation changes the heating rate in each run.
+This results in a TL curve like the one published in (R. M. Bailey (2001), Fig. 1), see figure above. +In a further step, it is easy to produce known TL phenomena like the +shift of the TL peak with varying heating rate. For this purpose, a loop +over a TL simulation changes the heating rate in each run.
##set heating rate
-heating.rate <- seq(from = 2, to = 10, by = 2)
+heating.rate <- seq(from = 2, to = 10, by = 2)
##model signals
##"verbose = FALSE" for no terminal output
## "TL$" for exact matching TL and not (TL)
-model.output <- lapply(heating.rate, function(x){
- sequence <- list(
- IRR = c(20, 10, 1),
- TL = c(20, 400, x))
+model.output <- lapply(heating.rate, function(x){
+ sequence <- list(
+ IRR = c(20, 10, 1),
+ TL = c(20, 400, x))
TL_data <- model_LuminescenceSignals(
@@ -529,7 +616,7 @@
plot = FALSE,
verbose = FALSE)
- return(Luminescence::get_RLum(TL_data, recordType = "TL$", drop = FALSE))
+ return(Luminescence::get_RLum(TL_data, recordType = "TL$", drop = FALSE))
})
@@ -542,7 +629,7 @@
xlab = "Temperature [\u00B0C]",
ylab = "TL signal [a.u.]",
main = "TL signal with different heating rates",
- legend.text = paste(heating.rate, "°C/s"),
+ legend.text = paste(heating.rate, "°C/s"),
combine = TRUE)
Some notes to the code above:
RLum.Analysis
object, because of drop = FALSERLum.Analysis
+object, because of drop = FALSErecordType = TL$
is necessary to match the character TL exact and not the concentrationsrecordType = TL$
is necessary to match the character TL
+exact and not the concentrations
merge_RLum
is necessary to merge all the single RLum.Analysis
objects in the list ‘model.output’ together to one RLum.Analysis
objectmodel = "..."
has to be changed (see Sec. 2)merge_RLum
is necessary to merge all the single
+RLum.Analysis
objects in the list ‘model.output’ together
+to one RLum.Analysis
object
+model = "..."
has to be changed (see Sec. 2)Another frequently simulated phenomenon is the sensitisation of quartz TL by \(\beta\)- or \(\gamma\)-irradiation followed by activation at high temperatures Adamiec et al. (2004), termed as thermal activation characteristics (TACs). For a simulation sequence, the reader is referred to V. Pagonis et al. (2008a), Tab. 1. To simulate this phenomenon with the model_LuminescenceSignals()
function, a loop causing a stepwise increase of the activation temperature is needed. The resulting intensity of the 110 °C TL peak can be plotted against the activation temperature, which shows TAC for the model parameters of “Pagonis2007”.
Another frequently simulated phenomenon is the sensitisation of
+quartz TL by \(\beta\)- or \(\gamma\)-irradiation followed by activation
+at high temperatures Adamiec et al.
+(2004), termed as thermal activation characteristics (TACs). For
+a simulation sequence, the reader is referred to V. Pagonis et al. (2008a), Tab. 1. To simulate
+this phenomenon with the model_LuminescenceSignals()
+function, a loop causing a stepwise increase of the activation
+temperature is needed. The resulting intensity of the 110 °C TL peak can
+be plotted against the activation temperature, which shows TAC for the
+model parameters of “Pagonis2007”.
##set temperature
-act.temp <- seq(from = 80, to = 600, by = 20)
+act.temp <- seq(from = 80, to = 600, by = 20)
##loop over temperature
-model.output <- vapply(X = act.temp, FUN = function(x) {
+model.output <- vapply(X = act.temp, FUN = function(x) {
##set sequence, note: sequence includes sample history
- sequence <- list(
- IRR = c(20, 1, 1e-11),
- IRR = c(20, 10, 1),
- PH = c(x, 1),
- IRR = c(20, 0.1, 1),
- TL = c(20, 150, 5)
+ sequence <- list(
+ IRR = c(20, 1, 1e-11),
+ IRR = c(20, 10, 1),
+ PH = c(x, 1),
+ IRR = c(20, 0.1, 1),
+ TL = c(20, 150, 5)
)
##run simulation
@@ -589,10 +690,10 @@
)
## "TL$" for exact matching TL and not (TL)
- TL_curve <- Luminescence::get_RLum(temp, recordType = "TL$")
+ TL_curve <- Luminescence::get_RLum(temp, recordType = "TL$")
##return max value in TL curve
- return(max(get_RLum(TL_curve)[,2]))
+ return(max(get_RLum(TL_curve)[,2]))
}, FUN.VALUE = 1)
The function model_LuminescenceSignals()
is also capable of simulating OSL phenomena. The next figure shows the dependency of the OSL signal on the power density of illumination for the model “Bailey2004”.
The function model_LuminescenceSignals()
is also capable
+of simulating OSL phenomena. The next figure shows the dependency of the
+OSL signal on the power density of illumination for the model
+“Bailey2004”.
##set optical power [%]
-optical_power <- c(0,20,40,60,80,100)
+optical_power <- c(0,20,40,60,80,100)
##loop over power
-model.output <- lapply(optical_power, function(x){
+model.output <- lapply(optical_power, function(x){
##set sequence
- sequence <- list(
- IRR = c(20, 50, 1),
- PH = c(220, 10, 5),
- OSL = c(125, 50, x))
+ sequence <- list(
+ IRR = c(20, 50, 1),
+ PH = c(220, 10, 5),
+ OSL = c(125, 50, x))
data <- model_LuminescenceSignals(
@@ -626,44 +731,56 @@
verbose = FALSE)
##"OSL$" for exact matching OSL and not (OSL)
- return(Luminescence::get_RLum(data, recordType = "OSL$", drop = FALSE))
+ return(Luminescence::get_RLum(data, recordType = "OSL$", drop = FALSE))
})
##merge output
-model.output.merged <- Luminescence::merge_RLum(model.output)
+model.output.merged <- Luminescence::merge_RLum(model.output)
##plot results
-Luminescence::plot_RLum(
+Luminescence::plot_RLum(
object = model.output.merged,
xlab = "Illumination time [s]",
ylab = "OSL signal [a.u.]",
- legend.text = paste("Optical power ", 20 * optical_power / 100," mW/cm^2"),
+ legend.text = paste("Optical power ", 20 * optical_power / 100," mW/cm^2"),
combine = TRUE
)
For simulating a DRT, it is necessary to define a sequence with the keyword Irr_2recover
, as mentioned in Section 4.3.
It should be mentioned that a simulation of a combinded PHPT and DRT may be very time-consuming, because for every preheat temperature a complete SAR cycle has to be run. A typical DRT sequence featuring various PH temperatures in ‘RLumModel’ is listed below. Note that in such a DRT simulation a loop over different preheat temperatures has to be written, utilising characteristic parameters from the literature. The test dose is set to 10% and the regeneration dose points to 40%, 70%, 130%, 160%, 0% and 40% of the recovery dose.
-The data created by ‘RLumModel’ can be directly passed to the functions Luminescence::analyse_SAR.CWOSL()
and Luminescence::plot_DRTResults()
for routine analyses and plotting.
For simulating a DRT, it is necessary to define a sequence with the
+keyword Irr_2recover
, as mentioned in Section 4.3.
It should be mentioned that a simulation of a combinded PHPT and DRT +may be very time-consuming, because for every preheat temperature a +complete SAR cycle has to be run. A typical DRT sequence featuring +various PH temperatures in ‘RLumModel’ is listed below. Note that in +such a DRT simulation a loop over different preheat temperatures has to +be written, utilising characteristic parameters from the literature. The +test dose is set to 10% and the regeneration dose points to 40%, 70%, +130%, 160%, 0% and 40% of the recovery dose.
+The data created by ‘RLumModel’ can be directly passed to the
+functions Luminescence::analyse_SAR.CWOSL()
and
+Luminescence::plot_DRTResults()
for routine analyses and
+plotting.
##set PH temperatures
-PH_temp <- seq(from = 160, to = 300, by = 20)
+PH_temp <- seq(from = 160, to = 300, by = 20)
##set regeneration doses
-RegDose = c(0, 80, 140, 260, 320, 0, 80)
+RegDose = c(0, 80, 140, 260, 320, 0, 80)
##loop over PH temperatures
-DRT.output <- lapply(PH_temp, function(x){
+DRT.output <- lapply(PH_temp, function(x){
- sequence <- list(
+ sequence <- list(
RegDose = RegDose,
TestDose = 20,
PH = x,
@@ -677,7 +794,7 @@
plot = FALSE,
verbose = FALSE)
- results <- Luminescence::analyse_SAR.CWOSL(
+ results <- Luminescence::analyse_SAR.CWOSL(
object = model.output,
signal.integral.min = 1,
signal.integral.max = 7,
@@ -688,26 +805,26 @@
plot = FALSE)
temp <- get_RLum(results)
- out <- data.frame(
+ out <- data.frame(
De = temp$De,
De.error = temp$De.Error)
- return(out)
+ return(out)
})
## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 179.1 | D01 = 101.51
-## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 179.46 | D01 = 101.46
-## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 180.18 | D01 = 101.4
-## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 180.6 | D01 = 101.41
-## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 182.24 | D01 = 101.44
-## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 179.85 | D01 = 102.26
-## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 166.73 | D01 = 111.51
-## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 159.15 | D01 = 161.2
+## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 179.1 | D01 = 101.51
+## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 179.46 | D01 = 101.46
+## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 180.18 | D01 = 101.4
+## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 180.6 | D01 = 101.41
+## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 182.24 | D01 = 101.44
+## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 179.85 | D01 = 102.26
+## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 166.73 | D01 = 111.51
+## [plot_GrowthCurve()] Fit: EXP (interpolation) | De = 159.15 | D01 = 161.2
##output as data.frame for plot_DRTResults
-DRT.result <- as.data.frame(do.call(rbind, DRT.output))
+DRT.result <- as.data.frame(do.call(rbind, DRT.output))
##plot DRT.results
-Luminescence::plot_DRTResults(
+Luminescence::plot_DRTResults(
DRT.result,
preheat = PH_temp,
given.dose = 200)
In the code above, plot = FALSE
was chosen, because a single OSL plot is not necessary to analyse a SAR sequence. To calculate a De from the produced RLum.Analysis
object ‘model.output’, the function Luminescence::analyse_SAR.CWOSL()
is suitable. After specifying a number of evaluation parameters (signal and background integration interval, dose points and fit function for the dose response curve) and the analysis process, the reduced data are stored in an RLum.Results
object, here termed ‘results’ . A background integration interval from 301 to 401 translates to the signal from 30 s to 40 s, because a channel has the default width of 0.1 s. Accordingly, the signal integral ranges from 0.1 s to 0.7 s.
In the code above, plot = FALSE
was chosen, because a
+single OSL plot is not necessary to analyse a SAR sequence. To calculate
+a De from the produced RLum.Analysis
object
+‘model.output’, the function
+Luminescence::analyse_SAR.CWOSL()
is suitable. After
+specifying a number of evaluation parameters (signal and background
+integration interval, dose points and fit function for the dose response
+curve) and the analysis process, the reduced data are stored in an
+RLum.Results
object, here termed ‘results’ . A background
+integration interval from 301 to 401 translates to the signal from 30 s
+to 40 s, because a channel has the default width of 0.1 s. Accordingly,
+the signal integral ranges from 0.1 s to 0.7 s.
##set RegDose
-RegDose = c(0, 80, 140, 260, 320, 0, 80)
+RegDose = c(0, 80, 140, 260, 320, 0, 80)
##set sequence
-sequence <- list(
+sequence <- list(
RegDose = RegDose,
TestDose = 20,
PH = 220,
@@ -739,7 +867,7 @@
)
##analyse SAR sequence and plot only the resulting growth curve
-results <- Luminescence::analyse_SAR.CWOSL(
+results <- Luminescence::analyse_SAR.CWOSL(
model.output,
signal.integral.min = 1,
signal.integral.max = 7,
@@ -748,7 +876,7 @@
fit.method = "EXP",
dose.points = RegDose,
verbose = FALSE,
- plot.single = c(6)
+ plot.single = c(6)
)
Sometimes it is useful to extract the used modelling parameters. Since the output is an RLum.Analysis
-object compatible with the R package ‘Luminescence’, this can be achieved with the following code lines:
Sometimes it is useful to extract the used modelling parameters.
+Since the output is an RLum.Analysis
-object compatible with
+the R package 'Luminescence'
, this can be achieved with the
+following code lines (note: we have shorted the terminal output below
+using the function head()
):
-Luminescence::get_RLum(model.output, info = "parms")
## $parms.N1
-## [1] 1.5e+07
-##
-## $parms.N2
-## [1] 1e+07
-##
-## $parms.N3
-## [1] 4e+07
-##
-## $parms.N4
-## [1] 2.5e+08
-##
-## $parms.N5
-## [1] 5e+10
-##
-## $parms.N6
-## [1] 5e+09
-##
-## $parms.N7
-## [1] 4e+09
-##
-## $parms.N8
-## [1] 3e+08
-##
-## $parms.N9
-## [1] 1e+10
-##
-## $parms.N10
-## [1] 1.2e+12
-##
-## $parms.N11
-## [1] 3e+10
-##
-## $parms.E1
-## [1] 0.97
-##
-## $parms.E2
-## [1] 1.55
-##
-## $parms.E3
-## [1] 1.73
-##
-## $parms.E4
-## [1] 1.8
-##
-## $parms.E5
-## [1] 2
-##
-## $parms.E6
-## [1] 1.65
-##
-## $parms.E7
-## [1] 1.6
-##
-## $parms.E8
-## [1] 1.43
-##
-## $parms.E9
-## [1] 1.75
-##
-## $parms.E10
-## [1] 5
-##
-## $parms.E11
-## [1] 5
-##
-## $parms.s1
-## [1] 5e+12
-##
-## $parms.s2
-## [1] 5e+14
-##
-## $parms.s3
-## [1] 6.5e+13
-##
-## $parms.s4
-## [1] 1.5e+13
-##
-## $parms.s5
-## [1] 1e+10
-##
-## $parms.s6
-## [1] 6.5e+13
-##
-## $parms.s7
-## [1] 5e+12
-##
-## $parms.s8
-## [1] 5e+13
-##
-## $parms.s9
-## [1] 5e+14
-##
-## $parms.s10
-## [1] 1e+13
-##
-## $parms.s11
-## [1] 1e+13
-##
-## $parms.A1
-## [1] 1e-08
-##
-## $parms.A2
-## [1] 1e-08
-##
-## $parms.A3
-## [1] 5e-09
-##
-## $parms.A4
-## [1] 5e-10
-##
-## $parms.A5
-## [1] 1e-10
-##
-## $parms.A6
-## [1] 1e-11
-##
-## $parms.A7
-## [1] 6e-12
-##
-## $parms.A8
-## [1] 5e-07
-##
-## $parms.A9
-## [1] 1e-09
-##
-## $parms.A10
-## [1] 1e-14
-##
-## $parms.A11
-## [1] 1e-10
-##
-## $parms.B1
-## [1] 0
-##
-## $parms.B2
-## [1] 0
-##
-## $parms.B3
-## [1] 0
-##
-## $parms.B4
-## [1] 0
-##
-## $parms.B5
-## [1] 0
-##
-## $parms.B6
-## [1] 0
-##
-## $parms.B7
-## [1] 0
-##
-## $parms.B8
-## [1] 5e-09
-##
-## $parms.B9
-## [1] 5e-10
-##
-## $parms.B10
-## [1] 3e-10
-##
-## $parms.B11
-## [1] 1e-10
-##
-## $parms.Th1
-## [1] 0.75
-##
-## $parms.Th2
-## [1] 0
-##
-## $parms.Th3
-## [1] 6
-##
-## $parms.Th4
-## [1] 4.5
-##
-## $parms.Th5
-## [1] 0
-##
-## $parms.Th6
-## [1] 0.01
-##
-## $parms.Th7
-## [1] 0
-##
-## $parms.E_th1
-## [1] 0.1
-##
-## $parms.E_th2
-## [1] 0
-##
-## $parms.E_th3
-## [1] 0.1
-##
-## $parms.E_th4
-## [1] 0.13
-##
-## $parms.E_th5
-## [1] 0
-##
-## $parms.E_th6
-## [1] 0.2
-##
-## $parms.E_th7
-## [1] 0
-##
-## $parms.n
-##
-## [RLum.Results-class]
-## originator: .set_pars()
-## data: 2
-## .. $n : numeric
-## .. $temp : numeric
-## additional info elements: 0
-##
-## $parms.k_B
-## [1] 8.617e-05
-##
-## $parms.W
-## [1] 0.64
-##
-## $parms.K
-## [1] 2.8e+07
-##
-## $parms.model
-## [1] "Pagonis2008"
+head(Luminescence::get_RLum(model.output, info = "parms"))
## $parms.N1
+## [1] 1.5e+07
+##
+## $parms.N2
+## [1] 1e+07
+##
+## $parms.N3
+## [1] 4e+07
+##
+## $parms.N4
+## [1] 2.5e+08
+##
+## $parms.N5
+## [1] 5e+10
+##
+## $parms.N6
+## [1] 5e+09
+An exciting feature of 'RLumModel'
is that it allows you
+to gain insight into the evolution of different parameter states beyond
+a single simulation, which would show you how numerical parameters
+change if the solver runs over the equations. For instance, assume you
+have a sequence of different stimulation steps (TL, OSL etc.). You want
+to know how the system, for which the solver has to find a solution,
+changes from one sequence step to another. This is of interest because
+the initial state of the system of each step will determine the shape of
+the curve. Let’s think of the following sequence that, after an initial
+TL readout, adds a dose followed by a TL measurement, then another
+irradiation, another TL measurement and so on.
+dose_points <- seq(8,600, length.out = 50)
+sequence <- c(
+ list(TL = c(20 , 500 , 2)),
+ unlist(lapply(dose_points, function(d){
+ list(
+ IRR = c(20 , d , 0.03),
+ TL = c(20 , 250, 2))
+
+ }), recursive = FALSE))
This sequence can modelled as shown above, here we use again the
+Baily2001
model:
+results <- model_LuminescenceSignals(
+ model = "Bailey2001",
+ sequence = sequence,
+ plot = FALSE,
+ show_structure = FALSE,
+ simulate_sample_history = FALSE,
+ verbose = FALSE)
What we did already above was to show the resulting TL curves, and we +do this again, just to see how they look like.
+
+Luminescence::plot_RLum(
+ get_RLum(results, recordType = "^TL$", drop = FALSE),
+ combine = TRUE,
+ xlim = c(20,120),
+ records_max = 10,
+ legend.pos = "topleft",
+ plot.single = TRUE)
Now we go one step further and focus our interest on the evolution of
+each parameter set at the end of each sequence step. Extracting all the
+data manually is possible, but a little cumbersome, so instead, we will
+use the function trace_StateParameterEvoluation()
(this
+function was introduced with 'RLumModel'
v0.2.10).
+trace_ParameterStateEvolution(results)
Developed by Johannes Friedrich, Sebastian Kreutzer, Christoph Schmidt.
+ +Developed by Johannes Friedrich, Sebastian Kreutzer, Christoph +Schmidt.
vignettes/RLumModel_-_Models_and_parameters.Rmd
+ RLumModel_-_Models_and_parameters.Rmd
The table lists the parameters used in the different models
+implemented in 'RLumModel'
. The tables are automatically
+extracted from the output of the function .set_pars()
to
+provide a better human-readable output format.
It is common in the published literature to assign descriptive names +to the energy levels. Obviously, this labelling is open to +interpretation and has nothing carved in stone. Moreover, it depends +partly on the model and the authors’ understanding.
+Although different models are implemented in
+'RLumModel'
, we did not assess whether they are meaningful
+but implemented them to allow direct comparison. Please remember that
+the main differences between models narrow down to the assumed
+concentration of specific levels (for instance, \(N\)). Sometimes models have different
+concentration levels underpinned by experiments that were or were not
+suitable to validate those changes. However, sometimes concentration
+levels differ because the authors modified them by try and error. Either
+way, we strongly recommend double-checking the
+underlying assumption of each model in the original article.
LEVEL | +LABEL | +DESCRIPTION | +
---|---|---|
trap_1 | +110ºC TL | +Electron trap associated with the 110ºC TL peak | +
trap_2 | +230ºC TL | +Electron trap associated with the 230ºC TL peak | +
trap_3 | +OSL_fast | +Electron trap feeding the OSL fast component | +
trap_4 | +OSL_medium | +Electron trap linked to the OSL medium component | +
(trap_5) | +OSL_deep/OSL_slow1 | +Electron trap linked to the first OSL slow component or the deep OSL +trap | +
(trap_6) | +OSL_slow2/TT-OSL | +Electron trap linked to the second OSL slow component or the TT-OSL +trap | +
(trap_7) | +OSL_slow3/BT-OSL | +Electron trap linked to the third OSL slow component or the BT-OSL +trap | +
(trap_8) | +OSL_deep | +Electron trap linked to the deep OSL trap | +
centre_1 | +R1 centre | +Reservoir centre 1, non-radiative, thermally unstable | +
centre_2 | +R2 centre | +Reservoir centre 2, non-radiative, thermally unstable | +
centre_3 | +K centre | +Killer centre, non-radiative recombination centre | +
centre_4 | +L centre | +Luminescence centre | +
The levels given in parentheses change according to the maximum
+number of levels in the model. For instance, if the model has only five
+electron traps, level trap_5
is associated with the deep
+OSL electron trap. However, if the model has traps associated with slow
+components, as in Bailey (2001), the OSL
+deep trap is associated with the trap_8
(cf. Friedrich, Kreutzer, and Schmidt 2016).
Please note that, unlike in the table above, the parameter tables
+below are generated automatically from the models implemented in
+'RLumModel'
. Therefore the labelling is kept very
+general.
+N (cm^-3) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+concentration of electron traps + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++1.5e+07 + | ++1.42e+10 + | ++1.5e+07 + | ++5.1e+09 + | ++9.0e+09 + | ++1.5e+07 + | ++1.5e+07 + | ++1.50e+07 + | +
+trap_2 + | ++2 + | ++1.0e+07 + | ++1.50e+09 + | ++1.0e+07 + | ++1.0e+07 + | ++1.0e+09 + | ++1.0e+07 + | ++1.0e+07 + | ++1.00e+07 + | +
+trap_3 + | ++3 + | ++1.0e+09 + | ++2.05e+11 + | ++4.0e+07 + | ++1.0e+11 + | ++1.5e+11 + | ++1.0e+09 + | ++1.0e+09 + | ++1.00e+09 + | +
+trap_4 + | ++4 + | ++2.5e+08 + | ++7.04e+10 + | ++2.5e+08 + | ++2.5e+08 + | ++5.0e+10 + | ++2.5e+08 + | ++2.5e+08 + | ++2.50e+08 + | +
+trap_5 + | ++5 + | ++5.0e+10 + | ++1.77e+11 + | ++5.0e+10 + | ++5.0e+10 + | ++1.0e+11 + | ++5.0e+10 + | ++5.0e+10 + | ++5.00e+10 + | +
+trap_6 + | ++6 + | ++NA + | ++2.53e+11 + | ++5.0e+09 + | ++NA + | ++1.5e+11 + | ++NA + | ++NA + | ++NA + | +
+trap_7 + | ++7 + | ++NA + | ++3.58e+12 + | ++4.0e+09 + | ++NA + | ++2.0e+12 + | ++NA + | ++NA + | ++NA + | +
+trap_8 + | ++8 + | ++NA + | ++1.28e+13 + | ++NA + | ++NA + | ++5.0e+12 + | ++NA + | ++NA + | ++NA + | +
+centre_1 + | ++9 + | ++3.0e+08 + | ++4.16e+12 + | ++3.0e+08 + | ++3.0e+08 + | ++1.2e+11 + | ++3.0e+09 + | ++1.0e+10 + | ++1.65e+08 + | +
+centre_2 + | ++10 + | ++1.0e+10 + | ++4.20e+11 + | ++1.0e+10 + | ++1.0e+10 + | ++1.0e+12 + | ++1.0e+10 + | ++1.0e+10 + | ++5.00e+09 + | +
+centre_3 + | ++11 + | ++5.0e+09 + | ++1.15e+14 + | ++1.2e+12 + | ++5.0e+09 + | ++5.0e+11 + | ++5.0e+09 + | ++5.0e+09 + | ++5.00e+09 + | +
+centre_4 + | ++12 + | ++1.0e+11 + | ++8.83e+13 + | ++3.0e+10 + | ++1.0e+08 + | ++1.0e+13 + | ++1.0e+11 + | ++1.0e+11 + | ++1.00e+11 + | +
+E (eV) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+depth below conduction or valence band + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++0.97 + | ++0.97 + | ++0.97 + | ++0.97 + | ++0.97 + | ++0.97 + | ++0.97 + | ++0.97 + | +
+trap_2 + | ++2 + | ++1.55 + | ++1.55 + | ++1.55 + | ++1.55 + | ++1.55 + | ++1.55 + | ++1.55 + | ++1.55 + | +
+trap_3 + | ++3 + | ++1.70 + | ++1.70 + | ++1.73 + | ++1.73 + | ++1.70 + | ++1.70 + | ++1.70 + | ++1.70 + | +
+trap_4 + | ++4 + | ++1.72 + | ++1.72 + | ++1.80 + | ++1.80 + | ++1.72 + | ++1.72 + | ++1.72 + | ++1.72 + | +
+trap_5 + | ++5 + | ++2.00 + | ++1.80 + | ++2.00 + | ++2.00 + | ++1.80 + | ++1.95 + | ++1.95 + | ++2.00 + | +
+trap_6 + | ++6 + | ++NA + | ++1.65 + | ++1.65 + | ++NA + | ++1.65 + | ++NA + | ++NA + | ++NA + | +
+trap_7 + | ++7 + | ++NA + | ++2.60 + | ++1.60 + | ++NA + | ++2.60 + | ++NA + | ++NA + | ++NA + | +
+trap_8 + | ++8 + | ++NA + | ++2.00 + | ++NA + | ++NA + | ++2.00 + | ++NA + | ++NA + | ++NA + | +
+centre_1 + | ++9 + | ++1.43 + | ++1.75 + | ++1.43 + | ++1.43 + | ++1.43 + | ++1.80 + | ++1.80 + | ++1.41 + | +
+centre_2 + | ++10 + | ++1.75 + | ++1.43 + | ++1.75 + | ++1.75 + | ++1.75 + | ++1.75 + | ++1.75 + | ++1.65 + | +
+centre_3 + | ++11 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | +
+centre_4 + | ++12 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | ++5.00 + | +
+s (s^-1) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+frequency factor + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++5e+12 + | ++5e+12 + | ++5.0e+12 + | ++5.0e+12 + | ++5e+12 + | ++5e+12 + | ++5e+12 + | ++5e+12 + | +
+trap_2 + | ++2 + | ++5e+14 + | ++5e+14 + | ++5.0e+14 + | ++5.0e+14 + | ++5e+14 + | ++5e+14 + | ++5e+14 + | ++5e+14 + | +
+trap_3 + | ++3 + | ++5e+13 + | ++5e+12 + | ++6.5e+13 + | ++3.6e+14 + | ++5e+12 + | ++5e+13 + | ++5e+13 + | ++1e+13 + | +
+trap_4 + | ++4 + | ++5e+14 + | ++5e+13 + | ++1.5e+13 + | ++1.5e+13 + | ++5e+13 + | ++5e+14 + | ++5e+14 + | ++1e+14 + | +
+trap_5 + | ++5 + | ++1e+10 + | ++5e+13 + | ++1.0e+10 + | ++1.0e+10 + | ++5e+13 + | ++1e+10 + | ++1e+10 + | ++1e+10 + | +
+trap_6 + | ++6 + | ++NA + | ++5e+13 + | ++6.5e+13 + | ++NA + | ++5e+13 + | ++NA + | ++NA + | ++NA + | +
+trap_7 + | ++7 + | ++NA + | ++5e+13 + | ++5.0e+12 + | ++NA + | ++5e+13 + | ++NA + | ++NA + | ++NA + | +
+trap_8 + | ++8 + | ++NA + | ++1e+10 + | ++NA + | ++NA + | ++1e+10 + | ++NA + | ++NA + | ++NA + | +
+centre_1 + | ++9 + | ++5e+13 + | ++5e+14 + | ++5.0e+13 + | ++5.0e+13 + | ++5e+13 + | ++5e+13 + | ++5e+13 + | ++5e+13 + | +
+centre_2 + | ++10 + | ++5e+14 + | ++5e+13 + | ++5.0e+14 + | ++5.0e+14 + | ++5e+14 + | ++5e+14 + | ++5e+14 + | ++5e+14 + | +
+centre_3 + | ++11 + | ++1e+13 + | ++1e+13 + | ++1.0e+13 + | ++1.0e+13 + | ++1e+13 + | ++1e+13 + | ++1e+13 + | ++1e+13 + | +
+centre_4 + | ++12 + | ++1e+13 + | ++1e+13 + | ++1.0e+13 + | ++1.0e+13 + | ++1e+13 + | ++1e+13 + | ++1e+13 + | ++1e+13 + | +
+A (cm^3 s^-1) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+transiation probability to conduction or valence band + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++1e-08 + | ++1e-08 + | ++1e-08 + | ++1e-08 + | ++1e-08 + | ++1e-08 + | ++1e-08 + | ++1.00e-08 + | +
+trap_2 + | ++2 + | ++1e-08 + | ++1e-08 + | ++1e-08 + | ++1e-09 + | ++1e-08 + | ++1e-08 + | ++1e-08 + | ++1.00e-08 + | +
+trap_3 + | ++3 + | ++1e-09 + | ++1e-09 + | ++5e-09 + | ++5e-10 + | ++1e-09 + | ++1e-09 + | ++1e-09 + | ++1.00e-09 + | +
+trap_4 + | ++4 + | ++5e-10 + | ++8e-10 + | ++5e-10 + | ++5e-10 + | ++8e-10 + | ++5e-10 + | ++5e-10 + | ++5.00e-10 + | +
+trap_5 + | ++5 + | ++1e-10 + | ++8e-10 + | ++1e-10 + | ++1e-10 + | ++8e-10 + | ++1e-10 + | ++1e-10 + | ++3.33e-11 + | +
+trap_6 + | ++6 + | ++NA + | ++5e-10 + | ++1e-11 + | ++NA + | ++5e-10 + | ++NA + | ++NA + | ++NA + | +
+trap_7 + | ++7 + | ++NA + | ++2e-10 + | ++6e-12 + | ++NA + | ++2e-10 + | ++NA + | ++NA + | ++NA + | +
+trap_8 + | ++8 + | ++NA + | ++1e-10 + | ++NA + | ++NA + | ++1e-10 + | ++NA + | ++NA + | ++NA + | +
+centre_1 + | ++9 + | ++5e-07 + | ++1e-09 + | ++5e-07 + | ++5e-07 + | ++5e-08 + | ++5e-07 + | ++5e-07 + | ++5.00e-07 + | +
+centre_2 + | ++10 + | ++1e-09 + | ++5e-08 + | ++1e-09 + | ++1e-09 + | ++1e-09 + | ++1e-09 + | ++1e-09 + | ++1.00e-09 + | +
+centre_3 + | ++11 + | ++1e-10 + | ++1e-10 + | ++1e-14 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | ++1.00e-10 + | +
+centre_4 + | ++12 + | ++1e-09 + | ++1e-09 + | ++1e-10 + | ++1e-09 + | ++1e-09 + | ++1e-09 + | ++1e-09 + | ++1.00e-09 + | +
+B (cm^3 s^-1) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+conduction band to hole centre transition probability + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | +
+trap_2 + | ++2 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | +
+trap_3 + | ++3 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | +
+trap_4 + | ++4 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | +
+trap_5 + | ++5 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | ++0e+00 + | +
+trap_6 + | ++6 + | ++NA + | ++0e+00 + | ++0e+00 + | ++NA + | ++0e+00 + | ++NA + | ++NA + | ++NA + | +
+trap_7 + | ++7 + | ++NA + | ++0e+00 + | ++0e+00 + | ++NA + | ++0e+00 + | ++NA + | ++NA + | ++NA + | +
+trap_8 + | ++8 + | ++NA + | ++0e+00 + | ++NA + | ++NA + | ++0e+00 + | ++NA + | ++NA + | ++NA + | +
+centre_1 + | ++9 + | ++5e-09 + | ++5e-10 + | ++5e-09 + | ++5e-09 + | ++5e-09 + | ++5e-09 + | ++5e-09 + | ++5e-09 + | +
+centre_2 + | ++10 + | ++5e-10 + | ++5e-09 + | ++5e-10 + | ++5e-10 + | ++5e-10 + | ++5e-10 + | ++5e-10 + | ++5e-10 + | +
+centre_3 + | ++11 + | ++1e-10 + | ++1e-10 + | ++3e-10 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | +
+centre_4 + | ++12 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | ++1e-10 + | ++5e-10 + | ++1e-10 + | +
+Th (s^-1) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+photo-ionisation cross-section + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++0.75 + | ++1e-19 + | ++0.75 + | ++0.75 + | ++1e-19 + | ++0.75 + | ++0.75 + | ++0.75 + | +
+trap_2 + | ++2 + | ++0.00 + | ++0e+00 + | ++0.00 + | ++0.00 + | ++0e+00 + | ++0.00 + | ++0.00 + | ++0.00 + | +
+trap_3 + | ++3 + | ++6.00 + | ++1e-16 + | ++6.00 + | ++6.00 + | ++1e-16 + | ++6.00 + | ++6.00 + | ++6.00 + | +
+trap_4 + | ++4 + | ++4.50 + | ++3e-17 + | ++4.50 + | ++4.50 + | ++3e-17 + | ++4.50 + | ++4.50 + | ++4.50 + | +
+trap_5 + | ++5 + | ++0.00 + | ++4e-18 + | ++0.00 + | ++0.00 + | ++4e-18 + | ++0.00 + | ++0.00 + | ++0.00 + | +
+trap_6 + | ++6 + | ++NA + | ++3e-19 + | ++0.01 + | ++NA + | ++3e-19 + | ++NA + | ++NA + | ++NA + | +
+trap_7 + | ++7 + | ++NA + | ++2e-21 + | ++0.00 + | ++NA + | ++2e-21 + | ++NA + | ++NA + | ++NA + | +
+trap_8 + | ++8 + | ++NA + | ++0e+00 + | ++NA + | ++NA + | ++0e+00 + | ++NA + | ++NA + | ++NA + | +
+E_th (eV) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+thermal assistance energy + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | +
+trap_2 + | ++2 + | ++0.00 + | ++0.00 + | ++0.00 + | ++0.00 + | ++0.00 + | ++0.00 + | ++0.00 + | ++0.00 + | +
+trap_3 + | ++3 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | ++0.10 + | +
+trap_4 + | ++4 + | ++0.13 + | ++0.13 + | ++0.13 + | ++0.13 + | ++0.13 + | ++0.13 + | ++0.13 + | ++0.13 + | +
+trap_5 + | ++5 + | ++0.00 + | ++0.20 + | ++0.00 + | ++0.00 + | ++0.20 + | ++0.00 + | ++0.00 + | ++0.00 + | +
+trap_6 + | ++6 + | ++NA + | ++0.20 + | ++0.20 + | ++NA + | ++0.20 + | ++NA + | ++NA + | ++NA + | +
+trap_7 + | ++7 + | ++NA + | ++0.20 + | ++0.00 + | ++NA + | ++0.20 + | ++NA + | ++NA + | ++NA + | +
+trap_8 + | ++8 + | ++NA + | ++0.00 + | ++NA + | ++NA + | ++0.00 + | ++NA + | ++NA + | ++NA + | +
+k_B (eV K^-1) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+Boltzmann constant + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++8.617e-05 + | ++8.617e-05 + | ++8.617e-05 + | ++8.617e-05 + | ++8.617e-05 + | ++8.617e-05 + | ++8.617e-05 + | ++8.617e-05 + | +
+W (eV) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+activation energy + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++0.64 + | ++0.64 + | ++0.64 + | ++0.64 + | ++0.64 + | ++0.64 + | ++0.64 + | ++0.64 + | +
+K () + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+dimensionlss constant after Wintle (1975) + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++2.8e+07 + | ++2.8e+07 + | ++2.8e+07 + | ++2.8e+07 + | ++2.8e+07 + | ++2.8e+07 + | ++2.8e+07 + | ++2.8e+07 + | +
+n (cm^-3) + | +|||||||||
---|---|---|---|---|---|---|---|---|---|
+concentration of trapped charges + | +|||||||||
+ | ++# + | ++Bailey2001 + | ++Bailey2004 + | ++Pagonis2008 + | ++Pagonis2007 + | ++Bailey2002 + | ++Friedrich2017 + | ++Friedrich2018 + | ++Peng2022 + | +
+trap_1 + | ++1 + | ++9.169767e-03 + | ++5.150601e+02 + | ++3.401581e-03 + | ++3.788751e+00 + | ++1.304051e+01 + | ++4.282981e-02 + | ++2.025417e-02 + | ++9.169767e-03 + | +
+trap_2 + | ++2 + | ++7.619894e+04 + | ++1.164635e+09 + | ++5.718477e+04 + | ++1.931482e+03 + | ++2.474416e+07 + | ++2.165932e+06 + | ++1.048967e+06 + | ++7.619894e+04 + | +
+trap_3 + | ++3 + | ++1.291564e+08 + | ++4.270964e+10 + | ++2.879822e+07 + | ++7.322346e+08 + | ++3.791273e+10 + | ++1.464513e+08 + | ++2.789634e+07 + | ++1.291564e+08 + | +
+trap_4 + | ++4 + | ++7.432290e+06 + | ++1.201018e+10 + | ++1.235043e+08 + | ++3.233415e+06 + | ++9.871927e+09 + | ++1.898261e+07 + | ++3.508166e+06 + | ++7.432290e+06 + | +
+trap_5 + | ++5 + | ++2.690423e+10 + | ++5.712265e+10 + | ++2.556071e+10 + | ++1.902026e+10 + | ++2.088693e+10 + | ++1.372718e+10 + | ++8.606323e+09 + | ++2.690423e+10 + | +
+trap_6 + | ++6 + | ++NA + | ++2.065021e+11 + | ++3.881049e+06 + | ++NA + | ++1.506005e+10 + | ++NA + | ++NA + | ++NA + | +
+trap_7 + | ++7 + | ++NA + | ++3.573812e+12 + | ++7.550608e+06 + | ++NA + | ++1.989412e+12 + | ++NA + | ++NA + | ++NA + | +
+trap_8 + | ++8 + | ++NA + | ++1.280000e+13 + | ++NA + | ++NA + | ++4.962146e+12 + | ++NA + | ++NA + | ++NA + | +
+centre_1 + | ++9 + | ++5.741230e+06 + | ++1.496238e+11 + | ++1.734105e+08 + | ++3.000000e+08 + | ++2.696001e+09 + | ++2.215388e+09 + | ++5.796382e+09 + | ++5.741230e+06 + | +
+centre_2 + | ++10 + | ++6.779304e+07 + | ++1.214026e+10 + | ++3.332680e+09 + | ++1.000000e+10 + | ++5.054229e+10 + | ++4.107361e+07 + | ++5.274192e+06 + | ++6.779304e+07 + | +
+centre_3 + | ++11 + | ++1.591234e+08 + | ++2.194172e+12 + | ++1.294818e+08 + | ++5.000000e+09 + | ++8.974516e+10 + | ++6.146246e+07 + | ++1.648926e+07 + | ++1.591234e+08 + | +
+centre_4 + | ++12 + | ++2.680824e+10 + | ++1.433739e+13 + | ++2.208893e+10 + | ++1.000000e+08 + | ++6.892331e+12 + | ++1.157685e+10 + | ++2.820631e+09 + | ++2.680824e+10 + | +
+n_c + | ++13 + | ++2.450977e-07 + | ++2.450977e-07 + | ++2.450977e-07 + | ++2.450977e-07 + | ++2.450977e-07 + | ++2.450977e-07 + | ++2.450977e-07 + | ++2.450977e-07 + | +
+n_v + | ++14 + | ++4.263486e-07 + | ++4.263486e-07 + | ++4.263486e-07 + | ++4.263486e-07 + | ++4.263486e-07 + | ++4.263486e-07 + | ++4.263486e-07 + | ++4.263486e-07 + | +
Developed by Johannes Friedrich, Sebastian Kreutzer, Christoph +Schmidt.
+Site built with pkgdown +2.0.2.
+vignettes/RLumModel_-_Simulating_luminescence_in_Al2O3.Rmd
+ Source: vignettes/RLumModel_-_Simulating_luminescence_in_Al2O3.Rmd
RLumModel_-_Simulating_luminescence_in_Al2O3.Rmd
This vignette describes the usage of the R-package ‘RLumModel’ for simulating Al2O3 behaviour. In literature a lot of parameters for describing the thermoluminescence (TL) and/or optical stimulated luminescence (OSL) are given. We give same examples for simulating different phenomena of luminescence in Al2O3. Note that most of the model do not support TL and OSL simulations. So please be careful when creating sequences. The models presented in Sec. 2.1 and 2.2 support TL simulations, but no OSL because parameters for E_th
(Thermal assistance energy) and Th
(Photo-eviction constant or photoionisation cross section).
This vignette describes the usage of the R-package
+‘RLumModel’ for simulating Al2O3 behaviour. In
+literature a lot of parameters for describing the thermoluminescence
+(TL) and/or optical stimulated luminescence (OSL) are given. We give
+same examples for simulating different phenomena of luminescence in
+Al2O3. Note that most of the model do not support
+TL and OSL simulations. So please be careful when
+creating sequences. The models presented in Sec. 2.1 and 2.2 support TL
+simulations, but no OSL because parameters for E_th
+(Thermal assistance energy) and Th
(Photo-eviction constant
+or photoionisation cross section).
All examples need the R package RLumModel, so let’s load it!
+All examples need the R package RLumModel, so let’s +load it!
-Akselrod et al. (1998) presented parameters for modelling the effect of quenching TL signals. This model was built for Al2O3, but the rate equations are identical with describing electron movements in quartz. Below is a step-by-step introduction for involving these parameters in ‘RLumModel’ and re-calculating the simulationa from Figure 9 in Akselrod et al. (1998).
-For a detailed introduction to own parameter sets in RLumModel, see vignette RLumModel - Using own parameter sets.
-As a next step it is possible to set own starting-parameters, also called state parameters. In the case of Akselrod et al. (1998) they submitted initial concentrations of electrons and holes. This can be done via:
+library(RLumModel)
Akselrod et al. (1998) presented +parameters for modelling the effect of quenching TL signals. This model +was built for Al2O3, but the rate equations are +identical with describing electron movements in quartz. Below is a +step-by-step introduction for involving these parameters in ‘RLumModel’ +and re-calculating the simulationa from Figure 9 in Akselrod et al. (1998).
+For a detailed introduction to own parameter sets in RLumModel, see +vignette RLumModel - +Using own parameter sets.
+As a next step it is possible to set own starting-parameters, also +called state parameters. In the case of Akselrod +et al. (1998) they submitted initial concentrations of electrons +and holes. This can be done via:
-own_state_parameters <- c(0, 0, 1e11)
Here the first entry is the first electron trap, the second entry the second electron trap and the third entry the luminescence centre responsible for the TL signal. The vector own_state_parameters
needs as much entries as energy levels used in the model.
own_state_parameters <- c(0, 0, 1e11)
Here the first entry is the first electron trap, the second entry the
+second electron trap and the third entry the luminescence centre
+responsible for the TL signal. The vector
+own_state_parameters
needs as much entries as energy levels
+used in the model.
The effect of quenching luminescence signals will be simulated. In RLumModel it is possible to submit the parameter K
as an indicator for recognising thermal quenching or not. If the parameter is set to 0
thermal quenching will be neglected. Otherwise it wil be calculated.
The effect of quenching luminescence signals will be simulated. In
+RLumModel it is possible to submit the parameter K
as an
+indicator for recognising thermal quenching or not. If the parameter is
+set to 0
thermal quenching will be neglected. Otherwise it
+wil be calculated.
-W <- c(0, 1.05)
+W <- c(0, 1.05)
-TL_Akselrod_1998 <- lapply(W, function(W){
+TL_Akselrod_1998 <- lapply(W, function(W){
- own_parameters <- list(
- N = c(1e18, 1e17, 1e18),
- E = c(1.25, 0, 0),
- s = c(1e13, 0, 0),
- A = c(1e-16, 1e-16, 2e-17),
- B = c(0, 0, 1e-16),
- K = ifelse(W == 0, 0, 1e12),
+ own_parameters <- list(
+ N = c(1e18, 1e17, 1e18),
+ E = c(1.25, 0, 0),
+ s = c(1e13, 0, 0),
+ A = c(1e-16, 1e-16, 2e-17),
+ B = c(0, 0, 1e-16),
+ K = ifelse(W == 0, 0, 1e12),
W = W,
model = "customized",
R = 1e13)
- sequence <- list(
- IRR = c(20, 0.225, 0.01),
- TL = c(20, 300, 1))
+ sequence <- list(
+ IRR = c(20, 0.225, 0.01),
+ TL = c(20, 300, 1))
model_output <- model_LuminescenceSignals(
model = "customized",
@@ -172,14 +205,14 @@
verbose = FALSE,
plot = FALSE)
- return(get_RLum(model_output, recordType = "TL$", drop = FALSE))
+ return(get_RLum(model_output, recordType = "TL$", drop = FALSE))
})
-merge_results <- merge_RLum.Analysis(TL_Akselrod_1998)
+merge_results <- merge_RLum.Analysis(TL_Akselrod_1998)
-plot_RLum.Analysis(
+plot_RLum.Analysis(
merge_results,
- legend.text = c("Unquenched", "Quenched"),
+ legend.text = c("Unquenched", "Quenched"),
combine = T)
Pagonis, Chen, and Lawless (2007) published three different parameter sets for Al2O3 chips. Here we analyse ‘Chip101’ and show how to re-calculate the results presented in the publication.
-Pagonis, Chen, and Lawless (2007) +published three different parameter sets for Al2O3 +chips. Here we analyse ‘Chip101’ and show how to re-calculate the +results presented in the publication.
+
-own_parameters <- list(
- N = c(2e15, 2e15, 2.4e16, 1e17),
- E = c(1.3,0, 0, 0),
- s = c(1e13, 0, 0, 0),
- A = c(2e-8, 2e-9, 4e-9, 1e-8),
- B = c(0, 0, 5e-11, 4e-8),
+own_parameters <- list(
+ N = c(2e15, 2e15, 2.4e16, 1e17),
+ E = c(1.3,0, 0, 0),
+ s = c(1e13, 0, 0, 0),
+ A = c(2e-8, 2e-9, 4e-9, 1e-8),
+ B = c(0, 0, 5e-11, 4e-8),
K = 1e11,
W = 1.1,
model = "customized",
R = 1.7e15)
-own_state_parameters <- c(0, 0, 0, 9.4e15)
We now have to define the sequence for simulating the TL behaviour. For that purpose different doses are given before the TL measurement. To handle this a lapply
command was used. The result is the combined plot of all simulated TL measurements.
We now have to define the sequence for simulating the TL behaviour.
+For that purpose different doses are given before the TL measurement. To
+handle this a lapply
command was used. The result is the
+combined plot of all simulated TL measurements.
-dose <- 10^seq(-1, 3.5, 0.5)
+dose <- 10^seq(-1, 3.5, 0.5)
-Pagonis_2007 <- lapply(dose, function(dose){
+Pagonis_2007 <- lapply(dose, function(dose){
- sequence <- list(
- IRR = c(20, dose, 1),
- PAUSE = c(20, 60),
- TL = c(20, 250, 1))
+ sequence <- list(
+ IRR = c(20, dose, 1),
+ PAUSE = c(20, 60),
+ TL = c(20, 250, 1))
model_output <- model_LuminescenceSignals(
model = "customized",
@@ -231,16 +270,16 @@
verbose = FALSE,
plot = FALSE)
- return(Luminescence::get_RLum(model_output, recordType = "TL", drop = FALSE))
+ return(Luminescence::get_RLum(model_output, recordType = "TL", drop = FALSE))
})
-merge_results <- Luminescence::merge_RLum.Analysis(Pagonis_2007)
+merge_results <- Luminescence::merge_RLum.Analysis(Pagonis_2007)
-Luminescence::plot_RLum.Analysis(
+Luminescence::plot_RLum.Analysis(
merge_results,
- subset = list(recordType = "TL$"),
- xlim = c(100, 250),
- legend.text = paste0(round(dose, digits = 2), " Gy"),
+ subset = list(recordType = "TL$"),
+ xlim = c(100, 250),
+ legend.text = paste0(round(dose, digits = 2), " Gy"),
combine = T)
Figure 2 in the original publiction by Pagonis, Chen, and Lawless (2007) will be plotted with the following commands. The following code commands are able to calculate the maximum of the TL signal of all curves.
+Figure 2 in the original publiction by Pagonis, Chen, and Lawless (2007) will be +plotted with the following commands. The following code commands are +able to calculate the maximum of the TL signal of all curves.
-TL_max <- vapply(1:length(Pagonis_2007), function(x){
+TL_max <- vapply(1:length(Pagonis_2007), function(x){
- TL <- get_RLum(get_RLum(Pagonis_2007[[x]], recordType = "TL$"))
+ TL <- get_RLum(get_RLum(Pagonis_2007[[x]], recordType = "TL$"))
- return(max(TL[,2]))
+ return(max(TL[,2]))
}, FUN.VALUE = 1)
Now the calculation of the concentration:
-m1_max <- vapply(1:length(Pagonis_2007), function(x){
+m1_max <- vapply(1:length(Pagonis_2007), function(x){
- m1 <- get_RLum(get_RLum(Pagonis_2007[[x]], recordType = "conc. level 4"))
+ m1 <- get_RLum(get_RLum(Pagonis_2007[[x]], recordType = "conc. level 4"))
- return(m1[1,2])
+ return(m1[1,2])
}, FUN.VALUE = 1)
When plotting L-centre concentration vs. dose or TLmax vs. dose the same results as presented in Fig. 2 in Pagonis, Chen, and Lawless (2007) are reached.
+When plotting L-centre concentration vs. dose or TLmax +vs. dose the same results as presented in Fig. 2 in Pagonis, Chen, and Lawless (2007) are +reached.
-dose <- seq(1,400, 1)
+dose <- seq(1,400, 1)
-Fig_5 <- lapply(dose, function(dose){
+Fig_5 <- lapply(dose, function(dose){
- sequence <- list(
- RF = c(20, dose, 1))
+ sequence <- list(
+ RF = c(20, dose, 1))
model_output <- model_LuminescenceSignals(
model = "customized",
@@ -302,45 +345,45 @@
})
-n1 <- vapply(1:length(Fig_5), function(x){
+n1 <- vapply(1:length(Fig_5), function(x){
- temp <- get_RLum(get_RLum(Fig_5[[x]], recordType = "conc. level 1"))
+ temp <- get_RLum(get_RLum(Fig_5[[x]], recordType = "conc. level 1"))
- return(temp[nrow(temp),2])
+ return(temp[nrow(temp),2])
}, FUN.VALUE = 1)
-n2 <- vapply(1:length(Fig_5), function(x){
+n2 <- vapply(1:length(Fig_5), function(x){
- temp <- get_RLum(get_RLum(Fig_5[[x]], recordType = "conc. level 2"))
+ temp <- get_RLum(get_RLum(Fig_5[[x]], recordType = "conc. level 2"))
- return(temp[nrow(temp),2])
+ return(temp[nrow(temp),2])
}, FUN.VALUE = 1)
-m1 <- vapply(1:length(Fig_5), function(x){
+m1 <- vapply(1:length(Fig_5), function(x){
- temp <- get_RLum(get_RLum(Fig_5[[x]], recordType = "conc. level 4"))
+ temp <- get_RLum(get_RLum(Fig_5[[x]], recordType = "conc. level 4"))
- return(temp[nrow(temp),2])
+ return(temp[nrow(temp),2])
}, FUN.VALUE = 1)
-m2 <- vapply(1:length(Fig_5), function(x){
+m2 <- vapply(1:length(Fig_5), function(x){
- temp <- get_RLum(get_RLum(Fig_5[[x]], recordType = "conc. level 3"))
+ temp <- get_RLum(get_RLum(Fig_5[[x]], recordType = "conc. level 3"))
- return(temp[nrow(temp),2])
+ return(temp[nrow(temp),2])
}, FUN.VALUE = 1)
-plot(dose, m2, type = "l", ylim = c(0, 1.5e16), xlim = c(0, 500), xlab= "Dose [Gy]", ylab = "Concentration [a.u.]")
-lines(dose, n2, col = "red")
-lines(dose, m1, col = "green")
-lines(dose, n1, col = "blue")
+plot(dose, m2, type = "l", ylim = c(0, 1.5e16), xlim = c(0, 500), xlab= "Dose [Gy]", ylab = "Concentration [a.u.]")
+lines(dose, n2, col = "red")
+lines(dose, m1, col = "green")
+lines(dose, n1, col = "blue")
-legend("topright", legend = c("n1", "n2", "m1", "m2"), col = c("blue", "red", "green", "black"), lwd = 1, bty = "n")
-grid()
This vignette showed the potential of the R package ‘RLumModel’ to simulate Al2O3 behaviour. Two different models known from literature were re-compiled in the framework of RLumModel.
+This vignette showed the potential of the R package +‘RLumModel’ to simulate Al2O3 behaviour. Two +different models known from literature were re-compiled in the framework +of RLumModel.
Developed by Johannes Friedrich, Sebastian Kreutzer, Christoph Schmidt.
+ +Developed by Johannes Friedrich, Sebastian Kreutzer, Christoph +Schmidt.