Skip to content

Commit e9d7201

Browse files
hwpangmjohnson541
authored andcommitted
Calculate fragment based rxn contirbution
1 parent 27e785c commit e9d7201

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

src/Reactor.jl

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,53 @@ export getrates
489489
end
490490
end
491491

492+
function addreactionratecontributions!(dydt::Q,fragmentbasedrxnarray::Array{Int64,2},rxnarray::Array{Int64,2},cs::W,kfs::Z,krevs::Y,V::Q1,massindex::Int64,Mws::Array{Float64,1},fragmentindexes::Q2) where {Q,Z,Y,T,W,W2,Q1,Q2}
493+
numfragmentbasedreacprod, numrxns = size(fragmentbasedrxnarray)
494+
half = Int(numfragmentbasedreacprod/2)
495+
for i = 1:numrxns
496+
497+
fR = 0
498+
if rxnarray[1,i] != 0
499+
fR = kfs[i]*cs[rxnarray[1,i]]
500+
for j = 2:4
501+
if rxnarray[j,i] != 0
502+
@fastmath fR *= cs[rxnarray[j,i]]
503+
end
504+
end
505+
end
506+
507+
rR = 0
508+
if rxnarray[5,i] !=0
509+
rR = krevs[i]*cs[rxnarray[5,i]]
510+
for j = 6:8
511+
if rxnarray[j,i] != 0
512+
@fastmath rR *= cs[rxnarray[j,i]]
513+
end
514+
end
515+
end
516+
517+
@fastmath R = (fR - rR)*V
518+
519+
for j = 1:half
520+
if fragmentbasedrxnarray[j,i] != 0
521+
@fastmath dydt[fragmentbasedrxnarray[j,i]] -= R
522+
if !(fragmentbasedrxnarray[j,i] in fragmentindexes)
523+
dydt[massindex] += R * Mws[fragmentbasedrxnarray[j,i]]
524+
end
525+
end
526+
end
527+
528+
for j = half+1:numfragmentbasedreacprod
529+
if fragmentbasedrxnarray[j,i] != 0
530+
@fastmath dydt[fragmentbasedrxnarray[j,i]] += R
531+
if !(fragmentbasedrxnarray[j,i] in fragmentindexes)
532+
dydt[massindex] -= R * Mws[fragmentbasedrxnarray[j,i]]
533+
end
534+
end
535+
end
536+
end
537+
end
538+
492539
@inline function addreactionratecontributions!(dydt::Q,rarray::Array{W2,2},cs::W,kfs::Z,krevs::Y,V) where {Q,Z,Y,T,W,W2}
493540
@inbounds @simd for i = 1:size(rarray)[2]
494541
if @inbounds rarray[2,i] == 0

0 commit comments

Comments
 (0)