25
Novembro Método dos Elementos Finitos 9ªAula e 10ªAula 1 Sumário e Objectivos Sumário: Programação do Método dos Elementos Finitos Objectivos da Aula: Apreensão da forma como se pode estruturar um programa de Elementos Finitos

Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

  • Upload
    hadiep

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

1

Sumário e Objectivos

Sumário: Programação do Método dos Elementos FinitosObjectivos da Aula: Apreensão da forma como se pode estruturar um programa de Elementos Finitos

Page 2: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

2

Aplicações

Page 3: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

3

TEXTO RECOMENDADO

Finite Element ProgramingAutores: Hinton, E. and Owen, D. R. J.Editora: Academic PressAno: 1977

O Programa descrito no texto está escrito em FORTRAN77

Page 4: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

4

Estrutura do ProgramaSubrotinas Principais

Programa Principal - FEMPLANO

INPUT STIF B

PS

PB

LOAD B

PS

PB

FRONT STRE B

PS

PB

Loop número de Problemas

Loop nº de Casos de Carga

Page 5: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

5

Descrição

FEMPLANO é o programa principal que recorre às subrotinas:

INPUT- Leitura de dados Geométricos e materiais

Capítulo 3 do Texto Recomendado

STIF(B,PS,PB) – Subrotina que procede ao cálculo das Matrizes de Rigidez dos Elementos.

STIFB Capítulo 4 do Texto Recomendado

STIFPS Capítulo 5 do Texto Recomendado

STIFPS Capítulo 6 do Texto Recomendado

Page 6: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

6

Descrição

LOAD(B,PS,PB) – Subrotina que procede ao Cálculo dos Vectores de Forças Nodais dos Elementos.

LOADB Capítulo 4 do Texto RecomendadoLOADPS e LOADPB Capítulo 7 do Texto

RecomendadoFRONT – Procede à Assemblagem das Matrizes e Vectores

Elementares e resolve o Sistema de Equações por forma a permitir a obtenção dos deslocamentos.

Capítulo 8 do Texto Recomendado STRE(B,PS,PB) – Subrotina que procede ao cálculo das

Tensões ao nível dos Elementos.

Page 7: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

7

Estrutura do ProgramaSubrotina INPUT

INPUT

CHECK1 NODEXY GAUSSQ CHECK2

ECHO

Page 8: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

8

Subrotinas AuxiliaresSubrotina NODEXY

Determina as coordenadas do nó j a partir das coordenadas dos nós i e k

i j k

Page 9: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

9

Subrotinas CHECK1 CHECK2 e GAUSSQ

As subrotinas CHECK1 e CHECK2 verificam se existem erros detectáveis nos dados lidos na Subrotina INPUT. Assim que um erro é detectado o programa aborta.

Os dados não lidos após a detecção de um erro são escritos recoorendo à subrotina ECHO.

A subrotina GAUSSQ estabelece as posições e os pesos associados aos pontos de integração a serem usados na integração numérica de Gauss.

Page 10: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

10

Estrutura do ProgramaSubrotina STIF(B,PS,PB)

STIF (B,PS,PB)

MOD

(B, PS, PB)

SFR

(1,2)

JACOB

(1,2)

BMAT(B, PS, PB)

DBE

A subrotina STIFB constrói a matriz de rigidez para um Elemento de viga, A subrotina STIFPSa matriz de rigidez para Elementos planos e a subrotina STIFPB constrói a Matriz de Rigidez para elemento de placa de Mindlin. dV∫

e

Te V

κ = B DB

Page 11: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

11

SUBROUTINE STIFPSINCLUDE 'FEMPLANO.COM'DIMENSION ESTIF(16,16)

CC*** LOOP OVER EACH ELEMENTC

DO 70 IELEM=1,NELEMLPROP=MATNO(IELEM)

CC*** EVALUATE THE COORDINATES OF THE ELEMENT NODAL POINTSC

DO 10 INODE=1,NNODELNODE=LNODS(IELEM,INODE)DO 10 IDIME=1,NDIME

10 ELCOD(IDIME,INODE)=COORD(LNODE,IDIME)CC*** EVALUATE THE D-MATRIXC

CALL MODPS(LPROP)THICK=PROPS(LPROP,3)

CC*** INITIALIZE THE ELEMENT STIFFNESS MATRIXC

DO 20 IEVAB=1,NEVABDO 20 JEVAB=1,NEVAB

20 ESTIF(IEVAB,JEVAB)=0.0KGASP=0

