sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.47k stars 487 forks source link

Add Examples to Manifolds Catalog #30189

Open mjungmath opened 4 years ago

mjungmath commented 4 years ago

The current catalog is nice to have but still very limited or incomplete. Constructing some examples in the current catalog also takes a lot of time.

While improving and extend this, it is also a good opportunity to expand the tutorials a little bit. Furthermore, most of our docstring examples are based on the 2-sphere. Hence we can perhaps shorten or simplify some parts of the documentation.

Step 1: rearrange folder structure (#30799)

Step 2: unification/improvement/extension of preexisting models

Step 3: add new examples

Step 4: improve the tutorial/doctests

CC: @egourgoulhon @tscrim @tobiasdiez

Component: manifolds

Issue created by migration from https://trac.sagemath.org/ticket/30189

egourgoulhon commented 4 years ago
comment:1

This sounds like a very good idea!

Note that in order not to clutter the global namespace, one can let access to the sphere and the hyperbolic space via the manifold catalog. The current version of the catalog is very primitive and the function Sphere() in it should call the constructor the sphere class, as soon as the latter is ready.

mjungmath commented 4 years ago
comment:2

Replying to @egourgoulhon:

This sounds like a very good idea!

Note that in order not to clutter the global namespace, one can let access to the sphere and the hyperbolic space via the manifold catalog. The current version of the catalog is very primitive and the function Sphere() in it should call the constructor the sphere class, as soon as the latter is ready.

Ah, that is very nice. Actually, I was not aware that something like that exists. This should be populated somewhere more obvious. Probably in a tutorial?

So, the only thing that should be added now is the hyperbolic space, right?

mjungmath commented 4 years ago
comment:3

By the way, I noticed that the result coming from sage.manifolds.catalog.Sphere is not even correct:

sage: S.<th, ph> = manifolds.Sphere()
sage: S
2-dimensional Riemannian submanifold S embedded in the Euclidean
 space E^3
sage: S.atlas()
[Chart (S, (th, ph))]

This is not a correct atlas.

egourgoulhon commented 4 years ago
comment:4

Replying to @mjungmath:

Ah, that is very nice. Actually, I was not aware that something like that exists. This should be populated somewhere more obvious. Probably in a tutorial?

Indeed, when it is more developed.

So, the only thing that should be added now is the hyperbolic space, right?

No, there remains to introduce a proper sphere class, on the model of EuclideanSpace, with methods like stereographic_coordinates.

egourgoulhon commented 4 years ago
comment:5

Replying to @mjungmath:

By the way, I noticed that the result coming from sage.manifolds.catalog.Sphere is not even correct:

sage: S.<th, ph> = manifolds.Sphere()
sage: S
2-dimensional Riemannian submanifold S embedded in the Euclidean
 space E^3
sage: S.atlas()
[Chart (S, (th, ph))]

This is not a correct atlas.

Indeed. As I say in comment:1, the catalog is in a primitive stage.

mjungmath commented 4 years ago
comment:6

Now I see what you mean. I first thought that "primitive" was just referring to the amount of examples.

That's good: there's still work to do. :)

mjungmath commented 4 years ago

Description changed:

--- 
+++ 
@@ -1,3 +1,22 @@
-The most common examples in (differential) geometry are the Euclidean space, the sphere and the hyperbolic space, namely the manifolds with constant sectional curvature 0, 1 and -1. I suggest, we add the sphere and hyperbolic space in a similar manner as it has already been done for `EuclideanSpace`.
+The current catalog is nice to have but still very limited or incomplete. Constructing some models there also takes a lot of time.

-This is also a good opportunity to expand the tutorials a little bit. Furthermore, most of our docstring examples are based on the 2-sphere. Hence we can perhaps shorten or simplify some parts of the documentation.
+While improving and extend this, it is also a good opportunity to expand the tutorials a little bit. Furthermore, most of our docstring examples are based on the 2-sphere. Hence we can perhaps shorten or simplify some parts of the documentation.
+
+**Step 1:** rearrange folder structure
+
+**Step 2:** unification/improvement/extension of preexisting models
+
+- Sphere
+- Kerr
+- Minkowski
+- Torus
+
+**Step 3:** add new models
+
+- Real Projective Space
+- Complex Projective Space
+
+**Step 4:** improve the tutorial/doctests
+
+- simplify preexisting 2-sphere examples
+- add thorough tutorial with old/new models
mjungmath commented 4 years ago

Description changed:

--- 
+++ 
@@ -2,10 +2,11 @@

 While improving and extend this, it is also a good opportunity to expand the tutorials a little bit. Furthermore, most of our docstring examples are based on the 2-sphere. Hence we can perhaps shorten or simplify some parts of the documentation.

