Skip to content

Commit 039b9f9

Browse files
vchuravyclaude
andcommitted
Setup Theseus.jl documentation
- Add docs/src/theseus.md with API reference for all integrator families - Fix refs.bib: convert BibLaTeX fields (journaltitle, date) to BibTeX (journal, year), add missing comma to Kelley2022 key, remove urldate warnings - Fix CI doctest step: use doctest(Theseus; manual=false) since Theseus does not have its own docs/src directory Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0b1d020 commit 039b9f9

3 files changed

Lines changed: 106 additions & 62 deletions

File tree

.github/workflows/Documentation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
DocMeta.setdocmeta!(Ariadne, :DocTestSetup, :(using Ariadne); recursive=true)
3737
DocMeta.setdocmeta!(Theseus, :DocTestSetup, :(using Theseus); recursive=true)
3838
doctest(Ariadne)
39-
doctest(Theseus)
39+
doctest(Theseus; manual=false)
4040
'
4141
- name: generate docs
4242
run: julia --project=docs docs/make.jl

docs/src/refs.bib

Lines changed: 37 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,21 @@
1-
@BOOK{Kelley2022
1+
@BOOK{Kelley2022,
22
title = {Solving nonlinear equations with iterative methods: Solvers and
33
examples in Julia},
44
author = {Kelley, C T},
55
publisher = {Society for Industrial and Applied Mathematics},
6-
location = {Philadelphia, PA},
7-
date = {2022-01},
6+
year = {2022},
87
doi = {10.1137/1.9781611977271},
98
isbn = {9781611977264,9781611977271},
10-
urldate = {2024-11-15},
11-
language = {en}
129
}
1310

1411
@BOOK{Kelley2003,
1512
title = {Solving nonlinear equations with Newton's method},
1613
author = {Kelley, C T},
1714
publisher = {Society for Industrial and Applied Mathematics},
18-
location = {Philadelphia, Pa.},
19-
date = {2003},
15+
year = {2003},
2016
doi = {10.1137/1.9780898718898},
2117
isbn = {9780898715460,9780898718898},
2218
series = {Fundamentals of algorithms},
23-
urldate = {2024-11-12},
24-
language = {en}
2519
}
2620

2721
@article{montoison-orban-2023,
@@ -36,65 +30,47 @@ @article{montoison-orban-2023
3630
}
3731

3832
@ARTICLE{Kan2022-ko,
39-
title = {Extension of complex step finite difference method to
40-
Jacobian-free {Newton–Krylov​} method},
41-
author = {Kan, Ziyun and Song, Ningning and Peng, Haijun and Chen,
42-
Biaosong},
43-
journaltitle = {Journal of computational and applied mathematics},
44-
publisher = {Elsevier BV},
45-
volume = {399},
46-
issue = {113732},
47-
pages = {113732},
48-
date = {2022-01-01},
49-
doi = {10.1016/j.cam.2021.113732},
50-
issn = {0377-0427,1879-1778},
51-
urldate = {2024-10-21},
52-
language = {en}
33+
title = {Extension of complex step finite difference method to
34+
Jacobian-free {Newton--Krylov} method},
35+
author = {Kan, Ziyun and Song, Ningning and Peng, Haijun and Chen,
36+
Biaosong},
37+
journal = {Journal of Computational and Applied Mathematics},
38+
volume = {399},
39+
pages = {113732},
40+
year = {2022},
41+
doi = {10.1016/j.cam.2021.113732},
5342
}
5443

5544
@ARTICLE{Hosea1996-xv,
56-
title = {Analysis and implementation of {TR}-{BDF2}},
57-
author = {Hosea, M E and Shampine, L F},
58-
journaltitle = {Applied numerical mathematics: transactions of IMACS},
59-
publisher = {Elsevier BV},
60-
volume = {20},
61-
issue = {1-2},
62-
pages = {21--37},
63-
date = {1996-02-01},
64-
doi = {10.1016/0168-9274(95)00115-8},
65-
issn = {0168-9274,1873-5460},
66-
urldate = {2025-03-04},
67-
language = {en}
45+
title = {Analysis and implementation of {TR}-{BDF2}},
46+
author = {Hosea, M E and Shampine, L F},
47+
journal = {Applied Numerical Mathematics},
48+
volume = {20},
49+
number = {1--2},
50+
pages = {21--37},
51+
year = {1996},
52+
doi = {10.1016/0168-9274(95)00115-8},
6853
}
6954

7055
@ARTICLE{Bank1985-gh,
71-
title = {Transient simulation of silicon devices and circuits},
72-
author = {Bank, R E and Coughran, W M and Fichtner, W and Grosse, E H
73-
and Rose, D J and Smith, R K},
74-
journaltitle = {IEEE transactions on electron devices},
75-
publisher = {Institute of Electrical and Electronics Engineers (IEEE)},
76-
volume = {32},
77-
issue = {10},
78-
pages = {1992--2007},
79-
date = {1985-10},
80-
doi = {10.1109/t-ed.1985.22232},
81-
issn = {0018-9383,1557-9646},
82-
urldate = {2025-05-27},
83-
language = {en}
56+
title = {Transient simulation of silicon devices and circuits},
57+
author = {Bank, R E and Coughran, W M and Fichtner, W and Grosse, E H
58+
and Rose, D J and Smith, R K},
59+
journal = {IEEE Transactions on Electron Devices},
60+
volume = {32},
61+
number = {10},
62+
pages = {1992--2007},
63+
year = {1985},
64+
doi = {10.1109/t-ed.1985.22232},
8465
}
8566

8667
@ARTICLE{Bonaventura2021-za,
87-
title = {The {TR}-{BDF2} method for second order problems in structural
88-
mechanics},
89-
author = {Bonaventura, Luca and Mármol, Macarena Gómez},
90-
journaltitle = {Computers \& mathematics with applications (Oxford, England:
91-
1987)},
92-
publisher = {Elsevier BV},
93-
volume = {92},
94-
pages = {13--26},
95-
date = {2021-06-15},
96-
doi = {10.1016/j.camwa.2021.03.037},
97-
issn = {0898-1221,1873-7668},
98-
urldate = {2025-05-27},
99-
language = {en}
68+
title = {The {TR}-{BDF2} method for second order problems in structural
69+
mechanics},
70+
author = {Bonaventura, Luca and M{\'a}rmol, Macarena G{\'o}mez},
71+
journal = {Computers \& Mathematics with Applications},
72+
volume = {92},
73+
pages = {13--26},
74+
year = {2021},
75+
doi = {10.1016/j.camwa.2021.03.037},
10076
}

docs/src/theseus.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Theseus.jl
2+
3+
Theseus.jl provides implicit and implicit-explicit (IMEX) time integration methods that use
4+
Ariadne.jl's Newton–Krylov solver internally. All methods implement the
5+
[DifferentialEquations.jl integrator interface](https://docs.sciml.ai/DiffEqDocs/stable/basics/integrator/)
6+
and can be used with `ODEProblem` (and `SplitODEProblem` for IMEX).
7+
8+
## Nonlinear Implicit Methods
9+
10+
These single-step methods solve one nonlinear system per stage via Newton–Krylov.
11+
They accept an `ODEProblem` and the keyword argument `dt` (fixed time step).
12+
13+
```@docs
14+
Theseus.ImplicitEuler
15+
Theseus.ImplicitMidpoint
16+
Theseus.ImplicitTrapezoid
17+
Theseus.TRBDF2
18+
```
19+
20+
## Diagonally Implicit Runge–Kutta (DIRK) Methods
21+
22+
DIRK methods use a lower-triangular Butcher tableau. Each implicit stage requires
23+
one Newton–Krylov solve. They accept an `ODEProblem`.
24+
25+
```@docs
26+
Theseus.LobattoIIIA2
27+
Theseus.Crouzeix32
28+
Theseus.DIRK43
29+
```
30+
31+
## Implicit–Explicit (IMEX) Runge–Kutta Methods
32+
33+
IMEX methods split the right-hand side into a stiff part ``f_1`` and a non-stiff
34+
part ``f_2``. They accept a `SplitODEProblem(f1!, f2!, u0, tspan)`.
35+
36+
### Type I methods (Pareschi–Russo)
37+
38+
```@docs
39+
Theseus.SP111
40+
Theseus.H222
41+
Theseus.SSP2222
42+
Theseus.SSP2322
43+
Theseus.SSP2332
44+
Theseus.SSP3332
45+
Theseus.SSP3433
46+
```
47+
48+
### Type II methods (Ascher–Ruuth–Spiteri)
49+
50+
```@docs
51+
Theseus.HT222
52+
Theseus.ARS111
53+
Theseus.ARS222
54+
Theseus.ARS233
55+
Theseus.ARS443
56+
```
57+
58+
## Rosenbrock-W Methods
59+
60+
Rosenbrock-W methods linearise the implicit system and solve one linear system
61+
(via a Krylov method) per stage instead of a full Newton solve. The Jacobian
62+
approximation makes them *W methods*: the exact Jacobian is not required.
63+
They accept an `ODEProblem`.
64+
65+
```@docs
66+
Theseus.SSPKnoth
67+
Theseus.ROS2
68+
```

0 commit comments

Comments
 (0)