Skip to content

Commit ac637f8

Browse files
Merge pull request #88 from SciML/filter_setups
filter setup keyword arguments before benchmark run
2 parents 6c06ec3 + 6f34a7b commit ac637f8

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/benchmark.jl

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -272,10 +272,12 @@ function WorkPrecisionSet(prob,
272272
_abstols = get(setups[i],:abstols,abstols)
273273
_reltols = get(setups[i],:reltols,reltols)
274274
_dts = get(setups[i],:dts,nothing)
275+
filtered_setup = filter(p -> p.first in DiffEqBase.allowedkeywords, setups[i])
276+
275277
wps[i] = WorkPrecision(prob,setups[i][:alg],_abstols,_reltols,_dts;
276278
appxsol=appxsol,
277279
error_estimate=error_estimate,
278-
name=names[i],kwargs...,setups[i]...)
280+
name=names[i],kwargs...,filtered_setup...)
279281
end
280282
return WorkPrecisionSet(wps,N,abstols,reltols,prob,setups,names,error_estimate,nothing)
281283
end
@@ -296,9 +298,10 @@ end
296298
_abstols = get(setups[1],:abstols,abstols)
297299
_reltols = get(setups[1],:reltols,reltols)
298300
_dts = get(setups[1],:dts,zeros(length(_abstols)))
301+
filtered_setup = filter(p -> p.first in DiffEqBase.allowedkeywords, setups[1])
299302

300303
sol = solve(_prob,setups[1][:alg];
301-
kwargs...,setups[1]...,abstol=_abstols[1],
304+
kwargs...,filtered_setup...,abstol=_abstols[1],
302305
reltol=_reltols[1],dt=_dts[1],
303306
timeseries_errors=false,
304307
dense_errors = false)
@@ -307,9 +310,10 @@ end
307310
_abstols = get(setups[k],:abstols,abstols)
308311
_reltols = get(setups[k],:reltols,reltols)
309312
_dts = get(setups[k],:dts,zeros(length(_abstols)))
310-
313+
filtered_setup = filter(p -> p.first in DiffEqBase.allowedkeywords, setups[k])
314+
311315
sol = solve(_prob,setups[k][:alg];
312-
kwargs...,setups[k]...,abstol=_abstols[j],
316+
kwargs...,filtered_setup...,abstol=_abstols[j],
313317
reltol=_reltols[j],dt=_dts[j],
314318
timeseries_errors=timeseries_errors,
315319
dense_errors = dense_errors)
@@ -366,9 +370,10 @@ function WorkPrecisionSet(prob::AbstractRODEProblem,abstols,reltols,setups,test_
366370
_abstols = get(setups[k],:abstols,abstols)
367371
_reltols = get(setups[k],:reltols,reltols)
368372
_dts = get(setups[k],:dts,zeros(length(_abstols)))
373+
filtered_setup = filter(p -> p.first in DiffEqBase.allowedkeywords, setups[k])
369374

370375
_sol = solve(prob,setups[k][:alg];
371-
kwargs...,setups[k]...,abstol=_abstols[1],
376+
kwargs...,filtered_setup...,abstol=_abstols[1],
372377
reltol=_reltols[1],dt=_dts[1],
373378
timeseries_errors=false,
374379
dense_errors = false)
@@ -377,7 +382,7 @@ function WorkPrecisionSet(prob::AbstractRODEProblem,abstols,reltols,setups,test_
377382
for j in 1:M
378383
for i in 1:numruns
379384
time_tmp[i] = @elapsed sol = solve(prob,setups[k][:alg];
380-
kwargs...,setups[k]...,abstol=_abstols[j],
385+
kwargs...,filtered_setup...,abstol=_abstols[j],
381386
reltol=_reltols[j],dt=_dts[j],
382387
timeseries_errors=false,
383388
dense_errors = false)
@@ -416,9 +421,11 @@ function WorkPrecisionSet(prob::AbstractEnsembleProblem,abstols,reltols,setups,t
416421
_abstols = get(setups[k],:abstols,abstols)
417422
_reltols = get(setups[k],:reltols,reltols)
418423
_dts = get(setups[k],:dts,zeros(length(_abstols)))
424+
filtered_setup = filter(p -> p.first in DiffEqBase.allowedkeywords, setups[k])
425+
419426
for j in 1:M
420427
sol = solve(prob,setups[k][:alg],ensemblealg;
421-
setups[k]...,
428+
filtered_setup...,
422429
abstol=_abstols[j],
423430
reltol=_reltols[j],
424431
dt=_dts[j],
@@ -460,9 +467,10 @@ function WorkPrecisionSet(prob::AbstractEnsembleProblem,abstols,reltols,setups,t
460467
_abstols = get(setups[k],:abstols,abstols)
461468
_reltols = get(setups[k],:reltols,reltols)
462469
_dts = get(setups[k],:dts,zeros(length(_abstols)))
470+
filtered_setup = filter(p -> p.first in DiffEqBase.allowedkeywords, setups[k])
463471

464472
_sol = solve(prob,setups[k][:alg],ensemblealg;
465-
setups[k]...,
473+
filtered_setup...,
466474
abstol=_abstols[1],
467475
reltol=_reltols[1],
468476
dt=_dts[1],
@@ -474,7 +482,7 @@ function WorkPrecisionSet(prob::AbstractEnsembleProblem,abstols,reltols,setups,t
474482
for j in 1:M
475483
for i in 1:numruns
476484
time_tmp[i] = @elapsed sol = solve(prob,setups[k][:alg],ensemblealg;
477-
setups[k]...,
485+
filtered_setup...,
478486
abstol=_abstols[j],
479487
reltol=_reltols[j],
480488
dt=_dts[j],

0 commit comments

Comments
 (0)