CC*** ENTER LOOPS FOR AREA NUMERICAL INTEGRATIONCDO 50 IGAUS=1,NGAUS

DO 50 JGAUS=1,NGAUSKGASP=KGASP+1EXISP=POSGP(IGAUS)ETASP=POSGP(JGAUS)

CC*** EVALUATE THE SHAPE FUNCTIONS,ELEMENTAL VOLUME,ETC.C

CALL SFR2(EXISP,ETASP)CALL JACOB2(IELEM,DJACB,KGASP)DVOLU=DJACB*WEIGP(IGAUS)*WEIGP(JGAUS)IF(THICK.NE.0.0) DVOLU=DVOLU*THICK

CC*** EVALUATE THE B AND DB MATRICESC

CALL BMATPSCALL DBE

CC*** CALCULATE THE ELEMENT STIFFNESSESC

DO 30 IEVAB=1,NEVABDO 30 JEVAB=IEVAB,NEVABDO 30 ISTRE=1,NSTRE

30 ESTIF(IEVAB,JEVAB)=ESTIF(IEVAB,JEVAB)+BMATX(ISTRE,IEVAB)*. DBMAT(ISTRE,JEVAB)*DVOLU

CC*** STORE THE COMPONENTS OF THE DB MATRIX FOR THE ELEMENTC

DO 40 ISTRE=1,NSTREDO 40 IEVAB=1,NEVAB

40 SMATX(ISTRE,IEVAB,KGASP)=DBMAT(ISTRE,IEVAB)50 CONTINUE

CC*** CONSTRUCT THE LOWER TRIANGLE OF THE STIFFNESS MATRIXC

DO 60 IEVAB=1,NEVABDO 60 JEVAB=1,NEVAB

60 ESTIF(JEVAB,IEVAB)=ESTIF(IEVAB,JEVAB)CC*** STORE THE STIFFNESS MATRIX,STRESS MATRIX AND SAMPLING POINTC COORDINATES FOR EACH ELEMENT ON DISC FILEC

WRITE(91) ESTIFWRITE(93) SMATX,GPCOD

70 CONTINUERETURNEND

Page 12: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

12

Subrotina MOD(B, PS, PB)

( )2

12

1 0E 1 0

10 0 −ν

⎡ ⎤ν⎢ ⎥⎢ ⎥= ν

−ν ⎢ ⎥⎢ ⎥⎣ ⎦

D

A subrotina MODB(LPROP) calcula a matriz das constantes elásticas para o Elemento de Viga plano. D(1,1)=EI, D(2,2)=S (Rigidez ao corte). A subrotina MODPS(LPROP) calcula as matrizes das constantes elásticas para o Elemento 2D para estados planos de Tensão e Deformação. DMATX(I,J), I=1,3 e J=1,3

1 01

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

1 20 02(1 )

⎡ ⎤⎢ ⎥−⎢ ⎥

− ⎢ ⎥= ⎢ ⎥+ − −⎢ ⎥

−⎢ ⎥⎢ ⎥−⎣ ⎦

D E

νν

ν νν ν ν

νν

Page 13: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

13

MODPS(LPROP)

SUBROUTINE MODPS(LPROP)

INCLUDE 'FEMPLANO.COM'

YOUNG=PROPS(LPROP,1)POISS=PROPS(LPROP,2)DO 10 ISTRE=1,NSTREDO 10 JSTRE=1,NSTREDMATX(ISTRE,JSTRE)=0.0

10 CONTINUEIF(NTYPE.NE.1) GO TO 20

CC*** D MATRIX FOR PLANE STRESS

CASEC

CONST=YOUNG/(1.0-POISS*POISS)DMATX(1,1)=CONSTDMATX(2,2)=CONSTDMATX(1,2)=CONST*POISSDMATX(2,1)=CONST*POISSDMATX(3,3)=(1.0-POISS)*CONST/2.0GO TO 30

20 IF(NTYPE.NE.2) GO TO 30CC*** D MATRIX FOR PLANE STRAIN CASEC

CONST=YOUNG*(1.0-POISS)/((1.0+POISS)*(1.0-2.0*POISS))

DMATX(1,1)=CONSTDMATX(2,2)=CONSTDMATX(1,2)=CONST*POISS/(1.0-POISS)DMATX(2,1)=CONST*POISS/(1.0-POISS)DMATX(3,3)=CONST*(1.0-2.0*POISS)/(2.0*(1.0-

POISS))30 CONTINUE

RETURNEND

Page 14: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

14

