total_space dimension?

asked 2025-06-06 16:49:42 +0200

maxeruth gravatar image

Hi all,

I'm new to Sage, transitioning from Mathematica --- so let me know if I'm doing something weird! I am interested in defining functions on a Tangent space (i.e. $f : TM \to \mathbb R$, the natural space of solutions for a Boltzmann equation). To do this, my first attempt is this:

E.<x,y,z> = EuclideanSpace()         # Define the spatial Euclidean Space
TE = E.tensor_bundle(1,0)     # Tangent bundle on the Euclidean space
TE_manifold = E.total_space() # Gets the tangent bundle as a manifold?
display(TE_manifold) 

This outputs "9-dimensional differentiable manifold TE^3". I would expect the dimension to be 6; tangent bundles normally have double the dimension to my understanding. Is this the expected behavior? Digging into the source code for total_space(), I found that the dimension is being computed as TE._rank * E._dim, while I would expect that should be TE._rank + E._dim.

edit retag flag offensive close merge delete

Comments

I would also expect it to be the sum of the dimensions. @eric_g: what do you think?

John Palmieri gravatar imageJohn Palmieri ( 2025-06-07 22:24:23 +0200 )edit
1

I have made https://github.com/sagemath/sage/pull... so please review.

FrédéricC gravatar imageFrédéricC ( 2025-06-12 21:37:21 +0200 )edit

This is indeed a (big!) bug in the code of total_space. Actually, contrary to other parts, the vector bundle part of sage.manifolds has not been used much (as you may have noticed, there is still some TODO mark in the code of total_space)... Thank you for the report! and thank you @FrédéricC for the fix!

eric_g gravatar imageeric_g ( 2025-06-12 22:48:21 +0200 )edit

A side remark: you may use TE = E.tangent_bundle() as a shortcut for TE = E.tensor_bundle(1,0).

eric_g gravatar imageeric_g ( 2025-06-12 22:55:18 +0200 )edit