Mercurial > repos > public > sbplib_julia
annotate docs/src/manifolds_charts_atlases.md @ 1948:dd77b45ee1ac feature/grids/manifolds
Add some docstrings
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 07 Feb 2025 22:37:55 +0100 |
parents | 84e5ab97902d |
children | 3694f11075c5 |
rev | line source |
---|---|
1922
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 # Manifolds, Charts, and Atlases |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 To construct grids on more complicated geometries we use manifolds described |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 by one or more charts. The charts describe a mapping from some parameter space |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 to the geometry that we are interested in. If there are more than one chart |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 for a given geometry this collection of charts and their connection is |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 described by and atlas. |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 For the construction of differential and difference operators on a manifold |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 with a chart the library needs to know the Jacobian of the mapping as a |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 function of coordinates in the logical parameter space. Internally, |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 Diffinitive.jl uses a local Jacobian function, `Grids.jacobian(f, ΞΎ)`. For |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 geometry objects provided by the library this function should have fast and |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 efficient implementations. If you are creating your own mapping functions you |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 can implement `Grids.jacobian` for your function or type, for example |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 ```julia |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 f(x) = 2x |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 Grids.jacobian(::typeof(f), x) = fill(2, length(x)) |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
20 ``` |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
21 |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
22 ```julia |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
23 struct F end |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
24 (::F)(x) = 2x |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
25 Grids.jacobian(::F, x) = fill(2,length(x)) |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
26 ``` |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
27 |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
28 You can also provide a fallback function using one of the many automatic |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
29 differentiation packages, for example |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
30 |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
31 ```julia |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
32 using ForwardDiff |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
33 Grids.jacobian(f,x) = ForwardDiff.jacobian(f,x) |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
34 ``` |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
35 |
84e5ab97902d
Add sketch of a docs page about manifolds, charts, and atalses
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
36 <!-- What more needs to be said here? --/> |