LECCION 7 - EJERCICIO 3 (18.3) v.2005

INICIO

Off[General::"spell1"]
Off[General::"spell"]

SetDirectory[NotebookDirectory[]]

DEFINICION  ELEMENTO CUADRILATERO REGULAR DE 9 NODOS

DEFINICION GRAFICA

CuaR9=;

CuaR9r=Show[CuaR9, ImageSize->250]

COORDENADAS NATURALES NODOS - ###

Cn={{-1,-1},{1,-1},{1,1},{-1,1},{0,-1},{1,0},{X,X},{-1,0},{X,X}};

NNodos=Dimensions[Cn][[1]]

3. FUNCIONES DE FORMA - METODO PRODUCTO DE CURVAS

CURVAS A CONSIDERAR - ###

Cu=Table[0,{i,6}];

LADOS

Cu[[1]]=(η+1);Cu[[2]]=(ξ-1);Cu[[3]]=X;Cu[[4]]=(ξ+1);

MEDIANAS

Cu[[5]]=X;Cu[[6]]=ξ;

DEFINICION PRODUCTOS DE CURVAS EN CADA NODO

Nc=Table[0,{i,NNodos}];

Tipo 1 - ESQUINA

Nc[[4]]=Cu[[1]]*Cu[[2]]*Cu[[5]]*Cu[[6]]

Nc[[3]]=X*Cu[[4]]*Cu[[5]]*Cu[[6]]

Nc[[2]]=Cu[[3]]*Cu[[4]]*X*Cu[[6]]

Nc[[1]]=Cu[[2]]*Cu[[3]]*Cu[[5]]*Cu[[6]]

Tipo 2 - LADOS

Nc[[5]]=Cu[[2]]*Cu[[3]]*Cu[[4]]*Cu[[5]]

Nc[[6]]=Cu[[1]]*Cu[[3]]*Cu[[4]]*X

Nc[[7]]=Cu[[1]]*X*Cu[[4]]*Cu[[5]]

Nc[[8]]=Cu[[1]]*Cu[[2]]*Cu[[3]]*Cu[[6]]

Tipo 3 - INTERIOR

Nc[[9]]=Cu[[1]]*Cu[[2]]*X*Cu[[4]]

OBTENCION FUNCIONES DE FORMA

Clear[Nf]

Nfp=Table[0,{i,NNodos}];

Nf=Table[0,{i,NNodos}];

Do[
Nfp[[i]]=a*Nc[[i]];
eq=1==Nfp[[i]]/.{ξ->Cn[[i,1]],η->Cn[[i,2]]};
as=a/.Solve[eq,a][[1]];Print["Nodo ",i];
Nf[[i]]=Simplify[Nfp[[i]]/.{a->as}],
{i,NNodos}
];

MatrixForm[Nf]

COMPROBACION SUMA UNIDAD

Suma=(∑_(i=1)^NNodos)Nf[[i]]

Simplify[%]

OK.

REPRESENTACION GRAFICA

Función Representación Gráfica Funciones de Forma

PlotQuadrilateralShapeFunction[xyquad_,f_,Nsub_,aspect_]:=Module[{Ne,Nev,line3D={},poly3D={},xyf1,xyf2,xyf3,i,j,n,ixi,ieta,xi,eta,x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,xc,yc},{{x1,y1,z1},{x2,y2,z2},{x3,y3,z3},{x4,y4,z4}}=Take[xyquad,4];xc={x1,x2,x3,x4};yc={y1,y2,y3,y4};Ne[xi_,eta_]:=N[{(1-xi)*(1-eta),(1+xi)*(1-eta),(1+xi)*(1+eta),(1-xi)*(1+eta)}/4];n=Nsub;Do[Do[ixi=(2*i-n-1)/n;ieta=(2*j-n-1)/n;{xi,eta}=N[{ixi-1/n,ieta-1/n}];Nev=Ne[xi,eta];xyf1={xc.Nev,yc.Nev,f[xi,eta]};{xi,eta}=N[{ixi+1/n,ieta-1/n}];Nev=Ne[xi,eta];xyf2={xc.Nev,yc.Nev,f[xi,eta]};{xi,eta}=N[{ixi+1/n,ieta+1/n}];Nev=Ne[xi,eta];xyf3={xc.Nev,yc.Nev,f[xi,eta]};{xi,eta}=N[{ixi-1/n,ieta+1/n}];Nev=Ne[xi,eta];xyf4={xc.Nev,yc.Nev,f[xi,eta]};AppendTo[poly3D,Polygon[{xyf1,xyf2,xyf3,xyf4}]];AppendTo[line3D,Line[{xyf1,xyf2,xyf3,xyf4,xyf1}]],{i,1,Nsub}],{j,1,Nsub}];Show[Graphics3D[RGBColor[1,1,0]],Graphics3D[poly3D],Graphics3D[Thickness[.002]],Graphics3D[line3D],Graphics3D[RGBColor[0,0,0]],Graphics3D[Thickness[.005]],Graphics3D[Line[xyquad]],PlotRange->All,BoxRatios->{1,1,aspect},Boxed->False]];

Representación Gráfica Funciones Forma Elemento.

Ng=Table[0,{i,NNodos}];

xyc1={0,0,0};xyc2={3,0,0};xyc3={3,3,0};xyc4={0,3,0};xyquad=N[{xyc1,xyc2,xyc3,xyc4,xyc1}];

Control de Cuadricula

Nsub=10;

Do[
fi[ξ_,η_]=Nf[[i]];
Ng[[i]]=PlotQuadrilateralShapeFunction[xyquad,fi,Nsub,1/2],
{i,NNodos}
];

4. RESULTADOS INTERACTIVOS - #

Manipulate[{CuaR9r,Ng[[n]],Nf[[n]]},{n,1,Dimensions[Nf][[1]],1},{n,Range[Dimensions[Nf][[1]]]},FrameLabel->{"FUNCION DE FORMA EN NODO n - CUADRILATERO REGULAR 9 NODOS"}, SaveDefinitions->True]