sagemanifolds - a free package for differential geometry and tensor...

17
SageManifolds A free package for differential geometry and tensor calculus ´ Eric Gourgoulhon 1 , Micha l Bejger 2 1 Laboratoire Univers et Th´ eories (LUTH) CNRS / Observatoire de Paris / Universit´ e Paris Diderot 92190 Meudon, France http://luth.obspm.fr/ ~ luthier/gourgoulhon/ 2 Centrum Astronomiczne im. M. Kopernika (CAMK) Warsaw, Poland http://users.camk.edu.pl/bejger/ 20th International Conference on General Relativity and Gravitation Warsaw, Poland 7-13 July 2013 ´ Eric Gourgoulhon, Michal Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 1 / 17

Upload: lytu

Post on 10-May-2018

224 views

Category:

Documents


1 download

TRANSCRIPT

SageManifoldsA free package for differential geometry and tensor calculus

Eric Gourgoulhon1, Micha l Bejger2

1Laboratoire Univers et Theories (LUTH)CNRS / Observatoire de Paris / Universite Paris Diderot

92190 Meudon, Francehttp://luth.obspm.fr/~luthier/gourgoulhon/

2Centrum Astronomiczne im. M. Kopernika (CAMK)Warsaw, Poland

http://users.camk.edu.pl/bejger/

20th International Conference on General Relativity and GravitationWarsaw, Poland7-13 July 2013

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 1 / 17

Outline

1 An overview of Sage

2 The SageManifolds project

3 Perspectives

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 2 / 17

An overview of Sage

Outline

1 An overview of Sage

2 The SageManifolds project

3 Perspectives

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 3 / 17

An overview of Sage

Sage in a few words

Sage is a free open-source mathematics software

it is based on the Python programming language

it makes use of many pre-existing open-sources packages, among which

Maxima (symbolic calculations, since 1967 !)GAP (group theory)PARI/GP (number theory)Singular (polynomial computations)matplotlib (high quality figures)

and provides a uniform interface to them

William Stein (Univ. of Washington) created Sage in 2005; since then, ∼150developers have joined the Sage team

The mission

Create a viable free open source alternative to Magma, Maple, Mathematica andMatlab.

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 4 / 17

An overview of Sage

Advantages of Sage

Sage is free

Freedom means

1 everybody can use it, by downloading the software fromhttp://sagemath.org

2 everybody can examine the source code and improve it

Sage is based on Python

no need to learn a specific syntax to use it

easy access for students

Python is a very powerful object oriented language, with a neat syntax

Sage is developing and spreading fast

...sustained by an important community of developers

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 5 / 17

The SageManifolds project

Outline

1 An overview of Sage

2 The SageManifolds project

3 Perspectives

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 6 / 17

The SageManifolds project

Existing softwares for differential geometry

Packages for proprietary softwares:

xAct free package for Mathematica

DifferentialGeometry included in Maple

Atlas 2 for Maple

· · ·

Standalone softwares:

Cadabra field theory (free)

SnapPy topology and geometry of 3-manifolds (Python) (free)

· · ·

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 7 / 17

The SageManifolds project

The situation in Sage

Sage is well developed in many domains of mathematics:number theory, group theory, linear algebra, etc.

but nothing is implemented for differential geometry, except for differential formson an open subset of Euclidean space (with a fixed set of coordinates).

Hence the SageManifolds project

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 8 / 17

The SageManifolds project

SageManifolds

A new set of Python classes implementing differential geometry in Sage:

Manifold: differentiable manifolds over R, of arbitrary dimension

SubManifold, Curves: submanifolds

Point: points on a manifold

Chart: charts

DiffMapping, Diffeomorphism: differential mappings between manifolds

ScalarField: differential mappings to RTensorField, VectorField, SymBilinFormField, etc.: tensor fields on amanifold

DiffForm, OneForm: p-forms

VectorFrame, CoordBasis: vector frames on a manifold, including tetradsand coordinate bases

Components, CompWithSym, etc.: components of a tensor field in a givenvector frame

AffConnection, LeviCivitaConnection: affine connections

Metric, RiemannMetric, LorentzMetric: pseudo-Riemannian metrics

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 9 / 17

The SageManifolds project

Inheritance diagram of the tensor field classes

TensorField

VectorField

SymBilinFormFieldDiffForm

ScalarField OneForm

EndomorphismField

AutomorphismField Metric

IdentityMapZeroScalarField

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 10 / 17

The SageManifolds project

Basic SageManifolds objects are coordinate-free1. The scalar field case

Scalar field on the manifold M: (differentiable) mapping f :M→ RA scalar field maps points, not coordinates, to real numbers=⇒ an object f in the ScalarField class has different coordinate representationsin different charts defined on M.

The various coordinate representations are stored as a Python dictionary whosekeys are the names of the various charts:

f.express ={C : F, C : F , . . .

}with f( p︸︷︷︸

point

) = F ( x1, . . . , xn︸ ︷︷ ︸coord. of pin chart C

) = F ( x1, . . . , xn︸ ︷︷ ︸coord. of pin chart C

) = . . .

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 11 / 17

The SageManifolds project

Basic SageManifolds objects are coordinate-free2. The tensor field case

Given a vector frame (ei) with dual coframe (ei), the components of a tensorfield T in this frame are scalar fields, since

T i...j... = T (ei, . . . , ej , . . .)

=⇒ an object T in the TensorField class has different sets of components T i...j...

in different vector frames, each component in a given set being an object of theScalarField class

The various sets of components are stored as a Python dictionary whose keys arethe names of the various vector frames:

T .components ={(e) : (T i...

j...), (e) : (T i...j...), . . .

}

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 12 / 17

The SageManifolds project

Tensor field implementation

Dictionary ScalarField.express

...

Dictionary Components._comp

...

Dictionary TensorField.components

...

TensorField

Expression

Componentsframe 1:

FunctionChartchart 1:

ScalarField

(1,1) :

Componentsframe 2:

ScalarField

(1,2) :

FunctionChartchart 2:

Expression

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 13 / 17

The SageManifolds project

SageManifolds at work: the Kerr-Newman example1. Checking Maxwell equations

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 14 / 17

The SageManifolds project

SageManifolds at work: the Kerr-Newman example2. Checking Einstein equations

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 15 / 17

Perspectives

Outline

1 An overview of Sage

2 The SageManifolds project

3 Perspectives

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 16 / 17

Perspectives

Perspectives

SageManifolds is a work in progress(∼ 16,000 lines of Python code up to now)

A preliminary version is available at http://sagemanifolds.obspm.fr/

Already present: standard tensor calculus (tensor product, contraction,symmetrization, etc.), exterior calculus, Lie derivatives, affine connections,curvature, torsion, pseudo-Riemannian metrics, Weyl tensor, Hodge duality

Not implemented yet (but should be soon): pullback and pushforwardoperators, extrinsic geometry of submanifolds

To do: convert some parts to Cython in order to compile them (C code) andincrease the computational speed

For future releases: symplectic forms, fibre bundles, spinors, variationalcalculus

Eric Gourgoulhon, Micha l Bejger (LUTH, CAMK) SageManifolds GR20, Warsaw, 8 July 2013 17 / 17