thetan
C THETAN SOURCE BP208322 17/03/01 21:18:27 9325 1 SD,TXR,XLOC,XGLOB,ROTS,DHOOK,RES,KERRE) ******************************************************************* * APPELE PAR THETAP :CONTRAINTES THERMIQUES POUR LES MATERIAUX * ANISOTROPES * * ENTREES : * MFR = NUMERO DE LA FORMULATION * MELE = NUMERO DE L'ELEMENT FINI * VALMAT = TABLEAU DE MATERIAU * LHOOK = DIMENSION DE LA MATRICE DE HOOKE * NSTRS = NOMBRE DE COMPOSANTES DES CONTRAINTES * TEMP = TEMPERATURES * SD = SECTION * TXR,XLOC,XGLOB,ROTS,DHOOK = TABLEAUX DE TRAVAIL * SORTIES : * RES = TABLEAU DE CONTRAINTES * KERRE= INDICATEUR D'ERREUR * * P DOWLATYARI MARS 92 *********************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC CCHAMP * DIMENSION XLOC(3,3),XGLOB(3,3) DIMENSION ROTS(NSTRS,*),DHOOK(LHOOK,*) DIMENSION TXR(IDIM,*),RES(NSTRS) DIMENSION VALMAT(*) * DIMENSION SIG1(6),SIG2(6) * KERRE=0 * * TEST SUR LA FORMULATION * *-------------------------------------------------------------- * CAS MASSIF ET POREUX *-------------------------------------------------------------- IF(MFR.EQ.1.OR.MFR.EQ.33.OR.MFR.EQ.31) THEN * * * CONTRAINTES PLANES * IF(IFOUR.EQ.-2)THEN * D11=VALMAT(1) D21=VALMAT(2) D22=VALMAT(3) D31=VALMAT(12) D32=VALMAT(13) D33=VALMAT(14) IF (D33.EQ.0.D0) D33=D11*1.D-6 D41=VALMAT(4) D42=VALMAT(5) D43=VALMAT(15) D44=VALMAT(6) DHOOK(1,1)=D11 - ((D31**2)/D33) DHOOK(2,1)=D21 - ((D31*D32)/D33) DHOOK(1,2)=DHOOK(2,1) DHOOK(2,2)=D22 - ((D32**2)/D33) DHOOK(4,1)=D41 - ((D31*D43)/D33) DHOOK(1,4)=DHOOK(4,1) DHOOK(4,2)=D42 - ((D32*D43)/D33) DHOOK(2,4)=DHOOK(4,2) DHOOK(4,4)=D44 - ((D43**2)/D33) ALP1= VALMAT(7) ALP2= VALMAT(8) AL12= VALMAT(9) ALP3=0.D0 XLOC(1,1)=VALMAT(10) XLOC(2,1)=VALMAT(11) XLOC(1,2)=-XLOC(2,1) XLOC(2,2)=XLOC(1,1) * DEFINITION DES AXES ORTHO./AXES GLOBAUX DO 3310 K=1,IDIM DO 3310 J=1,IDIM DO 3310 I=1,IDIM XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K) 3310 CONTINUE CC=XGLOB(1,1)*XGLOB(1,1) SS=XGLOB(2,1)*XGLOB(2,1) CS=XGLOB(1,1)*XGLOB(2,1) * * EN AXES D'ORTHOTROPIE * DO 3315 I=1,4 SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3 1 + DHOOK(I,4)*AL12 3315 CONTINUE * * CHGT D'AXES * SIG2(1)=CC*SIG1(1)+SS*SIG1(2)-2.D0*CS*SIG1(4) SIG2(2)=CC*SIG1(2)+SS*SIG1(1)+2.D0*CS*SIG1(4) SIG2(4)=CS*(SIG1(1)-SIG1(2))+(CC-SS)*SIG1(4) * RES(1)=SIG2(1)*TEMP RES(2)=SIG2(2)*TEMP RES(3)=0.D0 RES(4)=SIG2(4)*TEMP * * DEFORMATIONS PLANES OU AXI OU FOURIER * ELSEIF(IFOUR.EQ.-1.OR.IFOUR.EQ.0 1 .OR.IFOUR.EQ.1.OR.IFOUR.EQ.-3)THEN DHOOK(1,1)=VALMAT(1) DHOOK(2,1)=VALMAT(2) DHOOK(1,2)=DHOOK(2,1) DHOOK(2,2)=VALMAT(3) DHOOK(3,1)=VALMAT(4) DHOOK(1,3)=DHOOK(3,1) DHOOK(3,2)=VALMAT(5) DHOOK(2,3)=DHOOK(3,2) DHOOK(3,3)=VALMAT(6) DHOOK(4,1)=VALMAT(7) DHOOK(1,4)=DHOOK(4,1) DHOOK(4,2)=VALMAT(8) DHOOK(2,4)=DHOOK(4,2) DHOOK(4,3)=VALMAT(9) DHOOK(3,4)=DHOOK(4,3) DHOOK(4,4)=VALMAT(10) ALP1= VALMAT(11) ALP2= VALMAT(12) AL12= VALMAT(13) ALP3= VALMAT(14) XLOC(1,1)=VALMAT(15) XLOC(2,1)=VALMAT(16) XLOC(1,2)=-XLOC(2,1) XLOC(2,2)=XLOC(1,1) C DEFINITION DES AXES ORTHO./AXES GLOBAUX DO 3320 K=1,IDIM DO 3320 J=1,IDIM DO 3320 I=1,IDIM XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K) 3320 CONTINUE CC=XGLOB(1,1)*XGLOB(1,1) SS=XGLOB(2,1)*XGLOB(2,1) CS=XGLOB(1,1)*XGLOB(2,1) * * EN AXES D'ORTHOTROPIE * DO 3300 I=1,4 SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3 1 +DHOOK(I,4)*AL12 3300 CONTINUE * * CHGT D'AXES * SIG2(1)=CC*SIG1(1)+SS*SIG1(2)-2.D0*CS*SIG1(4) SIG2(2)=CC*SIG1(2)+SS*SIG1(1)+2.D0*CS*SIG1(4) SIG2(4)=CS*(SIG1(1)-SIG1(2))+(CC-SS)*SIG1(4) SIG2(3)=SIG1(3) * IF(IFOUR.EQ.-1.OR.IFOUR.EQ.0)THEN RES(1)=SIG2(1)*TEMP RES(2)=SIG2(2)*TEMP RES(3)=SIG2(3)*TEMP RES(4)=SIG2(4)*TEMP ELSE RES(1)=SIG2(1)*TEMP RES(2)=SIG2(2)*TEMP RES(3)=SIG2(3)*TEMP RES(4)=SIG2(4)*TEMP RES(5)=0.D0 RES(6)=0.D0 ENDIF * * TRIDIMENSIONNEL * ELSEIF(IFOUR.EQ.2)THEN DHOOK(1,1)=VALMAT(1) DHOOK(2,1)=VALMAT(2) DHOOK(1,2)=DHOOK(2,1) DHOOK(2,2)=VALMAT(3) DHOOK(3,1)=VALMAT(4) DHOOK(1,3)=DHOOK(3,1) DHOOK(3,2)=VALMAT(5) DHOOK(2,3)=DHOOK(3,2) DHOOK(3,3)=VALMAT(6) DHOOK(4,1)=VALMAT(7) DHOOK(1,4)=DHOOK(4,1) DHOOK(4,2)=VALMAT(8) DHOOK(2,4)=DHOOK(4,2) DHOOK(4,3)=VALMAT(9) DHOOK(3,4)=DHOOK(4,3) DHOOK(4,4)=VALMAT(10) DHOOK(5,1)=VALMAT(11) DHOOK(1,5)=DHOOK(5,1) DHOOK(5,2)=VALMAT(12) DHOOK(2,5)=DHOOK(5,2) DHOOK(5,3)=VALMAT(13) DHOOK(3,5)=DHOOK(5,3) DHOOK(5,4)=VALMAT(14) DHOOK(4,5)=DHOOK(5,4) DHOOK(5,5)=VALMAT(15) DHOOK(6,1)=VALMAT(16) DHOOK(1,6)=DHOOK(6,1) DHOOK(6,2)=VALMAT(17) DHOOK(2,6)=DHOOK(6,2) DHOOK(6,3)=VALMAT(18) DHOOK(3,6)=DHOOK(6,3) DHOOK(6,4)=VALMAT(19) DHOOK(4,6)=DHOOK(6,4) DHOOK(6,5)=VALMAT(20) DHOOK(5,6)=DHOOK(6,5) DHOOK(6,6)=VALMAT(21) ALP1= VALMAT(22) ALP2= VALMAT(23) ALP3= VALMAT(24) AL12= VALMAT(25) AL13= VALMAT(26) AL23= VALMAT(27) XLOC(1,1)=VALMAT(28) XLOC(2,1)=VALMAT(29) XLOC(3,1)=VALMAT(30) XLOC(1,2)=VALMAT(31) XLOC(2,2)=VALMAT(32) XLOC(3,2)=VALMAT(33) C DEFINITION DES AXES ORTHO./AXES GLOBAUX DO 3330 K=1,IDIM DO 3330 J=1,IDIM DO 3330 I=1,IDIM XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K) 3330 CONTINUE * * MATRICE DE TRANSFORMATION * DO 3331 IC=1,3 DO 3331 IL=1,3 ROTS (IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC) 3331 CONTINUE C DO 3332 IL=1,3 ROTS (IL,4)=2.D0*XGLOB(IL,1)*XGLOB(IL,2) ROTS (IL,5)=2.D0*XGLOB(IL,2)*XGLOB(IL,3) ROTS (IL,6)=2.D0*XGLOB(IL,1)*XGLOB(IL,3) 3332 CONTINUE C DO 3333 IC=1,3 ROTS (4,IC)=XGLOB(1,IC)*XGLOB(2,IC) ROTS (5,IC)=XGLOB(2,IC)*XGLOB(3,IC) ROTS (6,IC)=XGLOB(1,IC)*XGLOB(3,IC) 3333 CONTINUE C DO 3334 IL=4,6 IL1=IL-3 IL2=IL1+1 IF(IL2.GT.3)IL2=IL2-3 DO 3334 IC=4,6 IC1=IC-3 IC2=IC1+1 IF(IC2.GT.3)IC2=IC2-3 ROTS (IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+ . XGLOB(IL1,IC2)*XGLOB(IL2,IC1) 3334 CONTINUE DO 3335 IC=1,6 AA=ROTS (6,IC) ROTS (6,IC)=ROTS (5,IC) ROTS (5,IC)=AA 3335 CONTINUE DO 3336 IL=1,6 AA=ROTS (IL,6) ROTS (IL,6)=ROTS (IL,5) ROTS (IL,5)=AA 3336 CONTINUE * * EN AXES D'ORTHOTROPIE * DO 3340 I=1,6 SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3 1 +DHOOK(I,4)*AL12+DHOOK(I,5)*AL13+DHOOK(I,6)*AL23 3340 CONTINUE * * CHGT D'AXES * DO 3350 I=1,6 SIG2(I)=0.D0 DO 3350 J=1,6 SIG2(I)=ROTS(I,J)*SIG1(J)+SIG2(I) 3350 CONTINUE * RES(1)=SIG2(1)*TEMP RES(2)=SIG2(2)*TEMP RES(3)=SIG2(3)*TEMP RES(4)=SIG2(4)*TEMP RES(5)=SIG2(5)*TEMP RES(6)=SIG2(6)*TEMP ELSE KERRE=19 GOTO 99 ENDIF *____________________________________________________________________ * * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 2D JOI2 ET JOI3 *____________________________________________________________________ * ELSEIF (MELE.EQ.85.OR.MELE.EQ.86) THEN * ZKN = VALMAT(2) ALPN= VALMAT(3) C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN RES(1)=0.D0 RES(2)=ALPN * ZKN * TEMP ELSE KERRE=19 GOTO 99 ENDIF *____________________________________________________________________ * * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 3D JOI4 *____________________________________________________________________ * ELSE IF (MELE.EQ.88) THEN ZKN = VALMAT(3) ALPN= VALMAT(4) IF (IFOUR.EQ.2) THEN RES(1)=0.D0 RES(2)=0.D0 RES(3)=ALPN * ZKN * TEMP ELSE KERRE=19 GOTO 99 ENDIF *____________________________________________________________________ * * ELEMENTS POUTRES ET TUYAUX *____________________________________________________________________ * ELSEIF(MELE.EQ.29.OR.MELE.EQ.42.OR.MELE.EQ.84)THEN YOU=VALMAT(1) ALPH=VALMAT(2) AUX = YOU*ALPH*SD * RES(1)= AUX*TEMP * *____________________________________________________________________ * * ELEMENTS BARRES CERCES ET POINT *____________________________________________________________________ * ELSEIF(MELE.EQ.46.OR.MELE.EQ.95.OR.MELE.EQ.45)THEN * IF(MELE.EQ.45.AND.IFOUR.NE.-3) THEN KERRE=86 GO TO 99 ENDIF IF(MELE.EQ.95.AND.IFOUR.NE.0) THEN KERRE=86 GO TO 99 ENDIF * YOU=VALMAT(1) ALPH=VALMAT(2) AUX = YOU*ALPH*SD RES(1)= AUX*TEMP ELSE KERRE=19 ENDIF * 99 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales