Skip to content

MPDeC methods #146

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

Merged
merged 42 commits into from
Mar 31, 2025
Merged

MPDeC methods #146

merged 42 commits into from
Mar 31, 2025

Conversation

SKopecz
Copy link
Collaborator

@SKopecz SKopecz commented Mar 10, 2025

Implementation of the MPDeC methods

  • MPDeC for Conservative PDS
  • MPDeC for non-conservative PDS
  • Adaptive MPDeC
  • Support sparse arrays
  • Support tridiagonal matrices
  • Nonautonomous MPDeC (out-of-place)
  • Nonautonomous MPDeC (in-place)
  • Testing
  • Performance

This closes #42.

@SKopecz SKopecz added the enhancement New feature or request label Mar 10, 2025
@SKopecz SKopecz marked this pull request as draft March 10, 2025 15:56
@codecov-commenter
Copy link

codecov-commenter commented Mar 10, 2025

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

Attention: Patch coverage is 97.01087% with 11 lines in your changes missing coverage. Please review.

Project coverage is 97.76%. Comparing base (931ac70) to head (ea54eef).

Files with missing lines Patch % Lines
src/mpdec.jl 97.01% 11 Missing ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #146      +/-   ##
==========================================
- Coverage   97.92%   97.76%   -0.17%     
==========================================
  Files           7        8       +1     
  Lines        1641     2009     +368     
==========================================
+ Hits         1607     1964     +357     
- Misses         34       45      +11     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@SKopecz SKopecz changed the title WIP: MPDeC methods MPDeC methods Mar 19, 2025
@SKopecz SKopecz marked this pull request as ready for review March 20, 2025 12:58
@SKopecz
Copy link
Collaborator Author

SKopecz commented Mar 20, 2025

This should be ready for review 🙂.

Some additional comments:

  • Currently MPDeC schemes up to order 10 are available.
  • The quadrature nodes and weights are currently given as Float64s. Should we use algebraic expressions?
  • Do we need tests that check the order of higher order MPDeC schemes? We probably would need BigFloats for this?
  • Once this is merged, we can use MPDeC schemes in the benchmarks.
  • Please find more specific comments below.

@JoshuaLampert
Copy link
Member

The Downgrade job might be fixed by SciML/SimpleNonlinearSolve.jl#168 once this is released.

@JoshuaLampert
Copy link
Member

JoshuaLampert commented Mar 27, 2025

JuliaRegistries/General#127812 has been merged. Could you please try if this fixes Downgrade by rerunning this job (I don't have the rights)?
Edit: Not necessary anymore. Looks like we need to bump the compat bounds to fix Downgrade as it is done in #153.

@SKopecz SKopecz requested a review from ranocha March 27, 2025 22:47
Copy link
Member

@JoshuaLampert JoshuaLampert left a comment

Choose a reason for hiding this comment

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

This is really nice! Also cool to see that we can reproduce the order with Double64 also for the high-order schemes. I only have a few minor comments.

Copy link
Member

@ranocha ranocha left a comment

Choose a reason for hiding this comment

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

Thanks a lot! I just have minor suggestions. This is ready to be merged when Joshua's comments are resolved as well.

@SKopecz
Copy link
Collaborator Author

SKopecz commented Mar 30, 2025

In the original paper the MPDeC schemes depend on two parameters, $K$ and $M$. For the MPDeC scheme to be of order $K$ the parameter $M$ must be chosen sufficently large. In the code we use the smallest possible $M$ to obtain order $K$. The parameter M in the code represents exactly $M$. At the points in question, we now use M_plus_1 to have a consistent meaning of M throught the code.

@SKopecz
Copy link
Collaborator Author

SKopecz commented Mar 31, 2025

The only failing test is CI / finish (pull_request).

Any idea how to fix this?

@JoshuaLampert
Copy link
Member

The only failing test is CI / finish (pull_request).

Any idea how to fix this?

We also see this issue in other repos. Coveralls seems to be broken at the moment. I think we can just ignore it here.

@SKopecz
Copy link
Collaborator Author

SKopecz commented Mar 31, 2025

Then we're ready to merge, right? Do we keep the version number "0.2.10-DEV"?

Copy link
Member

@ranocha ranocha left a comment

Choose a reason for hiding this comment

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

Thanks

@ranocha ranocha merged commit d746239 into main Mar 31, 2025
9 of 10 checks passed
@SKopecz SKopecz deleted the sk/mpdec branch March 31, 2025 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature: MPDeC methods
4 participants