The SageManifolds project aims at extending the modern computer algebra system SageMath (http://www.sagemath.org/) towards differential geometry and tensor calculus. All SageManifolds code is included in SageMath (from version 7.5), so that it does not require any separate installation. Key features of SageMath are
– being fully open-source
– using the Python language
– embarquing many high-quality tools of the Python ecosystem (NumPy, SymPy, SciPy, Matplotlib, etc.) and beyond (Maxima, R, GAP, GSL, etc.)
– running in the powerful Jupyter Notebook (http://jupyter.org/).
SageManifolds is devoted to explicit tensor calculus (as opposed to “abstract tensor calculus”): the dimension of the manifold must be specified and some atlas must be provided. SageManifolds 1.3 functionalities include
– topological manifolds: charts, open subsets, maps between manifolds, scalar fields
– differentiable manifolds: tangent spaces, vector frames, tensor fields, curves, pullback and pushforward operators
– standard tensor calculus (tensor product, contraction, symmetrization, etc.), even on non-parallelizable manifolds
– taking into account any monoterm tensor symmetry
– exterior calculus (wedge product, exterior derivative, Hodge duality)
– Lie derivatives of tensor fields
– affine connections (curvature, torsion)
– pseudo-Riemannian metrics
– numerical computation of geodesics
– some plotting capabilities (charts, points, curves, vector fields)
– submanifolds and their extrinsic geometry
See https://sagemanifolds.obspm.fr/examples.html for examples of use, in particular in the context of general relativity.