1 : C CHGREP2 SOURCE CHAT 05/01/12 21:56:48 5004 2 : SUBROUTINE CHGREP2(COSA,SINA,XSTRS,ISENS,IND) 3 : *---------------------------------------------------------------------* 4 : * * 5 : * PASSAGE DU REPERE D'ORTHOTROPIE AU REPERE LOCAL DES ELEMENTS * 6 : * (OU LE CONTRAIRE) POUR LES DEFORMATIONS OU LES CONTRAINTES DANS * 7 : * LE CAS DE L'ELEMENT DST * 8 : * * 9 : *---------------------------------------------------------------------* 10 : * * 11 : * ENTREES : * 12 : * ________ * 13 : * * 14 : * COSA, SINA = A angle de rotation entre le repère local et le * 15 : * repère d'orthotropie * 16 : * XSTRS = tableau de contraintes ou de déformations * 17 : * ISENS = 0 -> passage rep. ortho.-> rep. local * 18 : * 1 -> passage rep. local -> rep. ortho. 19 : * IND = 0 -> tableau de déformations * 20 : * 1 -> tableau de contraintes * 21 : * * 22 : * SORTIES : * 23 : * ________ * 24 : * * 25 : * XSTRS = tableau de contraintes ou de déformations après * 26 : * le changement de repère * 27 : * * 28 : *---------------------------------------------------------------------* 29 : IMPLICIT INTEGER(I-N) 30 : IMPLICIT REAL*8(A-H,O-Z) 31 : * 32 : DIMENSION TRAV(3,3),A(3,3),R(3,3),RT(3,3) 33 : DIMENSION XSTRS(*) 34 : * 35 : * Matrice de passage entre le repere local de la coque 36 : * et le repere d'orthotropie 37 : * 37 : CALL ZERO(R,3,3) 37 : CALL ZERO(RT,3,3) 38 : R(1,1)=COSA 39 : IF (ISENS.EQ.0) THEN 40 : R(2,1)=-SINA 41 : ELSE 42 : R(2,1)=SINA 43 : ENDIF 44 : R(1,2)=-R(2,1) 45 : R(2,2)= R(1,1) 46 : R(3,3)= 1.D0 47 : SIGFLX= 1.D0 47 : CALL TRSPOD(R,3,3,RT) 48 : * 49 : * Rotation du tenseur pour les termes de membrane 50 : * 50 : CALL ZERO(A,3,3) 50 : CALL ZERO(TRAV,3,3) 51 : A(1,1) = XSTRS(1) 52 : A(2,2) = XSTRS(2) 53 : A(1,2) = XSTRS(3) 54 : A(1,3) = XSTRS(7) 55 : A(2,3) = XSTRS(8) 56 : IF (IND.EQ.0) THEN 57 : A(1,2) = A(1,2)/2.D0 58 : A(1,3) = A(1,3)/2.D0 59 : A(2,3) = A(2,3)/2.D0 60 : ENDIF 61 : AUX4=XSTRS(4) 62 : AUX5=XSTRS(5) 63 : AUX6=XSTRS(6) 64 : A(2,1)=A(1,2) 65 : A(3,1)=A(1,3) 66 : A(3,2)=A(2,3) 67 : * t 68 : * >>> Changement de repere : A = R A R <<< 69 : * 69 : CALL MULMAT(TRAV,A,R,3,3,3) 69 : CALL MULMAT(A,RT,TRAV,3,3,3) 70 : IF (IND.EQ.0) THEN 71 : A(1,2) = A(1,2)*2.D0 72 : A(1,3) = A(1,3)*2.D0 73 : A(2,3) = A(2,3)*2.D0 74 : ENDIF 75 : XSTRS(1)=A(1,1) 76 : XSTRS(2)=A(2,2) 77 : XSTRS(3)=A(1,2) 78 : XSTRS(7)=A(1,3) 79 : XSTRS(8)=A(2,3) 80 : * 81 : * Rotation du tenseur pour les termes de flexion 82 : * 83 : 83 : CALL ZERO(A,3,3) 83 : CALL ZERO(TRAV,3,3) 84 : A(1,1)=AUX4 85 : A(2,2)=AUX5 86 : A(1,2)=AUX6 87 : IF (IND.EQ.0) A(1,2) = A(1,2)/2.D0 88 : A(2,1)=A(1,2) 89 : * t 90 : * >>> Changement de repere : A = R A R <<< 91 : * 91 : CALL MULMAT(TRAV,A,R,3,3,3) 91 : CALL MULMAT(A,RT,TRAV,3,3,3) 92 : IF (IND.EQ.0) A(1,2) = A(1,2)*2.D0 93 : XSTRS(4)= A(1,1) 94 : XSTRS(5)= A(2,2) 95 : XSTRS(6)= A(1,2) 96 : * 97 : RETURN 98 : END 99 : 100 : 101 : 102 : 103 : 104 : 105 :
© Cast3M 2003 - All rights reserved.
Disclaimer