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

New Low Order MRI Methods #439

Merged
merged 52 commits into from
May 12, 2024
Merged

New Low Order MRI Methods #439

merged 52 commits into from
May 12, 2024

Conversation

Steven-Roberts
Copy link
Collaborator

  • Adds new 1st-3rd order MRI methods. Most are from the literature, but the rest are trivial to derive, e.g., Euler-based schemes.
  • Adds some of the base ERK and IRK method tables too. Note that some cannot be equipped with reasonable embeddings.
  • Fixes an MRI reallocation bug when switching coupling coefficients to one with more stages
  • Fixes a workspace size bug for MRIStep
  • Makes MRIStepSetOrder consistent with ARKStepSetOrder and ERKStepSetOrder so that a negative value sets the default order and a positive value out of range prints an error (when method initialization occurs not when SetOrder is called).

Before I update the docs, stability plots, changelog, etc, I want to make sure everyone's ok with these new methods.

@Steven-Roberts Steven-Roberts changed the base branch from main to develop March 15, 2024 23:34
src/arkode/arkode_butcher_dirk.def Outdated Show resolved Hide resolved
src/arkode/arkode_mristep.c Outdated Show resolved Hide resolved
src/arkode/arkode_mristep.c Outdated Show resolved Hide resolved
src/arkode/arkode_mristep.c Outdated Show resolved Hide resolved
src/arkode/arkode_mristep.c Outdated Show resolved Hide resolved
src/arkode/arkode_mristep.c Outdated Show resolved Hide resolved
src/arkode/arkode_mristep.c Outdated Show resolved Hide resolved
src/arkode/arkode_mristep.c Outdated Show resolved Hide resolved
src/arkode/arkode_mristep_io.c Show resolved Hide resolved
@drreynolds drreynolds self-requested a review March 28, 2024 02:16
Copy link
Collaborator

@drreynolds drreynolds left a comment

Choose a reason for hiding this comment

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

All of this looks good to me, but this is missing documentation of the new tables, as well as comments in the change log and recent changes files.

include/arkode/arkode_mristep.h Show resolved Hide resolved
src/arkode/arkode_mristep.c Show resolved Hide resolved
drreynolds
drreynolds previously approved these changes Apr 11, 2024
Copy link
Collaborator

@drreynolds drreynolds left a comment

Choose a reason for hiding this comment

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

One tiny typo, otherwise this looks great.

doc/arkode/guide/source/Butcher.rst Outdated Show resolved Hide resolved
drreynolds
drreynolds previously approved these changes Apr 11, 2024
Copy link
Collaborator

@drreynolds drreynolds left a comment

Choose a reason for hiding this comment

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

Once all of the CI tests complete, I think that this is good to merge.

@Steven-Roberts Steven-Roberts marked this pull request as ready for review April 11, 2024 21:40
@balos1 balos1 added this to the SUNDIALS Next milestone Apr 19, 2024
@Steven-Roberts
Copy link
Collaborator Author

Should be ready to merge now pending the jenkins test and any final reviews

drreynolds
drreynolds previously approved these changes May 8, 2024
Copy link
Member

@gardner48 gardner48 left a comment

Choose a reason for hiding this comment

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

Some minor doc updates (I'll make the changes in a sec), otherwise this looks good.

doc/arkode/guide/source/Butcher.rst Outdated Show resolved Hide resolved
doc/arkode/guide/source/Butcher.rst Outdated Show resolved Hide resolved
doc/arkode/guide/source/Constants.rst Outdated Show resolved Hide resolved
doc/shared/sundials.bib Show resolved Hide resolved
doc/shared/sundials.bib Show resolved Hide resolved
gardner48 pushed a commit to sundials-codes/answers that referenced this pull request May 11, 2024
Copy link
Member

@gardner48 gardner48 left a comment

Choose a reason for hiding this comment

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

Updated the constants table with the new methods and added default first order methods in ERKStep and ARKStep.

@gardner48 gardner48 merged commit b060541 into develop May 12, 2024
20 checks passed
@gardner48 gardner48 deleted the feature/low-order-mri branch May 12, 2024 03:29
gardner48 added a commit that referenced this pull request Jun 20, 2024
- Adds new 1st-3rd order MRI methods. Most are from the literature, but
the rest are trivial to derive, e.g., Euler-based schemes.
- Adds some of the base ERK and IRK method tables too. Note that some
cannot be equipped with reasonable embeddings.
- Fixes an MRI reallocation bug when switching coupling coefficients to
one with more stages
- Fixes a workspace size bug for MRIStep
- Makes `MRIStepSetOrder` consistent with `ARKStepSetOrder` and
`ERKStepSetOrder` so that a negative value sets the default order and a
positive value out of range prints an error (when method initialization
occurs not when `SetOrder` is called).

---------

Co-authored-by: Daniel R. Reynolds <[email protected]>
Co-authored-by: David Gardner <[email protected]>
gardner48 pushed a commit that referenced this pull request Sep 4, 2024
Update this documentation for `MRIStepSetOrder` from #439
where low order methods were added
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants