modArrhenius¶
- Stoner.analysis.fitting.models.thermal.modArrhenius(x, A, DE, n)[source]¶
Arrhenius Equation with a variable T power dependent prefactor.
- Parameters:
x (array) – temperatyre data in K
A (float) – Prefactor - temperature independent. See :py:func:modArrhenius for temperaure dependent version.
DE (float) – Energy barrier in eV.
n (float) – The exponent of the temperature pre-factor of the model
- Returns:
Typically a rate corresponding to the given temperature values.
The modified Arrhenius function is defined as \(\tau=Ax^n\exp\left(\frac{-\Delta E}{k_B x}\right)\) where \(k_B\) is Boltzmann’s constant.
Example
"""Example of nDimArrhenius Fit.""" from numpy import linspace from numpy.random import normal from Stoner import Data from Stoner.analysis.fitting.models.thermal import modArrhenius, ModArrhenius # Make some data T = linspace(200, 350, 101) R = modArrhenius(T, 1e6, 0.5, 1.5) * normal(scale=0.00005, loc=1.0, size=len(T)) d = Data(T, R, setas="xy", column_headers=["T", "Rate"]) # Curve_fit on its own d.curve_fit(modArrhenius, p0=[1e6, 0.5, 1.5], result=True, header="curve_fit") d.setas = "xyy" d.plot(fmt=["r.", "b-"]) d.annotate_fit(modArrhenius, x=0.2, y=0.5, mode="eng") # lmfit using lmfit guesses fit = ModArrhenius() p0 = [1e6, 0.5, 1.5] d.lmfit(fit, result=True, header="lmfit") d.setas = "x..y" d.plot() d.annotate_fit(ModArrhenius, x=0.2, y=0.25, prefix="ModArrhenius", mode="eng") d.title = "Modified Arrhenius Test Fit" d.ylabel = "Rate" d.xlabel = "Temperature (K)"