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

Release/7.1.0 sync main with develop #511

Merged
merged 57 commits into from
Jun 20, 2024
Merged

Release/7.1.0 sync main with develop #511

merged 57 commits into from
Jun 20, 2024

Conversation

gardner48
Copy link
Member

No description provided.

ashesh2512 and others added 30 commits June 19, 2024 20:37
ROCm 6.0 removed the deprecated macros __HIP_PLATFORM_HCC__ and
__HIP_PLATFORM_NVCC__. The macros __HIP_PLATFORM_AMD__ and
__HIP_PLATFORM_NVIDIA__ should be used instead otherwise WRAP_SIZE
is undefined.

---------

Signed-off-by: Ashesh Sharma <ashesh.sharma@hpe.com>
Update `HIP_PLATFORM` default to `amd` as the previous default, `hcc`,
is no longer recognized in ROCm 5.7.0 or newer. The new default is also
valid in older version of ROCm (at least back to version 4.3.1).

---------

Co-authored-by: Daniel R. Reynolds <reynolds@smu.edu>
Fixes broken links in the documentation identified with the `--nitpicky`
option of `sphinx-build`. 

---------

Co-authored-by: David J. Gardner <gardner48@llnl.gov>
Correct `versionadded` in SUNAdaptController docs

---------

Co-authored-by: David J. Gardner <gardner48@llnl.gov>
* Combine the package "Changes in" sections into a single shared RST
changelog.
* Move the most recent changes to a separate file that can be included
in the Introduction chapter of each package with the rest of the
changelog (including the recent changes) as an appendix.
* Use the `intersphinx` package to make links to other package functions
and sections work with the combined changelog i.e., references to other
package functions and sections will link to the online documentation.
This should help with converting the latex example docs to RST. Note,
that `:ref:` must be used when referring to Chapters/Sections as
`:numref:` does not work in this case.
* Sync `CHANGELOG.md` and `Changelog.rst` to make them consistent
* Add a `Makefile` to build all the RST docs at once
* Add a script to start a new release cycle, copies recent changes into
the changelog and clears the recent changes file.
* Builds the docs for PRs

---------

Co-authored-by: Balos, Cody, J <balos1@llnl.gov>
Fixes inclusion of manyvector examples when cmake option is disabled 

Co-authored-by: David Gardner <gardner48@llnl.gov>
Changed the CMake version compatibility mode for SUNDIALS to
`AnyNewerVersion` instead of `SameMajorVersion`.

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Fixed a bug in some Fortran examples where `c_null_ptr` was passed as an
argument to a function pointer instead of `c_null_funptr`.
Add a section to the install guide on how to build sundials on Frontier.

---------

