Opened 21 months ago

Closed 6 months ago

#19209 closed enhancement (fixed)

Pseudo-Riemannian metrics on smooth manifolds

Reported by: egourgoulhon Owned by: egourgoulhon
Priority: major Milestone: sage-7.5
Component: geometry Keywords: differentiable manifold, pseudo-Riemannian metric, Riemannian metric, Lorentzian metric, Levi-Civita connection
Cc: mbejger, mmancini Merged in:
Authors: Eric Gourgoulhon, Michal Bjeger, Marco Mancini Reviewers: Volker Braun
Report Upstream: N/A Work issues:
Branch: c622eb9 (Commits) Commit: c622eb9423ddfb66baaf0cba5e85be915b9cb68a
Dependencies: #18100, #19147 Stopgaps:

Description (last modified by egourgoulhon)

This ticket implements pseudo-riemannian metrics on infinitely differentiable manifolds (i.e. smooth manifolds) over R. This is a follow-up of #19147 within the SageManifolds project (see the metaticket #18528 for an overview).

This ticket implements the following Python classes:

  • PseudoRiemannianMetric for pseudo-Riemannian metrics on a real smooth manifold
    • PseudoRiemannianMetricParal for pseudo-Riemannian metrics on a real smooth parallelizable manifold
  • LeviCivitaConnection for the Levi-Civita connection associated with a pseudo-Riemannian metric.

Various methods of the above classes allow for the computation of

  • the connection coefficients and Christoffel symbols of the Levi-Civita connection associated with a given metric
  • the Riemann and Ricci tensor of a given metric
  • the Ricci scalar of a given metric
  • the Weyl tensor of a given metric
  • the volume n-form associated with a given metric on a n-dimensional manifold
  • the metric duals of tensor fields (musical isomorphisms)

The user interface is via the method DifferentiableManifold.metric(). At the user choice, CPU-demanding computations (like that of the Riemann tensor) can be parallelized, thanks to #18100.

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

Change History (37)

comment:1 Changed 21 months ago by git

  • Commit changed from 8304102cee532d2a6fae11cbfc4a48711de4a1ee to e37d03f123098108eeac8c1b459ae9091fc502c4

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

e37d03fAdd the Hodge star operator to pseudo-Riemannian metrics

comment:2 Changed 21 months ago by git

  • Commit changed from e37d03f123098108eeac8c1b459ae9091fc502c4 to 1778a4cf153c844b2227240cf8df071166f87800

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

1778a4cAdd method hodge_dual() in classes DiffForm, DiffFormParal and DiffScalarField

comment:3 Changed 20 months ago by git

  • Commit changed from 1778a4cf153c844b2227240cf8df071166f87800 to a6ed45c48ebc8c841b2e52512c62d47f2a894b21

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

a6ed45cFull doctest coverage of pseudo-Riemannian metrics

comment:4 Changed 20 months ago by git

  • Commit changed from a6ed45c48ebc8c841b2e52512c62d47f2a894b21 to a1288778a6a3266725e4a92dec0cab11ad2e01b1

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

a128877Full doctest coverage for Levi-Civita connections

comment:5 Changed 20 months ago by git

  • Commit changed from a1288778a6a3266725e4a92dec0cab11ad2e01b1 to 03143c5259e9b17ecec0a92cf443e7630a3aa8ce

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

03143c5Various improvements, in particular in method open_subset() of Top/DiffManifold

comment:6 Changed 20 months ago by git

  • Commit changed from 03143c5259e9b17ecec0a92cf443e7630a3aa8ce to 3c5fc6f6fe2d85ea6a5e2fcba433701d8afa2e6b

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

3c5fc6fMany improvements in the documentation of topological manifolds.

comment:7 Changed 20 months ago by git

  • Commit changed from 3c5fc6f6fe2d85ea6a5e2fcba433701d8afa2e6b to 7240be390f471eaba3bb5a6eff80674a59cb08d7

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

7240be3Many improvements in the doc of top and diff manifolds

