@@ -9,37 +9,45 @@ export EmptyRateCoverageDependence
99getcovdepactivationbarriercorrection (covdep:: EmptyRateCoverageDependence ,T,coverages) = 0.0
1010getcovdepfactorcorrection (covdep:: EmptyRateCoverageDependence ,T,coverages) = 1.0
1111
12- export getcovdepactivationbarriercorrection
13- export getcovdepfactorcorrection
14-
1512"""
1613Polynomial rate coefficient coverage dependence
1714correction form is: 10^(sum(a_i*theta_k^i,i)) * theta_k^m * exp(sum(E_i*theta_k^i,i)/(RT))
1815dictionaries map the name of the species (k) to polynomials with ordering a_1 + a_2 * theta + a_3 * theta^2 etc.
1916Epolys corresponds to E_i (array of polynomial coefficients), avals corresponds to a_i (array of polynomial coefficients),
2017ms corresponds to m (float)
2118"""
22- @with_kw struct PolynomialRateCoverageDependence{N,K,L} <: AbstractRateCoverageDependence
23- avals:: Dict{String,L} = Dict ()
24- Epolys:: Dict{String,K} = Dict ()
25- ms:: Dict{String,L} = Dict ()
26- indavals:: Dict{N,L} = Dict ()
27- indEpolys:: Dict{N,K} = Dict ()
28- indms:: Dict{N,L} = Dict ()
19+ @with_kw struct PolynomialRateCoverageDependence <: AbstractRateCoverageDependence
20+ avals:: Dict{String,Vector{Float64}} = Dict {String,Vector{Float64}} ()
21+ Epolys:: Dict{String,Vector{Float64}} = Dict {String,Vector{Float64}} ()
22+ ms:: Dict{String,Vector{Float64}} = Dict {String,Float64} ()
23+ indavals:: Dict{Int64,Vector{Float64}} = Dict {Int64,Vector{Float64}} ()
24+ indEpolys:: Dict{Int64,Vector{Float64}} = Dict {Int64,Vector{Float64}} ()
25+ indms:: Dict{Int64,Vector{Float64}} = Dict {Int64,Float64} ()
26+ end
27+ @inline function PolynomialRateCoverageDependence (Epolys,ms= Dict {String,Float64} (),avals= Dict {String,Vector{Float64}} ())
28+ return PolynomialRateCoverageDependence (;Epolys= Epolys,
29+ ms= ms,avals= avals,indavals= Dict {Int64,Vector{Float64}} (),indEpolys= Dict {Int64,Vector{Float64}} (),
30+ indms= Dict {Int64,Float64} ())
2931end
3032@inline function getcovdepactivationbarriercorrection (covdep:: PolynomialRateCoverageDependence ,T,coverages)
31- if length (coverages) == 0
33+ if coverages === nothing
34+ return 0.0
35+ elseif length (coverages) == 0
3236 return zero (typeof (coverages). parameters[1 ])
3337 end
3438 E = 0.0
39+
3540 for (ind,Epoly) in covdep. indEpolys
36- E += evalpoly (coverages[ind],indEpoly )
41+ E += evalpoly (coverages[ind],Epoly )
3742 end
3843 return E
3944end
45+ export getcovdepactivationbarriercorrection
4046@inline function getcovdepfactorcorrection (covdep:: PolynomialRateCoverageDependence ,T,coverages)
41- if length (coverages) == 0
42- return zero (typeof (coverages). parameters[1 ])
47+ if coverages === nothing
48+ return 1.0
49+ elseif length (coverages) == 0
50+ return one (typeof (coverages). parameters[1 ])
4351 end
4452 av = 0.0
4553 for (ind,a) in covdep. indavals
5563 for (ind,m) in covdep. indms
5664 A *= coverages[ind]^ m
5765 end
58-
66+
5967 return A
6068end
61- export PolynomialRateCoverageDependence
69+ export PolynomialRateCoverageDependence
70+
71+ export getcovdepactivationbarriercorrection
72+ export getcovdepfactorcorrection
0 commit comments