-
-
Notifications
You must be signed in to change notification settings - Fork 235
Zero Dissipation ERK6(5) #1033
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
Zero Dissipation ERK6(5) #1033
Conversation
|
What does the convergence plot look like? |
Codecov Report
@@ Coverage Diff @@
## master #1033 +/- ##
===========================================
- Coverage 76.74% 35.62% -41.12%
===========================================
Files 95 95
Lines 30621 30044 -577
===========================================
- Hits 23500 10704 -12796
- Misses 7121 19340 +12219
Continue to review full report at Codecov.
|
|
This isn't even converging. Do the |
| @unpack t, dt, uprev, u, f, p = integrator | ||
| @unpack α21, α31, α41, α51, α61, α71, α81, α91, α32, α43, α53, α63, α73, α83, α54, α64, α74, α84, α94, α65, α75, α85, α95, α76, α86, α96, α87, α97, α98, β1, β4, β5, β6, β7, β8, β1tilde, β4tilde, β5tilde, β6tilde, β7tilde, β8tilde, β9tilde, c2, c3, c4, c5, c6, c7, c8, c9 = cache | ||
| alg = unwrap_alg(integrator, true) | ||
| omega = alg.omega |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like omega isn't used?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, I am testing for convergence of paper I mentioned in my earlier comment, which had constant variables. The paper for zero dissipation requires only to change b4 b5 b6 to a function of omega which I will implement after this just to be sure that original coefficients are leading to convergence or not.
|
Hey! The |
|
Yep, I corrected another coefficient Order estimate: |
|
Make the dts a little bit larger: it's saturating at floating point epsilon. |
|
Yep, that worked, thanks! I will add code for zero dissipation coefficients. |
Co-Authored-By: Kanav Gupta <[email protected]>
Co-Authored-By: Kanav Gupta <[email protected]>
945f1ae to
17c83f3
Compare
|
I have added zero-dissipation fitted coefficients. |
sure |
|
Made required changes to |
src/algorithms.jl
Outdated
| lazy::Bool | ||
| Vern9(;lazy=true) = new(lazy) | ||
| end | ||
| struct FRK65 <: OrdinaryDiffEqAdaptiveAlgorithm |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Parameterize this
src/algorithms.jl
Outdated
| lazy::Bool | ||
| Vern9(;lazy=true) = new(lazy) | ||
| end | ||
| struct FRK65 <: OrdinaryDiffEqAdaptiveAlgorithm |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| struct FRK65 <: OrdinaryDiffEqAdaptiveAlgorithm | |
| struct FRK65{T} <: OrdinaryDiffEqAdaptiveAlgorithm |
src/algorithms.jl
Outdated
| Vern9(;lazy=true) = new(lazy) | ||
| end | ||
| struct FRK65 <: OrdinaryDiffEqAdaptiveAlgorithm | ||
| omega::Float64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| omega::Float64 | |
| omega::T |
|
Made the required changes. |
| sim3 = test_convergence(dts4,prob,FRK65(0)) #standard value for non zero-dissipation tests | ||
| @test sim3.𝒪est[:l∞] ≈ 6 atol=testTol | ||
| sim3 = test_convergence(dts4,prob,FRK65()) | ||
| @test sim3.𝒪est[:l∞] ≈ 6 atol=testTol1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
instead, make this 6.5 and keep the same testtol. Looks like super convergence. What does plot(sim3) look like?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
huh, that's weird. Instead of defining at testTol1, just put the larger value right in the code there and I'll accept.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. By the way, what is super convergence?





Hi, I have currently implemented RK6(5) based on the paper (It does not account for zero dissipation yet, some basic changes needs to be done) here which is the basis of paper mentioned in #867. However, since this is my first attempt, I may have made some errors and sim tests are failing. Can anyone help where to possibly search for errors. Thanks.