Skip to content

Commit

Permalink
Merge branch 'develop' into feature/logging-updates
Browse files Browse the repository at this point in the history
  • Loading branch information
gardner48 authored Aug 6, 2024
2 parents ac7903c + 115914d commit 8afc896
Show file tree
Hide file tree
Showing 464 changed files with 1,176 additions and 1,095 deletions.
44 changes: 44 additions & 0 deletions .github/workflows/check-spelling.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Checks - spelling

on:
pull_request:
workflow_dispatch:

jobs:
spelling_check:
runs-on: ubuntu-latest
steps:
- name: Install python3-pip
run: |
sudo apt update
sudo apt install -y --no-install-recommends python3-pip
- name: Install codespell
run: pip install codespell

- name: Print codespell version
run: codespell --version

- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: true

- name: Run codespell
run: |
./scripts/spelling.sh
- name: Run git diff to see if anything changed
run: /usr/bin/git diff --name-only --exit-code

- name: Run git diff if we failed
if: failure()
run: /usr/bin/git diff > spelling.patch

- name: Archive diff as a patch if we failed
uses: actions/upload-artifact@v3
if: failure()
with:
name: spelling.patch
path: |
${{ github.workspace }}/spelling.patch
11 changes: 7 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@

Fixed the loading of ARKStep's default first order explicit method.

Fixed a CMake bug regarding usage of missing "print_warning" macro
that was only triggered when the deprecated `CUDA_ARCH` option was used.

### Deprecation Notices

## Changes to SUNDIALS in release 7.1.1
Expand Down Expand Up @@ -1789,7 +1792,7 @@ update their code to set the corresponding `ops` structure member,
`matvecsetup`, to `NULL`.

The generic SUNMatrix API now defines error codes to be returned by SUNMatrix
operations. Operations which return an integer flag indiciating success/failure
operations. Operations which return an integer flag indicating success/failure
may return different values than previously.

A new SUNMatrix (and SUNLinearSolver) implementation was added to facilitate
Expand Down Expand Up @@ -1901,7 +1904,7 @@ function signatures have been changed including MRIStepCreate which now
takes an ARKStep memory structure for the fast integration as an input.

The reinitialization functions `ERKStepReInit`, `ARKStepReInit`, and
`MRIStepReInit` have been updated to retain the minimum and maxiumum step
`MRIStepReInit` have been updated to retain the minimum and maximum step
size values from before reinitialization rather than resetting them to the
default values.

Expand All @@ -1926,7 +1929,7 @@ being built.

Fixed a memory leak in the PETSc `N_Vector` clone function.

Fixed a memeory leak in the ARKODE, CVODE, and IDA F77 interfaces when not using
Fixed a memory leak in the ARKODE, CVODE, and IDA F77 interfaces when not using
the default nonlinear solver.

Fixed a bug in the ARKStep time-stepping module in ARKODE that would result in
Expand Down Expand Up @@ -2638,7 +2641,7 @@ with sparse direct solvers.

#### KINSOL

The Picard iteration return was chanegd to always return the newest iterate upon
The Picard iteration return was changed to always return the newest iterate upon
success.

A minor bug in the line search was fixed to prevent an infinite loop when the
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ include(SundialsSetupCompilers)
include(SundialsSetupTPLs)

# ===============================================================
# Build options to be proccessed last
# Build options to be processed last
# ===============================================================

include(SundialsBuildOptionsPost)
Expand Down
2 changes: 1 addition & 1 deletion CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@

# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# globabl owners will be requested for review when someone
# global owners will be requested for review when someone
# opens a pull request.
* @balos1 @gardner48 @cswoodward @drreynolds
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to SUNDIALS

