R/run_MC_TL_DELOC.R
run_MC_TL_DELOC.Rd
Runs a Monte-Carlo (MC) simulation of thermoluminescence (TL) using the one trap one recombination centre (OTOR) model. Delocalised refers to involvement of the conduction band. The heating rate in this function is assumed to be 1 K/s.
run_MC_TL_DELOC(
s,
E,
times,
b = 1,
clusters = 10,
N_e = 200,
n_filled = N_e,
R = 1,
method = "par",
output = "signal",
...
)
numeric (required): The frequency factor of the trap (s^-1)
numeric (required): Thermal activation energy of the trap (eV)
numeric (required): The sequence of temperature steps within the simulation (s).
The default heating rate is set to 1 K/s. The final temperature is max(times) * b
numeric (with default): the heating rate in K/s
numeric (with default): The number of created clusters for the MC runs. The input can be the output of create_ClusterSystem. In that case n_filled
indicate absolute numbers of a system.
integer (with default): The total number of electron traps available (dimensionless). Can be a vector of length(clusters)
, shorter values are recycled.
integer (with default): The number of filled electron traps at the beginning
of the simulation (dimensionless). Can be a vector of length(clusters)
, shorter values are recycled.
numeric (with default): Re-trapping ratio for delocalized transitions
character (with default): Sequential 'seq'
or parallel 'par'
processing. In
the parallel mode the function tries to run the simulation on multiple CPU cores (if available) with
a positive effect on the computation time.
character (with default): output is either the 'signal'
(the default) or
'remaining_e'
(the remaining charges/electrons in the trap)
further arguments, such as cores
to control the number of used CPU cores or verbose
to silence the terminal
This function returns an object of class RLumCarlo_Model_Output
which
is a list consisting of an array with dimension length(times) x clusters
and a numeric time vector.
The model
$$ I_{DELOC}(t) = -dn/dt = (s*exp(-E/(k_{B}*T))) * (n^2 / (N * R + n(1-R)))) $$
Where in the function:
E := the thermal activation energy (eV)
s := the frequency factor in (s^-1)
t := time (s)
\(k_{B}\) := Boltzmann constant (8.617 x 10^-5 eV K^-1)
T := temperature (°C)
R := Delocalised retrapping ratio
n := n_filled
, the instantaneous number of electrons
N := N_e
, the total number of electron traps available (dimensionless)
Why times
and b
instead of temperature?
The parameter to control the temperature is a function of the stimulation
times (the parameter times
) and the heating rate (b
). Thus, the final temperature
is max(times) * b
. For a heating rate (b = 1
) the final temperature is max(times)
.
While this might be a little bit confusing, it also allows you to control the
time resolution of the simulation, i.e. you can simulate more points per second.
0.1.0
Kreutzer, S., 2022. run_MC_TL_DELOC(): Run Monte-Carlo Simulation for TL (delocalized transitions). Function version 0.1.0. In: Friedrich, J., Kreutzer, S., Pagonis, V., Schmidt, C., 2022. RLumCarlo: Monte-Carlo Methods for Simulating Luminescence Phenomena. R package version 0.1.9. https://CRAN.R-project.org/package=RLumCarlo
Pagonis, V., Friedrich, J., Discher, M., Müller-Kirschbaum, A., Schlosser, V., Kreutzer, S., Chen, R. and Schmidt, C., 2019. Excited state luminescence signals from a random distribution of defects: A new Monte Carlo simulation approach for feldspar. Journal of Luminescence 207, 266–272. doi:10.1016/j.jlumin.2018.11.024
Further reading
Chen, R., McKeever, S.W.S., 1997. Theory of Thermoluminescence and Related Phenomena. WORLD SCIENTIFIC. doi:10.1142/2781
## the short example
run_MC_TL_DELOC(
s = 3.5e12,
E = 1.45,
R = 0.1,
method = 'seq',
clusters = 100,
times = 150:350) %>%
plot_RLumCarlo(legend = TRUE)
if (FALSE) {
## the long (meaningful) example
# define your parameters
times <- seq(100, 450, 1)
s <- rep(3.5e12, 4)
E <- rep(1.45, 4)
R <- c(0.7e-6, 1e-6, 0.01, 0.1)
clusters <- 300
N_e <- c(400, 500, 700, 400)
n_filled <- c(400, 500, 300, 70)
method <- "par"
output <- "signal"
col <- c(1, 2, 3, 4) # different colours for the individual curves
plot_uncertainty <- c(TRUE, TRUE, TRUE, TRUE) # do you want to see the uncertainty?
add_TF <- c(FALSE, rep(TRUE, (length(R) - 1)))
# loop to plot different curves into one plot
for (u in 1:length(R)){
results <- run_MC_TL_DELOC(
times=times,
s = s[u],
E = E[u],
clusters = clusters,
N_e = N_e[u],
n_filled = n_filled[u],
R = R[u],
method = method,
output = output)
plot_RLumCarlo(
results,
add = add_TF[u],
legend = FALSE,
col=col[u],
main = " your plot",
ylim=c(0,20))
}
#add your legend with your parameters
legend("topright",
ncol = 5,
cex = 0.55,
bty = "n",
title = "parameters",
legend = c(
paste0("E = ", E),
paste0("s = ", s),
paste0("n_filled = ", n_filled),
paste0("N_e = ", N_e), paste0("R = ", R)),
text.col = col)
}