Ask Your Question

Pullback computation hanging

asked 2018-01-29 10:30:09 -0500

Jeremy Lane gravatar image

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 flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2018-01-30 04:43:54 -0500

eric_g gravatar image

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).

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2018-01-29 10:30:09 -0500

Seen: 75 times

Last updated: Jan 30