# Metric of EuclideanSpace(3) in spherical frame

I may have some conceptual misunderstandings, but here is the code

E=EuclideanSpace(3)
c_spher.<r,th,ph>=E.spherical_coordinates()
f_spher=E.spherical_frame()

E.set_default_chart(c_spher)
E.set_default_frame(f_spher)

g=E.metric()
show(g[:])


I was expecting the diagonal elements of the metric to be [1,r^2,r^4*sin(th)^2], but I get [1,1,1]

What I am doing wrong?

edit retag close merge delete

Sort by » oldest newest most voted

If you type

E.spherical_frame?


you get Return the orthonormal vector frame associated with spherical coordinates. So f_spher = E.spherical_frame() is an orthonormal frame; it is therefore correct to get $\mathrm{diag}(1,1,1)$ for the metric components in that frame. What you want is the coordinate frame $(\partial/\partial r, \partial/\partial\theta,\partial/\partial\phi)$. You get the latter via c_spher.frame(). Hence the metric components you are expecting are returned by

g[c_spher.frame(),:]


The link between the two vector frames is displayed by

for v in f_spher:
show(v.display(c_spher.frame()))


$$e_{ r } = \frac{\partial}{\partial r }$$ $$e_{ {\theta} } = \frac{1}{r} \frac{\partial}{\partial {\theta} }$$ $$e_{ {\phi} } = \frac{1}{r \sin\left({\theta}\right)} \frac{\partial}{\partial {\phi} }$$

PS: you might take a look at this tutorial notebook, and more generaly to the tutorial about vector calculus in Euclidean spaces.

more