Skip to content

Commit dffd72f

Browse files
Merge pull request #1317 from GodotMisogi/dev-pde-benchmarks
Fixed KenCarp methods in KdV and KS FDM benchmarks
2 parents 4fb9bc6 + b1241a6 commit dffd72f

File tree

2 files changed

+44
-37
lines changed

2 files changed

+44
-37
lines changed

benchmarks/SimpleHandwrittenPDE/kdv_fdm_wpd.jmd

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ setups = [
153153
Dict(:alg => ETDRK2(), :dts => 1e-4 * multipliers),
154154
]
155155
labels = hcat(
156-
"CNAB2 (dense linsolve)",
157-
"CNAB2 (Krylov linsolve)",
156+
"CNAB2 (dense)",
157+
"CNAB2 (Krylov)",
158158
"ETDRK2 (caching)",
159159
)
160160
@time wp = WorkPrecisionSet(prob, abstols, reltols, setups;
@@ -169,29 +169,28 @@ plot(wp, label=labels, markershape=:auto, title="Between Families, High Toleranc
169169

170170
#### Implicit-Explicit Methods
171171

172-
Krylov linear solvers.
172+
Dense and Krylov linear solvers.
173173
```julia
174-
abstols = 0.1 .^ (7:11)
175-
reltols = 0.1 .^ (4:8)
174+
abstols = 0.1 .^ (8:12)
175+
reltols = 0.1 .^ (5:9)
176176
setups = [
177-
# KenCarp methods take forever with adaptive timestepping for some reason
178-
# Dict(:alg => KenCarp3()),
179-
# Dict(:alg => KenCarp4()),
180-
# Dict(:alg => KenCarp5()),
181-
# Dict(:alg => KenCarp3(linsolve=KrylovJL_GMRES())),
182-
# Dict(:alg => KenCarp4(linsolve=KrylovJL_GMRES())),
183-
# Dict(:alg => KenCarp5(linsolve=KrylovJL_GMRES())),
177+
Dict(:alg => KenCarp3()),
178+
Dict(:alg => KenCarp4()),
179+
Dict(:alg => KenCarp5()),
180+
Dict(:alg => KenCarp3(linsolve=KrylovJL_GMRES())),
181+
Dict(:alg => KenCarp4(linsolve=KrylovJL_GMRES())),
182+
Dict(:alg => KenCarp5(linsolve=KrylovJL_GMRES())),
184183
Dict(:alg => ARKODE(Sundials.Implicit(), order=3, linear_solver=:GMRES)),
185184
Dict(:alg => ARKODE(Sundials.Implicit(), order=4, linear_solver=:GMRES)),
186185
Dict(:alg => ARKODE(Sundials.Implicit(), order=5, linear_solver=:GMRES)),
187186
]
188187
labels = hcat(
189-
# "KenCarp3",
190-
# "KenCarp4",
191-
# "KenCarp5",
192-
# "KenCarp3 (Krylov)",
193-
# "KenCarp4 (Krylov)",
194-
# "KenCarp5 (Krylov)",
188+
"KenCarp3 (dense)",
189+
"KenCarp4 (dense)",
190+
"KenCarp5 (dense)",
191+
"KenCarp3 (Krylov)",
192+
"KenCarp4 (Krylov)",
193+
"KenCarp5 (Krylov)",
195194
"ARKODE3 (Krylov)",
196195
"ARKODE4 (Krylov)",
197196
"ARKODE5 (Krylov)",
@@ -231,12 +230,12 @@ abstols = 0.1 .^ (7:11)
231230
reltols = 0.1 .^ (4:8)
232231
multipliers = 0.5 .^ (0:4)
233232
setups = [
234-
Dict(:alg => ARKODE(Sundials.Implicit(), order=5, linear_solver=:Band, jac_upper=1, jac_lower=1)),
233+
Dict(:alg => ARKODE(Sundials.Implicit(), order=5, linear_solver=:GMRES)),
235234
Dict(:alg => ETDRK3(), :dts => 1e-2 * multipliers),
236235
Dict(:alg => ETDRK4(), :dts => 1e-2 * multipliers),
237236
]
238237
labels = hcat(
239-
"ARKODE (Band linsolve)",
238+
"ARKODE5 (Krylov)",
240239
"ETDRK3 (caching)",
241240
"ETDRK4 (caching)",
242241
)

benchmarks/SimpleHandwrittenPDE/ks_fdm_wpd.jmd

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ setups = [
152152
Dict(:alg => ETDRK2(), :dts => 1e-4 * multipliers),
153153
]
154154
labels = hcat(
155-
"CNAB2 (dense linsolve)",
156-
"CNAB2 (Krylov linsolve)",
155+
"CNAB2 (dense)",
156+
"CNAB2 (Krylov)",
157157
"ETDRK2 (caching)",
158158
)
159159
@time wp = WorkPrecisionSet(prob, abstols, reltols, setups;
@@ -167,27 +167,31 @@ plot(wp, label=labels, markershape=:auto, title="Between Families, High Toleranc
167167

168168
#### Implicit-Explicit Methods
169169

170-
171-
Krylov linear solvers.
170+
Dense and Krylov linear solvers.
172171
```julia
173-
abstols = 0.1 .^ (7:13)
174-
reltols = 0.1 .^ (4:10)
172+
abstols = 0.1 .^ (8:12)
173+
reltols = 0.1 .^ (5:9)
175174
setups = [
176-
# KenCarp methods take forever with adaptive timestepping for some reason
177-
# Dict(:alg => KenCarp3(linsolve=KrylovJL_GMRES())),
178-
# Dict(:alg => KenCarp4(linsolve=KrylovJL_GMRES())),
179-
# Dict(:alg => KenCarp5(linsolve=KrylovJL_GMRES())),
175+
Dict(:alg => KenCarp3()),
176+
Dict(:alg => KenCarp4()),
177+
Dict(:alg => KenCarp5()),
178+
Dict(:alg => KenCarp3(linsolve=KrylovJL_GMRES())),
179+
Dict(:alg => KenCarp4(linsolve=KrylovJL_GMRES())),
180+
Dict(:alg => KenCarp5(linsolve=KrylovJL_GMRES())),
180181
Dict(:alg => ARKODE(Sundials.Implicit(), order=3, linear_solver=:GMRES)),
181182
Dict(:alg => ARKODE(Sundials.Implicit(), order=4, linear_solver=:GMRES)),
182183
Dict(:alg => ARKODE(Sundials.Implicit(), order=5, linear_solver=:GMRES)),
183184
]
184185
labels = hcat(
185-
# "KenCarp3",
186-
# "KenCarp4",
187-
# "KenCarp5",
188-
"ARKODE3",
189-
"ARKODE4",
190-
"ARKODE5",
186+
"KenCarp3 (dense)",
187+
"KenCarp4 (dense)",
188+
"KenCarp5 (dense)",
189+
"KenCarp3 (Krylov)",
190+
"KenCarp4 (Krylov)",
191+
"KenCarp5 (Krylov)",
192+
"ARKODE3 (Krylov)",
193+
"ARKODE4 (Krylov)",
194+
"ARKODE5 (Krylov)",
191195
)
192196
@time wp = WorkPrecisionSet(prob, abstols, reltols, setups;
193197
print_names=true, names=labels, numruns=5, error_estimate=:l2,
@@ -230,7 +234,11 @@ setups = [
230234
Dict(:alg => ETDRK3(), :dts => 1e-2 * multipliers),
231235
Dict(:alg => ETDRK4(), :dts => 1e-2 * multipliers),
232236
]
233-
labels = hcat("ARKODE (Krylov linsolve)", "ETDRK3 ()", "ETDRK4 ()")
237+
labels = hcat(
238+
"ARKODE5 (Krylov)",
239+
"ETDRK3 (caching)",
240+
"ETDRK4 (caching)"
241+
)
234242
@time wp = WorkPrecisionSet(prob, abstols, reltols, setups;
235243
print_names=true, names=labels, numruns=5, error_estimate=:l2,
236244
save_everystep=false, appxsol=test_sol, maxiters=Int(1e5));

0 commit comments

Comments
 (0)