n = 32; 
Δθ = ((2π)/n);
r = 1; 
Δr = 0.25;
nodes=Flatten[Table[(1+Δr k){Cos[θ],Sin[θ]},{k,0,1},{θ,((Δθ)/2),2π,Δθ}], 1];
AppendTo[nodes,nodes[[n+1]]+{0.25, 0}];
AppendTo[nodes,nodes[[2n]]+{0.25, 0}];
elements = Table[{i, i+n, Mod[i+1, n, 1], n+Mod[i+1, n, 1]}, {i, 1, n}];
AppendTo[elements, {2n, 2n+2, n+1, 2n+1}];
Graphics[{PointSize[0.01],Point /@ nodes, Line[nodes[[#[[{1,2,4,3,1}]]]]]& /@ elements}]

ϕ[{ξ_, η_}] := (1/4){(1-ξ)(1-η), (1+ξ)(1-η), (1-ξ)(1+η), (1+ξ)(1+η)};
dϕdξ[{ξ_, η_}] := (1/4){{-1+η,-1+ξ},{1-η,-1-ξ},{-1-η,1-ξ},{1+η,1+ξ}};

ρ = 1.0; λ=100.0; μ=50.0;
c=Table[
λ Boole[i==j]Boole[k==l] + μ(Boole[i==k]Boole[j==l]+Boole[i==l]Boole[j==k]), 
{i, 1,2}, {j, 1,2}, {k, 1, 2}, {l, 1, 2}
];
quadratureRule = Flatten[Table[
{{ξ, η}, 1}, 
{ξ, {-((Sqrt[3])/3), ((Sqrt[3])/3)}}, {η, {-((Sqrt[3])/3), ((Sqrt[3])/3)}}
],1];
M=ConstantArray[0,{1,1}Length[nodes]*2];
Κ=ConstantArray[0,{1,1}Length[nodes]*2];
Do[
ids = Riffle[2element-1, 2element];
x = nodes[[element]];
Do[
{ξ,weight} = quadraturePoint;
dxdξ=Transpose[x].dϕdξ[ξ];
dϕdx=dϕdξ[ξ].Inverse[dxdξ];
da=Det[dxdξ]*weight;
M[[ids,ids]]+=ρ KroneckerProduct[Outer[Times,ϕ[ξ], ϕ[ξ]], IdentityMatrix[2]]da;
Κ[[ids,ids]]+=ArrayFlatten[Table[
Sum[dϕdx[[I,j]] c[[i,j,k,l]] dϕdx[[J,l]], {j, 1, 2}, {l, 1, 2}], 
{I, 1,4},{J, 1, 4}, {i, 1,2},  {k, 1, 2}
]]da;
,
{quadraturePoint, quadratureRule}
],
{element, elements}
]

{λ, X}= Eigensystem[{Κ, M}];
ω = Sqrt[λ];
Q = Normalize /@ {
Flatten[ConstantArray[{1, 0}, Length[nodes]]],
Flatten[ConstantArray[{0, 1}, Length[nodes]]],
Flatten[Cross /@ nodes]
};

frames = Table[
GraphicsRow[{
DrawModeShape[ω[[-4]], nodes+Sin[t]Partition[X[[-4]], 2]],
DrawModeShape[ω[[-5]], nodes+Sin[t]Partition[X[[-5]], 2]]
}, ImageSize->960],
{t, 0, 1.99π, ((2π)/60)}
];
ListAnimate[frames]