Skip to content

Commit 5cd1d2e

Browse files
Merge branch 'master' into singularity-logging
2 parents 6d9273a + 10b1bd5 commit 5cd1d2e

456 files changed

Lines changed: 9538 additions & 3086 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/Downstream.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ jobs:
3535
- {user: SKopecz, repo: PositiveIntegrators.jl, group: Downstream}
3636

3737
steps:
38-
- uses: actions/checkout@v6
38+
- uses: actions/checkout@v7
3939
- uses: julia-actions/setup-julia@v3
4040
with:
4141
version: ${{ matrix.julia-version }}
4242
arch: x64
4343
- name: Clone Downstream
44-
uses: actions/checkout@v6
44+
uses: actions/checkout@v7
4545
with:
4646
repository: ${{ matrix.package.user }}/${{ matrix.package.repo }}
4747
path: downstream

.typos.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ vectorized = "vectorized"
2222
extrapolant = "extrapolant"
2323
# Person names in citations - these are correct spellings
2424
Sigal = "Sigal" # Sigal Gottlieb is a real person/author
25+
lamba = "lamba" # Lamba's adaptive Euler-Maruyama method (LambaEM, LambaEulerHeun)
26+
Lamba = "Lamba"
27+
Strang = "Strang" # Strang splitting (Gilbert Strang)
2528
Steinebach = "Steinebach"
2629
Protopapa = "Protopapa"
2730
Hairer = "Hairer"
@@ -127,6 +130,7 @@ iif = "iif"
127130
currate = "currate" # current rate variable in tau-leaping
128131
SIE = "SIE" # SIEA/SIEB algorithm name prefix
129132
SME = "SME" # SME algorithm name (Stochastic Modified Euler)
133+
MIS = "MIS" # Multirate Infinitesimal Step methods (MIS2, MIS3a, ...)
130134
resetted = "resetted" # variable name in stepsize control
131135
strat = "strat" # Stratonovich abbreviation
132136

NEWS.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Most of the breaking changes fall into a small set of recurring themes. Keep the
5151
# v7 — a typed object
5252
Rosenbrock23(autodiff = AutoForwardDiff())
5353
solve(prob, alg;
54-
verbose = ODEVerbosity(SciMLLogging.None()),
54+
verbose = DEVerbosity(SciMLLogging.None()),
5555
alias = ODEAliasSpecifier(alias_u0 = true))
5656
```
5757

@@ -64,7 +64,7 @@ Most of the breaking changes fall into a small set of recurring themes. Keep the
6464

6565
The cleanest path is **not** to jump straight from an old environment onto v7. Most renamed APIs (e.g. `DEAlgorithm``AbstractDEAlgorithm`, `u_modified!``derivative_discontinuity!`, `has_destats``has_stats`, `sol.destats``sol.stats`, the `construct*` tableau functions, `alias_u0`/`alias_du0`, `beta1`/`beta2`, PID kwargs) already exist under their new names in **SciMLBase v2** / **OrdinaryDiffEq v6** with deprecation warnings. The recommended sequence is:
6666

67-
1. **Stay on SciMLBase v2 / OrdinaryDiffEq v6.** Update your code to the new names (`has_stats`, `sol.stats`, `AbstractDEAlgorithm`, `derivative_discontinuity!`, `ODEAliasSpecifier`, `ODEVerbosity`, `ADTypes`-based `autodiff`, explicit `controller = …` objects, new tableau names) while the deprecation shims still exist.
67+
1. **Stay on SciMLBase v2 / OrdinaryDiffEq v6.** Update your code to the new names (`has_stats`, `sol.stats`, `AbstractDEAlgorithm`, `derivative_discontinuity!`, `ODEAliasSpecifier`, `DEVerbosity`, `ADTypes`-based `autodiff`, explicit `controller = …` objects, new tableau names) while the deprecation shims still exist.
6868
2. **Verify your tests pass on v6 with no deprecation warnings.**
6969
3. **Then bump to v7.** At this point your code should compile and run against v7 without further changes aside from the genuinely new breakage (RAT v4 array semantics, ensemble `prob_func`/`output_func` signature, struct type parameter removals, kwargs that truly no longer exist, default changes like `CheckInit` and `williamson_condition=false`).
7070

@@ -310,11 +310,11 @@ Rosenbrock23(autodiff=AutoFiniteDiff())
310310
# v6
311311
solve(prob, alg, verbose=false)
312312

313-
# v7 — must use ODEVerbosity
314-
solve(prob, alg, verbose=ODEVerbosity(SciMLLogging.None()))
313+
# v7 — must use DEVerbosity
314+
solve(prob, alg, verbose=DEVerbosity(SciMLLogging.None()))
315315
```
316316

