Skip to content

Commit 5aa08e4

Browse files
added critical_threshold
1 parent bbe9dc5 commit 5aa08e4

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/simple_regular_solve.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,11 @@ end
6363

6464
# SimpleImplicitTauLeaping implementation
6565
struct SimpleImplicitTauLeaping <: DiffEqBase.DEAlgorithm
66-
epsilon::Float64 # Error control parameter
66+
epsilon::Float64
67+
critical_threshold::Float64
6768
end
6869

69-
SimpleImplicitTauLeaping(; epsilon=0.05) = SimpleImplicitTauLeaping(epsilon)
70+
SimpleImplicitTauLeaping(; epsilon=0.05, L=10.0) = SimpleImplicitTauLeaping(epsilon, L)
7071

7172
function compute_hor(nu)
7273
hor = zeros(Int64, size(nu, 2))
@@ -165,6 +166,7 @@ function DiffEqBase.solve(jump_prob::JumpProblem, alg::SimpleImplicitTauLeaping;
165166
du = similar(u0, Int)
166167
t_end = tspan[2]
167168
epsilon = alg.epsilon
169+
critical_threshold = alg.critical_threshold
168170

169171
# Compute initial stoichiometry and HOR
170172
nu = zeros(Int, length(u0), numjumps)
@@ -194,8 +196,8 @@ function DiffEqBase.solve(jump_prob::JumpProblem, alg::SimpleImplicitTauLeaping;
194196
tau_double_prime = compute_tau_implicit(u_prev, rate_cache, nu, p, t_prev, rate)
195197
use_implicit = false
196198
tau = tau_prime
197-
if any(u_prev .< 10)
198-
tau = min(tau_double_prime, tau_prime) # Tighter cap for accuracy
199+
if any(u_prev .< critical_threshold)
200+
tau = min(tau_double_prime, tau_prime)
199201
use_implicit = true
200202
end
201203
tau = max(tau, dtmin)

0 commit comments

Comments
 (0)