Deformazione non affine

La deformazione è descritta attraverso un campo di spostamento non affine.

Clear[L, H]

H = 1

Famiglia di campi di spostamento

uf[ζ1_, ζ2_] := { 
        ζ1 (ζ2 + (H/2)) q[1] +  (ζ2 + (H/2)) q[2] + 
          ζ1 q[5],   
        ζ1 (ζ2 + (H/2)) q[3] +  (ζ2 + (H/2)) q[4]}

Notare che il lato inferiore e'  "vincolato"  a restare aderente ad un piano

uf[ζ1, -(H/2)]

Selezionato un campo di spostamento

qls = {q[1] -> 0.3, q[2] -> 0.5, q[3] -> -0.3, 
          q[4] -> -0.02, q[5] -> 0.04} // Rationalize

qls // N

uf[ζ1, ζ2] /. qls // Simplify

uf[ζ1, ζ2] /. qls // Expand

Deformazione in termini di coordinate

x[ζ1_, ζ2_] := {ζ1, ζ2} + 
        uf[ζ1, ζ2]

ϕ[p_] := 
      x[p[[1]], 
        p[[2]]]

x[ζ1, ζ2]

x[ζ1, ζ2] /. qls // FullSimplify

x[ζ1, ζ2] /. qls // Expand

Visualizzazione della deformazione

SetOptions[Plot, ImageSize -> 288];

SetOptions[Plot3D, ImageSize -> 288];

SetOptions[ParametricPlot, ImageSize -> 288];

\(e1 = {1, 0}; 
e2 = {0, 1}; \)

xo = {0, 0};

diag[h_] := xo + h (L e1 + H e2)

diag[h]

\(lato1[h_] := {L\ h, \(-\(H\/2\)\)}; 
lato2[h_] := {L\ h, H\/2}; 

    lato3[h_] := {\(-\(L\/2\)\), H\ h}; 
lato4[h_] := {L\/2, H\ h}; \)

rettangolo := {lato1[h], lato2[h], lato3[h], lato4[h]}

lineaO[h_, s_] := lato1[h] + {0, s}

lineaV[h_, s_] := lato3[h] + {s, 0}

grigliaO
       := {lineaO[h, (H/5)], lineaO[h, 2  (H/5)], lineaO[h, 3  (H/5)], 
        lineaO[h, 4  (H/5)]}

grigliaV
       := {lineaV[h, (L/5)], lineaV[h, 2  (L/5)], lineaV[h, 3  (L/5)], 
        lineaV[h, 4  (L/5)]}

fig1 = 
      Block[{L = 1, H = 1, shape = rettangolo}, 
        ParametricPlot[
          Evaluate[
            Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
            AspectRatio -> Automatic, Axes -> False, 
            ImageSize -> 144, PlotStyle -> AbsoluteThickness[1]]]];

fig2 = 
      Block[{L = 1, H = 1, shape = Append[rettangolo, diag[h]]}, 
        ParametricPlot[
          Evaluate[
            Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
            AspectRatio -> Automatic, Axes -> False, 
            ImageSize -> 144, PlotStyle -> AbsoluteThickness[1]]]];

Block[{L = 1, H = 1, shape = Join[rettangolo, grigliaV]}, 
      ParametricPlot[
        Evaluate[
          Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
          AspectRatio -> Automatic, Axes -> False, 
          ImageSize -> 144, PlotStyle -> AbsoluteThickness[1]]]];

Block[{L = 1, H = 1, shape = Join[rettangolo, grigliaO]}, 
      ParametricPlot[
        Evaluate[
          Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
          AspectRatio -> Automatic, Axes -> False, 
          ImageSize -> 144, PlotStyle -> AbsoluteThickness[1]]]];

fig3 = 
      Block[{L = 1, H = 1, shape = Join[rettangolo, grigliaV, grigliaO]}, 
        ParametricPlot[
          Evaluate[
            Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
            AspectRatio -> Automatic, Axes -> False, 
            ImageSize -> 144, PlotStyle -> AbsoluteThickness[1]]]];

Salvataggio figure eps

Directory[]

Display["fig1.eps", fig1, "EPS"]

Display["fig2.eps", fig2, "EPS"]

Display["fig3.eps", fig3, "EPS"]

Gradiente della deformazione

grad[v_] := Transpose[{D[v, ζ1], D[v, ζ2]}]

