-
Notifications
You must be signed in to change notification settings - Fork 6
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 integration of TT-TDB; add and update GHAs #17
Conversation
P.S. I can rebase this PR after merging #16, if the latter is ready to be merged |
The core of the changes of this PR is at the end of |
(rebased to current |
Since it's a small and independent change, I'm also adding here CI and CompatHelper for PlanetaryEphemeris just to avoid having to open another PR; otherwise this is ready for review |
Update: tests are showing that |
Codecov Report
@@ Coverage Diff @@
## main #17 +/- ##
=======================================
Coverage ? 42.62%
=======================================
Files ? 12
Lines ? 16586
Branches ? 0
=======================================
Hits ? 7070
Misses ? 9516
Partials ? 0 |
For the time being, I think it is ok to have them commented. If we want those type of checks, I think a PR should be opened in Dates... |
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.
Thanks @PerezHz for this needed addition! I've left few comments, which may improve in terms of performance... or may be trivially not useful.
In any case, the question is if we can test the results (say, against the JPL)? (While those tests are not needed, having a script may be useful for long-term peace-of-mind...
test/propagation.jl
Outdated
using PlanetaryEphemeris | ||
using Dates | ||
using Dates | ||
using Quadmath | ||
using TaylorIntegration | ||
using TaylorSeries | ||
using TaylorSeries | ||
using JLD2 | ||
using Test | ||
|
||
using PlanetaryEphemeris: initialcond |
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.
I think all these packages should appear in test
(within the [targets]
section).
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.
I forgot to say in the previous comment that I was referring to the Project.toml file... It is also worth to upgrade TaylorIntegration version there (to 0.13).
EDIT: comment for NEOs, not PE...
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.
Ok, I'll make sure we tackle that over PerezHz/NEOs.jl#11
I think I have some better tests and a few improvements to the |
It will take me a couple of days to address all of @lbenet's review points (hopefully it'll be ready by tomorrow!), so if your tests are already on top of current main branch, maybe it makes sense to open another PR; then we can rebase here if needed |
Actually the tests are on the top of this PR. |
Just a trivial observation from the last tests run: v1.6 takes 31m to complete the tests, while v1.9 19m, and nightly ~10! |
Just as a reference, after 100 steps (roughly 228.5 days), the difference in TT-TDB between PE and JPL is approximately 1.56e-10 seconds. |
Alright, then it's just easier to push here; feel free to push to this PR as soon as you're ready 😄 |
I think we should only compile Float64, which is what we currently use mostly. Also, percompiling few methods in TaylorSeries and TaylorIntegration should make precopilation easier here. |
I agree with that; I pushed a commit to see how precompilation goes with |
Tests pass now, except in Julia v1.6, because the tests were cancelled; I suggest not to test that version of Julia. |
Indeed, there seems to be a 2 hour timeout for CI workflows which the testing on julia1.6 exceeds; I modified CI.yml to test only 1.9 and nightly for now. This still leaves open the question of what to do with JuliaRegistrator: there is a 1 hour timeout for autoMerge tasks when registering a package in the General registry, and since loading the package for the first time (i.e., doing |
I was thinking the same: simply comment the precompilation step, and see how that behaves... |
I added a commit to try commenting out the precompilation file and doing only the Float64 tests. |
Agreed, and thanks @LuEdRaMo for pushing the corresponding changes! As a side note, maybe we can consider somehow taking advantage of PackageCompiler.jl to tackle the issues here with TTFL. I'm thinking out loud here, but maybe we could build a system image containing the compiled Another option can be to put the dynamical model methods as a package extension, and load it as a weakdep, thus it doesn't get in the way of loading/compiling times. Of course, this latter option only delays/postpones the precompilation of the |
I just pushed a commit fixing a small issue with the tests, and updated the test env setup via a |
... and it went down to 32 minutes on 1.9 and nightly! I think we're in business, folks! |
I'm currently adding some comparisons with the JPL ephemeris in the tests; hope to have that ready ideally by today... |
This this is almost ready, modulo the tests you are adding. The question is how shall we proceed now? Merge this and tag the corresponding version as 0.6.0 (and simply forget about 0.5.1)? |
I agree going with v0.6.0; just updated the Project.toml accordingly. If tests pass then this PR will be ready to be merged. |
Tests are passing so I'll go ahead and merge. |
This PR adds to the
DE430!
dynamical model the integration of TT-TDB following essentially the approach of Fienga et al. (2009), while adding the contribution to TT-TDB due to the Sun's J_2 as is done in the DE430/431 integration.cc: @lbenet @LuEdRaMo