I have a stress matrix in cartesian coordinates : $\begin{pmatrix} a & 0 & 0 \\ 0 & b & 0 \\ 0 & 0 & c \end{pmatrix}$. How can I convert it to spherical coordinates ?

  • $\begingroup$ Google "stress tensor spherical coordinates". See section 1.7: brown.edu/Departments/Engineering/Courses/En221/Notes/… $\endgroup$
    – user93237
    Jul 3, 2018 at 19:14
  • $\begingroup$ In general, $\mathbf{A}'=\mathbf{P}^{-1}\mathbf{AP}$ $\endgroup$
    – user195162
    Jul 3, 2018 at 19:15
  • $\begingroup$ Do you know how to express the three unit vectors for Cartesian coordinates in terms of the three unit vectors for spherical coordinates (in terms of the two spherical coordinate angles)? $\endgroup$ Jul 4, 2018 at 12:18
  • 1
    $\begingroup$ It's totally geometric, and doesn't require the answer of Joe. $\endgroup$ Jul 5, 2018 at 22:18
  • 1
    $\begingroup$ Here is a better version of the page linked by Samuel Weir: solidmechanics.org/text/AppendixD/AppendixD.htm The equations on that page should render correctly on modern browsers. This URL was found by u2berggeist $\endgroup$
    – PM 2Ring
    Jun 25, 2019 at 17:03

2 Answers 2


One way to conceptualize the stress matrix is to view it as a tensor. In general, your matrix

$$T = \begin{bmatrix} a & 0 & 0 \\ 0 & b & 0 \\ 0 & 0 & c \end{bmatrix}$$

should be thought of in terms of how it relates on a displacement vector $v^T = (\mathrm{d}x, \mathrm{d} y, \mathrm{d} z)$. The stress tensor tells you that the energy change associated to this small displacement vector is

$$\delta E = v^T T v = a {\mathrm{d}x}^2 + b {\mathrm{d}y}^2 + c {\mathrm{d}z}^2$$

Now, let's consider what happens if we change into spherical coordinates. Recall that in spherical coordinates $(r,\phi,\theta)$

$$ x = r \cos \phi \sin \theta \\ y = r \sin \phi \sin \theta \\ z = r \cos \theta $$

This gives the relations

$$ \mathrm{d}x = \mathrm{d}r (\cos\phi \sin\theta) + \mathrm{d}\phi (- r\sin\phi \sin\theta) + \mathrm{d}\theta(r \cos\phi \cos\theta)\\ \mathrm{d}y = \mathrm{d}r (\sin\phi \sin\theta) + \mathrm{d}\phi (r \cos\phi \sin\theta) + \mathrm{d}\theta(r \sin\phi \cos\theta)\\ \mathrm{d}z = \mathrm{d}r (\cos\theta) + \mathrm{d}\theta(-r \sin\theta) $$

which can be written in matrix form as

$$\begin{bmatrix} \mathrm{d}x \\ \mathrm{d}y \\ \mathrm{d}z \end{bmatrix} = J \begin{bmatrix} \mathrm{d}r \\ \mathrm{d}\phi \\ \mathrm{d}\theta \end{bmatrix}$$

Where J is the "Jacobian Matrix" (or change of coordinates)

$$J = \begin{bmatrix} \cos\phi \sin\theta & -r \sin\phi \sin\theta & r \cos\phi \cos\theta \\ \sin\phi \sin\theta & r \cos\phi \sin\theta & r \sin \phi \cos\theta \\ \cos \theta & 0 & -r \sin \theta \end{bmatrix}$$

This means that for the displacement vector $\tilde{v}^T = (\mathrm{d}r, \mathrm{d}\phi,\mathrm{d}\theta)$ written in spherical coordinates, the vectors in two different coordinate systems can be related to each other by

$$v = J \tilde{v}$$

We'll end up having that the energy change can be written as

$$\delta E = (J \tilde{v})^T T (J \tilde{v}) = \tilde{v}^T (J^T T J) \tilde{v}$$

which is some pretty complicated expression in terms of the $\mathrm{d}r, \mathrm{d}\phi, \mathrm{d}\theta$.

So since $(J^T T J)$ is the matrix that generates the same energy change for the vector in different coordinates, the stress matrix $\tilde{T}$ in spherical coordinates is really

$$\tilde{T} = J^T T J$$

This is a pretty general lesson that will let you express the stress matrix in any coordinate system, not just spherical ones.

And note that this transformation rule is different $T \rightarrow J^T T J$ is different than that for a linear transformation, which is $A \rightarrow J^{-1} A J$. This means that T is a tensor quantity, and not a linear transformation.

The defining property of a tensor is that is defines a length, sending a vector $v$ to a number, $v \rightarrow v^T T v$. In our case is the energy change $\delta E$ defined above, and the goal is to keep that length the same irrespective of the coordinate system.

On the other hand, a linear transformation is defined as sending vectors to vectors, $v \rightarrow A v$.


Note: Answer is for Cylindrical coordinates.

So after I found the better link(http://solidmechanics.org/text/AppendixD/AppendixD.htm), I went ahead and worked the full thing out. Here are the results. Note the results assume the tensor is symmetric (ie. $S_{ij}=S_{ji}$).

$$ \begin{align} S_{rr} &= \mathbf{c}_{\theta}^2S_{xx} + 2\mathbf{c}_{\theta}\mathbf{s}_{\theta}S_{xy} + \mathbf{s}_{\theta}^2S_{yy} \\ S_{r\theta} &= \mathbf{c}_{\theta}\mathbf{s}_{\theta}(S_{yy}-S_{xx}) + (\mathbf{c}_{\theta}^2- \mathbf{s}_{\theta}^2)S_{xy} \\ S_{rz} &= \mathbf{c}_{\theta}S_{xz} + \mathbf{s}_{\theta}S_{yz} \\ S_{\theta\theta} &= \mathbf{s}_{\theta}^2S_{xx} - 2\mathbf{c}_{\theta}\mathbf{s}_{\theta}S_{xy} + \mathbf{c}_{\theta}^2S_{yy} \\ S_{\theta z} &= -\mathbf{s}_{\theta}S_{xz} + \mathbf{c}_{\theta}S_{yz} \\ S_{zz} &= S_{zz} \end{align} $$


$$ \begin{align} \cos \theta &= \mathbf{c}_{\theta} \\ \sin \theta &= \mathbf{s}_{\theta} \end{align} $$

See this pdf on my GitHub repository for the documented workthrough.

  • 1
    $\begingroup$ Please note that this is for converting to cylindrical coordinates and not spherical as the OP had asked. However, the repo and pdf is great and was really helpful. Thanks! $\endgroup$ Jul 15, 2020 at 1:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.