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

Added High Order and Low Order RK methods #2304

Merged
merged 139 commits into from
Aug 4, 2024

Conversation

ParamThakkar123
Copy link
Contributor

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • [] The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

Add any other context about the problem here.
solves a part of #2177

alg_order(alg::BS5) = 5
alg_order(alg::OwrenZen4) = 4
alg_order(alg::OwrenZen5) = 5
alg_order(alg::Tsit5) = 5
Copy link
Member

Choose a reason for hiding this comment

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

We will want to make Tsit5 be its own set.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ok so for this I will make a separate OrdinaryDiffEqTsit inside lib

Copy link
Member

Choose a reason for hiding this comment

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

OrdinaryDiffEqTsit5. Since it's the most common method and it's commonly used alone, making it as lean as possible is a virtue. Thanks.

@@ -818,8 +593,7 @@ for Alg in [:Exp4, :EPIRK4s3A, :EPIRK4s3B, :EPIRK5s3, :EXPRB53s3, :EPIRK5P1, :EP
iop)
end
end
struct SplitEuler <:
Copy link
Member

Choose a reason for hiding this comment

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

why was this removed?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I went through the code for low order rk and it had some dependency on splitEuler and it also included it's caches. So I moved it there

Copy link
Member

Choose a reason for hiding this comment

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

It should end up with the split methods group, with CNAB2 and such. What's the dependency?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

image

when I went through low_order_rk_caches.jl file I saw the splitEuler Cache here so I thought that splitEuler might be an algorithm of low_order_rk. That was the reason

Copy link
Member

Choose a reason for hiding this comment

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

That was a good guess but ultimately not the right one. There should be a SplitMethods which has CNAB2 and such, and SplitEuler is kind of a smaller test method that goes with that set.

test/runtests.jl Outdated Show resolved Hide resolved
@ChrisRackauckas
Copy link
Member

Can we take this moment to split @time @safetestset "Convergence Tests" include("algconvergence/ode_convergence_tests.jl") into its relevant packages? A lot of methods just dumped their convergence test there, so it mixes a few, but most are these low and high order RKs.

@ParamThakkar123
Copy link
Contributor Author

Can we take this moment to split @time @safetestset "Convergence Tests" include("algconvergence/ode_convergence_tests.jl") into its relevant packages? A lot of methods just dumped their convergence test there, so it mixes a few, but most are these low and high order RKs.

We can start working on splitting this one then

@ParamThakkar123
Copy link
Contributor Author

image

@ChrisRackauckas Why did this happen ?? We didn't get these warnings previously

@ChrisRackauckas
Copy link
Member

Fixed that.

@ChrisRackauckas ChrisRackauckas merged commit d27d963 into SciML:master Aug 4, 2024
36 of 40 checks passed
@ChrisRackauckas
Copy link
Member

Almost there!

@ChrisRackauckas
Copy link
Member

@oscardssmith I reverted your Rosenbrock commit because it broke some tests.

@ParamThakkar123
Copy link
Contributor Author

ParamThakkar123 commented Aug 4, 2024

@ChrisRackauckas Which solvers should I go with now ??

@ChrisRackauckas
Copy link
Member

IMEXMultistep, Linear, and ExponenitalRK are the last 3 sets.

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.

2 participants