Are stresses tensile or compressive during rigid body rotation?
Introduction
Recently, I came across a question in StackExchange that pointed out that some
books on continuum mechanics suggest that an element will increase in size
when rotated if a small strain approximation is used in a finite element simulation.
This issue may be a source of confusion for students of mechanics. Let us
explore some aspects of the problem and try to answer the StackExchange question.
The question
The animation below shows the motion of a two-dimensional square in the \(x\)-\(y\)-plane. We rotate the square clockwise around one of its corners and the angle of rotation is \(\beta\). If the position of a point in the reference configuration of the square is \((X,Y)\), the rotated position \((x,y)\) is
Using the definition of engineering strains:
and the displacements
we have
The animation below shows the implications of the above. The blue square is the reference configuration. Pure rotation of the square leads to the configuration in green. The pink square shows the implication of the strains calculated above on the shape of the square.
The animation clearly shows, if we consider the strained square, that the square appears to decrease in size (compressive stresses), invert, and then increase in size as the rotation proceeds. Some textbooks depict an increase (tensile stresses) in the size of the square to illustrate the same issue, apparently the result of finite element computations. The StackExchange question wanted to find out which was correct, an increase or a decrease.
The finite element solution
The question seems to be “why does FEA seemingly produce results that are contradictory to theory?” Let us do the FE calculation for a rotating square and see what the results are.
Consider a square element with nodes
id x y
1 -1.0 -1.0
2 1.0 -1.0
3 1.0 1.0
4 -1.0 1.0
The displacement field in the element is
and the corresponding (small) strain field is
The nodal shape functions are
The gradients of the shape functions are
Therefore the strain field can be expressed as
where
Now consider the situation where the square is rotated by 90 degrees clockwise around node 1 so that the new positions of the nodes are
id x y
1 -1.0 -1.0
2 -1.0 -3.0
3 1.0 -3.0
4 1.0 -1.0
Note that we are not assuming any deformation of the square. Then the nodal displacements are
id u_x u_y
1 0.0 0.0
2 -2.0 -2.0
3 0.0 -4.0
4 2.0 -2.0
Let us do the calculation using Matlab/Octave.
>> x = [-1 1 1 -1];
>> y = [-1 -1 1 1];
>> G1x = -(1-y)/4
G1x = -0.50000 -0.50000 -0.00000 -0.00000
>> G1y = -(1-x)/4
G1y = -0.50000 -0.00000 -0.00000 -0.50000
>> G2x = (1-y)/4
G2x = 0.50000 0.50000 0.00000 0.00000
>> G2y = -(1+x)/4
G2y = -0.00000 -0.50000 -0.50000 -0.00000
>> G3x = (1+y)/4
G3x = 0.00000 0.00000 0.50000 0.50000
>> G3y = (1+x)/4
G3y = 0.00000 0.50000 0.50000 0.00000
>> G4x = -(1+y)/4
G4x = -0.00000 -0.00000 -0.50000 -0.50000
>> G4y = (1-x)/4
G4y = 0.50000 0.00000 0.00000 0.50000
>> u = [0 -2 0 2 0 -2 -4 -2];
>> B1 = [[G1x(1) G2x(1) G3x(1) G4x(1) 0 0 0 0];...
[0 0 0 0 G1y(1) G2y(1) G3y(1) G4y(1)];...
[G1y(1) G2y(1) G3y(1) G4y(1) G1x(1) G2x(1) G3x(1) G4x(1)]]
B1 =
-0.50000 0.50000 0.00000 -0.00000 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000 -0.50000 -0.00000 0.00000 0.50000
-0.50000 -0.00000 0.00000 0.50000 -0.50000 0.50000 0.00000 -0.00000
>> B2 = [[G1x(2) G2x(2) G3x(2) G4x(2) 0 0 0 0];...
[0 0 0 0 G1y(2) G2y(2) G3y(2) G4y(2)];...
[G1y(2) G2y(2) G3y(2) G4y(2) G1x(2) G2x(2) G3x(2) G4x(2)]]
B2 =
-0.50000 0.50000 0.00000 -0.00000 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000 -0.00000 -0.50000 0.50000 0.00000
-0.00000 -0.50000 0.50000 0.00000 -0.50000 0.50000 0.00000 -0.00000
>> B3 = [[G1x(3) G2x(3) G3x(3) G4x(3) 0 0 0 0];...
[0 0 0 0 G1y(3) G2y(3) G3y(3) G4y(3)];...
[G1y(3) G2y(3) G3y(3) G4y(3) G1x(3) G2x(3) G3x(3) G4x(3)]]
B3 =
-0.00000 0.00000 0.50000 -0.50000 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000 -0.00000 -0.50000 0.50000 0.00000
-0.00000 -0.50000 0.50000 0.00000 -0.00000 0.00000 0.50000 -0.50000
>> B4 = [[G1x(4) G2x(4) G3x(4) G4x(4) 0 0 0 0];...
[0 0 0 0 G1y(4) G2y(4) G3y(4) G4y(4)];...
[G1y(4) G2y(4) G3y(4) G4y(4) G1x(4) G2x(4) G3x(4) G4x(4)]]
B4 =
-0.00000 0.00000 0.50000 -0.50000 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000 -0.50000 -0.00000 0.00000 0.50000
-0.50000 -0.00000 0.00000 0.50000 -0.00000 0.00000 0.50000 -0.50000
>> eps1 = B1*u'
eps1 =
-1
-1
0
>> eps2 = B2*u'
eps2 =
-1
-1
0
>> eps3 = B3*u'
eps3 =
-1
-1
0
>> eps4 = B4*u'
eps4 =
-1
-1
0
In the above script, we compute the strains at the four nodes of the square using the nodal displacement vector
u = [0 -2 0 2 0 -2 -4 -2]
and find that the strain at each of the nodes is
eps = B*u' = [-1 -1 0]'
You can easily show that the finite element solution is identical to the analytical solution. The solution implies that stresses will develop in the element due to pure rigid body rotation even if the element does not deform if we use small strain theory.
This result also implies that the element cannot grow in size with rigid body rotation, and that the illustrations shown in some textbooks are wrong even though the stress may transition from more compressive to less compressive during the rotation process.
Remarks
The finite element method is typically implemented in displacement form. So one specifies the displacements and then find the stresses in the element. An alternative would be to specify moments that would rotate the element based on forces computed using a displacement based solution.
Of course one should not miss the point of the exercise which is to show that the correct strain measures have to be used for large deformation problems. Even if a small strain measure is used, rotations have to be removed from the deformation before any stress computations are done.