annotate docs/src/manifolds_charts_atlases.md @ 1988:c4dc1bed0a81 feature/grids/manifolds

Minor docs change
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 15 Apr 2025 08:35:51 +0200
parents 3694f11075c5
children d89f7a1a6f37
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
1972
3694f11075c5 Review docs and Plots extension
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1922
diff changeset
4 by one or more charts. The charts describe a mapping from a logical parameter space
1922
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
1988
c4dc1bed0a81 Minor docs change
Jonatan Werpers <jonatan@werpers.com>
parents: 1972
diff changeset
6 for a given geometry this collection of charts and how they are connected is
1972
3694f11075c5 Review docs and Plots extension
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents: 1922
diff changeset
7 described by an atlas.
1922
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 ```