amor2
C AMOR2 SOURCE OF166741 23/04/25 21:15:03 11608 & IVAMAT,IVACAR,CMATE,MFR,NBGMAT,NELMAT,IMAT,LHOOK,NMATT, & IPORE,NDDL,IPMATR,IIPDPG,NCAR1) *---------------------------------------------------------------------* * _________________________________________ * * | | * * | CALCUL DE LA MATRICE D AMORTISSEMENT | * * |_______________________________________| * * * * massif * * * *---------------------------------------------------------------------* * * * ENTREES : * * ________ * * * * MATE Numero du materiau * * MELE Numero de l'element fini * * IPMAIL Pointeur sur un segment MELEME * * IPMINT Pointeur sur un segment MINTE * * NBPGAU Nombre de point d'integration pour la rigidite * * LRE Nombre de ddl dans la matrice de rigidite * * NSTRS Nombre de composante de contraintes/deformations * * IVAMAT Pointeur sur un segment MPTVAL pour le materiau ou * * pour une matrice de hooke * * IVACAR Pointeur sur un segment MPTVAL de caractéristiques * * CMATE Nom du materiau * * MFR Numero de la formulation element fini * * NBGMAT Taille maxi des melval du materiau (pt de gauss) * * NELMAT Taille maxi des melval du materiau (No d'element) * * IMAT (2 il y a une matrice de HOOKE,1 non ) * * NMATT Nombre de composante de materiau (IMAT=1) * * LHOOK Dimension de la matrice de Hooke * * IPORE Nombre de fonctions de forme * * NDDL Nombre de degre de liberte * * * * SORTIES : * * ________ * * * * IPMATR pointeur sur la rigidite de la sous-zone * * * *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL -INC SMCHAML -INC SMINTE -INC SMELEME -INC SMRIGID -INC SMCOORD -INC SMLREEL * SEGMENT,MWRK1 REAL*8 DDHOOK(LHOOK,LHOOK) ,DDHOMU(LHOOK,LHOOK) REAL*8 REL(LRE,LRE) ,RINT(LRE,LRE) , XE(3,NBBB) ENDSEGMENT * SEGMENT,MWRK2 ENDSEGMENT * SEGMENT,MWRK8 REAL*8 XLOC(3,3),XGLOB(3,3),TXR(IDIM,IDIM) REAL*8 D1HO(LHOOK,LHOOK),ROTH(LHOOK,LHOOK) ENDSEGMENT * SEGMENT,MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT * segment,mwrk67 real*8 valcar(nca1) endsegment * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * CHARACTER*8 CMATE,CELEM DIMENSION A(4,60),BB(3,60),PP(4,4),xatef1(3,3) logical drend,BDPGE * * WRITE (*,*) 'Entrée dans AMOR2.' MELEME=IPMAIL NBNN=NUM(/1) NBELEM=NUM(/2) * NV1=NMATT SEGINI,MVELCH * XMATRI=IPMATR NLIGRP=LRE NLIGRD=LRE SEGACT,MCOORD * INTRODUCTION DU POINT AUTOUR DUQUEL SE FAIT LE MOUVEMENT * DE LA SECTION EN DEFO PLANE GENERALISEE * En 1D : pas de rotation IF (IFOUR.EQ.-3) THEN BDPGE=.TRUE. IREF=(IIPDPG-1)*(IDIM+1) XDPGE=XCOOR(IREF+1) YDPGE=XCOOR(IREF+2) ELSE IF ((IFOUR.GE.7.AND.IFOUR.LE.11).OR.IFOUR.EQ.14) THEN BDPGE=.TRUE. XDPGE=XZero YDPGE=XZero ELSE BDPGE=.FALSE. XDPGE=0.D0 YDPGE=0.D0 ENDIF * NHRM=NIFOUR * MINTE=IPMINT C_______________________________________________________________________ C C NUMERO DES ETIQUETTES : C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT C DANS LA ZONE SPECIFIQUE A CHAQUE ELEMENT COMMENCANT PAR : C 5 CONTINUE C ELEMENT 5 ETIQUETTES 1005 2005 3005 4005 ... C 44 CONTINUE C ELEMENT 44 ETIQUETTES 1044 2044 3044 4044 ... C_______________________________________________________________________ C GOTO (99,99,99, 4,99, 4,99, 4,99, 4,99,99,99, 4, 4, 4, 4,99,99,99, 1 99,99, 4, 4, 4, 4,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 2 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 3 99,99,99,99,99,99,99,99, 4, 4, 4, 4, 4,99,99, 4,99,99,99,99, 4 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 5 99,99,99,99,99,99,99,99,99,99, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6 4, 4),MELE * IF (MELE.EQ.183.OR.MELE.EQ.184.OR. . MELE.EQ.193.OR.MELE.EQ.194) GOTO 4 GOTO 99 C_______________________________________________________________________ C C SECTEUR DE CALCUL POUR LES ELEMENTS MASSIFS ET ELEMENTS INCOMPRESSIBLES C_______________________________________________________________________ C 4 CONTINUE DIM3=1.D0 IRTD=1 * * CAS ORTHOTROPE ( 2) ANISOTROPE ( 3) UNIDIRECTIONNEL (4) * IPMIN2=0 IF((MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4) 1 .AND.IMAT.EQ.1)THEN * RECUPERATION DES FONCTIONS DE FORME ET LEURS DERIVEES AU CENTRE DE * L'ELEMENT POUR LE CALCUL DES AXES LOCAUX MINTE2=IPMIN2 SEGACT MINTE2 SEGINI,MWRK8 ENDIF NBNO=NBNN NBBB=NBNN SEGINI,MWRK1,MWRK2 DO 3004 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C CALCUL DES AXES LOCAUX DANS LE CAS DES MATERIAUX ORTHOTROPE , C ANISOTROPE ET UNIDIRECTIONNEL C C* IF((MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4) C* 1 .AND.IMAT.EQ.1)THEN IF (IPMIN2.NE.0) THEN NBSH=MINTE2.SHPTOT(/2) if (nbsh.eq.-1) then GOTO 4999 endif ENDIF C C C CALCUL DES COEFF DE MODIFICATION DE LA MATRICE B-BARRE C (Uniquement en cas d'elements incompressibles) IF (MFR.EQ.31) THEN * WRITE(ioimp,*) 'Appel de BBCALC - IFOUR = ',IFOUR & NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU, & NSTRS,LRE,IFOUR,NHRM,A,BB,SHPTOT,SHPWRK, & BGENE,XDPGE,YDPGE,PP) ENDIF C C BOUCLE SUR LES POINTS DE GAUSS C ISDJC=0 DO 4004 IGAU=1,NBPGAU C C RECUPERATION DE L'EPAISSEUR C IF (IFOUR.EQ.-2)THEN MPTVAL=IVACAR IF (IVACAR.NE.0) THEN MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) DIM3=VELCHE(IGMN,IBMN) ELSE DIM3=1.D0 ENDIF ENDIF ENDIF * 1 MELE,MFR,NBNN,LRE,IFOUR,NSTRS,NHRM,DIM3,XE, 2 SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE) IF (DJAC.EQ.0.D0) THEN INTERR(1)=IB GOTO 4999 ENDIF IF (DJAC.LT.0.D0) ISDJC=ISDJC+1 DJAC=ABS(DJAC)*POIGAU(IGAU) C En cas d'elements incompressibles : BGENE selon la methode B-BARRE IF (MFR.EQ.31) THEN & MELE,NBNN,LRE,IFOUR,NSTRS,XE,DJAC,A,BB,BGENE) ENDIF C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) MLREEL=IELCHE(IGMN,IBMN) SEGACT MLREEL IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) SEGDES MLREEL ELSE IF (IMAT.EQ.1) THEN DO 9004 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALMAT(IM)=VELCHE(IGMN,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9004 CONTINUE IF(MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4)THEN IF (IGAU.LE.NBGMAT) 2 ROTH,DDHOOK,LHOOK,1,IRTD) ELSE IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) ENDIF IF (IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:16)=NOMFR(MFR/2+1) INTERR(1)=IFOUR GOTO 510 ENDIF ENDIF C C CHOIX POUR BDB/DEFO PLANE GENE --- PRODUIT MATRICIEL NORMAL C /MASSIF ------------ PRODUIT PAR BLOC C * initialise * calcul rigidite elementaire C** IF (IFOUR.EQ.-3) THEN IF (BDPGE) THEN ELSE 1 IGAU,IMAT,0.D0) ENDIF * matrice d'efficacite drend = .false. MPTVAL=IVACAR IF (IVACAR.GT.0) THEN segact mptval nca1 = ival(/1) segini,mwrk67 celem = 'MASSIF ' IF(IVAL(NCAR1).GT.0.OR.IVAL(NCAR1+1).GT.0) THEN DO 9008 IM= 1,IVAL(/1) IF (IVAL(IM).GT.0) THEN MELVAL=IVAL(IM) IF (TYVAL(IM).EQ.'REAL*8') THEN IBMN=MIN(IB ,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) VALCAR(IM)=VELCHE(IGMN,IBMN) ELSE IBMN=MIN(IB ,IELCHE(/2)) IGMN=MIN(IGAU,IELCHE(/1)) VALCAR(IM)=IELCHE(IGMN,IBMN) ENDIF ELSE VALCAR(IM)=0.D0 ENDIF 9008 CONTINUE nstep = 2 if (ifour.eq.2) nstep = 3 if (ival(ncar1).gt.0.and.tyval(ncar1).eq.'REAL*8') then drend = .true. do i = 1,nstep do j = 1, nstep xatef1(i,j) = 0.d0 enddo xatef1(i,i) = valcar(ncar1) enddo endif if (ival(ncar1).eq.0.and.tyval(ncar1+1).eq.'REAL*8') then drend = .false. do i = 1,nstep do j = 1, nstep xatef1(i,j) = 0.d0 enddo xatef1(1,1) = valcar(ncar1+7) xatef1(2,2) = valcar(ncar1+8) if (nstep.eq.3) xatef1(3,3) = valcar(ncar1+9) enddo endif & nstep,drend,celem) ENDIF ENDIF * stocke do ii = 1,LRE do jj = 1,LRE rint(ii,jj) = rint(ii,jj) + rel(ii,jj) enddo enddo * 4004 CONTINUE C IF (ISDJC.NE.0.AND.ISDJC.NE.NBPGAU) THEN INTERR(1) = IB GOTO 4999 ENDIF C C REMPLISSAGE DE XMATRI C c CALL REMPMT(RINT,LRE,RE) C+DC C IF (ICAS.NE.3) THEN DO IBK=1,LRE DO IAK=1,LRE RE(IAK,IBK,IB)=RINT(IAK,IBK) ENDDO ENDDO C DO 4110 IAK=1,LRE/2 C DO 4110 IBK=1,LRE/2 C RE(2*IAK-1,2*IBK-1)=RINT(IAK,IBK) C 4110 CONTINUE C ENDIF 3004 CONTINUE C Fin du traitement - Menage 4999 CONTINUE IF (IPMIN2.NE.0) THEN C* IF((MATE.EQ.2.OR.MATE.EQ.3.OR.MATE.EQ.4) C* 1 .AND.IMAT.EQ.1)THEN SEGDES MINTE2 SEGSUP,MWRK8 ENDIF SEGSUP,MWRK1,MWRK2 GOTO 510 * 99 CONTINUE MOTERR(1:4)=NOMTP(MELE) MOTERR(5:12)='AMOR2 ' * 510 CONTINUE SEGSUP,MVELCH * SEGDES XMATRI * WRITE (*,*) 'Sortie de AMOR2.' RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales