(* ::Package:: *) (************************************************************************) (* This file was generated automatically by the Mathematica front end. *) (* It contains Initialization cells from a Notebook file, which *) (* typically will have the same name as this file except ending in *) (* ".nb" instead of ".m". *) (* *) (* This file is intended to be loaded into the Mathematica kernel using *) (* the package loading commands Get or Needs. Doing so is equivalent *) (* to using the Evaluate Initialization Cells menu command in the front *) (* end. *) (* *) (* DO NOT EDIT THIS FILE. This entire file is regenerated *) (* automatically each time the parent Notebook file is saved in the *) (* Mathematica front end. Any changes you make to this file will be *) (* overwritten. *) (************************************************************************) (* ::Input::Initialization:: *) Off[General::spell]; Off[General::spell1]; Clear[\[Delta]]; \[Delta][exp_]:=exp/.{a[any__] -> \[Delta]a[any],b[any__] -> \[Delta]b[any],c[any__] -> \[Delta]c[any], ux[any__]->\[Delta]ux[any],uy[any__]->\[Delta]uy[any],uz[any__]->\[Delta]uz[any], \[Theta]x[any__]->\[Delta]\[Theta]x[any],\[Theta]y[any__]->\[Delta]\[Theta]y[any],\[Theta]z[any__]->\[Delta]\[Theta]z[any], uX[any__]->\[Delta]uX[any],uY[any__]->\[Delta]uY[any],uZ[any__]->\[Delta]uZ[any], \[Theta]X[any__]->\[Delta]\[Theta]X[any],\[Theta]Y[any__]->\[Delta]\[Theta]Y[any],\[Theta]Z[any__]->\[Delta]\[Theta]Z[any], Fx[any__]->\[Delta]Fx[any],Fy[any__]->\[Delta]Fy[any],Fz[any__]->\[Delta]Fz[any], Mx[any__]->\[Delta]Mx[any],My[any__]->\[Delta]My[any],Mz[any__]->\[Delta]Mz[any], FX[any__]->\[Delta]FX[any],FY[any__]->\[Delta]FY[any],FZ[any__]->\[Delta]FZ[any], MX[any__]->\[Delta]MX[any],MY[any__]->\[Delta]MY[any],MZ[any__]->\[Delta]MZ[any], FN[any__]->\[Delta]FN[any],FT[any__]->\[Delta]FT[any],FB[any__]->\[Delta]FB[any], MN[any__]->\[Delta]MN[any],MT[any__]->\[Delta]MT[any],MB[any__]->\[Delta]MB[any], \[CurlyTheta][any__]->\[Delta]\[CurlyTheta][any]}; \[Delta]UN[exp_]:=exp/.{\[Delta]a[any__] -> a[any],\[Delta]b[any__] -> b[any], \[Delta]c[any__] ->c[any], \[Delta]ux[any__]->ux[any], \[Delta]uy[any__]->uy[any], \[Delta]uz[any__]->uz[any], \[Delta]\[Theta]x[any__]->\[Theta]x[any], \[Delta]\[Theta]y[any__]->\[Theta]y[any], \[Delta]\[Theta]z[any__]->\[Theta]z[any], \[Delta]uX[any__]->uX[any], \[Delta]uY[any__]->uY[any], \[Delta]uZ[any__]->uZ[any], \[Delta]\[Theta]X[any__]->\[Theta]X[any], \[Delta]\[Theta]Y[any__]->\[Theta]Y[any], \[Delta]\[Theta]Z[any__]->\[Theta]Z[any], \[Delta]Fx[any__]->Fx[any], \[Delta]Fy[any__]->Fy[any], \[Delta]Fz[any__]->Fz[any], \[Delta]Mx[any__]->Mx[any], \[Delta]My[any__]->My[any], \[Delta]Mz[any__]->Mz[any], \[Delta]FX[any__]->FX[any], \[Delta]FY[any__]->FY[any], \[Delta]FZ[any__]->FZ[any], \[Delta]MX[any__]->MX[any], \[Delta]MY[any__]->MY[any], \[Delta]MZ[any__]->MZ[any], \[Delta]FN[any__]->FN[any], \[Delta]FT[any__]->FT[any], \[Delta]FB[any__]->FB[any], \[Delta]MN[any__]->MN[any], \[Delta]MT[any__]->MT[any], \[Delta]MB[any__]->MB[any], \[Delta]\[CurlyTheta][any__]->\[CurlyTheta][any]}; DOFS[exp_] :=Union[Cases[{exp},a[__]|b[__]|c[__] |uX[__]|uY[__]|uZ[__]| \[Theta]X[__]| \[Theta]Y[__]|\[Theta]Z[__]|ux[__]|uy[__]|uz[__]| \[Theta]x[__]| \[Theta]y[__]|\[Theta]z[__]|FX[__]|FY[__]|FZ[__]| MX[__]| MY[__]|MZ[__]|FN[__]|FT[__]|FB[__]| MN[__]| MT[__]|MB[__]|Fx[__]|Fy[__]|Fz[__]| Mx[__]| My[__]|Mz[__]| \[CurlyTheta][__],Infinity]]; DFFS[exp_] :=Union[Cases[{exp},FX[__]|FY[__]|FZ[__]| MX[__]| MY[__]|MZ[__]|FN[__]|FT[__]|FB[__]| MN[__]| MT[__]|MB[__]|Fx[__]|Fy[__]|Fz[__]| Mx[__]| My[__]|Mz[__],Infinity]]; \[Delta]DFFS[exp_] :=Union[Cases[{exp},\[Delta]FX[__]|\[Delta]FY[__]|\[Delta]FZ[__]| \[Delta]MX[__]| \[Delta]MY[__]|\[Delta]MZ[__]|\[Delta]FN[__]|\[Delta]FT[__]|\[Delta]FB[__]| \[Delta]MN[__]| \[Delta]MT[__]|\[Delta]MB[__]|\[Delta]Fx[__]|\[Delta]Fy[__]|\[Delta]Fz[__]| \[Delta]Mx[__]| \[Delta]My[__]|\[Delta]Mz[__],Infinity]]; \[Delta]DOFS[exp_] :=Union[Cases[{exp},\[Delta]a[__]|\[Delta]b[__]|\[Delta]c[__] |\[Delta]uX[__]|\[Delta]uY[__]|\[Delta]uZ[__]| \[Delta]\[Theta]X[__]| \[Delta]\[Theta]Y[__]|\[Delta]\[Theta]Z[__]|\[Delta]ux[__]|\[Delta]uy[__]|\[Delta]uz[__]| \[Delta]\[Theta]x[__]| \[Delta]\[Theta]y[__]|\[Delta]\[Theta]z[__]|\[Delta]FX[__]|\[Delta]FY[__]|\[Delta]FZ[__]| \[Delta]MX[__]| \[Delta]MY[__]|\[Delta]MZ[__]|\[Delta]FN[__]|\[Delta]FT[__]|\[Delta]FB[__]| \[Delta]MN[__]| \[Delta]MT[__]|\[Delta]MB[__]|\[Delta]Fx[__]|\[Delta]Fy[__]|\[Delta]Fz[__]| \[Delta]Mx[__]| \[Delta]My[__]|\[Delta]Mz[__]| \[Delta]\[CurlyTheta][__],Infinity]]; DOFS[exp_,n_] :=Union[Cases[{exp},a[__,n]|b[__,n]|c[__,n] |uX[__,n]|uY[__,n]|uZ[__,n]| \[Theta]X[__,n]| \[Theta]Y[__,n]|\[Theta]Z[__,n]|ux[__,n]|uy[__,n]|uz[__,n]| \[Theta]x[__,n]| \[Theta]y[__,n]|\[Theta]z[__,n]|FX[__,n]|FY[__,n]|FZ[__,n]| MX[__,n]| MY[__,n]|MZ[__,n]|FN[__,n]|FT[__,n]|FB[__,n]| MN[__,n]| MT[__,n]|MB[__,n]|Fx[__,n]|Fy[__,n]|Fz[__,n]| Mx[__,n]| My[__,n]|Mz[__,n]| \[CurlyTheta][__,n],Infinity]]; \[Delta]DOFS[exp_,n_] :=Union[Cases[{exp},\[Delta]a[__,n]|\[Delta]b[__,n]|\[Delta]c[__,n] |\[Delta]uX[__,n]|\[Delta]uY[__,n]|\[Delta]uZ[__,n]| \[Delta]\[Theta]X[__,n]| \[Delta]\[Theta]Y[__,n]|\[Delta]\[Theta]Z[__,n]|\[Delta]ux[__,n]|\[Delta]uy[__,n]|\[Delta]uz[__,n]| \[Delta]\[Theta]x[__,n]| \[Delta]\[Theta]y[__,n]|\[Delta]\[Theta]z[__,n]|\[Delta]FX[__,n]|\[Delta]FY[__,n]|\[Delta]FZ[__,n]| \[Delta]MX[__,n]| \[Delta]MY[__,n]|\[Delta]MZ[__,n]|\[Delta]FN[__,n]|\[Delta]FT[__,n]|\[Delta]FB[__,n]| \[Delta]MN[__,n]| \[Delta]MT[__,n]|\[Delta]MB[__,n]|\[Delta]Fx[__,n]|\[Delta]Fy[__,n]|\[Delta]Fz[__,n]| \[Delta]Mx[__,n]| \[Delta]My[__,n]|\[Delta]Mz[__,n]| \[Delta]\[CurlyTheta][__,n],Infinity]]; DRULE[n_]:= { a[any__]-> a[any,n],b[any__]-> b[any,n],c[any__]-> c[any,n],uX[any__]-> uX[any,n],uY[any__]-> uY[any,n],uZ[any__]-> uZ[any,n], \[Theta]X[any__]-> \[Theta]X[any,n],\[Theta]Y[any__]-> \[Theta]Y[any,n],\[Theta]Z[any__]-> \[Theta]Z[any,n], ux[any__]-> ux[any,n],uy[any__]-> uy[any,n],uz[any__]-> uz[any,n], \[Theta]x[any__]-> \[Theta]x[any,n],\[Theta]y[any__]-> \[Theta]y[any,n],\[Theta]z[any__]-> \[Theta]z[any,n], FX[any__]-> FX[any,n],FY[any__]-> FY[any,n],FZ[any__]-> FZ[any,n], MX[any__]-> MX[any,n],MY[any__]-> MY[any,n],MZ[any__]-> MZ[any,n], FN[any__]-> FN[any,n],FT[any__]-> FT[any,n],FB[any__]-> FB[any,n], MN[any__]-> MN[any,n],MT[any__]-> MT[any,n],MB[any__]-> MB[any,n]}; \[Delta]\[Delta][u_]:=Module[{dof},dof=DOFS[u]; If[dof=={} ,u*0,D[u,{dof}] . \[Delta][dof]]]; (* ::Input::Initialization:: *) SHAPES1[h_]:= {1-(x/h),(x/h)}; SHAPES11[h_]:= {(1-x/h)^2 (1+2 x/h),h (1-x/h)^2 (x/h),(3-2 x/h) (x/h)^2,h (x/h)^2 (-1+x/h)}; LAGRANGE[n_,h_]:= Simplify[MapIndexed[(#1/(#1/.x->h*(#2[[1]]-1)/(n-1)))&,Table[Apply[Times,Table[x-h*(ii-1)/(n-1),{ii,1,n}]]/(x-h*(jj-1)/(n-1)),{jj,1,n}]]]; LAGRANGE[n_,{x0_,x1_}]:= Simplify[MapIndexed[(#1/(#1/.x->x0+(x1-x0)*(#2[[1]]-1)/(n-1)))&,Table[Apply[Times,Table[x-(x0+(x1-x0)*(ii-1)/(n-1)),{ii,1,n}]]/(x-(x0+(x1-x0)*(jj-1)/(n-1))),{jj,1,n}]]]; LAGRANGE[n_,{x,{x0_,x1_}}]:= Simplify[MapIndexed[(#1/(#1/.x->x0+(x1-x0)*(#2[[1]]-1)/(n-1)))&,Table[Apply[Times,Table[x-(x0+(x1-x0)*(ii-1)/(n-1)),{ii,1,n}]]/(x-(x0+(x1-x0)*(jj-1)/(n-1))),{jj,1,n}]]]; SHAPES1[bas_,ver_]:= Simplify[bas . Inverse[Flatten[Map[{bas}/. {x->#[[1]]}&, ver],1]]]; SHAPES11[bas_,ver_]:= bas . Inverse[Flatten[Map[{bas,\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]bas\)}/. {x->#[[1]]}&, ver],1]]; SHAPES2[bas_,ver_]:= bas . Inverse[Flatten[Map[{bas}/. {x->#[[1]],y->#[[2]]}&, ver],1]]; SHAPES21[{{x1_,y1_},{x2_,y2_}}]:= Module[{Nx,Ny}, Nx= SHAPES11[{1,x,x^2,x^3},{{x1},{x2}}]; Ny= SHAPES11[{1,x,x^2,x^3},{{y1},{y2}}] /. x->y; Return[{Nx[[1]]*Ny[[1]],Nx[[2]]*Ny[[1]],Nx[[1]]*Ny[[2]],Nx[[3]]*Ny[[1]],Nx[[4]]*Ny[[1]],Nx[[3]]*Ny[[2]],Nx[[1]]*Ny[[3]],Nx[[2]]*Ny[[3]],Nx[[1]]*Ny[[4]],Nx[[3]]*Ny[[3]],Nx[[4]]*Ny[[3]],Nx[[3]]*Ny[[4]]}]]; SHAPES3[bas_,ver_]:= bas . Inverse[Flatten[Map[{bas}/. {x->#[[1]],y->#[[2]],z->#[[3]]}&, ver],1]]; SHAPES1[h_]:= {1-(x/h),(x/h)}; SHAPES11[h_]:= {(1-x/h)^2 (1+2 x/h),h (1-x/h)^2 (x/h),(3-2 x/h) (x/h)^2,h (x/h)^2 (-1+x/h)}; LAGRANGE[n_,h_]:= Simplify[MapIndexed[(#1/(#1/.x->h*(#2[[1]]-1)/(n-1)))&,Table[Apply[Times,Table[x-h*(ii-1)/(n-1),{ii,1,n}]]/(x-h*(jj-1)/(n-1)),{jj,1,n}]]]; LAGRANGE[{{n_,r_}}]:= Simplify[MapIndexed[(#1/(#1/.r->(#2[[1]]-1)/(n-1)))&,Table[Apply[Times,Table[r-(ii-1)/(n-1),{ii,1,n}]]/(r-(jj-1)/(n-1)),{jj,1,n}]]]; LAGRANGE[{{n_,r_},{m_,s_}}]:= Flatten[Outer[Times,LAGRANGE[{{m,s}}],LAGRANGE[{{n,r}}]],1]; LAGRANGE[{{n_,r_},{m_,s_},{k_,t_}}]:= Flatten[Outer[Times,LAGRANGE[{{k,t}}],LAGRANGE[{{m,s}}],LAGRANGE[{{n,r}}]],2]; LAGRANGE[n_,{x0_,x1_}]:= Simplify[MapIndexed[(#1/(#1/.x->x0+(x1-x0)*(#2[[1]]-1)/(n-1)))&,Table[Apply[Times,Table[x-(x0+(x1-x0)*(ii-1)/(n-1)),{ii,1,n}]]/(x-(x0+(x1-x0)*(jj-1)/(n-1))),{jj,1,n}]]]; LAGRANGE[n_,{x,{x0_,x1_}}]:= Simplify[MapIndexed[(#1/(#1/.x->x0+(x1-x0)*(#2[[1]]-1)/(n-1)))&,Table[Apply[Times,Table[x-(x0+(x1-x0)*(ii-1)/(n-1)),{ii,1,n}]]/(x-(x0+(x1-x0)*(jj-1)/(n-1))),{jj,1,n}]]]; SHAPES1[bas_,ver_]:= Simplify[bas . Inverse[Flatten[Map[{bas}/. {x->#[[1]]}&, ver],1]]]; SHAPES11[bas_,ver_]:= bas . Inverse[Flatten[Map[{bas,\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]bas\)}/. {x->#[[1]]}&, ver],1]]; SHAPES2[bas_,ver_]:= bas . Inverse[Flatten[Map[{bas}/. {x->#[[1]],y->#[[2]]}&, ver],1]]; SHAPES21[{{x1_,y1_},{x2_,y2_}}]:= Module[{Nx,Ny}, Nx= SHAPES11[{1,x,x^2,x^3},{{x1},{x2}}]; Ny= SHAPES11[{1,x,x^2,x^3},{{y1},{y2}}] /. x->y; Return[{Nx[[1]]*Ny[[1]],Nx[[2]]*Ny[[1]],Nx[[1]]*Ny[[2]],Nx[[3]]*Ny[[1]],Nx[[4]]*Ny[[1]],Nx[[3]]*Ny[[2]],Nx[[1]]*Ny[[3]],Nx[[2]]*Ny[[3]],Nx[[1]]*Ny[[4]],Nx[[3]]*Ny[[3]],Nx[[4]]*Ny[[3]],Nx[[3]]*Ny[[4]]}]]; SHAPES3[bas_,ver_]:= bas . Inverse[Flatten[Map[{bas}/. {x->#[[1]],y->#[[2]],z->#[[3]]}&, ver],1]]; (* ::Input::Initialization:: *) QUAD[LIN1,exp_,var_]:=Module[{w,p}, p={{1}}/2; w={1}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[LIN1,exp_,var_,map_]:=Module[{w,p}, p={{1}}/2; w={1}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[LIN2,exp_,var_]:=Module[{w,p}, p={{0},{1}}; w={1,1}/2; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[LIN2G,exp_,var_]:=Module[{w,p}, p={{0.21132486540518713},{0.7886751345948129}}; w={1,1}/2; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[LIN3,exp_,var_]:=Module[{w,p}, p={{0},{1},{2}}/2; w={1,4,1}/6; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[LIN3,exp_,var_,map_]:=Module[{w,p}, p={{0},{1},{2}}/2; w={1,4,1}/6; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[LIN3G,exp_,var_]:=Module[{w,p}, p={{0.1127016653792583},{0.5},{0.8872983346207417}}; w={0.2777777777777777,0.44444444444444453,0.2777777777777777}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[LIN5,exp_,var_]:=Module[{w,p}, p={{0},{1},{2},{3},{4}}/4; w={7,32,12,32,7}/90; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[LIN5,exp_,var_,map_]:=Module[{w,p}, p={{0},{1},{2},{3},{4}}/4; w={7,32,12,32,7}/90; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[LIN7,exp_,var_]:=Module[{w,p}, p={{0},{1},{2},{3},{4},{5},{6}}/6; w={41,216,27,272,27,216,41}/840; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[LIN14,exp_,var_]:=Module[{w,p}, p=Table[ii,{ii,0,13}]/13; w={8181904909/402361344000,56280729661/402361344000,-(1737125143/22353408000),11148172711/28740096000,-(6066382933/16094453760),22964826443/44706816000,-(3592666051/33530112000),-(3592666051/33530112000),22964826443/44706816000,-(6066382933/16094453760),11148172711/28740096000,-(1737125143/22353408000),56280729661/402361344000,8181904909/402361344000}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TRI1,exp_,var_]:=Module[{w,p}, p={{1,1}}/3; w={1}/2; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TRI3,exp_,var_]:=Module[{w,p}, p={{0,1},{1,0},{1,1}}/2; w={1,1,1}/6; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TRI4,exp_,var_]:=Module[{w,p}, p={{0,0},{1,0},{0,1},{1,1}/3}; w=1/24*{1,1,1,9}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TRI41,exp_,var_]:=Module[{w,p}, p={{1,0}/2,{1,1}/2,{0,1}/2,{1,1}/3}; w=1/120*{11,11,11,27}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TRI7,exp_,var_]:=Module[{w,p}, p={{0,0},{1/2,0},{1,0},{1/2,1/2},{0,1},{0,1/2},{1/3,1/3}}; w={1/40,1/15,1/40,1/15,1/40,1/15,9/40}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TRI12,exp_,var_]:=Module[{w,p}, p={{0,1},{0,2},{0,3},{1,0},{1,1},{1,2},{1,3},{2,0},{2,1},{2,2},{3,0},{3,1}}/4; w={4,-1,4,4,8,8,4,-1,8,-1,4,4}/90; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TRI28,exp_,var_]:=Module[{w,p}, p={{0,0},{0,1},{0,2},{0,3},{0,4},{0,5},{0,6},{1,0},{1,1},{1,2},{1,3},{1,4},{1,5},{2,0},{2,1},{2,2},{2,3},{2,4},{3,0},{3,1},{3,2},{3,3},{4,0},{4,1},{4,2},{5,0},{5,1},{6,0}}/6; w={0,36,-27,64,-27,36,0,36,72,72,72,72,36,-27,72,-54,72,-27,64,72,72,64,-27,72,-27,36,36,0}/(3.*560); Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TRI1,exp_,var_,map_]:=Module[{w,p}, p={{1,1}}/3; w={1}/2; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[TRI3,exp_,var_,map_]:=Module[{w,p}, p={{0,1},{1,0},{1,1}}/2; w={1,1,1}/6; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[TRI4,exp_,var_,map_]:=Module[{w,p}, p={{0,0},{1,0},{0,1},{1,1}/3}; w=1/24*{1,1,1,9}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[TRI7,exp_,var_,map_]:=Module[{w,p}, p={{0,0},{1/2,0},{1,0},{1/2,1/2},{0,1},{0,1/2},{1/3,1/3}}; w={1/40,1/15,1/40,1/15,1/40,1/15,9/40}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[TRI12,exp_,var_,map_]:=Module[{w,p}, p={{0,1},{0,2},{0,3},{1,0},{1,1},{1,2},{1,3},{2,0},{2,1},{2,2},{3,0},{3,1}}/4; w={4,-1,4,4,8,8,4,-1,8,-1,4,4}/90; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[TRI28,exp_,var_,map_]:=Module[{w,p}, p={{0,0},{0,1},{0,2},{0,3},{0,4},{0,5},{0,6},{1,0},{1,1},{1,2},{1,3},{1,4},{1,5},{2,0},{2,1},{2,2},{2,3},{2,4},{3,0},{3,1},{3,2},{3,3},{4,0},{4,1},{4,2},{5,0},{5,1},{6,0}}/6; w={0,36,-27,64,-27,36,0,36,72,72,72,72,36,-27,72,-54,72,-27,64,72,72,64,-27,72,-27,36,36,0}/(3.*560); Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->map[#1]]&,p]]]; QUAD[REC1,exp_,var_]:=Module[{w,p}, p={{1,1}}/2; w={1}; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[REC4,exp_,var_]:=Module[{w,p}, p={{0,0},{0,1},{1,0},{1,1}}; w={1,1,1,1}/4; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[REC4,exp_,var_]:=Module[{w,p}, p={{1/2,0},{1,1/2},{1/2,1},{0,1/2}}; w={1,1,1,1}/4; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[REC9,exp_,var_]:=Module[{w,p}, p={{0,0},{0,1},{0,2},{1,0},{1,1},{1,2},{2,0},{2,1},{2,2}}/2; w={1,4,1,4,16,4,1,4,1}/36; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[HEX27,exp_,var_]:=Module[{w,p}, p={{0,0,0},{0,0,1},{0,0,2},{0,1,0},{0,1,1},{0,1,2},{0,2,0},{0,2,1},{0,2,2},{1,0,0},{1,0,1},{1,0,2},{1,1,0},{1,1,1},{1,1,2},{1,2,0},{1,2,1},{1,2,2},{2,0,0},{2,0,1},{2,0,2},{2,1,0},{2,1,1},{2,1,2},{2,2,0},{2,2,1},{2,2,2}}/2; w={1,4,1,4,16,4,1,4,1,4,16,4,16,64,16,4,16,4,1,4,1,4,16,4,1,4,1}/6^3; Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TET5,exp_,var_]:=Module[{ w={-16,9,9,9,9}/120,p=Transpose[{{1/4,1/2,1/6,1/6,1/6},{1/4,1/6,1/6,1/6,1/2},{1/4,1/6,1/6,1/2,1/6}}]}, Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; QUAD[TET10,exp_,var_]:=Module[{ w={-1,-1,-1,-1,4,4,4,4,4,4}/120,p={{1,0,0},{0,1,0},{0,0,1},{0,0,0},{1,1,0}/2,{1,0,1}/2,{1,0,0}/2,{0,1,1}/2,{0,1,0}/2,{0,0,1}/2}}, Apply[Plus,MapIndexed[w[[#2[[1]]]]*exp /.Thread[var->#1]&,p]]]; (* ::Input::Initialization:: *) INTEGRATE[{LINE,exp_},{ele_,fun_}]:= Apply[Plus,Map[QUAD[{LINLINE,exp},#]&,ele]]; RULE[{LINE,{iy_},list_}]:= Module[{ix,iz,hx,nn}, {ix,hx} = UNIT[XYZ[Last[list]]-XYZ[First[list]]]; iz = CROSS[ix,iy]; nn = Length[list]; xrule = Table[x[ii]-> ix . XYZ[list[[ii]]],{ii,1,nn}]; yrule = Table[y[ii]-> iy . XYZ[list[[ii]]],{ii,1,nn}]; zrule = Table[z[ii]-> iz . XYZ[list[[ii]]],{ii,1,nn}]; Flatten[Join[xrule,yrule,zrule]]]; QUAD[{LINLINE,exp_},element_]:= Module[{NN,rule,xx,yy,zz,J,int}, NN = {1-\[Xi],\[Xi]}; rule = RULE[element]; xx = NN . {x[1],x[2]} /. rule; yy = NN . {y[1],y[2]} /. rule; zz = NN . {z[1],z[2]} /. rule; J = Sqrt[(\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]xx\))^2+(\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]yy\))^2+(\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]zz\))^2]; int = J*exp /. {x->xx, y->yy, z->zz}; QUADE[QTYPE,(int /. \[Xi]-> #1)&]]; QUADE[LINE1,exp_]:= exp[{1/2}] . {1}; QUADE[LINE2,exp_]:= exp[{0,1}] . {1,1}/2; QUADE[LINE3,exp_]:= exp[{0,1,2}/2] . {1,4,1}/6; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{FORCE,{FX_,FY_,FZ_},Point[{n1_}]},fun_]:= \[Delta]W[DISP,{FORCE,{FX,FY,FZ,0,0,0},Point[{n1}]},fun]; \[Delta]U[DISP,{FORCE,{FX_,FY_,FZ_},Point[{n1_}]},fun_]:= -{FX,FY,FZ} . fun[[n1,2]]; \[Delta]W[DISP,{FORCE,{FX_,FY_,FZ_,MX_,MY_,MZ_},Point[{n1_}]},fun_]:= {FX,FY,FZ} . \[Delta][fun[[n1,2]]]+{MX,MY,MZ} . \[Delta][fun[[n1,3]]]; \[Delta]W[DISP,{FORCE,{fX_,fY_,fZ_},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{FORCE,{{fX,fX},{fY,fY},{fZ,fZ}},Line[{n1,n2}]},fun]; \[Delta]W[DISP,{FORCE,{fX_,fY_,fZ_} ,Line[{n1_,n2_,n3_}]},fun_]:=Module[{nl,r0,h0}, nl ={n1,n2,n3}; r0=fun[[n3,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; fX*h0*\[Delta][fun[[nl,2,1]]] . {1,4,1}/6 +fY*h0*\[Delta][fun[[nl,2,2]]] . {1,4,1}/6+ fZ*h0*\[Delta][fun[[nl,2,3]]] . {1,4,1}/6]; \[Delta]W[DISP,{FORCE,{{fX1_,fX2_},{fY1_,fY2_},{fZ1_,fZ2_}} ,Line[{n1_,n2_}]},fun_]:=Module[{nl,r0,h0}, r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; h0/6*(\[Delta][fun[[{n1,n2},2,1]]] . {{2,1},{1,2}} . {fX1,fX2} +\[Delta][fun[[{n1,n2},2,2]]] . {{2,1},{1,2}} . {fY1,fY2}+ \[Delta][fun[[{n1,n2},2,3]]] . {{2,1},{1,2}} . {fZ1,fZ2})]; (*area force*) \[Delta]W[DISP,{FORCE,{fX_,fY_,fZ_} ,Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{FORCE,{{fX,fX,fX},{fY,fY,fY},{fZ,fZ,fZ}} ,Polygon[{n1,n2,n3}]},fun] \[Delta]W[DISP,{FORCE,{{fX1_,fX2_,fX3_},{fY1_,fY2_,fY3_},{fZ1_,fZ2_,fZ3_}} ,Polygon[{n1_,n2_,n3_}]},fun_]:= Area[Polygon[fun[[{n1,n2,n3},1]]]]/12*(\[Delta][fun[[{n1,n2,n3},2,1]]] . {{2,1,1},{1,2,1},{1,1,2}} . {fX1,fX2,fX3} +\[Delta][fun[[{n1,n2,n3},2,2]]] . {{2,1,1},{1,2,1},{1,1,2}} . {fY1,fY2,fY3}+ \[Delta][fun[[{n1,n2,n3},2,3]]] . {{2,1,1},{1,2,1},{1,1,2}} . {fZ1,fZ2,fZ3}) ; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[VIBR,{FORCE,{FX_,FY_,FZ_},Point[{n1_}]},fun_]:= \[Delta]W[VIBR,{FORCE,{FX,FY,FZ,0,0,0},Point[{n1}]},fun]; \[Delta]W[VIBR,{FORCE,{FX_,FY_,FZ_,MX_,MY_,MZ_},Point[{n1_}]},fun_]:= ({FX,FY,FZ} . \[Delta][fun[[n1,2]]/.DRULE[0]]+{MX,MY,MZ} . \[Delta][fun[[n1,3]]/.DRULE[0]]); \[Delta]W[VIBR,{FORCE,{fX_,fY_,fZ_},Line[{n1_,n2_}]},fun_]:= \[Delta]W[VIBR,{FORCE,{{fX,fX},{fY,fY},{fZ,fZ}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{FORCE,{{fX1_,fX2_},{fY1_,fY2_},{fZ1_,fZ2_}} ,Line[{n1_,n2_}]},fun_]:=Module[{nl,r0,h0}, r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; (h0/6*(\[Delta][fun[[{n1,n2},2,1]]/.DRULE[0]] . {{2,1},{1,2}} . {fX1,fX2} +\[Delta][fun[[{n1,n2},2,2]]/.DRULE[0]] . {{2,1},{1,2}} . {fY1,fY2}+ \[Delta][fun[[{n1,n2},2,3]]/.DRULE[0]] . {{2,1},{1,2}} . {fZ1,fZ2})) ]; \[Delta]W[VIBR,{FORCE,{fX_,fY_,fZ_} ,Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[VIBR,{FORCE,{{fX,fX,fX},{fY,fY,fY},{fZ,fZ,fZ}} ,Polygon[{n1,n2,n3}]},fun]; \[Delta]W[VIBR,{FORCE,{{fX1_,fX2_,fX3_},{fY1_,fY2_,fY3_},{fZ1_,fZ2_,fZ3_}} ,Polygon[{n1_,n2_,n3_}]},fun_]:= Area[Polygon[fun[{n1,n2,n3},1]]]/12*(\[Delta][fun[[{n1,n2,n3},2,1]]/.DRULE[0]] . {{2,1,1},{1,2,1},{1,1,2}} . {fX1,fX2,fX3}+\[Delta][fun[[{n1,n2,n3},2,2]]/.DRULE[0]] . {{2,1,1},{1,2,1},{1,1,2}} . {fY1,fY2,fY3}+\[Delta][fun[[{n1,n2,n3},2,3]]/.DRULE[0]] . {{2,1,1},{1,2,1},{1,1,2}} . {fZ1,fZ2,fZ3}); \[Delta]W[VIBR,{FORCE,{{m_}},Point[{n1_}]},fun_]:= (-m fun[[n1,2]]/.DRULE[2]) . (\[Delta][fun[[n1,2]] /.DRULE[0]]); \[Delta]W[VIBR,{FORCE,{{m_,J_}},Point[{n1_}]},fun_]:= \[Delta]W[VIBR,{FORCE,{{m,J},{{1,0,0},{0,1,0}}},Point[{n1}]},fun]; \[Delta]W[VIBR,{FORCE,{{m_,J_},{ix_,iy_}},Point[{n1_}]},fun_]:=Module[{iz=ix\[Cross]iy}, -(m fun[[n1,2]]/.DRULE[2]) . ( \[Delta][fun[[n1,2]]/.DRULE[0]])- (J . fun[[n1,3]]/.DRULE[2]) . (\[Delta][fun[[n1,3]]/.DRULE[0]])]; (*for detailed graphics*) \[Delta]W[VIBR,{FORCE,{{m_,J_},{ix_,iy_},{xyz_,obj_}},Point[{n1_}]},fun_]:=\[Delta]W[VIBR,{FORCE,{{m,J},{ix,iy}},Point[{n1}]},fun]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[STAB,{FORCE,{FX_,FY_,FZ_},Point[{n1_}]},fun_]:= \[Delta]W[DISP,{FORCE,{FX,FY,FZ},Point[{n1}]},fun]; \[Delta]W[STAB,{FORCE,{FX_,FY_,FZ_,MX_,MY_,MZ_},Point[{n1_}]},fun_]:= \[Delta]W[DISP,{FORCE,{FX,FY,FZ,MX,MY,MZ},Point[{n1}]},fun]; \[Delta]W[STAB,{FORCE,{fX_,fY_,fZ_},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{FORCE,{fX,fY,fZ},Line[{n1,n2}]},fun]; \[Delta]W[STAB,{FORCE,{{fX1_,fX2_},{fY1_,fY2_},{fZ1_,fZ2_}} ,Line[{n1_,n2_}]},fun_]:=\[Delta]W[DISP,{FORCE,{{fX1,fX2},{fY1,fY2},{fZ1,fZ2}} ,Line[{n1,n2}]},fun]; \[Delta]W[STAB,{FORCE,{fX_,fY_,fZ_} ,Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{FORCE,{fX,fY,fZ} ,Polygon[{n1,n2,n3}]},fun]; \[Delta]W[STAB,{FORCE,{{fX1_,fX2_,fX3_},{fY1_,fY2_,fY3_},{fZ1_,fZ2_,fZ3_}} ,Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{FORCE,{{fX1,fX2,fX3},{fY1,fY2,fY3},{fZ1,fZ2,fZ3}} ,Polygon[{n1,n2,n3}]},fun] (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[NONL,{FORCE,{FX_,FY_,FZ_},Point[{n1_}]},fun_]:= \[Delta]W[NONL,{FORCE,{FX,FY,FZ,0,0,0},Point[{n1}]},fun]; \[Delta]U[NONL,{FORCE,{FX_,FY_,FZ_},Point[{n1_}]},fun_]:= -{FX,FY,FZ} . fun[[n1,2]]; \[Delta]W[NONL,{FORCE,{FX_,FY_,FZ_,MX_,MY_,MZ_},Point[{n1_}]},fun_]:= {FX,FY,FZ} . \[Delta][fun[[n1,2]]]+MY*(-fun[[n1,3,3]]*\[Delta][fun[[n1,3,1]]]+(1+fun[[n1,3,1]])* \[Delta][fun[[n1,3,3]]])/((1+fun[[n1,3,1]])^2+fun[[n1,3,3]]^2); (*area force*) \[Delta]W[NONL,{FORCE,{fX_,fY_,fZ_} ,Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{FORCE,{{fX,fX,fX},{fY,fY,fY},{fZ,fZ,fZ}} ,Polygon[{n1,n2,n3}]},fun] \[Delta]W[NONL,{FORCE,{{fX1_,fX2_,fX3_},{fY1_,fY2_,fY3_},{fZ1_,fZ2_,fZ3_}} ,Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{FORCE,{{fX1,fX2,fX3},{fY1,fY2,fY3},{fZ1,fZ2,fZ3}} ,Polygon[{n1,n2,n3}]},fun]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[TMEC,{FORCE,anya_,anyb_},fun_]:= \[Delta]W[DISP,{FORCE,anya,anyb},fun]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{RIGID,{},Point[{n1_}]},fun_]:=\[Delta]W[DISP,{RIGID,{{0,0,0},{0,0,0}},Point[{n1}]},fun]; \[Delta]W[DISP,{RIGID,{{uX1_,uY1_,uZ1_},{\[Theta]X1_,\[Theta]Y1_,\[Theta]Z1_}},Point[{n1_}]},fun_]:=\[Delta]\[Delta][(fun[[n1,2]]-{uX1,uY1,uZ1}) . {FX[n1],FY[n1],FZ[n1]}]+ \[Delta]\[Delta][(fun[[n1,3]]-{\[Theta]X1,\[Theta]Y1,\[Theta]Z1}) . {MX[n1],MY[n1],MZ[n1]}]; \[Delta]W[DISP,{RIGID,{},Line[{n1_,n2_}]},fun_]:= \[Delta]\[Delta][(fun[[n2,2]]-fun[[n1,2]]-fun[[n1,3]]\[Cross](fun[[n2,1]]-fun[[n1,1]])) . {FX[{n2,n1}],FY[{n2,n1}],FZ[{n2,n1}]}]+ \[Delta]\[Delta][(fun[[n2,3]]-fun[[n1,3]]) . ({MX[{n2,n1}],MY[{n2,n1}],MZ[{n2,n1}]} + {FX[{n2,n1}],FY[{n2,n1}],FZ[{n2,n1}]}\[Cross](fun[[n2,1]]-fun[[n1,1]]))]; \[Delta]W[DISP,{JOINT,{},Point[{n1_}]},fun_]:=\[Delta]\[Delta][fun[[n1,2]] . {FX[n1],FY[n1],FZ[n1]}]; \[Delta]W[DISP,{JOINT,{uX1_,uY1_,uZ1_},Point[{n1_}]},fun_]:=\[Delta]\[Delta][(fun[[n1,2]]-{uX1,uY1,uZ1}) . {FX[n1],FY[n1],FZ[n1]}]; \[Delta]W[DISP,{JOINT,{},Line[{n1_,n2_}]},fun_]:=\[Delta]\[Delta][(fun[[n1,2]]-fun[[n2,2]]) . {FX[n1],FY[n1],FZ[n1]}] ; \[Delta]W[DISP,{SLIDER,{nX_,nY_,nZ_},Point[{n1_}]},fun_]:=\[Delta]\[Delta][(fun[[n1,2]] . {nX,nY,nZ})*({nX,nY,nZ} . {FX[n1],FY[n1],FZ[n1]})] ; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[VIBR,{RIGID,{},Point[{n1_}]},fun_]:=\[Delta]\[Delta][(fun[[n1,2]] . {FX[n1],FY[n1],FZ[n1]})/.DRULE[0]]+ \[Delta]\[Delta][(fun[[n1,3]] . {MX[n1],MY[n1],MZ[n1]})/.DRULE[0]]; \[Delta]W[VIBR,{RIGID,{{uX1_,uY1_,uZ1_},{\[Theta]X1_,\[Theta]Y1_,\[Theta]Z1_}},Point[{n1_}]},fun_]:=\[Delta]\[Delta][((fun[[n1,2]]-{uX1,uY1,uZ1}) . {FX[n1],FY[n1],FZ[n1]})/.DRULE[0]]+ \[Delta]\[Delta][((fun[[n1,3]]-{\[Theta]X1,\[Theta]Y1,\[Theta]Z1}) . {MX[n1],MY[n1],MZ[n1]})/.DRULE[0]]; \[Delta]W[VIBR,{RIGID,{},Line[{n1_,n2_}]},fun_]:= \[Delta]\[Delta][((fun[[n2,2]]-fun[[n1,2]]-fun[[n1,3]]\[Cross](fun[[n2,1]]-fun[[n1,1]])) . {FX[{n2,n1}],FY[{n2,n1}],FZ[{n2,n1}]})/.DRULE[0]]+ \[Delta]\[Delta][((fun[[n2,3]]-fun[[n1,3]]) . ({MX[{n2,n1}],MY[{n2,n1}],MZ[{n2,n1}]} + {FX[{n2,n1}],FY[{n2,n1}],FZ[{n2,n1}]}\[Cross](fun[[n2,1]]-fun[[n1,1]])))/.DRULE[0]]; \[Delta]W[VIBR,{JOINT,{},Point[{n1_}]},fun_]:=\[Delta]\[Delta][(fun[[n1,2]] . {FX[n1],FY[n1],FZ[n1]})/.DRULE[0]]; \[Delta]W[VIBR,{JOINT,{uX1_,uY1_,uZ1_},Point[{n1_}]},fun_]:=\[Delta]\[Delta][((fun[[n1,2]]-{uX1,uY1,uZ1}) . {FX[n1],FY[n1],FZ[n1]})/.DRULE[0]]; \[Delta]W[VIBR,{JOINT,{},Line[{n1_,n2_}]},fun_]:=\[Delta]\[Delta][((fun[[n1,2]]-fun[[n2,2]]) . {FX[n1],FY[n1],FZ[n1]})/.DRULE[0]] ; \[Delta]W[VIBR,{SLIDER,{nX_,nY_,nZ_},Point[{n1_}]},fun_]:=\[Delta]\[Delta][((fun[[n1,2]] . {nX,nY,nZ})*FN[n1])/.DRULE[0]] ; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[STAB,{RIGID,anya_,anyb_},fun_]:= \[Delta]W[DISP,{RIGID,anya,anyb},fun]; \[Delta]W[STAB,{JOINT,anya_,anyb_},fun_]:= \[Delta]W[DISP,{JOINT,anya,anyb},fun]; \[Delta]W[STAB,{SLIDER,anya_,anyb_},fun_]:= \[Delta]W[DISP,{SLIDER,anya,anyb},fun]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[NONL,{RIGID,anya_,anyb_},fun_]:= \[Delta]W[DISP,{RIGID,anya,anyb},fun]; \[Delta]W[NONL,{JOINT,anya_,anyb_},fun_]:= \[Delta]W[DISP,{JOINT,anya,anyb},fun]; \[Delta]W[NONL,{SLIDER,anya_,anyb_},fun_]:= \[Delta]W[DISP,{SLIDER,anya,anyb},fun]; (*frictionless contact penalty*) \[Delta]U[DISP,{SLIDER,{eps_,{nX_,nY_,nZ_}},Point[{n1_}]},fun_]:=-(fun[[n1,2]] . {nX,nY,nZ})*(fun[[n1,2]] . {nX,nY,nZ}-Abs[fun[[n1,2]] . {nX,nY,nZ}])/2*eps; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[TMEC,{RIGID,anya_,anyb_},fun_]:= \[Delta]W[DISP,{RIGID,anya,anyb},fun]; \[Delta]W[TMEC,{JOINT,anya_,anyb_},fun_]:= \[Delta]W[DISP,{JOINT,anya,anyb},fun]; \[Delta]W[TMEC,{SLIDER,anya_,anyb_},fun_]:= \[Delta]W[DISP,{SLIDER,anya,anyb},fun]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{BAR,{{EE_},{AA_,iy_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{BAR,{{EE},{AA}},Line[{n1,n2}]},fun]; \[Delta]W[DISP,{BAR,{{EE_},{AA_,iy_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{BAR,{{EE},{AA},{fX,fY,fZ}},Line[{n1,n2}]},fun]; \[Delta]W[DISP,{BAR,{{EE_},{AA_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{BAR,{{EE},{AA},{0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[DISP,{BAR,{{EE_},{AA_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=Module[{nl,r0,h0,ix,ul,xl,x,N2,uX,uY,uZ,u,\[Epsilon]\[Epsilon],NN,\[Delta]wint,\[Delta]wext}, nl={n1,n2}; r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0], L>0&&h>0]; ix=r0/h0; (*shape functions*) xl=fun[[nl,1]] . ix; N2=Inverse[{{1,1},xl}] . {1,x}; {uX,uY,uZ}=N2 . fun[[nl,2]]; (*strain and stress measures*) u=ix . {uX,uY,uZ}; \[Epsilon]\[Epsilon]=\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\); NN=AA EE \[Epsilon]\[Epsilon]; (* virtual work densities*) \[Delta]wint=-\[Delta][\[Epsilon]\[Epsilon]]NN; \[Delta]wext=\[Delta][{uX,uY,uZ}] . {fX,fY,fZ}; h0*(\[Delta]wint+\[Delta]wext)/.x->Mean[xl] ]; (*potential energy version*) \[Delta]U[DISP,{BAR,{{EE_},{AA_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=Module[{nl,r0,h0,ix,ul,xl,x,N2,uX,uY,uZ,u,\[Epsilon]\[Epsilon],NN,uint,uext}, nl={n1,n2}; r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0], L>0&&h>0]; ix=r0/h0; (*shape functions*) xl=fun[[nl,1]] . ix; N2=Inverse[{{1,1},xl}] . {1,x}; {uX,uY,uZ}=N2 . fun[[nl,2]]; (*strain and stress measures*) u=ix . {uX,uY,uZ}; \[Epsilon]\[Epsilon]=\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\); NN=AA EE \[Epsilon]\[Epsilon]; (* virtual work densities*) uint=\[Epsilon]\[Epsilon] NN/2; uext=-{uX,uY,uZ} . {fX,fY,fZ}; h0*(uint+uext)/.x->Mean[xl] ]; (* ::Input::Initialization:: *) (*MEC-E1050 defs*) \[Delta]W[DISP,{BAR,{{EE_},{AA_}},Line[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{BAR,{{EE},{AA},{0,0,0}},Line[{n1,n2,n3}]},fun]; \[Delta]W[DISP,{BAR,{{EE_},{AA_},{fX_,fY_,fZ_}},Line[{n1_,n2_,n3_}]},fun_]:=Module[{r0,h0,ix0,ux,\[Delta]ux,EE1,EE2,EE3,AA1,AA2,AA3,fx1,fx2,fx3,nl,rule}, nl ={n1,n2,n3}; r0=fun[[n3,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0], L>0&&h>0]; ix0=r0/h0; ux[i_]:=ix0 . fun[[nl[[i]],2]]; \[Delta]ux[i_]:=\[Delta][ux[i]]; rule :={{a1_,a2_,a3_}->{a1,a2,a3},{a1_,a2_}->{a1,(a1+a2)/2,a2},a1_->{a1,a1,a1}}; {EE1,EE2,EE3}=EE /.rule; {AA1,AA2,AA3}=AA /.rule; {fx1,fx2,fx3}=ix0 . {fX /.rule,fY /.rule,fZ /.rule}; -(1/(210 h0))(7 fx3 h0^2 \[Delta]ux[1]+184 AA1 EE1 ux[1] \[Delta]ux[1]+94 AA2 EE1 ux[1] \[Delta]ux[1]-19 AA3 EE1 ux[1] \[Delta]ux[1]+94 AA1 EE2 ux[1] \[Delta]ux[1]+176 AA2 EE2 ux[1] \[Delta]ux[1]-18 AA3 EE2 ux[1] \[Delta]ux[1]-19 AA1 EE3 ux[1] \[Delta]ux[1]-18 AA2 EE3 ux[1] \[Delta]ux[1]+16 AA3 EE3 ux[1] \[Delta]ux[1]-228 AA1 EE1 ux[2] \[Delta]ux[1]-104 AA2 EE1 ux[2] \[Delta]ux[1]+24 AA3 EE1 ux[2] \[Delta]ux[1]-104 AA1 EE2 ux[2] \[Delta]ux[1]-128 AA2 EE2 ux[2] \[Delta]ux[1]+8 AA3 EE2 ux[2] \[Delta]ux[1]+24 AA1 EE3 ux[2] \[Delta]ux[1]+8 AA2 EE3 ux[2] \[Delta]ux[1]-60 AA3 EE3 ux[2] \[Delta]ux[1]+44 AA1 EE1 ux[3] \[Delta]ux[1]+10 AA2 EE1 ux[3] \[Delta]ux[1]-5 AA3 EE1 ux[3] \[Delta]ux[1]+10 AA1 EE2 ux[3] \[Delta]ux[1]-48 AA2 EE2 ux[3] \[Delta]ux[1]+10 AA3 EE2 ux[3] \[Delta]ux[1]-5 AA1 EE3 ux[3] \[Delta]ux[1]+10 AA2 EE3 ux[3] \[Delta]ux[1]+44 AA3 EE3 ux[3] \[Delta]ux[1]-14 fx3 h0^2 \[Delta]ux[2]-228 AA1 EE1 ux[1] \[Delta]ux[2]-104 AA2 EE1 ux[1] \[Delta]ux[2]+24 AA3 EE1 ux[1] \[Delta]ux[2]-104 AA1 EE2 ux[1] \[Delta]ux[2]-128 AA2 EE2 ux[1] \[Delta]ux[2]+8 AA3 EE2 ux[1] \[Delta]ux[2]+24 AA1 EE3 ux[1] \[Delta]ux[2]+8 AA2 EE3 ux[1] \[Delta]ux[2]-60 AA3 EE3 ux[1] \[Delta]ux[2]+288 AA1 EE1 ux[2] \[Delta]ux[2]+96 AA2 EE1 ux[2] \[Delta]ux[2]-48 AA3 EE1 ux[2] \[Delta]ux[2]+96 AA1 EE2 ux[2] \[Delta]ux[2]+256 AA2 EE2 ux[2] \[Delta]ux[2]+96 AA3 EE2 ux[2] \[Delta]ux[2]-48 AA1 EE3 ux[2] \[Delta]ux[2]+96 AA2 EE3 ux[2] \[Delta]ux[2]+288 AA3 EE3 ux[2] \[Delta]ux[2]-60 AA1 EE1 ux[3] \[Delta]ux[2]+8 AA2 EE1 ux[3] \[Delta]ux[2]+24 AA3 EE1 ux[3] \[Delta]ux[2]+8 AA1 EE2 ux[3] \[Delta]ux[2]-128 AA2 EE2 ux[3] \[Delta]ux[2]-104 AA3 EE2 ux[3] \[Delta]ux[2]+24 AA1 EE3 ux[3] \[Delta]ux[2]-104 AA2 EE3 ux[3] \[Delta]ux[2]-228 AA3 EE3 ux[3] \[Delta]ux[2]+(-28 fx3 h0^2+AA1 (44 EE1 ux[1]+10 EE2 ux[1]-5 EE3 ux[1]-60 EE1 ux[2]+8 EE2 ux[2]+24 EE3 ux[2]+(16 EE1-18 EE2-19 EE3) ux[3])+2 AA2 (5 EE1 ux[1]-24 EE2 ux[1]+5 EE3 ux[1]+4 EE1 ux[2]-64 EE2 ux[2]-52 EE3 ux[2]+(-9 EE1+88 EE2+47 EE3) ux[3])+AA3 (EE1 (-5 ux[1]+24 ux[2]-19 ux[3])+2 (2 EE3 (11 ux[1]-57 ux[2]+46 ux[3])+EE2 (5 ux[1]-52 ux[2]+47 ux[3])))) \[Delta]ux[3]+7 fx1 h0^2 (-4 \[Delta]ux[1]-2 \[Delta]ux[2]+\[Delta]ux[3])-14 fx2 h0^2 (\[Delta]ux[1]+8 \[Delta]ux[2]+\[Delta]ux[3]))]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[VIBR,{BAR,{{EE_,\[Rho]\[Rho]_},{AA_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[VIBR,{BAR,{{EE,\[Rho]\[Rho]},{AA},{0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{BAR,{{EE_,\[Rho]\[Rho]_},{AA_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=Module[{nl,r0,h0,ix,ul,xl,x,N2,uX,uY,uZ,uX0,uY0,uZ0,uX2,uY2,uZ2,u0,u2,\[Epsilon]\[Epsilon],NN,\[Delta]wint,\[Delta]wext,\[Delta]wine}, nl={n1,n2}; r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0], L>0&&h>0]; ix=r0/h0; (*shape functions*) xl=fun[[nl,1]] . ix; N2=Inverse[{{1,1},xl}] . {1,x}; {uX,uY,uZ}=N2 . fun[[nl,2]] ; {uX0,uY0,uZ0}={uX,uY,uZ}/.DRULE[0]; {uX2,uY2,uZ2}={uX,uY,uZ}/.DRULE[2]; (*strain and stress measures*) u0=ix . {uX0,uY0,uZ0}; u2=ix . {uX2,uY2,uZ2}; \[Epsilon]\[Epsilon]=\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u0\); NN=AA EE \[Epsilon]\[Epsilon]; (* virtual work densities*) \[Delta]wint=-\[Delta][\[Epsilon]\[Epsilon]]NN; \[Delta]wext=\[Delta][{uX0,uY0,uZ0}] . {fX,fY,fZ}; \[Delta]wine=-\[Delta][{uX0,uY0,uZ0}] . {uX2,uY2,uZ2}*AA*\[Rho]\[Rho]; h0/6*{1,4,1} . Map[(\[Delta]wint+\[Delta]wext+\[Delta]wine)/.x->#&,{xl[[1]],Mean[xl],xl[[2]]}] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[STAB,{BAR,{{EE_},{AA_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{BAR,{{EE},{AA},{fX,fY,fZ}},Line[{n1,n2}]},fun]; \[Delta]W[STAB,{BAR,{{EE_},{AA_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{BAR,{{EE},{AA}},Line[{n1,n2}]},fun]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[NONL,{BAR,{{CC_},{AA_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[NONL,{BAR,{{CC},{AA,{0,1,0}},{0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[NONL,{BAR,{{CC_},{AA_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[NONL,{BAR,{{CC},{AA,{0,1,0}},{fX,fY,fZ}},Line[{n1,n2}]},fun]; \[Delta]W[NONL,{BAR,{{CC_},{AA_,iy_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[NONL,{BAR,{{CC},{AA,iy},{0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[NONL,{BAR,{{CC_},{AA_,iy_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=Module[{\[CapitalDelta]h,h0,ix,iz,NN,fx,fy,fz,x,uu,vv,ww,EE,\[Delta]EE,\[Delta]wint,\[Delta]wext}, \[CapitalDelta]h=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[\[CapitalDelta]h . \[CapitalDelta]h], L>0 && h>0]; ix=\[CapitalDelta]h/h0; iz=ix\[Cross]iy; NN= {1-x/h0,x/h0}; fx =ix . {fX,fY,fZ}; fy =iy . {fX,fY,fZ}; fz =iz . {fX,fY,fZ}; uu= NN . {fun[[n1,2]] . ix,fun[[n2,2]] . ix} ; vv= NN . {fun[[n1,2]] . iy,fun[[n2,2]] . iy}; ww= NN . {fun[[n1,2]] . iz,fun[[n2,2]] . iz}; EE= \!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]uu\)+\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\({uu, vv, ww}\)\) . \!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\({uu, vv, ww}\)\)/2; \[Delta]EE=\[Delta][\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]uu\)]+\[Delta]\[Delta][\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\({uu, vv, ww}\)\)] . \!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\({uu, vv, ww}\)\); \[Delta]wint=-\[Delta]EE CC AA EE; \[Delta]wext=\[Delta][{uu,vv,ww}] . { fx,fy,fz}; Return[Integrate[\[Delta]wint+\[Delta]wext,{x,0,h0}]] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[TMEC,{BAR,{{EE_,\[Alpha]\[Alpha]_,kk_},{AA_},{{ss_,\[CurlyTheta]0_}}},Line[node_]},fun_]:=\[Delta]W[TMEC,{BAR,{{EE,\[Alpha]\[Alpha],kk},{AA},{{0,0,0},{ss,\[CurlyTheta]0}}},Line[node]},fun]; \[Delta]W[TMEC,{BAR,{{EE_,\[Alpha]\[Alpha]_,kk_},{AA_},{{fX_,fY_,fZ_},{ss_,\[CurlyTheta]0_}}},Line[node_]},fun_]:=Module[{NN,\[Xi],r,r\[Xi],h0,i\[Xi],s,x,uu,\[CurlyTheta]\[CurlyTheta],F,Q,\[Delta]w,\[Delta]p,AAA,EEE,ffX,ffY,ffZ,kkk,sss,\[Alpha]\[Alpha]\[Alpha]}, (*shape functions*) NN= LAGRANGE[{{Length[node],\[Xi]}}]; (*mapping to material system*) r=\[Xi]*(fun[[Last[node],1]]-fun[[First[node],1]]); r\[Xi]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]r\); h0=Simplify[Sqrt[r\[Xi] . r\[Xi]], L>0&&h>0]; i\[Xi] =r\[Xi]/h0; s=i\[Xi] . r; x=fun[[First[node],1]] . i\[Xi]+s; (*approximation*) uu= i\[Xi] . (NN . fun[[node,2]]); \[CurlyTheta]\[CurlyTheta]= NN . fun[[node,4]]; (*stress resultant*) AAA=If[Head[AA]===Function,AA[x],AA]; EEE=If[Head[EE]===Function,EE[x],EE]; \[Alpha]\[Alpha]\[Alpha]=If[Head[\[Alpha]\[Alpha]]===Function,\[Alpha]\[Alpha][x],\[Alpha]\[Alpha]]; kkk=If[Head[kk]===Function,kk[x],kk]; ffX=If[Head[fX]===Function,fX[x],fX]; ffY=If[Head[fY]===Function,fY[x],fY]; ffZ=If[Head[fZ]===Function,fZ[x],fZ]; sss=If[Head[ss]===Function,ss[x],ss]; F =EEE AAA (\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]uu\)/h0-\[Alpha]\[Alpha]\[Alpha] (\[CurlyTheta]\[CurlyTheta]-\[CurlyTheta]0)); Q=-kkk AAA \!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]\[CurlyTheta]\[CurlyTheta]\)/h0; \[Delta]w=-\[Delta]\[Delta][\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]uu\)/h0] F+\[Delta]\[Delta][uu] {ffX,ffY,ffZ} . i\[Xi]; \[Delta]p=\[Delta]\[Delta][\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]\[CurlyTheta]\[CurlyTheta]\)/h0] Q +\[Delta]\[Delta][\[CurlyTheta]\[CurlyTheta]] sss; Integrate[(\[Delta]w+\[Delta]p) h0,{\[Xi],0,1}] ]; (* ::Input::Initialization:: *) (*MEC-E1050*) \[Delta]W[DISP,{TORSION,{{GG_},{JJ_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{TORSION,{{GG},{JJ},{0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[DISP,{TORSION,{{GG_},{JJ_},{mX_,mY_,mZ_}},Line[{n1_,n2_}]},fun_]:=Module[{nl,r0,h0,ix,xl,x,N2,\[Theta]X,\[Theta]Y,\[Theta]Z,\[Phi],\[Gamma]\[Gamma],MM,\[Delta]wint,\[Delta]wext}, nl={n1,n2}; r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0], L>0&&h>0]; ix=r0/h0; (*shape functions*) xl=fun[[nl,1]] . ix; N2=Inverse[{{1,1},xl}] . {1,x}; {\[Theta]X,\[Theta]Y,\[Theta]Z}=N2 . fun[[nl,3]]; (*strain and stress measures*) \[Phi]=ix . {\[Theta]X,\[Theta]Y,\[Theta]Z}; \[Gamma]\[Gamma]=\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]\); MM=JJ GG \[Gamma]\[Gamma]; (* virtual work densities*) \[Delta]wint=-\[Delta][\[Gamma]\[Gamma]]MM; \[Delta]wext=\[Delta][{\[Theta]X,\[Theta]Y,\[Theta]Z}] . {mX,mY,mZ}; h0*(\[Delta]wint+\[Delta]wext)/.x->Mean[xl] ]; (* ::Input::Initialization:: *) (*MEC-8001 defs*) \[Delta]W[VIBR,{TORSION,{{GG_,\[Rho]\[Rho]_},{JJ_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[VIBR,{TORSION,{{GG,\[Rho]\[Rho]},{JJ},{0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{TORSION,{{GG_,\[Rho]\[Rho]_},{JJ_},{mX_,mY_,mZ_}},Line[{n1_,n2_}]},fun_]:=Module[{nl,r0,h0,ix,xl,x,N2,\[Theta]X,\[Theta]Y,\[Theta]Z,\[Theta]X0,\[Theta]Y0,\[Theta]Z0,\[Theta]X2,\[Theta]Y2,\[Theta]Z2,\[Phi]0,\[Phi]2,\[Gamma]\[Gamma],MM,\[Delta]wint,\[Delta]wext,\[Delta]wine}, nl={n1,n2}; r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0], L>0&&h>0]; ix=r0/h0; (*shape functions*) xl=fun[[nl,1]] . ix; N2=Inverse[{{1,1},xl}] . {1,x}; {\[Theta]X,\[Theta]Y,\[Theta]Z}=N2 . fun[[nl,3]]; {\[Theta]X0,\[Theta]Y0,\[Theta]Z0}={\[Theta]X,\[Theta]Y,\[Theta]Z}/.DRULE[0]; {\[Theta]X2,\[Theta]Y2,\[Theta]Z2}={\[Theta]X,\[Theta]Y,\[Theta]Z}/.DRULE[2]; (*strain and stress measures*) \[Phi]0=ix . {\[Theta]X0,\[Theta]Y0,\[Theta]Z0}; \[Phi]2=ix . {\[Theta]X2,\[Theta]Y2,\[Theta]Z2}; \[Gamma]\[Gamma]=\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]0\); MM=JJ GG \[Gamma]\[Gamma]; (* virtual work densities*) \[Delta]wint=-\[Delta][\[Gamma]\[Gamma]]MM; \[Delta]wext=\[Delta][{\[Theta]X0,\[Theta]Y0,\[Theta]Z0}] . {mX,mY,mZ}; \[Delta]wine=-\[Delta][{\[Theta]X0,\[Theta]Y0,\[Theta]Z0}] . {\[Theta]X2,\[Theta]Y2,\[Theta]Z2}*JJ*\[Rho]\[Rho]; h0/6*{1,4,1} . Map[(\[Delta]wint+\[Delta]wext+\[Delta]wine)/.x->#&,{xl[[1]],Mean[xl],xl[[2]]}] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[STAB,{TORSION,{{GG_},{JJ_},{mx_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[DISP,{TORSION,{{GG},{JJ},{mx}},Line[{n1,n2}]},fun]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[NONL,{TORSION,anya_,anyb_},fun_]:=\[Delta]W[DISP,{TORSION,anya,anyb},fun]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{BENDING,{{EE_},{Iyy_,Izz_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,0},{0,Iyy,Izz,{0,1,0}},{0,0,0,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BENDING,{{EE_},{Iyy_,Izz_,iy0_},{fX_,fY_,fZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,0},{0,Iyy,Izz,iy0},{fX,fY,fZ,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BENDING,{{EE_},{Iyy_,Izz_},{fX_,fY_,fZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,0},{0,Iyy,Izz,{0,1,0}},{fX,fY,fZ,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BENDING,{{EE_},{Iyy_,Izz_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,0},{0,Iyy,Izz,{0,1,0}},{fX,fY,fZ,mX,mY,mZ}},Line[node]},fun]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[VIBR,{BENDING,{{EE_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[VIBR,{BEAM,{{EE,0,\[Rho]\[Rho]},{AA,Iyy,Izz,{0,1,0}},{0,0,0,0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{BENDING,{{EE_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[VIBR,{BEAM,{{EE,0,\[Rho]\[Rho]},{AA,Iyy,Izz,{0,1,0}},{fX,fY,fZ,0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{BENDING,{{EE_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[VIBR,{BEAM,{{EE,0,\[Rho]\[Rho]},{AA,Iyy,Izz,{0,1,0}},{fX,fY,fZ,mX,mY,mZ}},Line[{n1,n2}]},fun]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[NONL,{BENDING,anya_,anyb_},fun_]:=\[Delta]W[DISP,{BENDING,anya,anyb},fun]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001|1005 Bernoulli beam defs*) \[Delta]W[DISP,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,GG},{AA,Iyy,Izz,{0,1,0}},{0,0,0,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_,iy0_},{fX_,fY_,fZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,GG},{AA,Iyy,Izz,iy0},{fX,fY,fZ,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_,iy0_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,GG},{AA,Iyy,Izz,iy0},{0,0,0,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_},{fX_,fY_,fZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,GG},{AA,Iyy,Izz,{0,1,0}},{fX,fY,fZ,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,GG},{AA,Iyy,Izz,{0,1,0}},{fX,fY,fZ,mX,mY,mZ}},Line[node]},fun]; \[Delta]W[DISP,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_,iy0_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Line[{n1_,n2_}]},fun_]:= Module[{r0,h0,h\[Alpha]0,i\[Alpha]0,ix0,iz0,ux,uy ,uz ,\[Theta]x ,\[Theta]y ,\[Theta]z ,\[Delta]ux ,\[Delta]uy,\[Delta]uz,\[Delta]\[Theta]x,\[Delta]\[Theta]y,\[Delta]\[Theta]z,fx1,fx2,fy1,fy2,fz1,fz2,mx1,mx2,my1,my2,mz1,mz2,EEm,GGm,AAm,Iyym,Izzm}, (*mapping*) r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; ix0=r0/h0; iz0=ix0\[Cross]iy0; {ux[1],uy[1],uz[1]}={ix0,iy0,iz0} . fun[[n1,2]]; {ux[2],uy[2],uz[2]}={ix0,iy0,iz0} . fun[[n2,2]]; {\[Theta]x[1],\[Theta]y[1],\[Theta]z[1]}={ix0,iy0,iz0} . fun[[n1,3]]; {\[Theta]x[2],\[Theta]y[2],\[Theta]z[2]}={ix0,iy0,iz0} . fun[[n2,3]]; {\[Delta]ux[1],\[Delta]uy[1],\[Delta]uz[1]}=\[Delta][{ux[1],uy[1],uz[1]}]; {\[Delta]ux[2],\[Delta]uy[2],\[Delta]uz[2]}=\[Delta][{ux[2],uy[2],uz[2]}]; {\[Delta]\[Theta]x[1],\[Delta]\[Theta]y[1],\[Delta]\[Theta]z[1]}=\[Delta][{\[Theta]x[1],\[Theta]y[1],\[Theta]z[1]}]; {\[Delta]\[Theta]x[2],\[Delta]\[Theta]y[2],\[Delta]\[Theta]z[2]}=\[Delta][{\[Theta]x[2],\[Theta]y[2],\[Theta]z[2]}]; EEm={1,1} . ({1,1}*EE)/2; GGm={1,1} . ({1,1}*GG)/2; AAm={1,1} . ({1,1}*AA)/2; Iyym={1,1} . ({1,1}*Iyy)/2; Izzm={1,1} . ({1,1}*Izz)/2; {fx1,fx2}=ix0 . {{1,1}*fX,{1,1}*fY,{1,1}*fZ}; {fy1,fy2}=iy0 . {{1,1}*fX,{1,1}*fY,{1,1}*fZ}; {fz1,fz2}=iz0 . {{1,1}*fX,{1,1}*fY,{1,1}*fZ}; {mx1,mx2}=ix0 . {{1,1}*mX,{1,1}*mY,{1,1}*mZ}; {my1,my2}=iy0 . {{1,1}*mX,{1,1}*mY,{1,1}*mZ}; {mz1,mz2}=iz0 . {{1,1}*mX,{1,1}*mY,{1,1}*mZ}; 1/(60 h0^3) (-60 AAm EEm h0^2 ux[1] \[Delta]ux[1]+60 AAm EEm h0^2 ux[2] \[Delta]ux[1]+60 AAm EEm h0^2 ux[1] \[Delta]ux[2]-60 AAm EEm h0^2 ux[2] \[Delta]ux[2]+10 fx1 h0^4 (2 \[Delta]ux[1]+\[Delta]ux[2])+10 fx2 h0^4 (\[Delta]ux[1]+2 \[Delta]ux[2])+21 fy1 h0^4 \[Delta]uy[1]+9 fy2 h0^4 \[Delta]uy[1]-30 h0^3 mz1 \[Delta]uy[1]-30 h0^3 mz2 \[Delta]uy[1]-720 EEm Izzm uy[1] \[Delta]uy[1]+720 EEm Izzm uy[2] \[Delta]uy[1]+9 fy1 h0^4 \[Delta]uy[2]+21 fy2 h0^4 \[Delta]uy[2]+30 h0^3 mz1 \[Delta]uy[2]+30 h0^3 mz2 \[Delta]uy[2]+720 EEm Izzm uy[1] \[Delta]uy[2]-720 EEm Izzm uy[2] \[Delta]uy[2]+21 fz1 h0^4 \[Delta]uz[1]+9 fz2 h0^4 \[Delta]uz[1]+30 h0^3 my1 \[Delta]uz[1]+30 h0^3 my2 \[Delta]uz[1]-720 EEm Iyym uz[1] \[Delta]uz[1]+720 EEm Iyym uz[2] \[Delta]uz[1]+9 fz1 h0^4 \[Delta]uz[2]+21 fz2 h0^4 \[Delta]uz[2]-30 h0^3 my1 \[Delta]uz[2]-30 h0^3 my2 \[Delta]uz[2]+720 EEm Iyym uz[1] \[Delta]uz[2]-720 EEm Iyym uz[2] \[Delta]uz[2]+20 h0^4 mx1 \[Delta]\[Theta]x[1]+10 h0^4 mx2 \[Delta]\[Theta]x[1]+10 h0^4 mx1 \[Delta]\[Theta]x[2]+20 h0^4 mx2 \[Delta]\[Theta]x[2]-3 fz1 h0^5 \[Delta]\[Theta]y[1]-2 fz2 h0^5 \[Delta]\[Theta]y[1]+5 h0^4 my1 \[Delta]\[Theta]y[1]-5 h0^4 my2 \[Delta]\[Theta]y[1]+360 EEm h0 Iyym uz[1] \[Delta]\[Theta]y[1]-360 EEm h0 Iyym uz[2] \[Delta]\[Theta]y[1]+2 fz1 h0^5 \[Delta]\[Theta]y[2]+3 fz2 h0^5 \[Delta]\[Theta]y[2]-5 h0^4 my1 \[Delta]\[Theta]y[2]+5 h0^4 my2 \[Delta]\[Theta]y[2]+360 EEm h0 Iyym uz[1] \[Delta]\[Theta]y[2]-360 EEm h0 Iyym uz[2] \[Delta]\[Theta]y[2]+3 fy1 h0^5 \[Delta]\[Theta]z[1]+2 fy2 h0^5 \[Delta]\[Theta]z[1]+5 h0^4 mz1 \[Delta]\[Theta]z[1]-5 h0^4 mz2 \[Delta]\[Theta]z[1]-360 EEm h0 Izzm uy[1] \[Delta]\[Theta]z[1]+360 EEm h0 Izzm uy[2] \[Delta]\[Theta]z[1]-2 fy1 h0^5 \[Delta]\[Theta]z[2]-3 fy2 h0^5 \[Delta]\[Theta]z[2]-5 h0^4 mz1 \[Delta]\[Theta]z[2]+5 h0^4 mz2 \[Delta]\[Theta]z[2]-360 EEm h0 Izzm uy[1] \[Delta]\[Theta]z[2]+360 EEm h0 Izzm uy[2] \[Delta]\[Theta]z[2]-60 GGm h0^2 Iyym \[Delta]\[Theta]x[1] \[Theta]x[1]-60 GGm h0^2 Izzm \[Delta]\[Theta]x[1] \[Theta]x[1]+60 GGm h0^2 Iyym \[Delta]\[Theta]x[2] \[Theta]x[1]+60 GGm h0^2 Izzm \[Delta]\[Theta]x[2] \[Theta]x[1]+60 GGm h0^2 Iyym \[Delta]\[Theta]x[1] \[Theta]x[2]+60 GGm h0^2 Izzm \[Delta]\[Theta]x[1] \[Theta]x[2]-60 GGm h0^2 Iyym \[Delta]\[Theta]x[2] \[Theta]x[2]-60 GGm h0^2 Izzm \[Delta]\[Theta]x[2] \[Theta]x[2]+360 EEm h0 Iyym \[Delta]uz[1] \[Theta]y[1]-360 EEm h0 Iyym \[Delta]uz[2] \[Theta]y[1]-240 EEm h0^2 Iyym \[Delta]\[Theta]y[1] \[Theta]y[1]-120 EEm h0^2 Iyym \[Delta]\[Theta]y[2] \[Theta]y[1]+360 EEm h0 Iyym \[Delta]uz[1] \[Theta]y[2]-360 EEm h0 Iyym \[Delta]uz[2] \[Theta]y[2]-120 EEm h0^2 Iyym \[Delta]\[Theta]y[1] \[Theta]y[2]-240 EEm h0^2 Iyym \[Delta]\[Theta]y[2] \[Theta]y[2]-360 EEm h0 Izzm \[Delta]uy[1] \[Theta]z[1]+360 EEm h0 Izzm \[Delta]uy[2] \[Theta]z[1]-240 EEm h0^2 Izzm \[Delta]\[Theta]z[1] \[Theta]z[1]-120 EEm h0^2 Izzm \[Delta]\[Theta]z[2] \[Theta]z[1]-360 EEm h0 Izzm \[Delta]uy[1] \[Theta]z[2]+360 EEm h0 Izzm \[Delta]uy[2] \[Theta]z[2]-120 EEm h0^2 Izzm \[Delta]\[Theta]z[1] \[Theta]z[2]-240 EEm h0^2 Izzm \[Delta]\[Theta]z[2] \[Theta]z[2])]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001|E1005 Timoshenko beam *) \[Delta]W[DISP,{BEAMT,{{EE_,GG_},{AA_,Iyy_,Izz_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAMT,{{EE,GG},{AA,0,0,Iyy,Izz,0,{0,1,0}},{0,0,0,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BEAMT,{{EE_,GG_},{AA_,Iyy_,Izz_,iy0_},{fX_,fY_,fZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAMT,{{EE,GG},{AA,0,0,Iyy,Izz,0,iy0},{fX,fY,fZ,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BEAMT,{{EE_,GG_},{AA_,Iyy_,Izz_,iy0_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAMT,{{EE,GG},{AA,0,0,Iyy,Izz,0,iy0},{0,0,0,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BEAMT,{{EE_,GG_},{AA_,Iyy_,Izz_},{fX_,fY_,fZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAMT,{{EE,GG},{AA,0,0,Iyy,Izz,0,{0,1,0}},{fX,fY,fZ,0,0,0}},Line[node]},fun]; \[Delta]W[DISP,{BEAMT,{{EE_,GG_},{AA_,Iyy_,Izz_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Line[node_]},fun_]:=\[Delta]W[DISP,{BEAMT,{{EE,GG},{AA,0,0,Iyy,Izz,0,{0,1,0}},{fX,fY,fZ,mX,mY,mZ}},Line[node]},fun]; \[Delta]W[DISP,{BEAMT,{{EE_,GG_},{AA_,Sy_,Sz_,Iyy_,Izz_,Iyz_,iy0_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Line[{n1_,n2_}]},fun_]:= Module[{r0,h0,h\[Alpha]0,i\[Alpha]0,ix0,iz0,ux1,uy1,uz1 ,\[Theta]x1 ,\[Theta]y1 ,\[Theta]z1 ,\[Delta]ux1 ,\[Delta]uy1,\[Delta]uz1,\[Delta]\[Theta]x1,\[Delta]\[Theta]y1,\[Delta]\[Theta]z1,ux2,uy2,uz2 ,\[Theta]x2 ,\[Theta]y2 ,\[Theta]z2,\[Delta]ux2 ,\[Delta]uy2,\[Delta]uz2,\[Delta]\[Theta]x2,\[Delta]\[Theta]y2,\[Delta]\[Theta]z2,fXm,fYm,fZm,mXm,mYm,mZm,fxm,fym,fzm,mxm,mym,mzm,EEm,GGm,AAm,Sym,Szm,Iyym,Izzm,Iyzm,Irrm,rule,Irr}, (*mapping*) r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; ix0=r0/h0; iz0=ix0\[Cross]iy0; {ux1,uy1,uz1}={ix0,iy0,iz0} . fun[[n1,2]]; {ux2,uy2,uz2}={ix0,iy0,iz0} . fun[[n2,2]]; {\[Theta]x1,\[Theta]y1,\[Theta]z1}={ix0,iy0,iz0} . fun[[n1,3]]; {\[Theta]x2,\[Theta]y2,\[Theta]z2}={ix0,iy0,iz0} . fun[[n2,3]]; {\[Delta]ux1,\[Delta]uy1,\[Delta]uz1}=\[Delta][{ux1,uy1,uz1}]; {\[Delta]ux2,\[Delta]uy2,\[Delta]uz2}=\[Delta][{ux2,uy2,uz2}]; {\[Delta]\[Theta]x1,\[Delta]\[Theta]y1,\[Delta]\[Theta]z1}=\[Delta][{\[Theta]x1,\[Theta]y1,\[Theta]z1}]; {\[Delta]\[Theta]x2,\[Delta]\[Theta]y2,\[Delta]\[Theta]z2}=\[Delta][{\[Theta]x2,\[Theta]y2,\[Theta]z2}]; rule :={{a1_,a2_,a3_}:>Mean[{a1,a2,a3}],{a1_,a2_}:>Mean[{a1,a2}],a1_:>a1}; EEm=EE /.rule; GGm=GG/.rule; AAm=AA /.rule; Sym=Sy /.rule; Szm=Sz /.rule; Iyym=Iyy/.rule; Izzm=Izz/.rule; Iyzm=Iyz/.rule; Irrm=Iyym+Izzm; {fXm,fYm,fZm}={fX /.rule, fY /.rule,fZ /.rule}; {mXm,mYm,mZm}={mX /.rule, mY /.rule,mZ /.rule}; fxm=ix0 . {fXm,fYm,fZm}; fym=iy0 . {fXm,fYm,fZm}; fzm=iz0 . {fXm,fYm,fZm}; mxm=ix0 . {mXm,mYm,mZm}; mym=iy0 . {mXm,mYm,mZm}; mzm=iz0 . {mXm,mYm,mZm}; -((-6 (AAm^3 GGm^2 h0^4+12 AAm^2 EEm GGm h0^2 (Iyym+Izzm)-144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm))-12 AAm EEm (12 EEm (Iyzm^2-Iyym Izzm)+GGm h0^2 (Sym^2+Szm^2))) \[Delta]ux1 (fxm h0^2+2 EEm (AAm (-ux1+ux2)-Sym \[Theta]y1+Sym \[Theta]y2+Szm \[Theta]z1-Szm \[Theta]z2))-6 (AAm^3 GGm^2 h0^4+12 AAm^2 EEm GGm h0^2 (Iyym+Izzm)-144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm))-12 AAm EEm (12 EEm (Iyzm^2-Iyym Izzm)+GGm h0^2 (Sym^2+Szm^2))) \[Delta]ux2 (fxm h0^2+2 EEm (AAm (ux1-ux2)+Sym \[Theta]y1-Sym \[Theta]y2-Szm \[Theta]z1+Szm \[Theta]z2))-6 \[Delta]\[Theta]x2 (AAm^3 GGm^2 h0^4 (h0^2 mxm+2 GGm Irrm (\[Theta]x1-\[Theta]x2))-12 AAm EEm (GGm h0^2 (2 h0 (Iyzm mym Sym+Iyym mzm Sym+Izzm mym Szm+Iyzm mzm Szm)+h0^2 mxm (Sym^2+Szm^2)+2 GGm ((Irrm+Iyym) Sym^2+2 Iyzm Sym Szm+(Irrm+Izzm) Szm^2) (\[Theta]x1-\[Theta]x2))+12 EEm (Iyzm^2-Iyym Izzm) (h0^2 mxm+2 GGm (-Sym uy1+Sym uy2+Szm uz1-Szm uz2+Irrm \[Theta]x1-Irrm \[Theta]x2)-GGm h0 (Szm (\[Theta]y1+\[Theta]y2)+Sym (\[Theta]z1+\[Theta]z2))))+24 EEm (fxm GGm h0^3 ((-Iyym+Izzm) Sym Szm+Iyzm (Sym-Szm) (Sym+Szm))+GGm h0^2 (Sym^2+Szm^2) (h0 (mzm Sym+mym Szm)+GGm (Sym^2+Szm^2) (\[Theta]x1-\[Theta]x2))+6 EEm (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (2 GGm (Sym (uy1-uy2)-Szm uz1+Szm uz2-Irrm \[Theta]x1+Irrm \[Theta]x2)+h0 (-h0 mxm+GGm Szm (\[Theta]y1+\[Theta]y2)+GGm Sym (\[Theta]z1+\[Theta]z2))))-2 AAm^2 GGm h0^2 (GGm h0^2 (h0 (mzm Sym+mym Szm)+GGm (Sym^2+Szm^2) (\[Theta]x1-\[Theta]x2))-6 EEm (h0^2 (Iyym+Izzm) mxm+2 GGm (Iyzm Szm (uy1-uy2)+Izzm Sym (-uy1+uy2)+Iyym Szm (uz1-uz2)+Iyzm Sym (-uz1+uz2)+Irrm Iyym (\[Theta]x1-\[Theta]x2)+Irrm Izzm (\[Theta]x1-\[Theta]x2))+GGm h0 (Iyzm Sym (\[Theta]y1+\[Theta]y2)-Iyym Szm (\[Theta]y1+\[Theta]y2)-Izzm Sym (\[Theta]z1+\[Theta]z2)+Iyzm Szm (\[Theta]z1+\[Theta]z2)))))-\[Delta]\[Theta]y2 (AAm^3 GGm^2 h0^3 (fzm h0^4+12 EEm (h0 Sym (ux1-ux2)+6 Iyzm (uy1-uy2)+6 Iyym (uz1-uz2)-2 h0 Iyym (\[Theta]y1+2 \[Theta]y2)+2 h0 Iyzm (\[Theta]z1+2 \[Theta]z2)))-144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (fzm h0^3+6 (h0^2 mym+GGm h0 Szm (\[Theta]x1-\[Theta]x2)+2 EEm (Sym ux1-Sym ux2+Iyym \[Theta]y1-Iyym \[Theta]y2-Iyzm \[Theta]z1+Iyzm \[Theta]z2)))+12 AAm EEm (-GGm h0^4 (fxm (-6 Izzm Sym+6 Iyzm Szm)+6 Sym (mym Sym-mzm Szm)+fzm h0 (Sym^2+Szm^2))+144 EEm^2 (Iyzm^2-Iyym Izzm) (Sym (-ux1+ux2)+Iyym (-\[Theta]y1+\[Theta]y2)+Iyzm (\[Theta]z1-\[Theta]z2))-12 EEm h0 (fzm h0^2 (Iyzm^2-Iyym Izzm)+6 GGm (Szm (Iyym Szm (uz1-uz2)+2 Iyzm Sym (-uz1+uz2)+Iyzm^2 (\[Theta]x1-\[Theta]x2))+Izzm (Sym^2 (uz1-uz2)+Iyym Szm (-\[Theta]x1+\[Theta]x2)))+h0 (6 Iyzm^2 mym+GGm Sym (Sym^2+Szm^2) (ux1-ux2)-3 GGm Izzm Sym^2 (\[Theta]y1+\[Theta]y2)-Iyym (6 Izzm mym+GGm Sym^2 (-\[Theta]y1+\[Theta]y2)+2 GGm Szm^2 (\[Theta]y1+2 \[Theta]y2))+GGm Iyzm (6 Sym Szm (\[Theta]y1+\[Theta]y2)+Sym^2 (-\[Theta]z1+\[Theta]z2)+Szm^2 (-\[Theta]z1+\[Theta]z2)))))+6 AAm^2 GGm h0 (fxm GGm h0^5 Sym+24 EEm^2 (-6 (Iyzm^2-Iyym Izzm) (uz1-uz2)+h0 (Iyym Sym (ux1-ux2)+Izzm Sym (ux1-ux2)+Iyym^2 (\[Theta]y1-\[Theta]y2)+3 Iyzm^2 (\[Theta]y1+\[Theta]y2)-2 Iyym Izzm (\[Theta]y1+2 \[Theta]y2)+Iyym Iyzm (-\[Theta]z1+\[Theta]z2)+Iyzm Izzm (-\[Theta]z1+\[Theta]z2)))+2 EEm h0^2 (fzm h0^2 (Iyym+Izzm)+6 GGm Sym (Szm (-uy1+uy2)+Sym (-uz1+uz2))-6 GGm (Iyzm Sym-Iyym Szm) (\[Theta]x1-\[Theta]x2)+3 h0 (2 Iyym mym-2 Iyzm mzm+GGm Sym (Sym (\[Theta]y1+\[Theta]y2)-Szm (\[Theta]z1+\[Theta]z2))))))+\[Delta]\[Theta]y1 (-144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (fzm h0^3-6 (h0^2 mym+GGm h0 Szm (\[Theta]x1-\[Theta]x2)+2 EEm (-Sym ux1+Sym ux2-Iyym \[Theta]y1+Iyym \[Theta]y2+Iyzm \[Theta]z1-Iyzm \[Theta]z2)))+AAm^3 GGm^2 h0^3 (fzm h0^4+12 EEm (-6 Iyzm uy1+6 Iyzm uy2-6 Iyym uz1+6 Iyym uz2+h0 (Sym (ux1-ux2)+2 Iyym (2 \[Theta]y1+\[Theta]y2)-2 Iyzm (2 \[Theta]z1+\[Theta]z2))))+12 AAm EEm (-GGm h0^4 (6 fxm (Izzm Sym-Iyzm Szm)+6 Sym (-mym Sym+mzm Szm)+fzm h0 (Sym^2+Szm^2))+144 EEm^2 (Iyzm^2-Iyym Izzm) (Sym (-ux1+ux2)+Iyym (-\[Theta]y1+\[Theta]y2)+Iyzm (\[Theta]z1-\[Theta]z2))-12 EEm h0 (fzm h0^2 (Iyzm^2-Iyym Izzm)+6 GGm (Izzm (Sym^2 (-uz1+uz2)+Iyym Szm (\[Theta]x1-\[Theta]x2))+Szm (2 Iyzm Sym (uz1-uz2)+Iyym Szm (-uz1+uz2)+Iyzm^2 (-\[Theta]x1+\[Theta]x2)))+h0 (-6 Iyzm^2 mym+6 Iyym Izzm mym+GGm Sym (Sym^2+Szm^2) (ux1-ux2)+3 GGm Izzm Sym^2 (\[Theta]y1+\[Theta]y2)+GGm Iyym (Sym^2 (\[Theta]y1-\[Theta]y2)+2 Szm^2 (2 \[Theta]y1+\[Theta]y2))+GGm Iyzm (-6 Sym Szm (\[Theta]y1+\[Theta]y2)+Sym^2 (-\[Theta]z1+\[Theta]z2)+Szm^2 (-\[Theta]z1+\[Theta]z2)))))+6 AAm^2 GGm h0 (-fxm GGm h0^5 Sym+24 EEm^2 (6 (Iyzm^2-Iyym Izzm) (uz1-uz2)+h0 (Iyym^2 (\[Theta]y1-\[Theta]y2)-3 Iyzm^2 (\[Theta]y1+\[Theta]y2)+Izzm (Sym ux1-Sym ux2-Iyzm \[Theta]z1+Iyzm \[Theta]z2)+Iyym (Sym ux1-Sym ux2+4 Izzm \[Theta]y1+2 Izzm \[Theta]y2-Iyzm \[Theta]z1+Iyzm \[Theta]z2)))+2 EEm h0^2 (fzm h0^2 (Iyym+Izzm)+6 GGm Sym (Szm (uy1-uy2)+Sym (uz1-uz2))+6 GGm (Iyzm Sym-Iyym Szm) (\[Theta]x1-\[Theta]x2)+3 h0 (-2 Iyym mym+2 Iyzm mzm+GGm Sym (-Sym (\[Theta]y1+\[Theta]y2)+Szm (\[Theta]z1+\[Theta]z2))))))+6 \[Delta]uz2 (144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (fzm h0^2+2 GGm Szm (\[Theta]x1-\[Theta]x2))+12 AAm EEm (GGm h0^3 (fxm (-2 Izzm Sym+2 Iyzm Szm)-2 Szm (mzm Sym+mym Szm)+fzm h0 (Sym^2+Szm^2))+12 EEm (fzm h0^2 (Iyzm^2-Iyym Izzm)+GGm (2 Iyym Izzm Szm (-\[Theta]x1+\[Theta]x2)+Izzm Sym^2 (2 uz1-2 uz2-h0 (\[Theta]y1+\[Theta]y2))+Szm (2 Iyzm^2 (\[Theta]x1-\[Theta]x2)+Iyym Szm (2 uz1-2 uz2-h0 (\[Theta]y1+\[Theta]y2))+2 Iyzm Sym (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2))))))+AAm^3 GGm^2 h0^2 (-fzm h0^4+2 h0^3 mym+24 EEm (Iyzm (-uy1+uy2)+Iyym (-uz1+uz2))+12 EEm h0 (Iyym (\[Theta]y1+\[Theta]y2)-Iyzm (\[Theta]z1+\[Theta]z2)))-2 AAm^2 GGm (fxm GGm h0^5 Sym-72 EEm^2 (Iyzm^2-Iyym Izzm) (2 uz1-2 uz2-h0 (\[Theta]y1+\[Theta]y2))+6 EEm h0^2 (fzm h0^2 (Iyym+Izzm)+2 GGm Sym (Szm (-uy1+uy2)+Sym (-uz1+uz2))-2 GGm (Iyzm Sym-Iyym Szm) (\[Theta]x1-\[Theta]x2)-h0 (2 Izzm mym+2 Iyzm mzm+GGm Sym (-Sym (\[Theta]y1+\[Theta]y2)+Szm (\[Theta]z1+\[Theta]z2))))))+6 \[Delta]uz1 (144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (fzm h0^2+2 GGm Szm (-\[Theta]x1+\[Theta]x2))+12 AAm EEm (GGm h0^3 (2 fxm (Izzm Sym-Iyzm Szm)+2 Szm (mzm Sym+mym Szm)+fzm h0 (Sym^2+Szm^2))+12 EEm (fzm h0^2 (Iyzm^2-Iyym Izzm)+GGm (2 Iyym Izzm Szm (\[Theta]x1-\[Theta]x2)+Izzm Sym^2 (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2))+Szm (2 Iyzm^2 (-\[Theta]x1+\[Theta]x2)-2 Iyzm Sym (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2))+Iyym Szm (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2))))))-AAm^3 GGm^2 h0^2 (fzm h0^4+2 h0^3 mym+24 EEm (Iyzm (-uy1+uy2)+Iyym (-uz1+uz2))+12 EEm h0 (Iyym (\[Theta]y1+\[Theta]y2)-Iyzm (\[Theta]z1+\[Theta]z2)))-2 AAm^2 GGm (-fxm GGm h0^5 Sym+72 EEm^2 (Iyzm^2-Iyym Izzm) (2 uz1-2 uz2-h0 (\[Theta]y1+\[Theta]y2))+6 EEm h0^2 (fzm h0^2 (Iyym+Izzm)+2 GGm Sym (Szm (uy1-uy2)+Sym (uz1-uz2))+2 GGm (Iyzm Sym-Iyym Szm) (\[Theta]x1-\[Theta]x2)+h0 (2 Izzm mym+2 Iyzm mzm+GGm Sym (-Sym (\[Theta]y1+\[Theta]y2)+Szm (\[Theta]z1+\[Theta]z2))))))-6 \[Delta]\[Theta]x1 (AAm^3 GGm^2 h0^4 (h0^2 mxm+2 GGm Irrm (-\[Theta]x1+\[Theta]x2))-12 AAm EEm (GGm h0^2 (-2 h0 (Iyzm mym Sym+Iyym mzm Sym+Izzm mym Szm+Iyzm mzm Szm)+h0^2 mxm (Sym^2+Szm^2)-2 GGm ((Irrm+Iyym) Sym^2+2 Iyzm Sym Szm+(Irrm+Izzm) Szm^2) (\[Theta]x1-\[Theta]x2))+12 EEm (Iyzm^2-Iyym Izzm) (2 GGm (Sym (uy1-uy2)-Szm uz1+Szm uz2-Irrm \[Theta]x1+Irrm \[Theta]x2)+h0 (h0 mxm+GGm Szm (\[Theta]y1+\[Theta]y2)+GGm Sym (\[Theta]z1+\[Theta]z2))))-24 EEm (fxm GGm h0^3 ((-Iyym+Izzm) Sym Szm+Iyzm (Sym-Szm) (Sym+Szm))+GGm h0^2 (Sym^2+Szm^2) (h0 (mzm Sym+mym Szm)+GGm (Sym^2+Szm^2) (\[Theta]x1-\[Theta]x2))+6 EEm (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (2 GGm (Sym (uy1-uy2)-Szm uz1+Szm uz2-Irrm \[Theta]x1+Irrm \[Theta]x2)+h0 (h0 mxm+GGm Szm (\[Theta]y1+\[Theta]y2)+GGm Sym (\[Theta]z1+\[Theta]z2))))+2 AAm^2 GGm h0^2 (GGm h0^2 (h0 (mzm Sym+mym Szm)+GGm (Sym^2+Szm^2) (\[Theta]x1-\[Theta]x2))+6 EEm (h0^2 (Iyym+Izzm) mxm+2 GGm (Izzm Sym (uy1-uy2)+Iyzm Szm (-uy1+uy2)+Iyzm Sym (uz1-uz2)+Iyym Szm (-uz1+uz2)+Irrm Iyym (-\[Theta]x1+\[Theta]x2)+Irrm Izzm (-\[Theta]x1+\[Theta]x2))+GGm h0 (Iyym Szm (\[Theta]y1+\[Theta]y2)+Izzm Sym (\[Theta]z1+\[Theta]z2)-Iyzm (Sym (\[Theta]y1+\[Theta]y2)+Szm (\[Theta]z1+\[Theta]z2))))))+\[Delta]\[Theta]z1 (144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (fym h0^3+6 (h0^2 mzm+GGm h0 Sym (\[Theta]x1-\[Theta]x2)+2 EEm (Szm ux1-Szm ux2+Iyzm \[Theta]y1-Iyzm \[Theta]y2-Izzm \[Theta]z1+Izzm \[Theta]z2)))-AAm^3 GGm^2 h0^3 (fym h0^4+12 EEm (-6 Izzm uy1+6 Izzm uy2-6 Iyzm uz1+6 Iyzm uz2+h0 (Szm (ux1-ux2)+2 Iyzm (2 \[Theta]y1+\[Theta]y2)-2 Izzm (2 \[Theta]z1+\[Theta]z2))))+6 AAm^2 GGm h0 (fxm GGm h0^5 Szm-24 EEm^2 (6 (Iyzm^2-Iyym Izzm) (uy1-uy2)+h0 (Iyym Szm (ux1-ux2)+Izzm Szm (ux1-ux2)+Iyym Iyzm (\[Theta]y1-\[Theta]y2)+Iyzm Izzm (\[Theta]y1-\[Theta]y2)+Izzm^2 (-\[Theta]z1+\[Theta]z2)+3 Iyzm^2 (\[Theta]z1+\[Theta]z2)-2 Iyym Izzm (2 \[Theta]z1+\[Theta]z2)))-2 EEm h0^2 (fym h0^2 (Iyym+Izzm)+6 GGm Szm (Szm (uy1-uy2)+Sym (uz1-uz2))+6 GGm (Izzm Sym-Iyzm Szm) (\[Theta]x1-\[Theta]x2)+3 h0 (-2 Iyzm mym+2 Izzm mzm+GGm Szm (-Sym (\[Theta]y1+\[Theta]y2)+Szm (\[Theta]z1+\[Theta]z2)))))+12 AAm EEm (GGm h0^4 (fxm (-6 Iyzm Sym+6 Iyym Szm)+6 Szm (-mym Sym+mzm Szm)+fym h0 (Sym^2+Szm^2))+144 EEm^2 (Iyzm^2-Iyym Izzm) (Szm (ux1-ux2)+Iyzm (\[Theta]y1-\[Theta]y2)+Izzm (-\[Theta]z1+\[Theta]z2))+12 EEm h0 (fym h0^2 (Iyzm^2-Iyym Izzm)-6 GGm (Iyym Szm^2 (uy1-uy2)+2 Iyzm Sym Szm (-uy1+uy2)+Izzm Sym (Sym (uy1-uy2)+Iyym (\[Theta]x1-\[Theta]x2))+Iyzm^2 Sym (-\[Theta]x1+\[Theta]x2))+h0 (6 Iyzm^2 mzm+GGm Szm (Sym^2+Szm^2) (ux1-ux2)+GGm Iyzm (Sym^2 (\[Theta]y1-\[Theta]y2)+Szm^2 (\[Theta]y1-\[Theta]y2)+6 Sym Szm (\[Theta]z1+\[Theta]z2))-3 Iyym (2 Izzm mzm+GGm Szm^2 (\[Theta]z1+\[Theta]z2))-GGm Izzm (Szm^2 (\[Theta]z1-\[Theta]z2)+2 Sym^2 (2 \[Theta]z1+\[Theta]z2))))))+\[Delta]\[Theta]z2 (AAm^3 GGm^2 h0^3 (fym h0^4+12 EEm (h0 Szm (ux1-ux2)+6 Izzm (uy1-uy2)+6 Iyzm (uz1-uz2)-2 h0 Iyzm (\[Theta]y1+2 \[Theta]y2)+2 h0 Izzm (\[Theta]z1+2 \[Theta]z2)))-144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (fym h0^3-6 (h0^2 mzm+GGm h0 Sym (\[Theta]x1-\[Theta]x2)+2 EEm (-Szm ux1+Szm ux2-Iyzm \[Theta]y1+Iyzm \[Theta]y2+Izzm \[Theta]z1-Izzm \[Theta]z2)))+6 AAm^2 GGm h0 (fxm GGm h0^5 Szm+24 EEm^2 (-6 (Iyzm^2-Iyym Izzm) (uy1-uy2)+h0 (Izzm (Szm ux1-Szm ux2+Iyzm \[Theta]y1-Iyzm \[Theta]y2)+Izzm^2 (-\[Theta]z1+\[Theta]z2)-3 Iyzm^2 (\[Theta]z1+\[Theta]z2)+Iyym (Szm (ux1-ux2)+Iyzm \[Theta]y1-Iyzm \[Theta]y2+2 Izzm \[Theta]z1+4 Izzm \[Theta]z2)))+2 EEm h0^2 (fym h0^2 (Iyym+Izzm)+6 GGm Szm (Szm (-uy1+uy2)+Sym (-uz1+uz2))-6 GGm (Izzm Sym-Iyzm Szm) (\[Theta]x1-\[Theta]x2)+3 h0 (2 Iyzm mym-2 Izzm mzm+GGm Szm (Sym (\[Theta]y1+\[Theta]y2)-Szm (\[Theta]z1+\[Theta]z2)))))-12 AAm EEm (GGm h0^4 (6 fxm (Iyzm Sym-Iyym Szm)+6 Szm (mym Sym-mzm Szm)+fym h0 (Sym^2+Szm^2))+144 EEm^2 (Iyzm^2-Iyym Izzm) (Szm (ux1-ux2)+Iyzm (\[Theta]y1-\[Theta]y2)+Izzm (-\[Theta]z1+\[Theta]z2))+12 EEm h0 (fym h0^2 (Iyzm^2-Iyym Izzm)+6 GGm (Iyym Szm^2 (uy1-uy2)+2 Iyzm Sym Szm (-uy1+uy2)+Izzm Sym (Sym (uy1-uy2)+Iyym (\[Theta]x1-\[Theta]x2))+Iyzm^2 Sym (-\[Theta]x1+\[Theta]x2))+h0 (-6 Iyzm^2 mzm+6 Iyym Izzm mzm+GGm Szm (Sym^2+Szm^2) (ux1-ux2)+3 GGm Iyym Szm^2 (\[Theta]z1+\[Theta]z2)+GGm Iyzm (Sym^2 (\[Theta]y1-\[Theta]y2)+Szm^2 (\[Theta]y1-\[Theta]y2)-6 Sym Szm (\[Theta]z1+\[Theta]z2))+GGm Izzm (Szm^2 (-\[Theta]z1+\[Theta]z2)+2 Sym^2 (\[Theta]z1+2 \[Theta]z2))))))+6 \[Delta]uy1 (144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (fym h0^2+2 GGm Sym (\[Theta]x1-\[Theta]x2))-AAm^3 GGm^2 h0^2 (fym h0^4-2 (h0^3 mzm+12 EEm (Izzm uy1-Izzm uy2+Iyzm uz1-Iyzm uz2)+6 EEm h0 (-Iyzm (\[Theta]y1+\[Theta]y2)+Izzm (\[Theta]z1+\[Theta]z2))))+2 AAm^2 GGm (fxm GGm h0^5 Szm-72 EEm^2 (Iyzm^2-Iyym Izzm) (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2))-6 EEm h0^2 (fym h0^2 (Iyym+Izzm)+2 GGm Szm (Szm (uy1-uy2)+Sym (uz1-uz2))+2 GGm (Izzm Sym-Iyzm Szm) (\[Theta]x1-\[Theta]x2)-h0 (2 Iyzm mym+2 Iyym mzm+GGm Szm (Sym (\[Theta]y1+\[Theta]y2)-Szm (\[Theta]z1+\[Theta]z2)))))+12 AAm EEm (GGm h0^3 (fxm (-2 Iyzm Sym+2 Iyym Szm)-2 Sym (mzm Sym+mym Szm)+fym h0 (Sym^2+Szm^2))+12 EEm (fym h0^2 (Iyzm^2-Iyym Izzm)-GGm (2 Iyzm^2 Sym (-\[Theta]x1+\[Theta]x2)-2 Iyzm Sym Szm (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2))+Iyym Szm^2 (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2))+Izzm Sym (2 Iyym (\[Theta]x1-\[Theta]x2)+Sym (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2)))))))+6 \[Delta]uy2 (144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm)) (fym h0^2+2 GGm Sym (-\[Theta]x1+\[Theta]x2))-AAm^3 GGm^2 h0^2 (fym h0^4+24 EEm (Izzm (uy1-uy2)+Iyzm (uz1-uz2))+2 h0 (h0^2 mzm-6 EEm Iyzm (\[Theta]y1+\[Theta]y2)+6 EEm Izzm (\[Theta]z1+\[Theta]z2)))-2 AAm^2 GGm (fxm GGm h0^5 Szm-72 EEm^2 (Iyzm^2-Iyym Izzm) (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2))+6 EEm h0^2 (fym h0^2 (Iyym+Izzm)+2 GGm Szm (Szm (-uy1+uy2)+Sym (-uz1+uz2))-2 GGm (Izzm Sym-Iyzm Szm) (\[Theta]x1-\[Theta]x2)+h0 (2 Iyzm mym+2 Iyym mzm+GGm Szm (Sym (\[Theta]y1+\[Theta]y2)-Szm (\[Theta]z1+\[Theta]z2)))))+12 AAm EEm (GGm h0^3 (2 fxm (Iyzm Sym-Iyym Szm)+2 Sym (mzm Sym+mym Szm)+fym h0 (Sym^2+Szm^2))+12 EEm (fym h0^2 (Iyzm^2-Iyym Izzm)+GGm (2 Iyzm^2 Sym (-\[Theta]x1+\[Theta]x2)-2 Iyzm Sym Szm (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2))+Iyym Szm^2 (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2))+Izzm Sym (2 Iyym (\[Theta]x1-\[Theta]x2)+Sym (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2))))))))/(12 h0 (AAm^3 GGm^2 h0^4+12 AAm^2 EEm GGm h0^2 (Iyym+Izzm)-144 EEm^2 (Izzm Sym^2+Szm (-2 Iyzm Sym+Iyym Szm))-12 AAm EEm (12 EEm (Iyzm^2-Iyym Izzm)+GGm h0^2 (Sym^2+Szm^2))))) ]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{BEAM,{{EE_,GG_,{\[Kappa]x_,\[Kappa]y_,\[Kappa]z_}},{AA_,Iyy_,Izz_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=Module[{r0,h0,h\[Alpha]0,i\[Alpha]0,ix0,iy0,iz0,ux1,uy1 ,uz1 ,\[Theta]x1 ,\[Theta]y1,\[Theta]z1 ,\[Delta]ux1 ,\[Delta]uy1,\[Delta]uz1,\[Delta]\[Theta]x1,\[Delta]\[Theta]y1,\[Delta]\[Theta]z1,ux2,uy2 ,uz2 ,\[Theta]x2 ,\[Theta]y2,\[Theta]z2 ,\[Delta]ux2 ,\[Delta]uy2,\[Delta]uz2,\[Delta]\[Theta]x2,\[Delta]\[Theta]y2,\[Delta]\[Theta]z2,bx,by,bz,\[Delta]Wintext}, (*mapping*) r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; iy0={0,1,0}; ix0=r0/h0; iz0=ix0\[Cross]iy0; ux1=fun[[n1,2]] . ix0; ux2=fun[[n2,2]] . ix0; uy1=fun[[n1,2]] . iy0; uy2=fun[[n2,2]] . iy0; uz1=fun[[n1,2]] . iz0; uz2=fun[[n2,2]] . iz0; \[Theta]x1=fun[[n1,3]] . ix0; \[Theta]x2=fun[[n2,3]] . ix0; \[Theta]y1=fun[[n1,3]] . iy0; \[Theta]y2=fun[[n2,3]] . iy0; \[Theta]z1=fun[[n1,3]] . iz0; \[Theta]z2=fun[[n2,3]] . iz0; \[Delta]ux1=\[Delta][fun[[n1,2]]] . ix0; \[Delta]ux2=\[Delta][fun[[n2,2]]] . ix0; \[Delta]uy1=\[Delta][fun[[n1,2]]] . iy0; \[Delta]uy2=\[Delta][fun[[n2,2]]] . iy0; \[Delta]uz1=\[Delta][fun[[n1,2]]] . iz0; \[Delta]uz2=\[Delta][fun[[n2,2]]] . iz0; \[Delta]\[Theta]x1=\[Delta][fun[[n1,3]]] . ix0; \[Delta]\[Theta]x2=\[Delta][fun[[n2,3]]] . ix0; \[Delta]\[Theta]y1=\[Delta][fun[[n1,3]]] . iy0; \[Delta]\[Theta]y2=\[Delta][fun[[n2,3]]] . iy0; \[Delta]\[Theta]z1=\[Delta][fun[[n1,3]]] . iz0; \[Delta]\[Theta]z2=\[Delta][fun[[n2,3]]] . iz0; bx ={fX,fY,fZ} . ix0; by ={fX,fY,fZ} . iy0; bz ={fX,fY,fZ} . iz0; \[Delta]Wintext=-(((bx h0)/2+(AA EE (-ux1+ux2))/h0) \[Delta]ux1)+(bx h0 \[Delta]ux2)/2+(AA EE (ux1-ux2) \[Delta]ux2)/h0+(GG (Iyy+Izz) \[Delta]\[Theta]x1 (\[Theta]x1-\[Theta]x2) \[Kappa]x)/h0+(GG (Iyy+Izz) \[Delta]\[Theta]x2 (\[Theta]x1-\[Theta]x2) \[Kappa]x)/h0-(\[Delta]uy1 (-12 AA EE GG Izz (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2)) \[Kappa]y+by (12 EE h0^2 Izz+AA GG h0^4 \[Kappa]y)))/(24 EE h0 Izz+2 AA GG h0^3 \[Kappa]y)+(\[Delta]uy2 (12 AA EE GG Izz (2 uy1-2 uy2+h0 (\[Theta]z1+\[Theta]z2)) \[Kappa]y+by (12 EE h0^2 Izz+AA GG h0^4 \[Kappa]y)))/(24 EE h0 Izz+2 AA GG h0^3 \[Kappa]y)-(\[Delta]\[Theta]z1 (by (12 EE h0^3 Izz+AA GG h0^5 \[Kappa]y)-24 EE Izz (6 EE Izz (\[Theta]z1-\[Theta]z2)+AA GG h0 (3 uy1-3 uy2+2 h0 \[Theta]z1+h0 \[Theta]z2) \[Kappa]y)))/(12 (12 EE h0 Izz+AA GG h0^3 \[Kappa]y))-(\[Delta]\[Theta]z2 (by (12 EE h0^3 Izz+AA GG h0^5 \[Kappa]y)+24 EE Izz (6 EE Izz (-\[Theta]z1+\[Theta]z2)+AA GG h0 (3 uy1-3 uy2+h0 \[Theta]z1+2 h0 \[Theta]z2) \[Kappa]y)))/(12 (12 EE h0 Izz+AA GG h0^3 \[Kappa]y))+(\[Delta]uz2 (-12 AA EE GG Iyy (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2)) \[Kappa]z+bz (12 EE h0^2 Iyy+AA GG h0^4 \[Kappa]z)))/(24 EE h0 Iyy+2 AA GG h0^3 \[Kappa]z)-(\[Delta]uz1 (12 AA EE GG Iyy (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2)) \[Kappa]z+bz (12 EE h0^2 Iyy+AA GG h0^4 \[Kappa]z)))/(24 EE h0 Iyy+2 AA GG h0^3 \[Kappa]z)+(\[Delta]\[Theta]y1 (bz (12 EE h0^3 Iyy+AA GG h0^5 \[Kappa]z)+24 EE Iyy (6 EE Iyy (\[Theta]y1-\[Theta]y2)+AA GG h0 (-3 uz1+3 uz2+2 h0 \[Theta]y1+h0 \[Theta]y2) \[Kappa]z)))/(12 (12 EE h0 Iyy+AA GG h0^3 \[Kappa]z))-(\[Delta]\[Theta]y2 (-bz (12 EE h0^3 Iyy+AA GG h0^5 \[Kappa]z)+24 EE Iyy (6 EE Iyy (-\[Theta]y1+\[Theta]y2)+AA GG h0 (-3 uz1+3 uz2+h0 \[Theta]y1+2 h0 \[Theta]y2) \[Kappa]z)))/(12 (12 EE h0 Iyy+AA GG h0^3 \[Kappa]z)); \[Delta]Wine=-(1/(420 h0))\[Rho]\[Rho] (AA h0^2 (70 ux1[2] (2 \[Delta]ux1[0]+\[Delta]ux2[0])+70 ux2[2] (\[Delta]ux1[0]+2 \[Delta]ux2[0])+156 uy1[2] \[Delta]uy1[0]+54 uy2[2] \[Delta]uy1[0]+54 uy1[2] \[Delta]uy2[0]+156 uy2[2] \[Delta]uy2[0]+156 uz1[2] \[Delta]uz1[0]+54 uz2[2] \[Delta]uz1[0]+54 uz1[2] \[Delta]uz2[0]+156 uz2[2] \[Delta]uz2[0]-22 h0 uz1[2] \[Delta]\[Theta]y1[0]-13 h0 uz2[2] \[Delta]\[Theta]y1[0]+13 h0 uz1[2] \[Delta]\[Theta]y2[0]+22 h0 uz2[2] \[Delta]\[Theta]y2[0]+22 h0 uy1[2] \[Delta]\[Theta]z1[0]+13 h0 uy2[2] \[Delta]\[Theta]z1[0]-13 h0 uy1[2] \[Delta]\[Theta]z2[0]-22 h0 uy2[2] \[Delta]\[Theta]z2[0]-22 h0 \[Delta]uz1[0] \[Theta]y1[2]-13 h0 \[Delta]uz2[0] \[Theta]y1[2]+4 h0^2 \[Delta]\[Theta]y1[0] \[Theta]y1[2]-3 h0^2 \[Delta]\[Theta]y2[0] \[Theta]y1[2]+13 h0 \[Delta]uz1[0] \[Theta]y2[2]+22 h0 \[Delta]uz2[0] \[Theta]y2[2]-3 h0^2 \[Delta]\[Theta]y1[0] \[Theta]y2[2]+4 h0^2 \[Delta]\[Theta]y2[0] \[Theta]y2[2]+22 h0 \[Delta]uy1[0] \[Theta]z1[2]+13 h0 \[Delta]uy2[0] \[Theta]z1[2]+4 h0^2 \[Delta]\[Theta]z1[0] \[Theta]z1[2]-3 h0^2 \[Delta]\[Theta]z2[0] \[Theta]z1[2]-13 h0 \[Delta]uy1[0] \[Theta]z2[2]-22 h0 \[Delta]uy2[0] \[Theta]z2[2]-3 h0^2 \[Delta]\[Theta]z1[0] \[Theta]z2[2]+4 h0^2 \[Delta]\[Theta]z2[0] \[Theta]z2[2])+14 (\[CapitalIota]yy (-3 uz1[2] (-12 \[Delta]uz1[0]+12 \[Delta]uz2[0]+h0 (\[Delta]\[Theta]y1[0]+\[Delta]\[Theta]y2[0]))+3 uz2[2] (-12 \[Delta]uz1[0]+12 \[Delta]uz2[0]+h0 (\[Delta]\[Theta]y1[0]+\[Delta]\[Theta]y2[0]))+h0 (-3 (\[Delta]uz1[0]-\[Delta]uz2[0]) (\[Theta]y1[2]+\[Theta]y2[2])+h0 (5 \[Delta]ux2[0] (2 ux2[2]+\[Theta]x1[2])+5 \[Delta]\[Theta]x1[0] (ux2[2]+2 \[Theta]x1[2])+4 \[Delta]\[Theta]y1[0] \[Theta]y1[2]-\[Delta]\[Theta]y2[0] \[Theta]y1[2]-\[Delta]\[Theta]y1[0] \[Theta]y2[2]+4 \[Delta]\[Theta]y2[0] \[Theta]y2[2])))+\[CapitalIota]zz (3 uy1[2] (12 \[Delta]uy1[0]-12 \[Delta]uy2[0]+h0 (\[Delta]\[Theta]z1[0]+\[Delta]\[Theta]z2[0]))-3 uy2[2] (12 \[Delta]uy1[0]-12 \[Delta]uy2[0]+h0 (\[Delta]\[Theta]z1[0]+\[Delta]\[Theta]z2[0]))+h0 (3 (\[Delta]uy1[0]-\[Delta]uy2[0]) (\[Theta]z1[2]+\[Theta]z2[2])+h0 (5 \[Delta]ux2[0] (2 ux2[2]+\[Theta]x1[2])+5 \[Delta]\[Theta]x1[0] (ux2[2]+2 \[Theta]x1[2])+4 \[Delta]\[Theta]z1[0] \[Theta]z1[2]-\[Delta]\[Theta]z2[0] \[Theta]z1[2]-\[Delta]\[Theta]z1[0] \[Theta]z2[2]+4 \[Delta]\[Theta]z2[0] \[Theta]z2[2])))))]; \[Delta]W[DISP,{BEAM,{{EE_,GG_,\[Kappa]y_,kz_},{AA_,Iy_,Iz_},{fx_,fy_,fz_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,GG,\[Kappa]y,kz,0},{AA,Iy,Iz,Iy+Iz,{0,1,0}},{fx,fy,fz}},Line[{n1,n2}]},fun]; \[Delta]W[DISP,{BEAM,{{EE_,GG_,\[Kappa]y_,kz_},{AA_,Iy_,Iz_,iy0_},{fx_,fy_,fz_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,GG,\[Kappa]y,kz,0},{AA,Iy,Iz,Iy+Iz,iy0},{fx,fy,fz}},Line[{n1,n2}]},fun]; (*first order theory defs*) \[Delta]W[DISP,{BEAM,{{EE_,GG_,ky_,kz_,ez_},{AA_,Iy_,Iz_,Jx_,iy0_,cpol_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:= \[Delta]W[DISP,{BEAM,{{EE,GG,ky,kz,ez},{AA,Iy,Iz,Jx,iy0},{fX,fY,fZ}},Line[{n1,n2}]},fun]; \[Delta]W[DISP,{BEAM,{{EE_,GG_,ky_,kz_,ez_},{AA_,Iy_,Iz_,Jx_,{iyr_,\[Alpha]_}},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=Module[{r0,h0,ixr,izr,ix0,iy0,iz0,ux1,uy1 ,uz1 ,\[Theta]x1 ,\[Theta]y1,\[Theta]z1 ,\[Delta]ux1 ,\[Delta]uy1,\[Delta]uz1,\[Delta]\[Theta]x1,\[Delta]\[Theta]y1,\[Delta]\[Theta]z1,ux2,uy2 ,uz2 ,\[Theta]x2 ,\[Theta]y2,\[Theta]z2 ,\[Delta]ux2 ,\[Delta]uy2,\[Delta]uz2,\[Delta]\[Theta]x2,\[Delta]\[Theta]y2,\[Delta]\[Theta]z2,bx,by,bz}, (*mapping*) (*\[Alpha] rotation along x-axis for symmetry*) (* with respect to z-axis*) r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; ixr=r0/h0; izr=ixr\[Cross]iyr; ix0 =ixr; iy0 =Cos[\[Alpha]] iyr+Sin[\[Alpha]]izr; iz0 =-Sin[\[Alpha]] iyr+Cos[\[Alpha]]izr; ux1=fun[[n1,2]] . ix0; ux2=fun[[n2,2]] . ix0; uy1=fun[[n1,2]] . iy0; uy2=fun[[n2,2]] . iy0; uz1=fun[[n1,2]] . iz0; uz2=fun[[n2,2]] . iz0; \[Theta]x1=fun[[n1,3]] . ix0; \[Theta]x2=fun[[n2,3]] . ix0; \[Theta]y1=fun[[n1,3]] . iy0; \[Theta]y2=fun[[n2,3]] . iy0; \[Theta]z1=fun[[n1,3]] . iz0; \[Theta]z2=fun[[n2,3]] . iz0; \[Delta]ux1=\[Delta][fun[[n1,2]]] . ix0; \[Delta]ux2=\[Delta][fun[[n2,2]]] . ix0; \[Delta]uy1=\[Delta][fun[[n1,2]]] . iy0; \[Delta]uy2=\[Delta][fun[[n2,2]]] . iy0; \[Delta]uz1=\[Delta][fun[[n1,2]]] . iz0; \[Delta]uz2=\[Delta][fun[[n2,2]]] . iz0; \[Delta]\[Theta]x1=\[Delta][fun[[n1,3]]] . ix0; \[Delta]\[Theta]x2=\[Delta][fun[[n2,3]]] . ix0; \[Delta]\[Theta]y1=\[Delta][fun[[n1,3]]] . iy0; \[Delta]\[Theta]y2=\[Delta][fun[[n2,3]]] . iy0; \[Delta]\[Theta]z1=\[Delta][fun[[n1,3]]] . iz0; \[Delta]\[Theta]z2=\[Delta][fun[[n2,3]]] . iz0; bx ={fX,fY,fZ} . ix0; by ={fX,fY,fZ} . iy0; bz ={fX,fY,fZ} . iz0; (bx h0 \[Delta]ux1)/2+(AA EE (-ux1+ux2) \[Delta]ux1)/h0+(bx h0 \[Delta]ux2)/2+(AA EE (ux1-ux2) \[Delta]ux2)/h0+(\[Delta]uz2 (bz (12 EE h0^2 Iy+AA GG h0^4 kz)-12 AA EE GG Iy kz (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2))))/(24 EE h0 Iy+2 AA GG h0^3 kz)+(\[Delta]uz1 (bz (12 EE h0^2 Iy+AA GG h0^4 kz)+12 AA EE GG Iy kz (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2))))/(24 EE h0 Iy+2 AA GG h0^3 kz)-(\[Delta]\[Theta]y1 (bz (12 EE h0^3 Iy+AA GG h0^5 kz)+24 EE Iy (6 EE Iy (\[Theta]y1-\[Theta]y2)+AA GG h0 kz (-3 uz1+3 uz2+2 h0 \[Theta]y1+h0 \[Theta]y2))))/(12 (12 EE h0 Iy+AA GG h0^3 kz))-(\[Delta]\[Theta]y2 (-bz (12 EE h0^3 Iy+AA GG h0^5 kz)+24 EE Iy (6 EE Iy (-\[Theta]y1+\[Theta]y2)+AA GG h0 kz (-3 uz1+3 uz2+h0 \[Theta]y1+2 h0 \[Theta]y2))))/(12 (12 EE h0 Iy+AA GG h0^3 kz))+(\[Delta]uy1 (by (12 EE h0^2 Iz+AA GG h0^4 ky)-12 AA EE GG Iz ky (2 uy1-2 uy2-2 ez \[Theta]x1+2 ez \[Theta]x2+h0 \[Theta]z1+h0 \[Theta]z2)))/(24 EE h0 Iz+2 AA GG h0^3 ky)+(\[Delta]uy2 (by (12 EE h0^2 Iz+AA GG h0^4 ky)+12 AA EE GG Iz ky (2 uy1-2 uy2-2 ez \[Theta]x1+2 ez \[Theta]x2+h0 \[Theta]z1+h0 \[Theta]z2)))/(24 EE h0 Iz+2 AA GG h0^3 ky)-1/(12 EE h0 Iz+AA GG h0^3 ky) GG \[Delta]\[Theta]x1 (12 EE Iz Jx (\[Theta]x1-\[Theta]x2)+AA ky (GG h0^2 Jx (\[Theta]x1-\[Theta]x2)+6 EE ez Iz (-2 uy1+2 uy2+2 ez \[Theta]x1-2 ez \[Theta]x2-h0 \[Theta]z1-h0 \[Theta]z2)))+1/(12 EE h0 Iz+AA GG h0^3 ky) GG \[Delta]\[Theta]x2 (12 EE Iz Jx (\[Theta]x1-\[Theta]x2)+AA ky (GG h0^2 Jx (\[Theta]x1-\[Theta]x2)+6 EE ez Iz (-2 uy1+2 uy2+2 ez \[Theta]x1-2 ez \[Theta]x2-h0 \[Theta]z1-h0 \[Theta]z2)))-(\[Delta]\[Theta]z1 (-by (12 EE h0^3 Iz+AA GG h0^5 ky)+24 EE Iz (6 EE Iz (\[Theta]z1-\[Theta]z2)+AA GG h0 ky (3 uy1-3 uy2-3 ez \[Theta]x1+3 ez \[Theta]x2+2 h0 \[Theta]z1+h0 \[Theta]z2))))/(12 (12 EE h0 Iz+AA GG h0^3 ky))-(\[Delta]\[Theta]z2 (by (12 EE h0^3 Iz+AA GG h0^5 ky)-24 EE Iz (6 EE Iz (\[Theta]z1-\[Theta]z2)-AA GG h0 ky (3 uy1-3 uy2-3 ez \[Theta]x1+3 ez \[Theta]x2+h0 \[Theta]z1+2 h0 \[Theta]z2))))/(12 (12 EE h0 Iz+AA GG h0^3 ky))]; \[Delta]W[DISP,{BEAM,{{EE_,GG_,ky_,kz_,ez_},{AA_,Iy_,Iz_,Jx_,iy0_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=Module[{r0,h0,h\[Alpha]0,i\[Alpha]0,ix0,iz0,ux1,uy1 ,uz1 ,\[Theta]x1 ,\[Theta]y1,\[Theta]z1 ,\[Delta]ux1 ,\[Delta]uy1,\[Delta]uz1,\[Delta]\[Theta]x1,\[Delta]\[Theta]y1,\[Delta]\[Theta]z1,ux2,uy2 ,uz2 ,\[Theta]x2 ,\[Theta]y2,\[Theta]z2 ,\[Delta]ux2 ,\[Delta]uy2,\[Delta]uz2,\[Delta]\[Theta]x2,\[Delta]\[Theta]y2,\[Delta]\[Theta]z2,bx,by,bz}, (*mapping*) r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; ix0=r0/h0; iz0=ix0\[Cross]iy0; ux1=fun[[n1,2]] . ix0; ux2=fun[[n2,2]] . ix0; uy1=fun[[n1,2]] . iy0; uy2=fun[[n2,2]] . iy0; uz1=fun[[n1,2]] . iz0; uz2=fun[[n2,2]] . iz0; \[Theta]x1=fun[[n1,3]] . ix0; \[Theta]x2=fun[[n2,3]] . ix0; \[Theta]y1=fun[[n1,3]] . iy0; \[Theta]y2=fun[[n2,3]] . iy0; \[Theta]z1=fun[[n1,3]] . iz0; \[Theta]z2=fun[[n2,3]] . iz0; \[Delta]ux1=\[Delta][fun[[n1,2]]] . ix0; \[Delta]ux2=\[Delta][fun[[n2,2]]] . ix0; \[Delta]uy1=\[Delta][fun[[n1,2]]] . iy0; \[Delta]uy2=\[Delta][fun[[n2,2]]] . iy0; \[Delta]uz1=\[Delta][fun[[n1,2]]] . iz0; \[Delta]uz2=\[Delta][fun[[n2,2]]] . iz0; \[Delta]\[Theta]x1=\[Delta][fun[[n1,3]]] . ix0; \[Delta]\[Theta]x2=\[Delta][fun[[n2,3]]] . ix0; \[Delta]\[Theta]y1=\[Delta][fun[[n1,3]]] . iy0; \[Delta]\[Theta]y2=\[Delta][fun[[n2,3]]] . iy0; \[Delta]\[Theta]z1=\[Delta][fun[[n1,3]]] . iz0; \[Delta]\[Theta]z2=\[Delta][fun[[n2,3]]] . iz0; bx ={fX,fY,fZ} . ix0; by ={fX,fY,fZ} . iy0; bz ={fX,fY,fZ} . iz0; (bx h0 \[Delta]ux1)/2+(AA EE (-ux1+ux2) \[Delta]ux1)/h0+(bx h0 \[Delta]ux2)/2+(AA EE (ux1-ux2) \[Delta]ux2)/h0+(\[Delta]uz2 (bz (12 EE h0^2 Iy+AA GG h0^4 kz)-12 AA EE GG Iy kz (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2))))/(24 EE h0 Iy+2 AA GG h0^3 kz)+(\[Delta]uz1 (bz (12 EE h0^2 Iy+AA GG h0^4 kz)+12 AA EE GG Iy kz (-2 uz1+2 uz2+h0 (\[Theta]y1+\[Theta]y2))))/(24 EE h0 Iy+2 AA GG h0^3 kz)-(\[Delta]\[Theta]y1 (bz (12 EE h0^3 Iy+AA GG h0^5 kz)+24 EE Iy (6 EE Iy (\[Theta]y1-\[Theta]y2)+AA GG h0 kz (-3 uz1+3 uz2+2 h0 \[Theta]y1+h0 \[Theta]y2))))/(12 (12 EE h0 Iy+AA GG h0^3 kz))-(\[Delta]\[Theta]y2 (-bz (12 EE h0^3 Iy+AA GG h0^5 kz)+24 EE Iy (6 EE Iy (-\[Theta]y1+\[Theta]y2)+AA GG h0 kz (-3 uz1+3 uz2+h0 \[Theta]y1+2 h0 \[Theta]y2))))/(12 (12 EE h0 Iy+AA GG h0^3 kz))+(\[Delta]uy1 (by (12 EE h0^2 Iz+AA GG h0^4 ky)-12 AA EE GG Iz ky (2 uy1-2 uy2-2 ez \[Theta]x1+2 ez \[Theta]x2+h0 \[Theta]z1+h0 \[Theta]z2)))/(24 EE h0 Iz+2 AA GG h0^3 ky)+(\[Delta]uy2 (by (12 EE h0^2 Iz+AA GG h0^4 ky)+12 AA EE GG Iz ky (2 uy1-2 uy2-2 ez \[Theta]x1+2 ez \[Theta]x2+h0 \[Theta]z1+h0 \[Theta]z2)))/(24 EE h0 Iz+2 AA GG h0^3 ky)-1/(12 EE h0 Iz+AA GG h0^3 ky) GG \[Delta]\[Theta]x1 (12 EE Iz Jx (\[Theta]x1-\[Theta]x2)+AA ky (GG h0^2 Jx (\[Theta]x1-\[Theta]x2)+6 EE ez Iz (-2 uy1+2 uy2+2 ez \[Theta]x1-2 ez \[Theta]x2-h0 \[Theta]z1-h0 \[Theta]z2)))+1/(12 EE h0 Iz+AA GG h0^3 ky) GG \[Delta]\[Theta]x2 (12 EE Iz Jx (\[Theta]x1-\[Theta]x2)+AA ky (GG h0^2 Jx (\[Theta]x1-\[Theta]x2)+6 EE ez Iz (-2 uy1+2 uy2+2 ez \[Theta]x1-2 ez \[Theta]x2-h0 \[Theta]z1-h0 \[Theta]z2)))-(\[Delta]\[Theta]z1 (-by (12 EE h0^3 Iz+AA GG h0^5 ky)+24 EE Iz (6 EE Iz (\[Theta]z1-\[Theta]z2)+AA GG h0 ky (3 uy1-3 uy2-3 ez \[Theta]x1+3 ez \[Theta]x2+2 h0 \[Theta]z1+h0 \[Theta]z2))))/(12 (12 EE h0 Iz+AA GG h0^3 ky))-(\[Delta]\[Theta]z2 (by (12 EE h0^3 Iz+AA GG h0^5 ky)-24 EE Iz (6 EE Iz (\[Theta]z1-\[Theta]z2)-AA GG h0 ky (3 uy1-3 uy2-3 ez \[Theta]x1+3 ez \[Theta]x2+h0 \[Theta]z1+2 h0 \[Theta]z2))))/(12 (12 EE h0 Iz+AA GG h0^3 ky))]; (*first order offset beam theory defs*) \[Delta]W[DISP,{BEAM,{{EE_,GG_},{AA_,Sy_,Sz_,Iy_,Iz_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[DISP,{BEAM,{{EE,GG,1,1,0,0,0},{AA,Sy,Sz,Iy,Iz,0,Iy+Iz,{0,1,0}},{fX,fY,fZ,0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[DISP,{BEAM,{{EE_,GG_,ky_,kz_,kyz_,ey_,ez_},{AA_,Sy_,Sz_,Iy_,Iz_,Iyz_,Jx_,iy0_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Line[{n1_,n2_}]},fun_]:=Module[{r0,h0,h\[Alpha]0,i\[Alpha]0,ix0,iz0,ux1,uy1 ,uz1 ,\[Theta]x1 ,\[Theta]y1,\[Theta]z1 ,\[Delta]ux1 ,\[Delta]uy1,\[Delta]uz1,\[Delta]\[Theta]x1,\[Delta]\[Theta]y1,\[Delta]\[Theta]z1,ux2,uy2 ,uz2 ,\[Theta]x2 ,\[Theta]y2,\[Theta]z2 ,\[Delta]ux2 ,\[Delta]uy2,\[Delta]uz2,\[Delta]\[Theta]x2,\[Delta]\[Theta]y2,\[Delta]\[Theta]z2,bx,by,bz,cx,cy,cz}, (*mapping*) r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; ix0=r0/h0; iz0=ix0\[Cross]iy0; ux1=fun[[n1,2]] . ix0; ux2=fun[[n2,2]] . ix0; uy1=fun[[n1,2]] . iy0; uy2=fun[[n2,2]] . iy0; uz1=fun[[n1,2]] . iz0; uz2=fun[[n2,2]] . iz0; \[Theta]x1=fun[[n1,3]] . ix0; \[Theta]x2=fun[[n2,3]] . ix0; \[Theta]y1=fun[[n1,3]] . iy0; \[Theta]y2=fun[[n2,3]] . iy0; \[Theta]z1=fun[[n1,3]] . iz0; \[Theta]z2=fun[[n2,3]] . iz0; \[Delta]ux1=\[Delta][fun[[n1,2]]] . ix0; \[Delta]ux2=\[Delta][fun[[n2,2]]] . ix0; \[Delta]uy1=\[Delta][fun[[n1,2]]] . iy0; \[Delta]uy2=\[Delta][fun[[n2,2]]] . iy0; \[Delta]uz1=\[Delta][fun[[n1,2]]] . iz0; \[Delta]uz2=\[Delta][fun[[n2,2]]] . iz0; \[Delta]\[Theta]x1=\[Delta][fun[[n1,3]]] . ix0; \[Delta]\[Theta]x2=\[Delta][fun[[n2,3]]] . ix0; \[Delta]\[Theta]y1=\[Delta][fun[[n1,3]]] . iy0; \[Delta]\[Theta]y2=\[Delta][fun[[n2,3]]] . iy0; \[Delta]\[Theta]z1=\[Delta][fun[[n1,3]]] . iz0; \[Delta]\[Theta]z2=\[Delta][fun[[n2,3]]] . iz0; bx ={fX,fY,fZ} . ix0; by ={fX,fY,fZ} . iy0; bz ={fX,fY,fZ} . iz0; cx ={mX,mY,mZ} . ix0; cy ={mX,mY,mZ} . iy0; cz ={mX,mY,mZ} . iz0; (-6 (12 AA^2 EE GG h0^2 (Iy ky-2 Iyz kyz+Iz kz)+AA^3 GG^2 h0^4 (-kyz^2+ky kz)-144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz))-12 AA EE (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2-2 kyz Sy Sz+kz Sz^2))) \[Delta]ux1 (bx h0^2+2 EE (AA (-ux1+ux2)-Sy \[Theta]y1+Sy \[Theta]y2+Sz \[Theta]z1-Sz \[Theta]z2))-6 (12 AA^2 EE GG h0^2 (Iy ky-2 Iyz kyz+Iz kz)+AA^3 GG^2 h0^4 (-kyz^2+ky kz)-144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz))-12 AA EE (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2-2 kyz Sy Sz+kz Sz^2))) \[Delta]ux2 (bx h0^2+2 EE (AA (ux1-ux2)+Sy \[Theta]y1-Sy \[Theta]y2-Sz \[Theta]z1+Sz \[Theta]z2))+6 \[Delta]\[Theta]x1 (144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (cx h0^2+2 GG Jx (-\[Theta]x1+\[Theta]x2))+AA^3 GG^2 h0^2 (kyz^2-ky kz) (2 cy ey h0^3+2 cz ez h0^3+cx h0^4-24 EE ey Iyz uy1+24 EE ez Iz uy1+24 EE ey Iyz uy2-24 EE ez Iz uy2-24 EE ey Iy uz1+24 EE ez Iyz uz1+24 EE ey Iy uz2-24 EE ez Iyz uz2-24 EE ey^2 Iy \[Theta]x1+48 EE ey ez Iyz \[Theta]x1-24 EE ez^2 Iz \[Theta]x1-2 GG h0^2 Jx \[Theta]x1+24 EE ey^2 Iy \[Theta]x2-48 EE ey ez Iyz \[Theta]x2+24 EE ez^2 Iz \[Theta]x2+2 GG h0^2 Jx \[Theta]x2+12 EE ey h0 Iy \[Theta]y1-12 EE ez h0 Iyz \[Theta]y1+12 EE ey h0 Iy \[Theta]y2-12 EE ez h0 Iyz \[Theta]y2-12 EE ey h0 Iyz \[Theta]z1+12 EE ez h0 Iz \[Theta]z1-12 EE ey h0 Iyz \[Theta]z2+12 EE ez h0 Iz \[Theta]z2)-2 AA^2 GG (12 cy EE ez h0^3 Iyz ky-12 cy EE ey h0^3 Iyz kyz-12 cy EE ez h0^3 Iz kyz+12 cy EE ey h0^3 Iz kz+12 cz EE h0^3 (ez Iy ky-ey Iy kyz-ez Iyz kyz+ey Iyz kz)+6 cx EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)+bx ey GG h0^5 kyz^2 Sy-bx ey GG h0^5 ky kz Sy-bx ez GG h0^5 kyz^2 Sz+bx ez GG h0^5 ky kz Sz-144 EE^2 ez Iyz^2 ky uy1+144 EE^2 ez Iy Iz ky uy1+144 EE^2 ey Iyz^2 kyz uy1-144 EE^2 ey Iy Iz kyz uy1-12 EE ey GG h0^2 kyz^2 Sy Sz uy1+12 EE ey GG h0^2 ky kz Sy Sz uy1+12 EE ez GG h0^2 kyz^2 Sz^2 uy1-12 EE ez GG h0^2 ky kz Sz^2 uy1+144 EE^2 ez Iyz^2 ky uy2-144 EE^2 ez Iy Iz ky uy2-144 EE^2 ey Iyz^2 kyz uy2+144 EE^2 ey Iy Iz kyz uy2+12 EE ey GG h0^2 kyz^2 Sy Sz uy2-12 EE ey GG h0^2 ky kz Sy Sz uy2-12 EE ez GG h0^2 kyz^2 Sz^2 uy2+12 EE ez GG h0^2 ky kz Sz^2 uy2-144 EE^2 ez Iyz^2 kyz uz1+144 EE^2 ez Iy Iz kyz uz1+144 EE^2 ey Iyz^2 kz uz1-144 EE^2 ey Iy Iz kz uz1-12 EE ey GG h0^2 kyz^2 Sy^2 uz1+12 EE ey GG h0^2 ky kz Sy^2 uz1+12 EE ez GG h0^2 kyz^2 Sy Sz uz1-12 EE ez GG h0^2 ky kz Sy Sz uz1+144 EE^2 ez Iyz^2 kyz uz2-144 EE^2 ez Iy Iz kyz uz2-144 EE^2 ey Iyz^2 kz uz2+144 EE^2 ey Iy Iz kz uz2+12 EE ey GG h0^2 kyz^2 Sy^2 uz2-12 EE ey GG h0^2 ky kz Sy^2 uz2-12 EE ez GG h0^2 kyz^2 Sy Sz uz2+12 EE ez GG h0^2 ky kz Sy Sz uz2+144 EE^2 ez^2 Iyz^2 ky \[Theta]x1-144 EE^2 ez^2 Iy Iz ky \[Theta]x1-12 EE GG h0^2 Iy Jx ky \[Theta]x1-288 EE^2 ey ez Iyz^2 kyz \[Theta]x1+288 EE^2 ey ez Iy Iz kyz \[Theta]x1+24 EE GG h0^2 Iyz Jx kyz \[Theta]x1+144 EE^2 ey^2 Iyz^2 kz \[Theta]x1-144 EE^2 ey^2 Iy Iz kz \[Theta]x1-12 EE GG h0^2 Iz Jx kz \[Theta]x1-12 EE ey^2 GG h0^2 kyz^2 Sy^2 \[Theta]x1+12 EE ey^2 GG h0^2 ky kz Sy^2 \[Theta]x1+24 EE ey ez GG h0^2 kyz^2 Sy Sz \[Theta]x1-24 EE ey ez GG h0^2 ky kz Sy Sz \[Theta]x1-12 EE ez^2 GG h0^2 kyz^2 Sz^2 \[Theta]x1+12 EE ez^2 GG h0^2 ky kz Sz^2 \[Theta]x1-144 EE^2 ez^2 Iyz^2 ky \[Theta]x2+144 EE^2 ez^2 Iy Iz ky \[Theta]x2+12 EE GG h0^2 Iy Jx ky \[Theta]x2+288 EE^2 ey ez Iyz^2 kyz \[Theta]x2-288 EE^2 ey ez Iy Iz kyz \[Theta]x2-24 EE GG h0^2 Iyz Jx kyz \[Theta]x2-144 EE^2 ey^2 Iyz^2 kz \[Theta]x2+144 EE^2 ey^2 Iy Iz kz \[Theta]x2+12 EE GG h0^2 Iz Jx kz \[Theta]x2+12 EE ey^2 GG h0^2 kyz^2 Sy^2 \[Theta]x2-12 EE ey^2 GG h0^2 ky kz Sy^2 \[Theta]x2-24 EE ey ez GG h0^2 kyz^2 Sy Sz \[Theta]x2+24 EE ey ez GG h0^2 ky kz Sy Sz \[Theta]x2+12 EE ez^2 GG h0^2 kyz^2 Sz^2 \[Theta]x2-12 EE ez^2 GG h0^2 ky kz Sz^2 \[Theta]x2+72 EE^2 ez h0 Iyz^2 kyz \[Theta]y1-72 EE^2 ez h0 Iy Iz kyz \[Theta]y1-72 EE^2 ey h0 Iyz^2 kz \[Theta]y1+72 EE^2 ey h0 Iy Iz kz \[Theta]y1+6 EE ey GG h0^3 kyz^2 Sy^2 \[Theta]y1-6 EE ey GG h0^3 ky kz Sy^2 \[Theta]y1-6 EE ez GG h0^3 kyz^2 Sy Sz \[Theta]y1+6 EE ez GG h0^3 ky kz Sy Sz \[Theta]y1+72 EE^2 ez h0 Iyz^2 kyz \[Theta]y2-72 EE^2 ez h0 Iy Iz kyz \[Theta]y2-72 EE^2 ey h0 Iyz^2 kz \[Theta]y2+72 EE^2 ey h0 Iy Iz kz \[Theta]y2+6 EE ey GG h0^3 kyz^2 Sy^2 \[Theta]y2-6 EE ey GG h0^3 ky kz Sy^2 \[Theta]y2-6 EE ez GG h0^3 kyz^2 Sy Sz \[Theta]y2+6 EE ez GG h0^3 ky kz Sy Sz \[Theta]y2-72 EE^2 ez h0 Iyz^2 ky \[Theta]z1+72 EE^2 ez h0 Iy Iz ky \[Theta]z1+72 EE^2 ey h0 Iyz^2 kyz \[Theta]z1-72 EE^2 ey h0 Iy Iz kyz \[Theta]z1-6 EE ey GG h0^3 kyz^2 Sy Sz \[Theta]z1+6 EE ey GG h0^3 ky kz Sy Sz \[Theta]z1+6 EE ez GG h0^3 kyz^2 Sz^2 \[Theta]z1-6 EE ez GG h0^3 ky kz Sz^2 \[Theta]z1-72 EE^2 ez h0 Iyz^2 ky \[Theta]z2+72 EE^2 ez h0 Iy Iz ky \[Theta]z2+72 EE^2 ey h0 Iyz^2 kyz \[Theta]z2-72 EE^2 ey h0 Iy Iz kyz \[Theta]z2-6 EE ey GG h0^3 kyz^2 Sy Sz \[Theta]z2+6 EE ey GG h0^3 ky kz Sy Sz \[Theta]z2+6 EE ez GG h0^3 kyz^2 Sz^2 \[Theta]z2-6 EE ez GG h0^3 ky kz Sz^2 \[Theta]z2)+12 AA EE (cx h0^2 (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2+Sz (-2 kyz Sy+kz Sz)))+2 GG (cy ez h0^3 ky Sy Sz-cy ey h0^3 kyz Sy Sz-cy ez h0^3 kyz Sz^2+cy ey h0^3 kz Sz^2+cz h0^3 Sy (ez ky Sy-ey kyz Sy-ez kyz Sz+ey kz Sz)+bx h0^3 (ez (Iyz ky Sy-Iz kyz Sy-Iy ky Sz+Iyz kyz Sz)+ey (Iz kz Sy+Iy kyz Sz-Iyz (kyz Sy+kz Sz)))+12 EE ez Iz ky Sy^2 uy1-12 EE ey Iz kyz Sy^2 uy1-24 EE ez Iyz ky Sy Sz uy1+24 EE ey Iyz kyz Sy Sz uy1+12 EE ez Iy ky Sz^2 uy1-12 EE ey Iy kyz Sz^2 uy1-12 EE ez Iz ky Sy^2 uy2+12 EE ey Iz kyz Sy^2 uy2+24 EE ez Iyz ky Sy Sz uy2-24 EE ey Iyz kyz Sy Sz uy2-12 EE ez Iy ky Sz^2 uy2+12 EE ey Iy kyz Sz^2 uy2+12 EE ez Iz kyz Sy^2 uz1-12 EE ey Iz kz Sy^2 uz1-24 EE ez Iyz kyz Sy Sz uz1+24 EE ey Iyz kz Sy Sz uz1+12 EE ez Iy kyz Sz^2 uz1-12 EE ey Iy kz Sz^2 uz1-12 EE ez Iz kyz Sy^2 uz2+12 EE ey Iz kz Sy^2 uz2+24 EE ez Iyz kyz Sy Sz uz2-24 EE ey Iyz kz Sy Sz uz2-12 EE ez Iy kyz Sz^2 uz2+12 EE ey Iy kz Sz^2 uz2-12 EE Iyz^2 Jx \[Theta]x1+12 EE Iy Iz Jx \[Theta]x1-12 EE ez^2 Iz ky Sy^2 \[Theta]x1-GG h0^2 Jx ky Sy^2 \[Theta]x1+24 EE ey ez Iz kyz Sy^2 \[Theta]x1-12 EE ey^2 Iz kz Sy^2 \[Theta]x1+24 EE ez^2 Iyz ky Sy Sz \[Theta]x1-48 EE ey ez Iyz kyz Sy Sz \[Theta]x1+2 GG h0^2 Jx kyz Sy Sz \[Theta]x1+24 EE ey^2 Iyz kz Sy Sz \[Theta]x1-12 EE ez^2 Iy ky Sz^2 \[Theta]x1+24 EE ey ez Iy kyz Sz^2 \[Theta]x1-12 EE ey^2 Iy kz Sz^2 \[Theta]x1-GG h0^2 Jx kz Sz^2 \[Theta]x1+12 EE Iyz^2 Jx \[Theta]x2-12 EE Iy Iz Jx \[Theta]x2+12 EE ez^2 Iz ky Sy^2 \[Theta]x2+GG h0^2 Jx ky Sy^2 \[Theta]x2-24 EE ey ez Iz kyz Sy^2 \[Theta]x2+12 EE ey^2 Iz kz Sy^2 \[Theta]x2-24 EE ez^2 Iyz ky Sy Sz \[Theta]x2+48 EE ey ez Iyz kyz Sy Sz \[Theta]x2-2 GG h0^2 Jx kyz Sy Sz \[Theta]x2-24 EE ey^2 Iyz kz Sy Sz \[Theta]x2+12 EE ez^2 Iy ky Sz^2 \[Theta]x2-24 EE ey ez Iy kyz Sz^2 \[Theta]x2+12 EE ey^2 Iy kz Sz^2 \[Theta]x2+GG h0^2 Jx kz Sz^2 \[Theta]x2-6 EE ez h0 Iz kyz Sy^2 \[Theta]y1+6 EE ey h0 Iz kz Sy^2 \[Theta]y1+12 EE ez h0 Iyz kyz Sy Sz \[Theta]y1-12 EE ey h0 Iyz kz Sy Sz \[Theta]y1-6 EE ez h0 Iy kyz Sz^2 \[Theta]y1+6 EE ey h0 Iy kz Sz^2 \[Theta]y1-6 EE ez h0 Iz kyz Sy^2 \[Theta]y2+6 EE ey h0 Iz kz Sy^2 \[Theta]y2+12 EE ez h0 Iyz kyz Sy Sz \[Theta]y2-12 EE ey h0 Iyz kz Sy Sz \[Theta]y2-6 EE ez h0 Iy kyz Sz^2 \[Theta]y2+6 EE ey h0 Iy kz Sz^2 \[Theta]y2+6 EE ez h0 Iz ky Sy^2 \[Theta]z1-6 EE ey h0 Iz kyz Sy^2 \[Theta]z1-12 EE ez h0 Iyz ky Sy Sz \[Theta]z1+12 EE ey h0 Iyz kyz Sy Sz \[Theta]z1+6 EE ez h0 Iy ky Sz^2 \[Theta]z1-6 EE ey h0 Iy kyz Sz^2 \[Theta]z1+6 EE ez h0 Iz ky Sy^2 \[Theta]z2-6 EE ey h0 Iz kyz Sy^2 \[Theta]z2-12 EE ez h0 Iyz ky Sy Sz \[Theta]z2+12 EE ey h0 Iyz kyz Sy Sz \[Theta]z2+6 EE ez h0 Iy ky Sz^2 \[Theta]z2-6 EE ey h0 Iy kyz Sz^2 \[Theta]z2)))+6 \[Delta]\[Theta]x2 (144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (cx h0^2+2 GG Jx (\[Theta]x1-\[Theta]x2))+AA^3 GG^2 h0^2 (kyz^2-ky kz) (-2 cy ey h0^3-2 cz ez h0^3+cx h0^4+24 EE ey Iyz uy1-24 EE ez Iz uy1-24 EE ey Iyz uy2+24 EE ez Iz uy2+24 EE ey Iy uz1-24 EE ez Iyz uz1-24 EE ey Iy uz2+24 EE ez Iyz uz2+24 EE ey^2 Iy \[Theta]x1-48 EE ey ez Iyz \[Theta]x1+24 EE ez^2 Iz \[Theta]x1+2 GG h0^2 Jx \[Theta]x1-24 EE ey^2 Iy \[Theta]x2+48 EE ey ez Iyz \[Theta]x2-24 EE ez^2 Iz \[Theta]x2-2 GG h0^2 Jx \[Theta]x2-12 EE ey h0 Iy \[Theta]y1+12 EE ez h0 Iyz \[Theta]y1-12 EE ey h0 Iy \[Theta]y2+12 EE ez h0 Iyz \[Theta]y2+12 EE ey h0 Iyz \[Theta]z1-12 EE ez h0 Iz \[Theta]z1+12 EE ey h0 Iyz \[Theta]z2-12 EE ez h0 Iz \[Theta]z2)+2 AA^2 GG (12 cy EE ez h0^3 Iyz ky-12 cy EE ey h0^3 Iyz kyz-12 cy EE ez h0^3 Iz kyz+12 cy EE ey h0^3 Iz kz+12 cz EE h0^3 (ez Iy ky-ey Iy kyz-ez Iyz kyz+ey Iyz kz)-6 cx EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)+bx ey GG h0^5 kyz^2 Sy-bx ey GG h0^5 ky kz Sy-bx ez GG h0^5 kyz^2 Sz+bx ez GG h0^5 ky kz Sz-144 EE^2 ez Iyz^2 ky uy1+144 EE^2 ez Iy Iz ky uy1+144 EE^2 ey Iyz^2 kyz uy1-144 EE^2 ey Iy Iz kyz uy1-12 EE ey GG h0^2 kyz^2 Sy Sz uy1+12 EE ey GG h0^2 ky kz Sy Sz uy1+12 EE ez GG h0^2 kyz^2 Sz^2 uy1-12 EE ez GG h0^2 ky kz Sz^2 uy1+144 EE^2 ez Iyz^2 ky uy2-144 EE^2 ez Iy Iz ky uy2-144 EE^2 ey Iyz^2 kyz uy2+144 EE^2 ey Iy Iz kyz uy2+12 EE ey GG h0^2 kyz^2 Sy Sz uy2-12 EE ey GG h0^2 ky kz Sy Sz uy2-12 EE ez GG h0^2 kyz^2 Sz^2 uy2+12 EE ez GG h0^2 ky kz Sz^2 uy2-144 EE^2 ez Iyz^2 kyz uz1+144 EE^2 ez Iy Iz kyz uz1+144 EE^2 ey Iyz^2 kz uz1-144 EE^2 ey Iy Iz kz uz1-12 EE ey GG h0^2 kyz^2 Sy^2 uz1+12 EE ey GG h0^2 ky kz Sy^2 uz1+12 EE ez GG h0^2 kyz^2 Sy Sz uz1-12 EE ez GG h0^2 ky kz Sy Sz uz1+144 EE^2 ez Iyz^2 kyz uz2-144 EE^2 ez Iy Iz kyz uz2-144 EE^2 ey Iyz^2 kz uz2+144 EE^2 ey Iy Iz kz uz2+12 EE ey GG h0^2 kyz^2 Sy^2 uz2-12 EE ey GG h0^2 ky kz Sy^2 uz2-12 EE ez GG h0^2 kyz^2 Sy Sz uz2+12 EE ez GG h0^2 ky kz Sy Sz uz2+144 EE^2 ez^2 Iyz^2 ky \[Theta]x1-144 EE^2 ez^2 Iy Iz ky \[Theta]x1-12 EE GG h0^2 Iy Jx ky \[Theta]x1-288 EE^2 ey ez Iyz^2 kyz \[Theta]x1+288 EE^2 ey ez Iy Iz kyz \[Theta]x1+24 EE GG h0^2 Iyz Jx kyz \[Theta]x1+144 EE^2 ey^2 Iyz^2 kz \[Theta]x1-144 EE^2 ey^2 Iy Iz kz \[Theta]x1-12 EE GG h0^2 Iz Jx kz \[Theta]x1-12 EE ey^2 GG h0^2 kyz^2 Sy^2 \[Theta]x1+12 EE ey^2 GG h0^2 ky kz Sy^2 \[Theta]x1+24 EE ey ez GG h0^2 kyz^2 Sy Sz \[Theta]x1-24 EE ey ez GG h0^2 ky kz Sy Sz \[Theta]x1-12 EE ez^2 GG h0^2 kyz^2 Sz^2 \[Theta]x1+12 EE ez^2 GG h0^2 ky kz Sz^2 \[Theta]x1-144 EE^2 ez^2 Iyz^2 ky \[Theta]x2+144 EE^2 ez^2 Iy Iz ky \[Theta]x2+12 EE GG h0^2 Iy Jx ky \[Theta]x2+288 EE^2 ey ez Iyz^2 kyz \[Theta]x2-288 EE^2 ey ez Iy Iz kyz \[Theta]x2-24 EE GG h0^2 Iyz Jx kyz \[Theta]x2-144 EE^2 ey^2 Iyz^2 kz \[Theta]x2+144 EE^2 ey^2 Iy Iz kz \[Theta]x2+12 EE GG h0^2 Iz Jx kz \[Theta]x2+12 EE ey^2 GG h0^2 kyz^2 Sy^2 \[Theta]x2-12 EE ey^2 GG h0^2 ky kz Sy^2 \[Theta]x2-24 EE ey ez GG h0^2 kyz^2 Sy Sz \[Theta]x2+24 EE ey ez GG h0^2 ky kz Sy Sz \[Theta]x2+12 EE ez^2 GG h0^2 kyz^2 Sz^2 \[Theta]x2-12 EE ez^2 GG h0^2 ky kz Sz^2 \[Theta]x2+72 EE^2 ez h0 Iyz^2 kyz \[Theta]y1-72 EE^2 ez h0 Iy Iz kyz \[Theta]y1-72 EE^2 ey h0 Iyz^2 kz \[Theta]y1+72 EE^2 ey h0 Iy Iz kz \[Theta]y1+6 EE ey GG h0^3 kyz^2 Sy^2 \[Theta]y1-6 EE ey GG h0^3 ky kz Sy^2 \[Theta]y1-6 EE ez GG h0^3 kyz^2 Sy Sz \[Theta]y1+6 EE ez GG h0^3 ky kz Sy Sz \[Theta]y1+72 EE^2 ez h0 Iyz^2 kyz \[Theta]y2-72 EE^2 ez h0 Iy Iz kyz \[Theta]y2-72 EE^2 ey h0 Iyz^2 kz \[Theta]y2+72 EE^2 ey h0 Iy Iz kz \[Theta]y2+6 EE ey GG h0^3 kyz^2 Sy^2 \[Theta]y2-6 EE ey GG h0^3 ky kz Sy^2 \[Theta]y2-6 EE ez GG h0^3 kyz^2 Sy Sz \[Theta]y2+6 EE ez GG h0^3 ky kz Sy Sz \[Theta]y2-72 EE^2 ez h0 Iyz^2 ky \[Theta]z1+72 EE^2 ez h0 Iy Iz ky \[Theta]z1+72 EE^2 ey h0 Iyz^2 kyz \[Theta]z1-72 EE^2 ey h0 Iy Iz kyz \[Theta]z1-6 EE ey GG h0^3 kyz^2 Sy Sz \[Theta]z1+6 EE ey GG h0^3 ky kz Sy Sz \[Theta]z1+6 EE ez GG h0^3 kyz^2 Sz^2 \[Theta]z1-6 EE ez GG h0^3 ky kz Sz^2 \[Theta]z1-72 EE^2 ez h0 Iyz^2 ky \[Theta]z2+72 EE^2 ez h0 Iy Iz ky \[Theta]z2+72 EE^2 ey h0 Iyz^2 kyz \[Theta]z2-72 EE^2 ey h0 Iy Iz kyz \[Theta]z2-6 EE ey GG h0^3 kyz^2 Sy Sz \[Theta]z2+6 EE ey GG h0^3 ky kz Sy Sz \[Theta]z2+6 EE ez GG h0^3 kyz^2 Sz^2 \[Theta]z2-6 EE ez GG h0^3 ky kz Sz^2 \[Theta]z2)+12 AA EE (cx h0^2 (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2+Sz (-2 kyz Sy+kz Sz)))+2 GG (-cy ez h0^3 ky Sy Sz+cy ey h0^3 kyz Sy Sz+cy ez h0^3 kyz Sz^2-cy ey h0^3 kz Sz^2+cz h0^3 Sy (-ez ky Sy+ey kyz Sy+ez kyz Sz-ey kz Sz)+bx h0^3 (ey (Iyz kyz Sy-Iz kz Sy-Iy kyz Sz+Iyz kz Sz)+ez (Iz kyz Sy+Iy ky Sz-Iyz (ky Sy+kyz Sz)))-12 EE ez Iz ky Sy^2 uy1+12 EE ey Iz kyz Sy^2 uy1+24 EE ez Iyz ky Sy Sz uy1-24 EE ey Iyz kyz Sy Sz uy1-12 EE ez Iy ky Sz^2 uy1+12 EE ey Iy kyz Sz^2 uy1+12 EE ez Iz ky Sy^2 uy2-12 EE ey Iz kyz Sy^2 uy2-24 EE ez Iyz ky Sy Sz uy2+24 EE ey Iyz kyz Sy Sz uy2+12 EE ez Iy ky Sz^2 uy2-12 EE ey Iy kyz Sz^2 uy2-12 EE ez Iz kyz Sy^2 uz1+12 EE ey Iz kz Sy^2 uz1+24 EE ez Iyz kyz Sy Sz uz1-24 EE ey Iyz kz Sy Sz uz1-12 EE ez Iy kyz Sz^2 uz1+12 EE ey Iy kz Sz^2 uz1+12 EE ez Iz kyz Sy^2 uz2-12 EE ey Iz kz Sy^2 uz2-24 EE ez Iyz kyz Sy Sz uz2+24 EE ey Iyz kz Sy Sz uz2+12 EE ez Iy kyz Sz^2 uz2-12 EE ey Iy kz Sz^2 uz2+12 EE Iyz^2 Jx \[Theta]x1-12 EE Iy Iz Jx \[Theta]x1+12 EE ez^2 Iz ky Sy^2 \[Theta]x1+GG h0^2 Jx ky Sy^2 \[Theta]x1-24 EE ey ez Iz kyz Sy^2 \[Theta]x1+12 EE ey^2 Iz kz Sy^2 \[Theta]x1-24 EE ez^2 Iyz ky Sy Sz \[Theta]x1+48 EE ey ez Iyz kyz Sy Sz \[Theta]x1-2 GG h0^2 Jx kyz Sy Sz \[Theta]x1-24 EE ey^2 Iyz kz Sy Sz \[Theta]x1+12 EE ez^2 Iy ky Sz^2 \[Theta]x1-24 EE ey ez Iy kyz Sz^2 \[Theta]x1+12 EE ey^2 Iy kz Sz^2 \[Theta]x1+GG h0^2 Jx kz Sz^2 \[Theta]x1-12 EE Iyz^2 Jx \[Theta]x2+12 EE Iy Iz Jx \[Theta]x2-12 EE ez^2 Iz ky Sy^2 \[Theta]x2-GG h0^2 Jx ky Sy^2 \[Theta]x2+24 EE ey ez Iz kyz Sy^2 \[Theta]x2-12 EE ey^2 Iz kz Sy^2 \[Theta]x2+24 EE ez^2 Iyz ky Sy Sz \[Theta]x2-48 EE ey ez Iyz kyz Sy Sz \[Theta]x2+2 GG h0^2 Jx kyz Sy Sz \[Theta]x2+24 EE ey^2 Iyz kz Sy Sz \[Theta]x2-12 EE ez^2 Iy ky Sz^2 \[Theta]x2+24 EE ey ez Iy kyz Sz^2 \[Theta]x2-12 EE ey^2 Iy kz Sz^2 \[Theta]x2-GG h0^2 Jx kz Sz^2 \[Theta]x2+6 EE ez h0 Iz kyz Sy^2 \[Theta]y1-6 EE ey h0 Iz kz Sy^2 \[Theta]y1-12 EE ez h0 Iyz kyz Sy Sz \[Theta]y1+12 EE ey h0 Iyz kz Sy Sz \[Theta]y1+6 EE ez h0 Iy kyz Sz^2 \[Theta]y1-6 EE ey h0 Iy kz Sz^2 \[Theta]y1+6 EE ez h0 Iz kyz Sy^2 \[Theta]y2-6 EE ey h0 Iz kz Sy^2 \[Theta]y2-12 EE ez h0 Iyz kyz Sy Sz \[Theta]y2+12 EE ey h0 Iyz kz Sy Sz \[Theta]y2+6 EE ez h0 Iy kyz Sz^2 \[Theta]y2-6 EE ey h0 Iy kz Sz^2 \[Theta]y2-6 EE ez h0 Iz ky Sy^2 \[Theta]z1+6 EE ey h0 Iz kyz Sy^2 \[Theta]z1+12 EE ez h0 Iyz ky Sy Sz \[Theta]z1-12 EE ey h0 Iyz kyz Sy Sz \[Theta]z1-6 EE ez h0 Iy ky Sz^2 \[Theta]z1+6 EE ey h0 Iy kyz Sz^2 \[Theta]z1-6 EE ez h0 Iz ky Sy^2 \[Theta]z2+6 EE ey h0 Iz kyz Sy^2 \[Theta]z2+12 EE ez h0 Iyz ky Sy Sz \[Theta]z2-12 EE ey h0 Iyz kyz Sy Sz \[Theta]z2-6 EE ez h0 Iy ky Sz^2 \[Theta]z2+6 EE ey h0 Iy kyz Sz^2 \[Theta]z2)))+6 \[Delta]uz1 (144 bz EE^2 h0^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz))-2 AA^2 GG (-12 cy EE h0^3 Iyz kyz+12 cy EE h0^3 Iz kz-12 cz EE h0^3 (Iy kyz-Iyz kz)+6 bz EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)+bx GG h0^5 kyz^2 Sy-bx GG h0^5 ky kz Sy+144 EE^2 Iyz^2 kyz uy1-144 EE^2 Iy Iz kyz uy1-12 EE GG h0^2 kyz^2 Sy Sz uy1+12 EE GG h0^2 ky kz Sy Sz uy1-144 EE^2 Iyz^2 kyz uy2+144 EE^2 Iy Iz kyz uy2+12 EE GG h0^2 kyz^2 Sy Sz uy2-12 EE GG h0^2 ky kz Sy Sz uy2+144 EE^2 Iyz^2 kz uz1-144 EE^2 Iy Iz kz uz1-12 EE GG h0^2 kyz^2 Sy^2 uz1+12 EE GG h0^2 ky kz Sy^2 uz1-144 EE^2 Iyz^2 kz uz2+144 EE^2 Iy Iz kz uz2+12 EE GG h0^2 kyz^2 Sy^2 uz2-12 EE GG h0^2 ky kz Sy^2 uz2-144 EE^2 ez Iyz^2 kyz \[Theta]x1+144 EE^2 ez Iy Iz kyz \[Theta]x1+144 EE^2 ey Iyz^2 kz \[Theta]x1-144 EE^2 ey Iy Iz kz \[Theta]x1-12 EE ey GG h0^2 kyz^2 Sy^2 \[Theta]x1+12 EE ey GG h0^2 ky kz Sy^2 \[Theta]x1+12 EE ez GG h0^2 kyz^2 Sy Sz \[Theta]x1-12 EE ez GG h0^2 ky kz Sy Sz \[Theta]x1+144 EE^2 ez Iyz^2 kyz \[Theta]x2-144 EE^2 ez Iy Iz kyz \[Theta]x2-144 EE^2 ey Iyz^2 kz \[Theta]x2+144 EE^2 ey Iy Iz kz \[Theta]x2+12 EE ey GG h0^2 kyz^2 Sy^2 \[Theta]x2-12 EE ey GG h0^2 ky kz Sy^2 \[Theta]x2-12 EE ez GG h0^2 kyz^2 Sy Sz \[Theta]x2+12 EE ez GG h0^2 ky kz Sy Sz \[Theta]x2-72 EE^2 h0 Iyz^2 kz \[Theta]y1+72 EE^2 h0 Iy Iz kz \[Theta]y1+6 EE GG h0^3 kyz^2 Sy^2 \[Theta]y1-6 EE GG h0^3 ky kz Sy^2 \[Theta]y1-72 EE^2 h0 Iyz^2 kz \[Theta]y2+72 EE^2 h0 Iy Iz kz \[Theta]y2+6 EE GG h0^3 kyz^2 Sy^2 \[Theta]y2-6 EE GG h0^3 ky kz Sy^2 \[Theta]y2+72 EE^2 h0 Iyz^2 kyz \[Theta]z1-72 EE^2 h0 Iy Iz kyz \[Theta]z1-6 EE GG h0^3 kyz^2 Sy Sz \[Theta]z1+6 EE GG h0^3 ky kz Sy Sz \[Theta]z1+72 EE^2 h0 Iyz^2 kyz \[Theta]z2-72 EE^2 h0 Iy Iz kyz \[Theta]z2-6 EE GG h0^3 kyz^2 Sy Sz \[Theta]z2+6 EE GG h0^3 ky kz Sy Sz \[Theta]z2)+12 AA EE (bz h0^2 (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2+Sz (-2 kyz Sy+kz Sz)))+2 GG (-cy h0^3 kyz Sy Sz+cy h0^3 kz Sz^2+cz h0^3 Sy (-kyz Sy+kz Sz)+bx h0^3 (Iz kz Sy+Iy kyz Sz-Iyz (kyz Sy+kz Sz))-12 EE Iz kyz Sy^2 uy1+24 EE Iyz kyz Sy Sz uy1-12 EE Iy kyz Sz^2 uy1+12 EE Iz kyz Sy^2 uy2-24 EE Iyz kyz Sy Sz uy2+12 EE Iy kyz Sz^2 uy2-12 EE Iz kz Sy^2 uz1+24 EE Iyz kz Sy Sz uz1-12 EE Iy kz Sz^2 uz1+12 EE Iz kz Sy^2 uz2-24 EE Iyz kz Sy Sz uz2+12 EE Iy kz Sz^2 uz2+12 EE ez Iz kyz Sy^2 \[Theta]x1-12 EE ey Iz kz Sy^2 \[Theta]x1-24 EE ez Iyz kyz Sy Sz \[Theta]x1+24 EE ey Iyz kz Sy Sz \[Theta]x1+12 EE ez Iy kyz Sz^2 \[Theta]x1-12 EE ey Iy kz Sz^2 \[Theta]x1-12 EE ez Iz kyz Sy^2 \[Theta]x2+12 EE ey Iz kz Sy^2 \[Theta]x2+24 EE ez Iyz kyz Sy Sz \[Theta]x2-24 EE ey Iyz kz Sy Sz \[Theta]x2-12 EE ez Iy kyz Sz^2 \[Theta]x2+12 EE ey Iy kz Sz^2 \[Theta]x2+6 EE h0 Iz kz Sy^2 \[Theta]y1-12 EE h0 Iyz kz Sy Sz \[Theta]y1+6 EE h0 Iy kz Sz^2 \[Theta]y1+6 EE h0 Iz kz Sy^2 \[Theta]y2-12 EE h0 Iyz kz Sy Sz \[Theta]y2+6 EE h0 Iy kz Sz^2 \[Theta]y2-6 EE h0 Iz kyz Sy^2 \[Theta]z1+12 EE h0 Iyz kyz Sy Sz \[Theta]z1-6 EE h0 Iy kyz Sz^2 \[Theta]z1-6 EE h0 Iz kyz Sy^2 \[Theta]z2+12 EE h0 Iyz kyz Sy Sz \[Theta]z2-6 EE h0 Iy kyz Sz^2 \[Theta]z2))+AA^3 GG^2 h0^2 (kyz^2-ky kz) (2 cy h0^3+bz h0^4-12 EE (Iy (2 uz1-2 uz2+2 ey \[Theta]x1-2 ey \[Theta]x2-h0 \[Theta]y1-h0 \[Theta]y2)+Iyz (2 uy1-2 uy2-2 ez \[Theta]x1+2 ez \[Theta]x2+h0 \[Theta]z1+h0 \[Theta]z2))))+6 \[Delta]uz2 (144 bz EE^2 h0^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz))-2 AA^2 GG (12 cy EE h0^3 Iyz kyz-12 cy EE h0^3 Iz kz+12 cz EE h0^3 (Iy kyz-Iyz kz)+6 bz EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)-bx GG h0^5 kyz^2 Sy+bx GG h0^5 ky kz Sy-144 EE^2 Iyz^2 kyz uy1+144 EE^2 Iy Iz kyz uy1+12 EE GG h0^2 kyz^2 Sy Sz uy1-12 EE GG h0^2 ky kz Sy Sz uy1+144 EE^2 Iyz^2 kyz uy2-144 EE^2 Iy Iz kyz uy2-12 EE GG h0^2 kyz^2 Sy Sz uy2+12 EE GG h0^2 ky kz Sy Sz uy2-144 EE^2 Iyz^2 kz uz1+144 EE^2 Iy Iz kz uz1+12 EE GG h0^2 kyz^2 Sy^2 uz1-12 EE GG h0^2 ky kz Sy^2 uz1+144 EE^2 Iyz^2 kz uz2-144 EE^2 Iy Iz kz uz2-12 EE GG h0^2 kyz^2 Sy^2 uz2+12 EE GG h0^2 ky kz Sy^2 uz2+144 EE^2 ez Iyz^2 kyz \[Theta]x1-144 EE^2 ez Iy Iz kyz \[Theta]x1-144 EE^2 ey Iyz^2 kz \[Theta]x1+144 EE^2 ey Iy Iz kz \[Theta]x1+12 EE ey GG h0^2 kyz^2 Sy^2 \[Theta]x1-12 EE ey GG h0^2 ky kz Sy^2 \[Theta]x1-12 EE ez GG h0^2 kyz^2 Sy Sz \[Theta]x1+12 EE ez GG h0^2 ky kz Sy Sz \[Theta]x1-144 EE^2 ez Iyz^2 kyz \[Theta]x2+144 EE^2 ez Iy Iz kyz \[Theta]x2+144 EE^2 ey Iyz^2 kz \[Theta]x2-144 EE^2 ey Iy Iz kz \[Theta]x2-12 EE ey GG h0^2 kyz^2 Sy^2 \[Theta]x2+12 EE ey GG h0^2 ky kz Sy^2 \[Theta]x2+12 EE ez GG h0^2 kyz^2 Sy Sz \[Theta]x2-12 EE ez GG h0^2 ky kz Sy Sz \[Theta]x2+72 EE^2 h0 Iyz^2 kz \[Theta]y1-72 EE^2 h0 Iy Iz kz \[Theta]y1-6 EE GG h0^3 kyz^2 Sy^2 \[Theta]y1+6 EE GG h0^3 ky kz Sy^2 \[Theta]y1+72 EE^2 h0 Iyz^2 kz \[Theta]y2-72 EE^2 h0 Iy Iz kz \[Theta]y2-6 EE GG h0^3 kyz^2 Sy^2 \[Theta]y2+6 EE GG h0^3 ky kz Sy^2 \[Theta]y2-72 EE^2 h0 Iyz^2 kyz \[Theta]z1+72 EE^2 h0 Iy Iz kyz \[Theta]z1+6 EE GG h0^3 kyz^2 Sy Sz \[Theta]z1-6 EE GG h0^3 ky kz Sy Sz \[Theta]z1-72 EE^2 h0 Iyz^2 kyz \[Theta]z2+72 EE^2 h0 Iy Iz kyz \[Theta]z2+6 EE GG h0^3 kyz^2 Sy Sz \[Theta]z2-6 EE GG h0^3 ky kz Sy Sz \[Theta]z2)+12 AA EE (bz h0^2 (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2+Sz (-2 kyz Sy+kz Sz)))+2 GG (cy h0^3 kyz Sy Sz-cy h0^3 kz Sz^2+cz h0^3 Sy (kyz Sy-kz Sz)+bx h0^3 (Iyz kyz Sy-Iz kz Sy-Iy kyz Sz+Iyz kz Sz)+12 EE Iz kyz Sy^2 uy1-24 EE Iyz kyz Sy Sz uy1+12 EE Iy kyz Sz^2 uy1-12 EE Iz kyz Sy^2 uy2+24 EE Iyz kyz Sy Sz uy2-12 EE Iy kyz Sz^2 uy2+12 EE Iz kz Sy^2 uz1-24 EE Iyz kz Sy Sz uz1+12 EE Iy kz Sz^2 uz1-12 EE Iz kz Sy^2 uz2+24 EE Iyz kz Sy Sz uz2-12 EE Iy kz Sz^2 uz2-12 EE ez Iz kyz Sy^2 \[Theta]x1+12 EE ey Iz kz Sy^2 \[Theta]x1+24 EE ez Iyz kyz Sy Sz \[Theta]x1-24 EE ey Iyz kz Sy Sz \[Theta]x1-12 EE ez Iy kyz Sz^2 \[Theta]x1+12 EE ey Iy kz Sz^2 \[Theta]x1+12 EE ez Iz kyz Sy^2 \[Theta]x2-12 EE ey Iz kz Sy^2 \[Theta]x2-24 EE ez Iyz kyz Sy Sz \[Theta]x2+24 EE ey Iyz kz Sy Sz \[Theta]x2+12 EE ez Iy kyz Sz^2 \[Theta]x2-12 EE ey Iy kz Sz^2 \[Theta]x2-6 EE h0 Iz kz Sy^2 \[Theta]y1+12 EE h0 Iyz kz Sy Sz \[Theta]y1-6 EE h0 Iy kz Sz^2 \[Theta]y1-6 EE h0 Iz kz Sy^2 \[Theta]y2+12 EE h0 Iyz kz Sy Sz \[Theta]y2-6 EE h0 Iy kz Sz^2 \[Theta]y2+6 EE h0 Iz kyz Sy^2 \[Theta]z1-12 EE h0 Iyz kyz Sy Sz \[Theta]z1+6 EE h0 Iy kyz Sz^2 \[Theta]z1+6 EE h0 Iz kyz Sy^2 \[Theta]z2-12 EE h0 Iyz kyz Sy Sz \[Theta]z2+6 EE h0 Iy kyz Sz^2 \[Theta]z2))+AA^3 GG^2 h0^2 (kyz^2-ky kz) (-2 cy h0^3+bz h0^4+12 EE (Iy (2 uz1-2 uz2+2 ey \[Theta]x1-2 ey \[Theta]x2-h0 \[Theta]y1-h0 \[Theta]y2)+Iyz (2 uy1-2 uy2-2 ez \[Theta]x1+2 ez \[Theta]x2+h0 \[Theta]z1+h0 \[Theta]z2))))+6 \[Delta]uy1 (144 by EE^2 h0^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz))+2 AA^2 GG (12 cy EE h0^3 Iyz ky-12 cy EE h0^3 Iz kyz+12 cz EE h0^3 (Iy ky-Iyz kyz)-6 by EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)-bx GG h0^5 kyz^2 Sz+bx GG h0^5 ky kz Sz-144 EE^2 Iyz^2 ky uy1+144 EE^2 Iy Iz ky uy1+12 EE GG h0^2 kyz^2 Sz^2 uy1-12 EE GG h0^2 ky kz Sz^2 uy1+144 EE^2 Iyz^2 ky uy2-144 EE^2 Iy Iz ky uy2-12 EE GG h0^2 kyz^2 Sz^2 uy2+12 EE GG h0^2 ky kz Sz^2 uy2-144 EE^2 Iyz^2 kyz uz1+144 EE^2 Iy Iz kyz uz1+12 EE GG h0^2 kyz^2 Sy Sz uz1-12 EE GG h0^2 ky kz Sy Sz uz1+144 EE^2 Iyz^2 kyz uz2-144 EE^2 Iy Iz kyz uz2-12 EE GG h0^2 kyz^2 Sy Sz uz2+12 EE GG h0^2 ky kz Sy Sz uz2+144 EE^2 ez Iyz^2 ky \[Theta]x1-144 EE^2 ez Iy Iz ky \[Theta]x1-144 EE^2 ey Iyz^2 kyz \[Theta]x1+144 EE^2 ey Iy Iz kyz \[Theta]x1+12 EE ey GG h0^2 kyz^2 Sy Sz \[Theta]x1-12 EE ey GG h0^2 ky kz Sy Sz \[Theta]x1-12 EE ez GG h0^2 kyz^2 Sz^2 \[Theta]x1+12 EE ez GG h0^2 ky kz Sz^2 \[Theta]x1-144 EE^2 ez Iyz^2 ky \[Theta]x2+144 EE^2 ez Iy Iz ky \[Theta]x2+144 EE^2 ey Iyz^2 kyz \[Theta]x2-144 EE^2 ey Iy Iz kyz \[Theta]x2-12 EE ey GG h0^2 kyz^2 Sy Sz \[Theta]x2+12 EE ey GG h0^2 ky kz Sy Sz \[Theta]x2+12 EE ez GG h0^2 kyz^2 Sz^2 \[Theta]x2-12 EE ez GG h0^2 ky kz Sz^2 \[Theta]x2+72 EE^2 h0 Iyz^2 kyz \[Theta]y1-72 EE^2 h0 Iy Iz kyz \[Theta]y1-6 EE GG h0^3 kyz^2 Sy Sz \[Theta]y1+6 EE GG h0^3 ky kz Sy Sz \[Theta]y1+72 EE^2 h0 Iyz^2 kyz \[Theta]y2-72 EE^2 h0 Iy Iz kyz \[Theta]y2-6 EE GG h0^3 kyz^2 Sy Sz \[Theta]y2+6 EE GG h0^3 ky kz Sy Sz \[Theta]y2-72 EE^2 h0 Iyz^2 ky \[Theta]z1+72 EE^2 h0 Iy Iz ky \[Theta]z1+6 EE GG h0^3 kyz^2 Sz^2 \[Theta]z1-6 EE GG h0^3 ky kz Sz^2 \[Theta]z1-72 EE^2 h0 Iyz^2 ky \[Theta]z2+72 EE^2 h0 Iy Iz ky \[Theta]z2+6 EE GG h0^3 kyz^2 Sz^2 \[Theta]z2-6 EE GG h0^3 ky kz Sz^2 \[Theta]z2)+12 AA EE (by h0^2 (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2+Sz (-2 kyz Sy+kz Sz)))+2 GG (-cy h0^3 ky Sy Sz+cy h0^3 kyz Sz^2+cz h0^3 Sy (-ky Sy+kyz Sz)+bx h0^3 (Iz kyz Sy+Iy ky Sz-Iyz (ky Sy+kyz Sz))-12 EE Iz ky Sy^2 uy1+24 EE Iyz ky Sy Sz uy1-12 EE Iy ky Sz^2 uy1+12 EE Iz ky Sy^2 uy2-24 EE Iyz ky Sy Sz uy2+12 EE Iy ky Sz^2 uy2-12 EE Iz kyz Sy^2 uz1+24 EE Iyz kyz Sy Sz uz1-12 EE Iy kyz Sz^2 uz1+12 EE Iz kyz Sy^2 uz2-24 EE Iyz kyz Sy Sz uz2+12 EE Iy kyz Sz^2 uz2+12 EE ez Iz ky Sy^2 \[Theta]x1-12 EE ey Iz kyz Sy^2 \[Theta]x1-24 EE ez Iyz ky Sy Sz \[Theta]x1+24 EE ey Iyz kyz Sy Sz \[Theta]x1+12 EE ez Iy ky Sz^2 \[Theta]x1-12 EE ey Iy kyz Sz^2 \[Theta]x1-12 EE ez Iz ky Sy^2 \[Theta]x2+12 EE ey Iz kyz Sy^2 \[Theta]x2+24 EE ez Iyz ky Sy Sz \[Theta]x2-24 EE ey Iyz kyz Sy Sz \[Theta]x2-12 EE ez Iy ky Sz^2 \[Theta]x2+12 EE ey Iy kyz Sz^2 \[Theta]x2+6 EE h0 Iz kyz Sy^2 \[Theta]y1-12 EE h0 Iyz kyz Sy Sz \[Theta]y1+6 EE h0 Iy kyz Sz^2 \[Theta]y1+6 EE h0 Iz kyz Sy^2 \[Theta]y2-12 EE h0 Iyz kyz Sy Sz \[Theta]y2+6 EE h0 Iy kyz Sz^2 \[Theta]y2-6 EE h0 Iz ky Sy^2 \[Theta]z1+12 EE h0 Iyz ky Sy Sz \[Theta]z1-6 EE h0 Iy ky Sz^2 \[Theta]z1-6 EE h0 Iz ky Sy^2 \[Theta]z2+12 EE h0 Iyz ky Sy Sz \[Theta]z2-6 EE h0 Iy ky Sz^2 \[Theta]z2))+AA^3 GG^2 h0^2 (kyz^2-ky kz) (-2 cz h0^3+by h0^4-12 EE (Iyz (2 uz1-2 uz2+2 ey \[Theta]x1-2 ey \[Theta]x2-h0 \[Theta]y1-h0 \[Theta]y2)+Iz (2 uy1-2 uy2-2 ez \[Theta]x1+2 ez \[Theta]x2+h0 \[Theta]z1+h0 \[Theta]z2))))+6 \[Delta]uy2 (144 by EE^2 h0^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz))-2 AA^2 GG (12 cy EE h0^3 Iyz ky-12 cy EE h0^3 Iz kyz+12 cz EE h0^3 (Iy ky-Iyz kyz)+6 by EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)-bx GG h0^5 kyz^2 Sz+bx GG h0^5 ky kz Sz-144 EE^2 Iyz^2 ky uy1+144 EE^2 Iy Iz ky uy1+12 EE GG h0^2 kyz^2 Sz^2 uy1-12 EE GG h0^2 ky kz Sz^2 uy1+144 EE^2 Iyz^2 ky uy2-144 EE^2 Iy Iz ky uy2-12 EE GG h0^2 kyz^2 Sz^2 uy2+12 EE GG h0^2 ky kz Sz^2 uy2-144 EE^2 Iyz^2 kyz uz1+144 EE^2 Iy Iz kyz uz1+12 EE GG h0^2 kyz^2 Sy Sz uz1-12 EE GG h0^2 ky kz Sy Sz uz1+144 EE^2 Iyz^2 kyz uz2-144 EE^2 Iy Iz kyz uz2-12 EE GG h0^2 kyz^2 Sy Sz uz2+12 EE GG h0^2 ky kz Sy Sz uz2+144 EE^2 ez Iyz^2 ky \[Theta]x1-144 EE^2 ez Iy Iz ky \[Theta]x1-144 EE^2 ey Iyz^2 kyz \[Theta]x1+144 EE^2 ey Iy Iz kyz \[Theta]x1+12 EE ey GG h0^2 kyz^2 Sy Sz \[Theta]x1-12 EE ey GG h0^2 ky kz Sy Sz \[Theta]x1-12 EE ez GG h0^2 kyz^2 Sz^2 \[Theta]x1+12 EE ez GG h0^2 ky kz Sz^2 \[Theta]x1-144 EE^2 ez Iyz^2 ky \[Theta]x2+144 EE^2 ez Iy Iz ky \[Theta]x2+144 EE^2 ey Iyz^2 kyz \[Theta]x2-144 EE^2 ey Iy Iz kyz \[Theta]x2-12 EE ey GG h0^2 kyz^2 Sy Sz \[Theta]x2+12 EE ey GG h0^2 ky kz Sy Sz \[Theta]x2+12 EE ez GG h0^2 kyz^2 Sz^2 \[Theta]x2-12 EE ez GG h0^2 ky kz Sz^2 \[Theta]x2+72 EE^2 h0 Iyz^2 kyz \[Theta]y1-72 EE^2 h0 Iy Iz kyz \[Theta]y1-6 EE GG h0^3 kyz^2 Sy Sz \[Theta]y1+6 EE GG h0^3 ky kz Sy Sz \[Theta]y1+72 EE^2 h0 Iyz^2 kyz \[Theta]y2-72 EE^2 h0 Iy Iz kyz \[Theta]y2-6 EE GG h0^3 kyz^2 Sy Sz \[Theta]y2+6 EE GG h0^3 ky kz Sy Sz \[Theta]y2-72 EE^2 h0 Iyz^2 ky \[Theta]z1+72 EE^2 h0 Iy Iz ky \[Theta]z1+6 EE GG h0^3 kyz^2 Sz^2 \[Theta]z1-6 EE GG h0^3 ky kz Sz^2 \[Theta]z1-72 EE^2 h0 Iyz^2 ky \[Theta]z2+72 EE^2 h0 Iy Iz ky \[Theta]z2+6 EE GG h0^3 kyz^2 Sz^2 \[Theta]z2-6 EE GG h0^3 ky kz Sz^2 \[Theta]z2)+12 AA EE (by h0^2 (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2+Sz (-2 kyz Sy+kz Sz)))+2 GG (cy h0^3 ky Sy Sz-cy h0^3 kyz Sz^2+cz h0^3 Sy (ky Sy-kyz Sz)+bx h0^3 (Iyz ky Sy-Iz kyz Sy-Iy ky Sz+Iyz kyz Sz)+12 EE Iz ky Sy^2 uy1-24 EE Iyz ky Sy Sz uy1+12 EE Iy ky Sz^2 uy1-12 EE Iz ky Sy^2 uy2+24 EE Iyz ky Sy Sz uy2-12 EE Iy ky Sz^2 uy2+12 EE Iz kyz Sy^2 uz1-24 EE Iyz kyz Sy Sz uz1+12 EE Iy kyz Sz^2 uz1-12 EE Iz kyz Sy^2 uz2+24 EE Iyz kyz Sy Sz uz2-12 EE Iy kyz Sz^2 uz2-12 EE ez Iz ky Sy^2 \[Theta]x1+12 EE ey Iz kyz Sy^2 \[Theta]x1+24 EE ez Iyz ky Sy Sz \[Theta]x1-24 EE ey Iyz kyz Sy Sz \[Theta]x1-12 EE ez Iy ky Sz^2 \[Theta]x1+12 EE ey Iy kyz Sz^2 \[Theta]x1+12 EE ez Iz ky Sy^2 \[Theta]x2-12 EE ey Iz kyz Sy^2 \[Theta]x2-24 EE ez Iyz ky Sy Sz \[Theta]x2+24 EE ey Iyz kyz Sy Sz \[Theta]x2+12 EE ez Iy ky Sz^2 \[Theta]x2-12 EE ey Iy kyz Sz^2 \[Theta]x2-6 EE h0 Iz kyz Sy^2 \[Theta]y1+12 EE h0 Iyz kyz Sy Sz \[Theta]y1-6 EE h0 Iy kyz Sz^2 \[Theta]y1-6 EE h0 Iz kyz Sy^2 \[Theta]y2+12 EE h0 Iyz kyz Sy Sz \[Theta]y2-6 EE h0 Iy kyz Sz^2 \[Theta]y2+6 EE h0 Iz ky Sy^2 \[Theta]z1-12 EE h0 Iyz ky Sy Sz \[Theta]z1+6 EE h0 Iy ky Sz^2 \[Theta]z1+6 EE h0 Iz ky Sy^2 \[Theta]z2-12 EE h0 Iyz ky Sy Sz \[Theta]z2+6 EE h0 Iy ky Sz^2 \[Theta]z2))+AA^3 GG^2 h0^2 (kyz^2-ky kz) (2 cz h0^3+by h0^4+12 EE (Iyz (2 uz1-2 uz2+2 ey \[Theta]x1-2 ey \[Theta]x2-h0 \[Theta]y1-h0 \[Theta]y2)+Iz (2 uy1-2 uy2-2 ez \[Theta]x1+2 ez \[Theta]x2+h0 \[Theta]z1+h0 \[Theta]z2))))+\[Delta]\[Theta]z2 (6 AA^2 GG h0 (12 cz EE h0^3 Iyz kyz+12 cy EE h0^3 (Iyz ky-Iz kyz)-12 cz EE h0^3 Iz kz+2 by EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)-bx GG h0^5 kyz^2 Sz+bx GG h0^5 ky kz Sz+24 EE^2 h0 Iy ky Sz ux1-48 EE^2 h0 Iyz kyz Sz ux1+24 EE^2 h0 Iz kz Sz ux1-24 EE^2 h0 Iy ky Sz ux2+48 EE^2 h0 Iyz kyz Sz ux2-24 EE^2 h0 Iz kz Sz ux2-144 EE^2 Iyz^2 ky uy1+144 EE^2 Iy Iz ky uy1+12 EE GG h0^2 kyz^2 Sz^2 uy1-12 EE GG h0^2 ky kz Sz^2 uy1+144 EE^2 Iyz^2 ky uy2-144 EE^2 Iy Iz ky uy2-12 EE GG h0^2 kyz^2 Sz^2 uy2+12 EE GG h0^2 ky kz Sz^2 uy2-144 EE^2 Iyz^2 kyz uz1+144 EE^2 Iy Iz kyz uz1+12 EE GG h0^2 kyz^2 Sy Sz uz1-12 EE GG h0^2 ky kz Sy Sz uz1+144 EE^2 Iyz^2 kyz uz2-144 EE^2 Iy Iz kyz uz2-12 EE GG h0^2 kyz^2 Sy Sz uz2+12 EE GG h0^2 ky kz Sy Sz uz2+144 EE^2 ez Iyz^2 ky \[Theta]x1-144 EE^2 ez Iy Iz ky \[Theta]x1-144 EE^2 ey Iyz^2 kyz \[Theta]x1+144 EE^2 ey Iy Iz kyz \[Theta]x1+12 EE ey GG h0^2 kyz^2 Sy Sz \[Theta]x1-12 EE ey GG h0^2 ky kz Sy Sz \[Theta]x1-12 EE ez GG h0^2 kyz^2 Sz^2 \[Theta]x1+12 EE ez GG h0^2 ky kz Sz^2 \[Theta]x1-144 EE^2 ez Iyz^2 ky \[Theta]x2+144 EE^2 ez Iy Iz ky \[Theta]x2+144 EE^2 ey Iyz^2 kyz \[Theta]x2-144 EE^2 ey Iy Iz kyz \[Theta]x2-12 EE ey GG h0^2 kyz^2 Sy Sz \[Theta]x2+12 EE ey GG h0^2 ky kz Sy Sz \[Theta]x2+12 EE ez GG h0^2 kyz^2 Sz^2 \[Theta]x2-12 EE ez GG h0^2 ky kz Sz^2 \[Theta]x2+24 EE^2 h0 Iy Iyz ky \[Theta]y1+24 EE^2 h0 Iyz^2 kyz \[Theta]y1-72 EE^2 h0 Iy Iz kyz \[Theta]y1+24 EE^2 h0 Iyz Iz kz \[Theta]y1-6 EE GG h0^3 kyz^2 Sy Sz \[Theta]y1+6 EE GG h0^3 ky kz Sy Sz \[Theta]y1-24 EE^2 h0 Iy Iyz ky \[Theta]y2+120 EE^2 h0 Iyz^2 kyz \[Theta]y2-72 EE^2 h0 Iy Iz kyz \[Theta]y2-24 EE^2 h0 Iyz Iz kz \[Theta]y2-6 EE GG h0^3 kyz^2 Sy Sz \[Theta]y2+6 EE GG h0^3 ky kz Sy Sz \[Theta]y2-72 EE^2 h0 Iyz^2 ky \[Theta]z1+48 EE^2 h0 Iy Iz ky \[Theta]z1+48 EE^2 h0 Iyz Iz kyz \[Theta]z1-24 EE^2 h0 Iz^2 kz \[Theta]z1+6 EE GG h0^3 kyz^2 Sz^2 \[Theta]z1-6 EE GG h0^3 ky kz Sz^2 \[Theta]z1-72 EE^2 h0 Iyz^2 ky \[Theta]z2+96 EE^2 h0 Iy Iz ky \[Theta]z2-48 EE^2 h0 Iyz Iz kyz \[Theta]z2+24 EE^2 h0 Iz^2 kz \[Theta]z2+6 EE GG h0^3 kyz^2 Sz^2 \[Theta]z2-6 EE GG h0^3 ky kz Sz^2 \[Theta]z2)+144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (6 cz h0^2-by h0^3-12 EE (Sz ux1-Sz ux2+Iyz \[Theta]y1-Iyz \[Theta]y2-Iz \[Theta]z1+Iz \[Theta]z2))-AA^3 GG^2 h0^3 (kyz^2-ky kz) (by h0^4+12 EE (h0 Sz (ux1-ux2)+6 Iyz (uz1-uz2+ey (\[Theta]x1-\[Theta]x2))+6 Iz (uy1-uy2+ez (-\[Theta]x1+\[Theta]x2))-2 h0 Iyz (\[Theta]y1+2 \[Theta]y2)+2 h0 Iz (\[Theta]z1+2 \[Theta]z2)))-12 AA EE (-72 cz EE h0^2 (Iyz^2-Iy Iz)+12 by EE h0^3 (Iyz^2-Iy Iz)+6 cy GG h0^4 Sz (ky Sy-kyz Sz)+6 bx GG h0^4 (Iyz ky Sy-Iz kyz Sy-Iy ky Sz+Iyz kyz Sz)+6 cz GG h0^4 Sz (kyz Sy-kz Sz)+by GG h0^5 (ky Sy^2+Sz (-2 kyz Sy+kz Sz))+12 EE (12 EE (Iyz^2-Iy Iz) (Sz (ux1-ux2)+Iyz (\[Theta]y1-\[Theta]y2)+Iz (-\[Theta]z1+\[Theta]z2))+GG h0 (6 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (kyz (uz1-uz2+ey \[Theta]x1-ey \[Theta]x2)+ky (uy1-uy2-ez \[Theta]x1+ez \[Theta]x2))+h0 (kz Sz^2 (Sz (ux1-ux2)+Iyz (\[Theta]y1-\[Theta]y2)+Iz (-\[Theta]z1+\[Theta]z2))+ky (-6 Iyz Sy Sz (\[Theta]z1+\[Theta]z2)+3 Iy Sz^2 (\[Theta]z1+\[Theta]z2)+Sy^2 (Sz (ux1-ux2)+Iyz \[Theta]y1-Iyz \[Theta]y2+2 Iz \[Theta]z1+4 Iz \[Theta]z2))-kyz (3 Iz Sy^2 (\[Theta]y1+\[Theta]y2)+3 Iy Sz^2 (\[Theta]y1+\[Theta]y2)+2 Sy Sz (Sz (ux1-ux2)-2 Iyz (\[Theta]y1+2 \[Theta]y2)+Iz (-\[Theta]z1+\[Theta]z2))))))))-\[Delta]\[Theta]y1 (6 AA^2 GG h0 (12 cz EE h0^3 Iy kyz+12 cy EE h0^3 (Iy ky-Iyz kyz)-12 cz EE h0^3 Iyz kz-2 bz EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)-bx GG h0^5 kyz^2 Sy+bx GG h0^5 ky kz Sy-24 EE^2 h0 Iy ky Sy ux1+48 EE^2 h0 Iyz kyz Sy ux1-24 EE^2 h0 Iz kz Sy ux1+24 EE^2 h0 Iy ky Sy ux2-48 EE^2 h0 Iyz kyz Sy ux2+24 EE^2 h0 Iz kz Sy ux2-144 EE^2 Iyz^2 kyz uy1+144 EE^2 Iy Iz kyz uy1+12 EE GG h0^2 kyz^2 Sy Sz uy1-12 EE GG h0^2 ky kz Sy Sz uy1+144 EE^2 Iyz^2 kyz uy2-144 EE^2 Iy Iz kyz uy2-12 EE GG h0^2 kyz^2 Sy Sz uy2+12 EE GG h0^2 ky kz Sy Sz uy2-144 EE^2 Iyz^2 kz uz1+144 EE^2 Iy Iz kz uz1+12 EE GG h0^2 kyz^2 Sy^2 uz1-12 EE GG h0^2 ky kz Sy^2 uz1+144 EE^2 Iyz^2 kz uz2-144 EE^2 Iy Iz kz uz2-12 EE GG h0^2 kyz^2 Sy^2 uz2+12 EE GG h0^2 ky kz Sy^2 uz2+144 EE^2 ez Iyz^2 kyz \[Theta]x1-144 EE^2 ez Iy Iz kyz \[Theta]x1-144 EE^2 ey Iyz^2 kz \[Theta]x1+144 EE^2 ey Iy Iz kz \[Theta]x1+12 EE ey GG h0^2 kyz^2 Sy^2 \[Theta]x1-12 EE ey GG h0^2 ky kz Sy^2 \[Theta]x1-12 EE ez GG h0^2 kyz^2 Sy Sz \[Theta]x1+12 EE ez GG h0^2 ky kz Sy Sz \[Theta]x1-144 EE^2 ez Iyz^2 kyz \[Theta]x2+144 EE^2 ez Iy Iz kyz \[Theta]x2+144 EE^2 ey Iyz^2 kz \[Theta]x2-144 EE^2 ey Iy Iz kz \[Theta]x2-12 EE ey GG h0^2 kyz^2 Sy^2 \[Theta]x2+12 EE ey GG h0^2 ky kz Sy^2 \[Theta]x2+12 EE ez GG h0^2 kyz^2 Sy Sz \[Theta]x2-12 EE ez GG h0^2 ky kz Sy Sz \[Theta]x2-24 EE^2 h0 Iy^2 ky \[Theta]y1+48 EE^2 h0 Iy Iyz kyz \[Theta]y1+72 EE^2 h0 Iyz^2 kz \[Theta]y1-96 EE^2 h0 Iy Iz kz \[Theta]y1-6 EE GG h0^3 kyz^2 Sy^2 \[Theta]y1+6 EE GG h0^3 ky kz Sy^2 \[Theta]y1+24 EE^2 h0 Iy^2 ky \[Theta]y2-48 EE^2 h0 Iy Iyz kyz \[Theta]y2+72 EE^2 h0 Iyz^2 kz \[Theta]y2-48 EE^2 h0 Iy Iz kz \[Theta]y2-6 EE GG h0^3 kyz^2 Sy^2 \[Theta]y2+6 EE GG h0^3 ky kz Sy^2 \[Theta]y2+24 EE^2 h0 Iy Iyz ky \[Theta]z1-120 EE^2 h0 Iyz^2 kyz \[Theta]z1+72 EE^2 h0 Iy Iz kyz \[Theta]z1+24 EE^2 h0 Iyz Iz kz \[Theta]z1+6 EE GG h0^3 kyz^2 Sy Sz \[Theta]z1-6 EE GG h0^3 ky kz Sy Sz \[Theta]z1-24 EE^2 h0 Iy Iyz ky \[Theta]z2-24 EE^2 h0 Iyz^2 kyz \[Theta]z2+72 EE^2 h0 Iy Iz kyz \[Theta]z2-24 EE^2 h0 Iyz Iz kz \[Theta]z2+6 EE GG h0^3 kyz^2 Sy Sz \[Theta]z2-6 EE GG h0^3 ky kz Sy Sz \[Theta]z2)+144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (-6 cy h0^2+bz h0^3+12 EE (Sy ux1-Sy ux2+Iy \[Theta]y1-Iy \[Theta]y2-Iyz \[Theta]z1+Iyz \[Theta]z2))+AA^3 GG^2 h0^3 (kyz^2-ky kz) (bz h0^4-12 EE (h0 Sy (-ux1+ux2)+6 Iy (uz1-uz2+ey (\[Theta]x1-\[Theta]x2))+6 Iyz (uy1-uy2+ez (-\[Theta]x1+\[Theta]x2))-2 h0 Iy (2 \[Theta]y1+\[Theta]y2)+2 h0 Iyz (2 \[Theta]z1+\[Theta]z2)))-12 AA EE (72 cy EE h0^2 (Iyz^2-Iy Iz)-12 bz EE h0^3 (Iyz^2-Iy Iz)+6 cy GG h0^4 Sy (ky Sy-kyz Sz)+6 cz GG h0^4 Sy (kyz Sy-kz Sz)+6 bx GG h0^4 (Iyz kyz Sy-Iz kz Sy-Iy kyz Sz+Iyz kz Sz)-bz GG h0^5 (ky Sy^2+Sz (-2 kyz Sy+kz Sz))+12 EE (12 EE (Iyz^2-Iy Iz) (Sy (-ux1+ux2)+Iy (-\[Theta]y1+\[Theta]y2)+Iyz (\[Theta]z1-\[Theta]z2))+GG h0 (6 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (kz (uz1-uz2+ey \[Theta]x1-ey \[Theta]x2)+kyz (uy1-uy2-ez \[Theta]x1+ez \[Theta]x2))+h0 (ky Sy^2 (Sy (-ux1+ux2)-Iy \[Theta]y1+Iy \[Theta]y2+Iyz \[Theta]z1-Iyz \[Theta]z2)-kz (3 Iz Sy^2 (\[Theta]y1+\[Theta]y2)+Sy Sz (Sz (ux1-ux2)-6 Iyz (\[Theta]y1+\[Theta]y2))+Sz^2 (2 Iy (2 \[Theta]y1+\[Theta]y2)+Iyz (-\[Theta]z1+\[Theta]z2)))+kyz (3 Iy Sz^2 (\[Theta]z1+\[Theta]z2)+Sy^2 (2 Sz (ux1-ux2)+3 Iz (\[Theta]z1+\[Theta]z2))+2 Sy Sz (Iy (\[Theta]y1-\[Theta]y2)-2 Iyz (2 \[Theta]z1+\[Theta]z2))))))))+\[Delta]\[Theta]z1 (-6 AA^2 GG h0 (-12 cz EE h0^3 Iyz kyz-12 cy EE h0^3 (Iyz ky-Iz kyz)+12 cz EE h0^3 Iz kz+2 by EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)+bx GG h0^5 kyz^2 Sz-bx GG h0^5 ky kz Sz+24 EE^2 h0 Iy ky Sz ux1-48 EE^2 h0 Iyz kyz Sz ux1+24 EE^2 h0 Iz kz Sz ux1-24 EE^2 h0 Iy ky Sz ux2+48 EE^2 h0 Iyz kyz Sz ux2-24 EE^2 h0 Iz kz Sz ux2+144 EE^2 Iyz^2 ky uy1-144 EE^2 Iy Iz ky uy1-12 EE GG h0^2 kyz^2 Sz^2 uy1+12 EE GG h0^2 ky kz Sz^2 uy1-144 EE^2 Iyz^2 ky uy2+144 EE^2 Iy Iz ky uy2+12 EE GG h0^2 kyz^2 Sz^2 uy2-12 EE GG h0^2 ky kz Sz^2 uy2+144 EE^2 Iyz^2 kyz uz1-144 EE^2 Iy Iz kyz uz1-12 EE GG h0^2 kyz^2 Sy Sz uz1+12 EE GG h0^2 ky kz Sy Sz uz1-144 EE^2 Iyz^2 kyz uz2+144 EE^2 Iy Iz kyz uz2+12 EE GG h0^2 kyz^2 Sy Sz uz2-12 EE GG h0^2 ky kz Sy Sz uz2-144 EE^2 ez Iyz^2 ky \[Theta]x1+144 EE^2 ez Iy Iz ky \[Theta]x1+144 EE^2 ey Iyz^2 kyz \[Theta]x1-144 EE^2 ey Iy Iz kyz \[Theta]x1-12 EE ey GG h0^2 kyz^2 Sy Sz \[Theta]x1+12 EE ey GG h0^2 ky kz Sy Sz \[Theta]x1+12 EE ez GG h0^2 kyz^2 Sz^2 \[Theta]x1-12 EE ez GG h0^2 ky kz Sz^2 \[Theta]x1+144 EE^2 ez Iyz^2 ky \[Theta]x2-144 EE^2 ez Iy Iz ky \[Theta]x2-144 EE^2 ey Iyz^2 kyz \[Theta]x2+144 EE^2 ey Iy Iz kyz \[Theta]x2+12 EE ey GG h0^2 kyz^2 Sy Sz \[Theta]x2-12 EE ey GG h0^2 ky kz Sy Sz \[Theta]x2-12 EE ez GG h0^2 kyz^2 Sz^2 \[Theta]x2+12 EE ez GG h0^2 ky kz Sz^2 \[Theta]x2+24 EE^2 h0 Iy Iyz ky \[Theta]y1-120 EE^2 h0 Iyz^2 kyz \[Theta]y1+72 EE^2 h0 Iy Iz kyz \[Theta]y1+24 EE^2 h0 Iyz Iz kz \[Theta]y1+6 EE GG h0^3 kyz^2 Sy Sz \[Theta]y1-6 EE GG h0^3 ky kz Sy Sz \[Theta]y1-24 EE^2 h0 Iy Iyz ky \[Theta]y2-24 EE^2 h0 Iyz^2 kyz \[Theta]y2+72 EE^2 h0 Iy Iz kyz \[Theta]y2-24 EE^2 h0 Iyz Iz kz \[Theta]y2+6 EE GG h0^3 kyz^2 Sy Sz \[Theta]y2-6 EE GG h0^3 ky kz Sy Sz \[Theta]y2+72 EE^2 h0 Iyz^2 ky \[Theta]z1-96 EE^2 h0 Iy Iz ky \[Theta]z1+48 EE^2 h0 Iyz Iz kyz \[Theta]z1-24 EE^2 h0 Iz^2 kz \[Theta]z1-6 EE GG h0^3 kyz^2 Sz^2 \[Theta]z1+6 EE GG h0^3 ky kz Sz^2 \[Theta]z1+72 EE^2 h0 Iyz^2 ky \[Theta]z2-48 EE^2 h0 Iy Iz ky \[Theta]z2-48 EE^2 h0 Iyz Iz kyz \[Theta]z2+24 EE^2 h0 Iz^2 kz \[Theta]z2-6 EE GG h0^3 kyz^2 Sz^2 \[Theta]z2+6 EE GG h0^3 ky kz Sz^2 \[Theta]z2)+144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (6 cz h0^2+by h0^3+12 EE (Sz ux1-Sz ux2+Iyz \[Theta]y1-Iyz \[Theta]y2-Iz \[Theta]z1+Iz \[Theta]z2))+AA^3 GG^2 h0^3 (kyz^2-ky kz) (by h0^4-12 EE (h0 Sz (-ux1+ux2)+6 Iyz (uz1-uz2+ey (\[Theta]x1-\[Theta]x2))+6 Iz (uy1-uy2+ez (-\[Theta]x1+\[Theta]x2))-2 h0 Iyz (2 \[Theta]y1+\[Theta]y2)+2 h0 Iz (2 \[Theta]z1+\[Theta]z2)))+12 AA EE (72 cz EE h0^2 (Iyz^2-Iy Iz)+12 by EE h0^3 (Iyz^2-Iy Iz)+6 cy GG h0^4 Sz (-ky Sy+kyz Sz)+6 cz GG h0^4 Sz (-kyz Sy+kz Sz)+6 bx GG h0^4 (Iz kyz Sy+Iy ky Sz-Iyz (ky Sy+kyz Sz))+by GG h0^5 (ky Sy^2+Sz (-2 kyz Sy+kz Sz))+12 EE (12 EE (Iyz^2-Iy Iz) (Sz (ux1-ux2)+Iyz (\[Theta]y1-\[Theta]y2)+Iz (-\[Theta]z1+\[Theta]z2))+GG h0 (-6 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (kyz (uz1-uz2+ey \[Theta]x1-ey \[Theta]x2)+ky (uy1-uy2-ez \[Theta]x1+ez \[Theta]x2))+h0 (kz Sz^2 (Sz (ux1-ux2)+Iyz (\[Theta]y1-\[Theta]y2)+Iz (-\[Theta]z1+\[Theta]z2))+kyz (3 Iz Sy^2 (\[Theta]y1+\[Theta]y2)+3 Iy Sz^2 (\[Theta]y1+\[Theta]y2)-2 Sy Sz (Sz (ux1-ux2)+4 Iyz \[Theta]y1+2 Iyz \[Theta]y2-Iz \[Theta]z1+Iz \[Theta]z2))+ky (6 Iyz Sy Sz (\[Theta]z1+\[Theta]z2)-3 Iy Sz^2 (\[Theta]z1+\[Theta]z2)+Sy^2 (Sz (ux1-ux2)+Iyz (\[Theta]y1-\[Theta]y2)-2 Iz (2 \[Theta]z1+\[Theta]z2))))))))+\[Delta]\[Theta]y2 (-6 AA^2 GG h0 (12 cz EE h0^3 Iy kyz+12 cy EE h0^3 (Iy ky-Iyz kyz)-12 cz EE h0^3 Iyz kz+2 bz EE h0^4 (Iy ky-2 Iyz kyz+Iz kz)-bx GG h0^5 kyz^2 Sy+bx GG h0^5 ky kz Sy+24 EE^2 h0 Iy ky Sy ux1-48 EE^2 h0 Iyz kyz Sy ux1+24 EE^2 h0 Iz kz Sy ux1-24 EE^2 h0 Iy ky Sy ux2+48 EE^2 h0 Iyz kyz Sy ux2-24 EE^2 h0 Iz kz Sy ux2-144 EE^2 Iyz^2 kyz uy1+144 EE^2 Iy Iz kyz uy1+12 EE GG h0^2 kyz^2 Sy Sz uy1-12 EE GG h0^2 ky kz Sy Sz uy1+144 EE^2 Iyz^2 kyz uy2-144 EE^2 Iy Iz kyz uy2-12 EE GG h0^2 kyz^2 Sy Sz uy2+12 EE GG h0^2 ky kz Sy Sz uy2-144 EE^2 Iyz^2 kz uz1+144 EE^2 Iy Iz kz uz1+12 EE GG h0^2 kyz^2 Sy^2 uz1-12 EE GG h0^2 ky kz Sy^2 uz1+144 EE^2 Iyz^2 kz uz2-144 EE^2 Iy Iz kz uz2-12 EE GG h0^2 kyz^2 Sy^2 uz2+12 EE GG h0^2 ky kz Sy^2 uz2+144 EE^2 ez Iyz^2 kyz \[Theta]x1-144 EE^2 ez Iy Iz kyz \[Theta]x1-144 EE^2 ey Iyz^2 kz \[Theta]x1+144 EE^2 ey Iy Iz kz \[Theta]x1+12 EE ey GG h0^2 kyz^2 Sy^2 \[Theta]x1-12 EE ey GG h0^2 ky kz Sy^2 \[Theta]x1-12 EE ez GG h0^2 kyz^2 Sy Sz \[Theta]x1+12 EE ez GG h0^2 ky kz Sy Sz \[Theta]x1-144 EE^2 ez Iyz^2 kyz \[Theta]x2+144 EE^2 ez Iy Iz kyz \[Theta]x2+144 EE^2 ey Iyz^2 kz \[Theta]x2-144 EE^2 ey Iy Iz kz \[Theta]x2-12 EE ey GG h0^2 kyz^2 Sy^2 \[Theta]x2+12 EE ey GG h0^2 ky kz Sy^2 \[Theta]x2+12 EE ez GG h0^2 kyz^2 Sy Sz \[Theta]x2-12 EE ez GG h0^2 ky kz Sy Sz \[Theta]x2+24 EE^2 h0 Iy^2 ky \[Theta]y1-48 EE^2 h0 Iy Iyz kyz \[Theta]y1+72 EE^2 h0 Iyz^2 kz \[Theta]y1-48 EE^2 h0 Iy Iz kz \[Theta]y1-6 EE GG h0^3 kyz^2 Sy^2 \[Theta]y1+6 EE GG h0^3 ky kz Sy^2 \[Theta]y1-24 EE^2 h0 Iy^2 ky \[Theta]y2+48 EE^2 h0 Iy Iyz kyz \[Theta]y2+72 EE^2 h0 Iyz^2 kz \[Theta]y2-96 EE^2 h0 Iy Iz kz \[Theta]y2-6 EE GG h0^3 kyz^2 Sy^2 \[Theta]y2+6 EE GG h0^3 ky kz Sy^2 \[Theta]y2-24 EE^2 h0 Iy Iyz ky \[Theta]z1-24 EE^2 h0 Iyz^2 kyz \[Theta]z1+72 EE^2 h0 Iy Iz kyz \[Theta]z1-24 EE^2 h0 Iyz Iz kz \[Theta]z1+6 EE GG h0^3 kyz^2 Sy Sz \[Theta]z1-6 EE GG h0^3 ky kz Sy Sz \[Theta]z1+24 EE^2 h0 Iy Iyz ky \[Theta]z2-120 EE^2 h0 Iyz^2 kyz \[Theta]z2+72 EE^2 h0 Iy Iz kyz \[Theta]z2+24 EE^2 h0 Iyz Iz kz \[Theta]z2+6 EE GG h0^3 kyz^2 Sy Sz \[Theta]z2-6 EE GG h0^3 ky kz Sy Sz \[Theta]z2)+144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (6 cy h0^2+bz h0^3+12 EE (Sy ux1-Sy ux2+Iy \[Theta]y1-Iy \[Theta]y2-Iyz \[Theta]z1+Iyz \[Theta]z2))+AA^3 GG^2 h0^3 (kyz^2-ky kz) (bz h0^4+12 EE (h0 Sy (ux1-ux2)+6 Iy (uz1-uz2+ey (\[Theta]x1-\[Theta]x2))+6 Iyz (uy1-uy2+ez (-\[Theta]x1+\[Theta]x2))-2 h0 Iy (\[Theta]y1+2 \[Theta]y2)+2 h0 Iyz (\[Theta]z1+2 \[Theta]z2)))+12 AA EE (72 cy EE h0^2 (Iyz^2-Iy Iz)+12 bz EE h0^3 (Iyz^2-Iy Iz)+6 cy GG h0^4 Sy (ky Sy-kyz Sz)+6 cz GG h0^4 Sy (kyz Sy-kz Sz)+6 bx GG h0^4 (Iyz kyz Sy-Iz kz Sy-Iy kyz Sz+Iyz kz Sz)+bz GG h0^5 (ky Sy^2+Sz (-2 kyz Sy+kz Sz))-12 EE (12 EE (Iyz^2-Iy Iz) (Sy (-ux1+ux2)+Iy (-\[Theta]y1+\[Theta]y2)+Iyz (\[Theta]z1-\[Theta]z2))+GG h0 (-6 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz)) (kz (uz1-uz2+ey \[Theta]x1-ey \[Theta]x2)+kyz (uy1-uy2-ez \[Theta]x1+ez \[Theta]x2))+h0 (kz (3 Iz Sy^2 (\[Theta]y1+\[Theta]y2)-Sy Sz (Sz (ux1-ux2)+6 Iyz (\[Theta]y1+\[Theta]y2))+Sz^2 (2 Iy (\[Theta]y1+2 \[Theta]y2)+Iyz (\[Theta]z1-\[Theta]z2)))+ky Sy^2 (Sy (-ux1+ux2)-Iy \[Theta]y1+Iy \[Theta]y2+Iyz \[Theta]z1-Iyz \[Theta]z2)+kyz (-3 Iy Sz^2 (\[Theta]z1+\[Theta]z2)+Sy^2 (2 Sz (ux1-ux2)-3 Iz (\[Theta]z1+\[Theta]z2))+2 Sy Sz (Iy (\[Theta]y1-\[Theta]y2)+2 Iyz (\[Theta]z1+2 \[Theta]z2)))))))))/(12 h0 (12 AA^2 EE GG h0^2 (Iy ky-2 Iyz kyz+Iz kz)+AA^3 GG^2 h0^4 (-kyz^2+ky kz)-144 EE^2 (Iz Sy^2+Sz (-2 Iyz Sy+Iy Sz))-12 AA EE (12 EE (Iyz^2-Iy Iz)+GG h0^2 (ky Sy^2-2 kyz Sy Sz+kz Sz^2))))]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[VIBR,{BEAM,{{EE_,GG_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[VIBR,{BEAM,{{EE,GG,\[Rho]\[Rho]},{AA,0,0,Iyy,Izz,0,{0,1,0}},{fX,fY,fZ,0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{BEAM,{{EE_,GG_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[VIBR,{BEAM,{{EE,GG,\[Rho]\[Rho]},{AA,0,0,Iyy,Izz,0,{0,1,0}},{0,0,0,0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{BEAM,{{EE_,GG_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_,ey_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[VIBR,{BEAM,{{EE,GG,\[Rho]\[Rho]},{AA,0,0,Iyy,Izz,0,ey},{0,0,0,0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{BEAM,{{EE_,GG_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_,ey_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[VIBR,{BEAM,{{EE,GG,\[Rho]\[Rho]},{AA,0,0,Iyy,Izz,0,ey},{fX,fY,fZ,0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[VIBR,{BEAM,{{EE_,GG_,\[Rho]\[Rho]_},{AA_,Sy_,Sz_,Iyy_,Izz_,Iyz_,iy_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Line[{n1_,n2_}]},fun_]:=Module[{nl,\[Xi],r0,h0,ix,iz,N2,N4,uXf,uYf,uZf,\[Theta]Xf,\[Theta]Yf,\[Theta]Zf,u,v,w,\[Phi],\[Theta],\[Psi],fx,fy,fz,mx,my,mz,u0,v0,w0,\[Phi]0,\[Theta]0,\[Psi]0,u2,v2,w2,\[Phi]2,\[Theta]2,\[Psi]2,AE,CE,BE,A\[Rho],B\[Rho],C\[Rho],\[Epsilon]\[Epsilon],\[Kappa]\[Kappa],F,M,\[Delta]wint,\[Delta]wext,\[Delta]wine}, nl ={n1,n2}; (*mapping to material system*) r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],{L>0,h>0}]; ix=r0/h0; iz=ix\[Cross]iy; (*shape functions*) N2={1-\[Xi],\[Xi]}; N4= {(1-\[Xi])^2 (1+2 \[Xi]),h0 (1-\[Xi])^2 \[Xi],(3-2 \[Xi]) \[Xi]^2,h0 \[Xi]^2 ( \[Xi]-1)}; (*approximations in the structural system*) uXf=N2 . {fun[[n1,2,1]],fun[[n2,2,1]]}+Apply[Plus,N2]*uX[nl]*0; uYf=N4 . {fun[[n1,2,2]],fun[[n1,3,3]],fun[[n2,2,2]],fun[[n2,3,3]]}; uZf=N4 . {fun[[n1,2,3]],-fun[[n1,3,2]],fun[[n2,2,3]],-fun[[n2,3,2]]}; \[Theta]Xf=N2 . {fun[[n1,3,1]],fun[[n2,3,1]]}; \[Theta]Yf=-\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]uZf\)/h0; \[Theta]Zf=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]uYf\)/h0; (*transform to the material system*) {u,v,w}={ix,iy,iz} . {uXf,uYf,uZf}; {\[Phi],\[Theta],\[Psi]}={ix,iy,iz} . {\[Theta]Xf,\[Theta]Yf,\[Theta]Zf}; {fx,fy,fz}={ix,iy,iz} . {fX,fY,fZ}; {mx,my,mz}={ix,iy,iz} . {mX,mY,mZ}; {u0,v0,w0}={u,v,w} /.DRULE[0]; {\[Phi]0,\[Theta]0,\[Psi]0}={\[Phi],\[Theta],\[Psi]} /.DRULE[0]; {u2,v2,w2}={u,v,w}/.DRULE[2]; {\[Phi]2,\[Theta]2,\[Psi]2}={\[Phi],\[Theta],\[Psi]} /.DRULE[2]; (*elasticity dyad and cross-section properties are known in the material system*) AE={{EE AA,0,0},{0,GG AA,0},{0,0,GG AA}}; CE={{0,EE Sy,-EE Sz},{-GG Sy,0,0},{GG Sz,0,0}}; BE={{GG(Iyy+Izz) ,0,0},{0,EE Iyy,-EE Iyz},{0,-EE Iyz,EE Izz}}; (*inertia properties simplified*) A\[Rho]=\[Rho]\[Rho] {{AA,0,0},{0,AA,0},{0,0,AA}}; C\[Rho]=\[Rho]\[Rho] {{0,Sy,-Sz},{-Sy,0,0},{Sz,0,0}}*0; B\[Rho]=\[Rho]\[Rho] {{Iyy+Izz,0,0},{0,Iyy,-Iyz},{0,-Iyz,Izz}}*0; (*strain measures*) \[Epsilon]\[Epsilon]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]\({u0, v0, w0}\)\)/h0+{1,0,0}\[Cross]{\[Phi]0,\[Theta]0,\[Psi]0}; \[Kappa]\[Kappa]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]\({\[Phi]0, \[Theta]0, \[Psi]0}\)\)/h0; (*stress resultants*) F=AE . \[Epsilon]\[Epsilon]+CE . \[Kappa]\[Kappa]; M=Transpose[CE] . \[Epsilon]\[Epsilon]+BE . \[Kappa]\[Kappa]; (*virtual work expressions*) \[Delta]wint=-\[Delta]\[Delta][\[Epsilon]\[Epsilon]] . F-\[Delta]\[Delta][\[Kappa]\[Kappa]] . M; \[Delta]wext=\[Delta]\[Delta][{u0,v0,w0}] . {fx,fy,fz}+\[Delta]\[Delta][{\[Phi]0,\[Theta]0,\[Psi]0}] . {mx,my,mz}; \[Delta]wine=-\[Delta]\[Delta][{u0,v0,w0}] . (A\[Rho] . {u2,v2,w2}+C\[Rho] . {\[Phi]2,\[Theta]2,\[Psi]2})- \[Delta]\[Delta][{\[Phi]0,\[Theta]0,\[Psi]0}] . (-C\[Rho] . {u2,v2,w2}+B\[Rho] . {\[Phi]2,\[Theta]2,\[Psi]2}); QUAD[LIN7,(\[Delta]wint+\[Delta]wext+\[Delta]wine)*h0,{\[Xi]}] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[STAB,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_,iy0_},{fx_,fy_,fz_}},Line[node_]},fun_]:=\[Delta]W[STAB,{BEAM,{{EE,GG},{AA,Iyy,Izz,iy0},{fx,fy,fz,0,0,0}},Line[node]},fun]; \[Delta]W[STAB,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_}},Line[node_]},fun_]:=\[Delta]W[STAB,{BEAM,{{EE,GG},{AA,Iyy,Izz,{0,1,0}},{0,0,0,0,0,0}},Line[node]},fun]; \[Delta]W[STAB,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_},{fx_,fy_,fz_}},Line[node_]},fun_]:=\[Delta]W[STAB,{BEAM,{{EE,GG},{AA,Iyy,Izz,{0,1,0}},{fx,fy,fz,0,0,0}},Line[node]},fun]; \[Delta]W[STAB,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_},{fx_,fy_,fz_,mx_,my_,mz_}},Line[node_]},fun_]:=\[Delta]W[STAB,{BEAM,{{EE,GG},{AA,Iyy,Izz,{0,1,0}},{fx,fy,fz,mx,my,mz}},Line[node]},fun]; \[Delta]W[STAB,{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_,iy0_},{fx_,fy_,fz_,mx_,my_,mz_}},Line[{n1_,n2_}]},fun_]:= Module[{r0,h0,h\[Alpha]0,i\[Alpha]0,ix0,iz0,ux,uy ,uz ,\[Theta]x ,\[Theta]y ,\[Theta]z ,\[Delta]ux ,\[Delta]uy,\[Delta]uz,\[Delta]\[Theta]x,\[Delta]\[Theta]y,\[Delta]\[Theta]z}, (*mapping*) r0=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[r0 . r0],L>0&&h>0]; ix0=r0/h0; iz0=ix0\[Cross]iy0; {ux[1],uy[1],uz[1]}={ix0,iy0,iz0} . fun[[n1,2]]; {ux[2],uy[2],uz[2]}={ix0,iy0,iz0} . fun[[n2,2]]; {\[Theta]x[1],\[Theta]y[1],\[Theta]z[1]}={ix0,iy0,iz0} . fun[[n1,3]]; {\[Theta]x[2],\[Theta]y[2],\[Theta]z[2]}={ix0,iy0,iz0} . fun[[n2,3]]; {\[Delta]ux[1],\[Delta]uy[1],\[Delta]uz[1]}=\[Delta][{ux[1],uy[1],uz[1]}]; {\[Delta]ux[2],\[Delta]uy[2],\[Delta]uz[2]}=\[Delta][{ux[2],uy[2],uz[2]}]; {\[Delta]\[Theta]x[1],\[Delta]\[Theta]y[1],\[Delta]\[Theta]z[1]}=\[Delta][{\[Theta]x[1],\[Theta]y[1],\[Theta]z[1]}]; {\[Delta]\[Theta]x[2],\[Delta]\[Theta]y[2],\[Delta]\[Theta]z[2]}=\[Delta][{\[Theta]x[2],\[Theta]y[2],\[Theta]z[2]}]; 1/(60 h0^3) (30 fx h0^4 (\[Delta]ux[1]+\[Delta]ux[2])-5 (144 EE (Izz (uy[1]-uy[2]) (\[Delta]uy[1]-\[Delta]uy[2])+Iyy (uz[1]-uz[2]) (\[Delta]uz[1]-\[Delta]uz[2]))+12 h0^3 (mz (\[Delta]uy[1]-\[Delta]uy[2])+my (-\[Delta]uz[1]+\[Delta]uz[2]))-6 h0^4 (fz (\[Delta]uz[1]+\[Delta]uz[2])+mx (\[Delta]\[Theta]x[1]+\[Delta]\[Theta]x[2]))+fz h0^5 (\[Delta]\[Theta]y[1]-\[Delta]\[Theta]y[2])-fy h0^4 (6 \[Delta]uy[1]+6 \[Delta]uy[2]+h0 \[Delta]\[Theta]z[1]-h0 \[Delta]\[Theta]z[2])-72 EE h0 (Iyy (uz[1]-uz[2]) (\[Delta]\[Theta]y[1]+\[Delta]\[Theta]y[2])-Izz (uy[1]-uy[2]) (\[Delta]\[Theta]z[1]+\[Delta]\[Theta]z[2])+Iyy (\[Delta]uz[1]-\[Delta]uz[2]) (\[Theta]y[1]+\[Theta]y[2])-Izz (\[Delta]uy[1]-\[Delta]uy[2]) (\[Theta]z[1]+\[Theta]z[2]))+12 h0^2 (GG (Iyy+Izz) (\[Delta]\[Theta]x[1]-\[Delta]\[Theta]x[2]) (\[Theta]x[1]-\[Theta]x[2])+2 EE (Iyy (2 \[Delta]\[Theta]y[1]+\[Delta]\[Theta]y[2]) \[Theta]y[1]+Iyy (\[Delta]\[Theta]y[1]+2 \[Delta]\[Theta]y[2]) \[Theta]y[2]+Izz (2 \[Delta]\[Theta]z[1]+\[Delta]\[Theta]z[2]) \[Theta]z[1]+Izz (\[Delta]\[Theta]z[1]+2 \[Delta]\[Theta]z[2]) \[Theta]z[2])))+2 AA EE h0 (36 (ux[1]-ux[2]) ((uy[1]-uy[2]) (\[Delta]uy[1]-\[Delta]uy[2])+(uz[1]-uz[2]) (\[Delta]uz[1]-\[Delta]uz[2]))+h0 (30 (ux[1]-ux[2]) (-\[Delta]ux[1]+\[Delta]ux[2])-(ux[1]-ux[2]) (3 uz[1] (\[Delta]\[Theta]y[1]+\[Delta]\[Theta]y[2])-3 uz[2] (\[Delta]\[Theta]y[1]+\[Delta]\[Theta]y[2])+h0 (\[Delta]\[Theta]y[2] (\[Theta]y[1]-4 \[Theta]y[2])+\[Delta]\[Theta]y[1] (-4 \[Theta]y[1]+\[Theta]y[2])+\[Delta]\[Theta]z[2] (\[Theta]z[1]-4 \[Theta]z[2])+\[Delta]\[Theta]z[1] (-4 \[Theta]z[1]+\[Theta]z[2]))-3 ((uy[1]-uy[2]) (\[Delta]\[Theta]z[1]+\[Delta]\[Theta]z[2])-(\[Delta]uz[1]-\[Delta]uz[2]) (\[Theta]y[1]+\[Theta]y[2])+(\[Delta]uy[1]-\[Delta]uy[2]) (\[Theta]z[1]+\[Theta]z[2]))))))]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) (*rotations are replaced by first derivatives of approximation*) \[Delta]W[NONL,{BEAM,{{EE_},{AA_,Iy_}},Line[{n1_,n2_}]},fun_]:=\[Delta]W[NONL,{BEAM,{{EE},{AA,Iy},{0,0,0}},Line[{n1,n2}]},fun]; \[Delta]W[NONL,{BEAM,{{EE_},{AA_,Iy_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]},fun_]:=Module[{\[CapitalDelta]h,h0,ix,iz,NN,\[Xi],u,w,\[Epsilon],\[Kappa],fx,fz,\[Delta]wint,\[Delta]wext}, \[CapitalDelta]h=fun[[n2,1]]-fun[[n1,1]]; h0=Simplify[Sqrt[\[CapitalDelta]h . \[CapitalDelta]h], L>0&&h>0]; ix=\[CapitalDelta]h/h0; iz=ix\[Cross]{0,1,0}; NN={(1-\[Xi])^2 (1+2 \[Xi]),h0 (1-\[Xi])^2 \[Xi],(3-2 \[Xi]) \[Xi]^2,h0 \[Xi]^2 (-1+\[Xi])}; u=NN . Flatten[fun[[{n1,n2},2;;3,1]]]; w=NN . Flatten[fun[[{n1,n2},2;;3,3]]]; u=ix . {u,0,w}; w=iz . {u,0,w}; (*strain measures for a planar problem*) \[Epsilon]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]u\)/h0+(\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]u\)/h0)^2/2+(\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]w\)/h0)^2/2; \[Kappa]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]w\)/h0*\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi], \[Xi]\)]u\)/h0^2-(1+\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]u\)/h0)\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi], \[Xi]\)]w\)/h0^2; \[Kappa]=\[Kappa]/(1+2 \[Epsilon])^(3/2); (*\[Kappa]=-\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi], \[Xi]\)]w\)/h0^2;*) fx =ix . {fX,fY,fZ}; fz =iz . {fX,fY,fZ}; (*virtual work density*) \[Delta]wint=-\[Delta]\[Delta][\[Kappa]]*EE*Iy*\[Kappa]-\[Delta]\[Delta][\[Epsilon]]*EE*AA*\[Epsilon]; \[Delta]wext=\[Delta][u]*fx+\[Delta][w]*fz; QUAD[LIN7,\[Delta]wint+\[Delta]wext,\[Xi]]*h0]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{PLANE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; \[Delta]W[DISP,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:=Module[{nl,rx,ry,rz,ex,ey,ez,AA,x,y,xl,yl,N3,NN,uX,uY,uZ,u,v,\[Epsilon]\[Epsilon],EM,\[Delta]wint,\[Delta]wext,map}, nl={n1,n2,n3}; (*orthonormal material system*) rx=fun[[n2,1,;;]]-fun[[n1,1,;;]]; ry=fun[[n3,1,;;]]-fun[[n1,1,;;]]; rz=rx\[Cross]ry; ex=rx/Sqrt[rx . rx]; ez=rz/Sqrt[rz . rz]; ey=ez\[Cross]ex; AA=Sqrt[rz . rz]/2 ; (*shape functions*) {xl,yl}={ex,ey} . Transpose[fun[[nl,1]]]; N3=Inverse[{{1,1,1},xl,yl}] . {1,x,y}; (*approximations in the structural system*) {uX,uY,uZ}=N3 . fun[[nl,2]]; (*approximations in the material system*) {u,v}={ex,ey} . {uX,uY,uZ}; (*strain and stress measures*) \[Epsilon]\[Epsilon]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\), \!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]v\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\)+\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]u\)}; EM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0},{\[Nu]\[Nu],1,0},{0,0,(1-\[Nu]\[Nu])/2}}; NN=tt*EM . \[Epsilon]\[Epsilon]; (* virtual work densities*) \[Delta]wint=-\[Delta][\[Epsilon]\[Epsilon]] . NN; \[Delta]wext=\[Delta][{uX,uY,uZ}] . {fX,fY,fZ}*tt; map={xl,yl} . {1-#[[1]]-#[[2]],#[[1]],#[[2]]}&; QUAD[TRI1,\[Delta]wint+\[Delta]wext,{x,y},map]*AA*2 ]; (* ::Input::Initialization:: *) \[Delta]W[DISP,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:= \[Delta]W[DISP,{PLANE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n2,n3,n4}]},fun]; \[Delta]W[STRESS|DISP,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:=Module[{node,NN,r,e\[Alpha],e\[Beta],en,FF,FFINV,jac,uvw,\[Epsilon],\[Sigma],\[Delta]ww,\[Delta]WW,e,ee,EM,GM,EEEE,\[Delta]wint,\[Delta]wext}, (*shape functions etc*) node ={n1,n2,n3,n4}; NN={(1-\[Alpha])(1-\[Beta]),\[Alpha](1-\[Beta]),\[Alpha] \[Beta],(1-\[Alpha])\[Beta]}; r=NN . fun[[node,1]]; {e\[Alpha],e\[Beta]}={\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r\)} /.{\[Alpha]->1/2,\[Beta]->1/2}; en=e\[Alpha]\[Cross]e\[Beta]; en=Simplify[en/Sqrt[ en . en],L>0&&h>0]; FF={e\[Alpha],e\[Beta],en}; FFINV =Simplify[Inverse[FF],L>0&&h>0]; jac=Simplify[Abs[Det[FF]],L>0&&h>0]; (*approximations in structural system*) uvw=NN . fun[[node,2]]; (*displacement gradient in the structural system*) \[Epsilon]=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Gamma]\)]uvw\)}; (*Plane stress elasticity dyad*) e={{1,0,0},{0,1,0},{0,0,1}}; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GM=Inverse[{{(2+2*\[Nu]\[Nu])/EE,0,0},{0,(2+2*\[Nu]\[Nu])/EE,0},{0,0,(2+2*\[Nu]\[Nu])/EE}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]];EEEE=Simplify[EEEE-(EEEE . en) . Inverse[en . EEEE . en] . (en . EEEE)]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; \[Delta]wint=-Flatten[\[Delta][\[Epsilon]]] . Flatten[\[Sigma]]*tt; \[Delta]wext=\[Delta][uvw] . {fX,fY,fZ}; QUAD[REC9,(\[Delta]wext+\[Delta]wint)*jac,{\[Alpha],\[Beta]}] ]; (* ::Input::Initialization:: *) (*MEC-E1050 defs*) \[Delta]W[DISP,{PLANESTRAIN,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{PLANESTRAIN,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; \[Delta]W[DISP,{PLANESTRAIN,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:=Module[{nl,NN,r,e1,e2,nn,FF,FFINV,jac,uvw,\[Epsilon],\[Sigma],\[Delta]ww,\[Delta]WW,e,ee,EM,GM,EEEE,\[Delta]wint,\[Delta]wext}, (*shape functions*) nl ={n1,n2,n3}; NN={\[Alpha],\[Beta],1-\[Alpha]-\[Beta]}; r=NN . fun[[nl,1]]; e1=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r\); e2=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r\); e3=e1\[Cross]e2; nn=Simplify[e3/Sqrt[e3 . e3],L>0]; FF={e1, e2,nn}; FFINV =Simplify[Inverse[FF],L>0]; jac=Simplify[Abs[Det[FF]],L>0]; (*approximations in structural system*) uvw=NN . fun[[nl,2]]; (*displacement gradient in the structural system*) \[Epsilon]=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Gamma]\)]uvw\)}; (*Plane stress elasticity dyad*) e={{1,0,0},{0,1,0},{0,0,1}}; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GM=Inverse[{{(2+2*\[Nu]\[Nu])/EE,0,0},{0,(2+2*\[Nu]\[Nu])/EE,0},{0,0,(2+2*\[Nu]\[Nu])/EE}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; \[Delta]wint=-Flatten[\[Delta][\[Epsilon]]] . Flatten[\[Sigma]]*tt; \[Delta]wext=\[Delta][uvw] . {fX,fY,fZ}; QUAD[TRI7,(\[Delta]wext+\[Delta]wint)*jac,{\[Alpha],\[Beta]}] ]; (* ::Input::Initialization:: *) \[Delta]W[STRES,{PLANE,{{EE_,\[Nu]\[Nu]_},anya_,anyb_},Polygon[node_]},fun_]:=Module[{nl,NN,r,e\[Alpha],e\[Beta],en,FF,FFINV,jac,uvw,\[Epsilon],\[Sigma],\[Delta]ww,\[Delta]WW,e,ee,EM,GM,EEEE,\[Delta]wint,\[Delta]wext}, (*shape functions*) nl=Length[node]; NN[3]={\[Alpha],\[Beta],1-\[Alpha]-\[Beta]}; NN[4]={(1-\[Alpha])(1-\[Beta]),\[Alpha](1-\[Beta]),\[Alpha] \[Beta],(1-\[Alpha])\[Beta]}; r=NN[nl] . fun[[node,1]]; e\[Alpha]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r\); e\[Beta]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r\); en=e\[Alpha]\[Cross]e\[Beta]; en=Simplify[en/Sqrt[en . en],L>0&&Lx>0&&Ly>0&&h>0]; FF={e\[Alpha], e\[Beta],en}; FFINV =Simplify[Inverse[FF],L>0&&Lx>0&&Ly>0&&h>0]; jac=Simplify[Abs[Det[FF]],L>0&&Lx>0&&Ly>0&&h>0]; (*approximations in structural system*) uvw=NN[nl] . fun[[node,2]]; (*displacement gradient in the structural system*) \[Epsilon]=FFINV . Transpose[D[uvw,{{\[Alpha],\[Beta],\[Gamma]}}]]; (*Plane stress elasticity tensor*) e=IdentityMatrix[3]; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GM=Inverse[{{(2+2*\[Nu]\[Nu])/EE,0,0},{0,(2+2*\[Nu]\[Nu])/EE,0},{0,0,(2+2*\[Nu]\[Nu])/EE}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]];EEEE=Simplify[EEEE-(EEEE . en) . Inverse[en . EEEE . en] . (en . EEEE)]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; Return[Thread[Flatten[{{\[Sigma]XX,\[Sigma]XY,\[Sigma]XZ},{\[Sigma]YX,\[Sigma]YY,\[Sigma]YZ},{\[Sigma]ZX,\[Sigma]ZY,\[Sigma]ZZ}}]-> Flatten[\[Sigma]]]] ]; \[Delta]W[STRES,{PLANESTRAIN,{{EE_,\[Nu]\[Nu]_},anya_,anyb_},Polygon[node_]},fun_]:=Module[{nl,NN,r,e\[Alpha],e\[Beta],en,FF,FFINV,jac,uvw,\[Epsilon],\[Sigma],\[Delta]ww,\[Delta]WW,e,ee,EM,GM,EEEE,\[Delta]wint,\[Delta]wext}, (*shape functions*) nl=Length[node]; NN[3]={\[Alpha],\[Beta],1-\[Alpha]-\[Beta]}; NN[4]={(1-\[Alpha])(1-\[Beta]),\[Alpha](1-\[Beta]),\[Alpha] \[Beta],(1-\[Alpha])\[Beta]}; r=NN[nl] . fun[[node,1]]; e\[Alpha]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r\); e\[Beta]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r\); en=e\[Alpha]\[Cross]e\[Beta]; en=Simplify[en/Sqrt[en . en],L>0&&Lx>0&&Ly>0&&h>0]; FF={e\[Alpha], e\[Beta],en}; FFINV =Simplify[Inverse[FF],L>0&&Lx>0&&Ly>0&&h>0]; jac=Simplify[Abs[Det[FF]],L>0&&Lx>0&&Ly>0&&h>0]; (*approximations in structural system*) uvw=NN[nl] . fun[[node,2]]; (*displacement gradient in the structural system*) \[Epsilon]=FFINV . Transpose[D[uvw,{{\[Alpha],\[Beta],\[Gamma]}}]]; (*Plane stress elasticity tensor*) e=IdentityMatrix[3]; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GM=Inverse[{{(2+2*\[Nu]\[Nu])/EE,0,0},{0,(2+2*\[Nu]\[Nu])/EE,0},{0,0,(2+2*\[Nu]\[Nu])/EE}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; Return[Thread[Flatten[{{\[Sigma]XX,\[Sigma]XY,\[Sigma]XZ},{\[Sigma]YX,\[Sigma]YY,\[Sigma]YZ},{\[Sigma]ZX,\[Sigma]ZY,\[Sigma]ZZ}}]-> Flatten[\[Sigma]]]] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[VIBR,{PLANE,{{EE_,\[Nu]\[Nu]_,\[Rho]\[Rho]_},{tt_}},Polygon[node_]},fun_]:= \[Delta]W[VIBR,{PLANE,{{EE,\[Nu]\[Nu],\[Rho]\[Rho]},{tt},{0,0,0}},Polygon[node]},fun]; \[Delta]W[VIBR,{PLANE,{{EE_,\[Nu]\[Nu]_,\[Rho]\[Rho]_},{tt_},{fX_,fY_,fZ_}},Polygon[node_]},fun_]:=Module[{nl,NN,INT,MID,r,e1,e2,e3,nn,FF,FFINV,jac,uvw,uvw0,uvw2,\[Epsilon],\[Sigma],\[Delta]ww,\[Delta]WW,e,ee,EM,GM,EEEE,\[Delta]wint,\[Delta]wext,\[Delta]wine}, (*shape functions*) nl=Length[node]; NN[3]={\[Alpha],\[Beta],1-\[Alpha]-\[Beta]}; NN[4]={(1-\[Alpha])(1-\[Beta]),\[Alpha](1-\[Beta]),\[Alpha] \[Beta],(1-\[Alpha])\[Beta]}; INT[3]=TRI7;INT[4]=REC9; MID[3]={\[Alpha]->1/3,\[Beta]->1/3}; MID[4]={\[Alpha]->1/2,\[Beta]->1/2}; (*element plane*) r=NN[nl] . fun[[node,1]]; {e1,e2}={\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r\)} /.MID[nl]; e3=e1\[Cross]e2; nn=Simplify[e3/Sqrt[e3 . e3],L>0&&h>0]; FF={e1, e2,nn}; FFINV =Simplify[Inverse[FF],L>0&&h>0]; jac=Simplify[Abs[Det[FF]],L>0&&h>0]; (*approximations in structural system*) uvw=NN[nl] . fun[[node,2]]; (*uvw =uvw-e3(e3.uvw);*) uvw0=uvw/. DRULE[0]; uvw2=uvw/. DRULE[2]; (*displacement gradient in the structural system*) \[Epsilon]=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]uvw0\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]uvw0\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Gamma]\)]uvw0\)}; (*Plane stress elasticity dyad*) e={{1,0,0},{0,1,0},{0,0,1}}; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GM=Inverse[{{(2+2*\[Nu]\[Nu])/EE,0,0},{0,(2+2*\[Nu]\[Nu])/EE,0},{0,0,(2+2*\[Nu]\[Nu])/EE}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]];EEEE=Simplify[EEEE-(EEEE . nn) . Inverse[nn . EEEE . nn] . (nn . EEEE)]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; \[Delta]wint=-Flatten[\[Delta][\[Epsilon]]] . Flatten[\[Sigma]]*tt; \[Delta]wext=\[Delta][uvw0] . {fX,fY,fZ}; \[Delta]wine=-\[Delta][uvw0] . uvw2*\[Rho]\[Rho]*tt; Return[QUAD[INT[nl],(\[Delta]wext+\[Delta]wint+\[Delta]wine)*jac,{\[Alpha],\[Beta]}]] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[STAB,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Triangle[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{PLANE,{{EE,\[Nu]\[Nu]},{tt},{fX,fY,fZ}},Polygon[{n1,n2,n3}]},fun]; \[Delta]W[STAB,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:= \[Delta]W[DISP,{PLANE,{{EE,\[Nu]\[Nu]},{tt},{fX,fY,fZ}},Polygon[{n1,n2,n3}]},fun]; \[Delta]W[STAB,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:= \[Delta]W[DISP,{PLANE,{{EE,\[Nu]\[Nu]},{tt},{fX,fY,fZ}},Polygon[{n1,n2,n3,n4}]},fun]; (* ::Input::Initialization:: *) (*MEC-E8001 defs *) \[Delta]W[NONL,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[node_]},fun_]:= \[Delta]W[NONL,{PLANE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[node]},fun]; \[Delta]W[NONL,{PLANE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[node_]},fun_]:=Module[{nl,NN,INT,MID,DOM,r,e1,e2,e3,nn,FF,FFINV,jac,uvw,\[Epsilon],\[Sigma],\[Delta]ww,\[Delta]WW,e,ee,EM,GM,EEEE,\[Delta]wint,\[Delta]wext,FG,\[Delta]EG,EG,SS}, (*shape functions*) nl=Length[node]; NN[3]={1-\[Alpha]-\[Beta],\[Alpha],\[Beta]};NN[4]={(1-\[Alpha])(1-\[Beta]),\[Alpha](1-\[Beta]),\[Alpha] \[Beta],(1-\[Alpha])\[Beta]}; INT[3]=TRI7;INT[4]=REC9; MID[3]={\[Alpha]->1/3,\[Beta]->1/3}; MID[4]={\[Alpha]->1/2,\[Beta]->1/2}; DOM[4]={{0,0},{1,0},{0,1},{1,1}}; DOM[3]={{0,0},{1,0},{1,1}}; (*orthonomal basis defined by the mapping*) r=NN[nl] . fun[[node,1]]; {e1,e2}={\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r\)} /.MID[nl]; e3=e1\[Cross]e2; nn=Simplify[e3/Sqrt[e3 . e3],L>0]; FF={e1, e2, nn}; FFINV =Simplify[Inverse[FF],L>0]; jac=Simplify[Abs[Det[FF]],L>0]; (*approximations in structural system*) uvw=NN[nl] . fun[[node,2]]; (*displacement gradient in the structural system*) FG=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Gamma]\)]uvw\)}; EG=(FG+Transpose[FG]+FG . Transpose[FG])/2; \[Delta]EG=(\[Delta][FG]+Transpose[\[Delta][FG]]+\[Delta][FG] . Transpose[FG]+FG . Transpose[\[Delta][FG]])/2; (*Plane stress elasticity dyad*) e={{1,0,0},{0,1,0},{0,0,1}}; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GM=Inverse[{{(2+2*\[Nu]\[Nu])/EE,0,0},{0,(2+2*\[Nu]\[Nu])/EE,0},{0,0,(2+2*\[Nu]\[Nu])/EE}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]];EEEE=Simplify[EEEE-(EEEE . nn) . Inverse[nn . EEEE . nn] . (nn . EEEE)]; (*symmetric stress*) SS=Sum[EEEE[[;;,;;,i,j]]*EG[[j,i]],{i,1,3},{j,1,3}]; \[Delta]wint=-Flatten[\[Delta]EG] . Flatten[SS] tt; \[Delta]wext=\[Delta][uvw] . {fX,fY,fZ}; If[nl==3,Return[QUAD[INT[nl],(\[Delta]wext+\[Delta]wint)*jac,{\[Alpha],\[Beta]}]]]; If[nl==4,Return[Integrate[(\[Delta]wext+\[Delta]wint)*jac,{\[Alpha],\[Beta]}\[Element]Polygon[{{0,0},{1,0},{1,1},{0,1}}]]]] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[TMEC,{PLANE,{{EE_,\[Nu]\[Nu]_,\[Alpha]\[Alpha]_,kk_},{tt_},{{ss_,\[CurlyTheta]0_}}},Polygon[node_]},fun_]:= \[Delta]W[TMEC,{PLANE,{{EE,\[Nu]\[Nu],\[Alpha]\[Alpha],kk},{tt},{{0,0,0},{ss,\[CurlyTheta]0}}},Polygon[node]},fun]; \[Delta]W[TMEC,{PLANE,{{EE_,\[Nu]\[Nu]_,\[Alpha]\[Alpha]_,kk_},{tt_},{{fX_,fY_,fZ_},{ss_,\[CurlyTheta]0_}}},Polygon[node_]},fun_]:=Module[{nl,NN,INT,MID,r,e1,e2,e3,nn,FF,FFINV,jac,uvw,du,d\[CurlyTheta],\[Epsilon],\[Sigma],\[Delta]ww,\[Delta]WW,e,ee,EM,GM,EEEE,\[Delta]wint,\[Delta]wext,\[Delta]pint,\[Delta]pext,\[CurlyTheta]\[CurlyTheta]}, (*shape functions*) nl=Length[node]; NN[3]={1-\[Xi]-\[Eta],\[Xi],\[Eta]};NN[4]={(1-\[Xi])(1-\[Eta]),\[Xi](1-\[Eta]),\[Xi] \[Eta],(1-\[Xi])\[Eta]}; INT[3]=TRI7;INT[4]=REC9; MID[3]={\[Xi]->1/3,\[Eta]->1/3}; MID[4]={\[Xi]->1/2,\[Eta]->1/2}; r=NN[nl] . fun[[node,1]]; {e1,e2}={\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Eta]\)]r\)} /.MID[nl]; e3=e1\[Cross]e2; nn=Simplify[e3/Sqrt[e3 . e3],L>0&&h>0]; FF={e1, e2,nn}; FFINV =Simplify[Inverse[FF],L>0&&h>0]; jac=Simplify[Abs[Det[FF]],L>0&&h>0]; (*approximations in structural system*) uvw=NN[nl] . fun[[node,2]]; \[CurlyTheta]\[CurlyTheta]=NN[nl] . fun[[node,4]]; (*displacement gradient in the structural system*) du=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Eta]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Zeta]\)]uvw\)}; d\[CurlyTheta]=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]\[CurlyTheta]\[CurlyTheta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Eta]\)]\[CurlyTheta]\[CurlyTheta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Zeta]\)]\[CurlyTheta]\[CurlyTheta]\)}; (*Plane stress elasticity dyad*) e={{1,0,0},{0,1,0},{0,0,1}}; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GM=Inverse[{{(2+2 \[Nu]\[Nu])/EE,0,0},{0,(2+2 \[Nu]\[Nu])/EE,0},{0,0,(2+2 \[Nu]\[Nu])/EE}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]];EEEE=Simplify[EEEE-(EEEE . nn) . Inverse[nn . EEEE . nn] . (nn . EEEE)]; (*symmetric stress*) \[Epsilon]=du-IdentityMatrix[3]*\[Alpha]\[Alpha]*(\[CurlyTheta]\[CurlyTheta]-\[CurlyTheta]0); \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; \[Delta]wint=-Flatten[\[Delta]\[Delta][du]] . Flatten[\[Sigma]]*tt; \[Delta]wext=\[Delta]\[Delta][uvw] . {fX,fY,fZ}; \[Delta]pint=-\[Delta]\[Delta][d\[CurlyTheta]] . d\[CurlyTheta]*kk*tt; \[Delta]pext= \[Delta]\[Delta][\[CurlyTheta]\[CurlyTheta]]*ss; Return[QUAD[INT[nl],(\[Delta]wext+\[Delta]wint+\[Delta]pint+\[Delta]pext)*jac,{\[Xi],\[Eta]}]] ]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n2_,n3_}]},fun_]:=\[Delta]W[DISP,{PLATE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; \[Delta]W[DISP,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:=Module[{nl,rx,ry,rz,ex,ey,ez,x,y,x1,x2,x3,y1,y2,y3,xl,yl,zl,AA,N3,M3,ul,vl,wl,\[Phi]l,\[Theta]l,\[Psi]l,u,v,w,\[Phi],\[Theta],\[Psi],\[Phi]\[Theta]\[Psi],xyz,uvw,u12,u23,u31,du,fx,fy,fz,\[Epsilon]\[Epsilon],\[Kappa]\[Kappa],\[Gamma]\[Gamma],EM,EMM,GM,N,M,Q,\[Delta]wint,\[Delta]wext,map,GG}, nl={n1,n2,n3}; (*orthonormal material system*) rx=fun[[n2,1,;;]]-fun[[n1,1,;;]]; ry=fun[[n3,1,;;]]-fun[[n1,1,;;]]; rz=rx\[Cross]ry; ex=rx/Sqrt[rx . rx]; ez=rz/Sqrt[rz . rz]; ey=ez\[Cross]ex; AA=Sqrt[rz . rz]/2 ; (*quantities in the material system*) {xl,yl,zl}={ex,ey,ez} . Transpose[fun[[nl,1]]]; {ul,vl,wl}={ex,ey,ez} . Transpose[fun[[nl,2]]]; {\[Phi]l,\[Theta]l,\[Psi]l}={ex,ey,ez} . Transpose[fun[[nl,3]]]; {fx,fy,fz}={ex,ey,ez} . {fX,fY,fZ}; (*shape functions*) N3 =Inverse[{{1,1,1},xl,yl}] . {1,x,y}; M3={N3[[1]]*N3[[2]],N3[[2]]*N3[[3]],N3[[3]]*N3[[1]]}*4; (*inverse MITC3 projection*) xyz=Transpose[{xl,yl,zl}]; \[Phi]\[Theta]\[Psi]=Transpose[{\[Phi]l,\[Theta]l,\[Psi]l}]; u12 =(\[Phi]\[Theta]\[Psi][[1]]-\[Phi]\[Theta]\[Psi][[2]])\[Cross](xyz[[2]]-xyz[[1]])/8; u23 =(\[Phi]\[Theta]\[Psi][[2]]-\[Phi]\[Theta]\[Psi][[3]])\[Cross](xyz[[3]]-xyz[[2]])/8; u31 =(\[Phi]\[Theta]\[Psi][[3]]-\[Phi]\[Theta]\[Psi][[1]])\[Cross](xyz[[1]]-xyz[[3]])/8; du=Transpose[{u12,u23,u31}]; {u,v,w}={ul,vl,wl} . N3+du . M3; {\[Phi],\[Theta],\[Psi]}={\[Phi]l,\[Theta]l,\[Psi]l} . N3; \[Epsilon]\[Epsilon]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\), \!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]v\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\)-\[Psi],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]u\)+\[Psi]}; \[Kappa]\[Kappa]={-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Theta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Phi]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]\)-\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Theta]\)}; \[Gamma]\[Gamma]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\)+\[Theta],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)-\[Phi]}; (* isotropic material*) GG=EE/(2+2*\[Nu]\[Nu]); EM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0},{\[Nu]\[Nu],1,0},{0,0,0}}; EM[[3,3]]=GG; EMM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0,0},{\[Nu]\[Nu],1,0,0},{0,0,0,0},{0,0,0,0}}; EMM[[3,3]]=EMM[[4,4]]=2 GG ; GM=GG*{{1,0},{0,1}}; N=tt*EMM . \[Epsilon]\[Epsilon]; M=tt^3/12*EM . \[Kappa]\[Kappa]; Q=tt^3/(tt^2+AA/20)*5/6*GM . \[Gamma]\[Gamma]; \[Delta]wint=-\[Delta][\[Epsilon]\[Epsilon]] . N-\[Delta][\[Kappa]\[Kappa]] . M-\[Delta][\[Gamma]\[Gamma]] . Q; \[Delta]wext=\[Delta][{u,v,w}] . {fx,fy,fz}; map={xl,yl} . {1-#[[1]]-#[[2]],#[[1]],#[[2]]}&; QUAD[TRI1,\[Delta]wint+\[Delta]wext,{x,y},map]*AA*2 ]; (*potential energy version*) \[Delta]U[DISP,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n2_,n3_}]},fun_]:=\[Delta]U[DISP,{PLATE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; \[Delta]U[DISP,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:=Module[{nl,rx,ry,rz,ex,ey,ez,x,y,x1,x2,x3,y1,y2,y3,xl,yl,zl,AA,N3,M3,ul,vl,wl,\[Phi]l,\[Theta]l,\[Psi]l,u,v,w,\[Phi],\[Theta],\[Psi],\[Phi]\[Theta]\[Psi],xyz,uvw,u12,u23,u31,du,fx,fy,fz,\[Epsilon]\[Epsilon],\[Kappa]\[Kappa],\[Gamma]\[Gamma],EM,EMM,GM,N,M,Q,uint,uext,map,GG}, nl={n1,n2,n3}; (*orthonormal material system*) rx=fun[[n2,1,;;]]-fun[[n1,1,;;]]; ry=fun[[n3,1,;;]]-fun[[n1,1,;;]]; rz=rx\[Cross]ry; ex=rx/Sqrt[rx . rx]; ez=rz/Sqrt[rz . rz]; ey=ez\[Cross]ex; AA=Sqrt[rz . rz]/2 ; (*quantities in the material system*) {xl,yl,zl}={ex,ey,ez} . Transpose[fun[[nl,1]]]; {ul,vl,wl}={ex,ey,ez} . Transpose[fun[[nl,2]]]; {\[Phi]l,\[Theta]l,\[Psi]l}={ex,ey,ez} . Transpose[fun[[nl,3]]]; {fx,fy,fz}={ex,ey,ez} . {fX,fY,fZ}; (*shape functions*) N3 =Inverse[{{1,1,1},xl,yl}] . {1,x,y}; M3={N3[[1]]*N3[[2]],N3[[2]]*N3[[3]],N3[[3]]*N3[[1]]}*4; (*inverse MITC3 projection*) xyz=Transpose[{xl,yl,zl}]; \[Phi]\[Theta]\[Psi]=Transpose[{\[Phi]l,\[Theta]l,\[Psi]l}]; u12 =(\[Phi]\[Theta]\[Psi][[1]]-\[Phi]\[Theta]\[Psi][[2]])\[Cross](xyz[[2]]-xyz[[1]])/8; u23 =(\[Phi]\[Theta]\[Psi][[2]]-\[Phi]\[Theta]\[Psi][[3]])\[Cross](xyz[[3]]-xyz[[2]])/8; u31 =(\[Phi]\[Theta]\[Psi][[3]]-\[Phi]\[Theta]\[Psi][[1]])\[Cross](xyz[[1]]-xyz[[3]])/8; du=Transpose[{u12,u23,u31}]; {u,v,w}={ul,vl,wl} . N3+du . M3; {\[Phi],\[Theta],\[Psi]}={\[Phi]l,\[Theta]l,\[Psi]l} . N3; \[Epsilon]\[Epsilon]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\), \!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]v\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\)-\[Psi],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]u\)+\[Psi]}; \[Kappa]\[Kappa]={-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Theta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Phi]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]\)-\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Theta]\)}; \[Gamma]\[Gamma]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\)+\[Theta],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)-\[Phi]}; (* isotropic material*) GG=EE/(2+2*\[Nu]\[Nu]); EM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0},{\[Nu]\[Nu],1,0},{0,0,0}}; EM[[3,3]]=GG; EMM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0,0},{\[Nu]\[Nu],1,0,0},{0,0,0,0},{0,0,0,0}}; EMM[[3,3]]=EMM[[4,4]]=2 GG ; GM=GG*{{1,0},{0,1}}; N=tt*EMM . \[Epsilon]\[Epsilon]; M=tt^3/12*EM . \[Kappa]\[Kappa]; Q=tt^3/(tt^2+AA/20)*5/6*GM . \[Gamma]\[Gamma]; uint=(\[Epsilon]\[Epsilon] . N+\[Kappa]\[Kappa] . M+\[Gamma]\[Gamma] . Q)/2; uext=-{u,v,w} . {fx,fy,fz}; map={xl,yl} . {1-#[[1]]-#[[2]],#[[1]],#[[2]]}&; QUAD[TRI3,uint+uext,{x,y},map]*AA*2 ]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n12_,n2_,n23_,n3_,n31_}]},fun_]:=\[Delta]W[DISP,{PLATE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n12,n2,n23,n3,n31}]},fun]; \[Delta]W[DISP,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n12_,n2_,n23_,n3_,n31_}]},fun_]:=Module[{nl,rx,ry,rz,ex,ey,ez,x,y,x1,x2,x3,y1,y2,y3,xl,yl,zl,ul,vl,wl,\[Phi]l,\[Theta]l,\[Psi]l,uL,vL,wL,\[Phi]L,\[Theta]L,\[Psi]L,AA,edg,N3,M3,NN,u,v,w,\[Phi],\[Theta],\[Psi],dd,dw,ML,MR,aa,\[Pi]\[Phi],\[Pi]\[Theta],fx,fy,fz,\[Epsilon]\[Epsilon],\[Kappa]\[Kappa],\[Gamma]\[Gamma],GG,EM,EMM,GM,N,M,Q,\[Delta]wint,\[Delta]wext,map,equ,sol,exp,\[Delta]WW,eqs,a,\[Delta]a}, nl={n1,n2,n3,n12,n23,n31}; (*orthonormal material system*) rx=fun[[n2,1,;;]]-fun[[n1,1,;;]]; ry=fun[[n3,1,;;]]-fun[[n1,1,;;]]; rz=rx\[Cross]ry; ex=rx/Sqrt[rx . rx]; ez=rz/Sqrt[rz . rz]; ey=ez\[Cross]ex; AA=Sqrt[rz . rz]/2; (*quantities in the material system*) {xl,yl,zl}={ex,ey,ez} . Transpose[fun[[nl,1]]]; {ul,vl,wl}={ex,ey,ez} . Transpose[fun[[nl,2]]]; {\[Phi]l,\[Theta]l,\[Psi]l}={ex,ey,ez} . Transpose[fun[[nl,3]]]; {fx,fy,fz}={ex,ey,ez} . {fX,fY,fZ}; (*shape functions*) {x1,x2,x3}=xl[[1;;3]]; {y1,y2,y3}=yl[[1;;3]]; N3=Inverse[{{1,1,1},{x1,x2,x3},{y1,y2,y3}}] . {1,x,y}; M3={N3[[1]]*N3[[2]],N3[[2]]*N3[[3]],N3[[3]]*N3[[1]]}*4; NN=Join[{N3[[1]]-M3[[1]]/2-M3[[3]]/2,N3[[2]]-M3[[1]]/2-M3[[2]]/2,N3[[3]]-M3[[2]]/2-M3[[3]]/2},M3]; {u,v,w}={ul,vl,wl} . NN; {\[Phi],\[Theta],\[Psi]}={\[Phi]l,\[Theta]l,\[Psi]l} . NN; dw=a[1] y^3+a[2]x^3+a[3] y^2 x+a[4]x^2 y; dd=Map[dw /.{x->#[[1]],y->#[[2]]}&,Transpose[{xl[[1;;3]],yl[[1;;3]]}]]; dw=dw-dd . N3; w= w+dw; (*strain measures*) \[Epsilon]\[Epsilon]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\), \!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]v\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\)-\[Psi],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]u\)+\[Psi]}; \[Kappa]\[Kappa]={-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Theta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Phi]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]\)-\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Theta]\)}; \[Gamma]\[Gamma]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\)+\[Theta],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)-\[Phi]}; (* isotropic material*) GG=EE/(2+2*\[Nu]\[Nu]); EM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0},{\[Nu]\[Nu],1,0},{0,0,0}}; EM[[3,3]]=GG; EMM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0,0},{\[Nu]\[Nu],1,0,0},{0,0,0,0},{0,0,0,0}}; EMM[[3,3]]=EMM[[4,4]]=2GG ; GM=GG*{{1,0},{0,1}}; N=tt*EMM . \[Epsilon]\[Epsilon]; M=tt^3/12*EM . \[Kappa]\[Kappa]; Q=tt*5/6*GM . \[Gamma]\[Gamma]; (* virtual work *) \[Delta]wint=-\[Delta][\[Epsilon]\[Epsilon]] . N-\[Delta][\[Kappa]\[Kappa]] . M-\[Delta][\[Gamma]\[Gamma]] . Q; \[Delta]wext=\[Delta][{u,v,w}] . {fx,fy,fz}; map={xl[[1;;3]],yl[[1;;3]]} . {1-#[[1]]-#[[2]],#[[1]],#[[2]]}&; \[Delta]WW=QUAD[TRI7,\[Delta]wint+\[Delta]wext,{x,y},map]*AA*2; eqs = D[\[Delta]WW,{Array[\[Delta]a,4]}]; sol=Solve[Thread[eqs==0],Array[a,4]][[1]]; \[Delta]WW /.sol /.Thread[Array[\[Delta]a,4]->0] ]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[VIBR,{PLATE,{{EE_,\[Nu]\[Nu]_,\[Rho]\[Rho]_},{tt_}},Polygon[{n1_,n2_,n3_}]},fun_]:=\[Delta]W[VIBR,{PLATE,{{EE,\[Nu]\[Nu],\[Rho]\[Rho]},{tt},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; \[Delta]W[VIBR,{PLATE,{{EE_,\[Nu]\[Nu]_,\[Rho]\[Rho]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:=Module[{nl,rx,ry,rz,ex,ey,ez,x,y,x1,x2,x3,y1,y2,y3,xl,yl,zl,AA,N3,M3,ul,vl,wl,\[Phi]l,\[Theta]l,\[Psi]l,u,v,w,\[Phi],\[Theta],\[Psi],u0,v0,w0,\[Phi]0,\[Theta]0,\[Psi]0,u2,v2,w2,\[Phi]2,\[Theta]2,\[Psi]2,\[Phi]\[Theta]\[Psi],xyz,uvw,u12,u23,u31,du,fx,fy,fz,\[Epsilon]\[Epsilon],\[Kappa]\[Kappa],\[Gamma]\[Gamma],EM,EMM,GM,N,M,Q,\[Delta]wint,\[Delta]wext,\[Delta]wine,map,GG}, nl={n1,n2,n3}; (*orthonormal material system*) rx=fun[[n2,1,;;]]-fun[[n1,1,;;]]; ry=fun[[n3,1,;;]]-fun[[n1,1,;;]]; rz=rx\[Cross]ry; ex=rx/Sqrt[rx . rx]; ez=rz/Sqrt[rz . rz]; ey=ez\[Cross]ex; AA=Sqrt[rz . rz]/2 ; (*quantities in the material system*) {xl,yl,zl}={ex,ey,ez} . Transpose[fun[[nl,1]]]; {ul,vl,wl}={ex,ey,ez} . Transpose[fun[[nl,2]]]; {\[Phi]l,\[Theta]l,\[Psi]l}={ex,ey,ez} . Transpose[fun[[nl,3]]]; {fx,fy,fz}={ex,ey,ez} . {fX,fY,fZ}; (*shape functions*) N3 =Inverse[{{1,1,1},xl,yl}] . {1,x,y}; M3={N3[[1]]*N3[[2]],N3[[2]]*N3[[3]],N3[[3]]*N3[[1]]}*4; (*inverse MITC3 projection*) xyz=Transpose[{xl,yl,zl}]; \[Phi]\[Theta]\[Psi]=Transpose[{\[Phi]l,\[Theta]l,\[Psi]l}]; u12 =(\[Phi]\[Theta]\[Psi][[1]]-\[Phi]\[Theta]\[Psi][[2]])\[Cross](xyz[[2]]-xyz[[1]])/8; u23 =(\[Phi]\[Theta]\[Psi][[2]]-\[Phi]\[Theta]\[Psi][[3]])\[Cross](xyz[[3]]-xyz[[2]])/8; u31 =(\[Phi]\[Theta]\[Psi][[3]]-\[Phi]\[Theta]\[Psi][[1]])\[Cross](xyz[[1]]-xyz[[3]])/8; du=Transpose[{u12,u23,u31}]; {u,v,w}={ul,vl,wl} . N3+du . M3; {\[Phi],\[Theta],\[Psi]}={\[Phi]l,\[Theta]l,\[Psi]l} . N3; (*time derivatives*) {u0,v0,w0}={u,v,w} /.DRULE[0]; {u2,v2,w2}={u,v,w} /.DRULE[2]; {\[Phi]0,\[Theta]0,\[Psi]0}={\[Phi],\[Theta],\[Psi]} /.DRULE[0]; {\[Phi]2,\[Theta]2,\[Psi]2}={\[Phi],\[Theta],\[Psi]} /.DRULE[2]; \[Epsilon]\[Epsilon]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u0\), \!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]v0\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v0\)-\[Psi]0,\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]u0\)+\[Psi]0}; \[Kappa]\[Kappa]={-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Theta]0\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Phi]0\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]0\)-\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Theta]0\)}; \[Gamma]\[Gamma]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w0\)+\[Theta]0,\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w0\)-\[Phi]0}; (* isotropic material*) GG=EE/(2+2*\[Nu]\[Nu]); EM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0},{\[Nu]\[Nu],1,0},{0,0,0}}; EM[[3,3]]=GG; EMM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0,0},{\[Nu]\[Nu],1,0,0},{0,0,0,0},{0,0,0,0}}; EMM[[3,3]]=EMM[[4,4]]=2 GG ; GM=GG*{{1,0},{0,1}}; N=tt*EMM . \[Epsilon]\[Epsilon]; M=tt^3/12*EM . \[Kappa]\[Kappa]; Q=tt^3/(tt^2+AA/20)*5/6*GM . \[Gamma]\[Gamma]; \[Delta]wint=-\[Delta][\[Epsilon]\[Epsilon]] . N-\[Delta][\[Kappa]\[Kappa]] . M-\[Delta][\[Gamma]\[Gamma]] . Q; \[Delta]wext=\[Delta][{u,v,w}] . {fx,fy,fz}; \[Delta]wine=-tt*\[Rho]\[Rho]*\[Delta][{u0,v0,w0}] . {u2,v2,w2}-tt^3/12*\[Rho]\[Rho]*\[Delta][{\[Phi]0,\[Theta]0,\[Psi]0}] . {\[Phi]2,\[Theta]2,\[Psi]2}; map={xl,yl} . {1-#[[1]]-#[[2]],#[[1]],#[[2]]}&; QUAD[TRI3,\[Delta]wint+\[Delta]wext+\[Delta]wine,{x,y},map]*AA*2 ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[STAB,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n2_,n3_}]},fun_]:=\[Delta]W[STAB,{PLATE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; \[Delta]W[STAB,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:=Module[{nl,rx,ry,rz,ex,ey,ez,x,y,x1,x2,x3,y1,y2,y3,xl,yl,zl,AA,N3,M3,ul,vl,wl,\[Phi]l,\[Theta]l,\[Psi]l,u,v,w,\[Phi],\[Theta],\[Psi],\[Phi]\[Theta]\[Psi],xyz,uvw,u12,u23,u31,du,fx,fy,fz,\[Epsilon]\[Epsilon],\[Kappa]\[Kappa],\[Gamma]\[Gamma],EM,EMM,GM,N,M,Q,\[Delta]wint,\[Delta]wext,\[Delta]wsta,map,GG}, nl={n1,n2,n3}; (*orthonormal material system*) rx=fun[[n2,1,;;]]-fun[[n1,1,;;]]; ry=fun[[n3,1,;;]]-fun[[n1,1,;;]]; rz=rx\[Cross]ry; ex=rx/Sqrt[rx . rx]; ez=rz/Sqrt[rz . rz]; ey=ez\[Cross]ex; AA=Sqrt[rz . rz]/2 ; (*quantities in the material system*) {xl,yl,zl}={ex,ey,ez} . Transpose[fun[[nl,1]]]; {ul,vl,wl}={ex,ey,ez} . Transpose[fun[[nl,2]]]; {\[Phi]l,\[Theta]l,\[Psi]l}={ex,ey,ez} . Transpose[fun[[nl,3]]]; {fx,fy,fz}={ex,ey,ez} . {fX,fY,fZ}; (*shape functions*) N3 =Inverse[{{1,1,1},xl,yl}] . {1,x,y}; M3={N3[[1]]*N3[[2]],N3[[2]]*N3[[3]],N3[[3]]*N3[[1]]}*4; (*inverse MITC3 projection*) xyz=Transpose[{xl,yl,zl}]; \[Phi]\[Theta]\[Psi]=Transpose[{\[Phi]l,\[Theta]l,\[Psi]l}]; u12 =(\[Phi]\[Theta]\[Psi][[1]]-\[Phi]\[Theta]\[Psi][[2]])\[Cross](xyz[[2]]-xyz[[1]])/8; u23 =(\[Phi]\[Theta]\[Psi][[2]]-\[Phi]\[Theta]\[Psi][[3]])\[Cross](xyz[[3]]-xyz[[2]])/8; u31 =(\[Phi]\[Theta]\[Psi][[3]]-\[Phi]\[Theta]\[Psi][[1]])\[Cross](xyz[[1]]-xyz[[3]])/8; du=Transpose[{u12,u23,u31}]; {u,v,w}={ul,vl,wl} . N3+du . M3; {\[Phi],\[Theta],\[Psi]}={\[Phi]l,\[Theta]l,\[Psi]l} . N3; \[Epsilon]\[Epsilon]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\), \!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]v\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\)-\[Psi],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]u\)+\[Psi]}; \[Kappa]\[Kappa]={-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Theta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Phi]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]\)-\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Theta]\)}; \[Gamma]\[Gamma]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\)+\[Theta],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)-\[Phi]}; (* isotropic material*) GG=EE/(2+2*\[Nu]\[Nu]); EM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0},{\[Nu]\[Nu],1,0},{0,0,0}}; EM[[3,3]]=GG; EMM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0,0},{\[Nu]\[Nu],1,0,0},{0,0,0,0},{0,0,0,0}}; EMM[[3,3]]=EMM[[4,4]]=2 GG ; GM=GG*{{1,0},{0,1}}; N=tt*EMM . \[Epsilon]\[Epsilon]; M=tt^3/12*EM . \[Kappa]\[Kappa]; Q=tt^3/(tt^2+AA/20)*5/6*GM . \[Gamma]\[Gamma]; \[Delta]wint=-\[Delta][\[Epsilon]\[Epsilon]] . N-\[Delta][\[Kappa]\[Kappa]] . M-\[Delta][\[Gamma]\[Gamma]] . Q; \[Delta]wext=\[Delta][{u,v,w}] . {fx,fy,fz}; \[Delta]wsta=-\[Delta][{\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)}] . {{N[[1]],N[[3]]},{N[[4]],N[[2]]}} . {\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)}; map={xl,yl} . {1-#[[1]]-#[[2]],#[[1]],#[[2]]}&; QUAD[TRI4,\[Delta]wint+\[Delta]wext+\[Delta]wsta,{x,y},map]*AA*2 ]; (* ::Input::Initialization:: *) (*MEC-E1050 | MEC-E8001 defs*) \[Delta]W[NONL,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n2_,n3_}]},fun_]:=\[Delta]W[NONL,{PLATE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; \[Delta]W[NONL,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:=Module[{nl,rx,ry,rz,ex,ey,ez,x,y,x1,x2,x3,y1,y2,y3,xl,yl,zl,AA,N3,M3,ul,vl,wl,\[Phi]l,\[Theta]l,\[Psi]l,u,v,w,\[Phi],\[Theta],\[Psi],\[Phi]\[Theta]\[Psi],xyz,uvw,u12,u23,u31,du,fx,fy,fz,\[Epsilon]\[Epsilon],\[Kappa]\[Kappa],\[Gamma]\[Gamma],EM,EMM,GM,N,M,Q,\[Delta]wint,\[Delta]wext,map,GG}, nl={n1,n2,n3}; (*orthonormal material system*) rx=fun[[n2,1,;;]]-fun[[n1,1,;;]]; ry=fun[[n3,1,;;]]-fun[[n1,1,;;]]; rz=rx\[Cross]ry; ex=rx/Sqrt[rx . rx]; ez=rz/Sqrt[rz . rz]; ey=ez\[Cross]ex; AA=Sqrt[rz . rz]/2 ; (*quantities in the material system*) {xl,yl,zl}={ex,ey,ez} . Transpose[fun[[nl,1]]]; {ul,vl,wl}={ex,ey,ez} . Transpose[fun[[nl,2]]]; {\[Phi]l,\[Theta]l,\[Psi]l}={ex,ey,ez} . Transpose[fun[[nl,3]]]; {fx,fy,fz}={ex,ey,ez} . {fX,fY,fZ}; (*shape functions*) N3 =Inverse[{{1,1,1},xl,yl}] . {1,x,y}; M3={N3[[1]]*N3[[2]],N3[[2]]*N3[[3]],N3[[3]]*N3[[1]]}*4; (*inverse MITC3 projection*) xyz=Transpose[{xl,yl,zl}]; \[Phi]\[Theta]\[Psi]=Transpose[{\[Phi]l,\[Theta]l,\[Psi]l}]; u12 =(\[Phi]\[Theta]\[Psi][[1]]-\[Phi]\[Theta]\[Psi][[2]])\[Cross](xyz[[2]]-xyz[[1]])/8; u23 =(\[Phi]\[Theta]\[Psi][[2]]-\[Phi]\[Theta]\[Psi][[3]])\[Cross](xyz[[3]]-xyz[[2]])/8; u31 =(\[Phi]\[Theta]\[Psi][[3]]-\[Phi]\[Theta]\[Psi][[1]])\[Cross](xyz[[1]]-xyz[[3]])/8; du=Transpose[{u12,u23,u31}]; {u,v,w}={ul,vl,wl} . N3+du . M3; {\[Phi],\[Theta],\[Psi]}={\[Phi]l,\[Theta]l,\[Psi]l} . N3; \[Epsilon]\[Epsilon]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\), \!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]v\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\)-\[Psi],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]u\)+\[Psi]}+ {(\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\))(\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\)),(\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\))(\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)),(\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\))(\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)),(\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\))(\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\))}/2; \[Kappa]\[Kappa]={-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Theta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Phi]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]\)-\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Theta]\)}; \[Gamma]\[Gamma]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\)+\[Theta],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)-\[Phi]}; (* isotropic material*) GG=EE/(2+2*\[Nu]\[Nu]); EM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0},{\[Nu]\[Nu],1,0},{0,0,0}}; EM[[3,3]]=GG; EMM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0,0},{\[Nu]\[Nu],1,0,0},{0,0,0,0},{0,0,0,0}}; EMM[[3,3]]=EMM[[4,4]]=2 GG ; GM=GG*{{1,0},{0,1}}; N=tt*EMM . \[Epsilon]\[Epsilon]; M=tt^3/12*EM . \[Kappa]\[Kappa]; Q=tt^3/(tt^2+AA/20)*5/6*GM . \[Gamma]\[Gamma]; \[Delta]wint=-\[Delta]\[Delta][\[Epsilon]\[Epsilon]] . N-\[Delta][\[Kappa]\[Kappa]] . M-\[Delta][\[Gamma]\[Gamma]] . Q; \[Delta]wext=\[Delta][{u,v,w}] . {fx,fy,fz}; map={xl,yl} . {1-#[[1]]-#[[2]],#[[1]],#[[2]]}&; QUAD[TRI1,\[Delta]wint+\[Delta]wext,{x,y},map]*AA*2 ]; (*potential energy version*) \[Delta]U[NONL,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_}},Polygon[{n1_,n2_,n3_}]},fun_]:=\[Delta]U[NONL,{PLATE,{{EE,\[Nu]\[Nu]},{tt},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; \[Delta]U[NONL,{PLATE,{{EE_,\[Nu]\[Nu]_},{tt_},{fX_,fY_,fZ_}},Polygon[{n1_,n2_,n3_}]},fun_]:=Module[{nl,rx,ry,rz,ex,ey,ez,x,y,x1,x2,x3,y1,y2,y3,xl,yl,zl,AA,N3,M3,ul,vl,wl,\[Phi]l,\[Theta]l,\[Psi]l,u,v,w,\[Phi],\[Theta],\[Psi],\[Phi]\[Theta]\[Psi],xyz,uvw,u12,u23,u31,du,fx,fy,fz,\[Epsilon]\[Epsilon],\[Kappa]\[Kappa],\[Gamma]\[Gamma],EM,EMM,GM,N,M,Q,uint,uext,map,GG}, nl={n1,n2,n3}; (*orthonormal material system*) rx=fun[[n2,1,;;]]-fun[[n1,1,;;]]; ry=fun[[n3,1,;;]]-fun[[n1,1,;;]]; rz=rx\[Cross]ry; ex=rx/Sqrt[rx . rx]; ez=rz/Sqrt[rz . rz]; ey=ez\[Cross]ex; AA=Sqrt[rz . rz]/2 ; (*quantities in the material system*) {xl,yl,zl}={ex,ey,ez} . Transpose[fun[[nl,1]]]; {ul,vl,wl}={ex,ey,ez} . Transpose[fun[[nl,2]]]; {\[Phi]l,\[Theta]l,\[Psi]l}={ex,ey,ez} . Transpose[fun[[nl,3]]]; {fx,fy,fz}={ex,ey,ez} . {fX,fY,fZ}; (*shape functions*) N3 =Inverse[{{1,1,1},xl,yl}] . {1,x,y}; M3={N3[[1]]*N3[[2]],N3[[2]]*N3[[3]],N3[[3]]*N3[[1]]}*4; (*inverse MITC3 projection*) xyz=Transpose[{xl,yl,zl}]; \[Phi]\[Theta]\[Psi]=Transpose[{\[Phi]l,\[Theta]l,\[Psi]l}]; u12 =(\[Phi]\[Theta]\[Psi][[1]]-\[Phi]\[Theta]\[Psi][[2]])\[Cross](xyz[[2]]-xyz[[1]])/8; u23 =(\[Phi]\[Theta]\[Psi][[2]]-\[Phi]\[Theta]\[Psi][[3]])\[Cross](xyz[[3]]-xyz[[2]])/8; u31 =(\[Phi]\[Theta]\[Psi][[3]]-\[Phi]\[Theta]\[Psi][[1]])\[Cross](xyz[[1]]-xyz[[3]])/8; du=Transpose[{u12,u23,u31}]; {u,v,w}={ul,vl,wl} . N3+du . M3; {\[Phi],\[Theta],\[Psi]}={\[Phi]l,\[Theta]l,\[Psi]l} . N3; \[Epsilon]\[Epsilon]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]u\), \!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]v\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\)-\[Psi],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]u\)+\[Psi]}+ {(\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\))(\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\)),(\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\))(\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)),(\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\))(\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)),(\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\))(\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\))}/2; \[Kappa]\[Kappa]={-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Theta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Phi]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]\[Phi]\)-\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]\[Theta]\)}; \[Gamma]\[Gamma]={\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\)+\[Theta],\!\( \*SubscriptBox[\(\[PartialD]\), \(y\)]w\)-\[Phi]}; (* isotropic material*) GG=EE/(2+2*\[Nu]\[Nu]); EM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0},{\[Nu]\[Nu],1,0},{0,0,0}}; EM[[3,3]]=GG; EMM=EE/(1-\[Nu]\[Nu]^2)*{{1,\[Nu]\[Nu],0,0},{\[Nu]\[Nu],1,0,0},{0,0,0,0},{0,0,0,0}}; EMM[[3,3]]=EMM[[4,4]]=2 GG ; GM=GG*{{1,0},{0,1}}; N=tt*EMM . \[Epsilon]\[Epsilon]; M=tt^3/12*EM . \[Kappa]\[Kappa]; Q=tt^3/(tt^2+AA/20)*5/6*GM . \[Gamma]\[Gamma]; uint=(\[Epsilon]\[Epsilon] . N+\[Kappa]\[Kappa] . M+\[Gamma]\[Gamma] . Q)/2; uext=-{u,v,w} . {fx,fy,fz}; map={xl,yl} . {1-#[[1]]-#[[2]],#[[1]],#[[2]]}&; QUAD[TRI1,uint+uext,{x,y},map]*AA*2 ]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) \[Delta]W[DISP,{SOLID,{{EE_,\[Nu]\[Nu]_}},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:=\[Delta]W[DISP,{SOLID,{{EE,\[Nu]\[Nu]},{0,0,0}},Tetrahedron[{n1,n2,n3,n4}]},fun]; \[Delta]W[DISP,{SOLID,{{EE_,\[Nu]\[Nu]_},{fX_,fY_,fZ_}},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:=Module[{ns,NN,r,FF,PP,uvw,\[Phi]\[Theta]\[Psi],Duvw,\[Sigma]\[Sigma],\[Sigma],\[Rho],\[Delta]ww,\[Delta]WW,EEEE,\[Delta]w\[Sigma],\[Delta]wint,\[Delta]wext,e,ee,\[Epsilon],EM,GM,GG,nl,jac,FFINV}, nl={n1,n2,n3,n4}; (*shape functions*) NN={\[Alpha],\[Beta],\[Gamma],1-\[Alpha]-\[Beta]-\[Gamma]}; (*assuming a linear mapping*) r=NN . fun[[nl,1]]; FF=Transpose[D[r,{{\[Alpha],\[Beta],\[Gamma]}}]]; FFINV=Simplify[Inverse[FF],L>0&&h>0]; jac=Simplify[Abs[Det[FF]],L>0&&h>0]; (*approximations*) uvw =NN . fun[[nl,2]]; (*displacement gradient*) \[Epsilon]=FFINV . Transpose[D[uvw,{{\[Alpha],\[Beta],\[Gamma]}}]]; (*symmetric elasticity dyad*) e=IdentityMatrix[3]; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GG=EE/(2+2 \[Nu]\[Nu]); GM=Inverse[{{1/GG,0,0},{0,1/GG,0},{0,0,1/GG}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; (*virtual work expression*) \[Delta]wint=-Flatten[\[Delta][\[Epsilon]]] . Flatten[\[Sigma]]; \[Delta]wext=\[Delta][uvw] . {fX,fY,fZ}; QUAD[TET5,(\[Delta]wext+\[Delta]wint)*jac,{\[Alpha],\[Beta],\[Gamma]}] ]; (*non-symmetric u\[Theta]-formulation*) \[Delta]W[DISP,{SOLID,{{EE_,\[Nu]\[Nu]_},{fX_,fY_,fZ_,mX_,mY_,mZ_}},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:=Module[{ns,NN,r,FF,FFINV,jac,PP,uvw,\[Phi]\[Theta]\[Psi],Duvw,\[Sigma]\[Sigma],\[Sigma],\[Rho],\[Delta]ww,\[Delta]WW,EEEE,\[Delta]w\[Sigma],e,ee,EM,GM,GG,nl,\[Delta]wint,\[Delta]wext,\[Epsilon]}, nl={n1,n2,n3,n4}; (*shape functions*) NN={\[Alpha],\[Beta],\[Gamma],1-\[Alpha]-\[Beta]-\[Gamma]}; r=NN . fun[[nl,1]]; FF=Transpose[D[r,{{\[Alpha],\[Beta],\[Gamma]}}]]; FFINV=Inverse[FF]; PP=LeviCivitaTensor[3]; jac=Simplify[Abs[Det[FF]],L>0&&h>0]; (*approximations in structural system*) uvw=NN . fun[[nl,2]]; \[Phi]\[Theta]\[Psi]=NN . fun[[nl,3]]; (*displacement gradient*) \[Epsilon]=FFINV . Transpose[D[uvw,{{\[Alpha],\[Beta],\[Gamma]}}]]-PP . \[Phi]\[Theta]\[Psi]; (*elasticity dyad*) e=IdentityMatrix[3]; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GM=EE/(1+\[Nu]\[Nu])*{{1,0,0},{0,1,0},{0,0,1}}; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]],ee[[2,1]]] + GM[[1,1]]*Outer[Times,ee[[2,1]],ee[[1,2]]] +GM[[2,2]]*Outer[Times,ee[[2,3]],ee[[3,2]]] + GM[[2,2]]*Outer[Times,ee[[3,2]],ee[[2,3]]] + GM[[3,3]]*Outer[Times,ee[[3,1]],ee[[1,3]]]+ GM[[3,3]]*Outer[Times,ee[[1,3]],ee[[3,1]]]]; (*nonsymmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; (*virtual work expression*) \[Delta]wint=-Flatten[\[Delta][\[Epsilon]]] . Flatten[\[Sigma]]; \[Delta]wext=\[Delta][uvw] . {fX,fY,fZ}+\[Delta][\[Phi]\[Theta]\[Psi]] . {mX,mY,mZ}; QUAD[TET5,(\[Delta]wext+\[Delta]wint)*jac,{\[Alpha],\[Beta],\[Gamma]}] ]; (* ::Input::Initialization:: *) (* MEC-E1050 only*) \[Delta]W[DISP,{SOLID,{{EE_,\[Nu]\[Nu]_}},Hexahedron[{n1_,n2_,n3_,n4_,n5_,n6_,n7_,n8_}]},fun_]:=\[Delta]W[DISP,{SOLID,{{EE,\[Nu]\[Nu]},{0,0,0}},Hexahedron[{n1,n2,n3,n4,n5,n6,n7,n8}]},fun]; \[Delta]W[DISP,{SOLID,{{EE_,\[Nu]\[Nu]_},{fX_,fY_,fZ_}},Hexahedron[{n1_,n2_,n3_,n4_,n5_,n6_,n7_,n8_}]},fun_]:=Module[{nl,NN,r,FF,PP,uvw,\[Sigma],EEEE,e,ee,EM,GM,GG,jac,FFINV,\[Epsilon],\[Delta]wext,\[Delta]wint}, nl={n1,n2,n3,n4,n5,n6,n7,n8}; (*shape functions*) NN={(1-\[Alpha])(1-\[Beta])(1-\[Gamma]),\[Alpha](1-\[Beta])(1-\[Gamma]),(1-\[Alpha])\[Beta](1-\[Gamma]),\[Alpha] \[Beta](1-\[Gamma]),(1-\[Alpha])(1-\[Beta])\[Gamma],\[Alpha](1-\[Beta])\[Gamma],(1-\[Alpha])\[Beta] \[Gamma],\[Alpha] \[Beta] \[Gamma]}; (*assuming a linear mapping*) r=NN . fun[[nl,1]]; FF=Transpose[D[r,{{\[Alpha],\[Beta],\[Gamma]}}]]/. {\[Alpha]->1/2,\[Beta] ->1/2,\[Gamma]->1/2}; FFINV=Simplify[Inverse[FF],L>0]; jac=Simplify[Abs[Det[FF]],L>0]; (*approximations in structural system*) uvw=NN . fun[[nl,2]]; (*displacement gradient*) \[Epsilon]=FFINV . Transpose[D[uvw,{{\[Alpha],\[Beta],\[Gamma]}}]]; (*symmetric elasticity dyad*) e=IdentityMatrix[3]; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GG=EE/(2+2*\[Nu]\[Nu]); GM=Inverse[{{1/GG,0,0},{0,1/GG,0},{0,0,1/GG}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; (*virtual work expression*) \[Delta]wext=-Flatten[\[Delta][\[Epsilon]]] . Flatten[\[Sigma]]; \[Delta]wint=\[Delta][uvw] . {fX,fY,fZ}; QUAD[HEX27,(\[Delta]wext+\[Delta]wint)*jac,{\[Alpha],\[Beta],\[Gamma]}] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[VIBR,{SOLID,{{EE_,\[Nu]\[Nu]_,\[Rho]\[Rho]_}},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:=\[Delta]W[VIBR,{SOLID,{{EE,\[Nu]\[Nu],\[Rho]\[Rho]},{0,0,0}},Tetrahedron[{n1,n2,n3,n4}]},fun]; \[Delta]W[VIBR,{SOLID,{{EE_,\[Nu]\[Nu]_,\[Rho]\[Rho]_},{fX_,fY_,fZ_}},Tetrahedron[{I1_,I2_,I3_,I4_}]},fun_]:=Module[{ns,NN,r,FF,PP,uvw,uvw0,uvw2,Duvw,\[Epsilon],\[Sigma],\[Delta]ww,\[Delta]WW,EEEE,\[Delta]w\[Sigma],e,ee,EM,GM,GG,nl,jac,FFINV,\[Delta]wext,\[Delta]wint,\[Delta]wine}, nl={I1,I2,I3,I4}; (*shape functions*) NN={\[Alpha],\[Beta],\[Gamma],1-\[Alpha]-\[Beta]-\[Gamma]}; (*assuming a linear mapping*) r=NN . fun[[nl,1]]; FF={\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Gamma]\)]r\)}; FFINV=Simplify[Inverse[FF],L>0]; jac=Simplify[Abs[Det[FF]],L>0]; (*approximations in structural system*) uvw=NN . fun[[nl,2]]; uvw0= uvw/. DRULE[0]; uvw2= uvw /. DRULE[2]; (*displacement gradient*) \[Epsilon]=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]uvw0\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]uvw0\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Gamma]\)]uvw0\)}; (*symmetric elasticity dyad*) e={{1,0,0},{0,1,0},{0,0,1}}; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GG=EE/(2+2*\[Nu]\[Nu]); GM=Inverse[{{1/GG,0,0},{0,1/GG,0},{0,0,1/GG}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; (*virtual work expression*) \[Delta]wext=-Flatten[\[Delta][\[Epsilon]]] . Flatten[\[Sigma]]; \[Delta]wint=\[Delta][uvw0] . {fX,fY,fZ}; \[Delta]wine=-\[Delta][uvw0] . (\[Rho]\[Rho] uvw2); QUAD[TET5,(\[Delta]wext+\[Delta]wint+\[Delta]wine)*jac,{\[Alpha],\[Beta],\[Gamma]}] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) \[Delta]W[VIBR,{SOLID,{{EE_,\[Nu]\[Nu]_,\[Rho]\[Rho]_}},Hexahedron[{n1_,n2_,n3_,n4_,n5_,n6_,n7_,n8_}]},fun_]:= \[Delta]W[VIBR,{SOLID,{{EE,\[Nu]\[Nu],\[Rho]\[Rho]},{0,0,0}},Hexahedron[{n1,n2,n3,n4,n5,n6,n7,n8}]},fun]; \[Delta]W[VIBR,{SOLID,{{EE_,\[Nu]\[Nu]_,\[Rho]\[Rho]_},{fX_,fY_,fZ_}},Hexahedron[{n1_,n2_,n3_,n4_,n5_,n6_,n7_,n8_}]},fun_]:= Module[{nl,NN,r,FF,PP,uvw0,uvw2,\[Sigma],EEEE,e,ee,EM,GM,GG,jac,FFINV,\[Epsilon],\[Delta]wext,\[Delta]wint,\[Delta]wine}, nl={n1,n2,n3,n4,n5,n6,n7,n8}; (*shape functions*) NN={(1-\[Alpha])(1-\[Beta])(1-\[Gamma]),\[Alpha](1-\[Beta])(1-\[Gamma]),(1-\[Alpha])\[Beta](1-\[Gamma]),\[Alpha] \[Beta](1-\[Gamma]),(1-\[Alpha])(1-\[Beta])\[Gamma],\[Alpha](1-\[Beta])\[Gamma],(1-\[Alpha])\[Beta] \[Gamma],\[Alpha] \[Beta] \[Gamma]}; (*assuming a linear mapping*) r=NN . fun[[nl,1]]; FF=Transpose[D[r,{{\[Alpha],\[Beta],\[Gamma]}}]]/. {\[Alpha]->1/2,\[Beta] ->1/2,\[Gamma]->1/2}; FFINV=Simplify[Inverse[FF],L>0]; jac=Simplify[Abs[Det[FF]],L>0]; (*approximations in structural system*) uvw0=NN . fun[[nl,2]] /. DRULE[0]; uvw2=NN . fun[[nl,2]] /. DRULE[2]; (*displacement gradient*) \[Epsilon]=FFINV . Transpose[D[uvw0,{{\[Alpha],\[Beta],\[Gamma]}}]]; (*symmetric elasticity dyad*) e=IdentityMatrix[3]; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GG=EE/(2+2*\[Nu]\[Nu]); GM=Inverse[{{1/GG,0,0},{0,1/GG,0},{0,0,1/GG}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]]; (*symmetric stress*) \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; (*virtual work expression*) (*virtual work expression*) \[Delta]wext=-Flatten[\[Delta][\[Epsilon]]] . Flatten[\[Sigma]]; \[Delta]wint=\[Delta][uvw0] . {fX,fY,fZ}; \[Delta]wine=-\[Delta][uvw0] . (\[Rho]\[Rho] uvw2); QUAD[HEX27,(\[Delta]wext+\[Delta]wint+\[Delta]wine)*jac,{\[Alpha],\[Beta],\[Gamma]}] ]; (* ::Input::Initialization:: *) (*MEC-E8001*) \[Delta]W[NONL,{SOLID,{{EE_,\[Nu]\[Nu]_}},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:= \[Delta]W[NONL,{SOLID,{{EE,\[Nu]\[Nu]},{0,0,0}},Tetrahedron[{n1,n2,n3,n4}]},fun]; \[Delta]W[NONL,{SOLID,{{EE_,\[Nu]\[Nu]_},{fX_,fY_,fZ_}},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:=Module[{nl,NN,r,FF,uvw,DG,GL,\[Delta]GL,SS,\[Delta]wext,\[Delta]wint,EEEE,e,ee,EM,GM,GG,jac,FFINV}, nl={n1,n2,n3,n4}; (*shape functions*) NN={\[Alpha],\[Beta],\[Gamma],1-\[Alpha]-\[Beta]-\[Gamma]}; (*assuming a linear mapping*) r=NN . fun[[nl,1]]; FF={\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Gamma]\)]r\)}; FFINV=Inverse[FF]; jac=Abs[Det[FF]]; (*approximations in structural system*) uvw=NN . fun[[nl,2]]; (*displacement gradient*) DG=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Gamma]\)]uvw\)}; GL=(DG+Transpose[DG]+DG . Transpose[DG])/2; \[Delta]GL=(\[Delta][DG]+Transpose[\[Delta][DG]]+\[Delta][DG] . Transpose[DG]+DG . Transpose[\[Delta][DG]])/2; (*symmetric elasticity dyad*) e={{1,0,0},{0,1,0},{0,0,1}}; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GG=EE/(2+2*\[Nu]\[Nu]); GM=Inverse[{{1/GG,0,0},{0,1/GG,0},{0,0,1/GG}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]]; (*PK2 stress*) SS=Sum[EEEE[[;;,;;,i,j]]*GL[[j,i]],{i,1,3},{j,1,3}]; (*virtual work expression*) \[Delta]wint=-Flatten[\[Delta]GL] . Flatten[SS]; \[Delta]wext=\[Delta][uvw] . {fX,fY,fZ}; QUAD[TET5,(\[Delta]wext+\[Delta]wint)*jac,{\[Alpha],\[Beta],\[Gamma]}] ]; (* ::Input::Initialization:: *) (*MEC-E8001*) \[Delta]W[TMEC,{SOLID,{{EE_,\[Nu]\[Nu]_,\[Alpha]\[Alpha]_,kk_},{{ss_,\[CurlyTheta]0_}}},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:= \[Delta]W[TMEC,{SOLID,{{EE,\[Nu]\[Nu],\[Alpha]\[Alpha],kk},{{0,0,0},{ss,\[CurlyTheta]0}}},Tetrahedron[{n1,n2,n3,n4}]},fun]; \[Delta]W[TMEC,{SOLID,{{EE_,\[Nu]\[Nu]_,\[Alpha]\[Alpha]_,kk_},{{fX_,fY_,fZ_},{ss_,\[CurlyTheta]0_}}},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:=Module[{nl,NN,r,FF,uvw,\[CurlyTheta]\[CurlyTheta],Duvw,D\[CurlyTheta]\[CurlyTheta],\[Sigma],\[Rho],\[Delta]ww,\[Delta]WW,EEEE,\[Delta]w\[Sigma],\[Epsilon],e,ee,EM,GM,GG,jac,FFINV,\[Delta]wext,\[Delta]wint,\[Delta]pext,\[Delta]pint}, nl={n1,n2,n3,n4}; (*shape functions*) NN={\[Xi],\[Eta],\[Zeta],1-\[Xi]-\[Eta]-\[Zeta]}; (*assuming a linear mapping*) r=NN . fun[[nl,1]]; FF={\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Eta]\)]r\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Zeta]\)]r\)}; FFINV=Simplify[Inverse[FF],L>0]; jac=Simplify[Abs[Det[FF]],L>0]; (*approximations in structural system*) uvw=NN . fun[[nl,2]]; \[CurlyTheta]\[CurlyTheta]=NN . fun[[nl,4]]; (*gradients*) Duvw=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Eta]\)]uvw\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Zeta]\)]uvw\)}; D\[CurlyTheta]\[CurlyTheta]=FFINV . {\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]\[CurlyTheta]\[CurlyTheta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Eta]\)]\[CurlyTheta]\[CurlyTheta]\),\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Zeta]\)]\[CurlyTheta]\[CurlyTheta]\)}; (*symmetric elasticity dyad*) e={{1,0,0},{0,1,0},{0,0,1}}; ee=Table[Outer[Times,e1,e2],{e1,e},{e2,e}]; EM=Inverse[{ {1/EE,-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,1/EE,-\[Nu]\[Nu]/EE}, {-\[Nu]\[Nu]/EE,-\[Nu]\[Nu]/EE,1/EE}}]; GG=EE/(2+2*\[Nu]\[Nu]); GM=Inverse[{{1/GG,0,0},{0,1/GG,0},{0,0,1/GG}}]; EEEE=Simplify[Sum[EM[[i,j]]*Outer[Times,ee[[i,i]],ee[[j,j]]],{i,1,3},{j,1,3}]+ GM[[1,1]]*Outer[Times,ee[[1,2]]+ee[[2,1]],ee[[1,2]]+ee[[2,1]]] +GM[[2,2]]*Outer[Times,ee[[2,3]]+ee[[3,2]],ee[[2,3]]+ee[[3,2]]] + GM[[3,3]]*Outer[Times,ee[[3,1]]+ee[[1,3]],ee[[3,1]]+ee[[1,3]]]]; (*nonsymmetric stress*) \[Epsilon]=Duvw-IdentityMatrix[3]*\[Alpha]\[Alpha]*(\[CurlyTheta]\[CurlyTheta]-\[CurlyTheta]0); \[Sigma]=Sum[EEEE[[;;,;;,i,j]]*\[Epsilon][[j,i]],{i,1,3},{j,1,3}]; (*virtual work expression*) \[Delta]wext=-Flatten[\[Delta]\[Delta][Duvw]] . Flatten[\[Sigma]]; \[Delta]wint=\[Delta]\[Delta][uvw] . {fX,fY,fZ}; \[Delta]pint=-\[Delta]\[Delta][D\[CurlyTheta]\[CurlyTheta]] . D\[CurlyTheta]\[CurlyTheta]*kk; \[Delta]pext= \[Delta]\[Delta][\[CurlyTheta]\[CurlyTheta]]*ss; QUAD[TET5,(\[Delta]wext+\[Delta]wint+\[Delta]pext+\[Delta]pint)*jac,{\[Xi],\[Eta],\[Zeta]}] ]; (* ::Input::Initialization:: *) (*MEC-E1050|E8001 defs*) SOLVE[{ele_,fun_}]:=SOLVE[{DISP},{ele,fun}]; SOLVE[{DISP},{ele_,fun_}]:=Module[{dof,\[Delta]dof,equ,sol,\[Delta]WT}, \[Delta]WT=ParallelMap[\[Delta]W[DISP,#,fun]&,ele]; dof=DOFS[\[Delta]WT];\[Delta]dof=\[Delta]DOFS[\[Delta]WT]; equ=Apply[Plus,D[\[Delta]WT,{\[Delta]dof}]]; sol=Solve[Thread[equ==0],dof]; Return[First[sol]]]; SOLVE[{DISP,par_},{ele_,fun_}]:=Module[{dof,\[Delta]dof,equ,sol,\[Delta]WT,A,B,BB,AA}, \[Delta]WT=ParallelMap[\[Delta]W[DISP,#,fun]&,ele]; dof=DOFS[\[Delta]WT];\[Delta]dof=\[Delta]DOFS[\[Delta]WT]; equ=Apply[Plus,D[\[Delta]WT,{\[Delta]dof}]]; {B,A}=CoefficientArrays[equ,dof]; {BB,AA}=CoefficientArrays[Normal[B],par]; sol=Thread[dof->LinearSolve[A,-AA] . par]; Return[sol]]; SOLVE[{DISP},{ele_,fun_,con_}]:=Module[{dof,exp,sol,UT}, UT=ParallelMap[\[Delta]U[DISP,#,fun]&,ele]; dof=DOFS[UT]; exp=Apply[Plus,UT]; sol=Last[FindMinimum[{exp,con},dof]]]; (*large scale defs*) SOLVE[{CLASSIC},{ele_,fun_}]:=Module[{dof ,\[Delta]dof,sol,\[Delta]We,DOF,\[Delta]DOF,MAP,\[Delta]MAP,ABL,nequ,ndof,A,B,dofe,\[Delta]dofe,eque,Le,LA,LB,tt}, tt=TimeUsed[]; (* *) (* element contributions in parallel *) (* *) ABL=Map[(\[Delta]We = \[Delta]W[DISP,#]; dofe =Union[Cases[\[Delta]We,a[__]|b[__],Infinity]]; \[Delta]dofe =Union[Cases[\[Delta]We,\[Delta]a[__]|\[Delta]b[__],Infinity]]; eque=D[\[Delta]We,{\[Delta]dofe}]; Join[CoefficientArrays[eque,dofe],{dofe,\[Delta]dofe}])&, ele]; Print["elements(",TimeUsed[]-tt,"): nele = ",Length[ele]]; tt=TimeUsed[]; (* *) (* dof mapping *) (* *) DOF=Union[Flatten[ABL[[All,3]]]]; \[Delta]DOF=Union[Flatten[ABL[[All,4]]]]; ndof=Length[DOF]; nequ=Length[\[Delta]DOF]; MAP= Dispatch[Thread[DOF->Array[#&,ndof]]]; \[Delta]MAP= Dispatch[Thread[\[Delta]DOF->Array[#&,nequ]]]; ABL =Map[{#[[1]],#[[2]],#[[3]]/. MAP,#[[4]]/. \[Delta]MAP}&,ABL]; A =SparseArray[{{1,1}->0},{nequ,ndof}]; B =SparseArray[{{1}->0},{nequ}]; Print["analysis(",TimeUsed[]-tt,"): {nequ,ndof} = ",{nequ,ndof}]; (* *) (* parallel build *) (* *) tt=TimeUsed[]; Do[ LA = Flatten[Outer[List,ec[[4]],ec[[3]]],1]; LB = Map[{#}&,ec[[4]]]; A+=SparseArray[Thread[LA->Flatten[ec[[2]]]],{nequ,ndof}]; B+=SparseArray[Thread[LB->Flatten[ec[[1]]]],{nequ}], {ec,ABL}]; Print["build(",TimeUsed[]-tt,"): nele = ",Length[ele]]; (* *) (* solve with default method *) (* *) tt=TimeUsed[]; sol=Thread[DOF->LinearSolve[A,-B]]; Print["solve(",TimeUsed[]-tt,")"]; Return[sol]]; SOLVE[{CLASSICP},{ele_,fun_}]:=Module[{dof ,\[Delta]dof,sol,\[Delta]We,DOF,\[Delta]DOF,MAP,\[Delta]MAP,ABL,nequ,ndof,A,B,dofe,\[Delta]dofe,eque,Le,LA,LB,tt,ec}, (*tt=TimeUsed[];*) (* *) (* element contributions in parallel *) (* *) ABL=Map[(\[Delta]We = \[Delta]W[DISP,#]; dofe =Union[Cases[\[Delta]We,a[__]|b[__]|c[__],Infinity]]; \[Delta]dofe =Union[Cases[\[Delta]We,\[Delta]a[__]|\[Delta]b[__]|\[Delta]c[__],Infinity]]; (*for load elements*) dofe=If[dofe=={},(\[Delta]dofe/.{\[Delta]a->a,\[Delta]b->b,\[Delta]c->c}),dofe]; eque=D[\[Delta]We,{\[Delta]dofe}]; coff=CoefficientArrays[eque,dofe]; coff=If[Length[coff]==1,Append[coff,SparseArray[{},{Length[\[Delta]dofe],Length[\[Delta]dofe]}]],coff]; Join[coff,{dofe,\[Delta]dofe}])&, ele]; (*Print["elements(",TimeUsed[]-tt,"): nele = ",Length[ele]];*) (*tt=TimeUsed[];*) (* *) (* dof mapping *) (* *) DOF=Union[Flatten[ABL[[All,3]]]]; \[Delta]DOF=Union[Flatten[ABL[[All,4]]]]; ndof=Length[DOF]; nequ=Length[\[Delta]DOF]; MAP= Dispatch[Thread[DOF->Array[#&,ndof]]]; \[Delta]MAP= Dispatch[Thread[\[Delta]DOF->Array[#&,nequ]]]; ABL =Map[{#[[1]],#[[2]],#[[3]]/. MAP,#[[4]]/. \[Delta]MAP}&,ABL]; A =SparseArray[{{1,1}->0},{nequ,ndof}]; B =SparseArray[{{1}->0},{nequ}]; (* Print["analysis(",TimeUsed[]-tt,"): {nequ,ndof} = ",{nequ,ndof}];*) (* *) (* parallel build *) (* *) (* tt=TimeUsed[];*) A=ParallelSum[ LA = Flatten[Outer[List,ec[[4]],ec[[3]]],1]; SparseArray[Thread[LA->Flatten[ec[[2]]]],{nequ,ndof}], {ec,ABL}]; B=ParallelSum[ LB = Map[{#}&,ec[[4]]]; SparseArray[Thread[LB->Flatten[ec[[1]]]],{nequ}], {ec,ABL}]; (*Print["build(",TimeUsed[]-tt,"): nele = ",Length[ele]]; *) (* *) (* solve with default method *) (* *) (*tt=TimeUsed[]; *) sol=Thread[DOF->LinearSolve[A,-B]]; (* Print["solve(",TimeUsed[]-tt,")"];*) Return[sol]]; SOLVE[\[Delta]WW_]:=Module[{equ,sol}, equ=D[\[Delta]WW,{\[Delta]DOFS[\[Delta]WW]}]; sol=Solve[Thread[equ==0],DOFS[\[Delta]WW]]; Return[First[sol]]]; (* ::Input::Initialization:: *) SOLVE[{VIBR},{ele_,fun_}]:=Module[{dof,\[Delta]dof,dofall,dof0 ,dof2 ,equ,sol,\[Delta]WW,KK,MM,nn,val,vec}, \[Delta]WW=Apply[Plus,Map[\[Delta]W[VIBR,#,fun]&,ele]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ =D[\[Delta]WW,{\[Delta]dof}]; dofall=Union[dof /. anya_[anyb__,0|2]->anya[anyb]]; dof0 =dofall/. DRULE[0]; dof2 =dofall/.DRULE[2]; KK =D[equ,{dof0}]; MM =D[equ,{dof2}]; {val,vec}=Eigensystem[{KK,MM}]; Table[ { \[Omega][ii]->Sqrt[val[[ii]]],Thread[dofall->vec[[ii,;;]]]},{ii,1,Length[dofall]}]]; SOLVE[{VIBR},\[Delta]WW_]:=Module[{dof,\[Delta]dof,dofall,dof0 ,dof2 ,equ,sol,KK,MM,nn,val,vec}, dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ =D[\[Delta]WW,{\[Delta]dof}]; dofall=Union[dof /. anya_[anyb_,0|2]->anya[anyb]]; dof0 =dofall/. DRULE[0]; dof2 =dofall/.DRULE[2]; KK =D[equ,{dof0}]; MM =D[equ,{dof2}]; {val,vec}=Eigensystem[{KK,MM}]; Table[ { \[Omega][ii]->Sqrt[val[[ii]]],Thread[dofall->vec[[ii,;;]]]},{ii,1,Length[dofall]}]]; MATRIXFUNCTION[f_,M_]:=Module[{val,vec}, {val,vec}=Eigensystem[M]; Transpose[vec] . DiagonalMatrix[Map[f,val]] . Inverse[Transpose[vec]]]; SOLVE[{VIBR,rule_},{ele_,fun_}]:=Module[{dof,dof0,dof1,dof2,\[Delta]dof,dofall,equ,\[Delta]WW,KK,MM,\[CapitalOmega]}, \[Delta]WW=Apply[Plus,Map[\[Delta]W[VIBR,#,fun]&,ele]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ =D[\[Delta]WW,{\[Delta]dof}]; dofall=Union[dof /. anya_[anyb_,0|2]->anya[anyb]]; dof0 =dofall/. DRULE[0]; dof1 =dofall/. DRULE[1]; dof2 =dofall/. DRULE[2]; KK =D[equ,{dof0}]; MM =D[equ,{dof2}]; \[CapitalOmega]=MATRIXFUNCTION[Sqrt[#]&,Inverse[MM] . KK]; Thread[dofall-> Simplify[MATRIXFUNCTION[Cos[#*t]&,\[CapitalOmega]] . (dof0/.rule)+MATRIXFUNCTION[Sin[#*t]&,\[CapitalOmega]] . Inverse[\[CapitalOmega]] . (dof1/.rule)]] ]; SOLVE[{VIBR,rule_},\[Delta]WW_]:=Module[{dof,dof0,dof1,dof2,\[Delta]dof,dofall,equ,KK,MM,\[CapitalOmega]}, dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ =D[\[Delta]WW,{\[Delta]dof}]; dofall=Union[dof /. anya_[anyb_,0|2]->anya[anyb]]; dof0 =dofall/. DRULE[0]; dof1 =dofall/. DRULE[1]; dof2 =dofall/. DRULE[2]; KK =D[equ,{dof0}]; MM =D[equ,{dof2}]; \[CapitalOmega]=MATRIXFUNCTION[Sqrt[#]&,Inverse[MM] . KK]; Thread[dofall-> Simplify[MATRIXFUNCTION[Cos[#*t]&,\[CapitalOmega]] . (dof0/.rule)+MATRIXFUNCTION[Sin[#*t]&,\[CapitalOmega]] . Inverse[\[CapitalOmega]] . (dof1/.rule)]] ]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) SOLVE[{STAB,p_},{ele_,fun_}]:=Module[{\[Delta]WT,dof,\[Delta]dof,equ,sol,KK,KK0,FF0,rule0,KK1,KK10,KK11,val,vec,modes,prule,list}, \[Delta]WT=ParallelMap[\[Delta]W[STAB,#,fun]&,ele]; dof=DOFS[\[Delta]WT];\[Delta]dof=\[Delta]DOFS[\[Delta]WT]; equ=Apply[Plus,D[\[Delta]WT,{\[Delta]dof}]]; KK=D[equ,{dof}]; (*linearized problem*) KK0=KK/.Thread[dof->0]; FF0=equ/.Thread[dof->0]; rule0=Thread[dof->LinearSolve[KK0,-FF0]]; KK1=KK/.rule0; KK10= KK1 /. p->0; KK11 =D[KK1 ,p]; list=Transpose[Eigensystem[{KK10,KK11}]]; (*pick the real ones*) list=Select[list,Not[PossibleZeroQ[#[[1]]]]&]; list=Select[list,(Count[#[[1]],I]==0)&]; list=Select[list,(Count[#[[1]],-I]==0)&]; list=Select[list,Not[#[[1]]===Infinity]&]; MapIndexed[{p[#2[[1]]]->-#1[[1]],Thread[dof->#1[[2]]]}&,list] ]; SOLVE[{STAB,p_},\[Delta]WW_]:=Module[{dof,\[Delta]dof,equ,sol,KK,FF0,KK0,rule0,KK1,KK10,KK11,val,vec,modes,prule,list}, (*first*) dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ =D[\[Delta]WW,{\[Delta]dof}]; KK=D[equ,{dof}] ; KK0=KK/.Thread[dof->0]; FF0=equ/.Thread[dof->0]; rule0=Thread[dof->LinearSolve[KK0,-FF0]]; KK1=KK/.rule0; KK10= KK1 /. p->0; KK11 =D[KK1 ,p]; list=Transpose[Eigensystem[{KK10,KK11}]]; (*pick the real ones*) list=Select[list,Not[PossibleZeroQ[#[[1]]]]&]; list=Select[list,(Count[#[[1]],I]==0)&]; list=Select[list,(Count[#[[1]],-I]==0)&]; list=Select[list,Not[#[[1]]===Infinity]&]; MapIndexed[{p[#2[[1]]]->-#1[[1]],Thread[dof->#1[[2]]]}&,list]]; (* ::Input::Initialization:: *) (*MEC-E8001*) SOLVE[{NONL},{ele_,fun_}]:=Module[{dof,dof0,\[Delta]dof,equ,sol,\[Delta]WT}, \[Delta]WT=ParallelMap[\[Delta]W[NONL,#,fun]&,ele]; dof=DOFS[\[Delta]WT];\[Delta]dof=\[Delta]DOFS[\[Delta]WT]; equ=Apply[Plus,D[\[Delta]WT,{\[Delta]dof}]]; sol=NSolve[Thread[equ==0],dof,Reals]; Return[MinimalBy[sol,Norm[dof /. #]&][[1]]]]; SOLVE[{NONL,rul_List},{ele_,fun_,con_}]:=Module[{dof,exp,sol,UT}, UT=ParallelMap[\[Delta]U[NONL,#,fun]&,ele]; dof=DOFS[UT]; exp=Apply[Plus,UT]; sol=Last[FindMinimum[{exp,con},Transpose[{dof,dof /.rul}]]]]; SOLVE[{NONL,ALL},{ele_,fun_}]:=Module[{dof,\[Delta]dof,equ,sol,\[Delta]WT}, \[Delta]WT=ParallelMap[\[Delta]W[NONL,#,fun]&,ele]; dof=DOFS[\[Delta]WT];\[Delta]dof=\[Delta]DOFS[\[Delta]WT]; equ=Apply[Plus,D[\[Delta]WT,{\[Delta]dof}]]; sol=Solve[Thread[equ==0],dof]; Return[sol]]; SOLVE[{NONL,rule_List},{ele_,fun_}]:=Module[{dof,\[Delta]dof,dof0,equ,sol,\[Delta]WT}, \[Delta]WT=ParallelMap[\[Delta]W[NONL,#,fun]&,ele]; dof=DOFS[\[Delta]WT];\[Delta]dof=\[Delta]DOFS[\[Delta]WT]; dof0=Transpose[{dof,dof /.rule}]; equ=Apply[Plus,D[\[Delta]WT,{\[Delta]dof}]]; sol=FindRoot[Thread[equ==0],dof0]; Return[sol]]; SOLVE[{NONL,{p_Symbol,pmin_,pmax_,\[CapitalDelta]p_}},{ele_,fun_}]:=Module[{\[Delta]WT,equ,sol,sol0,dof,\[Delta]dof}, \[Delta]WT=ParallelMap[\[Delta]W[NONL,#,fun]&,ele]; dof=DOFS[\[Delta]WT];\[Delta]dof=\[Delta]DOFS[\[Delta]WT]; equ=Apply[Plus,D[\[Delta]WT,{\[Delta]dof}]]; sol=Thread[dof->0]; ReleaseHold[Table[sol=FindRoot[Thread[equ==0],sol /.Rule->List];Prepend[sol,Hold[p]->p],{p,pmin,pmax,\[CapitalDelta]p}]]]; SOLVE[{NONL},\[Delta]WW_]:=Module[{equ,sol,dof,\[Delta]dof}, dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ=D[\[Delta]WW,{\[Delta]dof}]; sol=Solve[Thread[equ==0],dof,Reals]; Return[MinimalBy[sol,Norm[dof /. #]&][[1]]]]; SOLVE[{NONL,ALL},\[Delta]WW_]:=Module[{equ,sol}, equ=D[\[Delta]WW,{\[Delta]DOFS[\[Delta]WW]}]; sol=Solve[Thread[equ==0],DOFS[\[Delta]WW],Reals]]; SOLVE[{NONL,rule_},\[Delta]WW_]:=Module[{dof,\[Delta]dof,dof0,equ,sol}, dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; dof0=Transpose[{dof,dof /.rule}]; equ=D[\[Delta]WW,{\[Delta]dof}]; FindRoot[Thread[equ==0],dof0]]; SOLVE[{NONL,rule0_,rulen_},\[Delta]WW_]:=Module[{dof,\[Delta]dof,dof0,equ,sol}, dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; dof0=Transpose[{dof,dof /.rule}]; equ=D[\[Delta]WW,{\[Delta]dof}]; sol=FindRoot[Thread[equ==0],dof0,DampingFactor->4,AccuracyGoal->2,PrecisionGoal->2]; Return[sol]]; SOLVE[{NONL,{p_Symbol,pmin_,pmax_,\[CapitalDelta]p_}},\[Delta]WW_]:=Module[{equ,sol,sol0,dof,\[Delta]dof}, dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ=D[\[Delta]WW,{\[Delta]dof}]; sol=Thread[dof->0.0000001]; ReleaseHold[Table[sol=FindRoot[Thread[equ==0],sol /.Rule->List];Prepend[sol,Hold[p]->p],{p,pmin,pmax,\[CapitalDelta]p}]]]; (* ::Input::Initialization:: *) (*MEC-E8001 defs*) SOLVE[{TMEC},{ele_,fun_}]:=Module[{dof,\[Delta]dof,equ,sol,\[Delta]WT}, \[Delta]WT=ParallelMap[\[Delta]W[TMEC,#,fun]&,ele]; dof=DOFS[\[Delta]WT];\[Delta]dof=\[Delta]DOFS[\[Delta]WT]; equ=Apply[Plus,D[\[Delta]WT,{\[Delta]dof}]]; sol=Solve[Thread[equ==0],dof]; Return[First[sol]]]; ; (* ::Input::Initialization:: *) LINK[{I1_Integer,I2_Integer}]:= DeleteCases[Flatten[{Thread[fun[[I2,3]]->fun[[I1,3]]], Thread[fun[[I2,2]]->(fun[[I1,2]]+fun[[I1,3]]\[Cross](fun[[I2,1]]-fun[[I1,1]]))]}],0->0]; (*rigid link*) LINK[lnk_,fun_]:=Module[ {funout,n1,n2}, funout =fun; Do[ {n1,n2}=lnk[[i]]; funout[[n1]]={fun[[n1,1]],fun[[n2,2]]+fun[[n2,3]]\[Cross](fun[[n1,1]]-fun[[n2,1]]),fun[[n2,3]]},{i,1,Length[lnk]}]; Return[funout]]; (*one node tie with any element*) (*could be generalized*) TIE[n0_,nodes_,fun_]:=Module[ {funout,n\[Xi],n\[Eta],\[Xi],\[Eta],NN,x,y,z,u,v,w,\[Phi],\[CapitalTheta],\[Psi]}, funout =fun; {n\[Xi],n\[Eta]}=Dimensions[nodes]; NN=LAGRANGE[{{n\[Xi],\[Xi]},{n\[Eta],\[Eta]}}]; {x,y,z}=NN . fun[[Flatten[nodes],1]]; {\[Xi],\[Eta]}=MinimalBy[Flatten[Table[{\[Xi],\[Eta], Norm[fun[[n0,1]]-{x,y,z}]},{\[Xi],0,1,1/20},{\[Eta],0,1,1/20}],1],Last][[1,1;;2]]; {u,v,w}=NN . fun[[Flatten[nodes],2]]; {\[Phi],\[CapitalTheta],\[Psi]}=NN . fun[[Flatten[nodes],3]]; funout[[n0]]={fun[[n0,1]],{u,v,w},{\[Phi],\[CapitalTheta],\[Psi]}}; Return[funout]]; (*one node tie with any element*) (*could be generalized TIE[n0_,nodes_,fun_]:=Module[ {funout,n\[Xi],n\[Eta],\[Xi],\[Eta],NN,x,y,z,u,v,w,\[Phi],\[CapitalTheta],\[Psi]}, funout =fun; {n\[Xi],n\[Eta]}=Dimensions[nodes]; NN=LAGRANGE[{{n\[Xi],\[Xi]},{n\[Eta],\[Eta]}}]; {x,y,z}=NN.fun[[Flatten[nodes],1]]; {\[Xi],\[Eta]}=MinimalBy[Flatten[Table[{\[Xi],\[Eta], Norm[fun[[n0,1]]-{x,y,z}]},{\[Xi],0,1,1/20},{\[Eta],0,1,1/20}],1],Last][[1,1;;2]]; {u,v,w}=NN.fun[[Flatten[nodes],2]]; {\[Phi],\[CapitalTheta],\[Psi]}=NN.fun[[Flatten[nodes],3]]; funout[[n0]]={fun[[n0,1]],{u,v,w},{\[Phi],\[CapitalTheta],\[Psi]}}; Return[funout]];*) (*one node tie with any element (*could be generalized*) TIE[n0_,nodes_,fun_]:=Module[ {funout,n\[Xi],n\[Eta],\[Xi],\[Eta],NN,x,y,z,u,v,w,\[Phi],\[CapitalTheta],\[Psi]}, funout =fun; {n\[Xi],n\[Eta]}=Dimensions[nodes]; NN=LAGRANGE[{{n\[Xi],\[Xi]},{n\[Eta],\[Eta]}}]; {x,y,z}=NN.fun[[Flatten[nodes],1]]; {\[Xi],\[Eta]}=MinimalBy[Flatten[Table[{\[Xi],\[Eta], Norm[fun[[n0,1]]-{x,y,z}]},{\[Xi],0,1,1/20},{\[Eta],0,1,1/20}],1],Last][[1,1;;2]]; {u,v,w}=NN.fun[[Flatten[nodes],2]]; {\[Phi],\[CapitalTheta],\[Psi]}=NN.fun[[Flatten[nodes],3]]; funout[[n0]]={fun[[n0,1]],{u,v,w},{\[Phi],\[CapitalTheta],\[Psi]}}; Return[funout]];*) (* ::Input::Initialization:: *) EX[M_,K_,alist_,rule_,time_]:=Module[{t0,A,fun,dfun,out,alist0,alist1,a0,a1}, alist0 =(alist /.{ a[b_] -> a[b,0]}); alist1 =(alist /.{ a[b_] -> a[b,1]}); a0 =(alist0 /. rule); a1 =(alist1 /. rule); t0 = First[time]; A = Inverse[M] . K; fun=Simplify[MATRIXFUN[A,Cos[Sqrt[#]*(t-t0)]&] . a0+MATRIXFUN[A,Sin[Sqrt[#]*(t-t0)]/Sqrt[#]&] . a1]; dfun = D[fun,t]; out = Map[(Join[fun,dfun] /. t->#)&,time]; alist0 =(alist /.{ a[b_] -> a[b,0]}); alist1 =(alist /.{ a[b_] -> a[b,1]}); Map[MAKERULE[Join[alist0,alist1],#]& ,out]]; CR[M_,K_,alist_,rule_,time_]:=Module[{nn,\[CapitalDelta]t,A,II,AA,out,alist0,alist1,a0,a1}, alist0 =(alist /.{ a[b_] -> a[b,0]}); alist1 =(alist /.{ a[b_] -> a[b,1]}); a0 =(alist0 /. rule); a1 =(alist1 /. rule); nn =Length[time]-1; \[CapitalDelta]t=(Last[time]-First[time])/nn; A = Inverse[M] . K; II = IdentityMatrix[Length[a0]]; AA = Inverse[ArrayFlatten[{{II,-II/2*\[CapitalDelta]t},{A*\[CapitalDelta]t^2/2,II*\[CapitalDelta]t}}]] . ArrayFlatten[{{II,II/2*\[CapitalDelta]t},{-A*\[CapitalDelta]t^2/2,II*\[CapitalDelta]t}}]; out =NestList[AA . #&,Flatten[{a0,a1}],nn]; Map[MAKERULE[Join[alist0,alist1],#]& ,out]]; DG[M_,K_,alist_,rule_,time_]:=Module[{nn,\[CapitalDelta]t,A,II ,AA ,out,alist0,alist1,a0,a1}, alist0 =(alist /.{ a[b_] -> a[b,0]}); alist1 =(alist /.{ a[b_] -> a[b,1]}); a0 =(alist0 /. rule); a1 =(alist1 /. rule); nn =Length[time]-1; \[CapitalDelta]t=(Last[time]-First[time])/nn; A = Inverse[M] . K; II = IdentityMatrix[Length[a0]]; AA = Inverse[ArrayFlatten[{{A*\[CapitalDelta]t^2,(II-A*\[CapitalDelta]t^2/2)*\[CapitalDelta]t},{-II-A*\[CapitalDelta]t^2/2,(A*\[CapitalDelta]t^2/3)*\[CapitalDelta]t}}]] . ArrayFlatten[{{0*II,II*\[CapitalDelta]t},{-II,-II*\[CapitalDelta]t}}]; out =NestList[AA . #&,Flatten[{a0,a1}],nn]; Map[MAKERULE[Join[alist0,alist1],#]& ,out]]; NEWTON[equ_,var_,rule_,{\[CurlyEpsilon]_,m_}]:=Module[{Dequ,sol,dsol,K,F,ii=m}, Dequ=Transpose[D[equ,{var}]]; sol =var /. rule; While[ii>0, K=Dequ /.Thread[var->sol]; F=equ /.Thread[var->sol]; dsol=-LinearSolve[K,F]; Print[dsol]; sol=sol+dsol; If[Norm[dsol]<\[CurlyEpsilon]*Norm[sol],Break[]]; ii=ii-1]; Thread[var->sol]]; (* ::Input::Initialization:: *) left :={{a1_,a2_,a3_}->{a1, (3 a1+6 a2-a3)/8,a2},{a1_,a2_}->{a1,(a1+a2)/2},a1_->a1}; right :={{a1_,a2_,a3_}->{a2, (-a1+6 a2+3 a3)/8,a3},{a1_,a2_}->{(a1+a2)/2,a2},a1_->a1}; REF[{RIGID,mat_,Line[{n1_,n2_}]}]:={{RIGID,mat,Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {RIGID,mat,Line[{n3,n2}]}}; REF[{FORCE,mat_,Point[{a1_}]}]:={{FORCE,mat,Point[{a1}]}}; REF[{FORCE,{fX_,fY_,fZ_},Line[{n1_,n2_}]}]:={{FORCE,{fX /.left,fY/.left,fZ/.left},Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {FORCE,{fX /.right,fY/.right,fZ/.right},Line[{n3,n2}]}}; REF[{BAR,{{EE_},{AA_}},Line[{n1_,n2_}]}]:={{BAR,{{EE /.left},{AA/.left}},Line[{n1,n3=NEWNODE[BAR,Sort[{n1,n2}]]}]}, {BAR,{{EE /.right},{AA/.right}},Line[{n3,n2}]}}; REF[{BAR,{{EE_},{AA_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]}]:={{BAR,{{EE /.left},{AA/.left},{fX/.left,fY/.left,fZ/.left}},Line[{n1,n3=NEWNODE[BAR,Sort[{n1,n2}]]}]}, {BAR,{{EE /.right},{AA/.right},{fX/.right,fY/.right,fZ/.right}},Line[{n3,n2}]}}; REF[{BAR,{{EE_,\[Rho]\[Rho]_},{AA_},{ff_}},Line[{n1_,n2_}]}]:={{BAR,{{EE /.left,\[Rho]\[Rho]/.left},{AA/.left},{ff/.left}},Line[{n1,n3=NEWNODE[BAR,Sort[{n1,n2}]]}]}, {BAR,{{EE /.right,\[Rho]\[Rho]/.right},{AA/.right},{ff/.right}},Line[{n3,n2}]}}; REF[{BAR,{{EE_},{AA_,iy_},{fX_,fY_,fZ_}},Line[{n1_,n2_}]}]:={{BAR,{{EE /.left},{AA/.left,iy },{fX/.left,fY/.left,fZ/.left}},Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {BAR,{{EE /.right},{AA/.right,iy},{fX/.right,fY/.right,fZ/.right}},Line[{n3,n2}]}}; REF[{BAR,{{EE_,\[Alpha]\[Alpha]_,kk_},{AA_},{fx_,ss_,\[CurlyTheta]\[CurlyTheta]_}},Line[{n1_,n2_}]}]:={{BAR,{{EE /.left,\[Alpha]\[Alpha]/.left,kk/.left },{AA/.left},{fx/.left,ss/.left,\[CurlyTheta]\[CurlyTheta]/.left}},Line[{n1,n3=NEWNODET[BAR,Sort[{n1,n2}]]}]}, {BAR,{{EE /.right,\[Alpha]\[Alpha]/.right,kk/.right },{AA/.right},{fx/.right,ss/.right,\[CurlyTheta]\[CurlyTheta]/.right}},Line[{n3,n2}]}}; REF[{TORSION,{{GG_},{JJ_}},Line[{n1_,n2_}]}]:={{TORSION,{{GG/.left},{JJ/.left}},Line[{n1,n3=NEWNODE[BAR,Sort[{n1,n2}]]}]}, {TORSION,{{GG /.right},{JJ/.right}},Line[{n3,n2}]}}; REF[{TORSION,{{GG_},{JJ_},{mX_,mY_,mZ_}},Line[{n1_,n2_}]}]:={{TORSION,{{GG/.left},{JJ/.left},{mX/.left,mY/.left,mZ/.left}},Line[{n1,n3=NEWNODE[BAR,Sort[{n1,n2}]]}]}, {TORSION,{{GG /.right},{JJ/.right},{mX/.right,mY/.right,mZ/.right}},Line[{n3,n2}]}}; REF[{TORSION,{{GG_,\[Rho]\[Rho]_},{JJ_},{mm_}},Line[{n1_,n2_}]}]:={{TORSION,{{GG /.left,\[Rho]\[Rho]/.left},{JJ/.left},{mm/.left}},Line[{n1,n3=NEWNODE[BAR,Sort[{n1,n2}]]}]}, {TORSION,{{GG /.right,\[Rho]\[Rho]/.right},{JJ/.right},{mm/.right}},Line[{n3,n2}]}}; REF[{{BEAM,\[Kappa]0_},{{EE_},{Ln_,Lb_}},Line[{n1_,n2_}]}]:={{{BEAM,\[Kappa]0},{{EE},{Ln ,Lb}},Line[{n1,n3=NEWNODE[{BEAM,\[Kappa]0},Sort[{n1,n2}]]}]}, {{BEAM,\[Kappa]0},{{EE},{Ln,Lb}},Line[{n3,n2}]}}; REF[{BEAM,pro_,Line[{n1_,n2_}]}]:={{BEAM,pro,Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {BEAM,pro,Line[{n3,n2}]}}; REF[{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_},{fx_,fy_,fz_}},Line[{n1_,n2_}]}]:={{BEAM,{{EE /.left,GG /.left},{AA /.left,Iyy /.left,Izz /.left},{fx /.left,fy /.left,fz /.left}},Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {BEAM,{{EE /.right,GG /.right},{AA /.right,Iyy /.right,Izz /.right},{fx /.right,fy /.right,fz /.right}},Line[{n3,n2}]}}; REF[{BEAM,{{EE_,GG_},{AA_,Iyy_,Izz_,Ip_},{fx_,fy_,fz_}},Line[{n1_,n2_}]}]:={{BEAM,{{EE /.left,GG /.left},{AA /.left,Iyy /.left,Izz /.left,Ip},{fx /.left,fy /.left,fz /.left}},Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {BEAM,{{EE /.right,GG /.right},{AA /.right,Iyy /.right,Izz /.right,Ip},{fx /.right,fy /.right,fz /.right}},Line[{n3,n2}]}}; REF[{BEAM,{{EE_,GG_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_},{fx_,fy_,fz_}},Line[{n1_,n2_}]}]:={{BEAM,{{EE /.left,GG /.left,\[Rho]\[Rho]},{AA /.left,Iyy /.left,Izz /.left},{fx /.left,fy /.left,fz /.left}},Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {BEAM,{{EE /.right,GG /.right,\[Rho]\[Rho]},{AA /.right,Iyy /.right,Izz /.right},{fx /.right,fy /.right,fz /.right}},Line[{n3,n2}]}}; REF[{BEAM,{{EE_,GG_,\[Rho]\[Rho]_},{AA_,Iyy_,Izz_,Ip_},{fx_,fy_,fz_}},Line[{n1_,n2_}]}]:={{BEAM,{{EE /.left,GG /.left,\[Rho]\[Rho]},{AA /.left,Iyy /.left,Izz /.left,Ip},{fx /.left,fy /.left,fz /.left}},Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {BEAM,{{EE /.right,GG /.right,\[Rho]\[Rho]},{AA /.right,Iyy /.right,Izz /.right,Ip},{fx /.right,fy /.right,fz /.right}},Line[{n3,n2}]}}; REF[{TWODIM,mat_,Polygon[{n1_,n2_,n3_}]}]:={ {TWODIM,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {TWODIM,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {TWODIM,mat,Polygon[{n6,n5,n3}]}, {TWODIM,mat,Polygon[{n4,n5,n6}]}}; REF[{PLANESTRAIN,mat_,Polygon[{n1_,n2_,n3_}]}]:={ {PLANESTRAIN,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {PLANESTRAIN,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {PLANESTRAIN,mat,Polygon[{n6,n5,n3}]}, {PLANESTRAIN,mat,Polygon[{n4,n5,n6}]}}; REF[{PLANE,mat_,Polygon[{n1_,n2_,n3_}]}]:={ {PLANE,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {PLANE,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {PLANE,mat,Polygon[{n6,n5,n3}]}, {PLANE,mat,Polygon[{n4,n5,n6}]}}; REF[{PLANESTRESS,mat_,Polygon[{n1_,n2_,n3_}]}]:={ {PLANESTRESS,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {PLANESTRESS,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {PLANESTRESS,mat,Polygon[{n6,n5,n3}]}, {PLANESTRESS,mat,Polygon[{n4,n5,n6}]}}; REF[{SOLID1,mat_,Polygon[{n1_,n2_,n3_}]}]:={ {SOLID1,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {SOLID1,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {SOLID1,mat,Polygon[{n6,n5,n3}]}, {SOLID1,mat,Polygon[{n4,n5,n6}]}}; REF[{SOLID2,mat_,Polygon[{n1_,n2_,n3_}]}]:={ {SOLID2,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {SOLID2,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {SOLID2,mat,Polygon[{n6,n5,n3}]}, {SOLID2,mat,Polygon[{n4,n5,n6}]}}; REF[{EMS,mat_,Polygon[{n1_,n2_,n3_,n4_}]}]:={ {EMS,mat,Polygon[{n1,n5=NEWNODE[Sort[{n1,n2}]],n8=NEWNODE[Sort[{n1,n3}]],n9=NEWNODE[Sort[{n1,n2,n3,n4}]]}]}, {EMS,mat,Polygon[{n5,n2,n9,n6=NEWNODE[Sort[{n2,n4}]]}]}, {EMS,mat,Polygon[{n8,n9,n3,n7=NEWNODE[Sort[{n3,n4}]]}]}, {EMS,mat,Polygon[{n9,n6,n7,n4}]}}; REF[{PLANE,mat_,Polygon[{n1_,n2_,n3_,n4_}]}]:={ {PLANE,mat,Polygon[{n1,n5=NEWNODE[Sort[{n1,n2}]], n9=NEWNODE[Sort[{n1,n2,n3,n4}]],n8=NEWNODE[Sort[{n1,n4}]]}]}, {PLANE,mat,Polygon[{n5,n2,n6=NEWNODE[Sort[{n2,n3}]],n9}]}, {PLANE,mat,Polygon[{n8,n9,n7=NEWNODE[Sort[{n3,n4}]],n4}]}, {PLANE,mat,Polygon[{n9,n6,n3,n7}]}}; REF[{PLANESTRESS,mat_,Polygon[{n1_,n2_,n3_,n4_}]}]:={ {PLANESTRESS,mat,Polygon[{n1,n5=NEWNODE[Sort[{n1,n2}]], n9=NEWNODE[Sort[{n1,n2,n3,n4}]],n8=NEWNODE[Sort[{n1,n4}]]}]}, {PLANESTRESS,mat,Polygon[{n5,n2,n6=NEWNODE[Sort[{n2,n3}]],n9}]}, {PLANESTRESS,mat,Polygon[{n8,n9,n7=NEWNODE[Sort[{n3,n4}]],n4}]}, {PLANESTRESS,mat,Polygon[{n9,n6,n3,n7}]}}; REF[{PLATE,mat_,Polygon[{n1_,n2_,n3_}]}]:={ {PLATE,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {PLATE,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {PLATE,mat,Polygon[{n6,n5,n3}]}, {PLATE,mat,Polygon[{n4,n5,n6}]}}; REF[{PLATE,mat_,Polygon[{n1_,n2_,n3_,n4_}]}]:={ {PLATE,mat,Polygon[{n1,n5=NEWNODE[Sort[{n1,n2}]],n9=NEWNODE[Sort[{n1,n2,n3,n4}]],n8=NEWNODE[Sort[{n1,n4}]]}]}, {PLATE,mat,Polygon[{n5,n2,n6=NEWNODE[Sort[{n2,n3}]],n9}]}, {PLATE,mat,Polygon[{n8,n9,n7=NEWNODE[Sort[{n3,n4}]],n4}]}, {PLATE,mat,Polygon[{n9,n6,n3,n7}]}}; REF[{PLATE,mat_,Polygon[{{n1_,n2_},{n3_,n4_}}]}]:={ {PLATE,mat,Polygon[{{n1,n5=NEWNODE[Sort[{n1,n2}]]},{n8=NEWNODE[Sort[{n1,n3}]],n9=NEWNODE[Sort[{n1,n2,n3,n4}]]}}]}, {PLATE,mat,Polygon[{{n5,n2},{n9,n6=NEWNODE[Sort[{n2,n4}]]}}]}, {PLATE,mat,Polygon[{{n8,n9},{n3,n7=NEWNODE[Sort[{n3,n4}]]}}]}, {PLATE,mat,Polygon[{{n9,n6},{n7,n4}}]}}; REF[{SHELL,mat_,Polygon[{n1_,n2_,n3_}]}]:={ {SHELL,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {SHELL,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {SHELL,mat,Polygon[{n6,n5,n3}]}, {SHELL,mat,Polygon[{n4,n5,n6}]}}; REF[{SOLID,mat_,Tetrahedron[{n1_,n2_,n3_,n4_}]}]:={ {SOLID,mat,Tetrahedron[{n5=NEWNODE[Sort[{n1,n2}]],n8=NEWNODE[Sort[{n1,n4}]], n7=NEWNODE[Sort[{n1,n3}]],n1}]}, {SOLID,mat,Tetrahedron[{n5,n6=NEWNODE[Sort[{n2,n3}]], n9=NEWNODE[Sort[{n2,n4}]],n2}]}, {SOLID,mat,Tetrahedron[{n8,n9,n10=NEWNODE[Sort[{n3,n4}]],n4}]}, {SOLID,mat,Tetrahedron[{n7,n10,n6,n3}]}, {SOLID,mat,Tetrahedron[{n8,n6,n10,n9}]}, {SOLID,mat,Tetrahedron[{n8,n6,n5,n9}]}, {SOLID,mat,Tetrahedron[{n8,n6,n10,n7}]}, {SOLID,mat,Tetrahedron[{n8,n6,n5,n7}]} }; REF[{SOLID,mat_,Hexahedron[{n1_,n2_,n3_,n4_,n5_,n6_,n7_,n8_}]}]:={ {SOLID,mat,Hexahedron[{n1,n9=NEWNODE[Sort[{n1,n2}]], n13=NEWNODE[Sort[{n1,n2,n3,n4}]],n12=NEWNODE[Sort[{n1,n4}]], n14=NEWNODE[Sort[{n1,n5}]], n18=NEWNODE[Sort[{n1,n2,n6,n5}]], n22=NEWNODE[Sort[{n1,n2,n3,n4,n5,n6,n7,n8}]], n21=NEWNODE[Sort[{n1,n4,n5,n8}]] }]}, {SOLID,mat,Hexahedron[{n9,n2, n10=NEWNODE[Sort[{n2,n3}]],n13,n18, n15=NEWNODE[Sort[{n2,n6}]], n19=NEWNODE[Sort[{n2,n3,n7,n6}]], n22 }]}, {SOLID,mat,Hexahedron[{n13,n10,n3, n11=NEWNODE[Sort[{n3,n4}]],n22,n19, n16=NEWNODE[Sort[{n3,n7}]], n20=NEWNODE[Sort[{n4,n3,n7,n8}]] }]}, {SOLID,mat,Hexahedron[{n12,n13,n11,n4, n21,n22,n20, n17=NEWNODE[Sort[{n4,n8}]] }]}, {SOLID,mat,Hexahedron[{n14,n18,n22,n21,n5, n23=NEWNODE[Sort[{n6,n5}]], n27=NEWNODE[Sort[{n5,n6,n7,n8}]], n26=NEWNODE[Sort[{n5,n8}]] }]}, {SOLID,mat,Hexahedron[{n18,n15,n19,n22,n23,n6, n24=NEWNODE[Sort[{n6,n7}]],n27 }]}, {SOLID,mat,Hexahedron[{n22,n19,n16,n20,n27,n24,n7, n25=NEWNODE[Sort[{n7,n8}]] }]}, {SOLID,mat,Hexahedron[{n21,n22,n20,n17,n26,n27,n25, n8 }]} }; (*if nothing applies*) REF[{typ_,mat_,nod_}]:={{typ,mat,nod}}; REFINE[{ele_,fun_}]:=Module[{funout=fun,eleout=ele,ii,rule,a1,a2,a3,a4,a5,a6,left,right}, (*refinement inherits conditions and has memory*) ii =Length[funout]+1; Clear[NEWNODE,NEWNODET]; NEWNODET[{a1_,a2_}]:=NEWNODET[{a1,a2}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]])/2, {If[AllTrue[funout[[{a1,a2},2,1]],NumberQ],Mean[funout[[{a1,a2},2,1]]],uX[ii]],If[AllTrue[funout[[{a1,a2},2,2]],NumberQ],Mean[funout[[{a1,a2},2,2]]],uY[ii]],If[AllTrue[funout[[{a1,a2},2,3]],NumberQ],Mean[funout[[{a1,a2},2,3]]],uZ[ii]]}, {If[AllTrue[funout[[{a1,a2},3,1]],NumberQ],Mean[funout[[{a1,a2},3,1]]],\[Theta]X[ii]],If[AllTrue[funout[[{a1,a2},3,2]],NumberQ],Mean[funout[[{a1,a2},3,2]]],\[Theta]Y[ii]],If[AllTrue[funout[[{a1,a2},3,3]],NumberQ],Mean[funout[[{a1,a2},3,3]]],\[Theta]Z[ii]]}, If[AllTrue[funout[[{a1,a2},4]],NumberQ],Mean[funout[[{a1,a2},3,3]]],\[CurlyTheta][ii]]}}];ii++]; NEWNODE[{a1_,a2_}]:=NEWNODE[{a1,a2}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]])/2, {If[AllTrue[funout[[{a1,a2},2,1]],NumberQ],Mean[funout[[{a1,a2},2,1]]],uX[ii]],If[AllTrue[funout[[{a1,a2},2,2]],NumberQ],Mean[funout[[{a1,a2},2,2]]],uY[ii]],If[AllTrue[funout[[{a1,a2},2,3]],NumberQ],Mean[funout[[{a1,a2},2,3]]],uZ[ii]]}, {If[AllTrue[funout[[{a1,a2},3,1]],NumberQ],Mean[funout[[{a1,a2},3,1]]],\[Theta]X[ii]],If[AllTrue[funout[[{a1,a2},3,2]],NumberQ],Mean[funout[[{a1,a2},3,2]]],\[Theta]Y[ii]],If[AllTrue[funout[[{a1,a2},3,3]],NumberQ],Mean[funout[[{a1,a2},3,3]]],\[Theta]Z[ii]]}}}];ii++]; offset[\[Kappa]_,n1_,n2_]:=Module[{r12,L}, If[\[Kappa]==0,{0,0,0}, r12=funout[[n2,1]]-funout[[n1,1]]; L=Sqrt[r12 . r12]; -{0,0,1}\[Cross]r12/L*(1./\[Kappa]-Sqrt[1./\[Kappa]^2-L^2/4])]]; NEWNODE[{BEAM,\[Kappa]_},{n1_,n2_}]:=NEWNODE[{BEAM,\[Kappa]},{n1,n2}]=CompoundExpression[ funout=Join[funout,{ {(funout[[n1,1]]+funout[[n2,1]])/2+offset[\[Kappa],n1,n2], {If[AllTrue[funout[[{n1,n2},2,1]],NumberQ],Mean[funout[[{n1,n2},2,1]]],uX[ii,0]], If[AllTrue[funout[[{n1,n2},2,2]],NumberQ],Mean[funout[[{n1,n2},2,2]]],uY[ii,0]], If[AllTrue[funout[[{n1,n2},2,3]],NumberQ],Mean[funout[[{n1,n2},2,3]]],uZ[ii,0]]}, {If[AllTrue[funout[[{n1,n2},3,1]],NumberQ],Mean[funout[[{n1,n2},3,1]]],uX[ii,1]], If[AllTrue[funout[[{n1,n2},3,2]],NumberQ],Mean[funout[[{n1,n2},3,2]]],uY[ii,1]], If[AllTrue[funout[[{n1,n2},3,3]],NumberQ],Mean[funout[[{n1,n2},3,3]]],uZ[ii,1]]} }}];ii++]; NEWNODE[{a1_,a2_,a3_,a4_,a5_}]:=NEWNODE[{a1,a2,a3,a4}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]]+funout[[a3,1]]+funout[[a4,1]])/4, {If[AllTrue[funout[[{a1,a2,a3,a4},2,1]],NumberQ],Mean[funout[[{a1,a2,a3,a4},2,1]]],uX[ii]],If[AllTrue[funout[[{a1,a2,a3,a4},2,2]],NumberQ],Mean[funout[[{a1,a2,a3,a4},2,2]]],uY[ii]],If[AllTrue[funout[[{a1,a2,a3,a4},2,3]],NumberQ],Mean[funout[[{a1,a2,a3,a4},2,3]]],uZ[ii]]}, {If[AllTrue[funout[[{a1,a2,a3,a4},3,1]],NumberQ],Mean[funout[[{a1,a2,a3,a4},3,1]]],\[Theta]X[ii]],If[AllTrue[funout[[{a1,a2,a3,a4},3,2]],NumberQ],Mean[funout[[{a1,a2,a3,a4},3,2]]],\[Theta]Y[ii]],If[AllTrue[funout[[{a1,a2,a3,a4},3,3]],NumberQ],Mean[funout[[{a1,a2,a3,a4},3,3]]],\[Theta]Z[ii]]} }}];ii++]; NEWNODE[{a1_,a2_,a3_,a4_}]:=NEWNODE[{a1,a2,a3,a4}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]]+funout[[a3,1]]+funout[[a4,1]])/4, {uX[ii],uY[ii],uZ[ii]}, {\[Theta]X[ii],\[Theta]Y[ii],\[Theta]Z[ii]} }}];ii++]; NEWNODE[{a1_,a2_,a3_,a4_,a5_,a6_,a7_,a8_}]:=NEWNODE[{a1,a2,a3,a4,a5,a6,a7,a8}]=CompoundExpression[nl={a1,a2,a3,a4,a5,a6,a7,a8};funout=Join[funout,{ {Mean[funout[[nl,1]]], {If[AllTrue[funout[[nl,2,1]],NumberQ],Mean[funout[[nl,2,1]]],uX[ii]],If[AllTrue[funout[[nl,2,2]],NumberQ],Mean[funout[[nl,2,2]]],uY[ii]],If[AllTrue[funout[[nl,2,3]],NumberQ],Mean[funout[[nl,2,3]]],uZ[ii]]}, {If[AllTrue[funout[[nl,3,1]],NumberQ],Mean[funout[[nl,3,1]]],\[Theta]X[ii]],If[AllTrue[funout[[nl,3,2]],NumberQ],Mean[funout[[nl,3,2]]],\[Theta]Y[ii]],If[AllTrue[funout[[nl,3,3]],NumberQ],Mean[funout[[nl,3,3]]],\[Theta]Z[ii]]} }}];ii++]; NEWNODE[BAR,{a1_,a2_}]:=NEWNODE[{a2,a1}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]])/2, ux[ii]*Simplify[(funout[[a2,1]]-funout[[a1,1]])/ Sqrt[(funout[[a2,1]]-funout[[a1,1]]) . (funout[[a2,1]]-funout[[a1,1]])],L>0], {0,0,0}}}];ii++]; NEWNODET[BAR,{a1_,a2_}]:=NEWNODET[BAR,{a2,a1}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]])/2, ux[ii]*Simplify[(funout[[a2,1]]-funout[[a1,1]])/ Sqrt[(funout[[a2,1]]-funout[[a1,1]]) . (funout[[a2,1]]-funout[[a1,1]])],L>0], {0,0,0}, If[AllTrue[funout[[{a1,a2},4]],NumberQ],Mean[funout[[{a1,a2},3,3]]],\[CurlyTheta][ii]]}}];ii++]; (*DO IT*) eleout=Flatten[Map[REF[#]&,eleout],1]; Return[{eleout,funout}]]; REFINE[{ele_,fun_,lnk_}]:=Module[{funout=fun,eleout=ele,lnkout=lnk,ii,rule,a1,a2,a3,a4,a5,a6,left,right}, (*refinement inherits conditions and has memory*) ii =Length[funout]+1; Clear[NEWNODE]; NEWNODE[{a1_,a2_}]:=NEWNODE[{a1,a2}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]])/2, {If[AllTrue[funout[[{a1,a2},2,1]],NumberQ],Mean[funout[[{a1,a2},2,1]]],uX[ii]],If[AllTrue[funout[[{a1,a2},2,2]],NumberQ],Mean[funout[[{a1,a2},2,2]]],uY[ii]],If[AllTrue[funout[[{a1,a2},2,3]],NumberQ],Mean[funout[[{a1,a2},2,3]]],uZ[ii]]}, {If[AllTrue[funout[[{a1,a2},3,1]],NumberQ],Mean[funout[[{a1,a2},3,1]]],\[Theta]X[ii]],If[AllTrue[funout[[{a1,a2},3,2]],NumberQ],Mean[funout[[{a1,a2},3,2]]],\[Theta]Y[ii]],If[AllTrue[funout[[{a1,a2},3,3]],NumberQ],Mean[funout[[{a1,a2},3,3]]],\[Theta]Z[ii]]}}}];ii++]; NEWNODE[BAR,{a1_,a2_}]:=NEWNODE[{a2,a1}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]])/2, ux[ii]*Simplify[(funout[[a2,1]]-funout[[a1,1]])/ Sqrt[(funout[[a2,1]]-funout[[a1,1]]) . (funout[[a2,1]]-funout[[a1,1]])],L>0], {0,0,0}}}];ii++]; (*driven by this*) rule:={ {PLANE,mat_,Triangle[{n1_,n2_,n3_}]}:>{ {PLANE,mat,Triangle[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {PLANE,mat,Triangle[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {PLANE,mat,Triangle[{n6,n5,n3}]}, {PLANE,mat,Triangle[{n4,n5,n6}]}} }; eleout=Flatten[(eleout /. rule),1]; Return[{eleout,funout}]]; (* ::Input::Initialization:: *) (* REFINE[{ele_,fun_,elnk_}]:=Module[{funout=fun,eleout=ele,elnkout=elnk,ii,rule,a1,a2,a3,a4,a5,a6,left,right,NEWNODE}, (*refinement inherits conditions and has memory*) ii =Length[funout]+1; Clear[NEWNODE]; NEWNODE[{a1_,a2_}]:=NEWNODE[{a1,a2}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]])/2, {If[AllTrue[funout[[{a1,a2},2,1]],NumberQ],Mean[funout[[{a1,a2},2,1]]],uX[ii]],If[AllTrue[funout[[{a1,a2},2,2]],NumberQ],Mean[funout[[{a1,a2},2,2]]],uY[ii]],If[AllTrue[funout[[{a1,a2},2,3]],NumberQ],Mean[funout[[{a1,a2},2,3]]],uZ[ii]]}, {If[AllTrue[funout[[{a1,a2},3,1]],NumberQ],Mean[funout[[{a1,a2},3,1]]],\[Theta]X[ii]],If[AllTrue[funout[[{a1,a2},3,2]],NumberQ],Mean[funout[[{a1,a2},3,2]]],\[Theta]Y[ii]],If[AllTrue[funout[[{a1,a2},3,3]],NumberQ],Mean[funout[[{a1,a2},3,3]]],\[Theta]Z[ii]]}}}];ii++]; (*driven by this*) rule:={ {PLANE,mat_,Polygon[{n1_,n2_,n3_}]}\[RuleDelayed]{ {PLANE,mat,Polygon[{n1,n4=NEWNODE[Sort[{n1,n2}]],n6=NEWNODE[Sort[{n3,n1}]]}]}, {PLANE,mat,Polygon[{n4,n2,n5=NEWNODE[Sort[{n2,n3}]]}]}, {PLANE,mat,Polygon[{n6,n5,n3}]}, {PLANE,mat,Polygon[{n4,n5,n6}]}}, {FACE,mat_,Line[{n1_,n2_}]}\[RuleDelayed]{ {FACE,mat,Line[{n1,n3=NEWNODE[Sort[{n1,n2}]]}]}, {FACE,mat,Line[{n3,n2}]}} }; (*refined edges should be removed*) elnkout=DeleteDuplicates[Flatten[Map[{ {{#[[1,1]],NEWNODE[Sort[#[[1]]]]},{#[[2,1]],NEWNODE[Sort[#[[2]]]]}}, {{NEWNODE[Sort[#[[1]]]],#[[1,2]]},{NEWNODE[Sort[#[[2]]]],#[[2,2]]}}}&,elnk],1]]; eleout=Flatten[(eleout /. rule),1]; Return[{eleout,funout,elnkout}]]; *) (* ::Input::Initialization:: *) (*MEC-E1005 | E8001 transform to hgher otder representation*) ENRICH[{ele_,fun_}]:=Module[{funout,eleout,ii,rule,a1,a2,NEWNODE}, funout =fun; eleout=ele; ii =Length[funout]+1; NEWNODE[{a1_,a2_}]:=NEWNODE[{a1,a2}]=CompoundExpression[funout=Join[funout,{ {(funout[[a1,1]]+funout[[a2,1]])/2, {If[AllTrue[funout[[{a1,a2},2,1]],NumberQ],Mean[funout[[{a1,a2},2,1]]],uX[ii]],If[AllTrue[funout[[{a1,a2},2,2]],NumberQ],Mean[funout[[{a1,a2},2,2]]],uY[ii]],If[AllTrue[funout[[{a1,a2},2,3]],NumberQ],Mean[funout[[{a1,a2},2,3]]],uZ[ii]]}, {If[AllTrue[funout[[{a1,a2},3,1]],NumberQ],Mean[funout[[{a1,a2},3,1]]],\[Theta]X[ii]],If[AllTrue[funout[[{a1,a2},3,2]],NumberQ],Mean[funout[[{a1,a2},3,2]]],\[Theta]Y[ii]],If[AllTrue[funout[[{a1,a2},3,3]],NumberQ],Mean[funout[[{a1,a2},3,3]]],\[Theta]Z[ii]]}}}];ii++]; (*driven by this*) rule:={ {typ_,mat_,Line[{n1_,n2_}]}:> {typ,mat,Line[{n1,NEWNODE[Sort[{n1,n2}]],n2}]}, {typ_,mat_,Polygon[{n1_,n2_,n3_}]}:> {typ,mat,Polygon[{n1,NEWNODE[Sort[{n1,n2}]],n2,NEWNODE[Sort[{n2,n3}]],n3,NEWNODE[Sort[{n3,n1}]] }]}, {typ_,mat_,Polygon[{n1_,n2_,n3_,n4_}]}:> {typ,mat,Polygon[{n1,NEWNODE[Sort[{n1,n2}]],n2,NEWNODE[Sort[{n2,n3}]],n3,NEWNODE[Sort[{n3,n4}]],n4,NEWNODE[Sort[{n4,n1}]] }]} }; eleout=eleout /. rule; Return[{eleout,funout}]]; (* ::Input::Initialization:: *) GREF[Polygon[{n1_,n2_,n3_}]]:={ Polygon[{n4=NEWNODE[Sort[{n1,n2}]],n2,n5=NEWNODE[Sort[{n2,n3}]]}], Polygon[{n5,n3,n6=NEWNODE[Sort[{n3,n1}]]}], Polygon[{n6,n1,n4}],Polygon[{n4,n5,n6}]}; GREF[Polygon[{n1_,n2_,n3_,n4_}]]:={ {Polygon[{n1,n5=NEWNODE[Sort[{n1,n2}]],n8=NEWNODE[Sort[{n1,n3}]],n9=NEWNODE[Sort[{n1,n2,n3,n4}]]}]}, {Polygon[{n5,n2,n9,n6=NEWNODE[Sort[{n2,n4}]]}]}, {Polygon[{n8,n9,n3,n7=NEWNODE[Sort[{n3,n4}]]}]}, {Polygon[{n9,n6,n7,n4}]}}; GREFINE[{crd_,nod_}]:=Module[{crdout=crd,nodout=nod,ii}, ii =Length[crdout]+1; Clear[NEWNODE]; NEWNODE[{a1_,a2_}]:=NEWNODE[{a1,a2}]=CompoundExpression[ crdout=Join[crdout,{(crdout[[a1]]+crdout[[a2]])/2}],ii++]; nodout=Flatten[Map[GREF[#]&,nodout],1]; Return[{crdout,nodout}]]; GENR[Polygon[{n1_,n2_,n3_}]]:=Polygon[{n1,n2,n3,NEWNODE[Sort[{n1,n2}]],NEWNODE[Sort[{n2,n3}]],NEWNODE[Sort[{n3,n1}]]}]; (*GENR[Polygon[{n1_,n2_,n3_,n4_}]]:={ {Polygon[{n1,n5=NEWNODE[{n1,n2}],n8=NEWNODE[{n1,n3}],n9=NEWNODE[{n1,n2,n3,n4}]}]}, {Polygon[{n5,n2,n9,n6=NEWNODE[{n2,n4}]}]}, {Polygon[{n8,n9,n3,n7=NEWNODE[{n3,n4}]}]}, {Polygon[{n9,n6,n7,n4}]}};*) GENRICH[{crd_,nod_}]:=Module[{ii,FN,rule,crdout=crd,nodout=nod}, ii=Length[crdout]+1; Clear[NEWNODE]; NEWNODE[{a1_,a2_}]:=NEWNODE[{a1,a2}]=CompoundExpression[crdout=Join[crdout, {(crdout[[a1]]+crdout[[a2]])/2}],ii++]; nodout=Map[GENR[#]&,nodout]; Return[{crdout,nodout}]]; (* ::Input::Initialization:: *) (*extrude a cross-section in z-direction*) EXTRUDE[{nod_,crd_},{ns_,np_},L_]:=Module[{nodout,crdout,offset,nnod}, crdout=Table[ Map[Append[#,L*ii/(np*ns)]&,crd],{ii,0,np*ns}]; nnod=Max[Flatten[nod /. Line[a_]->a]]; offset =Partition[Table[ii,{ii,1, (np+1)*ns-(ns-1)}],np+1,np]; nodout=Flatten[Table[nod /.Line[a_]->ELEMENT[Table[a+(ii-1)*nnod,{ii,off}]],{off,offset}],1] ; Return[{nodout,crdout}]]; (*extrude a cross-section in z-direction*) EXTRUDE[{nod_,crd_},np_,z_List]:=Module[{nodout,crdout,offset,nnod,ns}, ns=Length[z]-1; crdout=Flatten[Table[Table[ Map[Append[#,z[[is]]+(z[[is+1]]-z[[is]])*ii/np]&,crd],{ii,If[is==1,0,1],np}],{is,1,ns}],1]; nnod=Max[Flatten[nod /. Line[a_]->a]]; offset =Partition[Table[ii,{ii,1, (np+1)*ns-(ns-1)}],np+1,np]; nodout=Flatten[Table[nod /.Line[a_]->ELEMENT[Table[a+(ii-1)*nnod,{ii,off}]],{off,offset}],1] ; Return[{nodout,crdout}]]; (* ::Input::Initialization:: *) Needs["TriangleLink`"]; TRIANGULATE[{seg_,crd_},a_Real]:=Module[{inInst,outInst,crdout,nodout,str}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; Print["here we go"]; (*do it*) str="pq30a"<>ToString[1.*a]<>"A"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst]; nodout=TriangleGetElements[outInst]; Return[{crdout,Map[Polygon[#]&,nodout]}]]; TRIANGULATE[{seg_,crd_,mrk_},{dms_,atr_,cns_},a_Real]:=Module[{inInst,outInst,crdout,polout,typout,segout,mrkout,str}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetSegmentMarkers[inInst,mrk]; TriangleSetRegions[inInst,dms, atr, cns]; (*do it*) str="pq30a"<>ToString[1.*a]<>"A"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];polout=TriangleGetElements[outInst]; segout=TriangleGetSegments[outInst]; mrkout=TriangleGetSegmentMarkers[outInst]; typout=Flatten[Round[TriangleGetElementAttributes[outInst]]]; TriangleDelete[inInst]; Return[{crdout,Map[Polygon[#]&,polout],typout,segout,mrkout}]]; TRIANGULATE[{seg_,crd_,mrk_},{dms_,atr_,cns_},str_String]:=Module[{inInst,outInst,crdout,polout,typout,segout,mrkout}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetSegmentMarkers[inInst,mrk]; TriangleSetRegions[inInst,dms, atr, cns]; (*do it*) outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];polout=TriangleGetElements[outInst]; segout=TriangleGetSegments[outInst]; mrkout=TriangleGetSegmentMarkers[outInst]; typout=Flatten[Round[TriangleGetElementAttributes[outInst]]]; TriangleDelete[inInst]; Return[{crdout,Map[Polygon[#]&,polout],typout,segout,mrkout}]]; TRIANGULATE[{seg_,crd_,mrk_},a_Real]:=Module[{inInst,outInst,crdout,polout,typout,segout,mrkout,str}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetSegmentMarkers[inInst,mrk]; (*do it*) str="pq30a"<>ToString[1.*a]<>"A"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst]; polout=TriangleGetElements[outInst]; segout=TriangleGetSegments[outInst]; mrkout=TriangleGetSegmentMarkers[outInst]; Return[{crdout,Map[Polygon[#]&,polout],segout,mrkout}]]; (*more specific form to be removed*) TRIANGULATE[{seg_,mrk_},crd_,a_Real]:=Module[{str,inInst,outInst,crdout,eleout,segout,mrkout}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetSegmentMarkers[inInst,mrk]; (*do it*) str="pq30a"<>ToString[1.*a]<>"A"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];eleout=TriangleGetElements[outInst]; segout=TriangleGetSegments[outInst]; mrkout=TriangleGetSegmentMarkers[outInst]; eleout =Map[Polygon[#]&,eleout]; segout =Map[Line[#]&,segout]; Return[{crdout,eleout,segout,mrkout}]]; TRIANGULATE[{seg_,mrk_},crd_,str_String]:=Module[{inInst,outInst,crdout,eleout,segout,mrkout}, (*set it*) Print["here we go"]; Print[str]; inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetSegmentMarkers[inInst,mrk]; (*do it*) outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];eleout=TriangleGetElements[outInst]; segout=TriangleGetSegments[outInst]; mrkout=TriangleGetSegmentMarkers[outInst]; eleout =Map[Polygon[#]&,eleout]; segout =Map[Line[#]&,segout]; Return[{crdout,eleout,segout,mrkout}]]; TRIANGULATE[{crd_,nod_}]:=TRIANGULATE[nod /.Line[any_]->any,crd]; TRIANGULATE[seg_,crd_]:=Module[{inInst,outInst,crdout,eleout}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; (*do it*) outInst = TriangleTriangulate[inInst,"pq30a0.07YA"]; (*extract*) crdout= TriangleGetPoints[outInst];eleout=TriangleGetElements[outInst]; eleout =Map[Polygon[#]&,eleout]; Return[{crdout,eleout}]]; TRIANGULATE[{crd_,nod_},{dms_,atr_,cns_}]:=TRIANGULATE[nod /.Line[any_]->any,crd,{dms,atr,cns}]; TRIANGULATE[seg_,crd_,{dms_,atr_,cns_}]:=Module[{inInst,outInst,crdout,polout,typout}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetRegions[inInst,dms, atr, cns]; (*do it*) outInst = TriangleTriangulate[inInst,"pq30a0.0005YA"]; (*extract*) crdout= TriangleGetPoints[outInst];polout=TriangleGetElements[outInst]; polout =Map[Polygon[#]&,polout]; typout=Flatten[Round[TriangleGetElementAttributes[outInst]]]; Return[{crdout,polout,typout}]]; TRIANGULATE[{crd_,nod_},{dms_,atr_,cns_},a_]:=TRIANGULATE[nod /.Line[any_]->any,crd,{dms,atr,cns},a]; TRIANGULATE[seg_,crd_,{dms_,atr_,cns_},a_]:=Module[{inInst,outInst,crdout,polout,typout,str}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetRegions[inInst,dms, atr, cns]; (*do it*) str="pq30a"<>ToString[1.*a]<>"YA"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];polout=TriangleGetElements[outInst]; polout =Map[Polygon[#]&,polout]; typout=Flatten[Round[TriangleGetElementAttributes[outInst]]]; Return[{crdout,polout,typout}]]; TRIANGULATE[seg_,crd_,{dms_,atr_,cns_,hls_},a_]:=Module[{inInst,outInst,crdout,polout,typout,str}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetRegions[inInst,dms, atr, cns]; TriangleSetHoles[inInst, hls]; (*do it*) str="pq30a"<>ToString[1.*a]<>"YA"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];polout=TriangleGetElements[outInst]; polout =Map[Polygon[#]&,polout]; typout=Flatten[Round[TriangleGetElementAttributes[outInst]]]; Return[{polout,crdout,typout}]]; (* ::Input::Initialization:: *) (*SHOULD HAVE THE SAME INTERFACE AS REFINE*) RVEBUILD[{seg_,crd_}]:=Module[{inInst,outInst,crdout,eleout}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; (*do it*) (*outInst = TriangleTriangulate[inInst,"pq30a0.0025YA"];*) outInst = TriangleTriangulate[inInst,"pq30a0.07A"]; (*extract*) crdout= TriangleGetPoints[outInst];eleout=TriangleGetElements[outInst]; eleout =Map[Polygon[#]&,eleout]; Return[{eleout,crdout}]]; RVEBUILD[{seg_,crd_},a_]:=Module[{inInst,outInst,crdout,eleout,str}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; (*do it*) str="pq30a"<>ToString[1.*a]<>"YA"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];eleout=TriangleGetElements[outInst]; eleout =Map[Polygon[#]&,eleout]; Return[{eleout,crdout}]]; RVEBUILD[{seg_,crd_},{dms_,atr_,cns_}]:=Module[{inInst,outInst,crdout,polout,typout}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetRegions[inInst,dms, atr, cns]; (*do it*) outInst = TriangleTriangulate[inInst,"pq30a0.0005YA"]; (*extract*) crdout= TriangleGetPoints[outInst];polout=TriangleGetElements[outInst]; polout =Map[Polygon[#]&,polout]; typout=Flatten[Round[TriangleGetElementAttributes[outInst]]]; Return[{polout,crdout,typout}]]; RVEBUILD[{seg_,crd_},{dms_,atr_,cns_},a_]:=Module[{inInst,outInst,crdout,polout,typout,str}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetRegions[inInst,dms, atr, cns]; (*do it*) str="pq30a"<>ToString[1.*a]<>"YA"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];polout=TriangleGetElements[outInst]; polout =Map[Polygon[#]&,polout]; typout=Flatten[Round[TriangleGetElementAttributes[outInst]]]; Return[{polout,crdout,typout}]]; RVEBUILD[{seg_,crd_},{dms_,atr_,cns_,hls_},a_]:=Module[{inInst,outInst,crdout,polout,typout,str}, (*set it*) inInst=TriangleCreate[]; TriangleSetPoints[inInst,crd]; TriangleSetSegments[inInst,seg]; TriangleSetRegions[inInst,dms, atr, cns]; TriangleSetHoles[inInst, hls]; (*do it*) str="pq30a"<>ToString[1.*a]<>"YA"; outInst = TriangleTriangulate[inInst,str]; (*extract*) crdout= TriangleGetPoints[outInst];polout=TriangleGetElements[outInst]; polout =Map[Polygon[#]&,polout]; typout=Flatten[Round[TriangleGetElementAttributes[outInst]]]; Return[{polout,crdout,typout}]]; (* ::Input::Initialization:: *) (*MEC-E1050-E8001 defs*) STANDARDFORM[\[Delta]W_]:=STANDARDFORM[{DISP},\[Delta]W]; STANDARDFORM[{DISP},\[Delta]W_]:= Print["\[Delta]W = -",MatrixForm[\[Delta]DOFS[\[Delta]W]]^T,"(",MatrixForm[Simplify[-D[D[\[Delta]W,{\[Delta]DOFS[\[Delta]W]}],{DOFS[\[Delta]W]}]]], "",MatrixForm[DOFS[\[Delta]W]],"-",MatrixForm[Simplify[D[\[Delta]W,{\[Delta]DOFS[\[Delta]W]}] /.Thread[DOFS[\[Delta]W]->0]]],")"]; STANDARDFORM[{TMEC},{ele_,fun_}]:=STANDARDFORM[{DISP},{ele,fun}]; STANDARDFORM[{ele_,fun_}]:=STANDARDFORM[{DISP},{ele,fun}]; ELEMENTFORM[{ele_,fun_}]:=ELEMENTFORM[{DISP},{ele,fun}]; ELEMENTFORM[{DISP},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ,frule,ind,\[Delta]ind}, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[DISP,#,fun]&,ele]]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; ind =Union[dof /.{uX[any__]->{any},ux[any__]->{any},uY[any__]->{any},uy[any__]->{any},uZ[any__]->{any},uz[any__]->{any},\[Theta]X[any__]->{any},\[Theta]x[any__]->{any},\[Theta]Y[any__]->{any},\[Theta]y[any__]->{any},\[Theta]Z[any__]->{any},\[Theta]z[any__]->{any}}]; dof=Flatten[Table[{ Cases[dof,uX[i /.List->Sequence]],Cases[dof,ux[i /.List->Sequence]],Cases[dof,uY[i /.List->Sequence]],Cases[dof,uy[i /.List->Sequence]],Cases[dof,uZ[i /.List->Sequence]], Cases[dof,uz[i /.List->Sequence]],Cases[dof,\[Theta]X[i /.List->Sequence]], Cases[dof,\[Theta]x[i /.List->Sequence]],Cases[dof,\[Theta]Y[i /.List->Sequence]], Cases[dof,\[Theta]y[i /.List->Sequence]],Cases[dof,\[Theta]Z[i /.List->Sequence]], Cases[dof,\[Theta]z[i /.List->Sequence]]},{i,ind}]]; \[Delta]ind =Union[\[Delta]dof /.{\[Delta]uX[any__]->{any},\[Delta]ux[any__]->{any},\[Delta]uY[any__]->{any},\[Delta]uy[any__]->{any},\[Delta]uZ[any__]->{any},\[Delta]uz[any__]->{any},\[Delta]\[Theta]X[any__]->{any},\[Delta]\[Theta]x[any__]->{any},\[Delta]\[Theta]Y[any__]->{any},\[Delta]\[Theta]y[any__]->{any},\[Delta]\[Theta]Z[any__]->{any},\[Delta]\[Theta]z[any__]->{any}}]; \[Delta]dof=Flatten[Table[{ Cases[\[Delta]dof,\[Delta]uX[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]ux[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]uY[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]uy[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]uZ[i /.List->Sequence]], Cases[\[Delta]dof,\[Delta]uz[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]\[Theta]X[i /.List->Sequence]], Cases[\[Delta]dof,\[Delta]\[Theta]x[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]\[Theta]Y[i /.List->Sequence]], Cases[\[Delta]dof,\[Delta]\[Theta]y[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]\[Theta]Z[i /.List->Sequence]], Cases[\[Delta]dof,\[Delta]\[Theta]z[i /.List->Sequence]]},{i,\[Delta]ind}]]; frule ={\[Delta]uX[any__]->FX[any],\[Delta]ux[any__]->Fx[any],\[Delta]uY[any__]->FY[any],\[Delta]uy[any__]->Fy[any],\[Delta]uZ[any__]->FZ[any],\[Delta]uz[any__]->Fz[any],\[Delta]\[Theta]X[any__]->MX[any],\[Delta]\[Theta]x[any__]->Mx[any],\[Delta]\[Theta]Y[any__]->MY[any],\[Delta]\[Theta]y[any__]->My[any],\[Delta]\[Theta]Z[any__]->MZ[any],\[Delta]\[Theta]z[any__]->Mz[any]}; Print[MatrixForm[\[Delta]dof /.frule]," = ",MatrixForm[Simplify[-D[D[\[Delta]WW,{\[Delta]dof}],{dof}]]], "",MatrixForm[dof],"-",MatrixForm[Simplify[D[\[Delta]WW,{\[Delta]dof}] /.Thread[dof->0]]]]]; STANDARDFORM[{DISP},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ,ind,\[Delta]ind }, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[DISP,#,fun]&,ele]]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; ind =Union[dof /.{uX[any__]->{any},ux[any__]->{any},uY[any__]->{any},uy[any__]->{any},uZ[any__]->{any},uz[any__]->{any},\[Theta]X[any__]->{any},\[Theta]x[any__]->{any},\[Theta]Y[any__]->{any},\[Theta]y[any__]->{any},\[Theta]Z[any__]->{any},\[Theta]z[any__]->{any}}]; dof=Flatten[Table[{ Cases[dof,uX[i /.List->Sequence]],Cases[dof,ux[i /.List->Sequence]],Cases[dof,uY[i /.List->Sequence]],Cases[dof,uy[i /.List->Sequence]],Cases[dof,uZ[i /.List->Sequence]], Cases[dof,uz[i /.List->Sequence]],Cases[dof,\[Theta]X[i /.List->Sequence]], Cases[dof,\[Theta]x[i /.List->Sequence]],Cases[dof,\[Theta]Y[i /.List->Sequence]], Cases[dof,\[Theta]y[i /.List->Sequence]],Cases[dof,\[Theta]Z[i /.List->Sequence]], Cases[dof,\[Theta]z[i /.List->Sequence]]},{i,ind}]]; \[Delta]ind =Union[\[Delta]dof /.{\[Delta]uX[any__]->{any},\[Delta]ux[any__]->{any},\[Delta]uY[any__]->{any},\[Delta]uy[any__]->{any},\[Delta]uZ[any__]->{any},\[Delta]uz[any__]->{any},\[Delta]\[Theta]X[any__]->{any},\[Delta]\[Theta]x[any__]->{any},\[Delta]\[Theta]Y[any__]->{any},\[Delta]\[Theta]y[any__]->{any},\[Delta]\[Theta]Z[any__]->{any},\[Delta]\[Theta]z[any__]->{any}}]; \[Delta]dof=Flatten[Table[{ Cases[\[Delta]dof,\[Delta]uX[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]ux[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]uY[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]uy[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]uZ[i /.List->Sequence]], Cases[\[Delta]dof,\[Delta]uz[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]\[Theta]X[i /.List->Sequence]], Cases[\[Delta]dof,\[Delta]\[Theta]x[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]\[Theta]Y[i /.List->Sequence]], Cases[\[Delta]dof,\[Delta]\[Theta]y[i /.List->Sequence]],Cases[\[Delta]dof,\[Delta]\[Theta]Z[i /.List->Sequence]], Cases[\[Delta]dof,\[Delta]\[Theta]z[i /.List->Sequence]]},{i,\[Delta]ind}]]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,"(",MatrixForm[Simplify[-D[D[\[Delta]WW,{\[Delta]dof}],{dof}]]], "",MatrixForm[dof],"-",MatrixForm[Simplify[D[\[Delta]WW,{\[Delta]dof}] /.Thread[dof->0]]],")"]]; STANDARDFORM[{DISP},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ,ind,\[Delta]ind }, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[DISP,#,fun]&,ele]]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,"(",MatrixForm[Simplify[-D[D[\[Delta]WW,{\[Delta]dof}],{dof}]]], "",MatrixForm[dof],"-",MatrixForm[Simplify[D[\[Delta]WW,{\[Delta]dof}] /.Thread[dof->0]]],")"]]; STANDARDFORM[{TMEC},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ,ind,\[Delta]ind }, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[TMEC,#,fun]&,ele]]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,"(",MatrixForm[Simplify[-D[D[\[Delta]WW,{\[Delta]dof}],{dof}]]], "",MatrixForm[dof],"-",MatrixForm[Simplify[D[\[Delta]WW,{\[Delta]dof}] /.Thread[dof->0]]],")"]]; STANDARDFORM[{EVENT,{s0_,sol0_}},{ele_,fun_}]:= STANDARDFORM[{DISP},{ele,fun}]; STANDARDFORM[{STAB},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ}, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[STAB,#,fun]&,ele]]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ=Simplify[D[\[Delta]WW,{\[Delta]dof}]]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,MatrixForm[Simplify[equ]] ]]; STANDARDFORM[{STAB},\[Delta]WW_]:= Module[{dof,\[Delta]dof,equ}, dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ=Simplify[D[\[Delta]WW,{\[Delta]dof}]]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,MatrixForm[Simplify[equ]] ]]; STANDARDFORM[{NONL},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ}, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[NONL,#,fun]&,ele]]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ=Simplify[D[\[Delta]WW,{\[Delta]dof}]]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,MatrixForm[Simplify[-equ]] ]]; STANDARDFORM[{NONL,rule0_},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ}, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[{NONL,rule0},#,fun]&,ele]]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ=Simplify[D[\[Delta]WW,{\[Delta]dof}]]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,MatrixForm[Simplify[-equ]] ]]; STANDARDFORM[{NONL,rule0_},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ}, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[{NONL,rule0},#,fun]&,ele]]]; dof=DOFS[\[Delta]WW];\[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ=Simplify[D[\[Delta]WW,{\[Delta]dof}]]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,MatrixForm[Simplify[-equ]] ]]; STANDARDFORM[{VIBR},\[Delta]W_]:= Module[{dof,\[Delta]dof,equ,dofall,dof0,dof2,KK,MM}, dof=DOFS[\[Delta]W];\[Delta]dof=\[Delta]DOFS[\[Delta]W]; equ =D[\[Delta]W,{\[Delta]dof}]; dofall=Union[dof /. anya_[anyb__,0|2]->anya[anyb]]; dof0 =dofall /.DRULE[0]; dof2 =dofall/. DRULE[2]; KK =D[equ,{dof0}]; MM =D[equ,{dof2}]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,"(",MatrixForm[Simplify[-KK]], "",MatrixForm[dof0],"+",MatrixForm[Simplify[-MM]], "",MatrixForm[dof2],"-",MatrixForm[equ /.Thread[dof->0]],")"]]; STANDARDFORM[{VIBR},{ele_,fun_}]:= Module[{\[Delta]WW,dof,\[Delta]dof,equ,dofall,dof0,dof2,KK,MM}, \[Delta]WW=Simplify[Apply[Plus,Map[\[Delta]W[VIBR,#,fun]&,ele]]]; dof=DOFS[\[Delta]WW]; \[Delta]dof=\[Delta]DOFS[\[Delta]WW]; equ =D[\[Delta]WW,{\[Delta]dof}]; dofall=Union[dof /. anya_[anyb_,0|2]->anya[anyb]]; dof0 =dofall /. DRULE[0]; dof2 =dofall/. DRULE[2]; KK =D[equ,{dof0}]; MM =D[equ,{dof2}]; Print["\[Delta]W = -",MatrixForm[\[Delta]dof]^T,"(",MatrixForm[Simplify[-KK]], "",MatrixForm[dof0],"+",MatrixForm[Simplify[-MM]], "",MatrixForm[dof2],"-",MatrixForm[equ /.Thread[dof->0]],")"]]; FORMATTED[{ele_,fun_}]:=Grid[{{TableForm[ele,TableDepth->2,TableHeadings->{Array[#&,Length[ele]],{"model","properties","geometry"}}]}, {}, {TableForm[fun,TableDepth->2,TableHeadings->{Array[#&,Length[fun]],{"{X,Y,Z}","{\!\(\*SubscriptBox[\(u\), \(X\)]\),\!\(\*SubscriptBox[\(u\), \(Y\)]\),\!\(\*SubscriptBox[\(u\), \(Z\)]\)}","{\!\(\*SubscriptBox[\(\[Theta]\), \(X\)]\),\!\(\*SubscriptBox[\(\[Theta]\), \(Y\)]\),\!\(\*SubscriptBox[\(\[Theta]\), \(Z\)]\)}","\[CurlyTheta]"}}]}},Alignment->Left]; (* ::Input::Initialization:: *) (*MEC-E1050, MEC-E8001 defs*) MESH[{ele_,fun_}]:=Module[{pick,labs,crds,\[ScriptCapitalR]}, pick=Map[Not[AllTrue[#,PossibleZeroQ]]&,Transpose[fun[[;;,1]]]]; crds=Pick[{1,2,3},pick]; labs=Pick[{"X","Y","Z"},pick]; \[ScriptCapitalR]=MeshRegion[fun[[;;,1,crds]],ele[[;;,3]]]; Show[HighlightMesh[\[ScriptCapitalR],Style[1,Thin]],HighlightMesh[\[ScriptCapitalR],0],AxesLabel->labs,Axes->True,SphericalRegion->True]]; DISP[{ele_,fun_}]:=Module[{pick,labs,crds,\[ScriptCapitalR],range,off}, pick=Map[Not[AllTrue[#,PossibleZeroQ]]&,Transpose[fun[[;;,1]]]]; crds=Pick[{1,2,3},pick]; labs=Pick[{"X","Y","Z"},pick]; range=Map[MinMax[(fun[[;;,1,#]]+fun[[;;,2,#]])]&,crds]; off=Norm[Map[#[[2]]-#[[1]]&,range]]; range =Map[{#[[1]]-off/5,#[[2]]+off/5}&,range]; \[ScriptCapitalR]=MeshRegion[fun[[;;,1,crds]]+fun[[;;,2,crds]],ele[[;;,3]]]; Show[HighlightMesh[\[ScriptCapitalR],Style[1,Thin]],HighlightMesh[\[ScriptCapitalR],0],AxesLabel->labs,Axes->True,Boxed->True,PlotRange->range,SphericalRegion->True]]; DISP3D[{ele_,fun_}]:=Module[{\[ScriptCapitalR],scale}, scale=Norm[fun[[;;,1]]]/Norm[fun[[;;,2]]]/5; \[ScriptCapitalR]=MeshRegion[fun[[;;,1]]+scale*fun[[;;,2]],ele[[;;,3]]]; Show[HighlightMesh[\[ScriptCapitalR],Style[1,Thin]],HighlightMesh[\[ScriptCapitalR],0],AxesLabel->{"X","Y","Z"},Axes->True,Boxed->True,PlotRange->All,SphericalRegion->True]]; STRESS[{ele_,fun_}]:=Map[If[(#[[1]]===PLANESTRESS)||(#[[1]]===PLANESTRAIN),\[Delta]W[STRES,#,fun],None]&,ele]; COLORFUNCTION[min_,max_]:=If[#<0,Blend[{Blue,LightGray},(#-min)/(0-min)],Blend[{LightGray,Red},(#-0)/(max-0)]]&; (*stress calculations*) DISP[{ele_,fun_},exp_]:=Module[{pick,labs,crds,srule,val,min,max,grule}, pick=Map[Not[AllTrue[#,PossibleZeroQ]]&,Transpose[fun[[;;,1]]]]; crds=Pick[{1,2,3},pick]; labs=Pick[{"X","Y","Z"},pick]; srule =Map[\[Delta]W[STRES,#,fun]&,ele]; val=Map[exp /.#&,srule]; Print[val]; {min,max}=MinMax[val]; grule :={n1_,n2_,n3_}:> (fun[[{n1,n2,n3},1,1;;2]]+fun[[{n1,n2,n3},2,1;;2]]); Show[Graphics[Table[{COLORFUNCTION[min,max][val[[e]]],ele[[e,3]]/.grule},{e,1,Length[ele]}]],Frame->True,FrameLabel->labs] ]; (* ::Input::Initialization:: *) (*beam graphics*) GRAPHICS[MESH,{BEAM,pro_,Line[{n1_,n2_}]},fun_]:={Gray,Cylinder[{fun[[n1,1]],fun[[n2,1]]},0.003],Blue,PointSize[Medium],Point[{fun[[n1,1]],fun[[n2,1]]}]}; GRAPHICS[{DISP,scale_},{BEAM,{mat_,{{d_,t_},iy_},for_},Line[{n1_,n2_}]},fun_]:= Module[{\[Rho],h,NL,NQ,ix,iz,T}, \[Rho]=fun[[n2,1]]-fun[[n1,1]]; h=Simplify[Sqrt[\[Rho] . \[Rho]],{h>0,L>0}]; NL={1-\[Xi],\[Xi]}; NQ={(1-\[Xi])^2 (1+2 \[Xi]),h (1-\[Xi])^2 \[Xi],(3-2 \[Xi]) \[Xi]^2,h \[Xi]^2 (\[Xi]-1)}; ix=\[Rho]/h; iz=ix\[Cross]iy; T={ix,iy,iz}; ux1=fun[[n1,2]] . ix; ux2=fun[[n2,2]] . ix; uy1=fun[[n1,2]] . iy; uy2=fun[[n2,2]] . iy; uz1=fun[[n1,2]] . iz; uz2=fun[[n2,2]] . iz; \[Theta]x1=fun[[n1,3]] . ix; \[Theta]x2=fun[[n2,3]] . ix; \[Theta]y1=fun[[n1,3]] . iy; \[Theta]y2=fun[[n2,3]] . iy; \[Theta]z1=fun[[n1,3]] . iz; \[Theta]z2=fun[[n2,3]] . iz; u=NL . {ux1,ux2}*scale; v=NQ . {uy1,-\[Theta]z1,uy2,-\[Theta]z2}*scale; w=NQ . {uz1,-\[Theta]y1,uz2,-\[Theta]y2}*scale; pp=Partition[Table[fun[[n1,1]]+ix*h*\[Xi]+{u,v,w} . T,{\[Xi],0,1,1/10}],2,1]; pp=Table[fun[[n1,1]]+ix*h*\[Xi]+{u,v,w} . T,{\[Xi],0,1,1/10}];{Gray,CapForm["Butt"],Tube[pp,d/2 ],Blue,PointSize[Medium],Point[fun[[n1,1]]+fun[[n1,2]]*scale], Point[fun[[n2,1]]+fun[[n2,2]]*scale]} ]; GRAPHICS[{DISP,scale_},{BEAM,{mat_,{ly_,lz_,iy_},for_},Line[{n1_,n2_}]},fun_]:= Module[{\[Rho],h,x,y,z,NL,NQ,ix,iz,T,u,v,w,\[Phi],\[Theta],\[Psi]}, \[Rho]=fun[[n2,1]]-fun[[n1,1]]; h=Simplify[Sqrt[\[Rho] . \[Rho]],{h>0,L>0}]; ix=\[Rho]/h; iz=ix\[Cross]iy; \[Rho]=x ix+y iy+z iz; T={ix,iy,iz}; NL={1-x/h,x/h}; NQ={(1-x/h)^2 (1+2 x/h),h (1-x/h)^2 x/h,(3-2 x/h) (x/h)^2,h (x/h)^2 (x/h-1)}; ux1=fun[[n1,2]] . ix; ux2=fun[[n2,2]] . ix; uy1=fun[[n1,2]] . iy; uy2=fun[[n2,2]] . iy; uz1=fun[[n1,2]] . iz; uz2=fun[[n2,2]] . iz; \[Theta]x1=fun[[n1,3]] . ix; \[Theta]x2=fun[[n2,3]] . ix; \[Theta]y1=fun[[n1,3]] . iy; \[Theta]y2=fun[[n2,3]] . iy; \[Theta]z1=fun[[n1,3]] . iz; \[Theta]z2=fun[[n2,3]] . iz; u=NL . {ux1,ux2}; v=NQ . {uy1,-\[Theta]z1,uy2,-\[Theta]z2}; w=NQ . {uz1,-\[Theta]y1,uz2,-\[Theta]y2}; \[Phi]=NL . {\[Theta]x1,\[Theta]x2}; \[Theta]=-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\); \[Psi]=\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\); ux=(u+\[Theta] z-\[Psi] y)*scale; uy=(v-\[Phi] z)*scale; uz=(w+\[Phi] y)*scale; pp=Table[(fun[[n1,1]]+\[Rho]+{ux,uy,uz} . T)/.Thread[{y,z}->yz],{x,0,h,h/10},{yz,{{ly,lz},{-ly,lz},{-ly,-lz},{ly,-lz}}/2}]; Join[{Gray,EdgeForm[]},Table[{ Polygon[{pp[[ii,1]],pp[[ii,2]],pp[[ii+1,2]],pp[[ii+1,1]]}], Polygon[{pp[[ii,2]],pp[[ii,3]],pp[[ii+1,3]],pp[[ii+1,2]]}], Polygon[{pp[[ii,4]],pp[[ii,3]],pp[[ii+1,3]],pp[[ii+1,4]]}], Polygon[{pp[[ii,1]],pp[[ii,4]],pp[[ii+1,4]],pp[[ii+1,1]]}]},{ii,1,Length[pp]-1}],{Blue,PointSize[Medium],Point[fun[[n1,1]]+fun[[n1,2]]*scale], Point[fun[[n2,1]]+fun[[n2,2]]*scale]} ]]; GRAPHICS[MESH,{RIGID,pro_,Line[{n1_,n2_}]},fun_]:={Black,Line[{fun[[n1,1]],fun[[n2,1]]}],Blue,PointSize[Medium],Point[{fun[[n1,1]],fun[[n2,1]]}]}; GRAPHICS[{DISP,scale_},{RIGID,pro_,Line[{n1_,n2_}]},fun_]:=Module[{crd1,crd2}, crd1=fun[[n1,1]]+fun[[n1,2]]*scale; crd2=fun[[n2,1]]+fun[[n2,2]]*scale;{Black,Line[{crd1,crd2}],Blue,PointSize[Medium],Point[{crd1,crd2}]}]; GRAPHICS[{DISP,scale_},{RIGID,{d_,b_,iy_},Line[{n1_,n2_}]},fun_]:=Module[{crd1,crd2}, crd1=fun[[n1,1]]-iy*b/2; crd2=fun[[n2,1]]+iy*b/2;{Black,Cylinder[{crd1,crd2},d/2],Blue,PointSize[Medium],Point[{crd1,crd2}]}]; GRAPHICS[{DISP,scale_},{FORCE,{{\[Rho]_},{lx_,ly_,lz_,ix_,iy_},{FX_,FY_,FZ_,MX_,MY_,MZ_}},Point[{n1_}]},fun_]:=Module[{r,T}, pnt={{-lx,-ly,-lz},{lx,-ly,-lz},{lx,ly,-lz},{-lx,ly,-lz}, {-lx,-ly,lz},{lx,-ly,lz},{lx,ly,lz},{-lx,ly,lz}}/2; crd=Map[{ix,iy,ix\[Cross]iy} . #&,pnt]; r=Map[fun[[n1,1]]+#+scale*fun[[n1,2]]+scale*fun[[n1,3]]\[Cross](#-fun[[n1,1]])&,crd]; {Gray,Opacity[0.5], Polygon[{r[[4]],r[[3]],r[[2]],r[[1]]}],Polygon[{r[[5]],r[[6]],r[[7]],r[[8]]}],Polygon[{r[[1]],r[[2]],r[[6]],r[[5]]}],Polygon[{r[[3]],r[[4]],r[[8]],r[[7]]}],Polygon[{r[[1]],r[[5]],r[[8]],r[[4]]}],Polygon[{r[[2]],r[[3]],r[[7]],r[[6]]}], Blue,PointSize[Medium],Point[fun[[n1,1]]+scale*fun[[n1,2]]]}]; GRAPHICS[{DISP,scale_},{SHELL,{mat_,{t_},for_},ELEMENT[nodes_]},fun_]:= Module[{node,n\[Alpha],n\[Beta],\[Alpha],\[Beta],\[Gamma],\[Rho],r\[Alpha],r\[Beta],rn,r0,n,NN,en,u,v,w,\[Phi],\[Theta],\[Psi],pp,face1,face2,face3,face4,face5,face6}, {n\[Alpha],n\[Beta]}=Dimensions[nodes]; NN=LAGRANGE[{{n\[Alpha],\[Alpha]},{n\[Beta],\[Beta]}}]; node=Flatten[nodes]; r0=NN . fun[[node,1]]; {u,v,w}=NN . fun[[node,2]]; {\[Phi],\[Theta],\[Psi]}=NN . fun[[node,3]]; r\[Alpha]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r0\) /.{\[Alpha]->1/2,\[Beta]->1/2}; r\[Beta]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r0\) /.{\[Alpha]->1/2,\[Beta]->1/2}; rn=r\[Alpha]\[Cross]r\[Beta]; en=rn/Norm[rn]; \[Rho]=en*\[Gamma]; n=5; pp=Table[(r0+\[Rho]+{u,v,w}*scale+{\[Phi],\[Theta],\[Psi]}\[Cross]\[Rho]*scale) /. \[Gamma]->t/2,{\[Beta],0,1,1/n},{\[Alpha],0,1,1/n}]; face1=Flatten[Table[{pp[[i,j]],pp[[i+1,j]],pp[[i+1,j+1]],pp[[i,j+1]]},{j,1,n},{i,1,n}],1]; pp=Table[(r0+\[Rho]+{u,v,w}*scale+{\[Phi],\[Theta],\[Psi]}\[Cross]\[Rho]*scale) /. \[Gamma]->-t/2 ,{\[Beta],0,1,1/n},{\[Alpha],0,1,1/n}]; face2=Flatten[Table[Reverse[{pp[[i,j]],pp[[i+1,j]],pp[[i+1,j+1]],pp[[i,j+1]]}],{j,1,n},{i,1,n}],1]; pp=Table[(r0+\[Rho]+{u,v,w}*scale+{\[Phi],\[Theta],\[Psi]}\[Cross]\[Rho]*scale) /. \[Beta]->1,{\[Gamma],-t/2,t/2,t/n},{\[Alpha],0,1,1/n}]; n=1; face3=Flatten[Table[{pp[[i,j]],pp[[i+1,j]],pp[[i+1,j+1]],pp[[i,j+1]]},{j,1,n},{i,1,n}],1]; pp=Table[(r0+\[Rho]+{u,v,w}*scale+{\[Phi],\[Theta],\[Psi]}\[Cross]\[Rho]*scale) /. \[Beta]->0,{\[Gamma],-t/2,t/2,t/n},{\[Alpha],0,1,1/n}]; face4=Flatten[Table[Reverse[{pp[[i,j]],pp[[i+1,j]],pp[[i+1,j+1]],pp[[i,j+1]]}],{j,1,n},{i,1,n}],1]; pp=Table[(r0+\[Rho]+{u,v,w}*scale+{\[Phi],\[Theta],\[Psi]}\[Cross]\[Rho]*scale) /. \[Alpha]->1,{\[Gamma],-t/2,t/2,t/n},{\[Beta],0,1,1/n}]; face5=Flatten[Table[{pp[[i,j]],pp[[i+1,j]],pp[[i+1,j+1]],pp[[i,j+1]]},{j,1,n},{i,1,n}],1]; pp=Table[(r0+\[Rho]+{u,v,w}*scale+{\[Phi],\[Theta],\[Psi]}\[Cross]\[Rho]*scale) /. \[Alpha]->0,{\[Gamma],-t/2,t/2,t/n},{\[Beta],0,1,1/n}]; face6=Flatten[Table[Reverse[{pp[[i,j]],pp[[i+1,j]],pp[[i+1,j+1]],pp[[i,j+1]]}],{j,1,n},{i,1,n}],1]; {Gray,Opacity[0.5],EdgeForm[],Polygon[face1],Polygon[face2],Polygon[face3],Polygon[face4],Polygon[face5],Polygon[face6],Blue,PointSize[Tiny],Point[fun[[node,1]]+fun[[node,2]]*scale]} ]; GRAPHICS[{DISP,scale_},{BEAM,{mat_,{d_,iy_},for_},Line[{n1_,n2_}]},fun_]:= Module[{\[Rho],h,NL,NQ,ix,iz,T}, \[Rho]=fun[[n2,1]]-fun[[n1,1]]; h=Simplify[Sqrt[\[Rho] . \[Rho]],{h>0,L>0}]; NL={1-\[Xi],\[Xi]}; NQ={(1-\[Xi])^2 (1+2 \[Xi]),h (1-\[Xi])^2 \[Xi],(3-2 \[Xi]) \[Xi]^2,h \[Xi]^2 (\[Xi]-1)}; ix=\[Rho]/h; iz=ix\[Cross]iy; T={ix,iy,iz}; ux1=fun[[n1,2]] . ix; ux2=fun[[n2,2]] . ix; uy1=fun[[n1,2]] . iy; uy2=fun[[n2,2]] . iy; uz1=fun[[n1,2]] . iz; uz2=fun[[n2,2]] . iz; \[Theta]x1=fun[[n1,3]] . ix; \[Theta]x2=fun[[n2,3]] . ix; \[Theta]y1=fun[[n1,3]] . iy; \[Theta]y2=fun[[n2,3]] . iy; \[Theta]z1=fun[[n1,3]] . iz; \[Theta]z2=fun[[n2,3]] . iz; u=NL . {ux1,ux2}*scale; v=NQ . {uy1,-\[Theta]z1,uy2,-\[Theta]z2}*scale; w=NQ . {uz1,-\[Theta]y1,uz2,-\[Theta]y2}*scale; pp=Partition[Table[fun[[n1,1]]+ix*h*\[Xi]+{u,v,w} . T,{\[Xi],0,1,1/10}],2,1]; pp=Table[fun[[n1,1]]+ix*h*\[Xi]+{u,v,w} . T,{\[Xi],0,1,1/10}];{Gray,Tube[pp,d/2 ],Blue,PointSize[Medium],Point[fun[[n1,1]]+fun[[n1,2]]*scale], Point[fun[[n2,1]]+fun[[n2,2]]]*scale} ]; (*nonlinear beam graphics*) GRAPHICS[{DISP,scale_},{BEAM,{{EE_},{AA_,Iy_}},Line[{n1_,n2_}]},fun_]:= Module[{\[CapitalDelta]h,h0,NN,r0,u,w}, r0=fun[[n1,1]]*(1-\[Xi])+\[Xi]*fun[[n2,1]]; h0=Simplify[Sqrt[ \!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]r0\) . \!\( \*SubscriptBox[\(\[PartialD]\), \(\[Xi]\)]r0\)],L>0&&h>0]; NN={(1-\[Xi])^2 (1+2 \[Xi]),h0 (1-\[Xi])^2 \[Xi],(3-2 \[Xi]) \[Xi]^2,h0 \[Xi]^2 (-1+\[Xi])}; u=NN . Flatten[fun[[{n1,n2},2;;3,1]]]; w=NN . Flatten[fun[[{n1,n2},2;;3,3]]]; Line[Table[r0+{u,0,w},{\[Xi],0,1,0.05}]]]; (* GRAPHICS[{DISP,scale_},{FORCE,{FX_Real,FY_Real,FZ_Real},Point[{n1_}]},fun_]:=Module[{L,r0},L=Max[Map[#[[2]]-#[[1]]&,Table[MinMax[fun[[;;,1,i]]],{i,1,3}]]]; r0=fun[[n1,1]]+scale*fun[[n1,2]]; {Black,Thick,Arrowheads[Medium],Arrow[{r0,r0+L/10*{FX,FY,FZ}/Max[Norm[{FX,FY,FZ}],1/100]}]}];*) (* ::Input::Initialization:: *) SHOW3D[{ele_,fun_}]:=SHOW3D[{DISP,1},{ele,fun}]; SHOW3D[{DISP,scale_},{ele_,fun_}]:= Show[Graphics3D[Map[GRAPHICS[{DISP,scale},#,fun ]&,ele]],SphericalRegion->True,Axes->True,Lighting->"Neutral"]; SHOW3D[MESH,{ele_,fun_}]:=SHOW3D[{DISP,0},{ele,fun}]; (*MEC-E1050 and MEC-E8001 defs*) GRAPHICS[{DISP,scale_},{typ_,pro_,nod_},fun_]:={}; GRAPHICS[{DISP,scale_},{LINK,typ_,Point[{n1_}]},fun_]:={}; (* ::Input::Initialization:: *) (*constraint graphics*) GRAPHICS[{DISP,scale_},{RIGID,{},Point[{n1_,n2_}]},fun_]:={}; (* ::Input::Initialization:: *) (*force graphics*) GRAPHICS[{DISP,scale_},{FORCE,{FX_,FY_,FZ_},Point[{n1_}]},fun_]:=Module[{L,r0}, L=Max[Map[#[[2]]-#[[1]]&,Table[MinMax[fun[[;;,1,i]]],{i,1,3}]]]; r0=fun[[n1,1]]+scale*fun[[n1,2]]; {Black,Thick,Arrowheads[Medium],Arrow[{r0,r0+L/10*{FX,FY,FZ}/Max[Norm[{FX,FY,FZ}],1/100]}]}]; GRAPHICS[{DISP,scale_},{RIGID,{},Point[{n1_,n2_}]},fun_]:={}; GRAPHICS[{DISP,scale_},{FORCE,{{m_,J_},{ix_,iy_},{xyz_,mc_}},Point[{n1_}]},fun_]:=Module[{r,crd}, crd=Map[{ix,iy,ix\[Cross]iy} . #&,xyz]; r=Map[fun[[n1,1]]+#+scale*fun[[n1,2]]+scale*fun[[n1,3]]\[Cross](#-fun[[n1,1]])&,crd]; Join[FORCEFORM,Map[Polygon[r[[#]]]&,mc], POINTFORM,{Point[fun[[n1,1]]+scale*fun[[n1,2]]]}]]; (* ::Input::Initialization:: *) (*beam graphics*) GRAPHICS[{DISP,scale_},{BEAM,{mat_,{AA_,Iy_,Iz_}},Line[{n1_,n2_}]},fun_]:= GRAPHICS[{DISP,scale},{BEAM,{mat,{AA,Iy,Iz},{0,0,0}},Line[{n1,n2}]},fun]; GRAPHICS[{DISP,scale_},{BEAM,{mat_,{{AA_,Iy_,Iz_},iy_,{yz_,mc_}},for_},Line[{n1_,n2_}]},fun_]:=GRAPHICS[{DISP,scale},{BEAM,{mat,{{AA,Iy,Iz,iy},{yz,mc}},for},Line[{n1,n2}]},fun]; GRAPHICS[{DISP,scale_},{BEAM,{mat_,{AA_,Iy_,Iz_},for_},Line[{n1_,n2_}]},fun_]:= Module[{zy,pn,t,b}, zy={{-b,-t},{-b,t},{b,t},{b,-t}}/2 /.Thread[{t,b} ->{(12^2 Iy^3/Iz)^(1/8), (12^2 Iz^3/Iy)^(1/8)}]; pn={{1,2},{2,3},{3,4},{4,1}}; GRAPHICS[{DISP,scale},{BEAM,{mat,{{AA,Iy,Iz,{0,1,0}},{zy,pn}},for},Line[{n1,n2}]},fun]]; GRAPHICS[{DISP,scale_},{BEAM,{mat_,{AA_,Iy_,Iz_,iy_}},Line[{n1_,n2_}]},fun_]:= Module[{zy,pn,t,b}, zy={{-b,-t},{-b,t},{b,t},{b,-t}}/2 /.Thread[{t,b} ->{(12^2 Iy^3/Iz)^(1/8), (12^2 Iz^3/Iy)^(1/8)}]; pn={{1,2},{2,3},{3,4},{4,1}}; GRAPHICS[{DISP,scale},{BEAM,{mat,{{AA,Iy,Iz,iy},{zy,pn}},{0,0,0}},Line[{n1,n2}]},fun]]; GRAPHICS[{DISP,scale_},{BEAM,{mat_,{{AA_,Iy_,Iz_,iy_},{crd_,nod_}},for_},Line[{n1_,n2_}]},fun_]:= Module[{r1,\[CapitalDelta]r,r,h,x,y,z,NL,NQ,ix,iz,T,u,v,w,\[Phi],\[Theta],\[Psi],ux1,ux2,uz1,uz2,uy1,uy2,\[Theta]x1,\[Theta]x2,\[Theta]y1,\[Theta]y2,\[Theta]z1,\[Theta]z2,ux,uy,uz,pp,nn}, r1=fun[[n1,1]]; \[CapitalDelta]r=fun[[n2,1]]-fun[[n1,1]]; h=Sqrt[\[CapitalDelta]r . \[CapitalDelta]r]; ix=\[CapitalDelta]r/h; iz=ix\[Cross]iy; (*displacements and rotations*) NL={1-x/h,x/h}; NQ={(1-x/h)^2 (1+2 x/h),h (1-x/h)^2 x/h,(3-2 x/h) (x/h)^2,h (x/h)^2 (x/h-1)}; ux1=fun[[n1,2]] . ix; ux2=fun[[n2,2]] . ix; uy1=fun[[n1,2]] . iy; uy2=fun[[n2,2]] . iy; uz1=fun[[n1,2]] . iz; uz2=fun[[n2,2]] . iz; \[Theta]x1=fun[[n1,3]] . ix; \[Theta]x2=fun[[n2,3]] . ix; \[Theta]y1=fun[[n1,3]] . iy; \[Theta]y2=fun[[n2,3]] . iy; \[Theta]z1=fun[[n1,3]] . iz; \[Theta]z2=fun[[n2,3]] . iz; u=NL . {ux1,ux2}; v=NQ . {uy1,\[Theta]z1,uy2,\[Theta]z2}; w=NQ . {uz1,-\[Theta]y1,uz2,-\[Theta]y2}; \[Phi]=NL . {\[Theta]x1,\[Theta]x2}; \[Theta]=-\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]w\); \[Psi]=\!\( \*SubscriptBox[\(\[PartialD]\), \(x\)]v\); ux=(u+\[Theta] z-\[Psi] y)*scale; uy=(v-\[Phi] z)*scale; uz=(w+\[Phi] y)*scale; nn=10; (* ii slab and jj nod *) pp[ii_,jj_]:=(r1+(x+ux) ix+(y+uy )iy +(z+uz) iz)/.x->(ii*h/nn)/.Thread[{y,z}->crd[[jj]]] ; Join[Table[ Polygon[{pp[ii,nod[[ip,1]]],pp[ii+1,nod[[ip,1]]],pp[ii+1,nod[[ip,2]]],pp[ii,nod[[ip,2]]]}], {ii,0,nn-1},{ip,1,Length[nod]}], {Point[fun[[n1,1]]+fun[[n1,2]]*scale], Point[fun[[n2,1]]+fun[[n2,2]]*scale]}] ]; (* ::Input::Initialization:: *) (*plate graphics*) GRAPHICS[{DISP,scale_},{PLANE,{mat_,{hn_}},Polygon[{n1_,n2_,n3_}]},fun_]:= GRAPHICS[{DISP,scale},{PLATE,{mat,{hn},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; GRAPHICS[{DISP,scale_},{PLANE,{mat_,{hn_},for_},Polygon[{n1_,n2_,n3_}]},fun_]:= GRAPHICS[{DISP,scale},{PLATE,{mat,{hn},for},Polygon[{n1,n2,n3}]},fun]; GRAPHICS[{DISP,scale_},{PLATE,{mat_,{hn_}},Polygon[{n1_,n2_,n3_}]},fun_]:= GRAPHICS[{DISP,scale},{PLATE,{mat,{hn},{0,0,0}},Polygon[{n1,n2,n3}]},fun]; GRAPHICS[{DISP,scale_},{PLATE,{mat_,{hn_},for_},Polygon[{n1_,n2_,n3_}]},fun_]:= Module[{nl,NN,r0,r0\[Alpha],r0\[Beta],h\[Alpha],h\[Beta],e\[Alpha],e\[Beta],en,\[Alpha],\[Beta],n,\[Rho],u,v,w,\[Phi],\[Theta],\[Psi],pp,pn}, nl={n1,n2,n3}; NN={1-\[Alpha]-\[Beta],\[Alpha],\[Beta]}; r0=NN . fun[[nl,1]]; r0\[Alpha]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r0\); r0\[Beta]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r0\); en=(r0\[Alpha]\[Cross]r0\[Beta])/Norm[r0\[Alpha]\[Cross]r0\[Beta]]; {u,v,w}=NN . fun[[nl,2]]; {\[Phi],\[Theta],\[Psi]}=NN . fun[[nl,3]]; \[Rho]=en*n; pp=Map[(r0+\[Rho]+{u,v,w}*scale+{\[Phi],\[Theta],\[Psi]}\[Cross]\[Rho]*scale) /.Thread[{\[Alpha],\[Beta],n}->#]&,{{0,0,-hn/2},{1,0,-hn/2},{0,1,-hn/2}, {0,0,hn/2},{1,0,hn/2},{0,1,hn/2}}]; pn=Map[(r0+{u,v,w}*scale)/.Thread[{\[Alpha],\[Beta],n}->#]&,{{0,0,0},{1,0,0},{0,1,0}}]; {Gray,Opacity[0.5],EdgeForm[],Prism[pp],Blue,PointSize[Small],Point[pn]} ]; (*four node*) GRAPHICS[{DISP,scale_},{PLANE,{mat_,{hn_}},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:= GRAPHICS[{DISP,scale},{PLATE,{mat,{hn},{0,0,0}},Polygon[{n1,n2,n3,n4}]},fun]; GRAPHICS[{DISP,scale_},{PLANE,{mat_,{hn_},for_},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:= GRAPHICS[{DISP,scale},{PLATE,{mat,{hn},for},Polygon[{n1,n2,n3,n4}]},fun]; GRAPHICS[{DISP,scale_},{SHELL,{mat_,{hn_}},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:= GRAPHICS[{DISP,scale},{PLATE,{mat,{hn},{0,0,0}},Polygon[{n1,n2,n3,n4}]},fun]; GRAPHICS[{DISP,scale_},{SHELL,{mat_,{hn_},for_},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:= GRAPHICS[{DISP,scale},{PLATE,{mat,{hn},for},Polygon[{n1,n2,n3,n4}]},fun]; GRAPHICS[{DISP,scale_},{PLATE,{mat_,{hn_}},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:= GRAPHICS[{DISP,scale},{PLATE,{mat,{hn},{0,0,0}},Polygon[{n1,n2,n3,n4}]},fun]; GRAPHICS[{DISP,scale_},{PLATE,{mat_,{hn_},for_},Polygon[{n1_,n2_,n3_,n4_}]},fun_]:= Module[{nl,NN,r0,r0\[Alpha],r0\[Beta],h\[Alpha],h\[Beta],e\[Alpha],e\[Beta],en,\[Alpha],\[Beta],n,\[Rho],u,v,w,\[Phi],\[Theta],\[Psi],pp,pn}, nl={n1,n2,n3,n4}; NN={(1-\[Alpha])(1-\[Beta]),\[Alpha](1-\[Beta]),\[Alpha] \[Beta],(1-\[Alpha])\[Beta]}; r0=NN . fun[[nl,1]]; r0\[Alpha]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Alpha]\)]r0\); r0\[Beta]=\!\( \*SubscriptBox[\(\[PartialD]\), \(\[Beta]\)]r0\); en=(r0\[Alpha]\[Cross]r0\[Beta])/Norm[r0\[Alpha]\[Cross]r0\[Beta]]; {u,v,w}=NN . fun[[nl,2]]; {\[Phi],\[Theta],\[Psi]}=NN . fun[[nl,3]]; \[Rho]=en*n; pp=Map[(r0+\[Rho]+{u,v,w}*scale+{\[Phi],\[Theta],\[Psi]}\[Cross]\[Rho]*scale) /.Thread[{\[Alpha],\[Beta],n}->#]&,{{0,0,-hn/2},{1,0,-hn/2},{1,1,-hn/2},{0,1,-hn/2},{0,0,hn/2},{1,0,hn/2},{1,1,hn/2},{0,1,hn/2}}]; pn=Map[(r0+{u,v,w}*scale)/.Thread[{\[Alpha],\[Beta],n}->#]&,{{0,0,0},{1,0,0},{1,1,0},{0,1,0}}]; {Gray,Opacity[0.5],EdgeForm[],Hexahedron[pp],Blue,PointSize[Small],Point[pn]} ]; (* ::Input::Initialization:: *) (*solid element graphics*) GRAPHICS[{DISP,scale_},{SOLID,{mat_,for_},Tetrahedron[{n1_,n2_,n3_,n4_}]},fun_]:= Module[{pn}, pn=fun[[{n1,n2,n3,n4},1]]+fun[[{n1,n2,n3,n4},2]]*scale; {Gray,Opacity[0.5],EdgeForm[],Tetrahedron[pn],Blue,PointSize[Medium],Point[pn]} ]; GRAPHICS[{DISP,scale_},{SOLID,{mat_,for_},Hexahedron[{n1_,n2_,n3_,n4_,n5_,n6_,n7_,n8_}]},fun_]:= Module[{pn,nn}, nn={n1,n2,n3,n4,n5,n6,n7,n8}; pn=fun[[nn,1]]+fun[[nn,2]]*scale; {Gray,Opacity[0.5],EdgeForm[],Hexahedron[pn],Blue,PointSize[Medium],Point[pn]} ];