Opened 3 years ago
Closed 2 years ago
#26355 closed enhancement (fixed)
Degenerate Metric and Degenerate Metric Manifold
Reported by:  Dicolevrai  Owned by:  

Priority:  major  Milestone:  sage9.1 
Component:  geometry  Keywords:  Degenerate (or lightlike) submanifold 
Cc:  Merged in:  
Authors:  Hans Fotsing Tetsing  Reviewers:  Eric Gourgoulhon 
Report Upstream:  N/A  Work issues:  
Branch:  ede7f5d (Commits, GitHub, GitLab)  Commit:  ede7f5d1f49d897865e7d3b9119619ddb4e9e2fe 
Dependencies:  Stopgaps: 
Description (last modified by )
An *embedded (resp. immersed) degenerate submanifold of a proper
pseudoRiemannian manifold* (M,g)
is an embedded (resp. immersed)
submanifold H
of M
as a differentiable manifold such that pull
back of the metric tensor g
via the embedding (resp. immersion)
endows H
with the structure of a degenerate manifold.
Degenerate submanifolds are study in many fields of mathematics and physics,
for instance in Differential Geometry (especially in geometry of
lightlike submanifold) and in General Relativity. In geometry of lightlike
submanifolds, according to the dimension r
of the radical distribution
(see below for definition of radical distribution), degenerate submanifolds
have been classify into 4 subgroups: r
lightlike submanifolds, Coisotropic
submanifolds, Isotropic submanifolds and Totally lightlike submanifolds.
(See the book of Krishan L. Duggal and Aurel Bejancu in *REFERENCES*.)
In the present module, one can define any of the 4 types but most of the methods are implemented only for degenerate hypersurfaces who belong to
r
lightlike submanifolds. However, there might be generalized to
1
lightlike submanifolds. In the literature, there is a new approach (the rigging technique) for studying 1
lightlike submanifolds but
here we the method of Krishan L. Duggal and Aurel Bejancu base on
the screen distribution.
Let H
be a lightlike hypersurface of a pseudoRiemannian manifold
(M,g)
. Then the normal bundle T^\perp H
intersect the tangent
bundle TH
. The radical distribution is defined as
Rad(TH)=TH\cap T^\perp H
. In case of hypersurfaces, and more
generally 1
lightlike submanifolds, this is a rank 1 distribution.
A screen distribution S(TH)
is a complementary of Rad(TH)
in TH
.
Giving a screen distribution S(TH)
and a null vector field \xi
locally defined and spanning Rad(TH)
, there exists a unique
transversal null vector field 'N' locally defined and such that
g(N,\xi)=1
. From a transverse vector 'v', the null rigging 'N'
is giving by the formula
.. MATH::
N = \frac{1}{g(\xi, v)}\left(v\frac{g(v,v)}{2g(xi, v)}\xi\right)
Tensors on the ambient manifold M
are projected on H
along N
to obtain induced objects. For instance, the induced connection is the linear connexion defined on H
through the LeviCivitta connection of g
along N
.
To work on a degenerate submanifold, after defining H
as an instance of :class:~sage.manifolds.differentiable.manifold.DifferentiableManifold
, with the keyword *structure='degenerate_metric'*, you have to set a transvervector v
and screen distribution together with the radical distribution.
An example of degenerate submanifold from General Relativity is the
horizon of the Schwarzschild black hole. Allow us to recall that
Schwarzschild black hole is the first nontrivial solution of Einstein's equations. It describes the metric inside a star of radius R = 2m
, being m
the inertial mass of the star. It can be seen as an open ball in a Lorentzian manifold structure on \RR^4
::
Attachments (2)
Change History (66)
comment:1 Changed 3 years ago by
 Branch public/manifolds/DegenerateSubmanifold deleted
 Commit b2523bbbf62de2e1c4a39fab1aa557f68d92e2cf deleted
comment:2 Changed 3 years ago by
 Branch set to public/manifolds/LightlikeSubmanifold
 Commit set to 3ad4c004301268127b8c43989d33708eacb53370
 Status changed from new to needs_info
comment:3 Changed 3 years ago by
 Commit changed from 3ad4c004301268127b8c43989d33708eacb53370 to 9e1db14f7cb149995a0d7df91925811d3cbfe917
Branch pushed to git repo; I updated commit sha1. New commits:
9e1db14  Classes DegenerateManifold and DegenerateSubmanifold

comment:4 Changed 3 years ago by
 Cc egourgoulhon added; Eric Gourgoulhon removed