grad[x[ζ1, ζ2]] // MatrixForm

grad[x[ζ1, ζ2]] /. qls // MatrixForm

mF[ζ1_, ζ2_] := 
      Evaluate[grad[x[ζ1, ζ2]] /. qls]

mF[ζ1, ζ2] // Simplify // MatrixForm

mF[ζ1, ζ2] // Simplify // N // MatrixForm

Determinante del gradiente della deformazione (per  L=1)

mF[ζ1, ζ2]

Det[Evaluate[mF[ζ1, ζ2]]]

Block[{L = 1}, 
      Plot3D[Evaluate[Det[mF[ζ1, ζ2]]], {ζ1, 
          -(L/2), (L/2)}, {ζ2, -(H/2), (H/2)}]; ]

Block[{L = 1}, Det[mF[(L/2), -(H/2)]]]

Determinante del gradiente della deformazione (valori di  L per i quali il determinante è negativo)

Avendo vincolato il lato inferiore (base) a restare su un piano accade che, per L abbastanza grande, punti vicini alla base si spostano al di sotto di essa.

Clear[L]

Det[mF[ζ1, ζ2]] // N

% /. {L -> 8}

% /. {ζ1 -> (L/2)} /. {ζ2 -> -(H/2)}

% /. {L -> 8}

mF[(L/2), -(H/2)]

Block[{L = 8}, Det[mF[(L/2), -(H/2)]]]

% // N

Block[{L = 8}, Det[mF[(L/2), (H/2)]]]

Block[{L = 6}, Det[mF[(L/2), -(H/2)]]]

Block[{L = 4, shape = Join[rettangolo, grigliaO]}, 
      ParametricPlot[
        Evaluate[
          Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
          AspectRatio -> Automatic, Axes -> False]]; ]

Block[{L = 6, shape = Join[rettangolo, grigliaO]}, 
      ParametricPlot[
        Evaluate[
          Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
          AspectRatio -> Automatic, Axes -> False]]; ]

Block[{L = 8, shape = Join[rettangolo, grigliaO]}, 
      ParametricPlot[
        Evaluate[
          Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
          AspectRatio -> Automatic, Axes -> False]]; ]

Block[{L = 10, shape = Join[rettangolo, grigliaO]}, 
      ParametricPlot[
        Evaluate[
          Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
          AspectRatio -> Automatic, Axes -> False]]; ]

Block[{L = 10, shape = rettangolo}, 
      ParametricPlot[
        Evaluate[
          Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
          AspectRatio -> Automatic, Axes -> False]]; ]

Dilatazioni principali e direzioni principali

mC[ζ1_, ζ2_] := 
      Transpose[mF[ζ1, ζ2]].mF[ζ1, ζ2]

mC[ζ1, ζ2] // Simplify // MatrixForm

mC[ζ1, ζ2] // Simplify // N // Factor // 
      MatrixForm

eta[ζ1_, ζ2_] = 
      Eigenvalues[mC[ζ1, ζ2]] // Simplify

mP1[ζ1_, ζ2_] := 
      (mC[ζ1, ζ2] - 
            eta[ζ1, ζ2][[2
                ]] IdentityMatrix[2]) 
        (1/(eta[ζ1, ζ2][[1
              ]] - 
            eta[ζ1, ζ2][[2
              ]]))

mP2[ζ1_, ζ2_] := 
      (mC[ζ1, ζ2] - 
            eta[ζ1, ζ2][[1
                ]] IdentityMatrix[2]) 
        (1/(eta[ζ1, ζ2][[2
              ]] - 
            eta[ζ1, ζ2][[1
              ]]))

lambda[ζ1_, ζ2_] := (Sqrt[eta])[ζ1, ζ2]

mR[ζ1_, ζ2_] := 
      mF[ζ1, ζ2].
        (mP1[ζ1, ζ2]
                /(lambda[ζ1, ζ2])[[1
                ]] + 
            mP2[ζ1, ζ2]
                /(lambda[ζ1, ζ2])[[2
                ]])

Valutazioni in alcuni punti (fissato L = H = 1)

Punto centrale

L = 1;

ζ1x = 0; ζ2x = 0;

lambda[ζ1x, ζ2x] // N

mP1[ζ1x, ζ2x] // Simplify // N // MatrixForm

mP2[ζ1x, ζ2x] // Simplify // N // MatrixForm

