Escolar Documentos
Profissional Documentos
Cultura Documentos
Notas de Aulas
Co-Autor e Coordenador:
Prof. João Batista de Paiva
Co-Autores
Rafael Marques Lins
Maria do Socorro Martins Sampaio
Hugo Luiz Oliveira
Camila Alexandrino Moura
David de Paulo Pereira
Ynaê Almeida Ferreira
Este texto sobre o método dos elementos finitos aplicados à análise estrutural
começou a partir de notas de aulas elaboradas para a disciplina Método dos Elementos
Finitos ministrada na pós-graduação do Departamento de Engenharia de Estruturas da
Escola de Engenharia de São Carlos. Este texto inicial foi então recebendo a contribuição
de alunos da disciplina que o completaram e incluíram listagens de programas por eles
desenvolvidos com trabalho da disciplina. As contribuições foram as seguintes:
Enga Camila Alexandrino Moura; Eng. David de Paulo Pereira e Enga. Ynaê Almeida
Ferreira
Este grupo ampliou o programa de pórticos planos deduzindo as matrizes de rigidez de
barras com rótulas, apoios inclinados e também re-organizaram a entrada de dados que
agora contempla três tipos de elementos: com rótula à esquerda; com rótula à direita e
com rótula nos dois nós fazendo com que a matriz de rigidez do pórtico se reduza à
matriz de rigidez de uma barra de treliça permitindo assim com uma entrada de dados
bem simples calcular treliças e pórticos treliçados (Anexo B).
Quero aqui expressar meu agradecimento a eles pois sem suas valiosas contribuições este
texto ainda estria muito longe de estar disponível para os demais alunos.
2
SUMÁRIO
3
1. O MÉTODO DA ENERGIA
1.1 Introdução
A energia potencial total de um sistema elástico é
composta de duas parcelas: energia potencial dos esforços
internos, também chamada de energia de deformação, e a energia
potencial das cargas externas. Neste capítulo serão deduzidas
as expressões das energias, acima mencionada, presentes nos
problemas usuais de vigas elásticas. Além da energia de
deformação da viga e da energia potencial das cargas externas,
serão deduzidas as expressões da energia de vínculos elásticos
discretos (molas) e contínuos (base elástica). Será também
determinada a expressão de energia potencial de uma carga
axial, durante a flexão da viga.
1
2 v
U= ( x x + y y + z z + xy xy + xz xz + yz yz )dv ... (1.1)
4
2
1 M
2
cQ M T2 N 2
U= ( + + + )dx ... (1.2)
2 est EI GS GJT ES
onde M, Q, MT e N são, respectivamente, momento fletor, força
cortante, momento torçor e força normal, ou seja, os esforços
solicitantes da estrutura e, também, E, I, G, S e JT são,
respectivamente, o módulo de elasticidade longitudinal, o
momento de inércia da secção, o módulo de elasticidade
transversal, a área da secção transversal e momento de inércia
à torção. Entre os dois módulos de elasticidade existe a
seguinte relação:
E
G= ... (1.3)
2(1 + )
2
1 M
2 EI
U= dx ... (1.4)
2
1 d2 v
U = EI 2 dx ... (1.6)
2 d x
5
ou seja, conhecida a elástica de uma viga pode-se calcular,
utilizando (1.6), a energia de deformação acumulada durante sua
flexão.
1 2
U D = K Di vi ... (1.7)
2
1
K R j v j
2
VR= ... (1.8)
2
1
2
UF= K F v dx ... (1.9)
2
6
1.4 Energia Potencial das Cargas Externas
Obtém-se o trabalho das cargas externas pelo produto entre
a carga e deslocamento de seu ponto de aplicação.
O deslocamento deve ser medido no sentido da carga
aplicada. Deste modo, para uma carga concentrada (ver Figura
1.2) o trabalho é dado por:
T F = F i vi ... (1.10)
’
TM = M jvj ... (1.11)
T q = q v dx ... (1.12)
7
Considere-se agora uma força normal de compressão,
conforme indica a figura 1.3. O trabalho realizado pela força P
pode ser dividido em duas parcelas. A primeira corresponde ao
trabalho realizado pelo encurtamento da barra na ausência de
flexão e a segunda corresponde ao trabalho realizado pelo
encurtamento devido, unicamente, à flexão da barra. Neste
estudo será considerada apenas a segunda parcela.
O trabalho realizado no elemento dx é dado pelo produto da
força P pelo encurtamento do elemento, ao longo de x, durante a
flexão, ou seja:
d T p = P d ... (1.13)
8
em:
d = 2 sen2 ( )dx ... (1.15)
2
1
d = 2 dx ... (1.16)
2
Sabe-se que:
v ... (1.18)
1
d = v 2 dx ... (1.19)
2
P
2 1
v dx
2
TP= ... (1.20)
= T ... (1.21)
9
1.5 Aplicação do Método Energético à Análise de Vigas
Elásticas
A energia potencial total da estrutura é dada pela soma da
energia de deformação com a energia potencial do carregamento
externo aplicado.
Para uma viga submetida a carregamento axial e transversal e
com vínculos elásticos discretos ou não, conforme indica a
Figura 1.4, a expressão da energia total é obtida a partir de
(1.6) a (1.12) e de (1.20), e é dada por:
1 1 1 1
=
2 EI v" 2 dx + K F v2 dx P v 2 dx + K Di V i2
2 2 2
... (1.22)
1
+ K R j v 2j g vdx Q vQ M vM
2
1 1
= F ( x,v, v, v ) d x + K D vi2 + K R v 2j ... (1.24)
2 i
2 j
10
A equação de Euler para este funcional é:
2
dF d dF d dF
( )+ 2 ( )= 0 ... (1.25)
dv dx dv dx dv"
(a) (b)
Figura 1.5 – Viga engastada
1 EI
= v" 2 (x)dx F v (l)
0 2
11
... (1.27)
2
vap (x) = A x + B x + C ... (1.28)
As condições de vinculação
2
vap (x) = Ax ... (1.30)
12
pode-se obter a energia potencial total correspondente, a
partir de (1.27). Como esta energia é mínima para a solução
exata, quanto mais próximo desta estiver a solução aproximada,
menor será a energia correspondente. Assim, o valor de A
referente à função Vap que mais se aproxima da solução exata é
aquele que minimiza o funcional dado por (1.27) e que também é
um valor aproximado.
Assim pode-se escrever:
1 EI
ap = 0 v"
2
ap d x F v ap (l) ... (1.31)
2
1
ap =
0
2 EI A 2 dx F A l 2 ... (1.32)
ap = 2 EI A 2 l F A l 2 ... (1.33)
d ap
=0 ... (1.34)
dA
Portanto:
que fornece:
Fl
A= ... (1.36)
4 EI
13
e portanto, a função quadrática que mais se aproxima da solução
exata é:
Fl 2
v ap = x ... (1.37)
4 EI
F l3
v ex = ... (1.38)
3 EI
e
F l3
v ap = ... (1.39)
4 EI
Fl
M ap = EI v" ap = ... (1.40)
2 EI
e
3 2
v ap (x) = A x + B x ... (1.42)
v" ap (x) = 6 A x + 2 B
... (1.43)
3 2
v ap (l) = A l + B l
1 EI
ap = 0 ( 6Ax + 2B ) 2dx F ( Al 3 + Bl 2 ) ... (1.44)
2
obtendo-se:
EI
ap = ( 12 A2l 3 + 4 B 2l +12A B l 2 )F A l 3F B l 2 ... (1.45)
2
= 0
A
... (1.46)
= 0
B
F l3
12 Al 3 + 6 Bl 2 =
EI
15
... (1.47)
Fl 2
6 Al 2 + 4Bl =
EI
F
A=
6 EI
... (1.48)
Fl
B=
2 EI
F 3 Fl 2
vap (x)= x+ x ... (1.49)
6EI 2EI
1 1 P 1
= v dx
2 2
EI v" dx ... (1.50)
2 0 2 0
16
(a) (b)
Fig 1.7 – Posições de uma coluna antes e depois da flambagem
2
vap(x)= A x + B x +C ... (1.51)
Vap(0) = 0
Vap(L) = 0
C = 0
B = -AL
17
vap (x)= A( x Lx)
2
... (1.52)
3
PL 2
ap = 2EI L A2 A ... (1.53)
6
d ap 3
= (4EI L PL )A = 0 ... (1.54)
dA 3
3
4EIL PL = 0 ... (1.55)
3
EI
p e ap = 12 2
... (1.56)
L
18
pe =
2
EI
2
... (1.57)
lx
L
EI 144 2 5
ap = A L + 12 B L + 4 C L + 36 ABL + 16 ACL + 12B CL ]
2 3 2 4 3 2
[
2 5
... (1.59)
P 9 2 7 4 2 5 1 2 3 6
[ A L + B L + C L + 2A B L6 + A C L5 + B C L4 ]
2 7 5 3 5
144 9 3
( EI L5 P L7 ) A + (18 EI L 4 P L6 ) B + (8 EI L3 P L5 ) C = 0
5 7 5
4 P
(18 EI L 4 P L6 ) A + (12 EI L 3 P L 5 ) B + (6 EI L 2 L4 ) C = 0
5 2
3 5 P 4 P 3
(8 EI L3 PL ) A + (6 EI L L ) B + (4 EI L L ) C = 0
2
5 2 3
19
144 9 7 18 EIL4 PL6 3 5
5 EIL 7 PL
5
8 EIL PL A 0
3
5
18 EIL4 PL6 4 5 P = ... (1.60)
12 EIL3 PL 6 EIL 2 L4 B 0
5 2
8 3 5 P 4 P 3 C 0
EIL PL 6 EIL 2 4EIL L
3
L
5 2 3
144 9 7 18 EIL4 PL6 3
5 EIL 7 PL 8 EIL3 PL5
5
5
18 EIL4 PL6 4 5 P 4 =0 ... (1.61)
12 EIL3 PL 6 EIL L
2
5 2
8 3 5 P 4 P 3
EIL PL 6 EIL 2 4EIL L
3
L
5 2 3
EI
P c ap = 9,875 2
... (1.63)
L
20
Considere-se agora a coluna de momento de inércia variável
e submetida a carregamento axial, conforme indica a Figura
1.8a. A carga crítica desta coluna poderia ser determinada,
utilizando-se uma única função aproximadora para os
deslocamentos, como nos exemplos anteriores. Este procedimento,
entretanto, tendo em vista a descontinuidade da curvatura no
ponto B, faz com que seja necessário utilizar funções
polinomiais de grau elevado para se obter uma boa precisão dos
resultados. A alternativa a este procedimento consiste em se
adotar uma função polinomial para aproximar os deslocamentos do
trecho AB e outra para aproximar os deslocamentos do trecho BC
(ver Figura 1.8b). As funções escolhidas são:
EI
e
B
16∙EI
(a) (b)
Figura 1.8 – Coluna com momento de inércia variável
v1ap (0) = 0
... (1.65a)
v 2 ap (L) = 0
21
No ponto B deve haver continuidade das funções tanto no
deslocamento quanto na derivada, isto é:
L L
V 1ap ( ) = v 2 ap ( ) ... (1.65b)
3 3
L L
v 1ap ( ) = v 2 ap ( ) ... (1.65c)
3 3
M = EIV"
L L
E(16I) v1" ap ( ) = EI v 2 " ap ( ) ... (1.65f)
3 3
22
V 1ap (x) = A1 ( x 5 L x)
3 2
... (1.66)
V 2ap (x) = A1 ( 8 x + 24 L x 18 L x + 2 L )
3 2 2 3
... (1.67)
16EI L/ 3 2 EI L 2 P L/ 3 2 P L 2
ap = 0 ( v1ap ) dx+ L/ 3( v2ap ) d x 0 ( v1ap ) dx L/ 3( v2ap ) dx
2 2 2 2
... (1.68)
d ap
=0
dA1
isto é:
EI
P e ap = 12,55 2
... (1.71)
L
23
Pretende-se agora determinar um valor aproximado da carga
crítica de flambagem da coluna apoiada, lateralmente, em uma
base elástica, conforme indica a Figura 1.9.
v ap (x) = A( x L x) + B( x L x) + C( x Lx)
4 3 3 2 2
... (1.72)
EI L K E L 2 dx P L
ap = 2 0 2 0
v dx
2 2
v" dx + v ... (1.73)
2 0
24
EI 144 5 2
ap =
3 2 2 4 3 2
L A + 12 L B + 4 LC + 36 L AB + 16 L AC + 12 L BC
2 5
9 8 7 2 L 5 2 11 8 5 7 L BC
6
+ K E L A2 + L B + C + L AB + L AC +
... (1.74)
2 9 105 30 60 42 10
P 9 7 2 4 5 2 L3 2 6 5
6 4
L A + L B + C + 2 L AB + L AC + L BC
2 7 5 3 5
144 9 7 L9 11 3 5 5 7
EIL PL K F
5 18 EIL4 PL6 K F L8 8 EIL3 PL K F L
120 5 84
5 7 9
11 4 5 8 P 1
18 EIL PL 120 K F L 12 EIL3 PL 6 EIL2 L4
8
4 6
K F L7 6
KF L =0
5 105 2 20
3 5 5 P 4 1 P 3 1 5
8 EIL 5 PL 84 K F L 6 EIL2 L 4EIL L K F L
7
3
K F L6
2 20 3 30
... (1.75)
Pap = 8,89 kN
L
3 2
V 1ap (x) = A1 X + B1 X + C 1 x + D1 0x ... (1.76)
2
25
L
3 2
V 2ap (x) = A2 X + B 2 X + C 2 x + D2 xL ... (1.77)
2
V 1 ap (0) = 0
... (1.78a)
V 2 ap (L) = 0
L L
v1ap ( ) = v 2ap ( ) ... (1.78b)
2 2
L L
v1ap ( ) = v2ap ( ) ... (1.78c)
2 2
3 2
V 1ap (x) = A1 X + B1 X + C 1 X ... (1.79)
5 2 1 3 11 2 3 3
V 2 ap (x) = A2 ( x 2 Lx + L x L ) + A1 ( 2L x + L x L ) +
3 2 2
4 4 4 4
... (1.80)
4
+ B1 ( 3 x2 + 4Lx L2 ) + C 1 ( x 2 + 5xL)
L
26
EI L / 2 EI L K F L / 2 2 dx + K F L / 2 2 dx
2 0 2 L / 2 2 0 2 0
= v1"
2
ap dx + v2 "
2
ap dx + v1 ap v2ap
P L/2 P L/ 2
( v1 'ap )2 dx ( v2 'ap )2 dx
2 0 2 L
... (1.81)
P r ap = 9,77kN
V ap (x) = A( x Lx)
2
... (1.82)
27
A expressão da energia potencial total para esta viga é:
EI L KF L L
= v dx 0 q v dx
2 2
v" dx + ... (1.83)
2 0 2 0
5 3
K F L ) 2 + qL A
ap = (2LEI + A ... (1.84)
30 6
d ap 5
q L3
= 2 ( 2 L EI + K F L )A + =0 ... (1.85)
dA 30 6
De onde se obtém:
q L3
A = 5
... (1.86)
K L
12(2 L EI + F )
30
q L3
v ap (x) = 5
( x2 L x ) ... (1.87)
K L
12(2 L EI + F )
30
28
Para os dados indicados na Figura 1.10 obtêm-se o seguinte
resultado, o qual é 22% inferior ao valor exato:
l
v ap ( ) = 0,002325m
2
v ap (x) = A( x L x) + B( x L x) + C( x Lx)
4 3 3 2 2
... (1.72)
EI 144 5 2
ap = [ 3 2 2 4
L A + 12 L B + 4 LC + 36 L AB + 16 L AC +
3
2 5
9
8 7 2 L5 2 11 8
+ 12 L 2 BC] + K F [ L A2 + L B + C ++ L AB ... (1.88)
2 9 105 30 60
6 4 3
5 7 L 3 qL qL
+ L AC + BC] qL A
5
B C
42 10 10 4 6
144 L
9
11 8 5 7
EI L
5
+ KF 18EI L4 + L KF 8EI L3 + L KF A
5 9 120 84 3
q L5
10 4
11 8 8 7 6
qL
4
18EI L + 120 L K F 12 EIL3 + L KF 6EI L 2 + L K F B =
105 20 4
3
qL
5 7 6 5 6
3
8EI L + 84 L K F 6EI L 2 + L K F 4EI L + L K F C
20 30
... (1.89)
29
23952024 5019165 751795.7 A 729
5019165 1121965.7 188730 B = 202.5 ... (1.90)
751795.7
188730 41940 C 45
A 1.1779 10
4
4
B
= 7.0675 10 ... (1.91)
C 4.0669 10 6
V ap (L/2) = 0,002990m
3 2
vi (x) = Ai x + Bi x + C i x + Di ( i = 1,..., 6 ) ... (1.92)
30
Figura 1.11 – Viga dividida em 6 trechos
6
EI Kf
ap = vapi d x Li q vapi d x
2 2
vapi " d x + ... (1.94)
i=1 2 2
Li Li
31
L
V 3( ) = 0,002990m
2
33
2. MÉTODO DOS ELEMENTOS FINITOS (VIGAS CONTÍNUAS)
hi
V = ax 3 + bx 2 + cx + d ... (2.1)
34
V = 3 ax 2 + 2bx + c ... (2.2)
Condições de contorno:
a) x = 0 v = vi d = vi
b) x = 0 v' = v'i c = v'i
c) x = hi v = vj ahi3 + bhi2 + chi + d = vj
d) x = hi v' = v'j 3ahi2 + 2bhi + c = v'j
2 1
a= 3
(v j vi ) 2 (v' j v'i )
hi hi
3 1
b= 2
(v j vi ) (v' j 2v'i )
hi hi
c = v' i d = vi
x 3 x 2 x 3 x 2
v = vi [2( ) - 3( ) + 1] + v j [-2( ) + 3( ) ]+
hi hi hi hi
3 2 3 2
x 2x x x
+ v i [ 2
- + x] +
v j [ 2
- ] ... (2.3)
hi hi hi hi
6 x2 6 x 6 x2 6 x 3x 2 4 x
v' vi 3 - 2 + v j 3 2 v'i 2 + 1 +
hi hi hi hi hi hi
3x2 2 x
v' j 2 ... (2.4)
hi hi
35
A derivada de segunda ordem é dada por:
12 x 6 12x 6 6x 4
v" vi 3 - 2 + v j 3 2 v'i 2 +
hi hi hi hi hi hi
6x 2
v' j 2 ... (2.5)
hi hi
36 x 4 72 x 3 36 x 2 36 x 4 72 x 3 36 x 2
v ' v 6 5 + 4 + v 2j 6 5 + 3 +
2 2
i
hi hi hi hi hi hi
x x x 8x
+ v i2 9( )4 + 22( )2 + 1 24( )3 +
hi hi hi hi
x x x 72 x4 144 x3 x
2
+ v j2 9( )4 12( )3 + 4( )2 vi v j 6 5
+ 72 4
+
hi hi hi hi hi hi
36 x4 84 x3 60 x3 12 x 36 x4 60 x3 24 x2
vi vi' 5 4 + 3 2 vi v 'j 5 4 + 3 +
hi hi hi hi hi hi hi
36 x4 84 x3 60 x3 12 x 36 x4 60 x3 24 x2
v j vi' 5 4 + 3 2 v j v 'j 5 4 + 3 +
hi hi hi hi hi hi hi
x x x 4x
+ v i' v 'j 18( )4 36( )3 + 22( )2 ... (2.6)
hi hi hi hi
1 x 2 x 2 1 x 2 x
v" 2 v i2 4 144( ) 144( ) 36 + v j 4 144( ) 144( ) + 36 +
hi hi hi h i h i h
1 x 2 x 2 1 x 2 x
+ v i2 2 36( ) 48( ) + 16 + v j 2
36( ) 24( ) + 4 +
hi hi hi hi hi h
36
1 x x 1 x x
vi v j 4
288( )2 288 72 v i v i 3 144( )2 168 48 +
hi hi hi hi hi hi
1 x x 1 x x
+ vi v j 3
144( )2 120 + 24 v j v j 3 144( )2 168 48 +
hi hi hi hi hi hi
1 x x 1 x x
v j v i 3
144( )2 120 + 24 + v i v j 2 72( )2 72 + 16 ... (2.7)
hi hi hi hi hi hi
hi
6 2 6 2 2 hi 2 2 hi 2 12
v 2 dx =
0
5hi
vi +
5 hi
vj+
15
v i +
15
v j
5 hi
vi v j +
1 1 1 1 h
+ vi v i + vi v j v j v i v j v j v i v j ... (2.8)
5 5 5 5 15
hi
12 2 12 2 4 2 4 2 24
v
0
2
dx =
hi3
vi + 3 v j + v i + v j 3 vi v j +
hi hi hi hi
12 12 12 12 4
+ +
2 vi v i 2 vi v j 2 v j v i 2 v j v j + vi v j ... (2.9)
hi hi hi hi hi
2.1.1 Exemplo 1:
Calcular o deslocamento do ponto de aplicação da carga da
viga da figura considerando toda a viga como um elemento
finito.
37
Figura 2.3 - Viga submetida a carregamento pontual
h i
EI
=
0
2
v 2 d x - P v 2 ... (2.10)
E, como EI = constante:
hi
EI
= v 2
dx - P v2 ... (2.11)
2 0
EI 12 2 12 2 4 2 4 2 24
= v 1 + 3 v 2 + v 1 + v 2 3 v 1 v 2 +
2 L 3 L L L L
12 12 12 12 4
+ 2 v1 v 1 + 2 v1 v 2 2 v 2 v 1 2 v2 v 2 + v 1 v 2 Pv2 ... (2.12)
L L L L L
=0
v1
EI 24 v1 24 12 12
3
3 v2 + 2 v 1 + 2 v 2 = 0 ... (2.13)
2 L L L L
38
=0
v1
EI 8 12 12 4
v 1 + 2 v1 2 v 2 + v 2 = 0 ... (2.14)
2 L L L L
=0
v2
EI 24 24 12 12
3 v2
3 v1 2 v 1 2 v 2 P = 0 ... (2.15)
2 L L L L
=0
v 2
EI 8 12 12 4
2 L v 2 2 v1 2 v 2 L v 1 = 0 ... (2.16)
L L
39
12 EI 6 EI 12 EI 6 EI
L3
L2 L3 L2 V
6 EI 4 EI 6 EI 2 EI 1 0
2 2 '
L L L L V1 0
12 EI 6 EI 12 EI 6 EI V2 P
L3 L2 3
2 ... (2.21)
L L V2' 0
6 EI 2 EI 6 EI 4 EI
2 2
L L L L
12 EI 6 EI
2
L
3 L2 V P
... (2.22)
6 EI
4 EI V ' 0
2
L2 L
3
PL
v2 = ... (2.23)
3EI
2
PL
v 2 = ... (2.24)
2EI
v"1 = v"(0)
6 6 4 2
v1 = 2 v1 + 2 v2 - v 1 - v 2
L L L L
6 PL3 2 PL2
v1 = 2
. .
L 3EI L 2EI
PL
v 1 =
EI
40
M1= -EIv"1 M1=-PL , que é o valor exato.
2.1.2 Exemplo 2:
Calcular os deslocamentos e esforços da viga considerando
toda viga como um elemento finito.
L L
EI
= v" dx qvdx
2
... (2.25)
0
2 0
L
= qvdx ... (2.26)
0
L
x 3 x 2 x 3 x 2
= - q { v 1[2( ) - 3( ) + 1] + v 2 [-2( ) 3( ) ]
0
L L L L
3 2 3 2
x 2x x x
+ v 1 [ 2
- + x] + v2 [ 2 - ]}dx ... (2.27)
L L L L
41
2 x4 x3 2 x4 x3
= q{ v1 [ + x] + v 2 [ + ]
4 L3 L2 4 L3 L2
4 L
x 2 x3 x 2 x
4
x
3
+ v 1 [ + ] + v 2 [ ]} | ... (2.28)
4 L2 3 L 2 4 L 2 3L 0
2 2
L L
= q( v1 + v 2 + v 1 L v 2 L ) ... (2.29)
2 2 12 12
EI 12 v12 12 2 4 2 4 2 24
= { 3 + 3 v 2 + v'1 + v 2 3 v1 v 2 +
2 L L L L L
12 12 12 12 4
+ 2 v1 v 1 + 2 v1 v 2 2 v 2 v 1 2 v 2 v 2 + v 1 v 2 } +
L L L L L
2 2
L L L L
q[ v1 + v 2 + v 1 v 2 } ... (2.30)
2 2 12 12
=0
v1
EI 24 24 12 12 L
3 V1
3 v 2 + 2 v 1 + 2 v 2 q = 0 ... (2.31)
2 L L L L 2
=0
v 1
EI 8 12 12 4 L
2
v1 + 2 v1
2 v2
+
v2 q =0 ... (2.32)
2 L L L L 12
=0
v2
EI 24 24 12 12 qL
3 v2
3 v1 2 v 1 2 v 2 =0 ... (2.33)
2 L L L L 2
42
=0
v 2
EI 8 12 12 4 2
L =0
L v + v v + v + q ... (2.34)
L
2 2 1 2 2 1
2 L L 12
12LEI
3
6 EI
L2
12 EI
L3
6 EI
L2
ql
2
6 EI 4 EI 6 EI 2 EI v1 ql 2
L v1 12
L2
'
L L2
6 EI ql
12LEI
3
6 EI
2
L
12 EI
L3
2 v2
L v2' 2 2
6 EI 4 EI
... (2.35)
12
2 EI 6 EI ql
L2 L L2 L
Condições de contorno:
v1 = 0 , v'1 = 0
12 EI 6 EI
qL
L3 L2
V
2
2 ... (2.36)
'
6 EI 4 EI V 2 qL 2
L2 L 12
4
qL
v2 = ... (2.37)
8EI
3
qL
v2 = ... (2.38)
6EI
43
Cálculo do momento no ponto [1]:
6 6 4 2
v 1 = 2 v1 + 2 v2 v 1 v 2
L L L L
4 3
6 qL 2 qL
v 1 = 2 . .
L 8EI L 6EI
5 qL 2
v 1 =
12 EI
5 2
M 1 = EI v 1 = qL
12
hi h
EI i
44
Separando na equação anterior a parcela referente à
energia de deformação da parcela referente à energia potencial
das cargas externas pode-se escrever que:
vi
T 12hEI
3
6 EI
hi2
12 EI
hi3
6 EI
hi2
v
' 6 EI
i
6 EI
i
'
h
EI '' vi hi2 4 EI
hi hi2 hi vi
2 EI
U v dx j 12 EI 6 EI
6 EI j
0
2 v hi3 hi2
12 EI
hi3 hi2
v
v ' 6 EI 2 EI 6 EI 4 EI
v '
j hi2 hi hi2 hi j
e K e e
T
... (2.40)
qh i
T
2
v i qh 2
hi v' i
i 12
= qvdx e Pe
T
qh i ... (2.41)
0 v j
v j 2
'
qh i2
12
45
2.3 Matriz de Rigidez de um Elemento Finito Submetido à Carga
Axial
hi
hi
E i Ii P hi 2
i= v dx v dx
2
... (2.43)
0
2 2 0
ou seja:
Ei I i 12 2 12 2 4 2 4 2 24 12
i= [ 3 vi + 3 v j + vi + v j 3 vi v j + 2 vi vi +
2 hi hi hi hi hi hi
12 12 12 4
+ 2 vi v j 2 v j vi 2 v j v j + vi v j ] +
hi hi hi hi
P 6 2 6 2 2 2 12
[ vi + v j + hi vi + hi v j
2 2
vi v j +
2 5 hi 5 hi 15 15 5 hi
1 1 1 1 h
+ vi vi + vi v j v j vi v j v j vi v j ] ... (2.44)
5 5 5 5 15
i 12 6 6
= [ E3i I i P i ] v i + [ E2i I i P i ] v i +
vi hi 5 hi hi 10
12 6 6
+ [ E3i I i + Pi ] v j + [ E2i I i Pi ] v j ... (2.45)
hi 5 hi hi 10
i 6 4 2 h
= [ E2i I i Pi ] vi + [ E i I i Pi i ] v i +
v i hi 10 hi 15
6 2 h
+ [ E2i I i + P i ] v j + [ E i I i + P i i ] v j ... (2.46)
hi 10 hi 30
i 12 6 6
= [ E3i I i + Pi ] vi + [ E2i I i + Pi ] v i +
vj hi 5 hi hi 10
46
12 E i I i 6 6
+[ 3
Pi ] v j + [ E2i I i + Pi ] v j ... (2.47)
h i 5 hi hi 10
i 6 2 h
= [ E2i I i Pi ] vi + [ E i I i + Pi i ] v i +
v j hi 10 hi 30
6 4 2 h
+ [ E2i I i + Pi ] v j + [ E i I i Pi i ] v j ... (2.48)
hi 10 hi 15
12 hE3i I i 65 hPii 6 E i I i Pi
2
12 E i I i 6 Pi
3
6 E i I i Pi
2
6 Ei i I i Pi
hi 10 hi 5 hi hi 10
4 E i I i 2 Pi hi 6 E i I i Pi 2 E i I i Pi hi
12hEi2 I 106 P
hi 15 hi2 10 hi 30
hi3i i 5 hii
6 E i I i Pi 12 E i I i 6 Pi 6 E i I i Pi
hi 2 10 hi3 5 hi hi 2 10
6 E2i I i 10Pi 2 E i I i Pi hi
6 E i I i Pi
4 E i I i 2 Pi hi
hi hi 30 hi 2 10 hi 15
... (2.49)
Ki i
K12 i
K13 i
K14
11
Ki i
K22 i
K23 i
K24
21
i
K31 i
K32 i
K33 i
K34 ... (2.50)
i i i i
K41 K42 K43 K44
47
Kii Kij
K K ... (2.51)
ji jj
onde:
T
v1 0 ... 0 0 0 0 ... 0 v1
...
. ... . . . . ... . ...
v 0 ... K i Ki Ki Ki ... 0 vi
i 11 12 13 14
'
v'
i 0 ... K i Ki Ki Ki ... 0 vi
1 21 22 23 24
2 v v
0 ... K i Ki Ki K i ... 0
j 31 32 33 34 j ... (2.52)
v' '
j 0 ... K i Ki Ki Ki ... 0 v j
41 42 43 44
... . ... . . . . ... . ...
vn 1 0 ... 0 0 0 0 ... 0 v
n 1
48
Considere agora dois elementos finitos i e j:
ij = i + j ... (2.53)
ij i j
= + ... (2.54)
ve v e ve
ij i j
= + ... (2.55)
ve ve ve
e = i, j, k
49
T
v1 0 ... 0 0 0 0 0 0 ... 0 v1
... . ... . . . . . . ... ...
vi 0 ... K11i K12i K13i K14i 0 0 ... 0 vi
vi' 0 i
... K 21 i
K 22 i
K 23 i
K 24 0 0 ... 0 vi'
v 0 ... K 31i K 32i K 33i K 34i 0 0 ... 0 v j
1
j
2 ' 0 0 0 ... 0 v 'j
i i i i ... (2.56)
v ... K 41 K 42 K 43 K 44
j
vk 0 ... 0 0 0 0 0 0 ... 0 vk
'
vk 0 ... 0 0 0 0 0 0 ... 0 vk'
... . ... . . . . . . ... . ...
'
vn1 0 ... 0 0 0 0 0 0 ... 0 vn' 1
50
T
v1 0 ... 0 0 0 0 0 0 ... 0 v1
... . ... . . . . . . ... ...
vi 0 ... 0 0 0 0 0 0 ... 0 vi
vi' 0 ... 0 0 0 0 0 0 ... 0 vi'
v 0 ... 0 0 K11j K12j K13j K14j ... 0 v j
1
j
2 ' 0
v ... 0 0 K 21j K 22j K 23j K 24j ... 0 v 'j ... (2.57)
j
v
k 0 ... 0 0 K 31j K 32j K 33j K 34j ... 0 vk
'
vk 0 ... 0 0 K 41j K 42j K 43j K 44j ... 0 vk'
... . ... . . . . . . ... . ...
'
vn1 0 ... 0 0 0 0 0 0 ... 0 vn' 1
51
T
v1 0 ... 0 0 0 0 0 0 ... 0 v1
... . ... . . . . . . ... ...
vi 0 ... K11i K12i K13i K14i 0 0 ... 0 vi
vi' 0 i
... K21 i
K22 i
K23 i
K24 0 0 ... 0 vi'
v 0 i
... K31 i
K32 i
K33 K11j K24
i
K12j K13j K14j ... 0 v j
1
j
2 ' 0
v i
... K41 i
K42 i
K43 K21j K 44
i
K22j K23j K 24j ... 0 v 'j
j
v
k 0 ... 0 0 K31j K32j K33j K34j ... 0 vk
'
vk 0 ... 0 0 K41j K42j K43j K 44j ... 0 vk'
... . ... . . . . . . ... . ...
'
vn1 0 ... 0 0 0 0 0 0 ... 0vn' 1
... (2.58)
52
Uma observação importante é lembrar que se por acaso a
numeração dos nós não for seqüencial, isto é, da esquerda para
direita, haverá coeficientes não nulos fora da banda da matriz
de rigidez global. Tal fato é indesejável uma vez que pode
aumentar a área necessária de armazenamento durante a solução
por computador e ainda gerar resíduos na solução do sistema
linear de equações.
Visando a solução do problema de vigas contínuas por via
computacional é ilustrado a seguir um esquema de endereçamento
no qual é indicada a posição na escala global da contribuição
de cada elemento presente na discretização da estrutura. Seja o
elemento ilustrado a seguir formado pelos nós i e j:
53
A localização na escala global dos termos da matriz de
rigidez e do vetor de cargas nodais equivalentes deste elemento
é apontada pelos chamados índices de posição que neste caso são
2i-1, 2i, 2j-1 e 2j. Abaixo é colocado de que forma é efetuado
este endereçamento.
2i-1 2i 2j-1 2j
2i-1 K 11 K 12 K 13 K 14
Linha a ser 2i
K K 22 K 23 K 24
ocupada na 21
matriz de
rigidez global
2j-1 K 31 K 32 K 33 K 34
2j
K 41 K 42 K 43 K 44
2i-1
P1
Linha a ser
ocupada no vetor P2 Vetor de cargas nodais
P3
2i
de cargas nodais equivalentes do elemento
equivalentes formado pelos nós i e j
2j-1
P4
global
2j
2.3.1 Exemplo 3:
Objetivando um melhor entendimento do esquema de
endereçamento colocado anteriormente é colocada a seguir uma
viga contínua com deslocamentos nodais a serem determinados
mediante discretização indicada.
54
Dados: g = 10 kN/m
EI = 108 kN∙cm2
L = 2 m
x
y
12 EI 6 EI
12 EI 6 EI gL
6LEI 2 EI gL22
3
L2 L3 L 2
4 EI 6 EI
L2
L
12
gL
K1 L L2 e P1
12 EI 6 EI
2
12 EI
2
6 EI
6 EI 22
4 EI
L3 L L3 L
L2
2 EI 6 EI
gL
L
L L2 12
Elemento 2:
48 EI 24 EI
48 EI 24 EI
24LEI 2 gL2
8 EI
3 2 3 2
L L L
L2
16 EI
24 EI
L
gL3
2 gL
K2 L L2 e P2
48 EI 24 EI
2
48 EI
2
24 EI
24 EI gL2
16 EI
L3 L L3 L
8 EI 24 EI 3
L2 L
L2 L
55
O passo seguinte é deixar a escala local que se refere ao
domínio dos elementos e passar para escala global de toda
estrutura. Para tanto é necessário determinar os índices de
posição que irão apontar as posições globais dos elementos
locais.
Elemento 1:
i=1
j=3
2i-1=1 ; 2i=2
2j-1=5 ; 2j=6
Elemento 2:
i=3
j=2
2i-1=5 ; 2i=6
2j-1=3 ; 2j=4
56
12 EI 6 EI 12 EI 6 EI
0 0 gL
L3 L2 L3 L2
6 EI 4 EI 6 EI 2 EI 2
0 0
L
2
L2 L2 L gL2
48 EI 24 EI 48 EI 24 EI
0 0 12
KG
L3 L2 L3 L2 2 gL
24 EI 16 EI 24 EI 8 EI e PG gL
0 0 3
L2 L L2 L 5 gL
12 EI 6 EI 48 EI 24 EI 60 EI 18 EI
L3 L2 L3 L2 L3 2
L 2
6 EI 2 EI 24 EI 8 EI 18 EI 20 EI gL 2
L2 L L2 L L2 L 4
16 EI 24 EI 8 EI gL2
'
L L2 L
v2 3
24 EI 60 EI 18 EI 5 gL
2 v3
L L3 L2 ' 2
8 EI 18 EI 20 EI v3 5 gL2
L L
L2 4
40
80000 60000 40000 v '
2 3
60000 75000 45000 v3 50
40000 45000 100000 v ' 10
3
57
v ' 1, 64410 3 rad
2
v3 2 , 09210 3 m
' 4
v3 1,83910 rad
M = EIv ''
... (2.59a e 2.59b)
V EIv '''
Elemento 1:
M 3 = EIv1'' L 35,058 kN m
V3 EIv1''' L 34,138 kN
Elemento 2:
M = EJV"
M 2 = 4 EIv2'' L 13,333 kN m
V2 4 EIv2''' L 15,862 kN
M1 = 36,552 kN m
V1 44,138 kN
58
M 3 = 31,724 kN m
V3 24,138 kN
M2 =0
V2 55,862 kN
MEF
2 4 2 4
3 1 3
1
(a) (b)
Elemento 1
Elemento 2
60
Esforço Cortante (kN∙m):
V3 VTFV
*
P1 15,862 40 24,138 kN
V2 VTFV P3 15,862 40 55,862 kN
61
12 EI 6 EI 12 EI 6 EI
hi3 hi2 hi3 hi2
V 6 EI
i 4 EI 6 EI 2 EI vi P1
'
M i hi2 hi hi2 hi vi P2
V j 12 EI 6 EI 12 EI 6 EI v j P3
M h3 hi2 hi3 hi2 v 'j P4
j i
6 EI 2 EI 6 EI 4 EI
2
hi hi hi2 hi
Mi
hi Mj
i j
E,I
Vi Vj
Figura 2.13 – Esforços nodais em elemento genérico de viga
V 34 ,138 10 44 ,138 kN
1
M 1 33, 219 3, 333 36 , 552 kN m
V
3 34 ,138 10 24 ,138 kN
M 35, 058 3, 333 31, 724 kN . m
3
62
Como esperado a resposta foi igual à correta exceto pelos
sinais trocados nos graus de liberdade onde a convenção do MEF
é diferente da convenção de vigas.
63
Figura 2.15 – Parâmetros nodais do elemento finito de viga
1
2
UB K b w 2 dx ... (2.61)
1 1
Uv K vi w i2 , U m K mi w i 2 , ... (2.62)
2 2
F Pi w i , M M i w i ... (2.64)
64
onde Pi é a intensidade da carga concentrada, wi é o
1 L
EI(w ) 2 K b (w ) 2 dx K v w 2 K m w 2 q (w )wdx Pw (x ) x j M w (x ) x j
L x i x i
2
0
0
... (2.65)
q ( x ) b 0 b1 x ... (2.66)
(q j q i )
b 0 q i , b1 ... (2.68)
L
65
(q j q i )
q(x ) q i x ... (2.69)
L
66
13 11 9 13
35 K b L K b L2 KbL K b L2
210 70 420
11 K L2 1 13 1
K b L3 K b L2 K b L3
b
K B 210 105 420 140
11
... (2.73)
9 K bL 13
K b L2
13
KbL KbL 2
70 420 35 210
13 1 11 1
K b L2 K b L3 K b L2 K b L3
420 140 210 105
K vi 0 0 0
0 K mi 0 0
K V 0 0 K vj 0
... (2.74)
0 0 0 K mj
7 3
20 Lq i 20 Lq j
1 L2q 1 L2 q
i j
Qeq 20 30
... (2.75)
3 Lq 7 Lq
20 i 20 j
1 1
L2 q i L2 q j
30 20
Pi
M
i
Q Apl ... (2.76)
Pj
M j
FG .
Estas contribuições para a matriz global são efetivadas
através das relações de incidência que relacionam os nós,
inicial e final, de um dado elemento final com sua posição
final no sistema global da estrutura e são dadas por
2i 1 , 2i , 2 j 1 , 2 j ... (2.77)
68
onde R é o vetor das reações de apoio, K viga é a matriz de
forças da viga.
69
Escreve-se a seguir essas condições de contorno locais do
elemento:
v ( x ) 1 x 3 2 x 2 3 x 4 ... (2.81)
Ou, matricialmente:
v( x ) [ x 3 x2 x 1]{ } ... (2.82)
, , ,
Estas condições podem ser matricialmente escritas como:
vi 0 0 0 1 1
v"
0 0 1 0 2
v 3 ... (2.83)
j L L
2
L 1 3
v j 6 L 2
0 0 4
Ou,
{ e } [C ]{ } { } [C ]1{ e } ... (2.84)
v( x) [ ]{ e } .
Agora, tomando a segunda derivada da função deslocamento,
v( x) [ ]{ e } , chamando [ ] , é possível escrever a matriz de
rigidez fazendo o seguinte produto:
hi
[ K ] [ B ]T EI [ B]dx ... (2.86)
0
70
Matriz de rigidez de
elementos com rótula
no nó esquerdo.
... (2.87)
A posição referente à diagonal da segunda linha foi
substituída pelo valor zero. Isto foi feito porque a definição
tomada para chegar a esta matriz foi feita considerando segunda
derivada nula no nó esquerdo. Entretanto os demais elementos
que não possuírem rótulas não podem ter condições que dependam
de segunda derivada, por esta razão a influência da segunda
derivada deve ser retirada da matriz de rigidez dos elementos
com rótula.
De maneira inteiramente análoga, pode-se definir um
elemento que apresente rótula no nó direito, e encontrando-se:
Matriz de rigidez de
elementos com rótula
no nó direito.
... (2.88)
71
Figura 2.14 ilustra o caso.
Matriz de rigidez
de elementos com
rótula no nó
direito com base
elástica
... (2.91)
Note que aqui também deve ser retirado o efeito da segunda
derivada do nó direito. Por este motivo aparece a linha e a
coluna de zeros na matriz acima.
72
De modo inteiramente análogo pode-se obter a matriz devido
à base elástica considerando rótula à esquerda. Vale lembrar
que a matriz sem a presença de rótulas já é conhecida.
Matriz de rigidez
de elementos com
rótula no nó
esquerdo com base
elástica
... (2.92)
v ( x ) 1 x 3 2 x 2 3 x 4 ... (2.93)
Ou, matricialmente:
v( x ) [ x 3 x2 x 1]{ } ... (2.94)
73
Com condições de contorno:
v(0) vi , v ''(0) 0 , v(hi ) v j , v '(hi ) v ' j
levando a:
hi q j qi
{P} (qi x)[ ( x)]T dx ... (2.96)
0 L
Resultando em:
... (2.97)
... (2.98)
74
2.7 Consideração Da Instabilidade Elástica Em Elementos De Viga
75
Figura 2.16 - Elemento finito sob instabilidade
L L
0 v2 dx { e }T [ ]T [ ]dx{ e} ... (2.105)
0
L
0 v dx { } [ MI ]{ e }
2 e T
... (2.107)
1
{ e}T ([ K ] P[MI ]){ e } 0 ... (2.111)
2
76
O termo é diferente de zero, logo para que a relação seja
nula deve-se ter:
([ K ] P[ MI ]){ e } 0 ... (2.112)
Matriz de
instabilidade de
elementos sem
rótulas
... (2.115)
Procedendo exatamente da mesma maneira feita anteriormente
ao considerar rótulas à esquerda ou à direita, pode-se
encontrar as seguintes matrizes de instabilidade:
77
Matriz de
instabilidade de
elementos com
rótula à esquerda
... (2.116)
Matriz de
instabilidade de
elementos com
rótula à direita
... (2.117)
Em síntese tem-se na tabela 2.1 as matrizes que contemplam
todos os casos deduzidos nesta seção do Anexo, bem como àquelas
conhecidas previamente.
78
cargas nodais
Equivalentes
Vetor de
79
3. ELEMENTO FINITO DE VIGA
INICICIO
INSTABILIDADE FLEXÃO
PRÉ-PROCESSAMENTO SIMPLES
ESCOLHA DO TIPO DE
ANÁLISE
PRÉ-PROCESSAMENTO PRÉ-PROCESSAMENTO
ENTRADA DE DADOS ENTRADA DE DADOS
PROCESSAMENTO PROCESSAMENTO
MONTA MATRIZ DE MONTA MATRIZ DE
RIGIDEZ DOS ELEMENTOS RIGIDEZ DOS ELEMENTOS
PROCESSAMENTO PROCESSAMENTO
MONTAGEM DA MATRIZ DE MONTA VETOR DE
INSTABILIDADE DOS CARREGAMENTOS DOS
ELEMENTOS ELEMENTOS
PROCESSAMENTO PROCESSAMENTO
MONTA MATRIZ DE MONTA MATRIZ DE
RIGIDEZ GLOBAL DA RIGIDEZ GLOBAL DA
ESTRUTURA ESTRUTURA
PROCESSAMENTO PROCESSAMENTO
80
MONTA MATRIZ DE MONTA VETOR DE
INSTABILIDADE GLOBAL CARREGAMENTO GLOBAL DA
DA ESTRUTURA ESTRUTURA
PROCESSAMENTO PROCESSAMENTO
IMPOSIÇÃO DAS IMPOSIÇÃO DAS
CONDIÇÕES DE CONTORNO CONDIÇÕES DE CONTORNO
NO SISTEMA NO SISTEMA
PROCESSAMENTO PROCESSAMENTO
CALCULO DOS CALCULA OS
AUTOVALORES DESLOCAMENTOS
PROCESSAMENTO PROCESSAMENTO
ENCONTRO DO MENOR CALCULA OS ESFORÇOS
AUTOVALOR VÁLIDO INTERNOS
PÓS-PROCESSAMENTO PROCESSAMENTO
SAÍDA DE DADOS CALCULA AS REAÇÕES DE
APOIO
PÓS-PROCESSAMENTO
SAÍDA DE DADOS
FIM
81
apresentação dos resultados.
1 PROGRAM Programa_Vigas
2 USE MODULO_1
3 IMPLICIT NONE
4 !-----------------------------
5 CALL AD_01
6
7 IF (TIPOANALISE .EQ. '1') THEN !CASO DE FLEXÃO EM VIGAS
8 CALL SUBROTINA_10
9
10 DO I=1,NELEM
82
11 CALL SUBROTINA_11
12 SELECT CASE (TIPOELEM(I))
13 CASE (1)
14 CALL SUBROTINA_12
15 CALL SUBROTINA_13
16 CASE (2)
17 CALL AD_02
18 CALL AD_03
19 CASE (3)
20 CALL AD_04
21 CALL AD_05
22 END SELECT
23 CALL SUBROTINA_14
24 CALL SUBROTINA_15
25
26 END DO
27 KGLOBALC=KGLOBAL
28 VGLOBALC=VGLOBAL
29
30 DO K=1,NNO
31 CALL SUBROTINA_16
32 CALL SUBROTINA_17
33 ENDDO
34
35 CALL SUBROTINA_18
36 CALL SUBROTINA_19
37 CALL SUBROTINA_20
38 CALL SUBROTINA_21
39 DO K=1,NNO
40 CALL SUBROTINA_22
41 ENDDO
42
43 CALL SUBROTINA_23
44
45 ENDIF ! FIM DO NUCLEO PARA FLEXÃO DE VIGAS
46
47 IF (TIPOANALISE .EQ. '2') THEN !CASO DE INSTABILIDADE
48 CALL AD_06
49 DO I=1,NELEM
50 CALL SUBROTINA_11
51 SELECT CASE (TIPOELEM(I))
52 CASE (1)
53 CALL SUBROTINA_12
54 CALL AD_07
55 CASE (2)
56 CALL AD_01
57 CALL AD_08
58 CASE (3)
59 CALL AD_04
60 CALL AD_09
61 END SELECT
62 CALL SUBROTINA_14
63 CALL AD_10
83
64 END DO
65 DO K=1,NNO
66 CALL SUBROTINA_17
67 ENDDO
68 CALL AD_11
69 CALL AD_12
70 CALL AD_13
71
72 ENDIF !FIM DO NUCLEO PARA INSTABILIDADE
73
74 END PROGRAM Programa_Viga
84
MODULE MODULO_1
USE MSIMSL
IMPLICIT NONE
INTEGER::NNO,NELEM,I,J,K,L,M,NI,NF,X
INTEGER,DIMENSION(:),ALLOCATABLE::NOI,NOF,RESTX,RESTY,RESTZ,TIPOELEM
REAL*8,DIMENSION(:),ALLOCATABLE::COODX,COODY,VAPLI,MAPLI,KMV,KMR
REAL*8,DIMENSION(:),ALLOCATABLE::ELAST,IN,VGLOBAL,R,VGLOBALC,DESL
REAL*8,DIMENSION(:),ALLOCATABLE::COMP,RESTGLOBAL,QYI,QYF,VAPLELEM
REAL*8,DIMENSION(:),ALLOCATABLE::REACAO,KMB,FMV,FMR,FATORP,AUTOVALOR
REAL*8,DIMENSION(:,:),ALLOCATABLE::KGLOBAL,VFORCA,RES,KGLOBALC
REAL*8,DIMENSION(:,:),ALLOCATABLE::UEGLOBAL,EF,AUX,MIGLOBAL
REAL*8,DIMENSION(:,:,:),ALLOCATABLE::KELEM,MIELEM
LOGICAL::EXISTE_ARQUIVO
CHARACTER*30::ARQUIVO,TIPOANALISE,ARQUIVO_1
85
1000 SUBROUTINE SUBROTINA_10
1001 USE MODULO_1
1002 IMPLICIT NONE
1042 DO I=1,NNO
1043 READ(1,*)K,COODX(K),COODY(K),RESTX(K),RESTY(K),RESTZ(K),
1044 *VAPLI(K),MAPLI(K),KMV(K),KMR(K)
1045 END DO
1046 READ(1,*)
1047 READ(1,*)
1048 READ(1,*)
1049 READ(1,*)
1050 READ(1,*)
1051 READ(1,*)
1052 READ(1,*)
1053 READ(1,*)
86
1054 READ(1,*)
1055 DO I=1,NELEM
1056 READ(1,*)M,NOI(M),NOF(M),ELAST(M),IN(M),QYI(M),QYF(M),KMB(M),
1057 *TIPOELEM(M)
1058 ENDDO
1059 ENDIF
1060 CLOSE(1)
1061 ALLOCATE(COMP(NELEM));COMP=0.0D0
1062 ALLOCATE(KELEM(NELEM,4,4));KELEM=0.D0
1063 ALLOCATE(VFORCA(NELEM,4));VFORCA=0.D0
1064 ALLOCATE(KGLOBAL(2*NNO,2*NNO));KGLOBAL=0.D0
1065 ALLOCATE(VGLOBAL(2*NNO));VGLOBAL=0.D0
1066 ALLOCATE(VAPLELEM(2*NNO));VAPLELEM=0.D0
1067 ALLOCATE(DESL(2*NNO));DESL=0.D0
1068 ALLOCATE(RES(NELEM,4));RES=0.D0
1069 ALLOCATE(RESTGLOBAL(2*NNO));RESTGLOBAL=0.D0
1070 ALLOCATE(UEGLOBAL(NELEM,4));UEGLOBAL=0.D0
1071 ALLOCATE(AUX(NELEM,4));AUX=0.D0
1072 ALLOCATE(EF(NELEM,4));EF=0.D0
1073 ALLOCATE(R(2*NNO));R=0.D0
1074 ALLOCATE(REACAO(2*NNO)); REACAO=0.D0
1075 ALLOCATE(FMV(NNO));FMV=0.D0
1076 ALLOCATE(FMR(NNO));FMR=0.D0
1077 ALLOCATE(KGLOBALC(2*NNO,2*NNO));KGLOBALC=0.D0
1078 ALLOCATE(VGLOBALC(2*NNO));VGLOBALC=0.D0
87
1015 – Leitura do número de nós da estrutura (NNO) e do número
de elementos (NELEM).
1016-1032 – Comando que aloca memória para as variáveis que
contêm os dados do problema. Também se atribui o valor zero a
todas as variáveis.
1033-1041 – Leitura das linhas em branco no arquivo de entrada
de dados.
1042 – Início do laço do número de nós.
1043 – Comando que faz a leitura do número do nó (K),
coordenada X do nó K (COORDX), coordenada Y do nó K (COORDY),
restrição X do nó K (RESTX), restrição Y do nó K (RESTY),
restrição Z do nó K (RESTZ), força aplicada na direção Y do nó
K (VAPLI), momento aplicado no nó K (COORDX), rigidez da mola
de translação no nó K (KMV) e rigidez de da mola de flexão no
nó K (KMR).
1045 – Fim do laço do número de nós.
1046-1054 – Leitura das linhas em branco no arquivo de entrada
de dados.
1055 – Início do dó do número de elementos.
1056 – Comando que faz a leitura do número do elemento (M), nó
inicial do elemento M (NOI), nó final do elemento M (NOF),
módulo de elasticidade do elemento M (ELAST), momento de
inércia do elemento M (IN), valor da força distribuída no nó
inicial do elemento M (QYI), valor da força distribuída no nó
final do elemento M (QYF), rigidez da base elástica no elemento
M (KMB), Tipo do elemento M (TIPOELEM).
1058 – Fim do dó do número de elementos.
1059 – Fim do comando iniciado na linha 1006.
1060 – Comando que fecha do arquivo de entrada de dados.
1061-1078 – Aloca e atribui o valor zero às variáveis
utilizadas no processamento e pós-processamento do programa.
COMP (comprimento dos elementos), KELEM (matriz de rigidez dos
elementos), VFORCA (vetor de forças dos elementos), KGLOBAL
(matriz de rigidez global da estrutura), VGLOBAL (vetor de
forças global da estrutura), VAPLELEM (vetor de forças
88
aplicadas aos nós da estrutura), DESL (vetor de deslocamentos
da estrutura), RES (variável auxiliar que armazena as condições
de contorno por elemento utilizada para montar a variável
RESTGLOBAL), RESTGLOBAL (vetor global de restrições da
estrutura), UEGLOBAL (variável que guarda os deslocamentos
globais da estrutura por elemento), AUX (variável auxiliar
utilizada no cálculo dos esforços internos da estrutura), EF
(vetor de esforços da estrutura), R (variável auxiliar
utilizada para calcular as reações de apoio da estrutura),
REACAO (vetor global de reações de apoio da estrutura), FMV
(vetor de forças das molas de translação), FMR (vetor de forças
das molas de rotação), KGLOBALC (matriz de rigidez global sem
condições de contorno para cálculo das reações de apoio da
estrutura), VGLOBALC (vetor de forças global sem condições de
contorno para cálculo das reações de apoio da estrutura).
1079 – Fim da sub-rotina 10.
89
1102 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1103 – A variável NI recebe o nó inicial do elemento I.
1104 – A variável NF recebe o nó final do elemento I.
1105 – Calcula o comprimento do elemento finito.
1106 – Fim da sub-rotina 11.
90
Figura 3.6 – Sub-rotina 12.
91
Figura 3.7 – Sub-rotina 13.
92
Figura 3.8 – Sub-rotina 14.
93
1502 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1503 – A variável NI recebe o nó inicial do elemento I.
1504 – A variável NF recebe o nó final do elemento I.
1505-1508 - Faz a incidência da contribuição dos vetores de
forças dos elementos no vetor de forças global da estrutura de
acordo com a Eq. 1.17.
1509 – Fim da sub-rotina 15.
95
1705 – Fim do teste lógico iniciado na linha 1703.
1706 - Verifica se há mola de rotação no nó K. Caso exista, a
linha 1707 faz a incidência da contribuição da rigidez desta
mola na matriz de rigidez global da estrutura na posição
correspondente. Caso não existe no programa não executa este
comando.
1708 – Fim do teste lógico iniciado na linha 1706.
1709 – Fim da sub-rotina 17.
96
1800 – Início da sub-rotina 18.
1801 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1802 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1803-1810 – Estes linhas agrupam as restrições de apoio que
foram armazenadas por tipo e por nó nos elementos.
1811-1818 – Estas linhas agrupam as restrições dos elementos em
um vetor global de restrições da estrutura.
1819 – Início do laço de duas vezes o número de nós da
estrutura que corresponde ao tamanho do sistema de equações.
1820 – Verifica se o nó possui restrição devido aos vínculos de
apoio.
1821 – Se o teste lógico realizado na linha 1820 for verdadeiro
inicia-se o laço que atribui o valor zero para a linha e para a
coluna da matriz de rigidez global nas linhas 1822 e 1823,
respectivamente.
1824 – Fim do laço iniciado na linha 1821.
1825 – Se o teste lógico realizado na linha 1820 for verdadeiro
atribui o valor 1 na diagonal principal da matriz de rigidez
global.
1826 - Se o teste lógico realizado na linha 1820 for verdadeiro
atribui o valor zero na posição correspondente do vetor de
forças global.
1827 – Fim do teste lógico iniciado na linha 1820.
1828 – Fim do laço iniciado na linha 1819.
1829 – Fim da sub-rotina 18.
97
Figura 3.13 – Sub-rotina 19.
98
Figura 3.14 – Sub-rotina 20.
99
Figura 3.15 – Sub-rotina 21.
100
Figura 3.16 – Sub-rotina 22.
101
internos foi acrescentado um sinal negativo nos esforços
relacionados às posições -EF(I,3) e -EF(I,4) para
compatibilização com a Teoria de Vigas.
A sub-rotina pode ser visualizada na Figura 3.17 abaixo.
102
Figura 3.17 – Sub-rotina 23.
103
3.1.17 SUBROTINA AD_01
104
1 SUBROUTINE AD_01
2
3 USE MODULO_1
4 IMPLICIT NONE
5
6 WRITE(*,*) 'UNIVERSITY OF SAO PAULO - USP'
7 WRITE(*,*) 'ENGINEERING SCHOOL OF SAO CARLOS - EESC'
8 WRITE(*,*) 'DEPARTMENT OF STRUCTURAL ENGINEERING - SET'
9 WRITE(*,*) 'APPLICATION OF FINITE ELEMENT METHOD - SET 5824'
10 WRITE(*,*) 'PROFESSOR: JOAO BATISTA PAIVA'
11 WRITE(*,*) 'GRADUATE: >> DATE'
12 WRITE(*,*)
13 WRITE(*,*)
14
15 WRITE(*,*)'PLEASE, INFORM WHICH KIND OF PROBLEM YOU WANT ANALYSE'
16 WRITE(*,*)' TYPE: 1 ->BENDING OF BEAMS'
17 WRITE(*,*)' TYPE: 2 ->INSTABILITY PROBLEMS'
18 READ(*,*)TIPOANALISE
19 IF ((TIPOANALISE .NE. '1') .AND. (TIPOANALISE .NE. '2')) THEN
20 WRITE(*,*)'THERE IS NO THIS OPTION'
21 STOP
22 ENDIF
23
24 END SUBROUTINE AD_01
Figura 3.18 – Sub-rotina AD_01.
105
1 SUBROUTINE AD_02 !MATRIZES DE RIGIDEZ LOCAIS PARA ROTULA
2 USE MODULO_1 !INSERIDAS À ESQUERDA DO ELEMENTO
3 IMPLICIT NONE
4
5 KELEM(I,1,1)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
6 KELEM(I,1,2)=0.D0
7 KELEM(I,1,3)=((-3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
8 KELEM(I,1,4)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**2))
9
10 KELEM(I,2,1)=KELEM(I,1,2)
11 KELEM(I,2,2)=0.D0
12 KELEM(I,2,3)=0.D0
13 KELEM(I,2,4)=0.D0
14
15 KELEM(I,3,1)=KELEM(I,1,3)
16 KELEM(I,3,2)=KELEM(I,2,3)
17 KELEM(I,3,3)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
18 KELEM(I,3,4)=((-3.D0*ELAST(I)*IN(I))/((COMP(I))**2))
19
20 KELEM(I,4,1)=KELEM(I,1,4)
21 KELEM(I,4,2)=KELEM(I,2,4)
22 KELEM(I,4,3)=KELEM(I,3,4)
23 KELEM(I,4,4)=((3.D0*ELAST(I)*IN(I))/(COMP(I)))
24
25 IF(KMB(I)/=0.D0)THEN
26 KELEM(I,1,1)=KELEM(I,1,1)+((33.D0*KMB(I)*COMP(I))/140.D0)
27 KELEM(I,1,2)=KELEM(I,1,2)+0.D0
28 KELEM(I,1,3)=KELEM(I,1,3)+((39.D0*KMB(I)*COMP(I))/280.D0)
29 KELEM(I,1,4)=KELEM(I,1,4)-((11.D0*KMB(I)*(COMP(I)**2))/280.D0)
30
31 KELEM(I,2,1)=KELEM(I,2,1)+0.D0
32 KELEM(I,2,2)=KELEM(I,2,2)+0.D0
33 KELEM(I,2,3)=KELEM(I,2,3)+0.D0
34 KELEM(I,2,4)=KELEM(I,2,4)-0.D0
35
36 KELEM(I,3,1)=KELEM(I,3,1)+((39.D0*KMB(I)*COMP(I))/280.D0)
37 KELEM(I,3,2)=KELEM(I,3,2)+0.D0
38 KELEM(I,3,3)=KELEM(I,3,3)+((17.D0*KMB(I)*COMP(I))/35.D0)
39 KELEM(I,3,4)=KELEM(I,3,4)-((3.D0*KMB(I)*(COMP(I)**2))/35.D0)
40 KELEM(I,4,1)=KELEM(I,4,1)-((11.D0*KMB(I)*(COMP(I)**2))/280.D0)
41 KELEM(I,4,2)=KELEM(I,4,2)-0.D0
42 KELEM(I,4,3)=KELEM(I,4,3)-((3.D0*KMB(I)*(COMP(I)**2))/35.D0)
43 KELEM(I,4,4)=KELEM(I,4,4)+((2.D0*KMB(I)*(COMP(I)**3))/105.D0)
44 END IF
45
46 END SUBROUTINE AD_02
106
3.1.19 SUBROTINA AD_03
108
3.1.21 SUBROTINA AD_05
109
1 SUBROUTINE AD_06
2 USE MODULO_1
3 IMPLICIT NONE
4 WRITE(*,*)
5 WRITE(*,*)'PLEASE, INFORM THE INPUT FILE NAME'
6 READ(*,*)ARQUIVO_1
7 INQUIRE(FILE=ARQUIVO_1,EXIST=EXISTE_ARQUIVO)
8 IF (EXISTE_ARQUIVO) THEN
9 OPEN(UNIT=2,FILE=ARQUIVO_1,STATUS='UNKNOWN')
10 READ(2,*)
11 READ(2,*)
12 READ(2,*)
13 READ(2,*)
14 READ(2,*)
15 READ(2,*)
16 READ(2,*)
17 READ(2,*)NNO,NELEM
18 ALLOCATE(COODX(NNO)); COODX=0.D0
19 ALLOCATE(COODY(NNO)); COODY=0.D0
20 ALLOCATE(RESTX(NNO)); RESTX=0.D0
21 ALLOCATE(RESTY(NNO)); RESTY=0.D0
22 ALLOCATE(RESTZ(NNO)); RESTZ=0.D0
23 ALLOCATE(KMV(NNO));KMV=0.D0
24 ALLOCATE(KMR(NNO));KMR=0.D0
25 ALLOCATE(NOI(NELEM));NOI=0.D0
26 ALLOCATE(NOF(NELEM));NOF=0.D0
27 ALLOCATE(ELAST(NELEM));ELAST=0.D0
28 ALLOCATE(IN(NELEM));IN=0.D0
29 ALLOCATE(KMB(NELEM));KMB=0.D0
30 ALLOCATE(TIPOELEM(NELEM));TIPOELEM=0
31 ALLOCATE(FATORP(NELEM));FATORP=0.D0
32 READ(2,*)
33 READ(2,*)
34 READ(2,*)
35 READ(2,*)
36 READ(2,*)
37 READ(2,*)
38 READ(2,*)
39 READ(2,*)
40 READ(2,*)
41 DO I=1,NNO
42 READ(2,*)K,COODX(K),COODY(K),RESTX(K),RESTY(K),RESTZ(K),
43 *KMV(K),KMR(K)
44 END DO
45 READ(2,*)
110
46 READ(2,*)
47 READ(2,*)
48 READ(2,*)
49 READ(2,*)
50 READ(2,*)
51 READ(2,*)
52 READ(2,*)
53 READ(2,*)
54 READ(2,*)
55 READ(2,*)
56 READ(2,*)
57 READ(2,*)
58 READ(2,*)
59 READ(2,*)
60 READ(2,*)
61 DO I=1,NELEM
62 READ(2,*)M,NOI(M),NOF(M),ELAST(M),IN(M),KMB(M),
63 *TIPOELEM(M),FATORP(M)
64 ENDDO
65 ENDIF
66 CLOSE(2)
67 ALLOCATE(COMP(NELEM));COMP=0.0D0
68 ALLOCATE(KELEM(NELEM,4,4));KELEM=0.D0
69 ALLOCATE(MIELEM(NELEM,4,4));MIELEM=0.D0
70 ALLOCATE(KGLOBAL(2*NNO,2*NNO));KGLOBAL=0.D0
71 ALLOCATE(MIGLOBAL(2*NNO,2*NNO));MIGLOBAL=0.D0
72 ALLOCATE(AUTOVALOR(2*NNO));AUTOVALOR=0.D0
73 ALLOCATE(RES(NELEM,4));RES=0.D0
74 ALLOCATE(RESTGLOBAL(2*NNO));RESTGLOBAL=0.D0
75
76 END SUBROUTINE AD_06
Figura 3.23 – Sub-rotina AD_06.
111
10 a 16 – leituras em branco
17 - lendo numero de nós e elementos
18 a 31 – alocando variáveis
32 a 40 – leitura em branco
41 a 44 – leitura dos dados pertinentes a cada nó
45 a 60 – leitura em branco
61 a 64 – leitura dos dados pertinentes a cada elemento
66 - fechando arquivo de leitura
67 a 74 – alocando variáveis pertinentes
76 – fim da subrotina AD_06
112
1 SUBROUTINE AD_07
2 USE MODULO_1
3 IMPLICIT NONE
4
5 !MATRIZ DE INSTABILIDADE : CASO SEM RÓTULAS
6 MIELEM(I,1,1)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
7 MIELEM(I,1,2)=FATORP(I)*(1.D0/10.D0)
8 MIELEM(I,1,3)=FATORP(I)*(-6.D0/(5.D0*COMP(I)))
9 MIELEM(I,1,4)=FATORP(I)*(1.D0/10.D0)
10
11 MIELEM(I,2,1)=MIELEM(I,1,2)
12 MIELEM(I,2,2)=FATORP(I)*(2.D0*COMP(I)/15.D0)
13 MIELEM(I,2,3)=FATORP(I)*(-1.D0/10.D0)
14 MIELEM(I,2,4)=FATORP(I)*(-1.D0*COMP(I)/30.D0)
15
16 MIELEM(I,3,1)=MIELEM(I,1,3)
17 MIELEM(I,3,2)=MIELEM(I,2,3)
18 MIELEM(I,3,3)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
19 MIELEM(I,3,4)=FATORP(I)*(-1.D0/10.D0)
20
21 MIELEM(I,4,1)=MIELEM(I,1,4)
22 MIELEM(I,4,2)=MIELEM(I,2,4)
23 MIELEM(I,4,3)=MIELEM(I,3,4)
24 MIELEM(I,4,4)=FATORP(I)*(2.D0*COMP(I)/15.D0)
25 ENDSUBROUTINE AD_07
Figura 3.24 – Sub-rotina AD_07.
113
Descrevendo o código (AD_08):
1 SUBROUTINE AD_08
2
3 USE MODULO_1
4 IMPLICIT NONE
5
6 !MATRIZ DE INSTABILIDADE : CASO COM RÓTULA À ESQUERDA
7
8 MIELEM(I,1,1)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
9 MIELEM(I,1,2)=0.D0
10 MIELEM(I,1,3)=FATORP(I)*(-6.D0/(5.D0*COMP(I)))
11 MIELEM(I,1,4)=FATORP(I)*(1.D0/5.D0)
12
13 MIELEM(I,2,1)=MIELEM(I,1,2)
14 MIELEM(I,2,2)=0.D0
15 MIELEM(I,2,3)=0.D0
16 MIELEM(I,2,4)=0.D0
17
18 MIELEM(I,3,1)=MIELEM(I,1,3)
19 MIELEM(I,3,2)=MIELEM(I,2,3)
20 MIELEM(I,3,3)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
21 MIELEM(I,3,4)=FATORP(I)*(-1.D0/5.D0)
22
23 MIELEM(I,4,1)=MIELEM(I,1,4)
24 MIELEM(I,4,2)=MIELEM(I,2,4)
25 MIELEM(I,4,3)=MIELEM(I,3,4)
26 MIELEM(I,4,4)=FATORP(I)*(1.D0*COMP(I)/5.D0)
27
28 END SUBROUTINE AD_08
Figura 3.25 – Sub-rotina AD_08.
114
3.1.25 SUBROTINA AD_09
1 SUBROUTINE AD_09
2 USE MODULO_1
3 IMPLICIT NONE
4 !MATRIZ DE INSTABILIDADE : CASO COM RÓTULA À DIREITA
5
6 MIELEM(I,1,1)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
7 MIELEM(I,1,2)=FATORP(I)*(1.D0/5.D0)
8 MIELEM(I,1,3)=FATORP(I)*(-6.D0/(5.D0*COMP(I)))
9 MIELEM(I,1,4)=0.D0
10
11 MIELEM(I,2,1)=MIELEM(I,1,2)
12 MIELEM(I,2,2)=FATORP(I)*(1.D0*COMP(I)/5.D0)
13 MIELEM(I,2,3)=FATORP(I)*(-1.D0/5.D0)
14 MIELEM(I,2,4)=0.D0
15
16 MIELEM(I,3,1)=MIELEM(I,1,3)
17 MIELEM(I,3,2)=MIELEM(I,2,3)
18 MIELEM(I,3,3)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
19 MIELEM(I,3,4)=0.D0
20
21 MIELEM(I,4,1)=MIELEM(I,1,4)
22 MIELEM(I,4,2)=MIELEM(I,2,4)
23 MIELEM(I,4,3)=MIELEM(I,3,4)
24 MIELEM(I,4,4)=0.D0
25
26 END SUBROUTINE AD_09
115
Figura 3.26 – Sub-rotina AD_09.
116
1 SUBROUTINE AD_10
2 USE MODULO_1
3 IMPLICIT NONE
4 NI=NOI(I)
5 NF=NOF(I)
6
7 MIGLOBAL(2*NI-1,2*NI-1)=MIGLOBAL(2*NI-1,2*NI-1)+MIELEM(I,1,1)
8 MIGLOBAL(2*NI-1,2*NI)=MIGLOBAL(2*NI-1,2*NI)+MIELEM(I,1,2)
9 MIGLOBAL(2*NI-1,2*NF-1)=MIGLOBAL(2*NI-1,2*NF-1)+MIELEM(I,1,3)
10 MIGLOBAL(2*NI-1,2*NF)=MIGLOBAL(2*NI-1,2*NF)+MIELEM(I,1,4)
11
12 MIGLOBAL(2*NI,2*NI-1)=MIGLOBAL(2*NI,2*NI-1)+MIELEM(I,2,1)
13 MIGLOBAL(2*NI,2*NI)=MIGLOBAL(2*NI,2*NI)+MIELEM(I,2,2)
14 MIGLOBAL(2*NI,2*NF-1)=MIGLOBAL(2*NI,2*NF-1)+MIELEM(I,2,3)
15 MIGLOBAL(2*NI,2*NF)=MIGLOBAL(2*NI,2*NF)+MIELEM(I,2,4)
16
17 MIGLOBAL(2*NF-1,2*NI-1)=MIGLOBAL(2*NF-1,2*NI-1)+MIELEM(I,3,1)
18 MIGLOBAL(2*NF-1,2*NI)=MIGLOBAL(2*NF-1,2*NI)+MIELEM(I,3,2)
19 MIGLOBAL(2*NF-1,2*NF-1)=MIGLOBAL(2*NF-1,2*NF-1)+MIELEM(I,3,3)
20 MIGLOBAL(2*NF-1,2*NF)=MIGLOBAL(2*NF-1,2*NF)+MIELEM(I,3,4)
21
22 MIGLOBAL(2*NF,2*NI-1)=MIGLOBAL(2*NF,2*NI-1)+MIELEM(I,4,1)
23 MIGLOBAL(2*NF,2*NI)=MIGLOBAL(2*NF,2*NI)+MIELEM(I,4,2)
24 MIGLOBAL(2*NF,2*NF-1)=MIGLOBAL(2*NF,2*NF-1)+MIELEM(I,4,3)
25 MIGLOBAL(2*NF,2*NF)=MIGLOBAL(2*NF,2*NF)+MIELEM(I,4,4)
26
27 ENDSUBROUTINE AD_10
Figura 3.27 – Sub-rotina AD_10.
117
1 SUBROUTINE AD_11
2 USE MODULO_1
3 IMPLICIT NONE
4
5 DO I=1,NELEM
6 NI=NOI(I)
7 NF=NOF(I)
8 RES(I,1)=RESTY(NI)
9 RES(I,2)=RESTZ(NI)
10 RES(I,3)=RESTY(NF)
11 RES(I,4)=RESTZ(NF)
12 ENDDO
13 DO I=1,NELEM
14 NI=NOI(I)
15 NF=NOF(I)
16 RESTGLOBAL(2*NI-1)=RES(I,1)
17 RESTGLOBAL(2*NI)=RES(I,2)
18 RESTGLOBAL(2*NF-1)=RES(I,3)
19 RESTGLOBAL(2*NF)=RES(I,4)
20 ENDDO
21
22 DO I=1,2*NNO
23 IF (RESTGLOBAL(I)==1) THEN
24 DO J=1,2*NNO
25 KGLOBAL(I,J)=0
26 KGLOBAL(J,I)=0
27 MIGLOBAL(I,J)=0
28 MIGLOBAL(J,I)=0
29 ENDDO
30 KGLOBAL(I,I)=1
31 MIGLOBAL(I,I)=1
32 ENDIF
33 ENDDO
34 ENDSUBROUTINE AD_11
Figura 3.28 – Sub-rotina AD_11.
1 SUBROUTINE AD_12
2 USE MODULO_1
3 IMPLICIT NONE
4 CALL DGVLSP (2*NNO, KGLOBAL, 2*NNO, MIGLOBAL, 2*NNO, AUTOVALOR)
5
6 END SUBROUTINE AD_12
Figura 3.29 – Sub-rotina AD_12.
119
pela sub-rotina AD_12, sendo este o correspondente ao primeiro
modo de flambagem. Além disso, a sub-rotina AD_13 também faz a
impressão do resultado via tela para o usuário.
120
1 SUBROUTINE AD_13
2 USE MODULO_1
3 IMPLICIT NONE
4
5 INTEGER:: NRESTGLOBAL=0,CONTADOR=1
6 REAL*8::TOLERANCIA,MENORVALOR
7 DO I=1,2*NNO
8 IF (RESTGLOBAL(I)==1) THEN
9 NRESTGLOBAL=NRESTGLOBAL+1
10 ENDIF
11 ENDDO
12
13 MENORVALOR=100000000000000000
14
15 DO I=1,2*NNO
16 IF ((AUTOVALOR(I).GE.0.D0) .AND. (AUTOVALOR(I) .LE.
17 *MENORVALOR)) THEN
18 TOLERANCIA=ABS(AUTOVALOR(I)-1.0D0)
19 IF ((TOLERANCIA .LE. 1.0d0*10**(-8)).AND.(CONTADOR .LE.
20 *NRESTGLOBAL)) THEN
21 CONTADOR= CONTADOR+1
22 ELSE
23 MENORVALOR=AUTOVALOR(I)
24 ENDIF
25 ENDIF
26 ENDDO
27
28 WRITE(*,*)
29 WRITE(*,*)
30 WRITE(*,*)'THE ANALYSIS IS DONE'
31 WRITE(*,*)'CRITICAL LOAD', MENORVALOR
32
33 END SUBROUTINE AD_13
121
3.2 Exemplos
3.2.1 Exemplo 01
E=2.5 E+06
I=4.5 E-03
122
Para processar o exemplo basta abrir o programa e escolher
a análise do tipo 1. Em seguida digite o nome do arquivo que
contem a entrada de dados. Ao ser executado, o programa gera um
arquivo de nome RESULTADO_nome_do_arquivo que contém as
respostas esperadas. A Figura 3.33 ilustra o resultado do
exemplo acima.
123
3.2.2 Exemplo 02
E=2.5 E+06
I=4.5 E-03
124
Figura 3.36 - Dados de saída do Exemplo 02
3.2.3 Exemplo 03
125
E=2.5 E+06
I=4.5 E-03
126
Figura 3.39 - Dados de saída do Exemplo 03
Os resultados apresentados pelo programa FTOOL foram os mesmos.
3.2.4 Exemplo 04
127
Figura 3.40 - Exemplos de fatores de carga
E=2.5 E+06
I=4.5 E-03
128
Figura 3.42 - Dados de entrada do Exemplo 04
129
4. REFERÊNCIAS BIBLIOGRÁFICAS
130
SORIANO, H. L. (2003), “Método de Elementos Finitos em
Análise de Estruturas”, São Paulo: Editora da Universidade de
São Paulo, 580 p.
131