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

docs v7 rework #2317

Merged
merged 83 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
f7dbea8
docs Tsit5
ArnoStrouwen Aug 7, 2024
c7652ae
automate common first steps
ArnoStrouwen Aug 8, 2024
1172b79
add more info to Tsit5 use cases.
ArnoStrouwen Aug 7, 2024
5af8afb
docs LowOrderRK
ArnoStrouwen Aug 9, 2024
7600849
docs reproducibility
ArnoStrouwen Aug 9, 2024
94025dd
Alshina 6 non-adaptive
ArnoStrouwen Aug 11, 2024
c9c257c
docs HighOrderRK
ArnoStrouwen Aug 11, 2024
33b4522
docs Verner
ArnoStrouwen Aug 11, 2024
5f24809
docs Feagin
ArnoStrouwen Aug 11, 2024
336c515
add Euler
ArnoStrouwen Aug 11, 2024
68a9c6a
docs LowStorageRK
ArnoStrouwen Aug 11, 2024
5a24e10
finish RKM docstring
ArnoStrouwen Aug 11, 2024
3dca8f7
docs SSPRK
ArnoStrouwen Aug 11, 2024
21db974
docs AdamsBashforthMoulton
ArnoStrouwen Aug 11, 2024
539f9f3
format
ArnoStrouwen Aug 11, 2024
7e8e5ac
fix AB5 docstring
ArnoStrouwen Aug 12, 2024
a52c2e9
finish some SSPRK docstrings
ArnoStrouwen Aug 12, 2024
87bb3f1
start Nordsieck documentation
ArnoStrouwen Aug 12, 2024
e0d8eac
Add warnings for JVODE
ArnoStrouwen Aug 12, 2024
f397f99
docs RKN
ArnoStrouwen Aug 12, 2024
684a307
changeJVODE preferred alternative
ArnoStrouwen Aug 12, 2024
12a8be7
change JVODE preferred alternative
ArnoStrouwen Aug 12, 2024
f6589e2
Expand upon low storage docs
ArnoStrouwen Aug 12, 2024
69ff211
Expand upon Feagin docs.
ArnoStrouwen Aug 12, 2024
b0e494a
docs Nordsieck
ArnoStrouwen Aug 12, 2024
47114af
mark AN5 as experimental
ArnoStrouwen Aug 12, 2024
1cff39d
docs SymplecticRK and remove old docs
ArnoStrouwen Aug 12, 2024
4c272b8
expand SSPRK explanation
ArnoStrouwen Aug 12, 2024
5931a47
start docstring dependent on OrdinaryDiffEqDifferentiation
ArnoStrouwen Aug 13, 2024
4d51a16
start docstring dependent on OrdinaryDiffEqNonlinearSolve
ArnoStrouwen Aug 14, 2024
65034a5
start function for all implicit docstrings
ArnoStrouwen Aug 16, 2024
72245c4
upstream algorithm show method
ArnoStrouwen Aug 17, 2024
9bc7e0a
docs FIRK
ArnoStrouwen Aug 18, 2024
6d86116
add text MIME to show method for algs
ArnoStrouwen Aug 18, 2024
4223150
docs PRK
ArnoStrouwen Aug 18, 2024
9754be2
finish docstring LowStorageRK
ArnoStrouwen Aug 18, 2024
3912665
more docs PRK
ArnoStrouwen Aug 18, 2024
413d36a
PDIRK docs
ArnoStrouwen Aug 18, 2024
3032688
more PDIRK docs
ArnoStrouwen Aug 18, 2024
cfe4549
Extrapolation docs
ArnoStrouwen Aug 18, 2024
daffc25
docs Rosenbrock
ArnoStrouwen Aug 18, 2024
21f47aa
delete refactored implicit docstrings
ArnoStrouwen Aug 18, 2024
58b16a6
docs StabalizedRK
ArnoStrouwen Aug 18, 2024
cb5ed9c
fix name SERK2
ArnoStrouwen Aug 18, 2024
863b365
add some subtitles in documentation
ArnoStrouwen Aug 18, 2024
5ab2ad4
add more references
ArnoStrouwen Aug 18, 2024
788d900
add PDIRK explanation
ArnoStrouwen Aug 18, 2024
2457ecf
docs BDF
ArnoStrouwen Aug 18, 2024
686bfe0
remove more old docstrings
ArnoStrouwen Aug 19, 2024
5913ac4
add more doc subtitles
ArnoStrouwen Aug 19, 2024
dc84963
try make SBDF show up in docs
ArnoStrouwen Aug 19, 2024
a6ceab2
docs SDIRK
ArnoStrouwen Aug 19, 2024
0a9ef29
fix some fsal rebase issues
ArnoStrouwen Aug 19, 2024
8f2eb38
add FIRK description
ArnoStrouwen Aug 20, 2024
b99f110
Split Extrapolation into stiff and non-stiff
ArnoStrouwen Aug 20, 2024
78c44dd
expand symplectic explanation
ArnoStrouwen Aug 21, 2024
c44932f
add more algorithms and descriptions
ArnoStrouwen Aug 21, 2024
16d167a
docs Linear
ArnoStrouwen Aug 21, 2024
80e8b1f
Fill in linear descriptions
ArnoStrouwen Aug 21, 2024
c51322d
docs ExponentialRK
ArnoStrouwen Aug 21, 2024
6a0478f
StabalizedIRK docs
ArnoStrouwen Aug 21, 2024
79e620e
more StabalizedIRK docs
ArnoStrouwen Aug 21, 2024
0bb488d
proper symplectic example
ArnoStrouwen Aug 21, 2024
a3b98bf
proper RKN example
ArnoStrouwen Aug 21, 2024
0c4e998
docs IMEXMultistep
ArnoStrouwen Aug 21, 2024
8eaa4ea
more references
ArnoStrouwen Aug 21, 2024
6d90f74
docs QPRK
ArnoStrouwen Aug 21, 2024
b6242f0
format
ArnoStrouwen Aug 21, 2024
e244bfb
add more refs
ArnoStrouwen Aug 22, 2024
743844e
QPRK description
ArnoStrouwen Aug 22, 2024
30b2412
more references
ArnoStrouwen Aug 22, 2024
ed0a138
add proper linear example
ArnoStrouwen Aug 22, 2024
e5bd78b
add proper ExponentialRK example
ArnoStrouwen Aug 22, 2024
fba9d1f
add proper IMEX example
ArnoStrouwen Aug 22, 2024
cf5fbf4
add more references
ArnoStrouwen Aug 22, 2024
eb395b6
add more references
ArnoStrouwen Aug 24, 2024
08744bc
add proper StabalizedIRK example
ArnoStrouwen Aug 24, 2024
d2f8141
finish PRK keywords
ArnoStrouwen Aug 24, 2024
1f08cee
finish explicit Extrapolation keywords
ArnoStrouwen Aug 24, 2024
0cd03e0
collapse docstrings by default
ArnoStrouwen Aug 24, 2024
a94970a
Add more descriptions to keywords
ArnoStrouwen Aug 25, 2024
393a338
cross platform size_treshhold_ignore
ArnoStrouwen Aug 25, 2024
45f4d13
Fix some algorithm locations
ChrisRackauckas Aug 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions docs/common_first_steps.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using Markdown
function first_steps(name, solver)
Markdown.parse("""## Installation
To be able to access the solvers in `$name`, you must first install them use the Julia package manager:

```julia
using Pkg
Pkg.add("$name")
```
This will only install the solvers listed at the bottom of this page.
If you want to explore other solvers for your problem,
you will need to install some of the other libraries listed in the navigation bar on the left.

## Example usage

```julia
using $name

function lorenz!(du, u, p, t)
du[1] = 10.0 * (u[2] - u[1])
u[2] = u[1] * (28.0 - u[3]) - u[2]
du[3] = u[1] * u[2] - (8 / 3) * u[3]
end
u0 = [1.0; 0.0; 0.0]
tspan = (0.0, 100.0)
prob = ODEProblem(lorenz!, u0, tspan)
sol = solve(prob, $solver())
```""")
end
85 changes: 52 additions & 33 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,54 +8,73 @@ makedocs(sitename = "OrdinaryDiffEq.jl",
clean = true,
doctest = false,
modules = [OrdinaryDiffEq,
OrdinaryDiffEq.OrdinaryDiffEqAdamsBashforthMoulton,
OrdinaryDiffEq.OrdinaryDiffEqBDF,
OrdinaryDiffEq.OrdinaryDiffEqDefault,
OrdinaryDiffEq.OrdinaryDiffEqExplicitRK,
OrdinaryDiffEq.OrdinaryDiffEqExponentialRK,
OrdinaryDiffEq.OrdinaryDiffEqExtrapolation,
OrdinaryDiffEq.OrdinaryDiffEqStabilizedRK,
OrdinaryDiffEq.OrdinaryDiffEqStabilizedIRK,
OrdinaryDiffEq.OrdinaryDiffEqLowStorageRK,
OrdinaryDiffEq.OrdinaryDiffEqSSPRK,
OrdinaryDiffEq.OrdinaryDiffEqFeagin,
OrdinaryDiffEq.OrdinaryDiffEqSymplecticRK,
OrdinaryDiffEq.OrdinaryDiffEqFIRK,
OrdinaryDiffEq.OrdinaryDiffEqHighOrderRK,
OrdinaryDiffEq.OrdinaryDiffEqIMEXMultistep,
OrdinaryDiffEq.OrdinaryDiffEqLinear,
OrdinaryDiffEq.OrdinaryDiffEqLowOrderRK,
OrdinaryDiffEq.OrdinaryDiffEqLowStorageRK,
OrdinaryDiffEq.OrdinaryDiffEqNordsieck,
OrdinaryDiffEq.OrdinaryDiffEqPDIRK,
OrdinaryDiffEq.OrdinaryDiffEqPRK,
OrdinaryDiffEq.OrdinaryDiffEqQPRK,
OrdinaryDiffEq.OrdinaryDiffEqRKN,
OrdinaryDiffEq.OrdinaryDiffEqVerner,
OrdinaryDiffEq.OrdinaryDiffEqRosenbrock,
OrdinaryDiffEq.OrdinaryDiffEqSDIRK,
OrdinaryDiffEq.OrdinaryDiffEqBDF,
OrdinaryDiffEq.OrdinaryDiffEqDefault,
OrdinaryDiffEq.OrdinaryDiffEqFIRK],
OrdinaryDiffEq.OrdinaryDiffEqSSPRK,
OrdinaryDiffEq.OrdinaryDiffEqStabilizedIRK,
OrdinaryDiffEq.OrdinaryDiffEqStabilizedRK,
OrdinaryDiffEq.OrdinaryDiffEqSymplecticRK,
OrdinaryDiffEq.OrdinaryDiffEqTsit5,
OrdinaryDiffEq.OrdinaryDiffEqVerner
],
warnonly = [:docs_block, :missing_docs, :eval_block],
format = Documenter.HTML(analytics = "UA-90474609-3",
assets = ["assets/favicon.ico"],
canonical = "https://ordinarydiffeq.sciml.ai/stable/"),
canonical = "https://ordinarydiffeq.sciml.ai/stable/",
size_threshold_ignore = [joinpath("implicit", "Rosenbrock.md")]),
pages = [
"OrdinaryDiffEq.jl: ODE solvers and utilities" => "index.md",
"Usage" => "usage.md",
"Standard Non-Stiff ODEProblem Solvers" => [
"nonstiff/explicitrk.md",
"nonstiff/lowstorage_ssprk.md",
"nonstiff/explicit_extrapolation.md",
"nonstiff/nonstiff_multistep.md"
"Explicit Solvers" => [
"explicit/Tsit5.md",
"explicit/LowOrderRK.md",
"explicit/HighOrderRK.md",
"explicit/Verner.md",
"explicit/Feagin.md",
"explicit/LowStorageRK.md",
"explicit/SSPRK.md",
"explicit/AdamsBashforthMoulton.md",
"explicit/Nordsieck.md",
"explicit/RKN.md",
"explicit/SymplecticRK.md",
"explicit/PRK.md",
"explicit/QPRK.md",
"explicit/Extrapolation.md"
],
"Standard Stiff ODEProblem Solvers" => [
"stiff/firk.md",
"stiff/rosenbrock.md",
"stiff/stabilized_rk.md",
"stiff/sdirk.md",
"stiff/stiff_multistep.md",
"stiff/implicit_extrapolation.md"
],
"Second Order and Dynamical ODE Solvers" => [
"dynamical/nystrom.md",
"dynamical/symplectic.md"
"Implicit Solvers" => [
"implicit/SDIRK.md",
"implicit/FIRK.md",
"implicit/PDIRK.md",
"implicit/Rosenbrock.md",
"implicit/StabalizedRK.md",
"implicit/StabalizedIRK.md",
"implicit/BDF.md",
"implicit/Extrapolation.md"
],
"IMEX Solvers" => [
"imex/imex_multistep.md",
"imex/imex_sdirk.md"
"imex/IMEXMultistep.md"
],
"Semilinear ODE Solvers" => [
"semilinear/exponential_rk.md",
"semilinear/magnus.md"
],
"DAEProblem Solvers" => [
"dae/fully_implicit.md"
"semilinear/ExponentialRK.md",
"semilinear/Linear.md"
],
"Misc Solvers" => [
"misc.md"
Expand Down
7 changes: 0 additions & 7 deletions docs/src/dae/fully_implicit.md

This file was deleted.

18 changes: 0 additions & 18 deletions docs/src/dynamical/nystrom.md

This file was deleted.

21 changes: 0 additions & 21 deletions docs/src/dynamical/symplectic.md

This file was deleted.

36 changes: 36 additions & 0 deletions docs/src/explicit/AdamsBashforthMoulton.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
```@meta
CollapsedDocStrings = true
```
# OrdinaryDiffEqAdamsBashforthMoulton

Multistep methods, useful for integrating a very expensive to evaluate non-stiff system of differential equations.

```@eval
first_steps = evalfile("./common_first_steps.jl")
first_steps("OrdinaryDiffEqAdamsBashforthMoulton", "VCABM")
```

## Full list of solvers

### Explicit Multistep Methods

```@docs
AB3
AB4
AB5
```

### Predictor-Corrector Methods

```@docs
ABM32
ABM43
ABM54
VCAB3
VCAB4
VCAB5
VCABM3
VCABM4
VCABM5
VCABM
```
23 changes: 23 additions & 0 deletions docs/src/explicit/Extrapolation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
```@meta
CollapsedDocStrings = true
```
# OrdinaryDiffEqExtrapolation

Solvers based on within method parallelism, allowing multithreading of the solution across
different values of `f`.
The explicit extrapolation solvers are generally outclassed by other explicit methods.
However, some [stiff extrapolation](@ref StiffExtrapolation) methods perform very well if
the problem is sufficiently stiff.

```@eval
first_steps = evalfile("./common_first_steps.jl")
first_steps("OrdinaryDiffEqExtrapolation", "ExtrapolationMidpointDeuflhard")
```

## Full list of solvers

```@docs
AitkenNeville
ExtrapolationMidpointDeuflhard
ExtrapolationMidpointHairerWanner
```
25 changes: 25 additions & 0 deletions docs/src/explicit/Feagin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
```@meta
CollapsedDocStrings = true
```
# OrdinaryDiffEqFeagin

Preferred solvers for non-stiff problems at very low tolerance, `<1e-30`.
Best combined with preciser than `Float64` number types for the state, such as the `BigFloat` number type.
ArnoStrouwen marked this conversation as resolved.
Show resolved Hide resolved
Note that the Feagin methods have a less robust error estimator than the Verner methods, and thus even for
very low tolerance problems the Verner methods (`Vern9`) may still be more efficient. In addition, at extremely
low tolerances the explicit extrapolation methods allow for arbitrarily high variable order stepping which will
also outperform the Feagin methods. As such, the Feagin methods may be useful in the Float128 precision range
but should be tested against other algorithms.

```@eval
first_steps = evalfile("./common_first_steps.jl")
first_steps("OrdinaryDiffEqFeagin", "Feagin14")
```

## Full list of solvers

```@docs
Feagin10
Feagin12
Feagin14
```
21 changes: 21 additions & 0 deletions docs/src/explicit/HighOrderRK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
```@meta
CollapsedDocStrings = true
```
# OrdinaryDiffEqHighOrderRK

Solvers for non-stiff problems at low tolerance.
However, the solvers in [`OrdinaryDiffEqVerner`](@ref OrdinaryDiffEqVerner) generally perform better at low tolerances.

```@eval
first_steps = evalfile("./common_first_steps.jl")
first_steps("OrdinaryDiffEqHighOrderRK", "DP8")
```

## Full list of solvers

```@docs
TanYam7
TsitPap8
DP8
PFRK87
```
47 changes: 47 additions & 0 deletions docs/src/explicit/LowOrderRK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
```@meta
CollapsedDocStrings = true
```
# OrdinaryDiffEqLowOrderRK

If [`OrdinaryDiffEqTsit5`](@ref OrdinaryDiffEqTsit5) is not working well for your non-stiff problem at default and higher tolerance,
it can be worthwhile to explore the options in this package.
In particular, when more robust error control is required, [`BS5`](@ref) is a good choice.
If at moderate tolerances and the interpolation error is very important,
consider the [`OwrenZen5`](@ref) method.
For fast solving at higher tolerances, we recommend [`BS3`](@ref),
or [`OwrenZen3`](@ref)if the interpolation error is important.

```@eval
first_steps = evalfile("./common_first_steps.jl")
first_steps("OrdinaryDiffEqLowOrderRK", "BS3")
```

## Full list of solvers

```@docs
Euler
Heun
Ralston
Midpoint
RK4
BS3
OwrenZen3
OwrenZen4
OwrenZen5
BS5
DP5
Anas5
RKO65
FRK65
RKM
MSRK5
MSRK6
PSRK4p7q6
PSRK3p5q4
PSRK3p6q5
Stepanov5
SIR54
Alshina2
Alshina3
Alshina6
```
Loading
Loading