Skip to content

Commit e8ddd67

Browse files
Merge pull request #77 from frankschae/weak_timeseries
weak timeseries error for EnsembleProb
2 parents f650d68 + 6d4e8be commit e8ddd67

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

src/benchmark.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,8 +442,15 @@ function WorkPrecisionSet(prob::AbstractEnsembleProblem,abstols,reltols,setups,t
442442

443443
if error_estimate WEAK_ERRORS
444444
if expected_value != nothing
445-
errors = [[LinearAlgebra.norm(Statistics.mean(solutions[i,j].u .- expected_value))
446-
for i in 1:M] for j in 1:N]
445+
if error_estimate == :weak_final
446+
errors = [[LinearAlgebra.norm(Statistics.mean(solutions[i,j].u .- expected_value))
447+
for i in 1:M] for j in 1:N]
448+
elseif error_estimate == :weak_l2
449+
errors = [[LinearAlgebra.norm(Statistics.mean(solutions[i,j] .- expected_value))
450+
for i in 1:M] for j in 1:N]
451+
else
452+
error("Error estimate $error_estimate is not implemented yet.")
453+
end
447454
else
448455
sol = solve(prob,appxsol_setup[:alg],ensemblealg;kwargs...,appxsol_setup...,
449456
timeseries_errors=false,dense_errors = false,trajectories=Int(trajectories))

src/convergence.jl

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,20 @@ function test_convergence(dts::AbstractArray,
7575

7676
else
7777
additional_errors = Dict()
78-
additional_errors[:weak_final] = []
78+
if length(expected_value) == 1 || typeof(expected_value) <: Number
79+
additional_errors[:weak_final] = []
80+
else
81+
additional_errors[:weak_l2] = []
82+
end
7983
for sol in _solutions
80-
weak_final = LinearAlgebra.norm(Statistics.mean(sol.u .- expected_value))
81-
push!(additional_errors[:weak_final],weak_final)
84+
if length(expected_value) == 1 || typeof(expected_value) <: Number
85+
weak_final = LinearAlgebra.norm(Statistics.mean(sol.u .- expected_value))
86+
push!(additional_errors[:weak_final],weak_final)
87+
else
88+
weak_l2 = LinearAlgebra.norm(Statistics.mean(sol .- expected_value))
89+
push!(additional_errors[:weak_l2],weak_l2)
90+
end
91+
8292
end
8393
solutions = _solutions
8494
end

0 commit comments

Comments
 (0)