Deformazione non affine di un disco

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

Clear[L, H]

Famiglia di campi di spostamento

uf[ζ1_, ζ2_] := {ζ1 ζ2 q[4] + ζ2 q[
              3] + ζ1 q[2] + 
          q[1],  ζ1 ζ2 q[8] + ζ2 q[7] + ζ1 q[
              6] + q[5]}

Selezionato un campo di spostamento

qls = {q[4] -> 0.3, q[3] -> 0.5, q[2] -> 0.04, 
          q[1] -> 0, q[8] -> -0.3, q[7] -> -0.02, 
          q[6] -> 0, q[5] -> 0} // 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

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 H=1, L=1)

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

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

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 (in basso al centro)

L = 1;

ζ1x = 0; ζ2x = -(L/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 (a destra al centro)

L = 1;

ζ1x = (L/2); ζ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 C (in alto al centro)

L = 1;

ζ1x = 0; ζ2x = (L/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 (a sinistra al centro)

L = 1;

ζ1x = -(L/2); ζ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]

Rapporto tra le aree del rettangolo

Clear[L, H]

(((∫_(-(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 = 1}, (((∫_(-(H/2))^0)(∫_0^((L/2)))Det[mF[ζ1, ζ2]] \[DifferentialD]ζ1 \[DifferentialD]ζ2)/(((L H)/4)))] // N

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

Block[{L = 8, 
          H = 2}, (((∫_(-(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 = 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 = 1}, (((∫_(-(H/2))^(-(H/4)))(∫_((L/4))^((L/2)))Det[mF[ζ1, ζ2]] \[DifferentialD]ζ1 \[DifferentialD]ζ2)/(((L H)/16)))] // N

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

Rapporto tra le aree del disco

Clear[L]

Lr := (L/2)

(∫_(-Lr)^Lr)(∫_(-(Sqrt[(Lr^2) - ζ(1^2)]))^((Sqrt[(Lr^2) - ζ(1^2)])))Det[
            mF[ζ1, ζ2]] \[DifferentialD]ζ2 \[DifferentialD]ζ1

Simplify[(∫_(-Lr)^Lr)(∫_(-(Sqrt[(Lr^2) - ζ(1^2)]))^((Sqrt[(Lr^2) - ζ(1^2)])))1 \[DifferentialD]ζ2 \[DifferentialD]ζ1, L > 0]

Simplify[(((∫_(-Lr)^Lr)(∫_(-(Sqrt[(Lr^2) - ζ(1^2)]))^((Sqrt[(Lr^2) - ζ(1^2)])))Det[mF[ζ1, ζ2]] \[DifferentialD]ζ2 \[DifferentialD]ζ1)/(π (Lr^2) )), L > 0]

% // N

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

Simplify[(((∫_( 0)^Lr)((∫_(-(Sqrt[(Lr^2) - ζ(1^2)]))^0) Det[mF[ζ1, ζ2]] \[DifferentialD]ζ2) \[DifferentialD]ζ1)/(((π (Lr^2))/4) )), 
      L > 0]

% /. L -> 1 // N

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

Simplify[(((∫_( 0)^Lr)((∫_0^((Sqrt[(Lr^2) - ζ(1^2)])))Det[mF[ζ1, ζ2]] \[DifferentialD]ζ2) \[DifferentialD]ζ1)/(((π (Lr^2))/4) )), 
      L > 0]

% /. L -> 1 // N

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

Simplify[(((∫_( -Lr)^0)((∫_(-(Sqrt[(Lr^2) - ζ(1^2)]))^0) Det[mF[ζ1, ζ2]] \[DifferentialD]ζ2) \[DifferentialD]ζ1)/(((π (Lr^2))/4) )), L > 0]

% /. L -> 1 // N

Rapporto tra le aree (un quarto a sinistra in alto)

Simplify[(((∫_( -Lr)^0)((∫_0^((Sqrt[(Lr^2) - ζ(1^2)])))Det[mF[ζ1, ζ2]] \[DifferentialD]ζ2) \[DifferentialD]ζ1)/(((π (Lr^2))/4) )), 
      L > 0]

% /. L -> 1 // N

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)]}

normalize[v_] := (v/(Sqrt[v . v]))

dirpr1[h_] := normalize[Evaluate[N[mP1[0, 0] . e1]]] h

dirpr2[h_] := normalize[Evaluate[N[mP2[0, 0] . e1]]] h

{dirpr1[h], dirpr2[h]}

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]]]];

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, 1.5 {dirpr1[h], dirpr2[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]]]];

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]]]];

cerchio inscritto in un quadrato di lato L

Lr := (L/2)

cerchio := Lr {{Cos[2 π h], Sin[2 π h]}}

fig1 = 
        Block[{L = 1, shape = cerchio}, 
          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, shape = Join[cerchio, Lr {{2  h, 0}, {0, 2  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, 
          shape = Join[cerchio, 
              Lr {{(Sqrt[2]) h, (Sqrt[2]) h}, {-(Sqrt[2]) h, (Sqrt[2]) h}}]}, 
        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, shape = Join[cerchio, {dirpr1[h], dirpr2[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, cerchio]}, 
        ParametricPlot[
          Evaluate[
            Join[shape, Map[ϕ, shape]] /. qls, {h, -(1/2), (1/2)}, 
            AspectRatio -> Automatic, Axes -> False, 
            ImageSize -> 144, 
            PlotStyle -> AbsoluteThickness[1]]]];

Salvataggio figure eps

SetDirectory["\wrk\corsi\scost\class\esercizi"]

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

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

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

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

Per L abbastanza grande, punti vicini al vertice in basso a destra si spostano al di sotto di essa.

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

Clear[L, H]

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

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

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

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

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

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

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