mR[ζ1x, ζ2x] // Simplify // N // MatrixForm

ArcTan[
          mR[ζ1x, ζ2x][[1, 1
            ]], 
          mR[ζ1x, ζ2x][[2, 1
            ]]]/π // N

Clear[L]

Punto A

L = 1;

ζ1x = -(L/2); ζ2x = -(H/2);

lambda[ζ1x, ζ2x] // N

mP1[ζ1x, ζ2x] // Simplify // N // MatrixForm

mP2[ζ1x, ζ2x] // Simplify // N // MatrixForm

mR[ζ1x, ζ2x] // Simplify // N // MatrixForm

ArcTan[
          mR[ζ1x, ζ2x][[1, 1
            ]], 
          mR[ζ1x, ζ2x][[2, 1
            ]]]/π // N

Clear[L]

Punto B

L = 1;

ζ1x = (L/2); ζ2x = -(H/2);

lambda[ζ1x, ζ2x] // N

mP1[ζ1x, ζ2x] // Simplify // N // MatrixForm

mP2[ζ1x, ζ2x] // Simplify // N // MatrixForm

mR[ζ1x, ζ2x] // Simplify // N // MatrixForm

ArcTan[
          mR[ζ1x, ζ2x][[1, 1
            ]], 
          mR[ζ1x, ζ2x][[2, 1
            ]]]/π // N

Clear[L]

Punto C

L = 1;

ζ1x = (L/2); ζ2x = (H/2);

lambda[ζ1x, ζ2x] // N

mP1[ζ1x, ζ2x] // Simplify // N // MatrixForm

mP2[ζ1x, ζ2x] // Simplify // N // MatrixForm

mR[ζ1x, ζ2x] // Simplify // N // MatrixForm

ArcTan[
          mR[ζ1x, ζ2x][[1, 1
            ]], 
          mR[ζ1x, ζ2x][[2, 1
            ]]]/π // N

Clear[L]

Punto D

L = 1;

ζ1x = -(L/2); ζ2x = (H/2);

lambda[ζ1x, ζ2x] // N

mP1[ζ1x, ζ2x] // Simplify // N // MatrixForm

mP2[ζ1x, ζ2x] // Simplify // N // MatrixForm

mR[ζ1x, ζ2x] // Simplify // N // MatrixForm

ArcTan[
          mR[ζ1x, ζ2x][[1, 1
            ]], 
          mR[ζ1x, ζ2x][[2, 1
            ]]]/π // N

Clear[L]

Rapporto tra le aree

Clear[L]

(((∫_(-
            (H/2))^((H/2)))(∫_(-(L/2))^((L/2)))Det[
              mF[ζ1, ζ2]] \[DifferentialD]ζ1 
            \[DifferentialD]ζ2)/(L H))

% // N

Rapporto tra le aree (un quarto a destra in basso)

Block[{L = 1}, 
        (((∫_(-(H/2))^0)
              (∫_0^((L/2)))Det[mF[ζ1, ζ2]] 
                \[DifferentialD]ζ1 \[DifferentialD]ζ2)/(((L 
                H)/4)))] // N

Block[{L = 8}, 
        (((∫_(-(H/2))^0)
              (∫_0^((L/2)))Det[mF[ζ1, ζ2]] 
                \[DifferentialD]ζ1 \[DifferentialD]ζ2)/(((L 
                H)/4)))] // N

Rapporto tra le aree (un sedicesimo a destra in basso)

Block[{L = 1}, 
        (((∫_(-(H/2))^(-
                (H/4)))(∫_((L/4))^((L/2)))Det[
                  mF[ζ1, ζ2]] \[DifferentialD]ζ1 
                \[DifferentialD]ζ2)/(((L H)/16)))] // N

Block[{L = 4}, 
        (((∫_(-(H/2))^(-
                (H/4)))(∫_((L/4))^((L/2)))Det[
                  mF[ζ1, ζ2]] \[DifferentialD]ζ1 
                \[DifferentialD]ζ2)/(((L H)/16)))] // N

Block[{L = 8}, 
        (((∫_(-(H/2))^(-
                (H/4)))(∫_((L/4))^((L/2)))Det[
                  mF[ζ1, ζ2]] \[DifferentialD]ζ1 
                \[DifferentialD]ζ2)/(((L H)/16)))] // N