Você está na página 1de 31
mo: (C---- UNIVERSIDADE DE BRASILIA C---- DEPARTAMENTO DE ENGENHARIA CIVIL (---- MESTRADO EM ESTRUTURAS (n= C---- METODO DOS ELEMENTOS FINITOS hg ghT Ce, a lade Ce i * ANALISE ESTATICA LINEAR * * estapo pra vz texsko x veronsacko + * METODO DOS ELEMENTOS FINITOS * . RETANGULO DE 4 NOS C/ INTEGRAGRO * NuMERICA * (*** Prof. Paul Partridge ***) * : anna jPesessig suauaniaay C---- *## PROGRAMA PRINCIPAL *** EF1 COMMON NN,NE,NNE,NDF,NL,NC,MS, IO, IN,NLS COMMON /C1/X (300) , ¥(300) ,CON(300, 4) ,AL(60,3) ,CN(60,3) , PE(300,3) COMMON /C2 /TK (300,50) ,P(300) ,TXX(300) , TYY (300) , TXY¥(300) COMMON/C3/ELAST (8 , 8) , EXX(300) , EY¥(300) , EXY (300) COMMON/C4 /EE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON CHARACTER*10 FILEIN, FILEOUT - PARAMETROS DE INICIALIZACAO DO PROGRAMA NUMERO DE NOS NUMERO DE ELEMENTOS NUMERO DE NOS NO ELEMENTO NUMERO DE GRAUS DE LIBERDADE DE CADA NO NUMERO DE LADOS CARREGADOS NUMERO DE CONDICOES DE CONTORNO NUMERO DE CARGAS NODAIS MODULO DE ELASTICIDADE NW NE NNE NDF NLS NC NL EE ce COEFICIENTE DE POISSON FCX FORCA DE CORPO DIRECAO X FCY FORCA DE CORPO DIRECAO Y¥ ESP ESPESSURA N NN*NDF MS SEMI-LARGURA DE BANDA X(NN) = ARRAY UNIDIMENSIONAL DAS COORDENADAS X Y(NN) = ARRAY UNIDIMENSIONAL DAS COORDENADAS Y CON(NE,NNE) = CONETIVIDADE DOS ELEMENTOS AL(NL, 3) = CARGAS APLICADAS CN(NC, 3) = CONDICOES DE CONTORNO PE(NLS, 3) = CARREGAMENTOS EM LADOS DE ELEMENTOS ‘TK(N,MS) = MATRIZ DE RIGIDEZ DA ESTRUTURA ELAST(8,8) | = MATRIZ DE RIGIDEZ DO ELEMENTO DESCONEXO EXX (NEL) = DEFORMACOES NODAIS NO ELEMENTO NA DIR.-X EYY (NEL) = DEFORMACOES NODAIS NO ELEMENTO NA DIR.-¥ EXY (NEL) = DEFORMACOES NODAIS NO ELEMENTO NA DIR. -XY¥ TXX (NEL) = TENSOES NODAIS NO ELEMENTO NA DIR.-X NP e2A9NAAAAANRAAAAAAAAAAAAAAAAA ‘TYY (NEL) = TENSOES NODAIS NO ELEMENTO NA DIR.-¥ ‘TxY (NEL) = TENSOES NODAIS NO ELEMENTO NA DIR.-XY P(N) = VETOR CARGA NOS NOS aaa NUMEROS PARA OS CANAIS DE ENTRADA (IN) E SAIDA(IO) DE DADOS IN=8 To=4 © NOMES DOS ARQUIVOS DE ENTRADA E SAIDA DEFINIDOS "ON LINE" WRITE(*,’ (A\) ‘) ‘ NOME ARQU. ENTRAD. DE DADOS ? (MAX 10 CHAR)‘ READ(*,’ (A) ‘)PILEIN OPEN (IN, FILE-FILEIN, STATUS=" OLD’) WRITE(*,’ (A\) ’) ’ NOME ARQ. PARA SAIDA DADOS ? (MAX 10 CHAR)‘ READ(#*,’ (A) ‘)FILEOUT OPEN (IO, FILE=FILEOUT , STATUS='NEW’ ) © LEITURA DOS DADOS DE ENTRADA DA ESTRUTURA CALL INPUT © MONTAGEM DA MATRIZ DE RIGIDEZ DA ESTRUTURA CALL ASSEM © INTRODUCAO DAS CONDICOES DE CONTORNO CALL BOUND © SOLUCAO DO SISTEMA DE EQUACOES CALL SLBSI © CALCULO DOS ESFORCOS NOS ELEMENTOS CALL FORCE SAIDA DOS DADOS DA ANALISE ESTATICA LINEAR CALL OUTPUT STOP END ‘#** SUBROTINA PARA ENTRADA DE DADOS DA ESTRUTURA *** aoa SUBROUTINE INPUT COMMON NN,NE,NNE,NDF,NL,NC,MS, IO, IN,NLS COMMON/C1/X(300) ,¥(300) ,CON(300, 4) ,AL(60,3) ,CN(60, 3) , PE(300,3) COMMON /C2/TK (300,50) ,P(300) , TXX(300) , TY¥ (300) , TXY (300) COMMON /C3/ELAST (8,8) , EXX (300) , EYY (300) , EXY (300) COMMON /C4/EE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON READ(IN, 100) NN,NE,NDF,MS,NNE,NL,NC,NLS 100 FORMAT(8I4) WRITE(IO, 157) 157. FORMAT (’ DADOS INTERNOS! , 3X,58(/*/),/) WRITE(IO,101) NN 101 FORMAT(’ NUMERO DE NOS... ee ee ee ee et tt Phe TA) WRITE(IO,102) NE 102 FORMAT(’ NUMERO DE ELEMENTOS .. . + + + + + s+ + +#7eT4) WRITE(IO,103) NDF 103 FORMAT(’ GRAUS DE LIBERDADE PORNO. . - ++ + + + + +#%/T4) WRITE(IO,104) MS 104 FORMAT(’ SEMI LARGURA DE BANDA. - - +--+ + + + + +? /sT4) WRITE(IO,105) NNE 105 FORMAT(’ NUMERO DE NOS POR ELEMENTO. . - +--+ + + ?/,T4) WRITE(IO,106) NL 106 FORMAT(’ NUMERO DE CARREGAMENTOS . . + + + + + + + + +?7,TA) WRITE(I0,107) NC 107 FORMAT(’ NUMERO DE CONDICOES DE CONTORNO. . - + + + -?/,TA) WRITE(IO,108) NLS 108 FORMAT (’ NUMERO DE LADOS COM CARREG. DISTRIB. . - - + :’,14,//) WRITE(I0, 199) 199 FORMAT(’ CARACTERISTICAS MECANICAS E GEOMETRICAS’, 3X, 33(’*'),/) READ(IN,110) EE,CP, ESP, FCX,FCY,ITD 110 FORMAT(2F15.5,3F7.3,13) WRITE(I0,111) EE 111 FORMAT(’ MODULO DE ELASTICIDADE . . «+ + + + + + + + #/sFi2-2) WRITE(IO,112) CP 112 FORMAT(’ COEFICIENTE DE POISSON. . + ++ ++ + + + + #/sF12-2) WRITE(IO,113) ESP 113° FORMAT(’ ESPESSURA. . eee eee ee eet 112.2) WRITE(IO,114) FCX,FCY 114 FORMAT(‘ FORCAS DE CORPO . . . . : DIRECAO X . -=/,F7.3, #¢ DIRECAO Y . .=!,F7.3) IF(ITD.EQ.0)GOTO 119 WRITE(IO, 115) 115 FORMAT(///,10X,/######4# ESTADOS PLANOS DE DEFORMACOES = ******* eet isitt P E E1/(1.-CP1*CP1) cP=cP1/(1.-CP1) Go TO 120 119 WRITE(IO, 116) 116 FORMAT(///,15X,/####### ESTADOS PLANOS DE TENSOES *#####**/ *111) 120 CONTINUE © CONSTANTES GLOBAIS © COORDENADAS DOS NOS Do 1 I=1,NN READ(IN,10) X(I),¥(I) 10 FORMAT(2F8.2) 1 CONTINUE c WRITE(IO, 11) DO 12 I=1,NN WRITE(IO,13) X(I),¥(I) FORMAT(//// COORDENADAS NODAIS /,3X,54(1*/),//,10X,/X!,14X,/¥") 33 13° FORMAT(5X,F8.2,7X,F8.2) 12 CONTINUE c © CONETIVIDADE DOS ELEMENTOS c Do 2 I= 1,NE READ(IN,20) (CON(I,J) ,J=1,NNE) 20 © FORMAT(414) 2 CONTINUE, c WRITE(IO, 21) 21 FORMAT(///‘ CONETIVIDADE DOS ELEMENTOS’,42(/*"),//,/ ELEMENTO’ *,3X,/No1 No 2 No 3 No 4’) DO 22 I=1,NE WRITE(IO,23) I,CON(I,1) ,CON(I,2) ,CON(I,3) ,CON(I,4) 23° FORMAT (2X, 13, 5X, 15, 2X, 15, 2X, 15, 2X, 15) 22 CONTINUE c © CARGAS NODAIS c “ ¢ AL(I,1) NO © AL(I,2) DIRECAO 1=K 2=¥ © AL(I,3) VALOR 2 POSITIVO OU NEGATIVO c IF(NL.EQ.0)GO To 45 Do 3 I=1,NL READ(IN,30) AL(I,1),AL(I,2) ,AL(I,3) 30 FORMAT(3F7.2) 3 CONTINUE c WRITE(IO,31) 31 FORMAT(///’ CARGAS NODAIS’,3X,55(‘*"),//,’ CARGA NO DIRECAO * VALOR’) c Do 32 I=1,NL WRITE (IO,33)I,AL(I,1) ,AL(I,2) ,AL(I,3) FORMAT (/,2X,13,3X,F5.0,4X,F5.0, 5X, F12.2) 32 CONTINUE 45 CONTINUE c © CONDICOES DE CONTORNO NODAIS. c C NO/DIRECAO/VALOR = SEMELHANTE A CARGAS APLICADAS 40 4 c 4 c 43 42 Do 4 I=1,Nc READ(IN, 40) CN(I,1),CN(I,2) ,CN(I,3) FORMAT (3F7.2) CONTINUE WRITE(IO, 41) FORMAT(///,‘ CONDICOES DE CONTORNO NODAIS!,3X,40('#"),//," COND. * NO DIRECAO VALOR ‘) DO 42 I=1,NCc WRITE(IO, 43)I,CN(I,1) ,CN(I,2) ,CN(I,3) FORMAT (1X, 13, 6X, F5.0,7X,F5.0,7X,F5.2) CONTINUE a aaaa CARREGAMENTO NOS LADOS DO ELEMENTOS PE(I,1)=NUMERO DO ELEMENTO PE(I,2)=LADO CARREGADO PE(I,3)=VALOR DA CARGA OBS: ESTAS FORCAS SAO APLICADAS NORMAIS AO RESPETIVO LADO © INWARD NORMAL +, OUTWARD NORMAL ~ 53 52 666 IF(NLS.EQ.0)GOTO 666 Do 5 I=1,NLS READ(IN,50) PE(I,1),PE(I,2) ,PE(I,3) FORMAT (3F7.3) CONTINUE WRITE(IO,51) FORMAT(//‘ ELEMENTOS COM CARGAS NOS LADOS ‘,//’ NUMERO LADO ——- CARREGAMENTO* ) DO 52 I=1,NLS WRITE (IO, 53) I,PE(I,1) ,PE(I,2) ,PE(I,3) FORMAT (2X, 13,6X,P5.0, 6X, F5.0,6X,F11.5) CONTINUE CONTINUE ELEMENTO CALCULO DA SEMI-LARGURA DE BANDA PARA ELEMENTOS COM QUATRO NOS 97 196 197 296 297 396 397 496 497 596 597 99 98 186 187 Msi=0 DO 99 I=1,NE LA=ABS(CON(I,1)-CON(I,2)) L2=ABS(CON(I,1)-CON(I,3)) L3=ABS(CON(I,1)-CON(I,4)) L4=ABS(CON(I,2)-CON(I,3)) LS=ABS(CON(I,2)-CON(I,4)) L6=ABS(CON(I,3)-CON(I,4)) IF(MS1-L1) 97,97,196 MS1=L1 IF(MS1-L2) 197,197,296 MS1=L2 IF(MS1-L3) 297,297,396 MS1=L3 IF(MS1-L4) 397,397,496 MS1=L4 IF(MS1-L5) 497,497,596 MS1=L5 IF(MS1-L6) 597,597,99 MS1=L6 CONTINUE MS1=NDF* (MS1+1) IF(MS.LT.MS1) GO TO 186 MS=MS1 WRITE(IO, 98) MS FORMAT(////,’ SEMI-LARGURA DE BANDA = ** ‘,I3,/ *#',/) RETURN WRITE(IO,98)MS WRITE (IO, 187) FORMAT(’ LARGURA DE BANDA MAIOR QUE MATRIZ‘) eanana aaaaan aa 10 c STOP END #* SUBROTINA PARA MOTAGEM DA MATRIZ DE RIGIDEZ DA ESTRUTURA *** ate SUBROUTINE ASSEM E O VETOR DE CARGAS COMMON NN, NE, NNE,NDF,NL,NC,MS, IO, IN,NLS COMMON /C1/X (300) , ¥(300) ,CON(300, 4) ,AL(60,3) ,CN(60,3) ,PE(300,3) COMMON /C2/TK (300, 50) , P(300) , TXX(300) , TY¥ (300) , TX¥ (300) COMMON /C3/ELAST (8 , 8) , EXX(300) , EYY(300) , EXY(300) COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON NeNDF*NN A MATRIZ GLOBAL DE RIGIDEZ TEM DIMENSOES MINIMAS (N,MS) ZERAR VETOR DE CARGAS P E MATRIZ GLOBAL TK Do 10 I=1,N P(I)=0 DO 10 J=1,MS TK(I,J)=0 CONTINUE C MONTAGEM DA MATRIZ GLOBAL c 20 c DO 20 NEL=1,NE CALL STIFF (NEL) CALL ELASS (NEL) CONTINUE MONTAGEM DO VETOR DE CARGAS c 30 c © ween-------- Do 30 I=1,NL NNQ=IFIX(AL(I,1)) Ni=(NNQ-1) *NDF N1=N1+IFIX(AL(I,2)) P(N1)=P(N1) +AL(I, 3) CONTINUE. RETURN END ¢ *## SUBROTINA PARA MOTAGEM DA MATRIZ DE RIGIDEZ DE CADA ELEMENTO *** c c SUBROUTINE STIFF (NEL) COMMON NN,NE,NNE,NDF,NL,NC,MS, 10, IN,NLS COMMON /C1/X (300) ,¥ (300) , CON (300, 4) ,AL(60, 3) ,CN(60,3) , PE(300,3) COMMON /C2/'TK (300,50) ,P(300) , TXX(300) , TYY(300) , TX¥ (300) COMMON/C3/ELAST (8,8) , EXX(300) , EYY (300) , EX¥(300) COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY REAL DPX(4) ,DPY (4) REAL*4 PI(2),FP(2) a INTEGER CON y ae 7 PI(1)= 1./(SORT(3-) oo FP(1)= 7h N PI(2)= Pol FP(2)= BY DO 166 I=1,NNE*NDF DO 166 J=1,NNE*NDF ELAST(I,J)=0. 166 © CONTINUE c © NO INICIO E NO FIM DO ELEMENTO "NEL" c N1=CON (NEL, 1) N2=CON (NEL, 2) N3=CON (NEL, 3) N4=CON (NEL, 4) © CALCULO DA SEMI-LARGURA E ALTURA DO ELEMENTO A=SQRT( (X(N2)-X(N1))##2 + (¥(N2)-¥ (NL) )*#2)/2- B=SQRT( (X(N4)-X(N1))*#2 + (¥(N4)-¥(N1)) ##2)/2- © CALCULO DA AREA AB=A‘B c C VEREFIQUE QUE NAO E ZERO c IF(AB.NE.0)GOTO 666 WRITE(IO, 667) NEL 667 FORMAT (’ ERRO DE CONETIVIDADE/COORDENADAS ELEMENTO’,I4, ** AREA CALCULADA COMO ZERO‘) STOP 666 | CONTINUE c ¢ i po 100 11%=1,2- 9 R/ E=PI (III) WE=FP(III) \ Do 100 ggJ=1,2-Y T=PI (III) WI=FP (333) DPY(1)==(1-E) / (4*B) DPY(2)=-(1+E) / (4*B) DPY(3)=(1+E) /(4*B) c © CALCULAR A MATRIZ K PARA UM ELEMENTO c DD=EE*ESP/ (1.-CP*CP) *AB*WE*HT cC=(1.-CP) /2. c DPY(4)=(1-E) /(4*B) DPX(1)=-(1-T) / (4*A) DPX(2)=(1-T) / (4*A) DPX (3)=(1#T) / (4*A) DPX (4)==(1+T) /(4*A) DO 30 I=1,NNE II=(I-1) *NDF DO 30 J=1,NNE IJJ=(J-1) *NDF T1=1I+1 I2=1I+2 J1=TI+1 J2=II+2 ELAST(I1,J1)=ELAST(I1,J1) +0! ELAST (I2,J1)=ELAST (12,1) +DI D* (DPX (I) #DPX (J) +CC*DPY (I) *DPY (J) ) D* (CP*DPX (J) *DPY (I) +CC*DPX (I) *DPY (J) ) ELAST(I1,J2) =ELAST(I1,J2)+DD* (CP*DPX (I) #DPY (J) +CC*DPX(J) #DPY (I) ) ELAST (12,J2)=ELAST (I2,J2) +DD* (DPY (I) *DPY (J) +CC*DPX (I) *DPX(J)) 30 © CONTINUE 100 CONTINUE c COMPUTAR VETOR DEVIDO A FORCAS NOS LADOS DO ELEMENTO c OBS: NAO USA INTEGRACAO NUMERICA IF (NLS.EQ.0)GOTO 67 Do 66 I=1,NLS IEL=IFIX(PE(I,1)) IF(IEL.NE.NEL)GO TO 66 IL=IFIX(PE(I,2)) IF(IL.NE.1)GOTO 29 CO = X(N4)-X(N2) ST = ¥(N4)-¥(N2) PDY = -PE(I,3)*CO*ESP/2.0 PDX = PE(I,3)#SI*ESP/2.0 P( (N4=1) #NDF+1) =P ( (N4~1) *NDF+1) +PDX P((N4-1) *NDF+2) =P ( (N4—1) *NDF+2) +PDY P((N1-1) *NDF+1) =P ( (N11) *NDF+1) +PDX P((N1=1) *NDF+2) =P ((N1-1) *NDF+2) +PDY GO TO 65 29 © CONTINUE IF(IL.NE.2)GOTO 28 CO = X(N2)-X(N1) SI = ¥(N2)-¥(N1) PDY = -PE(I,3)*CO*ESP/2.0 PDX = PE(I,3)*SI*ESP/2.0 P( (N2-1) *NDF+1) =P( (N2~1) *NDF+1) +PDX B((N2-1) *NDF+2) =P ( (N2-1) #NDF+2) +PDY P((N1=1) *NDF+1) =P( (N1-1) *NDF+1) +PDX P((N=1) #NDF+2) =P ( (N1-1) #NDF+2) +PDY Go To 65 , 28 CONTINUE IF(IL.NE.3)GOTO 27 CO = X(N3)-X(N2) SI = ¥(N3)-¥(N2) PDY = -PE(I,3)*CO*ESP/2.0 PDX = PE(I,3)*SI*ESP/2.0 P((N3-1) *NDF+1) =P ( (N3-1) *NDF+1) +PDX P((N3-1) #NDF+2) =P ( (N3-1) *NDF+2) +PDY P( (N21) #NDF+1) =P ( (N2~1) *NDF+1) +PDX P((N2-1) *NDF+2) =P ( (N2-1) *NDF+2) +PDY GO TO 65 27 © CONTINUE IF(IL.NE.4)GOTO 65 CO = X(N4)-X(N3) SI = ¥(N4)-¥(N3) PDY =-PE(I,3) *CO*ESP/2.0 PDX = PE(I,3)*SI*ESP/2.0 ‘ P((N4=1) #NDF+1) =P ( (N4-1) *NDF+1) +PDX P((N4—1) #NDF+2) =P ( (N4-1) *NDF+2) +PDY P((N3~1) *NDF+1) =P ( (N3-1) *NDF+1) +PDX P( (N31) *NDF+2) =P ( (N3-1) *NDF+2) +PDY 65 CONTINUE 66 CONTINUE 67 CONTINUE re COMPUTAR VETOR DEVIDO A FORCAS DE CORPO c OBS: NAO USA INTEGRACAO NUMERICA P( (N1-1) *NDF+1) =P ( (N1-1) *NDF+1) +A*ESP*FCX/4. P((N1-1) #NDF+2) =P ( (N1-1) *NDF+2) +A*ESP*FCY/4. P((N2-1) *NDF+1) =P ( (N21) *NDF+1) +A*ESP*FCX/4. P( (N21) *NDF+2) =P ((N2-1) *NDF+2) +A*ESP*FCY/4. P((N3-1) *NDF+1) =P ((N3-1) *NDF+1) +A*ESP*FCX/4. : P((N3-1) #NDF+2) =P ((N3-1) *NDF+2) +A*ESP*FCY/4. P( (N41) *NDF+1) =P ( (N4~1) *NDF+1) +A*ESP*FCX/4. P((N4-1) #NDF+2)=P( (N4-1) *NDF+2) +A*ESP*FCY/4. RETURN END SUBROTINA PARA VALORES DA MATRIZ DE RIGIDEZ GLOBAL ESTRU *** TURA A PARTIR DA MATRIZ DE RIGIDEZ DOS ELEMENTOS wee ! SUBROUTINE ELASS(NEL) : COMMON NN,NE,NNE, NDF,NL,NC,MS, IO, IN, NLS ’ COMMON/C1/X (300) ,¥(300) , CON(300, 4) ,AL(60, 3) ,CN(60,3) , PE(300,3) COMMON/C2/TK (300, 50) ,P(300) , TXX(300) , TYY (300) , TXY(300) COMMON/C3/ELAST (8 , 8) , EXX(300) , EYY (300) , EXY (300) COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY : INTEGER CON DO 50 I=1,NNE N1=CON (NEL, I) I1=NDF* (I-21) I2=NDF* (N1-1) aanaana 110 100 DO 50 J=1,NNE N2=CON (NEL, J) J1=NDF* (J-1) J2=NDF* (N2-1) DO 50 K=1,NDF KP=11+K KQ=12+K DO 50 L#1,NDF Legit LQ=J2+L LQ=1Q-KQ+1 IF(LQ.LT.1) GO TO 50 ‘TK (KQ, LQ) =TK (KQ, LQ) +ELAST (KP, LP) CONTINUE RETURN END SUBROTINA QUE INTRODUZ AS CONDICOES DE CONTORNO *** DA ESTRUTURA tae SUBROUTINE BOUND COMMON NN,NE,NNE,NDF,NL,NC,MS, 10, IN, NLS COMMON/C1/X (300) ,¥ (300) ,CON(300, 4) ,AL(60,3) , CN (60,3) ,PE(300,3) COMMON/C2/TK(300,50) ,P(300) , TXX(300) , TYY (300) , TXY (300) COMMON/C3/ELAST (8,8) , EXX(300) , EYY (300) , EX¥(300) COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON NeNDF*NN DO 100 I=1,NC NO=IFIX(CN(I,1)) K1=NDF*(NO-1) +IFIX(CN(I,2)) DO 110 J=2,MS IP=K1-J+1 IF(IP.LE.0) GO TO 5 P(IP)=P(IP)~TK(IP,J) *CN(I,3) TK(IP,J)=0 CONTINUE IPSKiH-1 IF(IP.GT.N) GO TO 110 P(IP)=P(IP) -TK(K1,J)*CN(I,3) TK(K1,3)=0 CONTINUE TK(K1,1)=1 P(K1)=CN(I,3) CONTINUE RETURN END c € eeeeeee---------=---: C *## SUBROTINA QUE INTRODUZ AS CONDICOES DE CONTORNO *** C tee DA ESTRUTURA tee c seasiets c SUBROUTINE SLBSI COMMON NN,NE,NNE,NDF,NL,NC,MS, IO, IN, NLS COMMON /C2/TK (300,50) ,P(300) , TXX(300) , TY¥ (300) ,TX¥(300) DIMENSION D(200) N=NDF*NN NI=N-1 DO 100 K=: C=TK(K, 1) K1=K+1 IF(ABS(C)-0.000001)1,1,3 NL 1 WRITE (IO, 2)K 2 FORMAT(‘ SINGULARIDADE: FILEIRA ‘,15) GoTo 300 3 NI=K1+MS-2 LeNI IP(N.LT.NI)L=N Do 11 J=2,MS 11: D(S)=TK(K,J) DO 4 J=K1,L K2=J-K+1. 4 ‘TK (K, K2) =TK(K,K2) /C P(K)=P(K) /C DO 10 I=K1,L K2=I-K1+2 (C=D(K2) Do 5 J=I,L K2=J-I+1 K3=J-K+1 5 ‘TK(I,K2)=TK(I,K2)- C*TK(K,K3) 10 © P(I)=P(I) -C*P(K) 100 CONTINUE IP(ABS(TK(N, 1) )-0.000001) 1001, 1001, 102 1001 WRITE(IO, 4444) 4444 FORMAT(’ SINGULARIDADE’ ) ‘STOP 101 P(N) =P(N) /TK(N, 1) DO 200 I=1,N1 KeN-I K1=K+1 NI=K1+MS-2 L=NI IF(N.LT.NI)L=N DO 200 J=K1,L K2=J-K+1 200 © P(K)=P(K) -TK(K, K2) *P(J) 300 RETURN c RETRO-SUBSTITUCAO END C tee CALCULO DOS ESFORCOS NOS ELEMENTOS tae SUBROUTINE FORCE COMMON NN,NE,NNE,NDF,NL,NC,MS, IO, IN,NLS COMMON /C1/X(300) ,¥(300) , CON (300, 4) ,AL(60,3) ,CN(60,3) , PE(300,3) COMMON /C2/TK(300,50) , P(300) , TXX (300) , TYY (300) , TXY(300) COMMON/C3/ELAST (8,8) , EXX(300) , EY¥(300) , EXY (300) COMMON /C4/EE, CP, ESP, FCX, FCY, PDX, PDY REAL U(4) ,V(4) INTEGER CON DEFINE A MATRIZ "D" DA RELACAO CONSTITUTIVA ELASTICA LINEAR DO MATERIAL E/ (1-CP*#2) 11*CP 11*((1.-CP) /2.) RECUPERA OS NOS DE CADA ELEMENTO DA MALHA DISCRETIZADA DO 100 NEL=1,NE N1=CON(NEL, 1) ~ N2=CON(NEL, 2) N3=CON (NEL, 3) ‘ N4=CON(NEL, 4) C-=-- CALCULA A SEMI-LARGURA/ALTURA DE CADA ELEMENTO A=SQRT( (X(N2)-X(N1))*#2 + (¥(N2)-¥(N1)) ##2) /2. B=SQRT( (X(N4)-X(N1))**2 + (¥(N4)-¥(NL))*#2) /2. RECUPERA OS DESLOCAMENTOS NODAIS DE CADA ELEMENTO, CALCULADOS NA SUBROTINA "SLBS: U(1)=P(N1*NDF-1) U(2)=P(N2*NDF-1) U(3)=P(N3*NDF-1) U(4)=P(N4*NDF-1) V(1)=P(N1*NDF) ‘V(2)=P(N2*NDF) if V(3)=P(N3*NDF) V(4)=P(N4*NDF) (1-E) / (4*B) (14) / (4*B) (1+E) / (4*B) DPY4= (1-E)/(4*B) — on 100 ate tee aaaaan 1 nl a DPX1=-(1-T) / (4*A) DPX2= (1-T)/(4*A) DPX3= (1+T) /(4*A) DPX4=-(14T) /(4*A) CALCULA AS DEFORMACOES "EXX" , "EYY" , "EXY" NO ELEMENTO EXX (NEL) =DPX1#U (1) +DPX2*U (2) +DPX3*U(3) +DPX44*U(4) EYY (NEL) =DPY1*V (1) +DP¥2*V(2) +DPY3*V (3) +DPY4*V(4) EXY (NEL) =DPY1*U (1) +DP¥2#U(2) +DPY3*U(3) +DP¥4*U(4) +DPX1*V(1) +DPX2* #V(2) +DPX3*V (3) +DPX4*V(4) CALCULA AS TENSOES wpxx" , "Ty" , "TX¥" NO ELEMENTO ‘TXX (NEL) =EXX (NEL) *#D11+EY¥ (NEL) #D12 ‘TYY (NEL) =EXX (NEL) *D12+EYY (NEL) #D11 ‘TXY (NEL) =EXY (NEL) *D33 CONTINUE RETURN END IMPRIME EM ARQUIVO OS DESLOCAMENTOS NODAIS, REA *** COES DE APOIO E ESFORCOS AXIAIS NOS ELEMENTOS *** SUBROUTINE OUTPUT COMMON NN,NE,NNE,NDF,NL,NC,MS, 10, IN,NLS COMMON/C1/X(300) , ¥(300) , CON (300, 4) ,AL(60,3) ,CN(60, 3) , PE(300,3) COMMON/C2/TK (300,50) ,P(300) , TXX(300) , TYY (300) , TXY (300) COMMON/C3/ELAST (8,8) , EXX(300) , EYY (300) , EX¥(300) COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON WRITE (IO, 1) FORMAT(///’ DESLOCAMENTOS NODAIS’ ,3X,49('*") s/s! ” ux vy’) Do 10 I=1, NN IX=2*I-1 1¥=241 WRITE(IO,11) I,P(IX),P(I¥) FORMAT (I5, 3X, 2F10.5) CONTINUE No’ DEFORMACOES/TENSOES CENTRO WRITE(IO,8) FORMAT(///" DEFORMACAO NO CENTRO DE CADA ELEMENTO’,3X,37(/*')¢//+ #X, "ELEMENTO’ , 15X, ’ EXX’, 13X, "EYY!, 13X, EXY’) 9 40 123 127 50 DO 40 NEL=1,NE WRITE(IO, 9) NEL, EXX (NEL) , EXY (NEL) , EXY (NEL) FORMAT (3X, 14, 9X,F15.4,1X,F15.4,1X,F15-4) CONTINUE WRITE(IO, 123) FORMAT(///‘ TENSAO NO CENTRO DE CADA, ELEMENTO’ ,3X,40(/*/) ,//,2X, 4 ELEMENTO! , 15X, /TXX! ,13X, /TYY! ,13X, /TXY") DO 50 NEL=1,NE WRITE(IO,127) NEL, TXX(NEL) ,TYY (NEL) , TXY (NEL) FORMAT (3X, 14, 9X,F15.4,1X,F15.4,1X,F15-4) CONTINUE RETURN END Wir 2 UNIVERSIDADE DE BRASILIA DEPARTAMENTO DE ENGENHARIA CIVIL - MESTRADO EM ESTRUTURAS METODO DOS ELEMENTOS FINITOS ANALISE ESTATICA LINEAR ANALISE DE PLACAS TEORIA DE REISSNER-MINDLIN METODO DOS ELEMENTOS FINITOS QUADRILATERO LAGRANGEANO DE 16 NOS INTEGRACAO NUMERICA MARCIO AUGUSTO R. BUZAR (*** Prof. Paul Partridge ***) a ee 4 + . COMMON NN, NE,NNE,NDF,NL,NC, MS, IO, IN, NLS COMMON/C1/X (250) , ¥(250) ,CON(250,16) ,AL(60,3) ,CN(160,3) ,PE(250, 3) : COMMON/C2/TK (520,150) ,P (520) COMMON/C3/ELAST (48, 48) a COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY a INTEGER CON CHARACTER*12 FILEIN, FILEOUT PARAMETROS DE INICIALIZACAO DO PROGRAMA Y¥(NN) = ARRAY UNIDIMENSIONAL DAS COORDENADAS Y CON(NE,NNE) = CONETIVIDADE DOS ELEMENTOS = NN = NUMERO DE NOS NE = NUMERO DE ELEMENTOS NNE = NUMERO DE NOS NO ELEMENTO < NDF = NUMERO DE GRAUS DE LIBERDADE DE CADA NO 7 NLS NUMERO DE LADOS CARREGADOS NC NUMERO DE CONDICOES DE CONTORNO ONL NUMERO DE CARGAS NODAIS 2 EE MODULO DE ELASTICIDADE = cP COEFICIENTE DE POISSON © FCX FORCA DE CORPO DIRECAO X ~ FCY FORCA DE CORPO DIRECAO Y¥ 7 ESP ESPESSURA QN NN*NDF < MS SEMI-LARGURA DE BANDA > X(NN) = ARRAY UNIDIMENSIONAL DAS COORDENADAS X : AL(NL, 3) = CARGAS APLICADAS < CN(NC, 3) CONDICOES DE CONTORNO x PE(NLS, 3) CARREGAMENTOS EM LADOS DE ELEMENTOS : TK(N,MS) MATRIZ DE RIGIDEZ DA ESTRUTURA + BLAST (48, 48) MATRIZ DE RIGIDEZ DO ELEMENTO DESCONEXO EXX (NEL) DEFORMACOES NODAIS NO ELEMENTO NA DIR.-X < EYY (NEL) DEFORMACOES NODAIS NO ELEMENTO NA DIR. -¥ “2 EXY (NEL) DEFORMACOES NODAIS NO ELEMENTO NA DIR. -XY © TXX (NEL) TENSOES NODAIS NO ELEMENTO NA DIR.-X _J TYY (NEL) TENSOES NODAIS NO ELEMENTO NA DIR.-Y 2 TXY (NEL) TENSOES NODAIS NO ELEMENTO NA DIR. © P(N) = VETOR CARGA NOS NOS (C_NUMEROS PARA OS CANAIS DE ENTRADA (IN) E SAIDA(IO) DE DADOS - I * NOMES DOS ARQUIVOS DE ENTRADA E SAIDA DEFINIDOS "ON LINE" WRITE(*,' (A\) ') ' NOME ARQU. ENTRAD. DE DADOS ? (MAX 10 CHAR)" READ(*,' (A) ') FILEIN - OPEN (IN, FILE=FILEIN, STATUS='OLD') = WRITE(*,' (A\) ') ' NOME ARQ. PARA SAIDA DADOS ? (MAX 10 CHAR)! READ(*,' (A) ') FILBOUT OPEN (IO, FILE=FILEOUT, STATUS='NEW') ~ LEITURA DOS DADOS DE ENTRADA DA ESTRUTURA A CALL INPUT MONTAGEM DA MATRIZ DE RIGIDEZ DA ESTRUTURA CALL ASSEM “ INTRODUCAO DAS CONDICOES DE CONTORNO CALL BOUND © SOLUCAO DO SISTEMA DE EQUACOES CALL SLBSI © CALCULO DOS ESFORCOS NOS ELEMENTOS CALL FORCE . SAIDA DOS DADOS DA ANALISE ESTATICA LINEAR - CALL OUTPUT **#*#ee"* SUBROTINA PARA ENTRADA DE DADOS DA ESTRUTURA ****####444444 SUBROUTINE INPUT a COMMON NN, NE,NNE,NDF,NL,NC,MS, IO, IN, NLS COMMON/C1/X (250) , ¥(250) , CON(250, 16) , AL (60,3) ,CN(160,3) , PE(250,3) COMMON/C2/TK (520,150) , P(520) COMMON/C3/ELAST (48, 48) - COMMON/C4/BE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON 2 WRITE (IO, 700) -00 FORMAT (/,' PROGRAMA DE PLACAS ELEMENTOS FINITOS',/,' Prof.: PAUL + PARTRIDGE',/,' MARCIO AUGUSTO R. BUZAR',/,72('-'),//) WRITE (IO, 701) 01 © FORMAT (//,72('~'),/,15X,' *** DADOS PARA ANALISE ***',//,72('~'), *//) READ(IN, *) NN,NE,NDF,MS,NNE,NL,NC, NLS a WRITE (10,157) 157 FORMAT (' DADOS INTERNOS', 3X,55('*'),/) WRITE (IO, 101) NN 01 FORMAT(' NUMERO DE NOS... ......--- 4+ +2!,T4) - WRITE(IO,102) NE 402 FORMAT(' NUMERO DE ELEMENTOS .. . . . ..~. ~~ + - +2", T4) WRITE(IO,103) NDF 203 FORMAT(' GRAUS DE LIBERDADE PORNO... .... ~~ «:', 14) WRITE(IO,104) MS 04 FORMAT(' SEMI LARGURA DE BANDA... ... « a WRITE (IO,105) NNE 105 FORMAT(' NUMERO DE NOS POR ELEMENTO.........-- WRITE (IO,106) NL 06 FORMAT(' NUMERO DE CARREGAMENTOS .. ... ~~... .:',T4) WRITE (IO, 107) NC 207 FORMAT(' NUMERO DE CONDICOES DE CONTORNO..... .~ WRITE(IO,108) NLS 408 FORMAT (' NUMERO DE LADOS COM CARREG. DISTRIB. . . . . :',14,//) a WRITE (10,199) “99 FORMAT(' CARACTERISTICAS MECANICAS E GEOMETRICAS' , 3X,33('*'),/) READ (IN, *) EE, CP, ESP, FCX, FCY 2 WRITE(IO,111) EE -11 FORMAT(' MODULO DE ELASTICIDADE eee z WRITE(IO,112) CP 412 FORMAT(' COEFICIENTE DE POISSON. ........ . . :',P12.2) WRITE (IO,113) ESP ila + HeePORMAT (li BSPESGURAC Piette reese eerste WRITE(IO,114) FCX, FCY 414 FORMAT(' FORCAS DE CORPO . . . . : DIRECAO X . .=',F7.3,/,26X, *' DIRECAO Y . .=',F7.3) ",14) 14) +14) 1 F12.2) 1 F12.2) © CONSTANTES GLOBAIS * COORDENADAS DOS NOS DO 1 I=1,NN READ (IN, *)X(I) ,¥(T) 5 X (I) =X (I) *1333.33 7 ¥ (I) #¥ (I) #1333.33 cL CONTINUE WRITE (IO, 11) FORMAT(//! COORDENADAS NODAIS ',3X,49('*'),//,10X,' X",14X,'¥') DO 12 I=1,NN WRITE(IO,13) X(I),¥(I) FORMAT (5X, F8.2,7X,F8.2) CONTINUE CONETIVIDADE DOS ELEMENTOS DO 2 I= 1,NE READ(IN,*) (CON(I,J) ,J=1,NNE) CONTINUE WRITE (IO, 21) 21 FORMAT (///' CONETIVIDADE DOS ELEMENTOS',42('*'),//,' EL" 23 22 nAWn ae? *,2X,'NO 1 2 3 4 5 6 7 8 9 10 12 12', *' 13014 15 16',/) DO 22 I=1,NE WRITE(IO,23) I,CON(I,1),CON(I,2) ,CON(I,3),CON(I,4),CON(I,5), *CON (TI, 6) ,CON(I,7) , CON(I, 8) ,CON(I,9) ,CON(I,10) ,CON(I,11), *CON(T, 12) ,CON(T,13),CON(T, 14) ,CON(I,15) ,CON(I, 16) FORMAT (12, 5X,13,1X,13,1X,13,1X,13,1X,13,1X,13,1X,13,1X, *13,1X,13,1X,13,1X,13,1X,13,1X,13,1X,13,1X,13,1X,13,1X) CONTINUE CARGAS NODAIS AL(I,1) NO AL(I,2) DIRECAO : 12W 2=0x 3=0y AL(I,3) VALOR : POSITIVO OU NEGATIVO IF(NL.EQ.0)GO TO 45 DO 3 I=1,NL READ(IN, 30) AL(I,1),AL(I,2),AL(I,3) FORMAT (3F7.2) CONTINUE WRITE (IO, 31) FORMAT (///' CARGAS NODAIS',3X,55('*'),//,' CARGA NO DIRECAO * VALOR" ) DO 32 I=1,NL WRITE (IO, 33)I,AL(I,1),AL(I,2),AL(T, 3) FORMAT (/, 2X,13,3X,F5.0,4X,F5.0,5X,F12.2) CONTINUE CONTINUE ¥ CONDICOES DE CONTORNO NODAIS NO/DIRECAO/VALOR = SEMELHANTE A CARGAS APLICADAS DO 4 NC ny READ(IN,*) CN(I,1),CN(I,2),CN(I,3) + CONTINUE pn WRITE (IO, 41) 41 FORMAT (///,' CONDICOES DE CONTORNO NODAIS',3X,40('*'),//,' COND. = NO DIRECAO VALOR ') DO 42 I=1,NC WRITE (IO, 43) 1, IPIX(CN(I,1)) , IFIX(CN(I,2)) ,CN(I,3) 73 FORMAT(1X,13,6X,15,7X,15,7X,F5.2) 42 CONTINUE “! CARREGAMENTO NOS LADOS DO ELEMENTOS PE(I,1 NUMERO DO ELEMENTO ~ PE(I,2)=LADO CARREGADO “ PE(I,3)=VALOR DA CARGA OBS: ESTAS FORCAS SAO APLICADAS NORMAIS AO RESPETIVO LADO INWARD NORMAL +, OUTWARD NORMAL - IF(NLS.EQ.0)GOTO 666 DO 5 I=1,NLS A READ(IN,*) PE(I,1),PE(I,2),PE(I,3) 2 CONTINUE WRITE (IO, 51) 51 FORMAT(//' ELEMENTOS COM CARGAS NOS LADOS ',//' NUMERO — ELEMENTO * LADO —- CARREGAMENTO") = DO 52 I=1,NLS WRITE (IO, 53) I, IPIX(PE(I,1)), IFIX(PE(I,2)),PE(I,3) 3 FORMAT (2X, 13, 6X,I5,6X,15,6X,F11.5) 42 CONTINUE 66 © CONTINUE © CALCULO DA SEMI-LARGURA DE BANDA PARA ELEMENTOS COM QUATRO NOS a MS1=0 ad DO 99 I=1,NE ABS (CON (I, 1) -CON(I, 2) ) “ABS (CON (I, 1) -CON(I, 3) ) “ABS (CON (I, 1) -CON(I,4)) ABS (CON (I, 2) -CON(I, 3) ) L5=ABS (CON(I, 2) -CON(I, 4) ) ~ L6=ABS (CON (I, 3) -CON(I, 4) ) IF(MS1-L1) 97,97,196 97 MS1=L1 196 IF(MS1-L2) 197,197,296 97 MS1=L2 A96 IF(MS1-13) 297 _MSi=L3 "96 IF(MS1-L4) 397,397,496 “97 MS1=L4 496 IF (MS1-L5) 497,497,596 297 MS1=L5 96 IF(MS1-L6) 597,597,99 597 MS1=L6 29 CONTINUE MS1=NDF* (MS1+1) ~ IF(MS.LT.MS1) GO TO 186 MS=MS1 WRITE (10,98) MS 8 FORMAT(////,! SEMI-LARGURA DE BANDA = ** ',13,' **',/) RETURN 486 WRITE(I0,98)MS WRITE (10,187) 287 FORMAT(’ LARGURA DE BANDA MAIOR QUE MATRIZ') STOP END 97,297,396 2 < juni SUBROTINA PARA MOTAGEM DA MATRIZ DE RIGIDEZ DA ESTRUTURA ******** Cotes E O VETOR DE CARGAS wee + SUBROUTINE ASSEM COMMON NN, NE, NNE,NDP,NL,NC,MS, IO, IN, NLS r GOMMON/C21/X (250) .¥ (250) , CON (250,16) ,AL(60, 3) ,CN(260, 3) , PE(250, 3) - COMMON/C2/TK(520, 150) , P(520) COMMON/C3/ELAST (48, 48) COMMON/C4/EE, CP, ESP, FC, FCY, PDX, PDY - INTEGER CON NeNDF*NN “5 A MATRIZ GLOBAL DE RIGIDEZ TEM DIMENSOES MINIMAS (N,MS) ¢ ZERAR VETOR DE CARGAS P E MATRIZ GLOBAL TK DO 10 I=1,N P(I)=0 DO 10 J=1,MS TK(I,J) =0 CONTINUE > MONTAGEM DA MATRIZ GLOBAL DO 20 NEL=1,NE CALL STIFF (NEL) CALL ELASS (NEL) CONTINUE MONTAGEM DO VETOR DE CARGAS dda DO 30 I=1,NL FIX(AL(I,1)) P(N1) =P(N1) +AL(I, 3) 30 CONTINUE RETURN =ND *** SUBROTINA PARA MOTAGEM DA MATRIZ DE RIGIDEZ DE CADA ELEMENTO *** Awad b SUBROUTINE STIFF (NEL) ~ COMMON NN, NE,NNE,NDF,NL,NC,MS, IO, IN, NLS COMMON/C1/X (250) , ¥(250) , CON (250,16) , AL (60,3) ,CN(160,3) ,PE(250,3) COMMON/C2/TK (520,150), P(520) COMMON/C3/ELAST (48, 48) COMMON/C4/BE, CP, ESP, FCX, FCY, PDX, PDY COMMON/C6/DPX (16) , DPY (16) , FF (16) REAL*4 PI (4), FP(4) INTEGER CON PI(1) FP(1) 0.86113631 0.34785485 PI(2)=0.33998104 5 FP(2)=0.65214515 PI (3) =-0,33998104 E FP(3)=0.65214515 PI(4) PP (4) -0.86113631 0.34785485 DO 166 I=1,NNE*NDF DO 166 J=1,NNE*NDF ELAST (I,J) =0. 166 CONTINUE NO INICIO E NO FIM DO ELEMENTO "NEL" ba N1=CON (NEL, 1) N2=CON (NEL, 2) N3=CON (NEL, 3) N4=CON(NEL, 4) N5=CON (NBL, 5) N6=CON (NEL, 6) N7=CON (NEL, 7) ~ N8=CON (NEL, 8) N9=CON (NEL, 9) CALCULO DA SEMI-LARGURA E ALTURA DO ELEMENTO QRT( (X(N2)-X(N1))*#2 + (¥(N2)-¥(N2)) **2) /2. QRT( (X(N4)-X(N1))**2 + (¥(N4) -¥(N1))**2)/2. 2 CALCULO DA AREA AB=A*B aaa VEREFIQUE QUE NAO E ZERO IF(AB.NE.0)GOTO 666 WRITE (IO, 667) NEL 567 FORMAT (' ERRO DE CONETIVIDADE/COORDENADAS ELEMENTO', 14, a *" AREA CALCULADA COMO ZERO') STOP 666 | CONTINUE DO 100 III=1,4 B=PI (III) WE=FP (III) DO 100 Jgg=1,4 T=PI (JI) WT=FP (JI) -/(256.*R) -/ (256. *B) AUX2A=9. / (256 .*A) -/(256.*B) 1./(256.*A) 1./ (256. *B) 1/256.) *(T-1) * (3. *T-1) * (3. *T#1) * (E-1) * (3. *B-1) * (3. *E+1) (1/256.) * (T-1) * (3. *7-1) * (3. *T41) * (B+1) * (3. *E-1) * (3. *E+1) 1/256.) * (T+1) * (3. *T+1) * (3. *T-1) * (E41) * (3. *B+1) * (3. *E-1) (1/256.) * (T+1) * (3. *T+1) * (3. *#T-1) * (E-1) * (3. *B-1) * (3. *E+1) (9/256.)*(T-1)* (3. #T-1) * (3. *T+1) * (B41) * (3. *E-1) *(B-1) 9/256.) * (T-1) *(3.*T-1) * (3. *T#1) * (E41) * (3. *E+1) * (E-1) 9/256.) *(T-1) * (3. *T-1) * (T+1) * (B41) * (3. *E+1) * (3.*E-1) (9/256.) * (T-1) * (3. *T#1) * (T+1) * (B41) * (3. *B+1) *(3.*E-1) (9/256.)*(3.#*T-1) *(3.*T+1) * (T+1) * (B41) * (3. *E41) *(E-1) C- CALCULO DA MATRIZ K PARA UM ELEMENTO FF (10) =(9/256.)*(3.*T-1) *(3.*T+1) * (T+1) * (B+1) * (3. *B-1) * (E-1) FF (11) =(9/256.)*(T-1) *(3.*T+1) * (T+1) *(3.*E+1) * (3. *E-1) * (E-1) FF (12) =-(9/256.) * (T-1) * (3. *T-1) * (T+1) #(3.*8+1) *(3.*E-1) *(E-1) FF (13) =(81/256.) * (T-1) * (3. *T-1) * (T+1) * (E+1) * (3. *B-1) * (B-1) FF (14) =- (81/256.) # (T-1) *(3.*T-1) * (T+1) * (E+1) * (3. *E+1) * (E-1) FF (15) =(81/256.) * (T-1) * (3. *T+1) * (T+1) * (E+1) * (3. *B+1) * (E-1) FF (16) =- (81/256.) * (T-1) * (3. *T+1) * (T+1) * (E+1) * (3.*E-1) * (E-1) DPY (1) =AUX1B* (27. *T*T-18. *T-1) * (E-1) * (3. *E-1) * (3. *E+1) DPY (2) =-AUX1B* (27. *T*T-18.*T-1) * (B+1) * (3. *B-1) * (3. *E+1) DPY (3) =AUX1B* (27. *T*T+18. *T-1) * (9. *E*E*E+9 . *E*E-E-1) DPY (4) =-AUX1B* (27. *T*T+18 .*T-1) * (9. *E*E*E-9 . *E*E-E+1) DPY (5) =-AUX2B* (27. *T*T-18.*T-1) * (3. *E*E*E-E*E-3. *E+1) DPY (6 DPY (7 DPY (8 DPY (9. DPY (10 DPY (11 UX2B* (27 .*T#T-18. *T-1) * (3. *E*E*E+E*E-3.*E-1) \UX2B* (9. #*T#T-2. ¥T-3) * (3. *B-1) * (3. *E+1) * (E41) AUX2B* (9.*T#T+2. *T-3) * (3. *E=1) * (3. *E+1) * (B41) AUX2B* (27. *T*T+18, *T-1) * (E-1) * (3.*E+1) * (E+1) UX2B* (27. *T*#T+18. *T-1) * (E-1) * (3.*E-1) * (E+1) UX2B* (9. #T#T+2, *T-3) * (E-1) * (3. #E-1) * (3. *B+1) DPY (12) =-AUX2B* (9. *T*T-2. *T-3) * (B-1) * (3. *B-1) * (3. *E+1) DPY (13) =AUX3B¢ (9. *T*T-2. *T-3) * (E-1) * (3. *E-1) * (B41) DPY (14) =-AUX3B* (9. *T*T-2.*T-3) * (E-1) * (3. *E+1) * (E+1) DPY (15) sAUX3B# (9. *T*#T+2. *T-3) * (B-1) * (3. *E+1) * (B41) DPY (16) =-AUX3B* (9. *T*T+2.*T-3) * (B-1) * (3. *B-1) * (B+1) DPX (1) =AUX1A* (T-1) * (3. *T-1) *(3.#T#1) * (27. *E*E-18.*E-1) DPX (2) DPX (3 AUXIA* (T-1)#(3.*T-1) #* (3. *T+1) *(27.*E*E+18.*E-1) UXLA®* (9. #T#T#T49, *T#T-T-1) * (27. *E*E+18. *E-1) DPX (4) =-AUX1A* (9. *T*T*T+9. *T*T-T-1) * (27. *E*E-18.*E-1) DPX (5) =-AUX2A* (9. *T*T*T-9. *T*T-T+1) * (9. *E*E-2.*E-3) DPX (6) =AUX2A* (9, *T*T*T-9, *T*T-T+1) * (9. *E*E+2.*E-3) DPX (7) =AUX2A* (T-1) * (3. *T-1) * (T+1) * (27. *E*E+18 . *E-1) DPX (8) =-AUX2A* (T-1) * (3. *T+1) * (T+1) * (27. *E*E+18.*E-1) DPX (9) =-AUX2A* (3. *7-1) * (3. *T41) * (T+1) * (9. *E*E+2.*E-3) DPX (10) =AUX2A* (3. #T-1) * (3. *T+1) * (T+1) * (9.*E*E-2.*E-3) DPX (11) =AUX2A* (T-1) * (3. *T+1) * (T+1) * (27. *B*E-18.*E-1) DPX (12) =-AUX2A* (T-1) * (3. *T-1) * (T+1) * (27. *E*E-18.*E-1) DPX (13) =AUX3A* (T-1) * (3. *T-1) * (T+1) *(9.*E*E-2.*E-3) DPX (14) =-AUX3A* (T-1) * (3, *T-1) * (T+1) * (9. *B*E+2. *E-3) DPX (15) =AUX3A* (T-1) * (3. *T+1) * (T+1) *(9.*B*E+2.*B-3) DPX (16) =-AUX3A* (T-1) * (3. *T+1) * (T+1) * (9. *B*E-2.*E-3) DF=EE*ESP*ESP*ESP/(12.*(1.-CP*CP)) DF1=DF* (1.-CP)/2. GG=(5/6.) *EE*ESP/(2.*(1.+CP)) DO 30 NE IIs (I-1) *NDF DO 30 J=1,NNE JJ=(J-1) *NDF I3=I1+3 Tl=5T+1 J2=II+2 J3=5T+3 ELAST (I1,J1) =BLAST(I1,J1) +DD*GG* (DPX (I) *DPX (J) +DPY (I) *DP¥ (J) ) ELAST (12, J1) =BLAST (12,31) -DD*GG* (FF (I) *DPX (J) ) ELAST(I3,J1) =ELAST(I3,J1) -DD*GG* (PF (I) *DPY (J) ) ELAST(I1,J2) =ELAST(I1,J2) -DD*GG* (FF (J) *DPX (I) ) ELAST(12,J2) =ELAST (12, J2) +DD* (DF1*DPY (I) *DPY (J) +DF*DPX (I) *DPX (J) + 4GG*FF (I) *FF(T)) E ELAST (13, J2) =ELAST (13, J2) +DD* (CP*DF*DPX (J) *DPY (I) +DF1*DPX (I) * *DP¥(J)) ELAST(I1,J3) =BLAST(I1,J3) -DD*GG* (FF (J) *DPY (I) ) ELAST (12,33) =ELAST (2, J3) +DD* (CP*DF*DPX (I) *DPY (J) +DF1*DPX (J) * *DPY(I)) ELAST (I3,J3) =ELAST (13, J3) +DD* (DF1*DPX (I) *DPX (J) +DF*DPY (I) *DPY (J) * 4GG*FF (I) *FF(J)) 30 CONTINUE 100 CONTINUE RETURN = END c . S ae oe eee ee *** SUBROTINA PARA VALORES DA MATRIZ DE RIGIDEZ GLOBAL ESTRU ********* AC +e TURA A PARTIR DA MATRIZ DE RIGIDEZ DOS ELEMENTOS Joe SUBROUTINE ELASS (NEL) COMMON NN, NE,NNE,NDF,NL,NC,MS, 10, IN,NLS COMMON/C1/X (250) , ¥(250) , CON(250,16) ,AL (60,3) ,CN(160,3) ,PE(250,3) COMMON/C2/TK (520,150) , P(520) COMMON/C3/ELAST (48, 48) COMMON/C4/BE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON DO 50 I=1,NNE N1=CON (NEL, I) - I1=NDF* (I-1) 12=NDF* (N1-1) - DO 50 J=1,NNE N2=CON (NEL, J) T1=NDF* (J-1) J2=NDF* (N2-1) DO 50 K=1,NDF KP=I1+K KQ=12+K DO 50 L=1,NDF LP=J1+L LQ=J2+L LQ=LQ-KQ+1 IF(LQ.LT.1) GO TO 50 a ‘TK (KQ, LQ) =TK(KQ, LQ) +ELAST (KP, LP) CONTINUE RETURN END SUBROTINA QUE INTRODUZ AS CONDICOES DE CONTORNO *** DA ESTRUTURA tae SUBROUTINE BOUND COMMON NN, NE, NNE,NDF,NL,NC,MS, IO, IN, NLS COMMON/C1/X (250) , ¥(250) , CON(250,16) ,AL(60,3) ,CN(160,3) , PE(250,3) COMMON/C2/TK (520,150) ,P(520) COMMON/C3/ELAST (48, 48) COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON N=NDF*NN DO 100 1=1,NC NO=IFIX(CN(I,1)) K1=NDF* (NO-1) +IFIX(CN(I,2)) DO 110 MS IP=K1-J+1 IF(IP.LE.0) GO TO 5 P(IP) =P (IP) -TK(IP,J) *CN(I,3) TK(IP, J) = CONTINUE IP=K1+J-1 IF(IP.GT.N) GO TO 110 P(IP) =P (IP) -TK(K1,J)*CN(I,3) ‘TK(Ki, J) =0 CONTINUE ‘TK(K1, 1) =1 P(K1) =CN(I,3) CONTINUE RETURN END **#8***** SUBROTINA QUE INTRODUZ AS CONDICOES DE CONTORNO *####44e44+% Bee DA ESTRUTURA Toone SUBROUTINE SLBSI COMMON NN, NE,NNE,NDF,NL,NC,MS, IO, IN,NLS COMMON/C2/TK (520,150) , P(520) DIMENSION D(200) NDF*NN C=TK(K, 1) K1=K+1 - IF (ABS (C) -0.000001)1,1,3 1 WRITE (IO, 2)K 2 FORMAT(' SINGULARIDADE: FILEIRA ',15) = GOTO 300 3 NI=K1+MS-2 L=NI - IF (N.LT.NI) L=N DO 11 J=2,MS 11 D(J) =TK(K,J) DO 4 J=K1,L K2=J-K+1 4 TK (K, K2) =TK(K, K2) /C P(K) =P(K) /C - DO 10 I=K1,L K2=1-K1+2 C=D(K2) DO 5 J=I,L K2=J-I+1 K3=J-K+1 5 TK (I, K2) =TK(I,K2)- C*TK(K,K3) 10. B() =P (I) -C*P(K) 100 CONTINUE e IF (ABS (TK (N, 1) ) -0.000001) 1001, 1001, 101 1001 WRITE(IO,4444) 4444 FORMAT(' SINGULARIDADE') STOP “101 P(N) =P(N) /TK(N, 1) DO 200 T=1,Ni KeN-I Ki=K+1 NI=K1+MS-2 L=NI IF (N.LT.NI) L=N d DO 200 J=K1,L K2=J-K+1 (K) -TK(K, K2) *P(J) RETRO-SUBSTITUCAO Deer CALCULO DOS ESFORCOS NOS ELEMENTOS ane SUBROUTINE FORCE COMMON NN, NE, NNE,NDF,NL,NC,MS, 10, IN,NLS COMMON/C1/X (250) , ¥(250) , CON(250, 16) , AL (60,3) , CN(160, 3) , PE(250, 3) COMMON/C2/TK (520,150) , P(520) COMMON/C3/ELAST (48, 48) COMMON/C4/EE, CP, ESP, FCX, PCY, PDX, PDY COMMON/C6/DPX (16) , DPY (16) , FF (16) e COMMON /C7/AMX (16,520) , AMY (16,520) , AMKY (16,520) COMMON/C8/QX (16,520) ,Q¥ (16,520) COMMON/C9/W(16) , OX (16) , O¥ (16) ,NI(16) COMMON/C10/DOXDX (100, 16) , DOYD¥ (100, 16) INTEGER CON EB DO 100 NEL=1,NE RECUPERA OS NOS E DESLOCAMENTOS DA MALHA DISCRETIZADA EM COORDENADAS GLOBAIS ‘ON (NEL, I) (NI (I) *NDF-2) Ox (I) =P (NI (I) *NDF-1) Oy (I) =P (NI (I) *NDF) 20 CONTINUE ©---- CALCULA A SEMI-LARGURA/ALTURA DE CADA ELEMENTO SQRT( (X(NI(2))-X(NI(1)))**2 + (¥(NI(2)) -¥ (NI(1)))##2) /2. ORT ( (KX (NI(4)) -X(NI(1)))**2 + (¥(NT(4))-¥(NI(1)))*#2)/2. NODE=1 CALL DERIV(T,E,NODE, NEL, A,B) Te- B NODE=2 CALL DERIV(T,E,NODE,NEL,A,B) Te1 E NODE=3 CALL DERIV(T, , NODE, NEL, A,B) NODE=4 CALL DERIV(T,E,NODE, NEL, A,B) - NODE= = CALL DERIV(T,E,NODE,NEL,A,B) CALL DERIV(T,E,NODE,NEL,A,B) 1/3 : NODE=7 sé CALL DERIV(T,E,NODE, NEL, A,B) =1 NODE=8 CALL DERIV(T,B,NODE,NEL,A,B) T=1 Bei/3 NODE=9 CALL DERIV(T, =, NODE, NEL, A,B) Es-1/3 NODE=10 CALL DERIV(T,E,NODE,NEL,A,B) CALL DERIV(T,E,NODE,NEL,A,B) T=1/3 =-1/3 NODE=16 CALL DERIV(T,E,NODE,NEL, A,B) DEFINE A MATRIZ "D" DA RELACAO CONSTITUTIVA ELASTICA LINEAR DO MATERIAL DF=EE*ESP*ESP*ESP/(12.*(1.-CP*CP)) DF1=DF* (1.-CP) /2. GG=(5/6.)*BE*ESP/(2.*(1.+CP)) DO 222 I=1,NNE AMX (NEL, I) =DF*DOXDX (NEL, I) +DF*CP*DOYDY (NEL, I) AMY (NEL, I) =DF*CP*DOXDX (NEL, I) +DF*DOYDY (NEL, I) All 22 212 100 AMXY (I, NEL) =DF1*DOXDY+DF1*DOYDX QX (I, NEL) =GG* (DWDX-FOX) Q¥ (I, NEL) =GG* (DWDY-FOY) WRITE (IO, 111) (i) ,AMX (NEL, I) , AMY (NEL, I) FORMAT (2x, i4,2P15.5) CONTINUE WRITE (IO, 112) (NEL+1) FORMAT(/,'ELEMENTO No. ',15,/) CONTINUE RETURN IMPRIME EM ARQUIVO OS DESLOCAMENTOS NODAIS, REA *** COES DE APOIO E ESFORCOS AXIAIS NOS ELEMENTOS *** SUBROUTINE OUTPUT COMMON NN, NE, NNE,NDF,NL,NC,MS, 10, IN, NLS COMMON/C1/X (250) , ¥ (250) , CON(250, 16) ,AL (60,3) , CN(160, 3) , PE(250,3) COMMON/C2/TK (520,150) , P(520) COMMON/C3/ELAST (48, 48) COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY INTEGER CON WRITE (IO, 1) FORMAT(///' DESLOCAMENTOS NODAIS', 3X,49('*'),//,' NO" + Ww ox oy") DO 10 I=1, NN IW=3*1-2 TOx=3*I-2 Ioy=3*1 WRITE(IO,11) I, P(IW),P(IOx) , P(Ioy) FORMAT(I5, 5X, 3F15.5) CONTINUE RETURN END SUBROUTINE DERIV(T, E, NODE, NEL, A,B) COMMON/C4/EE, CP, ESP, FCX, FCY, PDX, PDY COMMON/C6/DPX (16) , DPY (16) , FF (16) COMMON/C9/W(16) , OX(16) , O¥ (16) ,NI(16) COMMON/C10/DOXDX (100,16) , DOYDY (100,16) AUX1A=1./(256.*A) AUX1B=1./(256.*B) AUX2A=9./(256.*A) AUX2B=9. / (256. *B) AUX3A=81./(256.*A) AUX3B=81. /(256.*B) (1/256 .) * (T-1) * (3. *T-1) * (3. #T+1) * (B-1) * (3. *B-1) * (3. *E+1) - (1/256.) * (T-1) * (3. *T-1) * (3.#T+1) * (E+1) * (3.*B-1) * (3. *B+1) (1/256.) * (T+1) * (3. *T+1) * (3. *T-1) * (+1) * (3. *B+1) *(3.*E-1) ~ (1/256 .) *(T+1) * (3. *T+1) * (3. *T-1) * (B-1) * (3.*B-1) *(3.*E+1) FF (5) =- (9/256 .) * (T-1) * (3. *T-1) *(3.*T+1) * (B+1) * (3. #E-1) * (B-1) FF (6) =(9/256.) *(T-1)*(3.*T-1) *(3.*T+1) * (E+1) * (3. *E4+1) * (E-1) FF (7) =(9/256.)*(T-1)*(3.*T-1) * (T+1) * (B+1) * (3. *B+1) * (3. *E-1) FF(1) FF(2) FF (3) FF(4) FF (8) =- (9/256.)* (T-1) * (3. *T+1) * (T+1) * (B+1) * (3. *B+1) * (3.*E-1) FF (9) =-(9/256.)*(3.#T-1)* (3. *T+1) * (T+1) * (E+1) * (3. *B41) * (B-1) FF (10) =(9/256.)*(3.*T-1) * (3. *T+1) * (T+1) * (B+1) *(3.*E-4) * (E-1) FF (11) =(9/256.) * (T-1) * (3. *T#1) * (T+1) * (3. *B+1) * (3. *B-1) * (E-1) FF (12) =- (9/256.) * (T-1) * (3.*T-1) * (T+1) * (3. *E+1) * (3.*E-1) * (B-1) FF (13) =(81/256.)* (T-1) * (3. *T-1)* (T+1) * (B+1) * (3.*E-1) * (B-1) FF (14) =- (81/256.) * (T-1) *(3.*T-1) * (T+1) * (E+1) * (3 .*E+1) * (B-1) FF (15) =(81/256.) * (T-1) * (3. *T+1) * (T+1) * (B+1) *(3.*B+1) * (E-1) FF (16) =- (81/256.)* (T-1)* (3.*T+1) * (T+1) * (B+1) *(3.*B-1) * (E-1) DPY (1) -AUX1B* (27. *T*T-18 .*#T-1) * (B-1) * (3. *B-1) * (3. *E+1) DPY (2) =-AUX1B* (27. *T*T-18.*T-1) * (B41) * (3. *B-1) *(3.*B+1) DPY (3) =AUX1B* (27. *T*T+18.*T-1) * (9. *E*E*E+9 . *E*E-E-1) DPY (4) =-AUX1B* (27. *T*T+18 .*T-1) * (9. *B*E*E-9. *EYE-B+1) DPY (5) =-AUX2B* (27. *T*T-18 .*T-1) * (3. *E*E*E-B*E-3.*E+1) DPY (6) =AUX2B¥ (27. *T*T-18 .#T-1) * (3. *E*E*E+E*E-3. *E-1) DPY (7) sAUX2B* (9. *T*T-2.*T-3) * (3 .*E-1) *(3.*E41) * (E+1) DPY (8) =-AUX2B* (9. *T*T+2.*T-3) * (3. *E-1) * (3. *E+1) * (E+1) DPY (9) =-AUX2B* (27. *T*T+18 .*T-1) * (E-1) * (3. *B+1) * (E+1) DPY (10) =AUX2B* (27. *T*T+18 .*T-1) * (E-1) *(3.*E-1) * (E+1) DPY (11) =AUX2B* (9. *T*T+2.*T-3) * (E-1) * (3. *B-1) *(3.*E+1) DPY (12) =-AUX2B* (9. *T*T-2. *T-3) * (E-1) * (3. *E-1) * (3. *E+1) DPY (13) =AUX3B# (9. *T*T-2. *T-3) # (E-1) * (3. *E-1) * (E41) DPY (14) =-AUX3B* (9. *T*T-2. *T-3) * (B-1) * (3. *B+1) * (E+1) DPY (15) =AUX3B¥ (9. *T*T+2. *T-3) * (B-1) * (3. *B+1) * (E41) DPY (16) =-AUX3B* (9. *T*T+2. *T-3) * (E-1) * (3. *E-1)* (E41) DPX (1) =AUX1A* (T-1) * (3. *T-1) *(3.*T+1) * (27. *E*E-18. *E-1) DPX (2) =-AUX1A* (T-1) * (3. *T-1) *(3,#T+1) * (27. *E*E418 . ¥E-1) DPX (3)

Você também pode gostar