Kinetic model functions¶
Model functions are vectorised callables: f(T, Im, E, Tm, ...) -> ndarray.
Obtain any model at runtime with tl.get_model("fo_rq").
First-order (FO)¶
tldecpy.models.fo.fo_rq ¶
Evaluate first-order model fo_rq using Bos polynomial-rational :math:xQ(x).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ArrayLike
|
Temperature values in kelvin. |
required |
Im
|
float
|
Peak intensity at :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature in kelvin. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
References
.. [1] Bos, A. J. J., et al. (1993). Intercomparison synthetic glow curves (GLOCANIN). .. [2] Kitis, G., Gomes-Ros, J. M., and Tuyn, J. W. N. (1998). Thermoluminescence glow-curve deconvolution functions for first, second and general orders of kinetics.
Source code in tldecpy/models/fo.py
tldecpy.models.fo.fo_rb ¶
Evaluate first-order model fo_rb using AAA approximation for :math:Q(x).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ArrayLike
|
Temperature values in kelvin. |
required |
Im
|
float
|
Peak intensity at :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature in kelvin. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
Source code in tldecpy/models/fo.py
tldecpy.models.fo.fo_ka ¶
Evaluate first-order variant fo_ka (approximate closed form).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ArrayLike
|
Temperature values in kelvin. |
required |
Im
|
float
|
Peak intensity at :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature in kelvin. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
Source code in tldecpy/models/fo.py
tldecpy.models.fo.fo_wp ¶
Evaluate first-order variant fo_wp (Weibull approximation).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ArrayLike
|
Temperature values in kelvin. |
required |
Im
|
float
|
Peak intensity at :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature in kelvin. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
Source code in tldecpy/models/fo.py
Second-order (SO)¶
tldecpy.models.so.so_ks ¶
Evaluate the Kitis-standard second-order expression.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ndarray
|
Temperature grid :math: |
required |
Im
|
float
|
Peak intensity :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature :math: |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
References
.. [1] Kitis, G., Gomes-Ros, J. M., and Tuyn, J. W. N. (1998). Thermoluminescence glow-curve deconvolution functions for first, second and general orders of kinetics.
Source code in tldecpy/models/so.py
tldecpy.models.so.so_la ¶
Evaluate the logistic-asymmetric second-order approximation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ndarray
|
Temperature grid :math: |
required |
Im
|
float
|
Peak intensity :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature :math: |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
References
.. [1] Pagonis, V., and Kitis, G. (2001). Fit of second-order thermoluminescence glow peaks using the logistic distribution function.
Source code in tldecpy/models/so.py
General-order (GO)¶
tldecpy.models.go.go_kg ¶
Evaluate the Kitis-general expression for general-order TL kinetics.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ndarray
|
Temperature grid :math: |
required |
Im
|
float
|
Peak intensity :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature :math: |
required |
b
|
float
|
Kinetic order parameter. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
References
.. [1] Kitis, G., Gomes-Ros, J. M., and Tuyn, J. W. N. (1998). Thermoluminescence glow-curve deconvolution functions for first, second and general orders of kinetics.
Source code in tldecpy/models/go.py
tldecpy.models.go.go_rq ¶
Evaluate the rational-quadratic approximation for general-order TL kinetics.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ndarray
|
Temperature grid :math: |
required |
Im
|
float
|
Peak intensity :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature :math: |
required |
b
|
float
|
Kinetic order parameter. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
References
.. [1] Gomez-Ros, J. M., and Kitis, G. (2002). Computerised glow-curve deconvolution using general and mixed-order kinetics.
Source code in tldecpy/models/go.py
tldecpy.models.go.go_ge ¶
Evaluate the exponentialized approximation for general-order TL kinetics.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ndarray
|
Temperature grid :math: |
required |
Im
|
float
|
Peak intensity :math: |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature :math: |
required |
b
|
float
|
Kinetic order parameter. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
References
.. [1] Gomez-Ros, J. M., and Kitis, G. (2002). Computerised glow-curve deconvolution using general and mixed-order kinetics.
Source code in tldecpy/models/go.py
Mixed-order (MO)¶
tldecpy.models.mixed.mo_kitis ¶
Mixed-order expression after Kitis and Gomez-Ros (2000).
Source code in tldecpy/models/mixed.py
tldecpy.models.mixed.mo_quad ¶
Quadratic mixed-order approximation after Gomez-Ros and Kitis (2002). Corrected with auto-normalization to ensure peak height = Im.
Source code in tldecpy/models/mixed.py
tldecpy.models.mixed.mo_vej ¶
Mixed-order expression by Vejnovic et al. (2008).
Notes
This implementation follows the four-parameter fitting form shown as Eq. (20) in Vejnovic et al., Radiation Measurements 43 (2008) 1325-1330, using:
- :math:
l = 2/(2-\alpha)(Eq. 21) - :math:
\sigma = T - T_m - :math:
\Delta = 2kT/E
Source code in tldecpy/models/mixed.py
OTOR¶
tldecpy.models.otor_lw.otor_lw ¶
OTOR model using the Lambert W semi-analytical solution.
Implements the One Trap One Recombination center (OTOR) kinetics using
the analytical Lambert W expressions derived by Kitis & Vlachos (2013)
and refined by Sadek et al. (2015). The peak maximum is forced to occur
at :math:T_m via empirical correction factors applied to the frequency
factor :math:s.
Two branches are handled automatically:
- :math:
R < 1branch — principal Lambert W function :math:W_0. - :math:
R > 1branch — branch :math:W_{-1}.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ndarray
|
Temperature array in kelvin (1-D, float64). Values below 1e-12 K are clamped to prevent division by zero. |
required |
Im
|
float
|
Peak maximum intensity :math: |
required |
E
|
float
|
Trap activation energy :math: |
required |
Tm
|
float
|
Temperature at peak maximum :math: |
required |
R
|
float
|
Retrapping ratio :math:
.. warning::
A numerical singularity exists near :math: |
required |
beta
|
float
|
Heating rate :math: |
1.0
|
Returns:
| Type | Description |
|---|---|
ndarray
|
TL intensity array :math: |
Notes
The intensity is computed as:
.. math::
I(T) = I_m \,
\exp\!\left[-\frac{E}{kT}\cdot\frac{T_m-T}{T_m}\right]
\frac{W(T_m) + W(T_m)^2}{W(T) + W(T)^2}
where :math:W(T) is the Lambert W function evaluated at a
temperature-dependent argument derived from the OTOR rate equations.
Examples:
>>> import numpy as np
>>> import tldecpy as tl
>>> T = np.linspace(350.0, 600.0, 300)
>>> I = tl.get_model("otor_lw")(T, Im=1000.0, E=1.3, Tm=460.0, R=0.15)
>>> print(f"Peak at T={T[I.argmax()]:.1f} K, I_max={I.max():.1f}")
References
.. [1] Kitis, G., and Vlachos, N. D. (2013). General semi-analytical expressions for TL, OSL and other luminescence stimulation modes derived from the OTOR model using the Lambert-W function. Radiat. Meas. 48, 47. .. [2] Sadek, A. M., et al. (2015). Characterization of the one trap one recombination (OTOR) level model using the Lambert-W function. Appl. Radiat. Isot. 95, 214.
Source code in tldecpy/models/otor_lw.py
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | |
tldecpy.models.otor_wo.otor_wo ¶
Evaluate OTOR intensity using Wright Omega representation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ndarray
|
Temperature grid in kelvin. |
required |
Im
|
float
|
Peak intensity. |
required |
E
|
float
|
Activation energy in eV. |
required |
Tm
|
float
|
Peak temperature in kelvin. |
required |
R
|
float
|
Retrapping ratio :math: |
required |
beta
|
float
|
Heating rate (kept for API compatibility). |
1.0
|
Returns:
| Type | Description |
|---|---|
ndarray
|
Intensity values :math: |
Source code in tldecpy/models/otor_wo.py
Continuous trap distributions¶
tldecpy.models.continuous.continuous_gaussian ¶
continuous_gaussian(T, Tn=None, In=None, E0=None, sigma=0.05, *, Im=None, E=None, Tm=None, n_energy=801, k=KB_EV)
Evaluate TL intensity for a Gaussian continuous trap-energy distribution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ArrayLike
|
Temperature grid :math: |
required |
Tn
|
float | None
|
Characteristic temperature :math: |
None
|
In
|
float | None
|
Characteristic intensity :math: |
None
|
E0
|
float | None
|
Characteristic activation energy :math: |
None
|
sigma
|
float
|
Standard deviation of the Gaussian energy distribution (eV). |
0.05
|
Im
|
float | None
|
Legacy aliases mapped internally to |
None
|
E
|
float | None
|
Legacy aliases mapped internally to |
None
|
Tm
|
float | None
|
Legacy aliases mapped internally to |
None
|
n_energy
|
int
|
Number of quadrature nodes for the energy integral. |
801
|
k
|
float
|
Boltzmann constant in eV/K. |
KB_EV
|
Returns:
| Type | Description |
|---|---|
ndarray
|
Simulated TL intensity evaluated at each value of |
Source code in tldecpy/models/continuous.py
tldecpy.models.continuous.continuous_exponential ¶
continuous_exponential(T, Tn=None, In=None, E0=None, sigma=0.05, *, Im=None, E=None, Tm=None, n_energy=801, k=KB_EV)
Evaluate TL intensity for an Exponential continuous trap-energy distribution.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
T
|
ArrayLike
|
Temperature grid :math: |
required |
Tn
|
float | None
|
Characteristic temperature :math: |
None
|
In
|
float | None
|
Characteristic intensity :math: |
None
|
E0
|
float | None
|
Characteristic activation energy :math: |
None
|
sigma
|
float
|
Characteristic width of the exponential tail (eV). |
0.05
|
Im
|
float | None
|
Legacy aliases mapped internally to |
None
|
E
|
float | None
|
Legacy aliases mapped internally to |
None
|
Tm
|
float | None
|
Legacy aliases mapped internally to |
None
|
n_energy
|
int
|
Number of quadrature nodes for the energy integral. |
801
|
k
|
float
|
Boltzmann constant in eV/K. |
KB_EV
|
Returns:
| Type | Description |
|---|---|
ndarray
|
Simulated TL intensity evaluated at each value of |
Source code in tldecpy/models/continuous.py
Registry utilities¶
tldecpy.models.registry.get_model ¶
Resolve and return a callable model implementation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Canonical key, alias, or family key. |
required |
Returns:
| Type | Description |
|---|---|
Callable
|
Numerical model function that maps TL parameters to intensity. |
Source code in tldecpy/models/registry.py
tldecpy.models.registry.list_models ¶
List available model keys for TL kinetic families.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
order
|
str | None
|
Optional family filter ( |
None
|
include_aliases
|
bool
|
When |
False
|
Returns:
| Type | Description |
|---|---|
list[str]
|
Canonical model keys (and optional aliases). |
Source code in tldecpy/models/registry.py
tldecpy.models.registry.get_model_info ¶
Return metadata for a canonical model key, alias, or family key.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Canonical key, alias, or family key (for example |
required |
Returns:
| Type | Description |
|---|---|
ModelInfo
|
Rich model metadata, including callable and display fields. |
Source code in tldecpy/models/registry.py
tldecpy.models.registry.ModelInfo
dataclass
¶
Metadata and callable for one model variant.