Opened 6 years ago
Closed 4 years ago
#19092 closed enhancement (fixed)
Differentiable manifolds: tangent spaces
Reported by: | egourgoulhon | Owned by: | egourgoulhon |
---|---|---|---|
Priority: | major | Milestone: | sage-7.5 |
Component: | geometry | Keywords: | differentiable manifold, tangent vector, tangent space |
Cc: | mbejger | Merged in: | |
Authors: | Eric Gourgoulhon, Michal Bejger, Marco Mancini | Reviewers: | Travis Scrimshaw |
Report Upstream: | N/A | Work issues: | |
Branch: | ff6eb09 (Commits, GitHub, GitLab) | Commit: | ff6eb09b4b0bc582e57f6190f022b91ca1af8835 |
Dependencies: | #15916, #18843 | Stopgaps: |
Description (last modified by )
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 #18843) to take the value of a given tensor field (in particular a vector field) at a given point; the methodat()
is implemented for vector frames and coframes as well. - the method
plot()
in classVectorField
, to get some graphical representations of vector fields - the methods
differential()
,differential_functions()
andjacobian_matrix()
to the classDiffMap
introduced in #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.
Change History (41)
comment:1 Changed 6 years ago by
- Type changed from PLEASE CHANGE to enhancement
comment:2 Changed 6 years ago by
- Commit changed from d5562a2bb8393824f5ec72b7e3a9c43990c8dbaf to 6a1fc978e26942ca6508ab74b79a5553f7f6b7e1
comment:3 Changed 6 years ago by
- Commit changed from 6a1fc978e26942ca6508ab74b79a5553f7f6b7e1 to 31d6789687c3970dae930836f0709c44097fe1e5
Branch pushed to git repo; I updated commit sha1. New commits:
31d6789 | Add method plot() to class VectorField; full doctest coverage.
|
comment:4 Changed 5 years ago by
- Dependencies changed from #15916, #18100, #18843 to #15916, #18843
comment:5 Changed 5 years ago by
- Commit changed from 31d6789687c3970dae930836f0709c44097fe1e5 to 04360b0d35b30f1f574c6007c685fead4083871f
Branch pushed to git repo; I updated commit sha1. New commits:
04360b0 | Major improvements in the documentation of diff. manifolds (tangent spaces part)
|
comment:6 Changed 5 years ago by
- Commit changed from 04360b0d35b30f1f574c6007c685fead4083871f to 513f5ba4d111c59f4eec3ff0ca9832b9355a84ca
Branch pushed to git repo; I updated commit sha1. New commits:
513f5ba | Improve TensorField.__eq__ (case with no open cover known)
|
comment:7 Changed 5 years ago by
- Commit changed from 513f5ba4d111c59f4eec3ff0ca9832b9355a84ca to e43e03bbbf7c0d90e7df0b4dc3b8767b793d6ab1
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
00c327d | Slight reorganization of the reference manual of topological manifolds (morphisms part)
|
f8d3f27 | Merge #18725 into #18640
|
f2fef7b | Small improvements in the documentation of differentiable manifolds
|
8ab80d8 | Improvement in simplify_sqrt_real(); minor modif. in documentation
|
2f231b6 | Major improvements in the documentation of diff. manifolds (basic part)
|
f0ca2de | Merge #18783 into #18725
|
307e655 | Major improvements in the documentation of diff. manifolds (tensor field part)
|
dc7f7a1 | Improve TensorField.__eq__ (case with no open cover known)
|
4d6f21c | Merge #18843 into #18783
|
e43e03b | Merge #19092 into #18843
|
comment:8 Changed 5 years ago by
- Description modified (diff)
- Milestone changed from sage-6.9 to sage-6.10
- Status changed from new to needs_review
comment:9 Changed 5 years ago by
- Commit changed from e43e03bbbf7c0d90e7df0b4dc3b8767b793d6ab1 to 22923ab262da20f80aaf7bbda21a9dffcb7a4016
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
041a5d1 | Adding p-adics to metric spaces and some cleanup.
|
bfa0cdf | One last doc tweak.
|
d13c368 | Fixing doc of metric spaces.
|
2605c0b | Merge #18529 (Topological manifolds: basics) into #18175 (Implement categories for topological...)
|
6dec6d5 | Implement topological manifolds (basics, #18529) on the new categories for manifolds (#18175)
|
3403978 | Implement top. manifolds (scalar fields, #18640) on the new manifold categories (#18175)
|
b0521ef | Implement top. manifolds (morphisms, #18725) on the new manifold categories (#18175)
|
f643097 | Implement diff. manifolds (basics, #18783) on the new manifold categories (#18175)
|
a527726 | Implement diff. manifolds (tensor fields, #18843) on the new manifold categories (#18175)
|
22923ab | Implement diff. manifolds (tangent spaces, #19092) on the new manifold categories (#18175).
|
comment:10 Changed 5 years ago by
- Commit changed from 22923ab262da20f80aaf7bbda21a9dffcb7a4016 to 1bf77fddde974ea2faff88b84dad6707b71fcced
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
668bc26 | Remove UniqueRepresentation, leaving only WithEqualityById, for topological manifold homsets
|
6518699 | Introduce the attribute _field_type in class TopologicalManifold to check for real and complex manifolds.
|
22383e6 | Check for real/complex manifold performed on base_field_type() instead of RR/CC
|
66f2c5a | Change function('f', x) to function('f')(x) to accomodate the deprecation warning introduced in #17447
|
a28ed04 | Morphisms of topological manifolds with the use of base_field_type()
|
f31bed1 | Remove UniqueRepresentation from differentiable manifolds
|
0ee4c41 | Tensor fields on differentiable manifolds without unique representation
|
e8f11ff | Fix pickling test in tensor field modules.
|
a967787 | Suppress direct call to _element_constructor_ in tensor field parent classes
|
1bf77fd | Tangent spaces on differentiable manifolds without unique representation
|
comment:11 Changed 5 years ago by
- Commit changed from 1bf77fddde974ea2faff88b84dad6707b71fcced to 98c603652a66489499acbe6734c19a395ec28b33
Branch pushed to git repo; I updated commit sha1. New commits:
d8397c1 | Merge branch 'public/manifolds/top_manif_basics' of trac.sagemath.org:sage into public/manifolds/top_manif_basics
|
0b08b11 | Some small tweaks as part of the review.
|
d3e5d4d | Revert to UniqueRepresentation for topological manifolds
|
2481359 | Revert to UniqueRepresentation for ScalarFieldAlgebra; better ScalarField constructor
|
0cc06e8 | Revert to UniqueRepresentation for topological manifold homsets
|
322d5bd | Revert to UniqueRepresentation for differentiable manifolds
|
45beae5 | Revert to UniqueRepresentation for differentiable manifolds: tensor fields
|
98c6036 | Revert to UniqueRepresentation for differentiable manifolds: tangent spaces
|
comment:12 Changed 5 years ago by
- Commit changed from 98c603652a66489499acbe6734c19a395ec28b33 to 347a9cc51c034f406b86af7f2af3ff69cd646de6
Branch pushed to git repo; I updated commit sha1. New commits:
85d03dc | Change the argument type to structure in Manifold
|
5251ef0 | Remove method _test_pickling from class TopologicalManifoldPoint
|
f69c9ee | Fix doctest error in coord_func_symb.py due to #19312 (update to pynac-0.5.2)
|
7889a5d | Change in simplify_sqrt_real to cope with the change of != operator induced by #19312 (Sage 6.10.beta7)
|
e8d2ba6 | Differentiable manifolds: basics with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)
|
0d68f86 | Diff. manifolds: tensor fields, with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)
|
347a9cc | Diff. manifolds: tangent spaces, with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)
|
comment:13 Changed 5 years ago by
- Commit changed from 347a9cc51c034f406b86af7f2af3ff69cd646de6 to db99641f9960018d52749ce88f1b2f4ad406b03f
comment:14 Changed 5 years ago by
- Commit changed from db99641f9960018d52749ce88f1b2f4ad406b03f to b07ffd9ef872b5e8a69b4364b5e0132e0b909fbf
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
ce03503 | Scalar fields on topological manifolds: slight improvements in the documentation
|
9d25aa0 | Scalar field algebras with AbstractNamedObject without argument full_name
|
ed4aa58 | ScalarFieldAlgebra does not longer inherit from AbstractNamedObject
|
bc77059 | Morphisms on the refactored topoological manifolds
|
f6c6a34 | Topological manifold morphisms with AbstractNamedObject without full_name
|
2df7af7 | Refactorization of differentiable manifolds, with the mixin class DifferentiableMixin
|
7204572 | Basics of diff. manifolds with AbstractNamedObject without full_name
|
ecfbf2c | Tensor fields on refactored differentiable manifolds
|
8b720a5 | Tensor fields with AbstractNamedObject without full_name
|
b07ffd9 | Tangent spaces on refactored differentiable manifolds
|
comment:15 Changed 5 years ago by
- Commit changed from b07ffd9ef872b5e8a69b4364b5e0132e0b909fbf to 9fa77c4a7c8b9b1359e82611bae88f76d1e8d098
Branch pushed to git repo; I updated commit sha1. New commits:
3cd03a4 | Add methods lift() and retract() to ManifoldSubset; add method __eq__() in CoordChange
|
984c3c2 | Revert to simple hierarchy for manifold classes
|
c01048f | Scalar fields with the simplified hierarchy for manifold classes
|
c866d6c | Morphisms of topological manifolds with the simplified hierarchy for manifold classes
|
0e04631 | Basics of diff. manifolds with the simplified hierarchy for manifold classes
|
1f226bd | Tensor fields with the simplified hierarchy for manifold classes
|
9fa77c4 | Tangent spaces with the simplified hierarchy for manifold classes
|
comment:16 Changed 5 years ago by
- Milestone changed from sage-6.10 to sage-7.0
comment:17 Changed 5 years ago by
- Commit changed from 9fa77c4a7c8b9b1359e82611bae88f76d1e8d098 to b47f55f7217579acf266da0cad2892f06b329b6b
Branch pushed to git repo; I updated commit sha1. New commits:
8e17d54 | Merge into the latest version of #18529; improve treatment of composite functions in ExpressionNice
|
f00be00 | Topological manifold morphisms: solved merge conflict with Sage 7.1.beta1
|
21b3968 | Basics of diff. manifolds: solve merge conflict with Sage 7.1.beta1
|
8ba4b91 | Tensor fields: solve merge conflict with Sage 7.1.beta1
|
2fad9db | Correct doctest in class DiffFormParal
|
b47f55f | Tangent spaces: solve merge conflict with Sage 7.1.beta1
|
comment:18 Changed 5 years ago by
comment:19 Changed 5 years ago by
- Commit changed from b47f55f7217579acf266da0cad2892f06b329b6b to 37521ae977dd99057c8a2ab358962c1e70c0dc0c
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
f11df50 | Set CoordFunctionSymbRing in the category of commutative algebras over SR; minor documentation changes
|
f3f5470 | Fixing a (essentially trivial) doctest failure.
|
7b3dab3 | Merge branch 'public/manifolds/top_manif_scalar_fields' of git://trac.sagemath.org/sage into Sage 7.2.rc0
|
9ec7d3e | Python 3 format for print in manifolds
|
d190b37 | Morphisms of topological manifolds with coordinate functions as algebra elements
|
2577fc5 | Fixing a (essentially trivial) doctest failure.
|
7125e29 | Python3 format for print in morphims of topological manifolds
|
bd2f35a | Diff. manifolds with coordinate functions as algebra elements
|
73b4a03 | Tensor fields with with coordinate functions as algebra elements
|
37521ae | Tangent spaces with coordinate functions as algebra elements
|
comment:20 Changed 5 years ago by
- Milestone changed from sage-7.0 to sage-7.2
comment:21 Changed 5 years ago by
- Commit changed from 37521ae977dd99057c8a2ab358962c1e70c0dc0c to 159afb4152f0af6d3968b50fe497e92841e9c7fc
Branch pushed to git repo; I updated commit sha1. New commits:
4fad094 | Merge branch 'public/manifolds/top_manif_morphisms' of trac.sagemath.org:sage into public/manifolds/top_manif_morphisms
|
cfecb18 | Reviewer changes and tweaks for continuous maps ticket.
|
efcb618 | Modify authorship for continuous maps.
|
84051b0 | Merge branch 'public/manifolds/diff_manif_basics' of trac.sagemath.org:sage into public/manifolds/diff_manif_basics
|
97172dd | Basics of differentiable manifolds with changes in morphisms of topological manifolds
|
29832ec | Use @cached_method for VectorFieldModule.identity_map() and AutomorphismFieldGroup.one()
|
159afb4 | Tangent spaces upon latest version of tensor fields
|
comment:22 Changed 5 years ago by
- Commit changed from 159afb4152f0af6d3968b50fe497e92841e9c7fc to 3b1b794176683401df9d98541f2e0b14c339f228
comment:23 Changed 5 years ago by
- Commit changed from 3b1b794176683401df9d98541f2e0b14c339f228 to c70792e68e1adcd7451080a567babb1d7f2438d9
Branch pushed to git repo; I updated commit sha1. New commits:
3ab0af0 | Initial reviewer changes.
|
d7ad8e1 | Merge branch 'public/manifolds/diff_manif_tensor_fields' of git://trac.sagemath.org/sage into sage 7.3.beta5
|
dcb08fc | Decrease doctest times in tensor fields; remove xder from the global namespace
|
c70792e | Update tangent spaces to the latest version of #18843 (vector fields)
|
comment:24 Changed 5 years ago by
- Milestone changed from sage-7.2 to sage-7.4
comment:25 Changed 4 years ago by
- Commit changed from c70792e68e1adcd7451080a567babb1d7f2438d9 to 98efa6658daefb2e9d00c674a4d2315bfac608d7
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
88295c6 | Merge branch 'develop' into public/manifolds/diff_manif_tensor_fields
|
58f7fb9 | Merge branch 'develop' into public/manifolds/diff_manif_tensor_fields
|
3e73095 | Merge branch 'develop' into public/manifolds/diff_manif_tensor_fields
|
4955c3c | Final review of everything.
|
7cf4ff4 | Merge branch 'public/manifolds/diff_manif_tensor_fields' of trac.sagemath.org:sage into public/manifolds/diff_manif_tensor_fields
|
58ae506 | Merge branch 'public/manifolds/diff_manif_tensor_fields' of git://trac.sagemath.org/sage into Sage 7.4.beta6
|
8219403 | Fix documentation error; change in TensorField comparison to zero
|
a841f79 | Python 3 compatible syntax in tensor fields
|
5a5f400 | Slight change in TensorField.__eq__ (comparison to zero)
|
98efa66 | Update tangent spaces to the final version of the dependency ticket #18843
|
comment:26 Changed 4 years ago by
- Commit changed from 98efa6658daefb2e9d00c674a4d2315bfac608d7 to 8205dcac47cb6b3b9b8e3129503d34cea003292e
comment:27 Changed 4 years ago by
- Commit changed from 8205dcac47cb6b3b9b8e3129503d34cea003292e to 785300bff1bdd0c738a53032c34ad0cc65a8f031
comment:28 Changed 4 years ago by
- Commit changed from 785300bff1bdd0c738a53032c34ad0cc65a8f031 to 567b892cf756d4fafa2a123612f670158c929595
comment:29 follow-up: ↓ 33 Changed 4 years ago by
- Milestone changed from sage-7.4 to sage-7.5
- Reviewers set to Travis Scrimshaw
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.
comment:30 Changed 4 years ago by
I'm handling rebasing #19124 as I'm starting my review of that now.
comment:31 Changed 4 years ago by
- Commit changed from 567b892cf756d4fafa2a123612f670158c929595 to 05f8cc7413cad8a9db04b925038f09e27a9e23f8
Branch pushed to git repo; I updated commit sha1. New commits:
05f8cc7 | A little bit of extra cleanup.
|
comment:32 Changed 4 years ago by
- Commit changed from 05f8cc7413cad8a9db04b925038f09e27a9e23f8 to b4a4530d2b5ca8b43053bffe2511ce7f059b7d62
comment:33 in reply to: ↑ 29 ; follow-up: ↓ 34 Changed 4 years ago by
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).
comment:34 in reply to: ↑ 33 ; follow-up: ↓ 35 Changed 4 years ago by
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 changednb_values
tonumber_values
, but it is stillnb_values
inRealChart.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 findnumber_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.
comment:35 in reply to: ↑ 34 Changed 4 years ago by
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
.
comment:36 Changed 4 years ago by
Thanks.
comment:37 Changed 4 years ago by
- Commit changed from b4a4530d2b5ca8b43053bffe2511ce7f059b7d62 to ff6eb09b4b0bc582e57f6190f022b91ca1af8835
Branch pushed to git repo; I updated commit sha1. New commits:
ff6eb09 | Name of argument 'nb_values' in RealChart.plot changed to 'number_values'.
|
comment:38 Changed 4 years ago by
Change nb_values
--> number_values
done.
comment:39 follow-up: ↓ 40 Changed 4 years ago by
- Status changed from needs_review to positive_review
I'm sorry I missed that on the previous ticket. LGTM. Thank you.
comment:40 in reply to: ↑ 39 Changed 4 years ago by
Thanks for the review!
comment:41 Changed 4 years ago by
- Branch changed from public/manifolds/diff_manif_tangent_spaces to ff6eb09b4b0bc582e57f6190f022b91ca1af8835
- Resolution set to fixed
- Status changed from positive_review to closed
Branch pushed to git repo; I updated commit sha1. New commits:
Add method differential() to class DiffMap