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

A new approach for the validated integration of ODEs #84

Merged
merged 25 commits into from
May 7, 2021

Conversation

ulinares
Copy link
Contributor

No description provided.

@ulinares
Copy link
Contributor Author

The test for the dx/dt=x^2 relies on the new method forremainder_product function from eeafb27. So, for now, that test will fail.

@lbenet
Copy link
Member

lbenet commented Aug 31, 2020

Thanks for addressing this!

@ulinares ulinares changed the title Improve validated integration A new approach for the validated integration of ODEs Sep 1, 2020
@lbenet
Copy link
Member

lbenet commented Oct 4, 2020

Some tests, which are not currently passing, should be fixed by #91; you may need to rebase once it is merged.

@ulinares
Copy link
Contributor Author

ulinares commented Oct 4, 2020

Great, I'll wait for it.

@lbenet
Copy link
Member

lbenet commented Mar 12, 2021

@UzielLinares Can you rebase to current master? This should run the tests using GitHub actions, and (perhaps) solve the problems spotted by travis. (GH actions is much faster than travis.)

Copy link
Member

@lbenet lbenet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have made some comments in some parts to smooth what i think are some rough corners.

picard(dx, x0, box)

Computes the picard (integral) operator for the initial condition `x0`.
`dx` must be the rhs of the differential equation.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And box...?

Comment on lines 650 to 771
@inbounds for i in eachindex(x)
dom = sign_tstep > 0 ? 0 .. δt : δt .. 0
x0 = sign_tstep > 0 ? dom.lo : dom.hi
Δ = zero(Interval{Float64})
xTM1[i] = TaylorModel1(deepcopy(x[i]), Δ, x0, dom)
end
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great catch! I would suggest to port this back to validated_integ.

Comment on lines 527 to 528
function ε_inflation!(xTM1K, f!, dx, x0, params, t, box, dof; ε=1e-10, δ=1e-5,
maxsteps=20, extrasteps=50)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function is, if I understand it correctly, where the actual validation is assessed, right? I do not think this is reflected by its name. My suggestion is to change it for one that reflects its importance.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, can you add some docstrings explaining the validation idea or including the reference of Buenger's paper?

Comment on lines +588 to +715
if nsteps == maxsteps
@warn ("Maximum number of validate steps reached.")
end

return nothing
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is useful, but maybe we should return a boolean which states if the validation succeeded or not, which may be used in the validated_integ2 function to either shrink the time step, or do something else.

@coveralls
Copy link

coveralls commented Mar 15, 2021

Pull Request Test Coverage Report for Build 668815412

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 0 of 99 (0.0%) changed or added relevant lines in 2 files are covered.
  • 448 unchanged lines in 9 files lost coverage.
  • Overall coverage increased (+1.8%) to 57.813%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/integration.jl 0 11 0.0%
src/validatedODEs.jl 0 88 0.0%
Files with Coverage Reduction New Missed Lines %
src/show.jl 2 66.67%
src/auxiliary.jl 9 37.74%
src/constructors.jl 15 48.28%
src/integration.jl 20 17.46%
src/evaluate.jl 23 35.56%
src/rpa_functions.jl 34 55.83%
src/arithmetic.jl 62 37.97%
src/bounds.jl 68 52.41%
src/validatedODEs.jl 215 0.0%
Totals Coverage Status
Change from base Build 640233573: 1.8%
Covered Lines: 740
Relevant Lines: 1280

💛 - Coveralls

@lbenet
Copy link
Member

lbenet commented Mar 17, 2021

Thanks for rebasing to master! There was a broken test (windows, 1.3) which i couldn't understand, so I rerun the tests and now they are passing.

@lbenet
Copy link
Member

lbenet commented Mar 17, 2021

There are still some broken tests on nightly (1.7.0-DEV)

@lbenet
Copy link
Member

lbenet commented Apr 12, 2021

There seem to be some conflicts (in tests/validated_integ.jl); can you resolve them?

@lbenet
Copy link
Member

lbenet commented Apr 12, 2021

Maybe duplicating the tests (old a new methods are tested) is the best...

@lbenet
Copy link
Member

lbenet commented May 6, 2021

There is one test that seems to be stuck...

@lbenet
Copy link
Member

lbenet commented May 7, 2021

The tests pass, but there is something preventing a test to complete. I'll simply go ahead and merge this to have this functionality in master. We can finish whatever is left later in a different PR.

Thanks a lot @UzielLinares!!!

@lbenet lbenet merged commit 9246f1a into JuliaIntervals:master May 7, 2021
@coveralls
Copy link

coveralls commented Sep 27, 2024

Pull Request Test Coverage Report for Build 668837497

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 77 of 95 (81.05%) changed or added relevant lines in 2 files are covered.
  • 96 unchanged lines in 3 files lost coverage.
  • Overall coverage increased (+1.7%) to 57.759%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/integration.jl 10 11 90.91%
src/validatedODEs.jl 67 84 79.76%
Files with Coverage Reduction New Missed Lines %
src/arithmetic.jl 1 76.58%
src/auxiliary.jl 1 52.83%
src/validatedODEs.jl 94 55.99%
Totals Coverage Status
Change from base Build 640233573: 1.7%
Covered Lines: 737
Relevant Lines: 1276

💛 - Coveralls

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.

None yet

3 participants