0% found this document useful (0 votes)
29 views

Elemento Sólido Retangular de 8 Nós

The document describes the finite element method for determining displacements in a rectangular solid element with 8 nodes. It defines the displacement function u in terms of coefficients C0-C7 and boundary conditions in terms of the coefficients. It then solves the system of equations to determine the coefficients and expresses the displacement function u in terms of the nodal displacements u1-u8. It also presents the interpolation functions N1-N8 and the interpolation matrix N[x].

Uploaded by

MauroAle01
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Elemento Sólido Retangular de 8 Nós

The document describes the finite element method for determining displacements in a rectangular solid element with 8 nodes. It defines the displacement function u in terms of coefficients C0-C7 and boundary conditions in terms of the coefficients. It then solves the system of equations to determine the coefficients and expresses the displacement function u in terms of the nodal displacements u1-u8. It also presents the interpolation functions N1-N8 and the interpolation matrix N[x].

Uploaded by

MauroAle01
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Escola de Engenharia Civil

Programa de Ps-Graduao em Geotecnia, Mecnica das Estruturas e Construo Civil


Mtodo dos Elementos Finitos - Prof. Sylvia Mesquitas
Mauro Sousa
> restart; with(LinearAlgebra): with(student):
>
Elemento slido retangular de 8 ns
Funo de Deslocamentos
> u[x,y,z]:=C[0]+C[1]*x+C[2]*y+C[3]*z+C[4]*x*y+C[5]*y*z+C[6]*z*
x+C[7]*x*y*z;
:= u
, , x y z
+ + + + + + + C
0
C
1
x C
2
y C
3
z C
4
x y C
5
y z C
6
z x C
7
x y z
Condies de Contorno para a funo de deslocamentos "u"
> Ccond1 := subs(x = -a,y=-b,z=c, u[x,y,z])-u[1];
:= Ccond1 + + + C
0
C
1
a C
2
b C
3
c C
4
a b C
5
b c C
6
c a C
7
a b c u
1
> Ccond2 := subs(x = -a,y=-b,z=-c, u[x,y,z])-u[2];
:= Ccond2 + + + C
0
C
1
a C
2
b C
3
c C
4
a b C
5
b c C
6
c a C
7
a b c u
2
> Ccond3 := subs(x = -a,y=b,z=-c, u[x,y,z])-u[3];
:= Ccond3 + + + C
0
C
1
a C
2
b C
3
c C
4
a b C
5
b c C
6
c a C
7
a b c u
3
> Ccond4 := subs(x = -a,y=b,z=c, u[x,y,z])-u[4];
:= Ccond4 + + + C
0
C
1
a C
2
b C
3
c C
4
a b C
5
b c C
6
c a C
7
a b c u
4
> Ccond5 := subs(x = a,y=-b,z=c, u[x,y,z])-u[5];
:= Ccond5 + + + C
0
C
1
a C
2
b C
3
c C
4
a b C
5
b c C
6
c a C
7
a b c u
5
> Ccond6 := subs(x = a,y=-b,z=-c, u[x,y,z])-u[6];
:= Ccond6 + + + C
0
C
1
a C
2
b C
3
c C
4
a b C
5
b c C
6
c a C
7
a b c u
6
> Ccond7 := subs(x = a,y=b,z=-c, u[x,y,z])-u[7];
:= Ccond7 + + + C
0
C
1
a C
2
b C
3
c C
4
a b C
5
b c C
6
c a C
7
a b c u
7
> Ccond8 := subs(x = a,y=b,z=c, u[x,y,z])-u[8];
:= Ccond8 + + + + + + + C
0
C
1
a C
2
b C
3
c C
4
a b C
5
b c C
6
c a C
7
a b c u
8
Sistema de Equaes Para u
> RespC :=
solve({Ccond1,Ccond2,Ccond3,Ccond4,Ccond5,Ccond6,Ccond7,Ccond
8},{C[0],C[1],C[2],C[3],C[4],C[5],C[6],C[7]});
>
RespC = C
0
+ + + + + + +
1
8
u
1
1
8
u
2
1
8
u
3
1
8
u
4
1
8
u
5
1
8
u
6
1
8
u
7
1
8
u
8
, { :=
= C
1

1
8
+ + + u
1
u
2
u
3
u
4
u
5
u
6
u
7
u
8
a
= C
2

1
8
+ + + u
1
u
2
u
3
u
4
u
5
u
6
u
7
u
8
b
, ,
= C
3
1
8
+ + + u
1
u
2
u
3
u
4
u
5
u
6
u
7
u
8
c
= C
4
1
8
+ + + u
1
u
2
u
3
u
4
u
5
u
6
u
7
u
8
a b
, ,
= C
5

1
8
+ + + + u
8
u
1
u
6
u
2
u
5
u
7
u
3
u
4
b c
,
= C
6

1
8
+ + + u
1
u
6
u
2
u
5
u
7
u
3
u
4
u
8
c a
= C
7
1
8
+ + + u
1
u
6
u
2
u
5
u
7
u
3
u
4
u
8
a b c
, }
> assign(RespC);
> collect(u[x,y,z],{u[1],u[2],u[3],u[4],u[5],u[6],u[7],u[8]});
|
\

