Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Differentiable manifolds: tangent spaces #19092

Closed
egourgoulhon opened this issue Aug 26, 2015 · 62 comments
Closed

Differentiable manifolds: tangent spaces #19092

egourgoulhon opened this issue Aug 26, 2015 · 62 comments

Comments

@egourgoulhon
Copy link
Member

This ticket implements tangent vectors and tangent spaces on differentiable manifolds. This is a follow-up of #18843 within the SageManifolds project (see the metaticket #18528 for an overview). As in #18843, the non-discrete topological field K over which the differentiable manifold is defined is generic, although in most applications, K=R or K=C.

This ticket implements the following Python classes:

  • the parent class TangentSpace for tangent spaces to a differentiable manifold
  • the element class TangentVector for tangent vectors to a differentiable manifold
    It also implements
  • the method at() in tensor field classes (introduced in Differentiable manifolds: vector fields and tensor fields #18843) to take the value of a given
    tensor field (in particular a vector field) at a given point; the method at() is
    implemented for vector frames and coframes as well.
  • the method plot() in class VectorField, to get some graphical representations of vector
    fields
  • the methods differential(), differential_functions() and jacobian_matrix() to the class
    DiffMap introduced in Differentiable manifolds: basics #18783 (differential of a map between differentiable manifolds at a
    given point).

Documentation:
The reference manual is produced by
sage -docbuild reference/manifolds html
It can also be accessed online at http://sagemanifolds.obspm.fr/doc/19092/reference/manifolds/
More documentation (e.g. example worksheets) can be found here.

Depends on #15916
Depends on #18843

CC: @sagetrac-mbejger

Component: geometry

Keywords: differentiable manifold, tangent vector, tangent space

Author: Eric Gourgoulhon, Michal Bejger, Marco Mancini

Branch/Commit: ff6eb09

Reviewer: Travis Scrimshaw

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 26, 2015

Changed commit from d5562a2 to 6a1fc97

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 26, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

6a1fc97Add method differential() to class DiffMap

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 27, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

31d6789Add method plot() to class VectorField; full doctest coverage.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 27, 2015

Changed commit from 6a1fc97 to 31d6789

@egourgoulhon
Copy link
Member Author

Changed dependencies from #15916, #18100, #18843 to #15916, #18843

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 14, 2015

Changed commit from 31d6789 to 04360b0

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 14, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

04360b0Major improvements in the documentation of diff. manifolds (tangent spaces part)

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 14, 2015

Changed commit from 04360b0 to 513f5ba

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 14, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

513f5baImprove TensorField.__eq__ (case with no open cover known)

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 15, 2015

Changed commit from 513f5ba to e43e03b

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 15, 2015

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

00c327dSlight reorganization of the reference manual of topological manifolds (morphisms part)
f8d3f27Merge #18725 into #18640
f2fef7bSmall improvements in the documentation of differentiable manifolds
8ab80d8Improvement in simplify_sqrt_real(); minor modif. in documentation
2f231b6Major improvements in the documentation of diff. manifolds (basic part)
f0ca2deMerge #18783 into #18725
307e655Major improvements in the documentation of diff. manifolds (tensor field part)
dc7f7a1Improve TensorField.__eq__ (case with no open cover known)
4d6f21cMerge #18843 into #18783
e43e03bMerge #19092 into #18843

@egourgoulhon

This comment has been minimized.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 19, 2015

Changed commit from e43e03b to 22923ab

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 19, 2015

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

041a5d1Adding p-adics to metric spaces and some cleanup.
bfa0cdfOne last doc tweak.
d13c368Fixing doc of metric spaces.
2605c0bMerge #18529 (Topological manifolds: basics) into #18175 (Implement categories for topological...)
6dec6d5Implement topological manifolds (basics, #18529) on the new categories for manifolds (#18175)
3403978Implement top. manifolds (scalar fields, #18640) on the new manifold categories (#18175)
b0521efImplement top. manifolds (morphisms, #18725) on the new manifold categories (#18175)
f643097Implement diff. manifolds (basics, #18783) on the new manifold categories (#18175)
a527726Implement diff. manifolds (tensor fields, #18843) on the new manifold categories (#18175)
22923abImplement diff. manifolds (tangent spaces, #19092) on the new manifold categories (#18175).

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 22, 2015

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

668bc26Remove UniqueRepresentation, leaving only WithEqualityById, for topological manifold homsets
6518699Introduce the attribute _field_type in class TopologicalManifold to check for real and complex manifolds.
22383e6Check for real/complex manifold performed on base_field_type() instead of RR/CC
66f2c5aChange function('f', x) to function('f')(x) to accomodate the deprecation warning introduced in #17447
a28ed04Morphisms of topological manifolds with the use of base_field_type()
f31bed1Remove UniqueRepresentation from differentiable manifolds
0ee4c41Tensor fields on differentiable manifolds without unique representation
e8f11ffFix pickling test in tensor field modules.
a967787Suppress direct call to `_element_constructor_` in tensor field parent classes
1bf77fdTangent spaces on differentiable manifolds without unique representation

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 22, 2015

Changed commit from 22923ab to 1bf77fd

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 4, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

d8397c1Merge branch 'public/manifolds/top_manif_basics' of trac.sagemath.org:sage into public/manifolds/top_manif_basics
0b08b11Some small tweaks as part of the review.
d3e5d4dRevert to UniqueRepresentation for topological manifolds
2481359Revert to UniqueRepresentation for ScalarFieldAlgebra; better ScalarField constructor
0cc06e8Revert to UniqueRepresentation for topological manifold homsets
322d5bdRevert to UniqueRepresentation for differentiable manifolds
45beae5Revert to UniqueRepresentation for differentiable manifolds: tensor fields
98c6036Revert to UniqueRepresentation for differentiable manifolds: tangent spaces

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 4, 2015

Changed commit from 1bf77fd to 98c6036

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 6, 2015

Changed commit from 98c6036 to 347a9cc

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 6, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

85d03dcChange the argument type to structure in Manifold
5251ef0Remove method _test_pickling from class TopologicalManifoldPoint
f69c9eeFix doctest error in coord_func_symb.py due to #19312 (update to pynac-0.5.2)
7889a5dChange in simplify_sqrt_real to cope with the change of != operator induced by #19312 (Sage 6.10.beta7)
e8d2ba6Differentiable manifolds: basics with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)
0d68f86Diff. manifolds: tensor fields, with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)
347a9ccDiff. manifolds: tangent spaces, with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 18, 2015

Changed commit from 347a9cc to db99641

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 18, 2015

Branch pushed to git repo; I updated commit sha1. New commits:

1c1fcccParallel plot for Manifold: only 2D. Flat parallelization.
9b87ff1Vectorfields : plot parallelization improvement and bug corrction.
db99641Parallel plotting vectorfield: added example

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 24, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

fb7f4ddBibliographic references for tensor fields moved to the master file
785300bBibliographic references for tangent spaces moved to the master file created by #21454

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 10, 2016

Changed commit from 785300b to 567b892

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 10, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

4ce1118Merge branch 'public/manifolds/diff_manif_tangent_spaces' of git://trac.sagemath.org/sage into public/manifolds/diff_manif_tangent_spaces
567b892Doing some reviewer changes for #19092.

@tscrim
Copy link
Collaborator

tscrim commented Nov 10, 2016

Reviewer: Travis Scrimshaw

@tscrim
Copy link
Collaborator

tscrim commented Nov 10, 2016

comment:29

Okay, I've made it through this one. Mostly it is documentation format changes, but the exception:

For plotting, I used the @options for scale and max_range as these seemed like something a user might want to not have to pass every single time (you change change their default with v.plot.options). From the user perspective, nothing really changes unless you explicitly set said default value.

So if you agree with my changes, then you can set a positive review.

@tscrim tscrim modified the milestones: sage-7.4, sage-7.5 Nov 10, 2016
@tscrim
Copy link
Collaborator

tscrim commented Nov 10, 2016

comment:30

I'm handling rebasing #19124 as I'm starting my review of that now.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 10, 2016

Changed commit from 567b892 to 05f8cc7

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 10, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

05f8cc7A little bit of extra cleanup.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 13, 2016

Changed commit from 05f8cc7 to b4a4530

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 13, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

23eb9d8Correct doctest and documentation in tangent spaces
b4a4530Use sphinx_plot for 3D plots in the documentation of charts and vector fields

@egourgoulhon
Copy link
Member Author

comment:33

Thank you so much for the review!

In the first commit above (23eb9d8), I've corrected a doctest error and fixed some documentation issue revealed by the patchbot.

In the second commit (b4a4530), I've added sphinx directives to render the 3D plots in the documentation of VectorField.plot (as well as in RealChart.plot), on the same footing as what is now done in the "3D Graphics" section of the reference manual.

Thanks for the addition of @options to VectorField.plot; I've added color to these options, to be consistent with what is done in RealChart.plot. I've also added some documentation about the use of v.plot.options.

A question: in the keyword arguments of VectorField.plot, you have changed nb_values to number_values, but it is still nb_values in RealChart.plot. For consistency, both plot methods should use the same name. It seems that nb is not a standard English abbreviation for number, is it? (I find number_values a little bit long, especially that we don't have the TAB completion to type the options).

@tscrim
Copy link
Collaborator

tscrim commented Nov 13, 2016

comment:34

Replying to @egourgoulhon:

Thank you so much for the review!

Not a problem; sorry it took so long.

A question: in the keyword arguments of VectorField.plot, you have changed nb_values to number_values, but it is still nb_values in RealChart.plot. For consistency, both plot methods should use the same name. It seems that nb is not a standard English abbreviation for number, is it? (I find number_values a little bit long, especially that we don't have the TAB completion to type the options).

Not to my knowledge. The standard abbreviation is "no." (with a period) but "num" has become standard (at least in the programming world), but IMO the verbosity is better. However, you can do tab completion for explicit arguments.

@egourgoulhon
Copy link
Member Author

comment:35

Replying to @tscrim:

Not to my knowledge. The standard abbreviation is "no." (with a period) but "num" has become standard (at least in the programming world), but IMO the verbosity is better. However, you can do tab completion for explicit arguments.

OK, so let use number_values everywhere. I am going to change it in RealChart.plot.

@tscrim
Copy link
Collaborator

tscrim commented Nov 13, 2016

comment:36

Thanks.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 13, 2016

Branch pushed to git repo; I updated commit sha1. New commits:

ff6eb09Name of argument 'nb_values' in RealChart.plot changed to 'number_values'.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 13, 2016

Changed commit from b4a4530 to ff6eb09

@egourgoulhon
Copy link
Member Author

comment:38

Change nb_values --> number_values done.

@tscrim
Copy link
Collaborator

tscrim commented Nov 13, 2016

comment:39

I'm sorry I missed that on the previous ticket. LGTM. Thank you.

@egourgoulhon
Copy link
Member Author

comment:40

Thanks for the review!

@vbraun
Copy link
Member

vbraun commented Nov 17, 2016

Changed branch from public/manifolds/diff_manif_tangent_spaces to ff6eb09

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants