Skip to content

Commit b0c91f5

Browse files
added critical_threshold
1 parent 2b82dc8 commit b0c91f5

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
@@ -52,10 +52,11 @@ end
5252

5353
# SimpleImplicitTauLeaping implementation
5454
struct SimpleImplicitTauLeaping <: DiffEqBase.DEAlgorithm
55-
epsilon::Float64 # Error control parameter
55+
epsilon::Float64
56+
critical_threshold::Float64
5657
end
5758

58-
SimpleImplicitTauLeaping(; epsilon=0.05) = SimpleImplicitTauLeaping(epsilon)
59+
SimpleImplicitTauLeaping(; epsilon=0.05, L=10.0) = SimpleImplicitTauLeaping(epsilon, L)
5960

6061
function compute_hor(nu)
6162
hor = zeros(Int64, size(nu, 2))
@@ -154,6 +155,7 @@ function DiffEqBase.solve(jump_prob::JumpProblem, alg::SimpleImplicitTauLeaping;
154155
du = similar(u0, Int)
155156
t_end = tspan[2]
156157
epsilon = alg.epsilon
158+
critical_threshold = alg.critical_threshold
157159

158160
# Compute initial stoichiometry and HOR
159161
nu = zeros(Int, length(u0), numjumps)
@@ -183,8 +185,8 @@ function DiffEqBase.solve(jump_prob::JumpProblem, alg::SimpleImplicitTauLeaping;
183185
tau_double_prime = compute_tau_implicit(u_prev, rate_cache, nu, p, t_prev, rate)
184186
use_implicit = false
185187
tau = tau_prime
186-
if any(u_prev .< 10)
187-
tau = min(tau_double_prime, tau_prime) # Tighter cap for accuracy
188+
if any(u_prev .< critical_threshold)
189+
tau = min(tau_double_prime, tau_prime)
188190
use_implicit = true
189191
end
190192
tau = max(tau, dtmin)

0 commit comments

Comments
 (0)