Co-authored-by: Daniel R. Reynolds <reynolds@smu.edu>
Co-authored-by: David Gardner <gardner48@llnl.gov>
* Move high level description of SUNDIALS to docs landing page
* Remove file tree figure from docs (addresses #443)
* Remove organization section in shared docs
This fixes compilation warnings I had with `gcc` 8.5 using `-Wall`. Many
of the static functions in `sundials_hashmap.h` were unused by files
that included the header. After discussion with @balos1 moving the
implementations into a .c file made more sense than adding the `inline`
keyword to all the functions.

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Co-authored-by: Cody Balos <balos1@llnl.gov>
Add missing arkFree if arkCreate fails
Add missing ARKStepFree if ARKStepCreate fails
Add missing ERKStepFree if ERKStepCreate fails

----------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Added CMake infrastructure that enables externally maintained
addons to be optionally built with SUNDIALS.

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
…#456)

Fixes a bug where an MRI method would use the (likely corrupted) result
of an inner stepper which returned with a recoverable error. Once
adaptivity is supported, this could be handled similarly to ARK methods.

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Replaces #375 which has become too outdated to easily merge develop
into.
Fixed a bug that caused error messages to be cut off in some cases. Fixes #461

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Fixes memory leak when multiple error handlers are attached. Fixes #446

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Fix a CMake bug that causes an MPI linking error in some C++ examples. Fixes #464
Create a shared UI for all ARKODE steppers. 

---------

Co-authored-by: Cody Balos <balos1@llnl.gov>
Co-authored-by: David Gardner <gardner48@llnl.gov>
Cleaned up ARKODE source code files so that function
declarations/implementations are in more logical locations (following
the restructuring of ARKODE's user-interface).

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
- 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 <reynolds@smu.edu>
Co-authored-by: David Gardner <gardner48@llnl.gov>
ARKodeSPRKTable_Create did not allocate coefficient arrays
Fix copy-paste error in order condition 6s
)

For MinGW, setting the library prefix is not necessary and setting the
library suffix to d.lib is incorrect. The static library suffix is .a
for MinGW.

Prepending those values to the list of library prefixes and suffixes
might not actually cause an issue if no libraries are found that match
those patterns. But slight ABI differences between MSVC and MinGW could
lead to unexpected behavior when mixing binaries of both targets.

This was already discussed in
#407 (comment). But
apparently that change got lost in one of the rebases in that PR.

---------

Signed-off-by: Markus Mützel <markus.muetzel@gmx.de>
`long int` is 32 bits wide on systems that use an LLP64 data model
(e.g., Windows). Use a type for which the C standard guarantees that it
is 64-bit instead (i.e., `int64_t`).

See the error in CI for PR #432.

Signed-off-by: Markus Mützel <markus.muetzel@gmx.de>
Co-authored-by: Cody Balos <balos1@llnl.gov>
…h events (#479)

Addresses https://hpc.llnl.gov/technical-bulletins/bulletin-568 and also
limits our github action workflows to only run on push to certain
branches.
mmuetzel and others added 24 commits June 19, 2024 20:37
MSYS2 follows a rolling release model. I.e., most of its packages are
quite new most of the time.
Adding the SuiteSparse libraries in the CI tests for MSYS2 might help to
detect potentially API changes early.

Signed-off-by: Markus Mützel <markus.muetzel@gmx.de>
Co-authored-by: Cody Balos <balos1@llnl.gov>
Co-authored-by: David Gardner <gardner48@llnl.gov>
#455)

Description
---

Disambiguate shared and static libs `.lib` files on Windows using MSVC
Suffix library output name with `_static` when building both static and
shared libs on Windows

Closes #454

---------

Co-authored-by: Markus Mützel <markus.muetzel@gmx.de>
Co-authored-by: Cody Balos <balos1@llnl.gov>
This fixes dll search on conda where dlls are expected to be installed
in prefix/bin (pretty standard layout)
static or import libs still go to prefix/lib

Signed-off-by: Julien Schueller <schueller@phimeca.com>
Co-authored-by: Cody Balos <balos1@llnl.gov>
…ons (#481)

Co-authored-by: David Gardner <gardner48@llnl.gov>
Co-authored-by: Cody Balos <balos1@llnl.gov>
* Additional warning flags from #481, #482, and #483
* Remove `-Wno-deprecated-declarations`
* Enable warnings as errors in GitHub actions
This is a tiny PR to updated the file folder layout for ARKODE's
time-stepping module "usage" documents. Now that we do not separately
document the C and Fortran interfaces in different folders, there is no
need for our folder names to be, e.g., `Usage/ARKStep_c_interface/`.
This is essentially the exact file that GitHub proposes here:

https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot#example-dependabotyml-file-for-github-actions

Adding this file to the repository would simplify the update process of
actions used in the CI.

You might need to additionally enable dependabot for this repository to
actually make this work. You should be able to find that setting on the
"Insights" tab in the "Dependency graph" section.

If it works, the bot will automatically create PRs for CI actions that
are out of date. You can still decide to not merge those PRs. So
everything will still be in your hands.

Potential caveat: This file might need to exist on the default branch of
this repository (i.e., `main`) to actually have an effect.

Signed-off-by: Markus Mützel <markus.muetzel@gmx.de>
Casting between `int64_t *` and `int32_t *` does *not* maintain the
values in the array. Instead, it tells the compiler to interpret the
memory at that pointer as an array of a different type (i.e., two
`int32_t` elements "become" one `int64_t` element). That can lead to all
kinds of errors and is likely not what was intended.

Remove the pointer casts to allow the compiler to emit an error on
compile-time instead of potentially causing, e.g., an array overflow on
runtime if `sunindextype` has a different size from `KLU_INDEXTYPE`.

---------

Signed-off-by: Markus Mützel <markus.muetzel@gmx.de>
Co-authored-by: Cody Balos <balos1@llnl.gov>
32-bit and 64-bit Windows systems are different to 32-bit and 64-bit
Linux systems, e.g., when it comes to the data model.
Add a runner to the CI that builds for Windows 32-bit for coverage.

Signed-off-by: Markus Mützel <markus.muetzel@gmx.de>
Switches from a vector of table names (which was often not updated) to
iterating over the enum of tables so methods get included in this test
automatically.
Add support for disabling interpolated output in ARKODE steppers by
passing `ARK_INTERP_NONE` to `ARKodeSetInterpolantType`. Disabling
interpolation can reduce the memory footprint of an integrator by two or
more state vectors (depending on the interpolation type and degree)
which can be beneficial when interpolation is not needed e.g., when
integrating to a final time without output in between or using an
explicit fast time scale integrator with MRIStep.

When interpolation is disabled, rootfinding is not supported, implicit
methods must use the trivial predictor, interpolation at stop times
cannot be used, and calls to `ARKodeEvolve` in `ARK_NORMAL` mode will
return at or past the requested output time.

---------

Co-authored-by: Cody Balos <balos1@llnl.gov>
Co-authored-by: Daniel R. Reynolds <reynolds@smu.edu>
Address a couple missing things noted in #488 after it was merged.

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Ginkgo now refers to DPC++ as SYCL (inline with what Intel is doing), so
this just updates our interface to match the naming convention.

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Fix broken references in docs with "nitpicky" mode
Add Fortran `-check` flags with `ENABLE_ALL_WARNINGS`
Add `SUNDIALS_MAYBE_UNUSED` macro to suppresses warnings on unused
entities.
…he Trivial Predictor (#495)

Add the function ``ARKodeSetAutonomous`` to indicate that the implicit
right-hand side function does not explicitly depend on time. When using
the trivial predictor, an autonomous problem may reuse implicit function
evaluations across stage solves reducing the total number of function
evaluations.

---------

Co-authored-by: Daniel R. Reynolds <reynolds@smu.edu>
Co-authored-by: Cody Balos <balos1@llnl.gov>
Add initial log parsing Python library

---------

Co-authored-by: Daniel R. Reynolds <reynolds@smu.edu>
Co-authored-by: David J. Gardner <gardner48@llnl.gov>
Update the the SWIG generation and CMake build system to support
Fortran interfaces for 32-bit or 64-bit sunindextype.

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Co-authored-by: Daniel R. Reynolds <reynolds@smu.edu>
Revert changes to FindKLU made in #447
Fixes various issues related to building Fortran interfaces and examples on Windows
Correct required CMake version from 3.12+ to 3.18+

---------

Co-authored-by: David Gardner <gardner48@llnl.gov>
Add Fortran formatting to CI and apply it
@balos1 balos1 changed the title Release/7.0.0 sync main with develop Release/7.1.0 sync main with develop Jun 20, 2024
@gardner48 gardner48 merged commit bacf6ac into main Jun 20, 2024
24 of 31 checks passed
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.

8 participants