rampedpyrox.Daem¶
-
class
rampedpyrox.
Daem
(E, log10omega, t, T)[source]¶ Class to calculate the DAEM model transform. Used for ramped-temperature kinetic problems such as Ramped PyrOx, pyGC, TGA, etc.
Parameters: - E (array-like) – Array of E values, in kJ/mol. Length nE.
- log10omega (scalar, array-like, or lambda function) – Arrhenius pre-exponential factor, either a constant value, array-like with length nE, or a lambda function of E (in kJ).
- t (array-like) – Array of time, in seconds. Length nt.
- T (array-like) – Array of temperature, in Kelvin. Length nt.
Warning
- UserWarning
- If attempting to use isothermal data to create a
Daem
model instance.
See also
RpoThermogram
rp.TimeData
subclass for storing and analyzing RPO time/temperature data.EnergyComplex
rp.RateData
subclass for storing and analyzing RPO rate data.
Examples
Creating a DAEM using manually-inputted E, omega, t, and T:
#import modules import numpy as np import rampedpyrox as rp #generate arbitrary data t = np.arange(1,100) #100 second experiment beta = 0.5 #K/second T = beta*t + 273.15 #K E = np.arange(50, 350) #kJ/mol log10omega = 10 #s-1 #create instance daem = rp.Daem(E, log10omega, t, T)
Creating a DAEM from real thermogram data using the
rp.Daem.from_timedata
class method:#import modules import rampedpyrox as rp #create thermogram instance tg = rp.RpoThermogram.from_csv('some_data_file.csv') #create Daem instance daem = rp.Daem.from_timedata( tg, E_max = 350, E_min = 50, nE = 250, log10omega = 10)
Creating a DAEM from an energy complex using the
rp.Daem.from_ratedata
class method:#import modules import rampedpyrox as rp #create energycomplex instance ec = rp.EnergyComplex(E, p0E) #create Daem instance daem = rp.Daem.from_ratedata( ec, beta = 0.08, log10omega = 10, nt = 250, t0 = 0, T0 = 373, tf = 1e4)
Plotting the L-curve of a Daem to find the best-fit lambda value:
#import modules import matplotlib.pyplot as plt #create figure fig, ax = plt.subplots(1,1) #plot L curve lam_best, ax = daem.calc_L_curve( tg, ax = None, plot = True, lam_min = 1e-3, lam_max = 1e2, nLam = 150)
Attributes
A : np.ndarray
- E : np.ndarray
- Array of E values, in kJ/mol. Length nE.
- nE : int
- Number of activation energy points.
- nt : int
- Number of timepoints.
- t : np.ndarray
- Array of timepoints, in seconds. Length nt.
- T : np.ndarray
- Array of temperature, in Kelvin. Length nt.
References
- [1] R.L Braun and A.K. Burnham (1987) Analysis of chemical reaction
- kinetics using a distribution of activation energies and simpler models. Energy & Fuels, 1, 153-161.
- [2] B. Cramer (2004) Methane generation from coal during open system
- pyrolysis investigated by isotope specific, Gaussian distributed reaction kinetics. Organic Geochemistry, 35, 279-392.
- [3] V. Dieckmann (2005) Modeling petroleum formation from heterogeneous
- source rocks: The influence of frequency factors on activation energy distribution and geological prediction. Marine and Petroleum Geology, 22, 375-390.
- [4] D.C. Forney and D.H. Rothman (2012) Common structure in the
- heterogeneity of plant-matter decay. Journal of the Royal Society Interface, rsif.2012.0122.
- [5] D.C. Forney and D.H. Rothman (2012) Inverse method for calculating
- respiration rates from decay time series. Biogeosciences, 9, 3601-3612.
- [6] P.C. Hansen (1994) Regularization tools: A Matlab package for analysis
- and solution of discrete ill-posed problems. Numerical Algorithms, 6, 1-35.
- [7] C.C. Lakshmananan et al. (1991) Implications of multiplicity in
- kinetic parameters to petroleum exploration: Distributed activation energy models. Energy & Fuels, 5, 110-117.
- [8] J.E. White et al. (2011) Biomass pyrolysis kinetics: A comparative
- critical review with relevant agricultural residue case studies. Journal of Analytical and Applied Pyrolysis, 91, 1-33.
Methods
calc_L_curve
(timedata[, ax, nLam, lam_max, …])Function to calculate the L-curve for a given model and timedata instance in order to choose the best-fit smoothing parameter, lambda. from_ratedata
(ratedata[, beta, log10omega, …])Class method to directly generate an rp.Daem
instance using data stored in anrp.RateData
instance.from_timedata
(timedata[, E_max, E_min, …])Class method to directly generate an rp.Daem
instance using data stored in anrp.TimeData
instance.