2

First, I believe the unit tensor is a diagonal tensor with diagonal elements of 1, regardless of whether it is in Cartesian coordinates or cylindrical coordinates.

Then, I wanted to verify this using Mathematica. I transformed the unit tensor, Icar, from Cartesian coordinates to cylindrical coordinates to obtain Icyl.

However, I noticed that some components of Icyl are unexpectedly equal to 4.

Where did I make a mistake? It has been bothering me all day. Thank you.

Clear["Global`*"] // Quiet;
cyl = {r, \[Theta], z};
car = CoordinateTransform["Cylindrical" -> "Cartesian", cyl];
dcardcyl = Grad[car, cyl, "Cylindrical"];
Icar = IdentityMatrix[3];
Icyl = TensorContract[
  dcardcyl\[TensorProduct]dcardcyl\[TensorProduct]Icar, {{1, 5}, {3, 
    6}}]; 
Icyl // Simplify
xinxin guo
  • 1,323
  • 9
  • 11

1 Answers1

2

Its clear that you are computing the square of the Jacobian $$J_{ik}= \frac{\partial}{\partial y_i} x_k(y)$$ $$J_{ik} J_{kl} \delta_{lm}=J_{ik} J_{km}= \frac{\partial}{\partial y_i} x_k(y)\frac{\partial}{\partial y_k} x_l(y)$$ so you contract over an index pair in different bases.

But a basis transform contracts each index in the same way like a product of vectors $$J_{ia} J_{kb} \delta_{ab}=J_{ia} J_{ka} =(J J^T)_{ik}$$ $$J^T J = G $$ acts as the metric tensor on tangent vectors in the local basis. It is not the unit matrix by $$\left< u , J^T J v \right> = \left< J u , J v \right> $$.

Generally speaking, on an metric manifold, metric, unit tensor and inverse metric are the same object in different basis representations $$ g_{ij} \left(g^{-1}\right) ^{jk} = \delta_i^k$$ can be interpreted as $\delta$ being the mixed representation of the metrics, or, vice versa, the metric is the covariant representation of the mixed unit tensor.

Roland F
  • 3,534
  • 1
  • 2
  • 10
  • Thanks! I am afraid that the concepts of manifolds and others are beyond my knowledge. With the help of your explanations, I think I may have mistakenly contracted the base vectors of different coordinate systems.

    Actually, what I want to do is: How can I use Mathematica code to transform a tensor, such as the identity tensor here, from a Cartesian coordinate system to a cylindrical coordinate system?

    If possible, could you please demonstrate this transformation using Mathematica code? Thank you!

    – xinxin guo Mar 26 '24 at 00:57