Subrotina MODPBDMATX(I,J), I=1,5 e J=1,5

⎡ ⎤= ⎢ ⎥⎣ ⎦

f

s

D 0D0 D

1 0D 1 0

0 0 (1 ) 2

ν⎡ ⎤⎢ ⎥= ν⎢ ⎥⎢ ⎥− ν⎣ ⎦

fD

( )1 0Ee0 12 1⎡ ⎤

= κ ⎢ ⎥+ ν ⎣ ⎦sD

A subrotina MODPB(LPROP) calcula a matriz das constantes elásticas para o Elemento o Elemento de Placa baseado na Teoria de Mindlin

3

2

EtD12(1 )

=−ν

Page 15: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

15

Subrotina SFR1 e SFR2

A subrotina SFR1 determina as funções de forma e as suas derivadas para um elemento de viga isoparamétrico de 3 nós.

A subrotina SFR2 determina as funções de forma e as suas derivadas para um elemento plano (2D) isoparamétrico da família de Serindipity.

Page 16: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

16

Subrotina SFR2

SUBROUTINE SFR2(S,T)CC*** CALCULATES SHAPE FUNCTIONS AND THEIR DERIVATIVES FOR 2D ELEMENTSC

INCLUDE 'FEMPLANO.COM'S2=S*2.0T2=T*2.0SS=S*STT=T*TST=S*TSST=S*S*TSTT=S*T*TST2=S*T*2.0

CC*** SHAPE FUNCTIONSC

SHAPE(1)=(-1.0+ST+SS+TT-SST-STT)/4.0SHAPE(2)=(1.0-T-SS+SST)/2.0SHAPE(3)=(-1.0-ST+SS+TT-SST+STT)/4.0SHAPE(4)=(1.0+S-TT-STT)/2.0

SHAPE(5)=(-1.0+ST+SS+TT+SST+STT)/4.0SHAPE(6)=(1.0+T-SS-SST)/2.0SHAPE(7)=(-1.0-ST+SS+TT+SST-STT)/4.0SHAPE(8)=(1.0-S-TT+STT)/2.0

CC*** SHAPE FUNCTION DERIVATIVESC

DERIV(1,1)=(T+S2-ST2-TT)/4.0DERIV(1,2)=-S+STDERIV(1,3)=(-T+S2-ST2+TT)/4.0DERIV(1,4)=(1.0-TT)/2.0DERIV(1,5)=(T+S2+ST2+TT)/4.0DERIV(1,6)=-S-STDERIV(1,7)=(-T+S2+ST2-TT)/4.0DERIV(1,8)=(-1.0+TT)/2.0DERIV(2,1)=(S+T2-SS-ST2)/4.0DERIV(2,2)=(-1.0+SS)/2.0DERIV(2,3)=(-S+T2-SS+ST2)/4.0DERIV(2,4)=-T-STDERIV(2,5)=(S+T2+SS+ST2)/4.0DERIV(2,6)=(1.0-SS)/2.0DERIV(2,7)=(-S+T2+SS-ST2)/4.0DERIV(2,8)=-T+STRETURNEND

Page 17: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

17

Subrotina JACOB (1,2)

A subrotina JACOB 1 determina as coordenadas dos pontos de Gauss, o Jacobiano e as derivadas cartesianas das funções de forma para um elemento de viga.

A subrotina JACOB 2 determina as coordenadas dos pontos de Gauss, a matriz Jacobiana, a inversa da Jacobiana e as derivadas cartesianas das funções de forma para um elemento plano 2D.

Page 18: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

18

SUBROUTINE JACOB2

SUBROUTINE JACOB2(IELEM,DJACB,KGASP)CC*** CALCULATES COORDINATES OF GAUSS POINTS AND THE JACOBIAN MATRIXC AND ITS DETERMINANT AND THE INVERSE FOR 2D ELEMENTSC

INCLUDE 'FEMPLANO.COM’DIMENSION XJACM(2,2),XJACI(2,2)

CC*** CALCULATE COORDINATES OF SAMPLING POINTC

DO 10 IDIME=1,NDIMEGPCOD(IDIME,KGASP)=0.0DO 10 INODE=1,NNODE

GPCOD(IDIME,KGASP)=GPCOD(IDIME,KGASP)+ELCOD(IDIME,INODE).*SHAPE(INODE)

10 CONTINUECC*** CREATE JACOBIAN MATRIX XJACMC

DO 20 IDIME=1,NDIMEDO 20 JDIME=1,NDIMEXJACM(IDIME,JDIME)=0.0DO 20 INODE=1,NNODE

