Introduction to Elasticity/Kinematics example 2

From Wikiversity
Jump to navigation Jump to search

Example 2[edit | edit source]

Given: A body occupies the unit cube in the reference configuration. The mapping between the current and the reference configuration given by , , .

Find:

  1. Sketch current configuration.
  2. Show that motion is isochoric.
  3. Find stretches in the directions , , , and .
  4. Find the orthogonal shear strain between the reference material directions and . Also between directions and .
  5. Find principal stretches and principal directions of stretch ().

Solution:[edit | edit source]

Deformed shape.
  • All parallelograms that have the equal heights and the same base have equal areas. Hence, there is no volume change in this deformation. Hence isochoric.
  • Stretches in the material direction are given by

where is the Cauchy-Green deformation tensor

We will use Maple to calculate the stretches in the four directions.

      with(linalg):
      x := array(1..3): X := array(1..3): 
      x[1] := X[1] + k*X[2]: x[2] := X[2]: x[3] := X[3]:
      F := linalg[matrix](3,3):
      for i from 1 to 3 do
        for j from 1 to 3 do
          F[i,j] := diff(x[i],X[j]); 
        end do;
      end do;
      evalm(F);
      C := evalm(transpose(F)&*F);
      e1 := linalg[matrix](1,3,[1,0,0]): 
      e2 := linalg[matrix](1,3,[0,1,0]):
      e1pe2 := evalm((e1 + e2)/sqrt(2)): 
      e1me2 := evalm((e1-e2)/sqrt(2)):''
      lambda[1] := sqrt(evalm(evalm(e1&*C)&*transpose(e1))[1,1]);
      lambda[2] := sqrt(evalm(evalm(e2&*C)&*transpose(e2))[1,1]);
      lambda[3] := simplify(sqrt(evalm(evalm(e1pe2&*C)&*transpose(e1pe2))[1,1]));
      lambda[4] := simplify(sqrt(evalm(evalm(e1me2&*C)&*transpose(e1me2))[1,1]));

The following figure shows that the calculated stretches are correct.

Stretches
  • The orthogonal shear strain between two orthogonal units vectors and in the reference material co-ordinate system is given by

Once again, we will use Maple to calculate these strains. The steps are the same upto the calculation of the stretches.

      numer1 := evalm(evalm(e1&*C)&*transpose(e2))[1,1]:
      denom1 := lambda[1]*lambda[2]:
      ratio1 := numer1/denom1:
      gam1 := arcsin(ratio1);
      numer2 := simplify(evalm(evalm(e1pe2&*C)&*transpose(e1me2))[1,1]):
      denom2 := lambda[3]*lambda[4]:
      ratio2 := numer2/denom2:
      gam2 := arcsin(ratio2);

The following figure shows that the calculated orthogonal shear strains are correct.

Orthogonal shear strains

The value of can easily be verified using the definition of . For the verification of the value of , the cosine law

has to be used. Note that the actual length of the sides and of the triangle is obtained after multiplying the values shown in the figure by the length of the diagonal (). Hence, the calculated values are correct.

      b := sqrt(2)/2*lambda[4]:
      c := sqrt(2)/2*lambda[3]:
      a := 1:
      A := (b^2 + c^2 - a^2)/(2*b*c);
  • The principal stretches are given by the square roots of the eigenvalues of . The principal directions are the eigenvectors of .

Once again, we use Maple for our calculations.

      CC := linalg[matrix](3,3):
      for i from 1 to 3 do
        for j from 1 to 3 do
          CC[i,j] := eval(C[i,j], k=0.4);
        end do;
      end do;
      evalm(CC);
      eigvals := eigenvals(CC);
      PrinStretch[1] := sqrt(eigvals[1]);
      PrinStretch[2] := sqrt(eigvals[2]);
      PrinStretch[3] := sqrt(eigvals[3]);
      PrinDir := eigenvects(CC);