R-Lum / RLumModel
1
#' Set parameters for different quartz luminescence models
2
#'
3
#' This function provides all necessary model parameters to the calculation of the ODEs.
4
#'
5
#' The common model parameters are:
6
#'
7
#' \bold{N}: concentrations of electron/hole traps [cm^(-3)]
8
#' \bold{E}: depth of the electron/hole trap [eV]
9
#' \bold{s}: frequency factor [s^(-1)]
10
#' \bold{A}: conduction band to electron/hole trap transition probability [s^(-1)]
11
#' \bold{B}: valence band to hole trap transition probability [s^(-1)]
12
#' \bold{Th}: photo-ionisation cross-section [s^(-1)]
13
#' \bold{E_th}: `thermal assistance' energy [eV]
14
#' \bold{n}: concentrations of electron/hole traps after sample history [cm^(-3)]
15
#'
16
#' @note \bold{n} are the saved concentrations of the last step of the sample history
17
#' of the used model. They will be loaded, if 'simulate_sample_history = FALSE' in
18
#' \code{\link{model_LuminescenceSignals}} is chosen.
19
#'
20
#'
21
#' @param model \code{\link{character}} (\bold{required}): set model to be used.
22
#' Available models are:
23
#' "Bailey2001", "Bailey2002", "Bailey2004", "Pagonis2007", "Pagonis2008"
24
#'
25
#' @return This function returns a \code{\link{list}} with all neccessary parameters for
26
#' the used model.
27
#'
28
#' @note The order of the energy-band-levels is sometimes in an different order than in the original model.
29
#' This was necessary, because
30
#' in the simulations the luminescence center always has to be the last entry in every parameter.
31
#' Another reason was the clear division between electron traps and hole centers.
32
#' When a user wants to create his/her own parameter sets he/she only has to take care that the luminescence center is the last
33
#' entry in every vector and that the first entries are the electron traps and the last entries the hole centres.
34
#'
35
#' @section Function version: 0.1.3 [2017-11-20]
36
#'
37
#' @author Johannes Friedrich, University of Bayreuth (Germany),
38
#'
39
#' @references
40
#'
41
#' Bailey, R.M., 2001. Towards a general kinetic model for optically and thermally stimulated
42
#' luminescence of quartz. Radiation Measurements 33, 17-45.
43
#'
44
#' Bailey, R.M., 2002. Simulations of variability in the luminescence characteristics of natural
45
#' quartz and its implications for estimates of absorbed dose.
46
#' Radiation Protection Dosimetry 100, 33-38.
47
#'
48
#' Bailey, R.M., 2004. Paper I-simulation of dose absorption in quartz over geological timescales
49
#' and it simplications for the precision and accuracy of optical dating.
50
#' Radiation Measurements 38, 299-310.
51
#' 
52
#' Friedrich, J., Pagonis, V., Chen, R., Kreutzer, S., Schmidt, C., 2017: Quartz radiofluorescence: a modelling approach.
53
#' Journal of Luminescence 186, 318-325.
54
#'
55
#' Pagonis, V., Chen, R., Wintle, A.G., 2007: Modelling thermal transfer in optically
56
#' stimulated luminescence of quartz. Journal of Physics D: Applied Physics 40, 998-1006.
57
#'
58
#' Pagonis, V., Wintle, A.G., Chen, R., Wang, X.L., 2008. A theoretical model for a new dating protocol
59
#' for quartz based on thermally transferred OSL (TT-OSL).
60
#' Radiation Measurements 43, 704-708.
61
#'
62
#' @examples
63
#'
64
#' pars <- .set_pars("Bailey2001")
65
#'
66
#' @noRd
67
.set_pars <- function(model){
68

69
# check input arguments ---------------------------------------------------
70

71
  #Check if model is supported
72 5
  model.allowed_keywords <- c("Bailey2001", 
73 5
                              "Bailey2004", 
74 5
                              "Pagonis2008", 
75 5
                              "Pagonis2007", 
76 5
                              "Bailey2002", 
77 5
                              "Friedrich2017", 
78 5
                              "Friedrich2018",
79 5
                              "customized", 
80 5
                              "customised")
81

82 5
  if(!model%in%model.allowed_keywords){
83 0
    stop(paste0("[.set_Pars()] Model not supported. Supported models are: ", paste(model.allowed_keywords, collapse = ", ")))
84
  }
85

86
  ##============================================================================##
87
  ## natural constants
88
  ##============================================================================##
89

90
  # Boltzmann constant [eV/K]
91 5
  k_B <- 8.617e-5
92

93
  # activiation Energy [eV]
94 5
  W <- 0.64
95

96
  # dimensionless constant (for Details see Wintle (1975))
97 5
  K <- 2.8e7
98

99 5
  parameter.list = list(
100

101 5
    Bailey2001 = list(
102

103 5
      N = c(1.5e7, 1e7, 1e9, 2.5e8, 5e10, 3e8, 1e10, 5e9, 1e11),
104 5
      E = c(0.97, 1.55, 1.7, 1.72, 2, 1.43, 1.75, 5, 5),
105 5
      s = c(5e12, 5e14, 5e13, 5e14, 1e10, 5e13, 5e14, 1e13, 1e13),
106 5
      A = c(1e-8, 1e-8, 1e-9, 5e-10, 1e-10, 5e-7, 1e-9, 1e-10, 1e-9),
107 5
      B = c(0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 1e-10),
108 5
      Th = c(0.75, 0, 6, 4.5, 0),
109 5
      E_th = c(0.1, 0, 0.1, 0.13, 0),
110 5
      n =  set_RLum(class = "RLum.Results", data = list(n = c(9.169767e-03, 7.619894e+04, 1.291564e+08, 7.432290e+06, 2.690423e+10, 5.741230e+06, 6.779304e+07, 1.591234e+08, 2.680824e+10, 2.450977e-07, 4.263486e-07),
111 5
      temp = 20)),
112 5
      k_B = k_B,
113 5
      W = W,
114 5
      K = K,
115 5
      model = model
116
      ),
117

118 5
    Bailey2002 = list(
119

120 5
      N = c(9e9, 1e9, 1.5e11, 5e10, 1e11, 1.5e11, 2e12, 5e12, 1.2e11, 1e12, 5e11, 1e13),
121 5
      E = c(0.97, 1.55, 1.7, 1.72, 1.8, 1.65, 2.6, 2, 1.43, 1.75, 5, 5),
122 5
      s = c(5e12, 5e14, 5e12, 5e13, 5e13, 5e13, 5e13, 1e10, 5e13, 5e14, 1e13, 1e13),
123 5
      A = c(1e-8, 1e-8, 1e-9, 8e-10, 8e-10, 5e-10, 2e-10, 1e-10, 5e-8, 1e-9, 1e-10, 1e-9),
124 5
      B = c(0, 0, 0, 0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 1e-10),
125 5
      Th = c(1e-19, 0, 1e-16, 3e-17, 4e-18, 3e-19, 2e-21, 0),
126 5
      E_th = c(0.1, 0, 0.1, 0.13, 0.2, 0.2, 0.2,0),
127 5
      n =  set_RLum(class = "RLum.Results", data = list(n = c(1.304051e+01, 2.474416e+07, 3.791273e+10, 9.871927e+09, 2.088693e+10, 1.506005e+10, 1.989412e+12, 4.962146e+12, 2.696001e+09, 5.054229e+10, 8.974516e+10, 6.892331e+12, 1.266365e-06, 3.534302e-06), 
128 5
      temp = 20)),
129 5
      k_B = k_B,
130 5
      W = W,
131 5
      K = K,
132 5
      model = model
133
    ),
134

135 5
    Bailey2004 = list(
136

137 5
      N = c(1.42e10, 1.5e9, 2.05e11, 7.04e10, 1.77e11, 2.53e11, 3.58e12, 1.28e13, 4.16e12, 4.2e11, 1.15e14, 8.83e13),
138 5
      E = c(0.97, 1.55, 1.7, 1.72, 1.8, 1.65, 2.6, 2, 1.75, 1.43, 5, 5),
139 5
      s = c(5e12, 5e14, 5e12, 5e13, 5e13, 5e13, 5e13, 1e10, 5e14,  5e13, 1e13, 1e13),
140 5
      A = c(1e-8, 1e-8, 1e-9, 8e-10, 8e-10, 5e-10, 2e-10, 1e-10, 1e-9, 5e-8, 1e-10, 1e-9),
141 5
      B = c(0, 0, 0, 0, 0, 0, 0, 0, 5e-10, 5e-9, 1e-10, 1e-10),
142 5
      Th = c(1e-19, 0, 1e-16, 3e-17, 4e-18, 3e-19, 2e-21, 0),
143 5
      E_th = c(0.1, 0, 0.1, 0.13, 0.2, 0.2, 0.2, 0),
144 5
      n =  set_RLum(class = "RLum.Results", data = list(n = c(5.150601e+02, 1.164635e+09, 4.270964e+10, 1.201018e+10, 5.712265e+10, 2.065021e+11, 3.573812e+12, 1.280000e+13, 1.496238e+11, 1.214026e+10, 2.194172e+12,1.433739e+13, 3.743729e-04, 8.625906e-06), 
145 5
      temp = 20)),
146 5
      k_B = k_B,
147 5
      W = W,
148 5
      K = K,
149 5
      model = model
150
    ),
151

152 5
    Pagonis2007 = list(
153

154 5
      N = c(5.1e9, 1e7, 1e11, 2.5e8, 5e10, 3e8, 1e10, 5e9, 1e8),
155 5
      E = c(0.97, 1.55, 1.73, 1.8, 2, 1.43, 1.75, 5, 5),
156 5
      s = c(5e12, 5e14, 36e13, 1.5e13, 1e10, 5e13, 5e14, 1e13, 1e13),
157 5
      A = c(1e-8, 1e-9, 0.5e-9, 5e-10, 1e-10, 5e-7, 1e-9, 1e-10, 1e-9),
158 5
      B = c(0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 1e-10),
159 5
      Th = c(0.75, 0, 6, 4.5, 0),
160 5
      E_th = c(0.1, 0, 0.1, 0.13, 0),
161 5
      n =  set_RLum(class = "RLum.Results", data = list(n = c(3.788751e+00, 1.931482e+03, 7.322346e+08, 3.233415e+06, 1.902026e+10, 3.000000e+08, 1.000000e+10, 5.000000e+09, 1.000000e+08, 3.554883e-06, 4.355730e+09), 
162 5
      temp = 20)),      
163 5
      k_B = k_B,
164 5
      W = W,
165 5
      K = K,
166 5
      model = model
167
    ),
168

169 5
    Pagonis2008 = list(
170

171 5
      N = c(1.5e7, 1e7, 4e7, 2.5e8, 5e10, 5e9, 4e9, 3e8, 1e10, 1.2e12, 3e10),
172 5
      E = c(0.97, 1.55, 1.73, 1.8, 2.0, 1.65, 1.6, 1.43, 1.75, 5.0, 5.0),
173 5
      s = c(5.0e12, 5.0e14, 6.5e13, 1.5e13, 1.0e10, 6.5e13, 5.0e12, 5.0e13, 5.0e14, 1.0e13, 1.0e13),
174 5
      A = c(1e-08, 1e-08, 5e-09, 5e-10, 1e-10, 1e-11, 6e-12, 5e-07, 1e-09, 1e-14, 1e-10),
175 5
      B = c(0, 0, 0, 0, 0, 0, 0,5e-09, 5e-10, 3e-10, 1e-10),
176 5
      Th = c(0.75, 0.00, 6.00, 4.50, 0.00, 0.01, 0.00),
177 5
      E_th = c(0.10, 0.00, 0.10, 0.13, 0.00, 0.20, 0.00),
178 5
      n =  set_RLum(class = "RLum.Results", data = list(n = c(3.401581e-03, 5.718477e+04, 2.879822e+07, 1.235043e+08, 2.556071e+10, 3.881049e+06, 7.550608e+06, 1.734105e+08, 3.332680e+09, 1.294818e+08, 2.208893e+10, 6.329367e-08, 3.137732e-05),
179 5
      temp = 20)),
180 5
      k_B = k_B,
181 5
      W = W,
182 5
      K = K,
183 5
      model = model
184
    ),
185
    
186 5
    Friedrich2017 = list(
187
      
188 5
      N = c(1.5e7, 1e7, 1e9, 2.5e8, 5e10, 3e9, 1e10, 5e9, 1e11),
189 5
      E = c(0.97, 1.55, 1.7, 1.72, 1.95, 1.8, 1.75, 5, 5),
190 5
      s = c(5e12, 5e14, 5e13, 5e14, 1e10, 5e13, 5e14, 1e13, 1e13),
191 5
      A = c(1e-8, 1e-8, 1e-9, 5e-10, 1e-10, 5e-7, 1e-9, 1e-10, 1e-9),
192 5
      B = c(0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 1e-10),
193 5
      Th = c(0.75, 0, 6, 4.5, 0),
194 5
      E_th = c(0.1, 0, 0.1, 0.13, 0),
195 5
      n =  set_RLum(class = "RLum.Results", data = list(n = c(4.282981e-02, 2.165932e+06, 1.464513e+08, 1.898261e+07, 1.372718e+10, 2.215388e+09, 4.107361e+07, 6.146246e+07, 1.157685e+10, 4.006611e-07, 5.763883e-11),
196 5
           temp = 20)),
197 5
      k_B = k_B,
198 5
      K = K,
199 5
      W = W,
200 5
      model = model
201
    ),
202
    
203 5
    Friedrich2018 = list(
204
      
205 5
      N = c(1.5e7, 1e7, 1e9, 2.5e8, 5e10, 1e10, 1e10, 5e9, 1e11),
206 5
      E = c(0.97, 1.55, 1.7, 1.72, 1.95, 1.8, 1.75, 5, 5),
207 5
      s = c(5e12, 5e14, 5e13, 5e14, 1e10, 5e13, 5e14, 1e13, 1e13),
208 5
      A = c(1e-8, 1e-8, 1e-9, 5e-10, 1e-10, 5e-7, 1e-9, 1e-10, 1e-9),
209 5
      B = c(0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 5e-10),
210 5
      Th = c(0.75, 0, 6, 4.5, 0),
211 5
      E_th = c(0.1, 0, 0.1, 0.13, 0),
212 5
      n =  set_RLum(class = "RLum.Results", data = list(n = c(2.025417e-02, 1.048967e+06, 2.789634e+07, 3.508166e+06, 8.606323e+09, 5.796382e+09, 5.274192e+06, 1.648926e+07, 2.820631e+09, 9.047145e-08, 1.525008e-11),
213 5
                                                        temp = 20)),
214 5
      k_B = k_B,
215 5
      K = K,
216 5
      W = W,
217 5
      model = model
218
    ),
219
    
220
    
221 5
    customized = list(
222 5
      n =  set_RLum(class = "RLum.Results", data = list(n = rep(0,4),
223 5
                                                        temp = 20,
224 5
                                                        model = model)),
225 5
      k_B = k_B,
226 5
      W = W,
227 5
      K = K,
228 5
      model = model
229
    )
230
  )
231

232

233 5
  switch(model,
234
        "Bailey2001" = {
235 5
          return(parameter.list$Bailey2001)
236
        },
237
        
238
        "Bailey2002" = {
239 5
          return(parameter.list$Bailey2002)
240
        },
241

242
        "Bailey2004" = {
243 5
          return(parameter.list$Bailey2004)
244
        },
245

246
        "Pagonis2007" = {
247 5
          return(parameter.list$Pagonis2007)
248
        },
249

250
        "Pagonis2008" = {
251 5
          return(parameter.list$Pagonis2008)
252
        },
253
        
254
        "Friedrich2017" = {
255 5
          return(parameter.list$Friedrich2017)
256
        },
257
        
258
        "Friedrich2018" = {
259 5
          return(parameter.list$Friedrich2018)
260
        },
261
        
262
        "customized" = {
263 5
          return(parameter.list$customized)
264
        }
265
  )#end switch
266

267
}

Read our documentation on viewing source code .

Loading