XJACM(IDIME,JDIME)=XJACM(IDIME,JDIME)+DERIV(IDIME,INODE)*.ELCOD(JDIME,INODE)

20 CONTINUECC*** CALCULATE DETERMINANT AND INVERSE OF JACOBIAN MATRIXC

DJACB=XJACM(1,1)*XJACM(2,2)-XJACM(1,2)*XJACM(2,1)IF(DJACB.GT.0.0) GO TO 30STOP

30 XJACI(1,1)=XJACM(2,2)/DJACBXJACI(2,2)=XJACM(1,1)/DJACBXJACI(1,2)=-XJACM(1,2)/DJACBXJACI(2,1)=-XJACM(2,1)/DJACB

CC*** CALCULATE CARTESIAN DERIVATIVESC

DO 40 IDIME=1,NDIMEDO 40 INODE=1,NNODECARTD(IDIME,INODE)=0.0DO 40 JDIME=1,NDIMECARTD(IDIME,INODE)=CARTD(IDIME,INODE)+XJACI(IDIME,JDIME)*.DERIV(JDIME,INODE)

40 CONTINUE900 FORMAT(//36H PROGRAM HALTED IN SUBROUTINE JACOB2/11X,

.22H ZERO OR NEGATIVE AREA/10X,16H ELEMENT NUMBER ,I5)RETURNEND

Page 19: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

19

Subrotinas BMAT(B, PS, PB)

A subrotina BMATB determina a matriz das deformações Bpara o elemento de viga.

A subrotina BMATPS determina a matriz das deformações B para o elemento plano 2D

A subrotina BMATPB determina a matriz das deformações B para o elemento de placa.

= = =Lu LNd Bdε

Page 20: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

20

Subrotina BMATPS

SUBROUTINE BMATPS

INCLUDE 'FEMPLANO.COM'

NGASH=0DO 10 INODE=1,NNODEMGASH=NGASH+1NGASH=MGASH+1BMATX(1,MGASH)=CARTD(1,INODE)BMATX(1,NGASH)=0.0BMATX(2,MGASH)=0.0BMATX(2,NGASH)=CARTD(2,INODE)BMATX(3,MGASH)=CARTD(2,INODE)BMATX(3,NGASH)=CARTD(1,INODE)

10 CONTINUERETURNEND

Page 21: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

21

Subrotina DBE

A subrotina DBE multiplica a matriz D pela matriz B

SUBROUTINE DBEINCLUDE 'FEMPLANO.COM'

CC*** CALCULATE D X BC

DO 10 ISTRE=1,NSTREDO 10 IEVAB=1,NEVABDBMAT(ISTRE,IEVAB)=0.0DO 10 JSTRE=1,NSTREDBMAT(ISTRE,IEVAB)=DBMAT(ISTRE,IEVAB)+

.DMATX(ISTRE,JSTRE)*BMATX(JSTRE,IEVAB)10 CONTINUE

RETURNEND

Page 22: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

22

Subrotinas LOAD(B,PS,PB)

A subrotina LOADB determina as nodais equivalentes a a uma carga distribuída no elemento de viga.

A subrotina LOADPS determina as cargas nodais equivalentes a cargas gravíticas, a cargas distribuídas sobre os lados do elemento, a cargas devidas à temperatura e a cargas nodais no elemento.

Page 23: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

23

Subrotinas LOAD(B,PS,PB)

LOAD (B,PS,PB)

SFR

(1,2)

JACOB

(1,2)

xei i

y

bf N dxdy

b⎧ ⎫

= − ⎨ ⎬⎩ ⎭

Para mais detalhes ver: Finite Element ProgramingAutores: Hinton, E. and Owen, D. R. J.,Editora: Academic Press,Ano: 1977

Força Gravítica

Page 24: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

24

Subrotina FRONT

A matriz de Rigidez Global e o Vector Força Global são obtidos e procede-se à resolução do sistema de equações obtido recorrendo ao método de eliminação de Gauss e substituição.

Page 25: Sumário e Objectivos - fe.up.ptldinis/910aulaef.pdf · fortran77. novembro método ... jacobian matrix c and its determinant and the inverse for 2d elements c ... c*** calculate

Novembro Método dos Elementos Finitos9ªAula e 10ªAula

25

Subrotinas STRE (B,PS,PB)

Determina as tensões nos pontos de GAUSS a partir dos deslocamentos nodais conhecidos e determinados por resolução do sistema de equações anteriormente obtido