Is it possible to determine whether a general stiffness tensor is actually orthotropic under a change of basis?

45 Views Asked by At

Is it possible to determine whether a general stiffness tensor is actually orthotropic under a change of basis?

In case I've made an error in terminology, I'm interested in the stiff tensor $C$ in the linear elastic equations: $$ \nabla\cdot\sigma + {F} = \rho\ddot{{u}}\\ {\varepsilon} =\tfrac{1}{2} \left[{\nabla}{u}+({\nabla}{u})^\mathrm{T}\right]\\ {\sigma} = {C}:{\varepsilon} $$

where

  • $\sigma$ - Stress tensor
  • $\epsilon$ - Strain tensor
  • $u$ - Displacement
  • $C$ - Stiffness tensor

Using Voigt notation, we can write the stiffness tensor as a $6\times 6$ symmetric matrix

$$ C = \begin{bmatrix} C_{11} & C_{12} & C_{13} & C_{14} & C_{15} & C_{16}\\ & C_{22} & C_{23} & C_{24} & C_{25} & C_{26}\\ & & C_{33} & C_{34} & C_{35} & C_{36}\\ & & & C_{44} & C_{45} & C_{46}\\ & & & & C_{55} & C_{56}\\ & & & & & C_{66} \end{bmatrix} $$

Orthotropic materials have a structure of the form:

$$ C = \begin{bmatrix} C_{11} & C_{12} & C_{13} & & & \\ & C_{22} & C_{23} & & & \\ & & C_{33} & & & \\ & & & C_{44} & & \\ & & & & C_{55} & \\ & & & & & C_{66} \end{bmatrix} $$ where the axes of symmetry are the x, y, and z-axis. Now, if we want to rotate the axes of the orthotropic material, we can do so with a transformation of the form: $$ A = \begin{bmatrix} Q_{11}^2 & Q_{12}^2 & Q_{13}^2 & 2Q_{12}Q_{13} & 2Q_{11}Q_{13} & 2Q_{11}Q_{12} \\ Q_{21}^2 & Q_{22}^2 & Q_{23}^2 & 2Q_{22}Q_{23} & 2Q_{21}Q_{23} & 2Q_{21}Q_{22} \\ Q_{31}^2 & Q_{32}^2 & Q_{33}^2 & 2Q_{32}Q_{33} & 2Q_{31}Q_{33} & 2Q_{31}Q_{32} \\ Q_{21}Q_{31} & Q_{22}Q_{32} & Q_{23}Q_{33} & Q_{22}Q_{33}+Q_{23}Q_{32} & Q_{21}Q_{33}+Q_{23}Q_{31} & Q_{21}Q_{32}+Q_{22}Q_{31} \\ Q_{11}Q_{31} & Q_{12}Q_{32} & Q_{13}Q_{33} & Q_{12}Q_{33}+Q_{13}Q_{32} & Q_{11}Q_{33}+Q_{13}Q_{31} & Q_{11}Q_{32}+Q_{12}Q_{31} \\ Q_{11}Q_{21} & Q_{12}Q_{22} & Q_{13}Q_{23} & Q_{12}Q_{23}+Q_{13}Q_{22} & Q_{11}Q_{23}+Q_{13}Q_{21} & Q_{11}Q_{22}+Q_{12}Q_{21} \end{bmatrix} $$ where $Q\in\mathbb{R}^{3\times 3}$ is orthonormal. Basically, it is a rotation matrix.

My question is given a general stiffness tensor $C$, can we determine whether there exists a change of basis $A$ that corresponds to a rotation $Q$ where $ACA^T$ is orthotropic with respect to the x,y,z axis?

In case it helps, here's some Octave/MATLAB code that constructs these matrices

    % Create a random orthotropic stiffness matrix with respect to the x, y, z axis
    B=randn(3); B=B*B'; C = [B zeros(3);zeros(3) diag(rand(3,1))];

    % Determine a change of basis given a rotation Q
    myrot = @(Q)[ ...
        Q(1,1)^2, ...
            Q(1,2)^2, ...
                Q(1,3)^2, ...
                    2*Q(1,2)*Q(1,3), ...
                        2*Q(1,3)*Q(1,1), ...
                            2*Q(1,1)*Q(1,2); ...
        Q(2,1)^2, ...
            Q(2,2)^2, ...
                Q(2,3)^2, ...
                    2*Q(2,2)*Q(2,3), ...
                        2*Q(2,3)*Q(2,1), ...
                            2*Q(2,1)*Q(2,2); ...
        Q(3,1)^2, ...
            Q(3,2)^2, ...
                Q(3,3)^2, ...
                    2*Q(3,2)*Q(3,3), ...
                        2*Q(3,3)*Q(3,1), ...
                            2*Q(3,1)*Q(3,2); ...
        Q(2,1)*Q(3,1), ...
            Q(2,2)*Q(3,2), ...
                Q(2,3)*Q(3,3), ...
                    Q(2,2)*Q(3,3) + Q(2,3)*Q(3,2), ...
                        Q(2,1)*Q(3,3) + Q(2,3)*Q(3,1), ...
                            Q(2,2)*Q(3,1) + Q(2,1)*Q(3,2); ...
        Q(3,1)*Q(1,1), ...
            Q(3,2)*Q(1,2), ...
                Q(3,3)*Q(1,3), ...
                    Q(1,2)*Q(3,3) + Q(1,3)*Q(3,2), ...
                        Q(1,3)*Q(3,1) + Q(1,1)*Q(3,3), ...
                            Q(1,1)*Q(3,2) + Q(1,2)*Q(3,1); ...
        Q(1,1)*Q(2,1), ...
            Q(1,2)*Q(2,2), ...
                Q(1,3)*Q(2,3), ...
                    Q(1,2)*Q(2,3) + Q(1,3)*Q(2,2), ...
                        Q(1,3)*Q(2,1) + Q(1,1)*Q(2,3), ...
                            Q(1,1)*Q(2,2) + Q(1,2)*Q(2,1)];


    % Determine a rotation around a random axis
    [Q R] = qr(randn(3)); A = myrot(Q);

    % Determine a off axis stiffness matrix
    CC = inv(A)*C*inv(A');

    % Check that we can rotate the axes of CC to obtain an orthotropic stiffness
    % matrix C along the cardinal axes
    norm(A*CC*A' - C,'fro')