dohcoe
C DOHCOE SOURCE CHAT 05/01/12 22:53:24 5004 C C C======================================================================= C C MATRICE DE HOOK DES COQUES EPAISSES C C ENTREES C VELA() = materiau dans un tableau de travail C MATE = Nom du materiau C IFOU = num{ro d'harmonique de fourier: IFOUR de CCOPTIO C LHOOK = taille de la matrice de hooke C C SORTIES C DDHOOK(LHOOK,LHOOK) = matrice de hooke C IRET = 1 si option existante 0 SINON C C Passage en nouveau CHAMELEM par I.Monnier le 4 05 90 C======================================================================= C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) PARAMETER(UNDEMI=.5D0,XZER=0.0D0,XK=1.2D0) PARAMETER(UN=1.D0,DEUX=2.D0) CHARACTER*8 MATE C DIMENSION VELA(*),DDHOOK(LHOOK,*) REAL*8 D3HOO1(3,3),D3HOO2(3,3),ROTHOO(3,3) REAL*8 D2HOO1(2,2),D2HOO2(2,2),RO2HOO(2,2) C IRET=1 C C MATERIAU ISOTROPE C IF(MATE.EQ.'ISOTROPE') THEN C C CAS TRIDIMENSIONNEL C IF(IFOU.EQ.2) THEN YOU=VELA(1) XNU=VELA(2) AUX=YOU/(UN-XNU*XNU) AUX1=AUX*XNU GEGE=YOU*UNDEMI/(UN+XNU) C DDHOOK(1,1)=AUX DDHOOK(2,1)=AUX1 DDHOOK(1,2)=AUX1 DDHOOK(2,2)=AUX C DDHOOK(3,3)=GEGE DDHOOK(4,4)=GEGE/XK DDHOOK(5,5)=DDHOOK(4,4) ELSE IRET=0 ENDIF C C MATERIAU ORTHOTROPE ET UNIDIRECTIONNEL C ELSE IF(MATE.EQ.'ORTHOTRO'.OR. 1 MATE.EQ.'UNIDIREC') THEN C C CAS TRIDIMENSIONNEL C IF(IFOU.EQ.2)THEN C IF(MATE.EQ.'ORTHOTRO')THEN YG1 = VELA(1) YG2 = VELA(2) XNU12 = VELA(3) G12 = VELA(4) G23 = VELA(5) G13 = VELA(6) COSA = VELA(7) SINA = VELA(8) X1NUNU = UN - (XNU12**2) * YG2 / YG1 C D3HOO1(1,1) = YG1 / X1NUNU D3HOO1(2,2) = YG2 / X1NUNU D3HOO1(1,2) = XNU12 * D3HOO1(2,2) D3HOO1(2,1) = D3HOO1(1,2) D3HOO1(3,3) = G12 D3HOO1(1,3) = XZER D3HOO1(2,3) = XZER D3HOO1(3,1) = XZER D3HOO1(3,2) = XZER C D2HOO1(1,1) = G13/XK D2HOO1(2,2) = G23/XK D2HOO1(1,2) = XZER D2HOO1(2,1) = XZER ELSE D3HOO1(1,1)=VELA(1) COSA=VELA(2) SINA=VELA(3) ENDIF C COS2 = COSA**2 SIN2 = SINA**2 SINCOS = SINA * COSA ROTHOO(1,1) = COS2 ROTHOO(1,2) = SIN2 ROTHOO(1,3) = SINCOS ROTHOO(2,1) = SIN2 ROTHOO(2,2) = COS2 ROTHOO(2,3) = - SINCOS ROTHOO(3,1) = - DEUX * SINCOS ROTHOO(3,2) = DEUX * SINCOS ROTHOO(3,3) = COS2 - SIN2 C C PASSAGE DANS LE REPERE DE L'ELEMENT: DO 400 J=1,3 DO 400 I=1,3 DDHOOK(I,J) = D3HOO2(I,J) 400 CONTINUE C IF(MATE.EQ.'ORTHOTRO')THEN RO2HOO(1,1) = COSA RO2HOO(1,2) = SINA RO2HOO(2,1) = -SINA RO2HOO(2,2) = COSA ENDIF C DO 500 J=1,2 DO 500 I=1,2 DDHOOK(3+I,3+J) = D2HOO2(I,J) 500 CONTINUE C ELSE IRET=0 ENDIF ELSE IRET=0 ENDIF RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales