Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add global error control adaptivity #287

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

ErikQQY
Copy link
Member

@ErikQQY ErikQQY commented Feb 23, 2025

Fix: #34

Basically, there are four different modes for the error control adaptivity in MIRK and FIRK methods, DefectControl, GlobalErrorControl, SequentialErrorControl(first use defect control then use global error control,) and HybridErrorControl(use the linear combination of the defect and global error).

Still very WIP

Copy link
Contributor

github-actions bot commented Feb 23, 2025

Benchmark Results

master 412a1e9... master / 412a1e9...
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK2() 6.67 ± 0.17 ms 6.61 ± 0.18 ms 1.01
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK3() 2.54 ± 0.11 ms 2.49 ± 0.11 ms 1.02
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK4() 0.892 ± 0.05 ms 0.888 ± 0.05 ms 1
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK5() 2.45 ± 0.24 ms 2.43 ± 0.23 ms 1.01
Simple Pendulum/IIP/BoundaryValueDiffEqMIRK.MIRK6() 1.05 ± 0.097 ms 1.05 ± 0.096 ms 1
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = false) 1.93 ± 0.6 ms 1.93 ± 0.6 ms 0.999
Simple Pendulum/IIP/MultipleShooting(10, Tsit5; grid_coarsening = true) 3.56 ± 0.87 ms 3.54 ± 0.59 ms 1.01
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.0533 ± 0.01 s 0.0531 ± 0.006 s 1
Simple Pendulum/IIP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.0657 ± 0.014 s 0.0648 ± 0.012 s 1.01
Simple Pendulum/IIP/Shooting(Tsit5()) 0.241 ± 0.073 ms 0.24 ± 0.073 ms 1
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK2() 0.0385 ± 0.0021 s 0.0387 ± 0.0025 s 0.996
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK3() 11.3 ± 0.45 ms 11.4 ± 0.42 ms 0.985
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK4() 3.28 ± 0.22 ms 3.3 ± 0.22 ms 0.995
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK5() 9.64 ± 0.94 ms 9.77 ± 1 ms 0.987
Simple Pendulum/OOP/BoundaryValueDiffEqMIRK.MIRK6() 3.49 ± 0.28 ms 3.52 ± 0.27 ms 0.992
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = false) 3.38 ± 2.6 ms 3.34 ± 2.6 ms 1.01
Simple Pendulum/OOP/MultipleShooting(10, Tsit5; grid_coarsening = true) 5.96 ± 4.2 ms 5.95 ± 4.2 ms 1
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = false) 0.0987 ± 0.0025 s 0.0993 ± 0.0039 s 0.993
Simple Pendulum/OOP/MultipleShooting(100, Tsit5; grid_coarsening = true) 0.12 ± 0.0082 s 0.119 ± 0.0099 s 1
Simple Pendulum/OOP/Shooting(Tsit5()) 0.601 ± 0.031 ms 0.626 ± 0.035 ms 0.96
time_to_load 5.01 ± 0.057 s 5 ± 0.13 s 1

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR.
Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

GE control
1 participant