How can I correct this error?

asked 2023-05-29 02:38:11 +0200

Jack Zuffante gravatar image
%display latex
l=2
m=3
M = Manifold(4, 'M', structure='Lorentzian')
X.<t,r,th,ph> = M.chart('t r th ph')
U=(2*m*t+l^2-t^2)/(t^2+l^2)
g = M.metric()
g[0,0] = -1/U
g[1,1] =  4*l^2*U
g[1,3] =  4*l^2*U*cos(th)
g[2,2] =  t^2+l^2
g[3,3] =  4*l^2*U*(cos(th))^2+(t^2+l^2)*(sin(th))^2
g.display()
R3 = Manifold(3, 'R^3', latex_name=r'\mathbb{R}^3')
X3.<x,y,z> = R3.chart()
to_R3 = M.diff_map(R3, {(X, X3): [r*sin(th)*cos(ph), 
                                  r*sin(th)*sin(ph), r*cos(th)]})
to_R3.display()
p0 = M.point((7, 30, 0, 0), name='p_0')
v0 = M.tangent_space(p0)((1, 53/12, 0, 0), name='v_0')
v0.display()
s = var('s')
geod = M.integrated_geodesic(g, (s, 0, 10), v0); geod
sol = geod.solve()  
interp = geod.interpolate()                 
graph = geod.plot_integrated(chart=X3, mapping=to_R3, label_axes=True, plot_points=10)           
graph += p0.plot(chart=X3, mapping=to_R3) 
graph += sphere(color='grey')                                 
show(graph)

 lsoda--  at t (=r1), too much accuracy requested  
       for precision of machine..  see tolsf (=r2) 
      in above,  r1 =  0.1000000000000D+00   r2 =                  NaN
/home/sc_serv/sage/local/var/lib/sage/venv-python3.10/lib/python3.10/site-packages/scipy/integrate/_odepack_py.py:247: ODEintWarning: Excess accuracy requested (tolerances too small). Run with full_output = 1 to get quantitative information.
  warnings.warn(warning_msg, ODEintWarning)
 lsoda--  at t (=r1), too much accuracy requested  
       for precision of machine..  see tolsf (=r2) 
      in above,  r1 =  0.1000000000000D+00   r2 =
edit retag flag offensive close merge delete

Comments

1

Using

sys = geod.system(verbose=True)
geod

one can check that sin(th) appears in the denominator of the last geodesic equation, so th=0 in the definition of p0, v0 is problematic.

achrzesz gravatar imageachrzesz ( 2023-05-29 07:00:03 +0200 )edit