Skip to content

Commit 99fc9c1

Browse files
committed
allow passing non-PureLeaping aggregators but give warning
1 parent 0a1c6ea commit 99fc9c1

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

ext/JumpProcessesKernelAbstractionsExt.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function SciMLBase.__solve(ensembleprob::SciMLBase.AbstractEnsembleProblem,
2323
jump_prob = ensembleprob.prob
2424

2525
# Validate that this is a PureLeaping JumpProblem
26-
validate_pure_leaping_inputs(jump_prob) ||
26+
validate_pure_leaping_inputs(jump_prob, alg) ||
2727
error("SimpleTauLeaping can only be used with PureLeaping JumpProblems with only non-RegularJumps.")
2828
prob = jump_prob.prob
2929

src/simple_regular_solve.jl

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
struct SimpleTauLeaping <: DiffEqBase.DEAlgorithm end
22

3-
function validate_pure_leaping_inputs(jump_prob::JumpProblem)
4-
jump_prob.aggregator isa PureLeaping &&
5-
isempty(jump_prob.jump_callback.continuous_callbacks) &&
6-
isempty(jump_prob.jump_callback.discrete_callbacks) &&
7-
isempty(jump_prob.constant_jumps) &&
8-
isempty(jump_prob.variable_jumps) &&
9-
get_num_majumps(jump_prob.massaction_jump) == 0 &&
10-
jump_prob.regular_jump !== nothing
3+
function validate_pure_leaping_inputs(jump_prob::JumpProblem, alg)
4+
if !(jump_prob.aggregator isa PureLeaping)
5+
@warn "When using $alg, please pass PureLeaping() as the aggregator to the \
6+
JumpProblem, i.e. call JumpProblem(::DiscreteProblem, PureLeaping(),...). \
7+
Passing $(jump_prob.aggregator) is deprecated and will be removed in the next breaking release."
8+
end
9+
isempty(jump_prob.jump_callback.continuous_callbacks) &&
10+
isempty(jump_prob.jump_callback.discrete_callbacks) &&
11+
isempty(jump_prob.constant_jumps) &&
12+
isempty(jump_prob.variable_jumps) &&
13+
get_num_majumps(jump_prob.massaction_jump) == 0 &&
14+
jump_prob.regular_jump !== nothing
1115
end
1216

1317
function DiffEqBase.solve(jump_prob::JumpProblem, alg::SimpleTauLeaping;
1418
seed = nothing,
1519
dt = error("dt is required for SimpleTauLeaping."))
1620

17-
validate_pure_leaping_inputs(jump_prob) ||
21+
@show "here1"
22+
validate_pure_leaping_inputs(jump_prob, alg) ||
1823
error("SimpleTauLeaping can only be used with PureLeaping JumpProblems with only non-RegularJumps.")
1924
prob = jump_prob.prob
2025
rng = DEFAULT_RNG

0 commit comments

Comments
 (0)