Skip to content

Commit f1fc7fb

Browse files
hwpangmjohnson541
authored andcommitted
Add mass to thermo state variable list
1 parent f6027ad commit f1fc7fb

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/Simulation.jl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -461,11 +461,11 @@ based alternative algorithm is slower, but avoids this concern.
461461
"""
462462
function getadjointsensitivities(bsol::Q,target::String,solver::W;sensalg::W2=InterpolatingAdjoint(autojacvec=ReverseDiffVJP(false)),
463463
abstol::Float64=1e-6,reltol::Float64=1e-3,normalize=true,kwargs...) where {Q,W,W2}
464-
@assert target in bsol.names || target in ["T","V","P"]
464+
@assert target in bsol.names || target in ["T","V","P","mass"]
465465

466466
pethane = 160
467467

468-
if target in ["T","V","P"]
468+
if target in ["T","V","P","mass"]
469469
if haskey(bsol.domain.thermovariabledict, target)
470470
ind = bsol.domain.thermovariabledict[target]
471471
else
@@ -537,23 +537,23 @@ function getadjointsensitivities(bsol::Q,target::String,solver::W;sensalg::W2=In
537537
dgdprevdiff(out, y, p, t) = ReverseDiff.gradient!(out, p -> g(y, p, t), p)
538538

539539
if length(bsol.domain.p)<= pethane
540-
if target in ["T","V","P"] || !isempty(bsol.interfaces)
540+
if target in ["T","V","P","mass"] || !isempty(bsol.interfaces)
541541
du0,dpadj = adjoint_sensitivities(bsol.sol,solver,g,nothing,(dgdu,dgdp);sensealg=sensalg,abstol=abstol,reltol=reltol,kwargs...)
542542
else
543543
du0,dpadj = adjoint_sensitivities(bsol.sol,solver,sensg,nothing,(dsensgdu,dsensgdp);sensealg=sensalg,abstol=abstol,reltol=reltol,kwargs...)
544544
end
545545
else
546-
if target in ["T","V","P"] || !isempty(bsol.interfaces)
546+
if target in ["T","V","P","mass"] || !isempty(bsol.interfaces)
547547
du0,dpadj = adjoint_sensitivities(bsol.sol,solver,g,nothing,(dgdurevdiff,dgdprevdiff);sensealg=sensalg,abstol=abstol,reltol=reltol,kwargs...)
548548
else
549549
du0,dpadj = adjoint_sensitivities(bsol.sol,solver,sensg,nothing,(dsensgdurevdiff,dsensgdprevdiff);sensealg=sensalg,abstol=abstol,reltol=reltol,kwargs...)
550550
end
551551
end
552552
if normalize
553553
dpadj[length(bsol.domain.phase.species)+1:end] .*= bsol.domain.p[length(bsol.domain.phase.species)+1:end]
554-
if !(target in ["T","V","P"]) && isempty(bsol.interfaces)
554+
if !(target in ["T","V","P","mass"]) && isempty(bsol.interfaces)
555555
dpadj ./= bsol.sol(bsol.sol.t[end])[senstooriginspcind[ind]]
556-
elseif !(target in ["T","V","P"]) && !isempty(bsol.interfaces)
556+
elseif !(target in ["T","V","P","mass"]) && !isempty(bsol.interfaces)
557557
dpadj ./= bsol.sol(bsol.sol.t[end])[ind]
558558
end
559559
end
@@ -562,8 +562,8 @@ end
562562

563563
function getadjointsensitivities(syssim::Q,bsol::W3,target::String,solver::W;sensalg::W2=InterpolatingAdjoint(autojacvec=ReverseDiffVJP(false)),
564564
abstol::Float64=1e-6,reltol::Float64=1e-3,normalize=true,kwargs...) where {Q,W,W2,W3}
565-
@assert target in bsol.names || target in ["T","V","P"]
566-
if target in ["T","V","P"]
565+
@assert target in bsol.names || target in ["T","V","P","mass"]
566+
if target in ["T","V","P","mass"]
567567
if haskey(bsol.domain.thermovariabledict, target)
568568
ind = bsol.domain.thermovariabledict[target]
569569
else
@@ -596,7 +596,7 @@ function getadjointsensitivities(syssim::Q,bsol::W3,target::String,solver::W;sen
596596
for domain in domains
597597
dpadj[domain.parameterindexes[1]+length(domain.phase.species):domain.parameterindexes[2]] .*= syssim.p[domain.parameterindexes[1]+length(domain.phase.species):domain.parameterindexes[2]]
598598
end
599-
if !(target in ["T","V","P"])
599+
if !(target in ["T","V","P","mass"])
600600
dpadj ./= bsol.sol(bsol.sol.t[end])[ind]
601601
end
602602
end

0 commit comments

Comments
 (0)