Opened 5 years ago
Last modified 5 years ago
#24622 closed enhancement
PseudoRiemannian manifods — at Version 13
Reported by:  Eric Gourgoulhon  Owned by:  

Priority:  major  Milestone:  sage8.2 
Component:  geometry  Keywords:  pseudoRiemannian, Riemannian, manifold, gradient, divergence, Laplacian 
Cc:  Travis Scrimshaw  Merged in:  
Authors:  Eric Gourgoulhon  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  public/manifolds/pseudoRiemannian (Commits, GitHub, GitLab)  Commit:  8309fdd68066fd62b180f95be415f02ff2f7895e 
Dependencies:  Stopgaps: 
Description (last modified by )
This ticket implements pseudoRiemannian manifolds, i.e. real differentiable manifolds equipped with a metric tensor. Important subcases are of course Riemannian manifolds and Lorentzian manifolds. Taking into account that pseudoRiemannian metric tensors are already implemented in Sage (see here), this ticket introduces
 the parent class
PseudoRiemannianManifold
, as a subclass of the existing classDifferentiableManifold
, with the specific methodsmetric
andvolume_form
 new methods
gradient
,laplacian
anddalembertian
for scalar fields  new methods
divergence
,laplacian
anddalembertian
for tensor fields  new methods
curl
,dot_product
,cross_product
andnorm
for vector fields
For a greater generality, all these methods have an optional argument metric
; if it is omitted, the metric of the underlying pseudoRiemannian manifold is assumed.
To match with the standard functional notation, functions grad
, div
, curl
, laplacian
and dalembertian
have been implemented in src/sage/manifolds/differentiable/operators.py
. Their role is simply to call the corresponding methods on their arguments. In order not to clutter the global namespace in a standard Sage session, these functions are imported only if some pseudoRiemannian manifold is constructed, via the call to sage.repl.user_globals.set_global
in PseudoRiemannianManifold.__init__
.
Some vector calculus functionalities introduced by this ticket are demonstrated in this Jupyter worksheet.
The followup ticket #24623 implements Euclidean spaces.
This work is part of the SageManifolds project, see #18528 for an overview.
Change History (13)
comment:1 Changed 5 years ago by
Branch:  → public/manifolds/pseudoRiemannian 

Commit:  → 06f8fd34981fb8b201134439a55ecf79f962a5c9 
comment:2 Changed 5 years ago by
Description:  modified (diff) 

comment:3 Changed 5 years ago by
Description:  modified (diff) 

comment:4 Changed 5 years ago by
Commit:  06f8fd34981fb8b201134439a55ecf79f962a5c9 → 55f356c2ee79026349a821dccd409d0d5a76718c 

Branch pushed to git repo; I updated commit sha1. New commits:
55f356c  Improve documentation of pseudoRiemannian manifolds

comment:5 Changed 5 years ago by
Commit:  55f356c2ee79026349a821dccd409d0d5a76718c → 0fc661a5beaf076fdf67e0d4f45b546ed8e23e8e 

Branch pushed to git repo; I updated commit sha1. New commits:
0fc661a  Remove method set_metric and improve doc of pseudoRiemannian manifolds

comment:6 Changed 5 years ago by
Commit:  0fc661a5beaf076fdf67e0d4f45b546ed8e23e8e → b4dddf74279a21aa9cc645f959c8cd6b513a8d48 

Branch pushed to git repo; I updated commit sha1. New commits:
b4dddf7  Add operators Laplacian, d'Alembertian and curl on pseudoRiemannian manifolds

comment:7 Changed 5 years ago by
Commit:  b4dddf74279a21aa9cc645f959c8cd6b513a8d48 → 040b01c35f3082b4788bdeefea9d28aa1f96d3bc 

Branch pushed to git repo; I updated commit sha1. New commits:
040b01c  Add dot product and cross product of vector fields

comment:8 Changed 5 years ago by
Commit:  040b01c35f3082b4788bdeefea9d28aa1f96d3bc → 46b8f66385cd1c34e5310d627a0e44983f87cc4a 

Branch pushed to git repo; I updated commit sha1. New commits:
46b8f66  Add norm of vector fields.

comment:9 Changed 5 years ago by
Description:  modified (diff) 

comment:10 Changed 5 years ago by
Commit:  46b8f66385cd1c34e5310d627a0e44983f87cc4a → 135af976131baf0d1551806a7be1be25ef0e06c0 

Branch pushed to git repo; I updated commit sha1. New commits:
135af97  Add method volume_form() to class PseudoRiemannianManifold

comment:11 Changed 5 years ago by
Commit:  135af976131baf0d1551806a7be1be25ef0e06c0 → 38e8fd3d9ab08783ec58dc973b3fb5575a3b79a2 

Branch pushed to git repo; I updated commit sha1. New commits:
38e8fd3  Add global functions grad, div, curl, etc. for vector/tensor operators on pseudoRiemannian manifolds

comment:12 Changed 5 years ago by
Commit:  38e8fd3d9ab08783ec58dc973b3fb5575a3b79a2 → 8309fdd68066fd62b180f95be415f02ff2f7895e 

Branch pushed to git repo; I updated commit sha1. New commits:
8309fdd  Improve documentation for operators on pseudoRiemannian manifolds

comment:13 Changed 5 years ago by
Description:  modified (diff) 

This is work in progress...
New commits:
First version of pseudoRiemannian manifold class
PseudoRiemannian manifolds constructed by the generic function Manifold
Divergence of a tensor field + new section on pseudoRiemannian manifolds in the reference manual
Add doctests for pseudoRiemannian manifolds