comment:5 Changed 3 years ago by
 Branch public/manifolds/LightlikeSubmanifold deleted
 Commit 9e1db14f7cb149995a0d7df91925811d3cbfe917 deleted
 Milestone changed from sage8.4 to sage8.5
comment:6 Changed 3 years ago by
 Branch set to public/manifolds/LightlikeSubmanifolds
 Commit set to 165d66a3437f45a100ace98a7b7500872b90828a
 Status changed from needs_info to needs_review
New commits:
165d66a  Lightlike submanifolds an degenerate metrics

comment:7 Changed 3 years ago by
 Commit changed from 165d66a3437f45a100ace98a7b7500872b90828a to 69fdf2237a3a1633e979d7e8e250824a9425a2d6
comment:8 Changed 3 years ago by
The keyword value degenerate
by
degenerate_metric
for the keyword
structure
of the constructor :function:
~sage.manifolds.manifold
, and all doctests have been written.
comment:9 Changed 3 years ago by
 Milestone changed from sage8.5 to sage8.6
comment:10 Changed 3 years ago by
 Milestone changed from sage8.6 to sage8.7
Retarging tickets optimistically to the next milestone. If you are responsible for this ticket (either its reporter or owner) and don't believe you are likely to complete this ticket before the next release (8.7) please retarget this ticket's milestone to sagepending or sagewishlist.
comment:11 Changed 3 years ago by
 Commit changed from 69fdf2237a3a1633e979d7e8e250824a9425a2d6 to 8f7d13e008b1e6620ebe85fec1214d6024c94a41
comment:12 Changed 3 years ago by
 Milestone changed from sage8.7 to sage8.8
Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually)
comment:13 Changed 3 years ago by
 Branch public/manifolds/LightlikeSubmanifolds deleted
 Commit 8f7d13e008b1e6620ebe85fec1214d6024c94a41 deleted
comment:14 Changed 3 years ago by
 Branch set to public/manifolds/DegenerateMetric
 Commit set to d01c38a77546a11bcc00e7f442ecc34cd4091661
comment:15 Changed 3 years ago by
 Milestone changed from sage8.8 to sage8.9
Moving tickets from the Sage 8.8 milestone that have been actively worked on in the last six months to the next release milestone (optimistically).
comment:16 Changed 2 years ago by
 Branch public/manifolds/DegenerateMetric deleted
 Commit d01c38a77546a11bcc00e7f442ecc34cd4091661 deleted
comment:17 Changed 2 years ago by
 Branch set to public/manifolds/DegenerateMetrics
 Commit set to 86fce263f3b84eaee97038545637764fcf05c471
 Summary changed from Classes DegenerateManifold and DegenerateSubmanifold to Degenerate Metric and Degenerate Metric Manifold
Dear,
All tests passed this time. I will be happy if you would find time to review.
New commits:
86fce26  Degenerate Metric

comment:18 Changed 2 years ago by
 Commit changed from 86fce263f3b84eaee97038545637764fcf05c471 to d5926b27de12d1c5b929e657be6c43880f6746ab
comment:19 Changed 2 years ago by
 Commit changed from d5926b27de12d1c5b929e657be6c43880f6746ab to 3456617784ad22d949d216651cbde29d9ebe8705
Branch pushed to git repo; I updated commit sha1. New commits:
3456617  rst

comment:20 Changed 2 years ago by
 Branch changed from public/manifolds/DegenerateMetrics to public/manifolds/DegenerateMetricManifold
 Cc egourgoulhon removed
 Commit changed from 3456617784ad22d949d216651cbde29d9ebe8705 to 089b2103a5c951707a890fa10d66d2d147014b88
comment:21 Changed 2 years ago by
 Status changed from needs_review to needs_work
The documentation does not build (it looks like a file degenerate_metric.rst
is missing in src/doc/en/reference/manifolds
)
comment:22 Changed 2 years ago by
 Commit changed from 089b2103a5c951707a890fa10d66d2d147014b88 to 7693085d89d30cfe5f9451228b2036406bf6e82e
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
7693085  Adding degenerate_metric.rst

comment:23 Changed 2 years ago by
 Status changed from needs_work to needs_review
New commits:
7693085  Adding degenerate_metric.rst