-**Step 1:** rearrange folder structure
+**Step 1:** rearrange folder structure (#30799)

 **Step 2:** unification/improvement/extension of preexisting models

+- Add Orientation to `EuclideanSpace`
 - Sphere
 - Kerr
 - Minkowski
mjungmath commented 4 years ago

Description changed:

--- 
+++ 
@@ -7,7 +7,7 @@
 **Step 2:** unification/improvement/extension of preexisting models

 - Add Orientation to `EuclideanSpace`
-- Sphere
+- Sphere (#30804)
 - Kerr
 - Minkowski
 - Torus
mjungmath commented 4 years ago

Description changed:

--- 
+++ 
@@ -1,4 +1,4 @@
-The current catalog is nice to have but still very limited or incomplete. Constructing some models there also takes a lot of time.
+The current catalog is nice to have but still very limited or incomplete. Constructing some examples in the current catalog also takes a lot of time.

 While improving and extend this, it is also a good opportunity to expand the tutorials a little bit. Furthermore, most of our docstring examples are based on the 2-sphere. Hence we can perhaps shorten or simplify some parts of the documentation.
mjungmath commented 4 years ago

Description changed:

--- 
+++ 
@@ -12,7 +12,7 @@
 - Minkowski
 - Torus

-**Step 3:** add new models
+**Step 3:** add new examples

 - Real Projective Space
 - Complex Projective Space
mjungmath commented 4 years ago

Description changed:

--- 
+++ 
@@ -14,8 +14,8 @@

 **Step 3:** add new examples

-- Real Projective Space
-- Complex Projective Space
+- Real Projective Space / Real Grassmannians
+- Complex Projective Space / Complex Grassmannians

 **Step 4:** improve the tutorial/doctests
mjungmath commented 4 years ago

Description changed:

--- 
+++ 
@@ -6,6 +6,7 @@

 **Step 2:** unification/improvement/extension of preexisting models

+- More Flexible Coordinate Treatment for `EuclideanSpace` (#30824)
 - Add Orientation to `EuclideanSpace`
 - Sphere (#30804)
 - Kerr
mjungmath commented 3 years ago

Description changed:

--- 
+++ 
@@ -7,6 +7,7 @@
 **Step 2:** unification/improvement/extension of preexisting models

 - More Flexible Coordinate Treatment for `EuclideanSpace` (#30824)
+- Category of connected manifolds will be joined to spheres, Euclidean spaces and open intervals (#31243)
 - Add Orientation to `EuclideanSpace`
 - Sphere (#30804)
 - Kerr
mjungmath commented 3 years ago

Description changed:

--- 
+++ 
@@ -16,8 +16,8 @@

 **Step 3:** add new examples

-- Real Projective Space / Real Grassmannians
-- Complex Projective Space / Complex Grassmannians
+- Real Projective Space / Real Grassmannians (#31249)
+- Complex Projective Space / Complex Grassmannians (#31249)

 **Step 4:** improve the tutorial/doctests
mkoeppe commented 3 years ago
comment:18

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

mkoeppe commented 3 years ago
comment:19

There is also some old code in sage.geometry.riemannian_manifolds that seems to provide some examples

egourgoulhon commented 3 years ago
comment:20

Replying to @mkoeppe:

There is also some old code in sage.geometry.riemannian_manifolds that seems to provide some examples

Indeed! These examples should be integrated into the catalog and then sage.geometry.riemannian_manifolds should be deprecated, since all the functionalities it contains are available in sage.manifolds.differentiable.pseudo_riemannian_submanifold.

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -13,6 +13,7 @@
 - Kerr
 - Minkowski
 - Torus
+- #32228 Move examples from `sage.geometry.riemannian_manifolds` to `sage.manifolds`

 **Step 3:** add new examples
egourgoulhon commented 3 years ago

Description changed:

--- 
+++ 
@@ -19,6 +19,7 @@

 - Real Projective Space / Real Grassmannians (#31249)
 - Complex Projective Space / Complex Grassmannians (#31249)
+- Hyperbolic space (a starting point may be this [notebook](https://nbviewer.jupyter.org/github/sagemanifolds/SageManifolds/blob/master/Notebooks/SM_hyperbolic_plane.ipynb))

 **Step 4:** improve the tutorial/doctests
egourgoulhon commented 3 years ago

Description changed:

--- 
+++ 
@@ -10,7 +10,7 @@
 - Category of connected manifolds will be joined to spheres, Euclidean spaces and open intervals (#31243)
 - Add Orientation to `EuclideanSpace`
 - Sphere (#30804)
-- Kerr
+- Kerr (some inspiration may be found in the class `KerrBH` of the Sage package [kerrgeodesic_gw](https://github.com/BlackHolePerturbationToolkit/kerrgeodesic_gw))
 - Minkowski
 - Torus
 - #32228 Move examples from `sage.geometry.riemannian_manifolds` to `sage.manifolds`
egourgoulhon commented 2 years ago

Description changed:

--- 
+++ 
@@ -9,15 +9,15 @@
 - More Flexible Coordinate Treatment for `EuclideanSpace` (#30824)
 - Category of connected manifolds will be joined to spheres, Euclidean spaces and open intervals (#31243)
 - Add Orientation to `EuclideanSpace`
-- Sphere (#30804)
+- Sphere (#30804, #32953)
 - Kerr (some inspiration may be found in the class `KerrBH` of the Sage package [kerrgeodesic_gw](https://github.com/BlackHolePerturbationToolkit/kerrgeodesic_gw))
 - Minkowski
 - Torus
-- #32228 Move examples from `sage.geometry.riemannian_manifolds` to `sage.manifolds`
+- Move examples from `sage.geometry.riemannian_manifolds` to `sage.manifolds` (#32228)

 **Step 3:** add new examples

-- Real Projective Space / Real Grassmannians (#31249)
+- Real Projective Space / Real Grassmannians (#31249, #33221)
 - Complex Projective Space / Complex Grassmannians (#31249)
 - Hyperbolic space (a starting point may be this [notebook](https://nbviewer.jupyter.org/github/sagemanifolds/SageManifolds/blob/master/Notebooks/SM_hyperbolic_plane.ipynb))