There are two primary ways of contributing to SUNDIALS. The first way is by particpating
There are two primary ways of contributing to SUNDIALS. The first way is by participating
in the development of SUNDIALS directly through contributions of code to the primary
[SUNDIALS repository](https://github.com/LLNL/sundials). This is the best way to contribute
bug fixes and minor improvements. At this time, the SUNDIALS team does not have the resources
Expand Down
47 changes: 30 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,50 +15,62 @@ equation (ODE) systems, differential-algebraic equation (DAE) systems, and
nonlinear algebraic systems:

* ARKODE - for integrating stiff, nonstiff, and multirate ODEs of the form

$$M(t) \\, y' = f_1(t,y) + f_2(t,y), \quad y(t_0) = y_0$$

* CVODE - for integrating stiff and nonstiff ODEs of the form

$$y' = f(t,y), \quad y(t_0) = y_0$$

* CVODES - for integrating and sensitivity analysis (forward and adjoint) of
ODEs of the form

$$y' = f(t,y,p), \quad y(t_0) = y_0(p)$$

* IDA - for integrating DAEs of the form

$$F(t,y,y') = 0, \quad y(t_0) = y_0, \quad y'(t_0) = y_0'$$

* IDAS - for integrating and sensitivity analysis (forward and adjoint) of DAEs
of the form

$$F(t,y,y',p) = 0, \quad y(t_0) = y_0(p), \quad y'(t_0) = y_0'(p)$$

* KINSOL - for solving nonlinear algebraic systems of the form

$$F(u) = 0 \quad \text{or} \quad G(u) = u$$

## Installation ##

For installation directions see the [online install guide](https://sundials.readthedocs.io/en/latest/Install_link.html),
the installation chapter in any of the package user guides, or INSTALL_GUIDE.pdf.
For installation directions, see the [getting started](https://sundials.readthedocs.io/en/latest/sundials/index.html#getting-started)
section in the online documentation. In the [released tarballs](https://github.com/LLNL/sundials/releases),
installation directions are also available in `INSTALL_GUIDE.pdf` and the
installation chapter of the user guides in the `doc` directory.

Warning to users who receive more than one of the individual packages at
different times: Mixing old and new versions of SUNDIALS may fail. To avoid
such failures, obtain all desired package at the same time.
different times: Mixing old and new versions of SUNDIALS may fail. To avoid such
failures, obtain all desired package at the same time.

## Support ##

Full user guides for all of the SUNDIALS packages are available [online](https://sundials.readthedocs.io)
and in the [doc](./doc) directory. Additionally, the [doc](./doc) directory
contains documentation for the package example programs.
Full user guides for all of the SUNDIALS packages are available [online](https://sundials.readthedocs.io).
In the [released tarballs](https://github.com/LLNL/sundials/releases), the `doc`
directory includes PDFs of the user guides and documentation for the example
programs. The example program documentation PDFs are also available on the
[releases page](https://github.com/LLNL/sundials/releases).

For information on recent changes to SUNDIALS see the [CHANGELOG](./CHANGELOG.md)
or the introduction chapter of any package user guide.

A list of Frequently Asked Questions on build and installation procedures as
well as common usage issues is available on the SUNDIALS [FAQ](https://computing.llnl.gov/projects/sundials/faq).
For dealing with systems with unphysical solutions or discontinuities see the
SUNDIALS [usage notes](https://computing.llnl.gov/projects/sundials/usage-notes).
well as common usage issues is available on the SUNDIALS
[FAQ](https://computing.llnl.gov/projects/sundials/faq). For dealing with
systems with nonphysical solutions or discontinuities see the SUNDIALS
[usage notes](https://computing.llnl.gov/projects/sundials/usage-notes).

If you have a question not covered in the FAQ or usage notes, please submit
your question to the SUNDIALS [mailing list](https://computing.llnl.gov/projects/sundials/mailing-list).
If you have a question not covered in the FAQ or usage notes, please submit your
question as a [GitHub issue](https://github.com/LLNL/sundials/issues) or to the
SUNDIALS [mailing list](https://computing.llnl.gov/projects/sundials/mailing-list).

## Contributing ##

Expand All @@ -76,14 +88,15 @@ any publications reporting work done using SUNDIALS packages.

The SUNDIALS library has been developed over many years by a number of
contributors. The current SUNDIALS team consists of Cody J. Balos,
David J. Gardner, Alan C. Hindmarsh, Daniel R. Reynolds, and Carol S. Woodward.
We thank Radu Serban for significant and critical past contributions.
David J. Gardner, Alan C. Hindmarsh, Daniel R. Reynolds, Steven B. Roberts, and
Carol S. Woodward. We thank Radu Serban for significant and critical past
contributions.

Other contributors to SUNDIALS include: James Almgren-Bell, Lawrence E. Banks,
Peter N. Brown, George Byrne, Rujeko Chinomona, Scott D. Cohen, Aaron Collier,
Keith E. Grant, Steven L. Lee, Shelby L. Lockhart, John Loffeld, Daniel McGreer,
Yu Pan, Slaven Peles, Cosmin Petra, Steven B. Roberts, H. Hunter Schwartz,
Jean M. Sexton, Dan Shumaker, Steve G. Smith, Shahbaj Sohal, Allan G. Taylor,
Yu Pan, Slaven Peles, Cosmin Petra, H. Hunter Schwartz, Jean M. Sexton,
Dan Shumaker, Steve G. Smith, Shahbaj Sohal, Allan G. Taylor,
Hilari C. Tiedeman, Chris White, Ting Yan, and Ulrike M. Yang.

## License ##
Expand All @@ -93,7 +106,7 @@ and [NOTICE](./NOTICE) files for details. All new contributions must be made
under the BSD 3-clause license.

**Please Note** If you are using SUNDIALS with any third party libraries linked
in (e.g., LAPACK, KLU, SuperLU_MT, PETSc, or *hypre*), be sure to review the
in (e.g., LAPACK, KLU, SuperLU_MT, PETSc, *hypre*, etc.), be sure to review the
respective license of the package as that license may have more restrictive
terms than the SUNDIALS license.

Expand Down
4 changes: 2 additions & 2 deletions benchmarks/advection_reaction_3D/kokkos/ParallelGrid.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ class ParallelGrid
public:
// Constructor that creates a new ParallelGrid object.
// [in] - the memory helper to use for allocating the MPI buffers
// [in,out] comm - on input, the overal MPI communicator, on output, the cartesian communicator
// [in,out] comm - on input, the overall MPI communicator, on output, the cartesian communicator
// [in] a[] - an array of length 3 which defines the domain [a,b]
// [in] b[] - an array of length 3 which defines the domain [a,b]
// [in] npts[] - an array of length 3 which defines the number of mesh points in each dimension
Expand Down Expand Up @@ -563,7 +563,7 @@ class ParallelGrid

GLOBALINT nx, ny, nz; /* number of intervals globally */
int nxl, nyl, nzl; /* number of intervals locally */
int npx, npy, npz; /* numner of processes */
int npx, npy, npz; /* number of processes */
sunrealtype dx, dy, dz; /* mesh spacing */
sunrealtype ax, ay, az; /* domain in [a, b] */
sunrealtype bx, by, bz;
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/advection_reaction_3D/kokkos/arkode_driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ typedef struct
SUNNonlinearSolver local_nls;
}* TaskLocalNewton_Content;

/* Content accessor macors */
/* Content accessor macros */
#define GET_NLS_CONTENT(NLS) ((TaskLocalNewton_Content)(NLS->content))
#define LOCAL_NLS(NLS) (GET_NLS_CONTENT(NLS)->local_nls)

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/advection_reaction_3D/kokkos/check_retval.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
* opt == 0 means the function allocates memory and returns a
* pointer so check if a NULL pointer was returned
* opt == 1 means the function returns an integer where a
* value < 0 indicates an error occured
* value < 0 indicates an error occurred
* --------------------------------------------------------------*/
static int check_retval(void* returnvalue, const char* funcname, int opt, int myid)
{
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/advection_reaction_3D/kokkos/rhs3D.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
* --------------------------------------------------------------*/

/* Compute the advection term f(t,y) = -c (grad * y). This is done using
upwind 1st order finite differences. At present, only periodic boudary
upwind 1st order finite differences. At present, only periodic boundary
conditions are supported, which are handled via MPI's Cartesian
communicator (even for serial runs). */
static int Advection(sunrealtype t, N_Vector y, N_Vector ydot, void* user_data)
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/advection_reaction_3D/raja/ParallelGrid.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class ParallelGrid
public:
// Constructor that creates a new ParallelGrid object.
// [in] - the memory helper to use for allocating the MPI buffers
// [in,out] comm - on input, the overal MPI communicator, on output, the cartesian communicator
// [in,out] comm - on input, the overall MPI communicator, on output, the cartesian communicator
// [in] a[] - an array of length 3 which defines the domain [a,b]
// [in] b[] - an array of length 3 which defines the domain [a,b]
// [in] npts[] - an array of length 3 which defines the number of mesh points in each dimension
Expand Down Expand Up @@ -508,7 +508,7 @@ class ParallelGrid

GLOBALINT nx, ny, nz; /* number of intervals globally */
int nxl, nyl, nzl; /* number of intervals locally */
int npx, npy, npz; /* numner of processes */
int npx, npy, npz; /* number of processes */
REAL dx, dy, dz; /* mesh spacing */
REAL ax, ay, az; /* domain in [a, b] */
REAL bx, by, bz;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ struct UserData
N_Vector vmask;
N_Vector wmask;

/* problem paramaters */
/* problem parameters */
sunrealtype xmax; /* maximum x value */
sunrealtype A; /* concentration of species A */
sunrealtype B; /* w source rate */
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/advection_reaction_3D/raja/arkode_driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ typedef struct
SUNNonlinearSolver local_nls;
}* TaskLocalNewton_Content;

/* Content accessor macors */
/* Content accessor macros */
#define GET_NLS_CONTENT(NLS) ((TaskLocalNewton_Content)(NLS->content))
#define LOCAL_NLS(NLS) (GET_NLS_CONTENT(NLS)->local_nls)

Expand Down
2 changes: 1 addition & 1 deletion benchmarks/advection_reaction_3D/raja/check_retval.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
* opt == 0 means the function allocates memory and returns a
* pointer so check if a NULL pointer was returned
* opt == 1 means the function returns an integer where a
* value < 0 indicates an error occured
* value < 0 indicates an error occurred
* --------------------------------------------------------------*/
static int check_retval(void* returnvalue, const char* funcname, int opt, int myid)
{
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/diffusion_2D/diffusion_2D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* SPDX-License-Identifier: BSD-3-Clause
* SUNDIALS Copyright End
* -----------------------------------------------------------------------------
* Shared implementaiton file for 2D diffusion benchmark problem
* Shared implementation file for 2D diffusion benchmark problem
* ---------------------------------------------------------------------------*/

#include "diffusion_2D.hpp"
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/diffusion_2D/diffusion_2D.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ struct UserData
sunrealtype* Ssend = NULL;
sunrealtype* Nsend = NULL;

// Send requests for neighor exchange
// Send requests for neighbor exchange
MPI_Request reqSW;
MPI_Request reqSE;
MPI_Request reqSS;
Expand Down Expand Up @@ -192,7 +192,7 @@ struct UserData

struct UserOutput
{
// Ouput variables
// Output variables
int output = 1; // 0 = no output, 1 = stats output, 2 = output to disk
int nout = 20; // number of output times
N_Vector error = NULL; // error vector
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/diffusion_2D/main_arkode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ int main(int argc, char* argv[])
sunrealtype dTout = udata.tf / uout.nout;
sunrealtype tout = dTout;

// Inital output
// Initial output
flag = uout.open(&udata);
if (check_flag(&flag, "UserOutput::open", 1)) { return 1; }

Expand Down Expand Up @@ -524,7 +524,7 @@ void UserOptions::help()
cout << endl;
cout << "Integrator command line options:" << endl;
cout << " --rtol <rtol> : relative tolerance" << endl;
cout << " --atol <atol> : absoltue tolerance" << endl;
cout << " --atol <atol> : absolute tolerance" << endl;
cout << " --nonlinear : disable linearly implicit flag" << endl;
cout << " --order <ord> : method order" << endl;
cout << " --fixedstep <step> : used fixed step size" << endl;
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/diffusion_2D/main_cvode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ int main(int argc, char* argv[])
sunrealtype dTout = udata.tf / uout.nout;
sunrealtype tout = dTout;

// Inital output
// Initial output
flag = uout.open(&udata);
if (check_flag(&flag, "UserOutput::open", 1)) { return 1; }

Expand Down Expand Up @@ -479,7 +479,7 @@ void UserOptions::help()
cout << endl;
cout << "Integrator command line options:" << endl;
cout << " --rtol <rtol> : relative tolerance" << endl;
cout << " --atol <atol> : absoltue tolerance" << endl;
cout << " --atol <atol> : absolute tolerance" << endl;
cout << " --ls <cg|gmres|sludist> : linear solver" << endl;
cout << " --lsinfo : output residual history" << endl;
cout << " --liniters <iters> : max number of iterations" << endl;
Expand Down
4 changes: 2 additions & 2 deletions benchmarks/diffusion_2D/main_ida.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ int main(int argc, char* argv[])
sunrealtype dTout = udata.tf / uout.nout;
sunrealtype tout = dTout;

// Inital output
// Initial output
flag = uout.open(&udata);
if (check_flag(&flag, "UserOutput::open", 1)) { return 1; }

Expand Down Expand Up @@ -460,7 +460,7 @@ void UserOptions::help()
cout << endl;
cout << "Integrator command line options:" << endl;
cout << " --rtol <rtol> : relative tolerance" << endl;
cout << " --atol <atol> : absoltue tolerance" << endl;
cout << " --atol <atol> : absolute tolerance" << endl;
cout << " --ls <cg|gmres|sludist> : linear solver" << endl;
cout << " --liniters <iters> : max number of iterations" << endl;
cout << " --epslin <factor> : linear tolerance factor" << endl;
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/nvector/plot_nvector_performance_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# This script plots the output from test_nector_performance_* and assumes:
# 1. vector lengths are powers of two starting from 0, and
# 2. output files are named: output_nelem_nvec_nsum_ntest_timing.txt
# where nelem is the number of elements in the vector, nvec is the nuber of
# where nelem is the number of elements in the vector, nvec is the number of
# vectors, nsum is the number of sums, ntest is the number of tests, and timing
# indicates if timing was enabled.
# -----------------------------------------------------------------------------
Expand Down
Loading

0 comments on commit 8afc896

Please sign in to comment.