Skip to content

Commit fd4631d

Browse files
Merge pull request #3282 from ChrisRackauckas-Claude/move-diffeqdevtools
Move DiffEqDevTools into monorepo as sublibrary
2 parents 6968a1a + ea8869b commit fd4631d

19 files changed

+13025
-0
lines changed

Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
1010
CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2"
1111
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
1212
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
13+
DiffEqDevTools = "f3b72e0c-5b89-59e1-b016-84e28bfd966d"
1314
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
1415
EnumX = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
1516
ExponentialUtilities = "d4d017d3-3776-5f7e-afef-a10c40355c18"
@@ -105,6 +106,7 @@ OrdinaryDiffEqSymplecticRK = {path = "lib/OrdinaryDiffEqSymplecticRK"}
105106
OrdinaryDiffEqTsit5 = {path = "lib/OrdinaryDiffEqTsit5"}
106107
OrdinaryDiffEqVerner = {path = "lib/OrdinaryDiffEqVerner"}
107108
DiffEqBase = {path = "lib/DiffEqBase"}
109+
DiffEqDevTools = {path = "lib/DiffEqDevTools"}
108110

109111
[compat]
110112
ADTypes = "1.16"

lib/DiffEqDevTools/Project.toml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name = "DiffEqDevTools"
2+
uuid = "f3b72e0c-5b89-59e1-b016-84e28bfd966d"
3+
authors = ["Chris Rackauckas <accounts@chrisrackauckas.com>"]
4+
version = "2.48.0"
5+
6+
[deps]
7+
DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
8+
DiffEqNoiseProcess = "77a26b50-5914-5dd7-bc55-306e6241c503"
9+
Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b"
10+
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
11+
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
12+
NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56"
13+
RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
14+
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
15+
RootedTrees = "47965b36-3f3e-11e9-0dcf-4570dfd42a8c"
16+
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
17+
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
18+
StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a"
19+
20+
[sources]
21+
DiffEqBase = {path = "../DiffEqBase"}
22+
23+
[compat]
24+
BVProblemLibrary = "0.1"
25+
BoundaryValueDiffEq = "5"
26+
DDEProblemLibrary = "0.1"
27+
DelayDiffEq = "5.20"
28+
DiffEqBase = "6.94.4"
29+
DiffEqNoiseProcess = "5.0"
30+
Distributed = "1.9"
31+
LinearAlgebra = "1.9"
32+
Logging = "1.9"
33+
NLsolve = "4.2"
34+
NonlinearSolve = "3.13, 4"
35+
ODEProblemLibrary = "0.1"
36+
OrdinaryDiffEq = "6"
37+
ParameterizedFunctions = "5"
38+
RecipesBase = "1"
39+
RecursiveArrayTools = "2, 3"
40+
RootedTrees = "2"
41+
SDEProblemLibrary = "0.1"
42+
SciMLBase = "2.52.2"
43+
Statistics = "1"
44+
StochasticDelayDiffEq = "1"
45+
StochasticDiffEq = "6"
46+
StructArrays = "0.6, 0.7"
47+
julia = "1.9"
48+
49+
[extras]
50+
BVProblemLibrary = "ded0fc24-dfea-4565-b1d9-79c027d14d84"
51+
BoundaryValueDiffEq = "764a87c0-6b3e-53db-9096-fe964310641d"
52+
DDEProblemLibrary = "f42792ee-6ffc-4e2a-ae83-8ee2f22de800"
53+
DelayDiffEq = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb"
54+
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
55+
ODEProblemLibrary = "fdc4e326-1af4-4b90-96e7-779fcce2daa5"
56+
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
57+
ParameterizedFunctions = "65888b18-ceab-5e60-b2b9-181511a3b968"
58+
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
59+
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
60+
SDEProblemLibrary = "c72e72a9-a271-4b2b-8966-303ed956772e"
61+
StochasticDelayDiffEq = "29a0d76e-afc8-11e9-03a4-eda52ae4b960"
62+
StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0"
63+
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
64+
65+
[targets]
66+
test = ["BoundaryValueDiffEq", "BVProblemLibrary", "DelayDiffEq", "DDEProblemLibrary", "NonlinearSolve", "ODEProblemLibrary", "SDEProblemLibrary", "OrdinaryDiffEq", "ParameterizedFunctions", "Random", "StochasticDiffEq", "StochasticDelayDiffEq", "Plots", "Test"]
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
module DiffEqDevTools
2+
3+
using DiffEqBase: AbstractODEAlgorithm
4+
using DiffEqBase, RecipesBase, RecursiveArrayTools, DiffEqNoiseProcess, StructArrays
5+
using NLsolve, LinearAlgebra, RootedTrees
6+
7+
using LinearAlgebra, Distributed
8+
9+
using Statistics
10+
11+
import Base: length
12+
13+
import DiffEqBase: AbstractODEProblem, AbstractDDEProblem, AbstractDDEAlgorithm,
14+
AbstractODESolution, AbstractRODEProblem, AbstractSDEProblem,
15+
AbstractSDDEProblem, AbstractEnsembleProblem,
16+
AbstractDAEProblem, AbstractBVProblem, @def, ConvergenceSetup,
17+
DEAlgorithm,
18+
ODERKTableau, AbstractTimeseriesSolution, ExplicitRKTableau,
19+
ImplicitRKTableau
20+
21+
import LinearAlgebra: norm, I
22+
23+
const TIMESERIES_ERRORS = Set([:l2, :l∞, :L2, :L∞])
24+
const DENSE_ERRORS = Set([:L2, :L∞])
25+
const WEAK_TIMESERIES_ERRORS = Set([:weak_l2, :weak_l∞])
26+
const WEAK_DENSE_ERRORS = Set([:weak_L2, :weak_L∞])
27+
const WEAK_ERRORS = union(Set([:weak_final]),
28+
WEAK_TIMESERIES_ERRORS, WEAK_DENSE_ERRORS)
29+
const ALL_ERRORS = union([:final],
30+
TIMESERIES_ERRORS, DENSE_ERRORS, WEAK_TIMESERIES_ERRORS, WEAK_DENSE_ERRORS, WEAK_ERRORS)
31+
32+
include("benchmark.jl")
33+
include("convergence.jl")
34+
include("plotrecipes.jl")
35+
include("test_solution.jl")
36+
include("ode_tableaus.jl")
37+
include("tableau_info.jl")
38+
39+
export ConvergenceSimulation, Shootout, ShootoutSet, TestSolution
40+
41+
#Benchmark Functions
42+
export Shootout, ShootoutSet, WorkPrecision, WorkPrecisionSet
43+
44+
export test_convergence, analyticless_test_convergence, appxtrue!, appxtrue
45+
46+
export get_sample_errors
47+
48+
#Tab Functions
49+
export stability_region, residual_order_condition, check_tableau, imaginary_stability_interval
50+
51+
#Tableaus
52+
export deduce_Butcher_tableau
53+
export constructEuler, constructKutta3, constructRK4, constructRK438Rule,
54+
constructImplicitEuler, constructMidpointRule, constructTrapezoidalRule,
55+
constructLobattoIIIA4, constructLobattoIIIB2, constructLobattoIIIB4,
56+
constructLobattoIIIC2, constructLobattoIIIC4, constructLobattoIIICStar2,
57+
constructLobattoIIICStar4, constructLobattoIIID2, constructLobattoIIID4,
58+
constructRadauIA3, constructRadauIA5,
59+
constructRadauIIA3, constructRadauIIA5,
60+
constructRalston, constructRalston4, constructHeun, constructRKF5,
61+
constructBogakiShampine3,
62+
constructCashKarp, constructRKF8, constructDormandPrince8,
63+
constructFeagin10, constructFeagin12, constructFeagin14,
64+
constructDormandPrince8_64bit, constructRKF5, constructRungeFirst5,
65+
constructCassity5, constructLawson5,
66+
constructLutherKonen5, constructLutherKonen52,
67+
constructLutherKonen53, constructPapakostasPapaGeorgiou5,
68+
constructPapakostasPapaGeorgiou52,
69+
constructTsitouras5, constructBogakiShampine5, constructSharpSmart5,
70+
constructButcher6, constructButcher7,
71+
constructDverk, constructClassicVerner6,
72+
constructClassicVerner7, constructClassicVerner8,
73+
constructVernerRobust7, constructEnrightVerner7,
74+
constructTanakaYamashitaStable7,
75+
constructTanakaYamashitaEfficient7, constructSharpSmart7,
76+
constructSharpVerner7,
77+
constructVernerEfficient7, constructCooperVerner8,
78+
constructCooperVerner82,
79+
constructTsitourasPapakostas8, constructdverk78, constructEnrightVerner8,
80+
constructCurtis8, constructVernerRobust9, constructVernerEfficient9,
81+
constructSharp9, constructTsitouras9,
82+
constructTsitouras92,
83+
constructOno12, constructCurtis10,
84+
constructOno10,
85+
constructCurtis10, constructBaker10,
86+
constructHairer10, constructButcher63,
87+
constructButcher6, constructButcher62,
88+
constructVerner6, constructDormandPrince6,
89+
constructSharpVerner6, constructVerner9162,
90+
constructVerner916, constructVernerRobust6,
91+
constructVernerEfficient6, constructPapakostas6, constructLawson6,
92+
constructTsitourasPapakostas6, constructDormandLockyerMcCorriganPrince6,
93+
constructTanakaKasugaYamashitaYazaki6D,
94+
constructTanakaKasugaYamashitaYazaki6C,
95+
constructTanakaKasugaYamashitaYazaki6B,
96+
constructTanakaKasugaYamashitaYazaki6A,
97+
constructMikkawyEisa, constructChummund6, constructChummund62,
98+
constructHuta62, constructHuta6, constructRKF4,
99+
constructVerner7, constructVerner8,
100+
constructVerner6, constructSSPRK22, constructSSPRK33,
101+
constructSSPRK43, constructSSPRK104,
102+
constructRKO65
103+
104+
end # module

0 commit comments

Comments
 (0)