@@ -1572,6 +1572,98 @@ end
1572
1572
krevs = getkfkrevs (d. phase,d. T,P,C,N,ns,Gs,d. diffusivity,d. A,d. phi;kfs= kfs)[2 ]
1573
1573
return ns,cs,d. T,P,d. A,C,N,d. mu,kfs,krevs,Array {Float64,1} (),Array {Float64,1} (),Gs,Array {Float64,1} (),0.0 ,Array {Float64,1} (),d. phi
1574
1574
end
1575
+
1576
+ function calcthermo (d:: FragmentBasedConstantTrhoDomain{W,Y} ,y:: J ,t:: Q ,p:: Q2 = SciMLBase. NullParameters ()) where {Q2<: SciMLBase.NullParameters ,W<: FragmentBasedIdealFilm ,Y<: Integer ,J<: AbstractArray ,Q}
1577
+ ns = y[d. indexes[1 ]: d. indexes[2 ]]
1578
+ N = sum (ns)
1579
+ mass = y[d. indexes[3 ]]
1580
+ V = mass/ d. rho
1581
+ cs = ns./ V
1582
+ C = N/ V
1583
+ P = 1.0e8
1584
+ return ns,cs,d. T,P,V,C,N,d. mu,d. kfs,d. krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1585
+ end
1586
+
1587
+ function calcthermo (d:: FragmentBasedConstantTrhoDomain{W,Y} ,y:: J ,t:: Q ,p:: Q2 = SciMLBase. NullParameters ()) where {Q2<: Array{Float64,1} ,W<: FragmentBasedIdealFilm ,Y<: Integer ,J<: Array{Float64,1} ,Q}
1588
+ ns = y[d. indexes[1 ]: d. indexes[2 ]]
1589
+ N = sum (ns)
1590
+ mass = y[d. indexes[3 ]]
1591
+ V = mass/ d. rho
1592
+ cs = ns./ V
1593
+ C = N/ V
1594
+ P = 1.0e8
1595
+ if ! d. alternativepformat
1596
+ @views nothermochg = d. Gs == p[d. parameterindexes[1 ]- 1 + 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)]
1597
+ @views nokfchg = d. kfsnondiff == p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)]
1598
+ if nothermochg && nokfchg
1599
+ return ns,cs,d. T,P,V,C,N,d. mu,d. kfs,d. krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1600
+ elseif nothermochg
1601
+ d. kfsnondiff = p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)]
1602
+ d. kfs,d. krevs = getkfkrevs (d. phase,d. T,P,C,N,ns,d. Gs,d. diffusivity,V,0.0 ;kfs= d. kfsnondiff)
1603
+ return ns,cs,d. T,P,V,C,N,d. mu,d. kfs,d. krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1604
+ else
1605
+ d. kfsnondiff = p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)]
1606
+ d. Gs = p[d. parameterindexes[1 ]- 1 + 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)]
1607
+ d. kfs,d. krevs = getkfkrevs (d. phase,d. T,P,C,N,ns,d. Gs,d. diffusivity,V,0.0 ;kfs= d. kfsnondiff)
1608
+ return ns,cs,d. T,P,V,C,N,d. mu,d. kfs,d. krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1609
+ end
1610
+ else
1611
+ @views nothermochg = d. Gs == d. p[1 : length (d. phase. species)]. + p[d. parameterindexes[1 ]- 1 + 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)]
1612
+ @views nokfchg = d. kfsnondiff == d. p[length (d. phase. species)+ 1 : length (d. phase. species)+ length (d. phase. reactions)]. * p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)]
1613
+ if nothermochg && nokfchg
1614
+ return ns,cs,d. T,P,V,C,N,d. mu,d. kfs,d. krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1615
+ elseif nothermochg
1616
+ d. kfsnondiff .= d. p[length (d. phase. species)+ 1 : length (d. phase. species)+ length (d. phase. reactions)]. * p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)]
1617
+ d. kfs,d. krevs = getkfkrevs (d. phase,d. T,P,C,N,ns,d. Gs,d. diffusivity,V,0.0 ;kfs= d. kfsnondiff)
1618
+ return ns,cs,d. T,P,V,C,N,d. mu,d. kfs,d. krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1619
+ else
1620
+ d. kfsnondiff .= d. p[length (d. phase. species)+ 1 : length (d. phase. species)+ length (d. phase. reactions)]. * p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)]
1621
+ d. Gs .= d. p[1 : length (d. phase. species)]. + p[d. parameterindexes[1 ]- 1 + 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)]
1622
+ d. kfs,d. krevs = getkfkrevs (d. phase,d. T,P,C,N,ns,d. Gs,d. diffusivity,V,0.0 ;kfs= d. kfsnondiff)
1623
+ return ns,cs,d. T,P,V,C,N,d. mu,d. kfs,d. krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1624
+ end
1625
+ end
1626
+
1627
+ end
1628
+
1629
+ function calcthermo (d:: FragmentBasedConstantTrhoDomain{W,Y} ,y:: Array{W2,1} ,t:: Q ,p:: Q2 = SciMLBase. NullParameters ()) where {W2<: ForwardDiff.Dual ,Q2,W<: FragmentBasedIdealFilm ,Y<: Integer ,J<: AbstractArray ,Q} # autodiff y
1630
+ ns = y[d. indexes[1 ]: d. indexes[2 ]]
1631
+ N = sum (ns)
1632
+ mass = y[d. indexes[3 ]]
1633
+ V = mass/ d. rho
1634
+ cs = ns./ V
1635
+ C = N/ V
1636
+ P = 1.0e8
1637
+ if ! d. alternativepformat
1638
+ Gs = p[d. parameterindexes[1 ]- 1 + 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)]
1639
+ kfsnondiff = convert (typeof (y),p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)])
1640
+ else
1641
+ Gs = d. p[1 : length (d. phase. species)]. + p[d. parameterindexes[1 ]- 1 + 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)]
1642
+ kfsnondiff = convert (typeof (y),d. p[length (d. phase. species)+ 1 : end ]. * p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)])
1643
+ end
1644
+ kfs,krevs = getkfkrevs (d. phase,d. T,P,C,N,ns,Gs,d. diffusivity,V,0.0 ;kfs= kfsnondiff)
1645
+ return ns,cs,d. T,P,V,C,N,d. mu,kfs,krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1646
+ end
1647
+
1648
+ function calcthermo (d:: FragmentBasedConstantTrhoDomain{W,Y} ,y:: J ,t:: Q ,p:: Q2 = SciMLBase. NullParameters ()) where {Q2,W<: FragmentBasedIdealFilm ,Y<: Integer ,J<: AbstractArray ,Q} # autodiff p
1649
+ ns = y[d. indexes[1 ]: d. indexes[2 ]]
1650
+ N = sum (ns)
1651
+ mass = y[d. indexes[3 ]]
1652
+ V = mass/ d. rho
1653
+ cs = ns./ V
1654
+ C = N/ V
1655
+ P = 1.0e8
1656
+ if ! d. alternativepformat
1657
+ Gs = p[d. parameterindexes[1 ]- 1 + 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)]
1658
+ kfsnondiff = p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)]
1659
+ else
1660
+ Gs = d. p[1 : length (d. phase. species)]. + p[d. parameterindexes[1 ]- 1 + 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)]
1661
+ kfsnondiff = d. p[length (d. phase. species)+ 1 : end ]. * p[d. parameterindexes[1 ]- 1 + length (d. phase. species)+ 1 : d. parameterindexes[1 ]- 1 + length (d. phase. species)+ length (d. phase. reactions)]
1662
+ end
1663
+ kfs,krevs = getkfkrevs (d. phase,d. T,P,C,N,ns,Gs,d. diffusivity,V,0.0 ;kfs= kfsnondiff)
1664
+ return ns,cs,d. T,P,V,C,N,d. mu,kfs,krevs,Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),Array {Float64,1} (),0.0 ,Array {Float64,1} (),0.0
1665
+ end
1666
+
1575
1667
export calcthermo
1576
1668
1577
1669
@inline function calcdomainderivatives! (d:: Q ,dydt:: Z7 ,interfaces:: Z12 ;t:: Z10 ,T:: Z4 ,P:: Z9 ,Us:: Array{Z,1} ,Hs:: Array{Z11,1} ,V:: Z2 ,C:: Z3 ,ns:: Z5 ,N:: Z6 ,Cvave:: Z8 ) where {Q<: AbstractDomain ,Z12,Z11,Z10,Z9,Z8<: Real ,Z7,W<: IdealGas ,Y<: Integer ,Z6,Z,Z2,Z3,Z4,Z5}
0 commit comments