# Pullback computation hanging I have the following code:

M = Manifold(3, 'M')
X.<x,y,z> = M.chart()

N = Manifold(3, 'N')
XN.<a,b1,b2> = N.chart()

omega = N.diff_form(2)
omega[0,1] = 2*b2/a^3
omega[0,2] = -2*b1/a^3
omega[1,2] = -2/a^2


Then I define a map M to N.

r = sqrt(x^2+y^2+z^2)
t = var('t', domain='real')
STSa = r^(1/2)*(r*cosh(2*r*t) - z*sinh(2*r*t))^(-1/2)
STSb1 = (x*sinh(2*r*t)/r)*STSa
STSb2 = (y*sinh(2*r*t)/r)*STSa

STS = M.diffeomorphism(N, [STSa, STSb1, STSb2])


Finally, I attempt to compute the pullback of omega to M by the map STS:

s = STS.pullback(omega)


Unfortunately, the program runs and runs and nothing ever comes out. Can anyone identify the issue? Of course, the Jacobian of the map STS will not be very nice, but this pullback should be perfectly computable.

edit retag close merge delete

Sort by » oldest newest most voted

The computation ends normally on my computer, though after a long time: 19 min 54 s, as you can see on this worksheet (this is with SageMath 8.1 running on a Xeon E5-2623 processor). This is because the result is extremely lengthy ($s_{01}$ has more than 400,000 characters!) and most of CPU time is spent in simplifications.

You can shorten the CPU time by replacing the cosh and sinh by their exp expressions (Sage is not good in simplifying expressions involving hyperbolic trigonometry), as done here. The CPU time goes down to 4 min 49 s and the length of $s_{01}$ "down" to 85,610 characters (probably due to better simplifications).

more