| 1 | initial version |
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} }$$
| 2 | No.2 Revision |
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.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.