hookun
C HOOKUN SOURCE BP208322 17/03/01 21:17:38 9325 + MELE,NPINT,IFOU,KCAS,NBGMAT,NELMAT,SECT,LHOOK, + TXR,XLOC,XGLOB,D1HOOK,ROTHOO,DDHOMU,DDHOOK, + COBMA,XMOB,IRET) C C---------------------------------------------------------------------- C C Calcul de la matrice de HOOKE dans le cas d'un C matériau unidirectionnel C C Entrees: C -------- C VALMAT tableau de materiau C IB numero de l'element C IGAU numero du point de Gauss C MFR numero de formulation C EXCEN excentrement (coques minces avec ou sans cisail. transv) C EPAIST epaisseur (coques minces avec ou sans cisail. transv) C MELE numero de l'element fini C NPINT coque integree ou non C IFOU numero d'harmonique de Fourier C KCAS = 1 si on veut la matrice pour elle-meme C = 2 si on veut la matrice pour l'inverser ensuite C NBGMAT, NELMAT tailles des tableaux C SECT SECTION DE L'ELEMENT IB (<> 0 SI MFR.EQ.27) C LHOOK taille de la matrice de HOOKE C TXR,XLOC,XGLOB,D1HOOK,ROTHOO tableaux de travail C C Sorties: C -------- C DDHOOK matrice de HOOKE C IRET = 1 si option existante, 0 sinon C C--------------------------------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0) CHARACTER*8 MATE C -INC CCHAMP -INC PPARAM -INC CCOPTIO C * DIMENSION VALMAT(*) DIMENSION DDHOOK(LHOOK,*),DDHOMU(LHOOK,*) DIMENSION COBMA(10),COBAUX(10) REAL*8 D3HOO1(3,3),D3HOO2(3,3),RO1HOO(3,3) REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2) REAL*8 XLOC(3,3),XGLOB(3,3),TXR(IDIM,*) REAL*8 D1HOOK(LHOOK,*),ROTHOO(LHOOK,*) C C INITIALISATION C MATE='UNIDIREC' C IF ((MFR.EQ.1.OR.MFR.EQ.33).AND.IGAU.LE.NBGMAT) THEN c c Formulation massive c IF (MFR.EQ.1) THEN C MATRICE DE HOOKE /AXES D'ARMAURE D1HOOK(1,1)=VALMAT(1) ELSE c c Formulation milieu poreux c * elements massifs * IF(MELE.GE.79.AND.MELE.LE.83) THEN & D1HOOK,ROTHOO,DDHOOK,LHOOK, & COBMA,XMOB,KCAS,IRET) GO TO 2035 * * elements joints * ELSE IF(MELE.GE.108.AND.MELE.LE.110) THEN *********** COBMA ET XMOB PAS DEFINIS !!!! IRET=0 GO TO 2035 ELSE IRET=0 GO TO 2035 ENDIF * ENDIF * C DEFINITION DES AXES ORTHO./AXES LOCAUX IF(IDIM.EQ.2)THEN XLOC(1,1)=VALMAT(2) XLOC(2,1)=VALMAT(3) XLOC(1,2)=-XLOC(2,1) XLOC(2,2)=XLOC(1,1) ELSEIF(IDIM.EQ.3)THEN XLOC(1,1)=VALMAT(2) XLOC(2,1)=VALMAT(3) XLOC(3,1)=VALMAT(4) XLOC(1,2)=VALMAT(5) XLOC(2,2)=VALMAT(6) XLOC(3,2)=VALMAT(7) C ENDIF C C DEFINITION DES AXES ORTHO./AXES GLOBAUX C IF(IRET.EQ.1)THEN C DO 1045 K=1,IDIM DO 1045 J=1,IDIM DO 1045 I=1,IDIM XGLOB(K,J)=TXR(J,I)*XLOC(I,K)+XGLOB(K,J) 1045 CONTINUE C MATRICE DE TRANSFORMATION IF(IDIM.EQ.2)THEN ROTHOO(1,1)=XGLOB(1,1)*XGLOB(1,1) ROTHOO(1,2)=XGLOB(1,2)*XGLOB(1,2) ROTHOO(1,4)=XGLOB(1,1)*XGLOB(1,2) ROTHOO(2,1)=XGLOB(2,1)*XGLOB(2,1) ROTHOO(2,2)=XGLOB(2,2)*XGLOB(2,2) ROTHOO(2,4)=XGLOB(2,1)*XGLOB(2,2) ROTHOO(3,3)=UN ROTHOO(4,1)=DEUX*XGLOB(1,1)*XGLOB(2,1) ROTHOO(4,2)=DEUX*XGLOB(1,2)*XGLOB(2,2) ROTHOO(4,4)=XGLOB(1,2)*XGLOB(2,1)+XGLOB(1,1)*XGLOB(2,2) IF(IFOU.EQ.1)THEN ROTHOO(5,5)=XGLOB(1,1) ROTHOO(5,6)=XGLOB(1,2) ROTHOO(6,5)=XGLOB(2,1) ROTHOO(6,6)=XGLOB(2,2) ENDIF ELSEIF(IDIM.EQ.3)THEN DO 1050 IC=1,3 DO 1050 IL=1,3 ROTHOO(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC) 1050 CONTINUE C DO 1060 IL=1,3 ROTHOO(IL,4)=XGLOB(IL,1)*XGLOB(IL,2) ROTHOO(IL,5)=XGLOB(IL,2)*XGLOB(IL,3) ROTHOO(IL,6)=XGLOB(IL,1)*XGLOB(IL,3) 1060 CONTINUE C DO 1065 IC=1,3 ROTHOO(4,IC)=DEUX*XGLOB(1,IC)*XGLOB(2,IC) ROTHOO(5,IC)=DEUX*XGLOB(2,IC)*XGLOB(3,IC) ROTHOO(6,IC)=DEUX*XGLOB(1,IC)*XGLOB(3,IC) 1065 CONTINUE C DO 1070 IL=4,6 IL1=IL-3 IL2=IL1+1 IF(IL2.GT.3)IL2=IL2-3 DO 1070 IC=4,6 IC1=IC-3 IC2=IC1+1 IF(IC2.GT.3)IC2=IC2-3 ROTHOO(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+ . XGLOB(IL1,IC2)*XGLOB(IL2,IC1) 1070 CONTINUE DO 1075 IC=1,6 AA=ROTHOO(6,IC) ROTHOO(6,IC)=ROTHOO(5,IC) ROTHOO(5,IC)=AA 1075 CONTINUE DO 1080 IL=1,6 AA=ROTHOO(IL,6) ROTHOO(IL,6)=ROTHOO(IL,5) ROTHOO(IL,5)=AA 1080 CONTINUE ENDIF C C TRANSFORMATION DE LA MATRICE DE HOOKE ET DE COBAUX C * IF (MFR.EQ.33) THEN DO 1085 IL=1,LHOOK DO 1085 IC=1,LHOOK COBMA(IL)=COBMA(IL)+ROTHOO(IC,IL)*COBAUX(IC) 1085 CONTINUE ENDIF ENDIF C ELSEIF (IGAU.LE.NBGMAT.AND. + (IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN C C Coques minces C IF(MFR.EQ.3) THEN C C CAS DKT INTEGRE C IF (NPINT.NE.0) THEN * CAS NON ENCORE IMPLEMENTE IRET=0 GOTO 2035 ELSE C C CAS TRIDIMENSIONNEL ET FOURIER C IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN D3HOO1(1,1)=VALMAT(1) COSA=VALMAT(2) SINA=VALMAT(3) C COS2 = COSA**2 SIN2 = SINA**2 SINCOS = SINA * COSA C RO1HOO(1,1) = COS2 RO1HOO(1,2) = SIN2 RO1HOO(1,3) = SINCOS RO1HOO(2,1) = SIN2 RO1HOO(2,2) = COS2 RO1HOO(2,3) = - SINCOS RO1HOO(3,1) = - DEUX * SINCOS RO1HOO(3,2) = DEUX * SINCOS RO1HOO(3,3) = COS2 - SIN2 C C PASSAGE DANS LE REPERE DE L'ELEMENT: DO 1090 J=1,3 DO 1090 I=1,3 DDHOOK(I,J) = D3HOO2(I,J) DDHOOK(I+3,J+3) = D3HOO2(I,J) 1090 CONTINUE C C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES C ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN D2HOO1(1,1)=VALMAT(1) COSA=VALMAT(2) SINA=VALMAT(3) COS2 = COSA**2 SIN2 = SINA**2 RO2HOO(1,1) = COS2 RO2HOO(1,2) = SIN2 RO2HOO(2,1) = SIN2 RO2HOO(2,2) = COS2 C C PASSAGE DANS LE REPERE DE L'ELEMENT: DO 1095 J=1,2 DO 1095 I=1,2 DDHOOK(I,J) = D2HOO2(I,J) DDHOOK(I+2,J+2) = D2HOO2(I,J) 1095 CONTINUE C C CAS CONTRAINTES PLANES C ELSE IF(IFOU.EQ.-2) THEN YG1=VALMAT(1) DDHOOK(1,1)=YG1 DDHOOK(3,3)=YG1 C ELSE IRET=0 ENDIF ENDIF C C Coques epaisses C ELSE IF(MFR.EQ.5) THEN C C CAS TRIDIMENSIONNEL C IF(IFOU.EQ.2) THEN D3HOO1(1,1)=VALMAT(1) COSA=VALMAT(2) SINA=VALMAT(3) C COS2 = COSA**2 SIN2 = SINA**2 SINCOS = SINA * COSA RO1HOO(1,1) = COS2 RO1HOO(1,2) = SIN2 RO1HOO(1,3) = SINCOS RO1HOO(2,1) = SIN2 RO1HOO(2,2) = COS2 RO1HOO(2,3) = - SINCOS RO1HOO(3,1) = - DEUX * SINCOS RO1HOO(3,2) = DEUX * SINCOS RO1HOO(3,3) = COS2 - SIN2 C C PASSAGE DANS LE REPERE DE L'ELEMENT: DO 2000 J=1,3 DO 2000 I=1,3 DDHOOK(I,J) = D3HOO2(I,J) 2000 CONTINUE C ELSE IRET=0 ENDIF C C Coques minces avec cisaillement transverse C ELSE IF(MFR.EQ.9) THEN C IF(IFOU.EQ.2) THEN D3HOO1(1,1)=VALMAT(1) COSA=VALMAT(2) SINA=VALMAT(3) C COS2 = COSA**2 SIN2 = SINA**2 SINCOS = SINA * COSA RO1HOO(1,1) = COS2 RO1HOO(1,2) = SIN2 RO1HOO(1,3) = SINCOS RO1HOO(2,1) = SIN2 RO1HOO(2,2) = COS2 RO1HOO(2,3) = - SINCOS RO1HOO(3,1) = - DEUX * SINCOS RO1HOO(3,2) = DEUX * SINCOS RO1HOO(3,3) = COS2 - SIN2 C C PASSAGE DANS LE REPERE DE L'ELEMENT: DO 2015 J=1,3 DO 2015 I=1,3 DDHOOK(I,J) = D3HOO2(I,J) DDHOOK(I+3,J+3) = D3HOO2(I,J) 2015 CONTINUE C ELSE IRET=0 ENDIF C C Cas des barres C ELSE IF(MFR.EQ.27) THEN C YOU=VALMAT(1) DDHOOK(1,1)=YOU*SECT C ELSE IRET=0 GOTO 2035 ENDIF ENDIF C C Prise en compte de l'epaisseur et de l'excentrement C dans le cas des coques minces avec ou sans cisaillement C transverse C IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN DO 1005 IO=1,LHOOK DO 1005 JO=1,LHOOK DDHOOK(IO,JO)=DDHOMU(IO,JO) 1005 CONTINUE ENDIF C 2035 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales