Opened 19 months ago

Closed 4 months ago

#19147 closed enhancement (fixed)

Affine connections on smooth manifolds

Reported by: egourgoulhon Owned by:
Priority: major Milestone: sage-7.5
Component: geometry Keywords: differentiable manifold, affine connection, curvature, torsion
Cc: mbejger, mmancini Merged in:
Authors: Eric Gourgoulhon, Michal Bejger, Marco Mancini Reviewers: Volker Braun
Report Upstream: N/A Work issues:
Branch: 906c030 (Commits) Commit: 906c0301949b0ddaa8cd915089f8dc1ab5e2eca5
Dependencies: #18100, #19092 Stopgaps:

Description (last modified by egourgoulhon)

This ticket implements affine connections on infinitely differentiable manifolds (i.e. smooth manifolds) . This is a follow-up of #19092 within the SageManifolds project (see the metaticket #18528 for an overview). As in #19092, the non-discrete topological field K over which the smooth manifold is defined is generic, although in most applications, K=R or K=C.

Affine connections are implemented via the Python class AffineConnection, the user interface being the method DifferentiableManifold.affine_connection(). At the user choice, CPU-demanding computations (like that of the curvature tensor) can be parallelized, thanks to #18100.

Various methods of the class AffineConnection allow the computation of

  • the connection coefficients with respect to a given vector frame (from those w.r.t. another frame)
  • the connection 1-forms with respect to a given vector frame
  • the torsion tensor
  • the torsion 2-forms with respect to a given vector frame
  • the (Riemann) curvature tensor
  • the curvature 2-forms with respect to a given vector frame
  • the Ricci tensor
  • the action of the affine connection on any tensor field

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

Change History (33)

comment:1 Changed 19 months ago by git

  • Commit changed from 0e013aee30e3cfc05918943aa419a3d2336c01ec to 477d0577753ca790205ea115053aefad1fed0d0c

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

477d057Add doctests to AffineConnection; full coverage

comment:2 Changed 19 months ago by egourgoulhon

  • Description modified (diff)

comment:3 Changed 18 months ago by git

  • Commit changed from 477d0577753ca790205ea115053aefad1fed0d0c to a14806252bc9f787fec76a0e9dda60ceffa3d172

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

a148062Major improvements in the documentation of diff. manifolds (affine connections part)

comment:4 Changed 18 months ago by git

  • Commit changed from a14806252bc9f787fec76a0e9dda60ceffa3d172 to a80dcccaf4d8164a23598e986120d48b0fb26008

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

a80dcccImprove TensorField.__eq__ (case with no open cover known)

comment:5 Changed 18 months ago by git

  • Commit changed from a80dcccaf4d8164a23598e986120d48b0fb26008 to f86e5db06f2691867a5aed61fa2512300ee396db

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

325e832Corrected error in parallelisation of __mul__. Added parallism for the symmetric __add__
256d268changed name TensorParallelism to TensorParallelCompute
bea739dAdded Eric corrections to parallelism
a6d4bd4Merge branch 'public/18100-parallelization_tensors' into Sage 6.7
81f662cImprove documentation of class TensorParallelCompute.
ea38c84In doc, changed processor with process
819661dChanged variables name : set_nproc to set_nproc_tensor, get_nproc to get_nproc_tensor
53c248cParallelization: corrected doc
0bb79a3Merge #18100 into #19124
f86e5dbMerge #19147 into (#19124 + #18100)

comment:6 Changed 18 months ago by egourgoulhon

  • Description modified (diff)
  • Milestone changed from sage-6.9 to sage-6.10
  • Status changed from new to needs_review

comment:7 Changed 17 months ago by git

  • Commit changed from f86e5db06f2691867a5aed61fa2512300ee396db to fea227ea170832f7dde850e0488eeb78ff186f2d

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

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).
666bbabImplement diff. manifolds (curves, #19124) on the new manifold categories (#18175)
fea227eImplement diff. manifolds (affine connections, #19147) on the new manifold categories (#18175).

comment:8 Changed 16 months ago by git

  • Commit changed from fea227ea170832f7dde850e0488eeb78ff186f2d to 0032d27fc5cbcf9c33dc681c19a5f09ac7491354

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

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
dca7f9dCurves on differentiable manifolds without unique representation
bcd87e3Merge branch 'public/manifolds/diff_manif_curves' of git://trac.sagemath.org/sage into diff_manif_connections
0032d27Affine connections on differentiable manifolds without unique representation

comment:9 Changed 16 months ago by egourgoulhon

  • Description modified (diff)

comment:10 Changed 16 months ago by egourgoulhon

The parallelization is not effective in the latest commit (cf. the discussion starting from comment 74 in #18529). Hence the FIXME comment in the doctest at line 1730 of affine_connection.py.

comment:11 Changed 16 months ago by git

  • Commit changed from 0032d27fc5cbcf9c33dc681c19a5f09ac7491354 to 134477654c4c30e1f70485dfd803d71e3742a21d

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

1344776Add method AffineConnection.__ne__

comment:12 Changed 16 months ago by git

  • Commit changed from 134477654c4c30e1f70485dfd803d71e3742a21d to 26e8daef8e14cfb0a745d9ff6085ff129e131277

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

26e8daeFirst argument of scalar field constructor is the scalar field algebra (i.e. the parent)

comment:13 Changed 16 months ago by git

  • Commit changed from 26e8daef8e14cfb0a745d9ff6085ff129e131277 to 0ea8b0c274d92c83bfd91b5a8f505ef4424dbe46

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
b836212Revert to UniqueRepresentation for differentiable manifolds: curves
0ea8b0c Revert to UniqueRepresentation for differentiable manifolds: affine connections

comment:14 Changed 16 months ago by git

  • Commit changed from 0ea8b0c274d92c83bfd91b5a8f505ef4424dbe46 to d528d987ce73b83ef8f818cb25ed1b9e6c14fda7

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)
6b51926Diff. manifolds: curves, with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)
d528d98Diff. manifolds: affine connections, with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)

