LLNL / sundials

Official development repository for SUNDIALS - a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. Pull requests are welcome for bug fixes and minor changes.
https://computing.llnl.gov/projects/sundials
BSD 3-Clause "New" or "Revised" License
526 stars 130 forks source link

Maintenance/arkode cleanup #470

Closed drreynolds closed 7 months ago

drreynolds commented 7 months ago

Cleaned up ARKODE source code files so that function declarations/implementations are in more logical locations (following the restructuring of ARKODE's user-interface).

drreynolds commented 7 months ago

While this PR may look like many things have been changed, the vast majority of changes consisted of merely moving content within files.

I did notice a few additional items that I fixed in the process, and that would warrant review:

  1. I updated and expanded the documentation of the internal ARKODE / stepper interfaces, and moved this to the end of arkode_impl.h
  2. I noticed that most of my internal utility routines to check Butcher table order conditions did not adhere to C++ standards, in that they all began with double underscores, e.g. __dot. I changed the names of these functions to instead prefix them with arkode_butcher, e.g., arkode_butcher_dot. All of these changes are in arkode_butcher.c.
  3. I added declaration of two routines that had been missing from arkode_sprkstep.h: SPRKStepSetRootDirection and SPRKStepSetNoInactiveRootWarn. While both are now deprecated, the existing implementations were unusable because they were missing from the header.