annotate docs/src/manifolds_charts_atlases.md @ 1983:730c9848ad0b feature/grids/geometry_functions

Update docstring for check_transfiniteinterpolation
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 26 Feb 2025 22:50:52 +0100
parents 3694f11075c5
children c4dc1bed0a81
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
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
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 ```
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? --/>