comment:15 Changed 16 months ago by git

  • Commit changed from d528d987ce73b83ef8f818cb25ed1b9e6c14fda7 to aae566d58d9a8bedcfddda093b40bcd1ce48faff

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

aae566dImprove parallelization in Components and derived classes

comment:16 Changed 16 months ago by git

  • Commit changed from aae566d58d9a8bedcfddda093b40bcd1ce48faff to 0eb9d00a0c47663f7343aefe4e4c0772929ab12a

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

0eb9d00Added parallelization to CompFullyAntiSym.__add__

comment:17 Changed 15 months ago by git

  • Commit changed from 0eb9d00a0c47663f7343aefe4e4c0772929ab12a to eb0d8b5f50ec12cb68d71bf205ccf1d0800b793b

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

b07ffd9Tangent spaces on refactored differentiable manifolds
3cd03a4Add methods lift() and retract() to ManifoldSubset; add method __eq__() in CoordChange
984c3c2Revert to simple hierarchy for manifold classes
c01048fScalar fields with the simplified hierarchy for manifold classes
c866d6cMorphisms of topological manifolds with the simplified hierarchy for manifold classes
0e04631Basics of diff. manifolds with the simplified hierarchy for manifold classes
1f226bdTensor fields with the simplified hierarchy for manifold classes
9fa77c4Tangent spaces with the simplified hierarchy for manifold classes
db58a0cCurves in diff. manifolds with the simplified hierarchy for manifold classes
eb0d8b5Affine connections with the simplified hierarchy for manifold classes

comment:18 Changed 15 months ago by egourgoulhon

  • Milestone changed from sage-6.10 to sage-7.0

comment:19 Changed 14 months ago by git

  • Commit changed from eb0d8b5f50ec12cb68d71bf205ccf1d0800b793b to ba8ca472766321d433d29fa2e18cea8565119a20

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

8e17d54Merge into the latest version of #18529; improve treatment of composite functions in ExpressionNice
f00be00Topological manifold morphisms: solved merge conflict with Sage 7.1.beta1
21b3968Basics of diff. manifolds: solve merge conflict with Sage 7.1.beta1
8ba4b91Tensor fields: solve merge conflict with Sage 7.1.beta1
2fad9dbCorrect doctest in class DiffFormParal
b47f55fTangent spaces: solve merge conflict with Sage 7.1.beta1
9a74549Curves in diff. manifolds: solve merge conflict with Sage 7.1.beta1
ba8ca47Affine connections: solve merge conflict with Sage 7.1.beta1

comment:20 Changed 14 months ago by chapoton

  • Authors changed from Eric Gourgoulhon, Michal Bjeger, Marco Mancini to Eric Gourgoulhon, Michal Bejger, Marco Mancini

comment:21 Changed 14 months ago by chapoton

  • Milestone changed from sage-7.0 to sage-7.1

comment:22 Changed 11 months ago by git

  • Commit changed from ba8ca472766321d433d29fa2e18cea8565119a20 to 02500724062728d32b9ce736b1435c436165d755

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

7b3dab3Merge branch 'public/manifolds/top_manif_scalar_fields' of git://trac.sagemath.org/sage into Sage 7.2.rc0
9ec7d3ePython 3 format for print in manifolds
d190b37Morphisms of topological manifolds with coordinate functions as algebra elements
2577fc5Fixing a (essentially trivial) doctest failure.
7125e29Python3 format for print in morphims of topological manifolds
bd2f35aDiff. manifolds with coordinate functions as algebra elements
73b4a03Tensor fields with with coordinate functions as algebra elements
37521aeTangent spaces with coordinate functions as algebra elements
bdb91dfCurves in diff. manifolds with coordinate functions as algebra elements
0250072Affine connections with coordinate functions as algebra elements

comment:23 Changed 11 months ago by egourgoulhon

  • Milestone changed from sage-7.1 to sage-7.2