317-
**Why:** same type-stability reason, plus `ODEVerbosity` exposes fine-grained control (separate levels for nonlinear solver, linear solver, initialization, etc.) that a single `Bool` can't express.
317+
**Why:** same type-stability reason, plus `DEVerbosity` exposes fine-grained control (separate levels for nonlinear solver, linear solver, initialization, etc.) that a single `Bool` can't express.
318318

319319
### alias: Bool no longer accepted
320320

Project.toml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "OrdinaryDiffEq"
22
uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
33
authors = ["Chris Rackauckas <accounts@chrisrackauckas.com>", "Yingbo Ma <mayingbo5@gmail.com>"]
4-
version = "7.0.0"
4+
version = "7.1.1"
55

66
[deps]
77
ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"
@@ -52,7 +52,7 @@ OrdinaryDiffEqStabilizedRK = {path = "lib/OrdinaryDiffEqStabilizedRK"}
5252
OrdinaryDiffEqSymplecticRK = {path = "lib/OrdinaryDiffEqSymplecticRK"}
5353

5454
[compat]
55-
ADTypes = "1.16.0"
55+
ADTypes = "1.22.0"
5656
CommonSolve = "0.2.6"
5757
DocStringExtensions = "0.9.5"
5858
ForwardDiff = "1.3.3"
@@ -62,8 +62,10 @@ OrdinaryDiffEqDefault = "2"
6262
OrdinaryDiffEqRosenbrock = "2"
6363
OrdinaryDiffEqTsit5 = "2"
6464
OrdinaryDiffEqVerner = "2"
65-
SciMLBase = "3"
65+
RecursiveArrayTools = "4.2.0"
66+
SciMLBase = "3.30.0"
6667
SciMLLogging = "2.0.0"
68+
SciMLTesting = "1.7"
6769
julia = "1.10"
6870

6971
[extras]
@@ -84,7 +86,6 @@ JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb"
8486
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
8587
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
8688
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
87-
NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56"
8889
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
8990
ODEProblemLibrary = "fdc4e326-1af4-4b90-96e7-779fcce2daa5"
9091
OrdinaryDiffEqAdamsBashforthMoulton = "89bda076-bce5-4f1c-845f-551c83cdda9a"
@@ -117,6 +118,7 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
117118
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
118119
RecursiveFactorization = "f2c3362d-daeb-58d1-803e-2bc74f2840b4"
119120
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
121+
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
120122
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
121123
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
122124
SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5"
@@ -129,4 +131,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
129131
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
130132

