Ask Your Question
1

SageManifolds different frames

asked 2018-11-18 09:31:51 +0100

danielvolinski gravatar image

Hi All,

I have the following code:

sage: M = Manifold(2, 'M')
sage: U = M.open_subset('U')
sage: c_xy.<x,y> = U.chart()
sage: V = M.open_subset('V')
sage: c_uv.<u,v> = V.chart()
sage: M.declare_union(U,V)
sage: xy_to_uv = c_xy.transition_map(c_uv, (x+y, x-y), intersection_name='W', restrictions1= x>0, restrictions2= u+v>0)
sage: xy_to_uv.display()
sage: uv_to_xy = xy_to_uv.inverse()
sage: uv_to_xy.display()
sage: e_xy = c_xy.frame(); e_uv = c_uv.frame()
sage: t = M.tensor_field(1,1, name='t')
sage: t[e_xy,:] = [[x, 1], [y, 0]]
sage: t.add_comp_by_continuation(e_uv, U.intersection(V), c_uv)
sage: t[:]
sage: t[e_uv,:]
sage: w = M.vector_field(name='w')
sage: w[e_xy,:] = [-y, x]
sage: w.add_comp_by_continuation(e_uv, U.intersection(V), c_uv)
sage: w[:]
sage: w[e_uv,:]

What I don't understand is the result in sage: t[e_uv,:] and sage: w[e_uv,:] in view of the transition map uv_to_xy. Shouldn't the result be a direct substitution x=(u+v)/2 and y=(u-v)/2

How is this calculated?

Thanks,

Daniel

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2018-11-18 21:06:10 +0100

eric_g gravatar image

The result of t[e_uv,:] cannot be the same as t[:] with a mere substitution x=(u+v)/2 and y=(u-v)/2 because it gives the components of t in a different vector frame: the frame is e_uv for t[e_uv,:], whereas it is the default frame on M for t[:], which is e_xy. In other words, the components returned by t[e_uv,:] are those of the following expansion:

sage: t.display(e_uv)
t = (1/2*u + 1/2) d/du*du + (1/2*u - 1/2) d/du*dv + (1/2*v + 1/2) d/dv*du + (1/2*v - 1/2) d/dv*dv

whereas the components returned by t[:] are those of an expansion on a different basis:

sage: t.display()
t = x d/dx*dx + d/dx*dy + y d/dy*dx

Same thing for the vector w:

sage: w[:]
[-y, x]

agrees with

sage: w.display()
w = -y d/dx + x d/dy

while

sage: w[e_uv,:]
[v, -u]

agrees with

sage: w.display(e_uv)
w = v d/du - u d/dv
edit flag offensive delete link more

Comments

Thanks Eric, I understand now. As you said, it is not a mere substitution, it is also a change of basis. For a tensor T you have to multiply by $J^{-1}\cdot T\cdot J$ For a vector V you have to multiply by $J^{-1}\cdot V$ Where J is the Jacobian of uv_to_xy against u,v Thanks again. Daniel

danielvolinski gravatar imagedanielvolinski ( 2018-11-21 00:30:31 +0100 )edit

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

Stats

Asked: 2018-11-18 09:31:51 +0100

Seen: 674 times

Last updated: Nov 18 '18