comment:24 Changed 11 months ago by git

  • Commit changed from 02500724062728d32b9ce736b1435c436165d755 to aa552cba8bd54765d93d7d12ee16edc3c3ebf585

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

4fad094Merge branch 'public/manifolds/top_manif_morphisms' of trac.sagemath.org:sage into public/manifolds/top_manif_morphisms
cfecb18Reviewer changes and tweaks for continuous maps ticket.
efcb618Modify authorship for continuous maps.
84051b0Merge branch 'public/manifolds/diff_manif_basics' of trac.sagemath.org:sage into public/manifolds/diff_manif_basics
97172ddBasics of differentiable manifolds with changes in morphisms of topological manifolds
29832ecUse @cached_method for VectorFieldModule.identity_map() and AutomorphismFieldGroup.one()
159afb4Tangent spaces upon latest version of tensor fields
1b79561Update of OpenInterval._Hom_
aa552cbAffine connections on the latest #19124

comment:25 Changed 7 months ago by git

  • Commit changed from aa552cba8bd54765d93d7d12ee16edc3c3ebf585 to e8e433c14a9f95760a7e6feb2d30e4c39389bcd3

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

d7ad8e1Merge branch 'public/manifolds/diff_manif_tensor_fields' of git://trac.sagemath.org/sage into sage 7.3.beta5
dcb08fcDecrease doctest times in tensor fields; remove xder from the global namespace
3b1b794Fix doctests in tangent spaces after the merge of #20770 in sage 7.3.beta3
c70792eUpdate tangent spaces to the latest version of #18843 (vector fields)
0d6f47eMerge branch 'public/manifolds/diff_manif_tangent_spaces' of trac.sagemath.org:sage into public/manifolds/lie_algebras-20771
96f09abAdded information about the vector field module being a Lie algebroid.
72396ddMerge with latest #19092 to fix doctests after the merge of #20770 in sage 7.3.beta3
835b293Update Lie algebroids to the latest version of #18843 (vector fields)
edde604Update curves to the latest version of #18843 (vector fields)
e8e433cUpdate affine connections to the latest version of #18843 (vector fields)

comment:26 Changed 7 months ago by egourgoulhon

  • Milestone changed from sage-7.2 to sage-7.4

comment:27 Changed 6 months ago by git

  • Commit changed from e8e433c14a9f95760a7e6feb2d30e4c39389bcd3 to 21b468fa1a7f35c12238dd67fdb5a9fbe6bf5d44

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

4955c3cFinal review of everything.
7cf4ff4Merge branch 'public/manifolds/diff_manif_tensor_fields' of trac.sagemath.org:sage into public/manifolds/diff_manif_tensor_fields
58ae506Merge branch 'public/manifolds/diff_manif_tensor_fields' of git://trac.sagemath.org/sage into Sage 7.4.beta6
8219403Fix documentation error; change in TensorField comparison to zero
a841f79Python 3 compatible syntax in tensor fields
5a5f400Slight change in TensorField.__eq__ (comparison to zero)
98efa66Update tangent spaces to the final version of the dependency ticket #18843
a5ab39aUpdate Lie algebroids to the latest version of the dependency ticket #19092
cd27531Update curves to the latest version of the dependency ticket #19092
21b468fUpdate affine connections to the latest version of the dependency ticket #19092

comment:28 Changed 5 months ago by git

  • Commit changed from 21b468fa1a7f35c12238dd67fdb5a9fbe6bf5d44 to 211319742801f4a2820d1d07d1a5fcafa2a26a74

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

8860387Add missing reference Lee13
fb7f4ddBibliographic references for tensor fields moved to the master file
8205dcaUpdate tangent spaces to the last change (adding a missing reference) in the dependency ticket #18843
785300bBibliographic references for tangent spaces moved to the master file created by #21454
6af8ad2Bibliographic references for vector field modules as Lie algebroids moved to the master file created by #21454
cdb3f28Bibliographic references for curves on manifolds moved to the master file created by #21454
2113197Bibliographic references for affine connections moved to the master file created by #21454

comment:29 Changed 4 months ago by git

  • Commit changed from 211319742801f4a2820d1d07d1a5fcafa2a26a74 to 906c0301949b0ddaa8cd915089f8dc1ab5e2eca5

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

906c030Update affine connections to the latest version of the dependency ticket #19092

comment:30 Changed 4 months ago by egourgoulhon

  • Milestone changed from sage-7.4 to sage-7.5

comment:31 follow-up: Changed 4 months ago by vbraun

  • Reviewers set to Volker Braun
  • Status changed from needs_review to positive_review

comment:32 in reply to: ↑ 31 Changed 4 months ago by egourgoulhon

Replying to vbraun:

Thank you!

comment:33 Changed 4 months ago by vbraun

  • Branch changed from public/manifolds/diff_manif_connections to 906c0301949b0ddaa8cd915089f8dc1ab5e2eca5
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.