Opened 15 months ago

Last modified 28 hours ago

#26355 needs_review enhancement

Degenerate Metric and Degenerate Metric Manifold

Reported by: Dicolevrai Owned by:
Priority: major Milestone: sage-9.0
Component: geometry Keywords: Degenerate (or lightlike) submanifold
Cc: eric, gourgoulhon Merged in:
Authors: Hans Fotsing Tetsing Reviewers:
Report Upstream: N/A Work issues:
Branch: public/manifolds/DegenerateMetricManifold (Commits) Commit: fac366bf56712dd7cc792197dbb179a98ad4567d
Dependencies: Stopgaps:

Description (last modified by Dicolevrai)

An *embedded (resp. immersed) degenerate submanifold of a proper pseudo-Riemannian 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 pseudo-Riemannian 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 Levi-Civitta 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 non-trivial 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)

degenerate_submanifold.py (97.9 KB) - added by Dicolevrai 11 months ago.
To create the class Degenerate Submanifold
degenerate.py (14.8 KB) - added by Dicolevrai 11 months ago.
To create the class Degenerate Manifold

Download all attachments as: .zip

Change History (42)

comment:1 Changed 15 months ago by Dicolevrai

  • Branch public/manifolds/DegenerateSubmanifold deleted
  • Commit b2523bbbf62de2e1c4a39fab1aa557f68d92e2cf deleted

comment:2 Changed 15 months ago by Dicolevrai

  • Branch set to public/manifolds/LightlikeSubmanifold
  • Commit set to 3ad4c004301268127b8c43989d33708eacb53370
  • Status changed from new to needs_info

New commits:

3ad4c00Classes DegenerateManifold and DegenerateSubmanifold

comment:3 Changed 15 months ago by git

  • Commit changed from 3ad4c004301268127b8c43989d33708eacb53370 to 9e1db14f7cb149995a0d7df91925811d3cbfe917

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

9e1db14Classes DegenerateManifold and DegenerateSubmanifold

comment:4 Changed 15 months ago by egourgoulhon

  • Cc egourgoulhon added; Eric Gourgoulhon removed

comment:5 Changed 14 months ago by Dicolevrai

  • Branch public/manifolds/LightlikeSubmanifold deleted
  • Commit 9e1db14f7cb149995a0d7df91925811d3cbfe917 deleted
  • Milestone changed from sage-8.4 to sage-8.5

comment:6 Changed 14 months ago by Dicolevrai

  • Branch set to public/manifolds/LightlikeSubmanifolds
  • Commit set to 165d66a3437f45a100ace98a7b7500872b90828a
  • Status changed from needs_info to needs_review

New commits:

165d66aLightlike submanifolds an degenerate metrics

comment:7 Changed 14 months ago by git

  • Commit changed from 165d66a3437f45a100ace98a7b7500872b90828a to 69fdf2237a3a1633e979d7e8e250824a9425a2d6

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

344dfafMerge branch 'develop' of https://github.com/sagemath/sage into LightlikeSubmanifolds
69fdf22Replacing the keyword 'degenerate' by 'degenerate_metric' and writing all doctests

comment:8 Changed 14 months ago by Dicolevrai

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 12 months ago by Dicolevrai

  • Milestone changed from sage-8.5 to sage-8.6

comment:10 Changed 11 months ago by embray

  • Milestone changed from sage-8.6 to sage-8.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 sage-pending or sage-wishlist.

comment:11 Changed 11 months ago by git

  • Commit changed from 69fdf2237a3a1633e979d7e8e250824a9425a2d6 to 8f7d13e008b1e6620ebe85fec1214d6024c94a41

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

6499e87I don't know what is this file
6c1d969Merge branch 'public/manifolds/LightlikeSubmanifolds' of git://trac.sagemath.org/sage into develop
8f7d13eSome files were missing

Changed 11 months ago by Dicolevrai

To create the class Degenerate Submanifold

Changed 11 months ago by Dicolevrai

To create the class Degenerate Manifold

comment:12 Changed 9 months ago by embray

  • Milestone changed from sage-8.7 to sage-8.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 8 months ago by Dicolevrai

  • Branch public/manifolds/LightlikeSubmanifolds deleted
  • Commit 8f7d13e008b1e6620ebe85fec1214d6024c94a41 deleted

comment:14 Changed 8 months ago by Dicolevrai

  • Branch set to public/manifolds/DegenerateMetric
  • Commit set to d01c38a77546a11bcc00e7f442ecc34cd4091661

New commits:

f498738worksheet
d01c38aDegenerate metric

comment:15 Changed 5 months ago by embray

  • Milestone changed from sage-8.8 to sage-8.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 4 months ago by Dicolevrai

  • Branch public/manifolds/DegenerateMetric deleted
  • Commit d01c38a77546a11bcc00e7f442ecc34cd4091661 deleted

comment:17 Changed 4 months ago by Dicolevrai

  • 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:

86fce26Degenerate Metric

comment:18 Changed 4 months ago by git

  • Commit changed from 86fce263f3b84eaee97038545637764fcf05c471 to d5926b27de12d1c5b929e657be6c43880f6746ab

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