comment:24 Changed 2 years ago by
The documentation does not build: I get the error message
OSError: /home/eric/sage/py3/local/lib/python3.7/sitepackages/sage/manifolds/differentiable/degenerate_submanifold.py:docstring of sage.manifolds.differentiable.degenerate_submanifold:7: WARNING: Inline interpreted text or phrase reference startstring without endstring.
See also the error in line 1772 of src/doc/en/reference/references/index.rst
reported by the patchbot.
comment:25 Changed 2 years ago by
Shouldn't "Shawrzschild" be "Schwarzschild" (appears several places).
Regarding the documentation, I skimmed it for formatting and fixed some of the problems. I am pretty sure there are more, for example cases where 'M'
should be `M`
(you want backquotes so the symbol will appear in math mode, not in quotes). In adapted_frame
, do you want to use \xi
instead of xi
?
I strongly encourage running make
and then opening up the reference manual (e.g. with ./sage c 'reference()'
, and then proofreading for both formatting and content. I just made formatting changes, no changes to the content.
comment:26 Changed 2 years ago by
 Commit changed from 7693085d89d30cfe5f9451228b2036406bf6e82e to 7b93c60a4397c9d028a8874b074374ca77093c3d
comment:27 Changed 2 years ago by
 Commit changed from 7b93c60a4397c9d028a8874b074374ca77093c3d to e9f8bba07c03da6e45bec04df721c115f4063959
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
e9f8bba  trac 26355: formatting for docstrings

comment:28 Changed 2 years ago by
 Description modified (diff)
comment:29 Changed 2 years ago by
 Milestone changed from sage8.9 to sage9.0
comment:30 Changed 2 years ago by
 Commit changed from e9f8bba07c03da6e45bec04df721c115f4063959 to 3a003dea55fe96685c7fe42ff03860211aea6c6b
comment:31 Changed 2 years ago by
 Cc eric gourgoulhon added
 Description modified (diff)
comment:32 Changed 2 years ago by
 Cc eric gourgoulhon removed
 Status changed from needs_review to positive_review
comment:33 Changed 2 years ago by
 Reviewers Eric Gourgoulhon deleted
 Status changed from positive_review to needs_review
Sorry for not having been able to do the review up to now. I will do it this week.
comment:34 followup: ↓ 35 Changed 2 years ago by
 Status changed from needs_review to needs_work
red branch
comment:35 in reply to: ↑ 34 Changed 2 years ago by
Replying to chapoton:
red branch
I'll perform a review in the coming days and will start by fixing the merge conflicts. They are due to the numerous tickets merged in the manifold section since the current ticket was prepared.
comment:36 Changed 2 years ago by
 Commit changed from 3a003dea55fe96685c7fe42ff03860211aea6c6b to 337d726800fd750409ae68e01aa8e046f5e64594
Branch pushed to git repo; I updated commit sha1. New commits:
337d726  Merge public/manifolds/DegenerateMetricManifold into Sage 9.0.beta9

comment:37 Changed 2 years ago by
 Status changed from needs_work to needs_review
The merge conflict is fixed. Let the patchbot run...
comment:38 Changed 2 years ago by
 Status changed from needs_review to needs_work
An issue is the time spent in doctesting the file degenerate_submanifold.py
: on my computer (core i7 processor), this takes 247 seconds. This is too long. For instance, doctesting pseudo_riemannian_submanifold.py
takes 95 seconds, which is already very long! Could you rewrite the doctests to reduce this time? (for instance by reducing the dimensionality). From the doctest section of the developer manual: long doctests should ideally complete in 5 seconds or less. We know that you (the author) want to show off the capabilities of your code, but this is not the place to do so. Longrunning tests will sooner or later hurt our ability to run the testsuite. Really, doctests should be as fast as possible while providing coverage for the code.
If you want to show capabilities of your code that requires rather long computations, please consider preparing a Jupyter notebook, that could be posted e.g. on the page of manifold examples.
Note that to track the long doctests, you can use the option warnlong
; for instance
./sage t long warnlong 5 src/sage/manifolds/differentiable/degenerate_submanifold.py
shows all doctests that takes more than 5 seconds.
Besides, there are some pyflakes errors:
degenerate_submanifold.py:174: 'sage.functions.other.factorial' imported but unused degenerate_submanifold.py:175: 'sage.symbolic.ring.SR' imported but unused degenerate_submanifold.py:176: 'sage.misc.cachefunc.cached_method' imported but unused degenerate_submanifold.py:177: 'sage.rings.integer.Integer' imported but unused degenerate_submanifold.py:178: 'queue.Queue' imported but unused degenerate_submanifold.py:582: local variable 'normal' is assigned to but never used degenerate_submanifold.py:2135: 'sage.tensor.modules.tensor_with_indices.TensorWithIndices' imported but unused
comment:39 Changed 2 years ago by
 Commit changed from 337d726800fd750409ae68e01aa8e046f5e64594 to fac366bf56712dd7cc792197dbb179a98ad4567d
Branch pushed to git repo; I updated commit sha1. New commits:
8720884  Sheet to test DegenerateMetric

c063e00  Merge branch 'develop' of https://github.com/sagemath/sage into DegenerateMetric

3635ba4  Merge branch 'develop' of https://github.com/sagemath/sage into DegenerateMetric

8749a58  Degenerate Metric

c3a0991  Merge branch 'develop' of https://github.com/sagemath/sage into DegenerateMetric

6c756c8  Merge branch 'develop' of https://github.com/sagemath/sage into DegenerateMetric

4c00765  Fix conflicts

fac366b  Doctest time has been reduced

comment:40 followups: ↓ 41 ↓ 47 Changed 2 years ago by
 Cc eric gourgoulhon added
 Status changed from needs_work to needs_review
Time spent in doctesting the file degenerate_submanifold.py
has been considerably reduced. All imported but unused local variables have been deleted. I will be happy to post some Jupyter notebook to the page of manifold examples
comment:41 in reply to: ↑ 40 Changed 2 years ago by
Replying to Dicolevrai:
Time spent in doctesting the file
degenerate_submanifold.py
has been considerably reduced.
Thanks.
All imported but unused local variables have been deleted. I will be happy to post some Jupyter notebook to the page of manifold examples
You have added a Jupyter notebook at the root of Sage directory in the last commit. I guess this is an error. In any case, Trac branches are not the place for this. Only source code (Python, Cython, reStructuredText, etc.) should be present. Could you remove it? A good place for publishing Jupyter notebooks is a public git repository, on which one can make a link via nbviewer or binder.
comment:42 Changed 2 years ago by
 Commit changed from fac366bf56712dd7cc792197dbb179a98ad4567d to ea9128a6541680ccbb34e969d41e2bd710901041
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
ea9128a  Doctest time has been reduced

comment:43 Changed 2 years ago by
I have removed the Jupyter notebook ClassDegenerateMetric.ipynb
added by mistake.
comment:44 Changed 2 years ago by
 Commit changed from ea9128a6541680ccbb34e969d41e2bd710901041 to 6b5e586aebc216c8e75915f0b1d28f9816a27071
Branch pushed to git repo; I updated commit sha1. New commits:
6b5e586  #26355: some fixes, especially in the documentation

comment:45 Changed 2 years ago by
I've fix some issues in the last commit. Some of them were revealed by the patchbot:
 the documentation failed to build, due to the duplicate reference
[DS2010]
insrc/doc/en/reference/references/index.rst
 the startup time was increased due to these unnecessary import statements in
src/sage/manifolds/all.py
:import sage.manifolds.differentiable.degenerate import sage.manifolds.differentiable.degenerate_submanifold
Other fixes:
 the files
degenerate.py
anddegenerate_submanifold.py
were in executable mode; I've removed this  there was a regression regarding the unique tag of manifolds in
src/sage/manifolds/manifold.py
; I've restored the change introduced in #28365  many typos in the documentation
Besides, I've added some authorship mention, with your name, as well as the standard GPL notice (there should be one in each source file).
As usual, you can see the changes by clicking on the blue commit number 6b5e586 in comment:44.
comment:46 Changed 2 years ago by
 Cc eric gourgoulhon removed
 Reviewers set to Eric Gourgoulhon
comment:47 in reply to: ↑ 40 Changed 2 years ago by
About the Cc
field: there is no need to add me, since I participate in the ticket discussion and therefore receive all notifications. The Cc
field is useful only if you want to draw the attention of someone who has not taken part yet in the ticket discussion. Moreover, you should fill this field with his/her username, not real name (NB: this is the opposite of the Authors
and Reviewers
fields, which must be filled by real names).
comment:48 Changed 2 years ago by
 Status changed from needs_review to needs_work
The patchbot is green, but the documentation still requires some improvements. For instance
 the method
mean_curvature()
of classDegenerateSubmanifold
has anOUTPUT
section reduced to a dictionary. This is not sufficient, you should tell what are the keys and the values of that dictionary. Same thing forprincipal_directions()
.  there are unnecessary semicolons at the end of the
INPUT
andOUTPUT
fields inprojection()
(and maybe elsewhere)  the description of
screen_projection()
is not understandable: ...T′(v1,…,vr) is the projection of T(v1,…,vr) on the bundle spans by screen along the bundle spans by the transversal plus the radical vector fields provided. Should spans be spanned? Same thing inprojection()
.  A
Phi
sould be\Phi
Could you please check the html output of the documentation and correct other possible errors?
comment:49 Changed 2 years ago by
 Commit changed from 6b5e586aebc216c8e75915f0b1d28f9816a27071 to a14c944716668c0383326bf7822f285f7f46b299
Branch pushed to git repo; I updated commit sha1. New commits:
a14c944  Some typos have been fixed in the documentation

comment:50 followup: ↓ 52 Changed 2 years ago by
 Status changed from needs_work to needs_review
I have fixed the documentations of the methods mean_curvature()
, principal_directions()
, projection()
, screen_projection()
, projection()
, and some others.
comment:51 Changed 2 years ago by
 Commit changed from a14c944716668c0383326bf7822f285f7f46b299 to f1598e9997ef40bd69234fb7c6db003f6e264613
comment:52 in reply to: ↑ 50 Changed 2 years ago by
Replying to Dicolevrai:
I have fixed the documentations of the methods
mean_curvature()
,principal_directions()
,projection()
,screen_projection()
,projection()
, and some others.
Thanks. In the last commit, I've corrected some typos.
The classes TangentTensor
and Screen
are missing an EXAMPLE
section.
comment:53 Changed 2 years ago by
 Commit changed from f1598e9997ef40bd69234fb7c6db003f6e264613 to 42bb2fea65df3a1788b93742bf7f78a814e405e3
comment:54 followup: ↓ 56 Changed 2 years ago by
Section EXAMPLE
added in classes TangentTensor
and Screen
.
comment:55 Changed 2 years ago by
 Commit changed from 42bb2fea65df3a1788b93742bf7f78a814e405e3 to 99916e00ea9591eb72c755186674c58681260ad3
Branch pushed to git repo; I updated commit sha1. New commits:
33d11c8  Merge branch 'public/manifolds/DegenerateMetricManifold' of git://trac.sagemath.org/sage into Sage 9.0.rc0

f1598e9  #26355: fix some typos in the documentation

99916e0  #26355: merge with branch containing the typos fixes (commit f1598e9) + minor fixes

comment:56 in reply to: ↑ 54 ; followup: ↓ 58 Changed 2 years ago by
Replying to Dicolevrai:
Section
EXAMPLE
added in classesTangentTensor
andScreen
.
Thanks. You performed a forced push with your changes on a branch which was not the latest one and hence did not contain the typo fixes introduced in comment:51. The latter are reintroduced in the above commit (comment:55), as well as a bunch of other fixes in the documentation.
comment:57 Changed 2 years ago by
 Commit changed from 99916e00ea9591eb72c755186674c58681260ad3 to 1b3d7fa5c3242401fe8f9dbb6a1dd0dd11602222
comment:58 in reply to: ↑ 56 Changed 2 years ago by
Replying to egourgoulhon:
Replying to Dicolevrai:
Section
EXAMPLE
added in classesTangentTensor
andScreen
.Thanks. You performed a forced push with your changes on a branch which was not the latest one and hence did not contain the typo fixes introduced in comment:51. The latter are reintroduced in the above commit (comment:55), as well as a bunch of other fixes in the documentation.
I'm so sorry. I solved the problem, thank you.
comment:59 followup: ↓ 61 Changed 2 years ago by
I am not sure that the two commits added in comment:57 were necessary, but anyway...
There is an error revealed by the patchbot: in degenerate_submanifold.py
, EXAMPLE:
must be changed to EXAMPLES:
.
comment:60 Changed 2 years ago by
 Commit changed from 1b3d7fa5c3242401fe8f9dbb6a1dd0dd11602222 to ede7f5d1f49d897865e7d3b9119619ddb4e9e2fe
comment:61 in reply to: ↑ 59 Changed 2 years ago by
Replying to egourgoulhon:
There is an error revealed by the patchbot: in
degenerate_submanifold.py
,EXAMPLE:
must be changed toEXAMPLES:
.
I did it, thanks!
comment:62 Changed 2 years ago by
 Status changed from needs_review to positive_review
The patchbot is now green and it is time for this to go into Sage. Thank you for your work on this ticket!
comment:64 Changed 2 years ago by
 Branch changed from public/manifolds/DegenerateMetricManifold to ede7f5d1f49d897865e7d3b9119619ddb4e9e2fe
 Resolution set to fixed
 Status changed from positive_review to closed
New commits:
Classes DegenerateManifold and DegenerateSubmanifold