-
-
Notifications
You must be signed in to change notification settings - Fork 36
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
WIP: Add Lobatto IIIa-b and Radau II tableaus 2.0 #115
Conversation
…ryValueDiffEq.jl into al/lobattotableau
Added dispatch for nested solve, which currently is very slow. Also, the user should be able to pass arguments to the nested solve. I'd like some input on better performance for that one and also on the dispatch for nesting. Started work on the sparse jacobian for the unnested version, but band width needs to be controlled. |
For the nested version, are you using |
No, will do so! (along with making the function inplace). |
@axla-io do you have a cleaner version of this without the merge conflicts? |
Sounds good. I would still recommend opening a new PR, even if you are able to resolve the merge conflicts. Merging after resolving the conflicts, will mess up the commit history |
Thanks @avik-pal , speaking of the conflicts, it seems that a lot of them come from dispatching on the |
I'm a bit worried about the convergence tests. For example LobattoIIIa I get this behavior: The rest of the Lobatto and Radau methods behave similarily The other tests look good. |
can you check the states for each case, it is possible some One other way would be to use non-cached nested version and see if there is a difference between that and the cached version. |
Yes this is pretty much the problem as I remembered it.
That's a good idea! I'll let you know how it goes |
I totally forgot that Lobatto and Radau methods are of order 2s-1, which fits my results, so aside from nested, we are good |
Okay so right now I need to fix a bug I noticed in the sparse differentiation for the expanded cache. Moving on to nested after that. |
(New PR because, in the previous one, version history got messed up)
This PR adds Lobatto and Radau II RK methods to calculate the collocation loss for a BVP
Checklist:
Questions / comments
MIRKCache
into anRKCache
. I also added a newRKTableau
struct for holding standard RK tableaus. Then I added a new collocation function that gets dispatched on the type of Tableau that is in the cache. Idk if this is the best way to set up dispatching, but it is pretty concise.RungeKutta.jl
. The collocation implementation itself is based on the one for MIRKs with a small adaptation to make it work with a full Butcher's tableau. The NaN solution problem is not mitigated by decreasing dt, as far as I've checked (in the range 0.1 to 0.001).NonLinearSolve
) so solves are slow.