@@ -171,9 +171,9 @@ export getadjointsensitivities
171171function getconcentrationsensitivity (bsol:: Simulation{Q,W,L,G} , numerator:: String , denominator:: String , t:: K ) where {W<: Union{ConstantVDomain,ConstantTVDomain,ParametrizedTConstantVDomain} ,K<: Real ,Q,G,L}
172172 @assert numerator in bsol. names
173173 @assert denominator in bsol. names
174- indnum = findfirst (isequal (numerator),bsol. names)
175- inddeno = findfirst (isequal (denominator),bsol. names)
176- Nvars = bsol. domain. indexes[ end ] - bsol. domain. indexes[ 1 ] + 1
174+ indnum = findfirst (isequal (numerator),bsol. names)+ bsol . domain . indexes[ 1 ] - 1
175+ inddeno = findfirst (isequal (denominator),bsol. names)+ bsol . domain . parameterindexes[ 1 ] - 1
176+ Nvars = length ( bsol. domain. phase . species) + length ( bsol. domain. indexes) - 2
177177 Nrxns = length (bsol. domain. phase. reactions)
178178 x,dp = extract_local_sensitivities (bsol. sol,t)
179179 s = dp[inddeno][indnum]
@@ -188,12 +188,12 @@ end
188188function getconcentrationsensitivity (bsol:: Simulation{Q,W,L,G} , numerator:: String , denominator:: String , t:: K ) where {W<: Union{ConstantTPDomain,ParametrizedTPDomain,ConstantPDomain,ParametrizedPDomain,ParametrizedVDomain} ,K<: Real ,Q,G,L}
189189 @assert numerator in bsol. names
190190 @assert denominator in bsol. names
191- indnum = findfirst (isequal (numerator),bsol. names)
192- inddeno = findfirst (isequal (denominator),bsol. names)
193- Nvars = bsol. domain. indexes[ end ] - bsol. domain. indexes[ 1 ] + 1
191+ indnum = findfirst (isequal (numerator),bsol. names)+ bsol . domain . indexes[ 1 ] - 1
192+ inddeno = findfirst (isequal (denominator),bsol. names)+ bsol . domain . parameterindexes[ 1 ] - 1
193+ Nvars = length ( bsol. domain. phase . species) + length ( bsol. domain. indexes) - 2
194194 Nrxns = length (bsol. domain. phase. reactions)
195195 x,dp = extract_local_sensitivities (bsol. sol,t)
196- svals = dp[inddeno]
196+ svals = dp[inddeno][bsol . domain . indexes[ 1 ] : bsol . domain . indexes[ 2 ]]
197197 s = svals[indnum]
198198 V = getV (bsol,t)
199199 c = bsol. sol (t)[indnum]/ V
207207
208208function getconcentrationsensitivity (bsol:: Simulation{Q,W,L,G} , numerator:: String , denominator:: Z , t:: K ) where {W<: Union{ConstantVDomain,ConstantTVDomain,ParametrizedTConstantVDomain} ,K<: Real ,Z<: Integer ,Q,G,L}
209209 @assert numerator in bsol. names
210- indnum = findfirst (isequal (numerator),bsol. names)
211- inddeno = denominator
212- Nvars = bsol. domain. indexes[ end ] - bsol. domain. indexes[ 1 ] + 1
210+ indnum = findfirst (isequal (numerator),bsol. names)+ bsol . domain . indexes[ 1 ] - 1
211+ inddeno = denominator+ bsol . domain . parameterindexes[ 1 ] - 1
212+ Nvars = length ( bsol. domain. phase . species) + length ( bsol. domain. indexes) - 2
213213 Nrxns = length (bsol. domain. phase. reactions)
214214 x,dp = extract_local_sensitivities (bsol. sol,t)
215215 s = dp[inddeno+ length (bsol. domain. phase. species)][indnum]
@@ -227,12 +227,12 @@ end
227227
228228function getconcentrationsensitivity (bsol:: Simulation{Q,W,L,G} , numerator:: String , denominator:: Z , t:: K ) where {W<: Union{ConstantTPDomain,ParametrizedTPDomain,ConstantPDomain,ParametrizedPDomain,ParametrizedVDomain} ,K<: Real ,Z<: Integer ,Q,G,L}
229229 @assert numerator in bsol. names
230- indnum = findfirst (isequal (numerator),bsol. names)
231- inddeno = denominator
232- Nvars = bsol. domain. indexes[ end ] - bsol. domain. indexes[ 1 ] + 1
230+ indnum = findfirst (isequal (numerator),bsol. names)+ bsol . domain . indexes[ 1 ] - 1
231+ inddeno = denominator+ bsol . domain . parameterindexes[ 1 ] - 1
232+ Nvars = length ( bsol. domain. phase . species) + length ( bsol. domain. indexes) - 2
233233 Nrxns = length (bsol. domain. phase. reactions)
234234 x,dp = extract_local_sensitivities (bsol. sol,t)
235- svals = dp[inddeno+ length (bsol. domain. phase. species)]
235+ svals = dp[inddeno+ length (bsol. domain. phase. species)][bsol . domain . indexes[ 1 ] : bsol . domain . indexes[ 2 ]]
236236 s = svals[indnum]
237237 V = getV (bsol,t)
238238 T = getT (bsol,t)
0 commit comments