cb3b221Degenerate Metric 2
d5926b2Degenerate Metric 3

comment:19 Changed 4 months ago by git

  • Commit changed from d5926b27de12d1c5b929e657be6c43880f6746ab to 3456617784ad22d949d216651cbde29d9ebe8705

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

3456617rst

comment:20 Changed 4 months ago by Dicolevrai

  • Branch changed from public/manifolds/DegenerateMetrics to public/manifolds/DegenerateMetricManifold
  • Cc egourgoulhon removed
  • Commit changed from 3456617784ad22d949d216651cbde29d9ebe8705 to 089b2103a5c951707a890fa10d66d2d147014b88

New commits:

c768bc9Degenerate Metric
13c5b98Degenerate Metric 2
089b210Degenerate Metric 3

comment:21 Changed 3 months ago by egourgoulhon

  • 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 3 months ago by git

  • Commit changed from 089b2103a5c951707a890fa10d66d2d147014b88 to 7693085d89d30cfe5f9451228b2036406bf6e82e

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

7693085Adding degenerate_metric.rst

comment:23 Changed 3 months ago by Dicolevrai

  • Status changed from needs_work to needs_review

New commits:

7693085Adding degenerate_metric.rst

comment:24 Changed 3 months ago by egourgoulhon

The documentation does not build: I get the error message

OSError: /home/eric/sage/py3/local/lib/python3.7/site-packages/sage/manifolds/differentiable/degenerate_submanifold.py:docstring of sage.manifolds.differentiable.degenerate_submanifold:7: WARNING: Inline interpreted text or phrase reference start-string without end-string.

See also the error in line 1772 of src/doc/en/reference/references/index.rst reported by the patchbot.

comment:25 Changed 3 months ago by jhpalmieri

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.

Last edited 3 months ago by jhpalmieri (previous) (diff)

comment:26 Changed 3 months ago by git

  • Commit changed from 7693085d89d30cfe5f9451228b2036406bf6e82e to 7b93c60a4397c9d028a8874b074374ca77093c3d

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

518bbdfDegenerate Metric
a4a2fe7Degenerate Metric 2
0db5aecAdding degenerate_metric.rst
7b93c60trac 26355: formatting for docstrings

comment:27 Changed 3 months ago by git

  • Commit changed from 7b93c60a4397c9d028a8874b074374ca77093c3d to e9f8bba07c03da6e45bec04df721c115f4063959

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

e9f8bbatrac 26355: formatting for docstrings

comment:28 Changed 2 months ago by Dicolevrai

  • Description modified (diff)

comment:29 Changed 2 months ago by Dicolevrai

  • Milestone changed from sage-8.9 to sage-9.0

comment:30 Changed 2 months ago by git

  • Commit changed from e9f8bba07c03da6e45bec04df721c115f4063959 to 3a003dea55fe96685c7fe42ff03860211aea6c6b

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

ac4792eMerge branch 'public/manifolds/DegenerateMetricManifold' of git://trac.sagemath.org/sage into DegenerateMetric
3a003deDocumentation has been fixed

comment:31 Changed 2 months ago by Dicolevrai

  • Cc eric gourgoulhon added
  • Description modified (diff)

comment:32 Changed 2 weeks ago by Dicolevrai

  • Cc eric gourgoulhon removed
  • Status changed from needs_review to positive_review

comment:33 Changed 2 weeks ago by egourgoulhon

  • 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 follow-up: Changed 7 days ago by chapoton

  • Status changed from needs_review to needs_work

red branch

comment:35 in reply to: ↑ 34 Changed 7 days ago by egourgoulhon

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.

Last edited 7 days ago by egourgoulhon (previous) (diff)

comment:36 Changed 6 days ago by git

  • Commit changed from 3a003dea55fe96685c7fe42ff03860211aea6c6b to 337d726800fd750409ae68e01aa8e046f5e64594

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

337d726Merge public/manifolds/DegenerateMetricManifold into Sage 9.0.beta9

comment:37 Changed 6 days ago by egourgoulhon

  • Status changed from needs_work to needs_review

The merge conflict is fixed. Let the patchbot run...

comment:38 Changed 5 days ago by egourgoulhon

  • 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. Long-running 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 --warn-long; for instance

./sage -t --long --warn-long 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 28 hours ago by git

  • Commit changed from 337d726800fd750409ae68e01aa8e046f5e64594 to fac366bf56712dd7cc792197dbb179a98ad4567d

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

8720884Sheet to test DegenerateMetric
c063e00Merge branch 'develop' of https://github.com/sagemath/sage into DegenerateMetric
3635ba4Merge branch 'develop' of https://github.com/sagemath/sage into DegenerateMetric
8749a58Degenerate Metric
c3a0991Merge branch 'develop' of https://github.com/sagemath/sage into DegenerateMetric
6c756c8Merge branch 'develop' of https://github.com/sagemath/sage into DegenerateMetric
4c00765Fix conflicts
fac366bDoctest time has been reduced

comment:40 Changed 28 hours ago by Dicolevrai

  • 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

Note: See TracTickets for help on using tickets.