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/v6.7.0 #399

Closed
wants to merge 33 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
9f8cb12
Examples: add missing include (#331)
johnwparent Sep 13, 2023
6363541
append to CMAKE_MODULE_PATH instead of overwrite (#336)
martinjrobins Sep 13, 2023
6563745
Change typedefs names to allow simulateous use of idas and cvodes (#337)
mottelet Sep 14, 2023
e4dff1c
Feature/compare califiles (#318)
yu-nix Sep 15, 2023
a89a784
Fix time complexity issue for sparse matrix (#257)
phannebohm Sep 18, 2023
e81978a
Fix missing soversion (#343)
jschueller Sep 27, 2023
fc310c9
Update ARKODE methods docs (#344)
Steven-Roberts Sep 28, 2023
0f8c67f
Bugfix: Support ARK2-3-1-2 in ARKStepSetTableNum (#346)
drreynolds Sep 29, 2023
8ddb1fa
Bugfix: stop time and output time reached in same step (#349)
gardner48 Oct 4, 2023
944e4d6
Bugfix: docs missing cvodequadsstolerances (#352)
balos1 Oct 20, 2023
6bf29af
Add Sofroniou-Spaletta-5-3-4 method only (#355)
Steven-Roberts Oct 26, 2023
dd1b6db
Add Ginkgo dpcpp into example (#351)
yhmtsai Oct 26, 2023
7261018
Bugfix: CMake FindMAGMA (#356)
balos1 Oct 27, 2023
da7c65c
Feature: Fortran interface for lapack dense solver (#353)
balos1 Oct 27, 2023
92bd69b
Feature/new tables (#359)
drreynolds Oct 28, 2023
dac7cd9
Bugfix: Remove MPI wtime in profiler (#317)
balos1 Nov 2, 2023
7788fc4
Bugfix: ARKODE ONE_STEP Description (#362)
gardner48 Nov 2, 2023
e0cdf8c
CI: Upload only test outputs (#364)
balos1 Nov 3, 2023
68a7c80
Maintenance: Remove unused files (#366)
gardner48 Nov 6, 2023
a08d174
CI: Update actions (#368)
gardner48 Nov 6, 2023
7be33c4
Maintenance: Remove F77 interface examples (#367)
gardner48 Nov 6, 2023
671d486
Maintenance: Simplify tarscripts (#365)
gardner48 Nov 6, 2023
75e9cd2
Feature: Update Full RHS Calls (#324)
gardner48 Nov 8, 2023
f361444
Feature/oo adaptivity2 (#358)
drreynolds Nov 9, 2023
b8dd535
Developer docs (#361)
balos1 Nov 12, 2023
23cb49c
Docs: Fix table name (#374)
Steven-Roberts Nov 16, 2023
e6de86d
Docs: Display graphviz figures (#376)
gardner48 Nov 17, 2023
61a1bb0
CI: Jenkins abort previous test (#380)
gardner48 Dec 15, 2023
447a315
Bugfix: IMEX RHS Eval Test (#378)
gardner48 Dec 15, 2023
cb52da6
Bugfix/arkode vector requirements (#387)
drreynolds Dec 15, 2023
dad58a0
regen f2003
balos1 Dec 16, 2023
0f6bbc4
bump version
balos1 Dec 16, 2023
b266176
Update Changelog for Release/6.7.0
gardner48 Dec 18, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,6 @@ SpacesInConditionalStatement : false
SpacesInContainerLiterals : true
SpacesInParentheses : false
SpacesInSquareBrackets : false
SpaceBeforeSquareBrackets : false
Standard : c++14
TabWidth: 2
UseCRLF : false
Expand Down
18 changes: 16 additions & 2 deletions .github/workflows/double-precision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ name: double precision build and test with GCC+TPLs (no GPUs)
on:
push:
pull_request:
merge_group:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build_and_test:
Expand All @@ -25,10 +31,18 @@ jobs:
with:
indexsize: ${{ matrix.indexsize }}
precision: ${{ matrix.precision }}
- name: Archive files from failed build
uses: actions/upload-artifact@v2.2.4
- name: Archive build files from failed build
uses: actions/upload-artifact@v3
if: failure()
with:
name: build_files
path: |
${{ github.workspace }}/test/build_*
!${{ github.workspace }}/test/build_*/Testing/output
- name: Archive output files from failed build
uses: actions/upload-artifact@v3
if: failure()
with:
name: output_files
path: |
${{ github.workspace }}/test/build_*/Testing/
18 changes: 16 additions & 2 deletions .github/workflows/extended-precision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@ name: extended precision build and test with GCC+TPLs (no GPUs)

on:
pull_request:
merge_group:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build_and_test:
Expand All @@ -24,10 +30,18 @@ jobs:
with:
indexsize: ${{ matrix.indexsize }}
precision: ${{ matrix.precision }}
- name: Archive files from failed build
uses: actions/upload-artifact@v2.2.4
- name: Archive build files from failed build
uses: actions/upload-artifact@v3
if: failure()
with:
name: build_files
path: |
${{ github.workspace }}/test/build_*
!${{ github.workspace }}/test/build_*/Testing/output
- name: Archive output files from failed build
uses: actions/upload-artifact@v3
if: failure()
with:
name: output_files
path: |
${{ github.workspace }}/test/build_*/Testing/
6 changes: 6 additions & 0 deletions .github/workflows/macos-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@ name: MacOS short test

on:
pull_request:
merge_group:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
Expand Down
18 changes: 16 additions & 2 deletions .github/workflows/single-precision.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@ name: single precision build and test with GCC+TPLs (no GPUs)

on:
pull_request:
merge_group:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build_and_test:
Expand All @@ -24,10 +30,18 @@ jobs:
with:
indexsize: ${{ matrix.indexsize }}
precision: ${{ matrix.precision }}
- name: Archive files from failed build
uses: actions/upload-artifact@v2.2.4
- name: Archive build files from failed build
uses: actions/upload-artifact@v3
if: failure()
with:
name: build_files
path: |
${{ github.workspace }}/test/build_*
!${{ github.workspace }}/test/build_*/Testing/output
- name: Archive output files from failed build
uses: actions/upload-artifact@v3
if: failure()
with:
name: output_files
path: |
${{ github.workspace }}/test/build_*/Testing/
17 changes: 15 additions & 2 deletions .github/workflows/spack-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,15 @@ name: spack@develop build and test with GCC+TPLs (no GPUs)

on:
pull_request:
merge_group:
workflow_dispatch:
schedule:
- cron: '00 22 * * *'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build_and_test:
runs-on: ubuntu-latest
Expand All @@ -27,10 +32,18 @@ jobs:
with:
indexsize: ${{ matrix.indexsize }}
precision: ${{ matrix.precision }}
- name: Archive files from failed build
uses: actions/upload-artifact@v2.2.4
- name: Archive build files from failed build
uses: actions/upload-artifact@v3
if: failure()
with:
name: build_files
path: |
${{ github.workspace }}/test/build_*
!${{ github.workspace }}/test/build_*/Testing/output
- name: Archive output files from failed build
uses: actions/upload-artifact@v3
if: failure()
with:
name: output_files
path: |
${{ github.workspace }}/test/build_*/Testing/
6 changes: 6 additions & 0 deletions .github/workflows/ubuntu-clang-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@ name: Ubuntu (clang) short test

on:
pull_request:
merge_group:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/windows-latest-mingw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@ name: Windows (mingw) short test

on:
pull_request:
merge_group:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
Expand All @@ -21,7 +27,7 @@ jobs:
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -G "MinGW Makefiles" -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
run: cmake -G "MinGW Makefiles" -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DSUNDIALS_BUILD_WITH_PROFILING=ON -DSUNDIALS_LOGGING_LEVEL=2 -DSUNDIALS_TEST_UNITTESTS=OFF -DEXAMPLES_ENABLE_CXX=ON

- name: Build
# Build your program with the given configuration
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/windows-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@ name: Windows short test

on:
pull_request:
merge_group:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
Expand All @@ -17,7 +23,7 @@ jobs:
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_STATIC_LIBS=OFF
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_STATIC_LIBS=OFF -DSUNDIALS_BUILD_WITH_PROFILING=ON -DSUNDIALS_LOGGING_LEVEL=2 -DSUNDIALS_TEST_UNITTESTS=ON -DEXAMPLES_ENABLE_CXX=ON

- name: Build
# Build your program with the given configuration
Expand Down
22 changes: 17 additions & 5 deletions .gitlab/build_and_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -188,11 +188,23 @@ then
$cmake_exe --version

# configure
$cmake_exe \
-C "${hostconfig_path}" \
-DCMAKE_INSTALL_PREFIX=${install_dir} \
"${project_dir}"

if [[ "${CI_COMMIT_BRANCH}" == "main" ]]
then
# redirect caliper files to release directory
sundials_version=$(cd ${project_dir}; git describe --abbrev=0)
$cmake_exe \
-C "${hostconfig_path}" \
-DCMAKE_INSTALL_PREFIX=${install_dir} \
-DSUNDIALS_CALIPER_OUTPUT_DIR="${CALIPER_DIR}/Release/${hostname}/${sundials_version}" \
"${project_dir}"

else
$cmake_exe \
-C "${hostconfig_path}" \
-DCMAKE_INSTALL_PREFIX=${install_dir} \
"${project_dir}"
fi

# build
VERBOSE_BUILD=${VERBOSE_BUILD:-"OFF"}
if [[ "${VERBOSE_BUILD}" == "ON" ]]; then
Expand Down
3 changes: 2 additions & 1 deletion .gitlab/lassen-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ lassen_gcc_cuda_bench:
matrix:
- COMPILER_SPEC: gcc@8.3.1
CUDA_SPEC: [cuda@11.8.0]
CALIPER_DIR: /usr/workspace/sundials/califiles
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 build_type=Release precision=double scheduler=lsf caliper-dir=/usr/workspace/sundials/califiles ~int64 +benchmarks+profiling+caliper+adiak+mpi+openmp+cuda+raja cuda_arch=70 ^raja+cuda~openmp~examples~exercises cuda_arch=70 ^caliper+adiak+cuda cuda_arch=70 ^${CUDA_SPEC}+allow-unsupported-compilers"
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 build_type=Release precision=double scheduler=lsf caliper-dir=${CALIPER_DIR} ~int64 +benchmarks+profiling+caliper+adiak+mpi+openmp+cuda+raja cuda_arch=70 ^raja+cuda~openmp~examples~exercises cuda_arch=70 ^caliper+adiak+cuda cuda_arch=70 ^${CUDA_SPEC}+allow-unsupported-compilers"
extends: .lassen_build_and_bench

2 changes: 2 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ build:
os: ubuntu-20.04
tools:
python: "3.9"
apt_packages:
- graphviz

# Build documentation in the doc/ directory with Sphinx
sphinx:
Expand Down
71 changes: 69 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,71 @@
# SUNDIALS Changelog

## Changes to SUNDIALS in release 6.7.0

Added the `SUNAdaptController` base class, ported ARKODE's internal
implementations of time step controllers into implementations of this class,
and updated ARKODE to use these objects instead of its own implementations.
Added `ARKStepSetAdaptController` and `ERKStepSetAdaptController` routines
so that users can modify controller parameters, or even provide custom
implementations.

Added the routines `ARKStepSetAdaptivityAdjustment` and
`ERKStepSetAdaptivityAdjustment`, that allow users to adjust the
value for the method order supplied to the temporal adaptivity controllers.
The ARKODE default for this adjustment has been -1 since its initial
release, but for some applications a value of 0 is more appropriate.
Users who notice that their simulations encounter a large number of
temporal error test failures may want to experiment with adjusting this value.

Added the third order ERK method `ARKODE_SHU_OSHER_3_2_3`, the fourth order
ERK method `ARKODE_SOFRONIOU_SPALETTA_5_3_4`, the sixth order ERK method
`ARKODE_VERNER_9_5_6`, the seventh order ERK method `ARKODE_VERNER_10_6_7`,
the eighth order ERK method `ARKODE_VERNER_13_7_8`, and the ninth order ERK
method `ARKODE_VERNER_16_8_9`.

ARKStep, ERKStep, MRIStep, and SPRKStep were updated to remove a potentially
unnecessary right-hand side evaluation at the end of an integration. ARKStep was
additionally updated to remove extra right-hand side evaluations when using an
explicit method or an implicit method with an explicit first stage.

Added Fortran support for the LAPACK dense `SUNLinearSolver` implementation.

Improved computational complexity of `SUNMatScaleAddI_Sparse` from `O(M*N)` to
`O(NNZ)`.

Changed the `SUNProfiler` so that it does not rely on `MPI_WTime` in any case.
This fixes [GitHub Issue #312](https://github.com/LLNL/sundials/issues/312).

Fixed a regression introduced by the stop time bug fix in v6.6.1 where ARKODE,
CVODE, CVODES, IDA, and IDAS would return at the stop time rather than the
requested output time if the stop time was reached in the same step in which the
output time was passed.

Fixed a bug in ERKStep where methods with `c[s-1] = 1` but `a[s-1,j] != b[j]`
were incorrectly treated as having the first same as last (FSAL) property.

Fixed a bug in ARKODE where `ARKStepSetInterpolateStopTime` would return an
interpolated solution at the stop time in some cases when interpolation was
disabled.

Fixed a bug in `MRIStepCoupling_Write` where explicit coupling tables were not
written to the output file pointer.

Fixed a bug in `ARKStepSetTableNum` wherein it did not recognize
`ARKODE_ARK2_ERK_3_1_2` and `ARKODE_ARK2_DIRK_3_1_2` as a valid additive
Runge--Kutta Butcher table pair.

The `MRIStepInnerStepper` class in MRIStep was updated to make supplying an
`MRIStepInnerFullRhsFn` optional.

Fixed scaling bug in `SUNMatScaleAddI_Sparse` for non-square matrices.

Fixed missing soversions in some `SUNLinearSolver` and `SUNNonlinearSolver`
CMake targets.

Renamed some internal types in CVODES and IDAS to allow both packages to be
built together in the same binary.

## Changes to SUNDIALS in release 6.6.2

Fixed the build system support for MAGMA when using a NVIDIA HPC SDK installation of CUDA
Expand All @@ -14,8 +80,9 @@ object.

Fixed a bug in ARKODE, CVODE, CVODES, IDA, and IDAS where the stop time may not
be cleared when using normal mode if the requested output time is the same as
the stop time. Additionally, with ARKODE, CVODE, and CVODES an unnecessary
interpolation of the solution at the stop time may occur in this case.
the stop time. Additionally, with ARKODE, CVODE, and CVODES this fix removes an
unnecessary interpolation of the solution at the stop time that could occur in
this case.

## Changes to SUNDIALS in release 6.6.0

Expand Down
Loading