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 6 ``` model.allowed_keywords <- c("Bailey2001", ``` 73 6 ``` "Bailey2004", ``` 74 6 ``` "Pagonis2008", ``` 75 6 ``` "Pagonis2007", ``` 76 6 ``` "Bailey2002", ``` 77 6 ``` "Friedrich2017", ``` 78 6 ``` "Friedrich2018", ``` 79 6 ``` "customized", ``` 80 6 ``` "customised") ``` 81 82 6 ``` 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 6 ``` k_B <- 8.617e-5 ``` 92 93 ``` # activiation Energy [eV] ``` 94 6 ``` W <- 0.64 ``` 95 96 ``` # dimensionless constant (for Details see Wintle (1975)) ``` 97 6 ``` K <- 2.8e7 ``` 98 99 6 ``` parameter.list = list( ``` 100 101 6 ``` Bailey2001 = list( ``` 102 103 6 ``` N = c(1.5e7, 1e7, 1e9, 2.5e8, 5e10, 3e8, 1e10, 5e9, 1e11), ``` 104 6 ``` E = c(0.97, 1.55, 1.7, 1.72, 2, 1.43, 1.75, 5, 5), ``` 105 6 ``` s = c(5e12, 5e14, 5e13, 5e14, 1e10, 5e13, 5e14, 1e13, 1e13), ``` 106 6 ``` A = c(1e-8, 1e-8, 1e-9, 5e-10, 1e-10, 5e-7, 1e-9, 1e-10, 1e-9), ``` 107 6 ``` B = c(0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 1e-10), ``` 108 6 ``` Th = c(0.75, 0, 6, 4.5, 0), ``` 109 6 ``` E_th = c(0.1, 0, 0.1, 0.13, 0), ``` 110 6 ``` 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 6 ``` temp = 20)), ``` 112 6 ``` k_B = k_B, ``` 113 6 ``` W = W, ``` 114 6 ``` K = K, ``` 115 6 ``` model = model ``` 116 ``` ), ``` 117 118 6 ``` Bailey2002 = list( ``` 119 120 6 ``` N = c(9e9, 1e9, 1.5e11, 5e10, 1e11, 1.5e11, 2e12, 5e12, 1.2e11, 1e12, 5e11, 1e13), ``` 121 6 ``` E = c(0.97, 1.55, 1.7, 1.72, 1.8, 1.65, 2.6, 2, 1.43, 1.75, 5, 5), ``` 122 6 ``` s = c(5e12, 5e14, 5e12, 5e13, 5e13, 5e13, 5e13, 1e10, 5e13, 5e14, 1e13, 1e13), ``` 123 6 ``` 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 6 ``` B = c(0, 0, 0, 0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 1e-10), ``` 125 6 ``` Th = c(1e-19, 0, 1e-16, 3e-17, 4e-18, 3e-19, 2e-21, 0), ``` 126 6 ``` E_th = c(0.1, 0, 0.1, 0.13, 0.2, 0.2, 0.2,0), ``` 127 6 ``` 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 6 ``` temp = 20)), ``` 129 6 ``` k_B = k_B, ``` 130 6 ``` W = W, ``` 131 6 ``` K = K, ``` 132 6 ``` model = model ``` 133 ``` ), ``` 134 135 6 ``` Bailey2004 = list( ``` 136 137 6 ``` 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 6 ``` E = c(0.97, 1.55, 1.7, 1.72, 1.8, 1.65, 2.6, 2, 1.75, 1.43, 5, 5), ``` 139 6 ``` s = c(5e12, 5e14, 5e12, 5e13, 5e13, 5e13, 5e13, 1e10, 5e14, 5e13, 1e13, 1e13), ``` 140 6 ``` 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 6 ``` B = c(0, 0, 0, 0, 0, 0, 0, 0, 5e-10, 5e-9, 1e-10, 1e-10), ``` 142 6 ``` Th = c(1e-19, 0, 1e-16, 3e-17, 4e-18, 3e-19, 2e-21, 0), ``` 143 6 ``` E_th = c(0.1, 0, 0.1, 0.13, 0.2, 0.2, 0.2, 0), ``` 144 6 ``` 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 6 ``` temp = 20)), ``` 146 6 ``` k_B = k_B, ``` 147 6 ``` W = W, ``` 148 6 ``` K = K, ``` 149 6 ``` model = model ``` 150 ``` ), ``` 151 152 6 ``` Pagonis2007 = list( ``` 153 154 6 ``` N = c(5.1e9, 1e7, 1e11, 2.5e8, 5e10, 3e8, 1e10, 5e9, 1e8), ``` 155 6 ``` E = c(0.97, 1.55, 1.73, 1.8, 2, 1.43, 1.75, 5, 5), ``` 156 6 ``` s = c(5e12, 5e14, 36e13, 1.5e13, 1e10, 5e13, 5e14, 1e13, 1e13), ``` 157 6 ``` A = c(1e-8, 1e-9, 0.5e-9, 5e-10, 1e-10, 5e-7, 1e-9, 1e-10, 1e-9), ``` 158 6 ``` B = c(0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 1e-10), ``` 159 6 ``` Th = c(0.75, 0, 6, 4.5, 0), ``` 160 6 ``` E_th = c(0.1, 0, 0.1, 0.13, 0), ``` 161 6 ``` 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 6 ``` temp = 20)), ``` 163 6 ``` k_B = k_B, ``` 164 6 ``` W = W, ``` 165 6 ``` K = K, ``` 166 6 ``` model = model ``` 167 ``` ), ``` 168 169 6 ``` Pagonis2008 = list( ``` 170 171 6 ``` N = c(1.5e7, 1e7, 4e7, 2.5e8, 5e10, 5e9, 4e9, 3e8, 1e10, 1.2e12, 3e10), ``` 172 6 ``` 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 6 ``` 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 6 ``` 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 6 ``` B = c(0, 0, 0, 0, 0, 0, 0,5e-09, 5e-10, 3e-10, 1e-10), ``` 176 6 ``` Th = c(0.75, 0.00, 6.00, 4.50, 0.00, 0.01, 0.00), ``` 177 6 ``` E_th = c(0.10, 0.00, 0.10, 0.13, 0.00, 0.20, 0.00), ``` 178 6 ``` 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 6 ``` temp = 20)), ``` 180 6 ``` k_B = k_B, ``` 181 6 ``` W = W, ``` 182 6 ``` K = K, ``` 183 6 ``` model = model ``` 184 ``` ), ``` 185 ``` ``` 186 6 ``` Friedrich2017 = list( ``` 187 ``` ``` 188 6 ``` N = c(1.5e7, 1e7, 1e9, 2.5e8, 5e10, 3e9, 1e10, 5e9, 1e11), ``` 189 6 ``` E = c(0.97, 1.55, 1.7, 1.72, 1.95, 1.8, 1.75, 5, 5), ``` 190 6 ``` s = c(5e12, 5e14, 5e13, 5e14, 1e10, 5e13, 5e14, 1e13, 1e13), ``` 191 6 ``` A = c(1e-8, 1e-8, 1e-9, 5e-10, 1e-10, 5e-7, 1e-9, 1e-10, 1e-9), ``` 192 6 ``` B = c(0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 1e-10), ``` 193 6 ``` Th = c(0.75, 0, 6, 4.5, 0), ``` 194 6 ``` E_th = c(0.1, 0, 0.1, 0.13, 0), ``` 195 6 ``` 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 6 ``` temp = 20)), ``` 197 6 ``` k_B = k_B, ``` 198 6 ``` K = K, ``` 199 6 ``` W = W, ``` 200 6 ``` model = model ``` 201 ``` ), ``` 202 ``` ``` 203 6 ``` Friedrich2018 = list( ``` 204 ``` ``` 205 6 ``` N = c(1.5e7, 1e7, 1e9, 2.5e8, 5e10, 1e10, 1e10, 5e9, 1e11), ``` 206 6 ``` E = c(0.97, 1.55, 1.7, 1.72, 1.95, 1.8, 1.75, 5, 5), ``` 207 6 ``` s = c(5e12, 5e14, 5e13, 5e14, 1e10, 5e13, 5e14, 1e13, 1e13), ``` 208 6 ``` A = c(1e-8, 1e-8, 1e-9, 5e-10, 1e-10, 5e-7, 1e-9, 1e-10, 1e-9), ``` 209 6 ``` B = c(0, 0, 0, 0, 0, 5e-9, 5e-10, 1e-10, 5e-10), ``` 210 6 ``` Th = c(0.75, 0, 6, 4.5, 0), ``` 211 6 ``` E_th = c(0.1, 0, 0.1, 0.13, 0), ``` 212 6 ``` 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 6 ``` temp = 20)), ``` 214 6 ``` k_B = k_B, ``` 215 6 ``` K = K, ``` 216 6 ``` W = W, ``` 217 6 ``` model = model ``` 218 ``` ), ``` 219 ``` ``` 220 ``` ``` 221 6 ``` customized = list( ``` 222 6 ``` n = set_RLum(class = "RLum.Results", data = list(n = rep(0,4), ``` 223 6 ``` temp = 20, ``` 224 6 ``` model = model)), ``` 225 6 ``` k_B = k_B, ``` 226 6 ``` W = W, ``` 227 6 ``` K = K, ``` 228 6 ``` model = model ``` 229 ``` ) ``` 230 ``` ) ``` 231 232 233 6 ``` switch(model, ``` 234 ``` "Bailey2001" = { ``` 235 6 ``` return(parameter.list\$Bailey2001) ``` 236 ``` }, ``` 237 ``` ``` 238 ``` "Bailey2002" = { ``` 239 6 ``` return(parameter.list\$Bailey2002) ``` 240 ``` }, ``` 241 242 ``` "Bailey2004" = { ``` 243 6 ``` return(parameter.list\$Bailey2004) ``` 244 ``` }, ``` 245 246 ``` "Pagonis2007" = { ``` 247 6 ``` return(parameter.list\$Pagonis2007) ``` 248 ``` }, ``` 249 250 ``` "Pagonis2008" = { ``` 251 6 ``` return(parameter.list\$Pagonis2008) ``` 252 ``` }, ``` 253 ``` ``` 254 ``` "Friedrich2017" = { ``` 255 6 ``` return(parameter.list\$Friedrich2017) ``` 256 ``` }, ``` 257 ``` ``` 258 ``` "Friedrich2018" = { ``` 259 6 ``` return(parameter.list\$Friedrich2018) ``` 260 ``` }, ``` 261 ``` ``` 262 ``` "customized" = { ``` 263 6 ``` return(parameter.list\$customized) ``` 264 ``` } ``` 265 ``` )#end switch ``` 266 267 ```} ```

Read our documentation on viewing source code .