comment:8 Changed 20 months ago by git

  • Commit changed from 7240be390f471eaba3bb5a6eff80674a59cb08d7 to 045e736fd2d66f01c076cedf03344b9b957b48fa

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

045e736Add global function xder + deprecated functions (Manifold, diff_mapping, function_chart)

comment:9 Changed 20 months ago by git

  • Commit changed from 045e736fd2d66f01c076cedf03344b9b957b48fa to 60a4edd0644920b16646a05fb0e6db0d4909f156

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

60a4eddAdd pushforward to differentiable maps

comment:10 Changed 20 months ago by git

  • Commit changed from 60a4edd0644920b16646a05fb0e6db0d4909f156 to 8ecc57acb64111be2e9927b8f53f69e4f2bd012e

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

8ecc57aMinor changes in differentiable manifolds.

comment:11 Changed 20 months ago by git

  • Commit changed from 8ecc57acb64111be2e9927b8f53f69e4f2bd012e to 5b3a96191b702328180003b75565d53a4c20ea6d

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

5b3a961Introduce open covers on topological manifolds and change TensorField.__eq__

comment:12 Changed 20 months ago by git

  • Commit changed from 5b3a96191b702328180003b75565d53a4c20ea6d to 433f93f97068ab28c8d9ed9fdfcd0cfa4fcdfe49

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

433f93fMinor improvements in documentation of algebras of scalar fields and diff. manifolds

comment:13 Changed 20 months ago by git

  • Commit changed from 433f93f97068ab28c8d9ed9fdfcd0cfa4fcdfe49 to 889555e0d95edc5c91f59f3d7cebcd9b75513e8b

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

889555eVery minor changes in manifold.py and chart.py

comment:14 Changed 20 months ago by git

  • Commit changed from 889555e0d95edc5c91f59f3d7cebcd9b75513e8b to 6ecd5db9cb2b58e5eb9e32eba4edbf8104613e73

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

6ecd5dbImprove TensorField.__eq__ (case with no open cover known)

comment:15 Changed 20 months ago by git

  • Commit changed from 6ecd5db9cb2b58e5eb9e32eba4edbf8104613e73 to 0cf017a834aba4dffed1ba76eaa72ebef723471a

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

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
a148062Major improvements in the documentation of diff. manifolds (affine connections part)
a80dcccImprove TensorField.__eq__ (case with no open cover known)
f86e5dbMerge #19147 into (#19124 + #18100)
0cf017aMerge #19209 into #19147

comment:16 Changed 20 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:17 Changed 19 months ago by git

  • Commit changed from 0cf017a834aba4dffed1ba76eaa72ebef723471a to 82f6f495bb6f729624dd8396208f5a3c67e2fa8d

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

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).
82f6f49Implement diff. manifolds (metrics, #19209) on the new manifold categories (#18175).

comment:18 Changed 18 months ago by git

  • Commit changed from 82f6f495bb6f729624dd8396208f5a3c67e2fa8d to cb47399ef5f07254fc10224490b00bc9bd2dd93f

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

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
8be9a45Merge branch 'public/manifolds/diff_manif_metrics' of git://trac.sagemath.org/sage into #19147 (affine connections on manifolds with unique representation).
8f0659aPseudo-Riemannian metrics on smooth manifolds without unique representation
1344776Add method AffineConnection.__ne__
cb47399Merge branch 'diff_manif_connections' into diff_manif_metrics to propagate minor changes in affine connections.

comment:19 Changed 18 months ago by git

  • Commit changed from cb47399ef5f07254fc10224490b00bc9bd2dd93f to 58723e996cc8a6ff89c86fdde20928d246a6c2f9

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

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
26e8daeFirst argument of scalar field constructor is the scalar field algebra (i.e. the parent)
0ea8b0c Revert to UniqueRepresentation for differentiable manifolds: affine connections
58723e9Revert to UniqueRepresentation for differentiable manifolds: metric

comment:20 Changed 18 months ago by git

  • Commit changed from 58723e996cc8a6ff89c86fdde20928d246a6c2f9 to 2918953e517d371e70f8dcaa5939632252f945f5

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)
2918953Diff. manifolds: metrics, with the change in symbolic expression logic induced by #19312 (Sage 6.10.beta7)