|
|
+ + + +
x
8 a
y
8 b
z
8 c
x y
8 a b
y z
8 b c
z x
8 c a
1
8
x y z
8 a b c
u
1
|
\

|
|
+ + + +
z
8 c
y
8 b
1
8
y z
8 b c
x y
8 a b
x
8 a
x y z
8 a b c
z x
8 c a
u
2
+
|
\

|
|
+ + + +
y z
8 b c
x y z
8 a b c
z
8 c
y
8 b
1
8
x y
8 a b
x
8 a
z x
8 c a
u
3
+
|
\

|
|
+ + +
1
8
y
8 b
x
8 a
x y z
8 a b c
z
8 c
y z
8 b c
z x
8 c a
x y
8 a b
u
4
+
|
\

|
|
+ + +
x
8 a
z
8 c
z x
8 c a
y
8 b
x y
8 a b
y z
8 b c
1
8
x y z
8 a b c
u
5
+
|
\

|
|
+ + +
x
8 a
1
8
y z
8 b c
z x
8 c a
x y
8 a b
y
8 b
z
8 c
x y z
8 a b c
u
6
+
|
\

|
|
+ + + +
x y z
8 a b c
z
8 c
x y
8 a b
z x
8 c a
x
8 a
1
8
y
8 b
y z
8 b c
u
7
+
|
\

|
|
+ + + + + + +
1
8
z
8 c
y z
8 b c
x y z
8 a b c
z x
8 c a
x y
8 a b
y
8 b
x
8 a
u
8
+
Funes de Interpolao
> N[1] := factor(coeff(u[x,y,z], u[1]));
:= N
1
( ) + z c ( ) + y b ( ) + x a
8 a b c
> N[2] := factor(coeff(u[x,y,z], u[2]));
:= N
2
( ) + z c ( ) + y b ( ) + x a
8 a b c
> N[3] := factor(coeff(u[x,y,z], u[3]));
:= N
3
( ) + z c ( ) + y b ( ) + x a
8 a b c
> N[4] := factor(coeff(u[x,y,z], u[4]));
:= N
4
( ) + z c ( ) + y b ( ) + x a
8 a b c
> N[5] := factor(coeff(u[x,y,z], u[5]));
:= N
5
( ) + z c ( ) + y b ( ) + x a
8 a b c
> N[6] := factor(coeff(u[x,y,z], u[6]));
:= N
6
( ) + z c ( ) + y b ( ) + x a
8 a b c
> N[7] := factor(coeff(u[x,y,z], u[7]));
:= N
7
( ) + z c ( ) + y b ( ) + x a
8 a b c
> N[8] := factor(coeff(u[x,y,z], u[8]));
:= N
8
( ) + z c ( ) + y b ( ) + x a
8 a b c
>
Matriz de Interpolaao
> N[x]:=matrix(3,24,0):
> for i from 1 to 8 do
> N[x][1,3*i-2]:= N[i]:
> N[x][2,3*i-1]:= N[i]:
> N[x][3,3*i]:= N[i]:
> end:
> print(N[x]);
>
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0

, , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0 , , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0 , , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0 , , , , ,
(

(
(
0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0

, , , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0 , , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0 , , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 , , , ,
(

(
(
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0

, , , , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0 , , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0 , , , , , ,
( ) + z c ( ) + y b ( ) + x a
8 a b c
0 0
( ) + z c ( ) + y b ( ) + x a
8 a b c
, , ,
(

(
(
> B:=matrix(6,24,0):
> for i from 1 to 24 do
> B[1,i]:= diff(N[x][1,i],x):
> B[2,i]:= diff(N[x][2,i],y):
> B[3,i]:= diff(N[x][3,i],z):
> B[4,i]:= diff(N[x][1,i],y)+diff(N[x][2,i],x):
> B[5,i]:= diff(N[x][2,i],z)+diff(N[x][3,i],y):
> B[6,i]:= diff(N[x][1,i],z)+diff(N[x][3,i],x):
> end:
> print(B);

( ) + z c ( ) + y b
8 a b c
0 0
( ) + z c ( ) + y b
8 a b c
0 0
( ) + z c ( ) + y b
8 a b c
0 0

, , , , , , , , ,

( ) + z c ( ) + y b
8 a b c
0 0
( ) + z c ( ) + y b
8 a b c
0 0
( ) + z c ( ) + y b
8 a b c
0 0 , , , , , , , , ,
( ) + z c ( ) + y b
8 a b c
0 0
( ) + z c ( ) + y b
8 a b c
0 0 , , , , ,
(

(
(
0
( ) + z c ( ) + x a
8 a b c
0 0
( ) + z c ( ) + x a
8 a b c
0 0
( ) + z c ( ) + x a
8 a b c
0 0

, , , , , , , , , ,
( ) + z c ( ) + x a
8 a b c
0 0
( ) + z c ( ) + x a
8 a b c
0 0
( ) + z c ( ) + x a
8 a b c
0 0 , , , , , , , , ,
( ) + z c ( ) + x a
8 a b c
0 0
( ) + z c ( ) + x a
8 a b c
0 , , , ,
(

(
(
0 0
( ) + y b ( ) + x a
8 a b c
0 0
( ) + y b ( ) + x a
8 a b c
0 0
( ) + y b ( ) + x a
8 a b c
0 0

, , , , , , , , , , ,
( ) + y b ( ) + x a
8 a b c
0 0
( ) + y b ( ) + x a
8 a b c
0 0
( ) + y b ( ) + x a
8 a b c
0 0 , , , , , , , , ,

( ) + y b ( ) + x a
8 a b c
0 0
( ) + y b ( ) + x a
8 a b c
, , ,
(

(
(

( ) + z c ( ) + x a
8 a b c

( ) + z c ( ) + y b
8 a b c
0
( ) + z c ( ) + x a
8 a b c

( ) + z c ( ) + y b
8 a b c

, , , , ,
0
( ) + z c ( ) + x a
8 a b c

( ) + z c ( ) + y b
8 a b c
0
( ) + z c ( ) + x a
8 a b c

( ) + z c ( ) + y b
8 a b c
0 , , , , , , ,

( ) + z c ( ) + x a
8 a b c
( ) + z c ( ) + y b
8 a b c
0
( ) + z c ( ) + x a
8 a b c
( ) + z c ( ) + y b
8 a b c
0 , , , , , ,
( ) + z c ( ) + x a
8 a b c
( ) + z c ( ) + y b
8 a b c
0
( ) + z c ( ) + x a
8 a b c
( ) + z c ( ) + y b
8 a b c
0 , , , , ,
(

(
(
0
( ) + y b ( ) + x a
8 a b c

( ) + z c ( ) + x a
8 a b c
0
( ) + y b ( ) + x a
8 a b c

, , , , ,

( ) + z c ( ) + x a
8 a b c
0
( ) + y b ( ) + x a
8 a b c
( ) + z c ( ) + x a
8 a b c
0
( ) + y b ( ) + x a
8 a b c
, , , , , ,
( ) + z c ( ) + x a
8 a b c
0
( ) + y b ( ) + x a
8 a b c

( ) + z c ( ) + x a
8 a b c
0
( ) + y b ( ) + x a
8 a b c
, , , , , ,

( ) + z c ( ) + x a
8 a b c
0
( ) + y b ( ) + x a
8 a b c
( ) + z c ( ) + x a
8 a b c
0
( ) + y b ( ) + x a
8 a b c
, , , , , ,
( ) + z c ( ) + x a
8 a b c
(

(
(
( ) + y b ( ) + x a
8 a b c
0
( ) + z c ( ) + y b
8 a b c

( ) + y b ( ) + x a
8 a b c
0

, , , , ,

( ) + z c ( ) + y b
8 a b c

( ) + y b ( ) + x a
8 a b c
0
( ) + z c ( ) + y b
8 a b c
( ) + y b ( ) + x a
8 a b c
0 , , , , , ,

( ) + z c ( ) + y b
8 a b c
( ) + y b ( ) + x a
8 a b c
0
( ) + z c ( ) + y b
8 a b c

( ) + y b ( ) + x a
8 a b c
0 , , , , , ,
( ) + z c ( ) + y b
8 a b c

( ) + y b ( ) + x a
8 a b c
0
( ) + z c ( ) + y b
8 a b c
( ) + y b ( ) + x a
8 a b c
0 , , , , , ,
( ) + z c ( ) + y b
8 a b c
(

(
(
> ET:=(E/((1+nu)*(1-2*nu)))*matrix(6,6,[1-nu,nu,nu,0,0,0,nu,1-n
u,nu,0,0,0,nu,nu,1-nu,0,0,0,0,0,0,(1-2*nu)/2,0,0,0,0,0,0,(1-2
*nu)/2,0,0,0,0,0,0,(1-2*nu)/2]);
:= ET
E

(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
1 0 0 0
1 0 0 0
1 0 0 0
0 0 0
1
2
0 0
0 0 0 0
1
2
0
0 0 0 0 0
1
2

( ) + 1 ( ) 1 2
> m:=simplify(evalm(transpose(B)&*(ET)&*(B))):
>
>
>
> K:=Matrix(24):
> for i from 1 to 24 do
> for j from 1 to 24 do
> K[i,j]:=int(int(int(m[i,j],x=-a..a),y=-b..b),z=-c..c):
> K[i,j]:=K[i,j]/(E/((1+nu)*(1-2*nu))):
> end:
> end:
> K:=evalm(simplify(K)):
>
> Letras:=[aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,a
R,aS,aT,aU,aV,aW,aX,aY,aZ,bA,bB,bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL
,bM,bN,bO,bP,bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ];
Letras aA aB aC aD aE aF aG aH aI aJ aK aL aM aN aO aP aQ aR aS aT , , , , , , , , , , , , , , , , , , , , [ :=
aU aV aW aX aY aZ bA bB bC bD bE bF bG bH bI bJ bK bL bM bN bO bP , , , , , , , , , , , , , , , , , , , , , ,
bQ bR bS bT bU bV bW bX bY bZ , , , , , , , , , ]
> cont:=1:Klin:= evalm(K):
> n:=24:
> Kalf:=Matrix(n):
> for z1 from 1 to n do
> for z2 from 1 to n do
> for t from 1 to n do
> for s from 1 to n do
> x:=Klin[z1,z2]:
> if (K[t,s]=x) then
> K[t,s]:=Letras[cont];
> status:=1:
> elif (K[t,s]=-x) then
> K[t,s]:=-Letras[cont]:
> status:=1:
> end if;
> end do:
> end do:
> if (status=1)then
> cont:=cont+1:
> status:=0:
> end if;
> end do:
> end do:
> print(K);
aA aB aC aD aE aF aG aH aI aJ aK aL aM aK aF aN aH aC [ , , , , , , , , , , , , , , , , , ,
aO aE aL aP aB aI , , , , , ]
aB aQ aR aE aS aT aH aU aR aK aV aT aK aW aX aH aY aZ [ , , , , , , , , , , , , , , , , , ,
aE bA aX aB bB aZ , , , , , ]
aC aR bC aF aT bD aI aR bE aL aT bF aF aX bG aC aZ [ , , , , , , , , , , , , , , , , ,
bH aL aX bI aI aZ bJ , , , , , , ]
aD aE aF aA aB aC aJ aK aL aG aH aI aN aH aC aM aK [ , , , , , , , , , , , , , , , , ,
aF aP aB aI aO aE aL , , , , , , ]
aE aS aT aB aQ aR aK aV aT aH aU aR aH aY aZ aK aW [ , , , , , , , , , , , , , , , , ,
aX aB bB aZ aE bA aX , , , , , , ]
aF aT bD aC aR bC aL aT bF aI aR bE aC aZ bH aF aX [ , , , , , , , , , , , , , , , , ,
bG aI aZ bJ aL aX bI , , , , , , ]
aG aH aI aJ aK aL aA aB aC aD aE aF aO aE aL aP aB [ , , , , , , , , , , , , , , , , ,
aI aM aK aF aN aH aC , , , , , , ]
aH aU aR aK aV aT aB aQ aR aE aS aT aE bA aX aB bB [ , , , , , , , , , , , , , , , , ,
aZ aK aW aX aH aY aZ , , , , , , ]
aI aR bE aL aT bF aC aR bC aF aT bD aL aX bI aI aZ bJ [ , , , , , , , , , , , , , , , , , ,
aF aX bG aC aZ bH , , , , , ]
aJ aK aL aG aH aI aD aE aF aA aB aC aP aB aI aO aE aL [ , , , , , , , , , , , , , , , , ,
aN aH aC aM aK aF , , , , , , ]
aK aV aT aH aU aR aE aS aT aB aQ aR aB bB aZ aE bA aX [ , , , , , , , , , , , , , , , , , ,
aH aY aZ aK aW aX , , , , , ]
aL aT bF aI aR bE aF aT bD aC aR bC aI aZ bJ aL aX bI [ , , , , , , , , , , , , , , , , , ,
aC aZ bH aF aX bG , , , , , ]
aM aK aF aN aH aC aO aE aL aP aB aI aA aB aC aD aE aF [ , , , , , , , , , , , , , , , , , ,
aG aH aI aJ aK aL , , , , , ]
aK aW aX aH aY aZ aE bA aX aB bB aZ aB aQ aR aE aS [ , , , , , , , , , , , , , , , , ,
aT aH aU aR aK aV aT , , , , , , ]
aF aX bG aC aZ bH aL aX bI aI aZ bJ aC aR bC aF aT bD [ , , , , , , , , , , , , , , , , ,
aI aR bE aL aT bF , , , , , , ]
aN aH aC aM aK aF aP aB aI aO aE aL aD aE aF aA aB [ , , , , , , , , , , , , , , , , ,
aC aJ aK aL aG aH aI , , , , , , ]
aH aY aZ aK aW aX aB bB aZ aE bA aX aE aS aT aB aQ [ , , , , , , , , , , , , , , , , ,
aR aK aV aT aH aU aR , , , , , , ]
aC aZ bH aF aX bG aI aZ bJ aL aX bI aF aT bD aC aR bC [ , , , , , , , , , , , , , , , , ,
aL aT bF aI aR bE , , , , , , ]
aO aE aL aP aB aI aM aK aF aN aH aC aG aH aI aJ aK [ , , , , , , , , , , , , , , , , ,
aL aA aB aC aD aE aF , , , , , , ]
aE bA aX aB bB aZ aK aW aX aH aY aZ aH aU aR aK aV [ , , , , , , , , , , , , , , , , ,
aT aB aQ aR aE aS aT , , , , , , ]
aL aX bI aI aZ bJ aF aX bG aC aZ bH aI aR bE aL aT bF [ , , , , , , , , , , , , , , , , , ,
aC aR bC aF aT bD , , , , , ]
aP aB aI aO aE aL aN aH aC aM aK aF aJ aK aL aG aH [ , , , , , , , , , , , , , , , , ,
aI aD aE aF aA aB aC , , , , , , ]
aB bB aZ aE bA aX aH aY aZ aK aW aX aK aV aT aH aU [ , , , , , , , , , , , , , , , , ,
aR aE aS aT aB aQ aR , , , , , , ]
aI aZ bJ aL aX bI aC aZ bH aF aX bG aL aT bF aI aR bE [ , , , , , , , , , , , , , , , , , ,
aF aT bD aC aR bC , , , , , ]
> print(cont);
37
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

You might also like