131133
[targets]
132-
test = ["ADTypes", "ArrayInterface", "ComponentArrays", "AlgebraicMultigrid", "DiffEqBase", "DiffEqCallbacks", "DifferentiationInterface", "DiffEqDevTools", "ExplicitImports", "ForwardDiff", "IncompleteLU", "InteractiveUtils", "LinearAlgebra", "LinearSolve", "ODEProblemLibrary", "OrdinaryDiffEqAdamsBashforthMoulton", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqExplicitRK", "OrdinaryDiffEqExplicitTableaus", "OrdinaryDiffEqExponentialRK", "OrdinaryDiffEqExtrapolation", "OrdinaryDiffEqFIRK", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqIMEXMultistep", "OrdinaryDiffEqLinear", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "NLsolve", "NonlinearSolve", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqNordsieck", "OrdinaryDiffEqPDIRK", "OrdinaryDiffEqPRK", "OrdinaryDiffEqQPRK", "OrdinaryDiffEqRKN", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqStabilizedIRK", "OrdinaryDiffEqStabilizedRK", "OrdinaryDiffEqSymplecticRK", "ElasticArrays", "JLArrays", "Random", "SafeTestsets", "StableRNGs", "StructArrays", "Test", "Unitful", "Pkg", "RecursiveArrayTools", "RecursiveFactorization", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings", "StaticArrays", "Statistics"]
134+
test = ["ADTypes", "ArrayInterface", "ComponentArrays", "AlgebraicMultigrid", "DiffEqBase", "DiffEqCallbacks", "DifferentiationInterface", "DiffEqDevTools", "ExplicitImports", "ForwardDiff", "IncompleteLU", "InteractiveUtils", "LinearAlgebra", "LinearSolve", "ODEProblemLibrary", "OrdinaryDiffEqAdamsBashforthMoulton", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqExplicitRK", "OrdinaryDiffEqExplicitTableaus", "OrdinaryDiffEqExponentialRK", "OrdinaryDiffEqExtrapolation", "OrdinaryDiffEqFIRK", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqIMEXMultistep", "OrdinaryDiffEqLinear", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "NonlinearSolve", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqNordsieck", "OrdinaryDiffEqPDIRK", "OrdinaryDiffEqPRK", "OrdinaryDiffEqQPRK", "OrdinaryDiffEqRKN", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqStabilizedIRK", "OrdinaryDiffEqStabilizedRK", "OrdinaryDiffEqSymplecticRK", "ElasticArrays", "JLArrays", "Random", "SafeTestsets", "SciMLTesting", "StableRNGs", "StructArrays", "Test", "Unitful", "Pkg", "RecursiveArrayTools", "RecursiveFactorization", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings", "StaticArrays", "Statistics"]

docs/src/devtools/alg_dev/benchmarks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ on each of these values.
5454

5555
### WorkPrecision
5656

57-
A WorkPrecision calculates the necessary componnets of a work-precision plot. This
57+
A WorkPrecision calculates the necessary components of a work-precision plot. This
5858
shows how time scales with the user chosen tolerances on a given problem. To make
5959
a WorkPrecision, you give it a vector of absolute and relative tolerances:
6060

docs/src/implicit/FIRK.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ These methods are recommended for:
3535

3636
RadauIIA methods are based on Gaussian collocation and achieve order 2s-1 for s stages, making them among the highest-order implicit methods available. They represent the ODE analog of Gaussian quadrature with a fixed right node (Gauss-Radau). They are L-stable, meaning they are stiffly accurate and handle large negative eigenvalues/stiffness ratios. For more details on recent advances in FIRK methods, see our paper: [High-Order Adaptive Time Stepping for the Incompressible Navier-Stokes Equations](https://arxiv.org/abs/2412.14362).
3737

38-
Gauss–Legendre methods use the roots of the Legendre polynomial directly as collocation points and achieve an order of 2s, the highest order IRK available. They are also A-stable, symmetric, and can be symplectic in certain usages. They conserve energy within the system but are not L-Stable like Radau, which means they preserve oscilations instead of damping.
38+
Gauss–Legendre methods use the roots of the Legendre polynomial directly as collocation points and achieve an order of 2s, the highest order IRK available. They are also A-stable, symmetric, and can be symplectic in certain usages. They conserve energy within the system but are not L-Stable like Radau, which means they preserve oscillations instead of damping.
3939

4040
## Computational Considerations
4141

docs/src/semiimplicit/StabilizedRK.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ If not provided, the methods include automatic estimation procedures.
5353

5454
- **`RKC`**: Second-order one-step stabilized method for low accuracy requirements
5555
- **`TSRKC3`**: Third-order two-step stabilized method for moderate accuracy requirements
56+
- **`ROCK4`**: Fourth-order stabilized method for higher accuracy requirements
5657
- **`RKL2`**: Second-order, monotone stable, super-time-stepping method for parabolic PDEs
5758

5859
## Performance Guidelines
@@ -97,6 +98,7 @@ ROCK2
9798
ROCK4
9899
RKC
99100
RKMC2
101+
TSRKC2
100102
TSRKC3
101103
SERK2
102104
ESERK4

lib/DelayDiffEq/Project.toml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "DelayDiffEq"
22
uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb"
33
authors = ["Chris Rackauckas <accounts@chrisrackauckas.com>"]
4-
version = "6.0.3"
4+
version = "6.0.6"
55

66
[deps]
77
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
@@ -57,21 +57,20 @@ DiffEqBase = {path = "../DiffEqBase"}
5757
DiffEqDevTools = {path = "../DiffEqDevTools"}
5858

5959
[compat]
60-
ADTypes = "1.16"
60+
ADTypes = "1.22.0"
6161
Aqua = "0.8.11"
6262
ArrayInterface = "7.19.0"
6363
DDEProblemLibrary = "0.1"
6464
BinaryHeaps = "1"
6565
DiffEqBase = "7"
6666
DiffEqCallbacks = "4.17.0"
6767
DiffEqDevTools = "3"
68-
DiffEqNoiseProcess = "5"
69-
ExplicitImports = "1.13.1"
68+
DiffEqNoiseProcess = "5.30.0"
7069
FastBroadcast = "1.3"
7170
FiniteDiff = "2.27"
7271
ForwardDiff = "1.3.3"
7372
LinearAlgebra = "1"
74-
LinearSolve = "3.75.0"
73+
LinearSolve = "3.75.0, 4"
7574
Logging = "1"
7675
OrdinaryDiffEqBDF = "2"
7776
OrdinaryDiffEqCore = "4"
@@ -89,10 +88,11 @@ OrdinaryDiffEqSSPRK = "2"
8988
OrdinaryDiffEqTsit5 = "2"
9089
OrdinaryDiffEqVerner = "2"
9190
Random = "<0.0.1, 1"
92-
RecursiveArrayTools = "4"
91+
RecursiveArrayTools = "4.2.0"
9392
Reexport = "1.2.2"
9493
SafeTestsets = "0.1.0"
95-
SciMLBase = "3.1.0"
94+
SciMLBase = "3.30.0"
95+
SciMLTesting = "1.7"
9696
SparseArrays = "<0.0.1, 1, 2"
9797
StochasticDiffEqCore = "2"
9898
StochasticDiffEqHighOrder = "2"
@@ -119,7 +119,6 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
119119
DDEProblemLibrary = "f42792ee-6ffc-4e2a-ae83-8ee2f22de800"
120120
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
121121
DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d"
122-
ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7"
123122
FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41"
124123
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
125124
OrdinaryDiffEqBDF = "6ad6398a-0878-4a85-9266-38940aa047c8"
@@ -134,8 +133,9 @@ OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2"
134133
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
135134
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
136135
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
136+
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
137137
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
138138
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
139139

140140
[targets]
141-
test = ["ADTypes", "Aqua", "DDEProblemLibrary", "DiffEqCallbacks", "DiffEqDevTools", "ExplicitImports", "FiniteDiff", "LinearSolve", "OrdinaryDiffEqBDF", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "Random", "RecursiveArrayTools", "SafeTestsets", "SparseArrays", "StochasticDiffEqCore", "StochasticDiffEqHighOrder", "StochasticDiffEqImplicit", "StochasticDiffEqLowOrder", "StochasticDiffEqROCK", "Test", "Unitful"]
141+
test = ["ADTypes", "Aqua", "DDEProblemLibrary", "DiffEqCallbacks", "DiffEqDevTools", "FiniteDiff", "LinearSolve", "OrdinaryDiffEqBDF", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "Random", "RecursiveArrayTools", "SafeTestsets", "SciMLTesting", "SparseArrays", "StochasticDiffEqCore", "StochasticDiffEqHighOrder", "StochasticDiffEqImplicit", "StochasticDiffEqLowOrder", "StochasticDiffEqROCK", "Test", "Unitful"]

lib/DelayDiffEq/src/DelayDiffEq.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@ import FastBroadcast: @..
3030

3131
using OrdinaryDiffEqNonlinearSolve: NLAnderson, NLFunctional
3232
using OrdinaryDiffEqCore: AbstractNLSolverCache, SlowConvergence,
33-
alg_extrapolates, alg_maximum_order, initialize!
33+
alg_extrapolates, alg_maximum_order
3434
using OrdinaryDiffEqCore: StochasticDiffEqAlgorithm,
3535
StochasticDiffEqRODEAlgorithm
3636
using OrdinaryDiffEqRosenbrock: RosenbrockMutableCache
3737
using OrdinaryDiffEqFunctionMap: FunctionMap
3838
# using OrdinaryDiffEqDifferentiation: resize_grad_config!, resize_jac_config!
3939

40-
using DiffEqBase: is_diagonal_noise, DEVerbosity
40+
using SciMLBase: is_diagonal_noise
41+
using DiffEqBase: DEVerbosity
4142

4243
# Explicit imports for functions
4344
using OrdinaryDiffEqCore: AutoSwitch, CompositeAlgorithm

lib/DelayDiffEq/src/integrators/interface.jl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,16 @@ function DiffEqBase.initialize!(integrator::DDEIntegrator)
206206
end
207207

208208
# signal the integrator of a derivative discontinuity
209+
"""
210+
derivative_discontinuity!(integrator::DDEIntegrator, bool::Bool)
211+
212+
Flag whether the current callback introduced a derivative discontinuity. Behaves
213+
identically to the `ODEIntegrator` method, including the order-independent,
214+
any-`true`-wins merge across simultaneous callbacks; see that method for details.
215+
"""
209216
function SciMLBase.derivative_discontinuity!(integrator::DDEIntegrator, bool::Bool)
217+
# See ODEIntegrator counterpart: plain assignment; the order-independent merge
218+
# lives in apply_callback! / apply_discrete_callback!.
210219
return integrator.derivative_discontinuity = bool
211220
end
212221

0 commit comments

Comments
 (0)