comment:21 Changed 18 months ago by egourgoulhon

  • Description modified (diff)

comment:22 Changed 18 months ago by git

  • Commit changed from 2918953e517d371e70f8dcaa5939632252f945f5 to 98810dff8d2f493d701b0fb20e1fb6e7e1794365

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

aae566dImprove parallelization in Components and derived classes
98810dfDiff. manifolds: metrics, with improvements in parallelization of Components

comment:23 Changed 17 months ago by git

  • Commit changed from 98810dff8d2f493d701b0fb20e1fb6e7e1794365 to fb043ffa3870d7c1ac0547ec80b5b6353afe21b1

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

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
0eb9d00Added parallelization to CompFullyAntiSym.__add__
eb0d8b5Affine connections with the simplified hierarchy for manifold classes
fb043ffMetrics on diff. manifolds with the simplified hierarchy for manifold classes

comment:24 Changed 17 months ago by egourgoulhon

  • Milestone changed from sage-6.10 to sage-7.0

comment:25 Changed 16 months ago by git

  • Commit changed from fb043ffa3870d7c1ac0547ec80b5b6353afe21b1 to 7c39bbb6889784c3e1fb444d88c4e8c342870b69

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
7c39bbbMetrics on diff. manifolds: solve merge conflict with Sage 7.1.beta1

comment:26 Changed 13 months ago by git

  • Commit changed from 7c39bbb6889784c3e1fb444d88c4e8c342870b69 to f527408744bad9fe1f5e9a139debbac53b6cc63b

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

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
f527408Pseudo-Riemannian metrics with coordinate functions as algebra elements

comment:27 Changed 13 months ago by egourgoulhon

  • Milestone changed from sage-7.0 to sage-7.2

comment:28 Changed 13 months ago by git

  • Commit changed from f527408744bad9fe1f5e9a139debbac53b6cc63b to a34b35d13efc0c37d2a69bfd3260ad84b3bc7352

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
a34b35dPseudo-Riemannian metrics on the latest #19147

comment:29 Changed 9 months ago by git

  • Commit changed from a34b35d13efc0c37d2a69bfd3260ad84b3bc7352 to 61e379119b631f4c85897541ec3d5fc6b0d98a73

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

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)
61e3791Update metrics to the latest version of vector fields (#18843)

comment:30 Changed 9 months ago by egourgoulhon

  • Milestone changed from sage-7.2 to sage-7.4

comment:31 Changed 8 months ago by git

  • Commit changed from 61e379119b631f4c85897541ec3d5fc6b0d98a73 to 41c027ffd945821ff3f44a2bd0577b9166ea36fa

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

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
41c027fUpdate metrics to the latest version of the dependency ticket (#19147) + Py3 preparation

comment:32 Changed 7 months ago by git

  • Commit changed from 41c027ffd945821ff3f44a2bd0577b9166ea36fa to f5dd9d5207044e8cab9b06c45b23a47822ec3098

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
f5dd9d5Bibliographic references for pseudo-Riemannian metrics moved to the master file created by #21454

comment:33 Changed 6 months ago by git

  • Commit changed from f5dd9d5207044e8cab9b06c45b23a47822ec3098 to c622eb9423ddfb66baaf0cba5e85be915b9cb68a

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

906c030Update affine connections to the latest version of the dependency ticket #19092
c622eb9Update metrics on manifolds to the latest version of the dependency ticket #19147

comment:34 Changed 6 months ago by egourgoulhon

  • Milestone changed from sage-7.4 to sage-7.5

comment:35 follow-up: Changed 6 months ago by vbraun

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

comment:36 in reply to: ↑ 35 Changed 6 months ago by egourgoulhon

Replying to vbraun:

Thank you !

comment:37 Changed 6 months ago by vbraun

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