1 : C CQ3GRF SOURCE CHAT 05/01/12 22:26:55 5004 2 : SUBROUTINE CQ3GRF(XXE,UUE,GRADF, 3 : 1 UE,XX,YY,P,XE,YE,ZE,DT,DF,T,Q,SD,TM) 4 : C|=====================================================================| 5 : C| | 6 : C| ELEMENT COQ3 CALCUL DES GRADIENS EN FLEXION ( GARFLEXI ) | 7 : C| | 8 : C|== ENTREE | 9 : C| XXE(3,3) COORDONEES DES 3 NOEUDS DE L ELEMENT | 10 : C| RANGES X(1,2)=COORDONNEE X DU NOEUD 2 | 11 : C| X(2,2)=COORDONNEE Y DU NOEUD 2 | 12 : C| X(3,2)=COORDONNEE Z DU NOEUD 2 | 13 : C| UUE(18) VECTEUR DEPLACEMENT DE L ELEMENT | 14 : C| | 15 : C|== SORTIE | 16 : C| GARDF(9) GARFLEXI AUX CENTRE DE GRAVITE | 17 : C| RANGEE 1-9 | 18 : C| WDXX WDXY 0 0 WDYX WDYY 0 0 0 | 19 : C| | 20 : C| CODE SUO X.Z. | 21 : C|=====================================================================| 22 : IMPLICIT INTEGER(I-N) 23 : IMPLICIT REAL*8(A-H,O-Z) 24 : DIMENSION GRADF(9),XXE(3,3),UUE(18) 25 : DIMENSION TM(4),UE(18),DT(6),DF(9) 26 : DIMENSION XX(3),YY(3),P(3,3),XE(3),YE(3),ZE(3) 27 : DIMENSION T(4,3),Q(3,9),SD(3) 28 : DATA UNTIER,DETIER/.333333333333333D0,.6666666666666667D0/ 29 : DATA QUTIER,CISOIX/1.33333333333333D0,.0833333333333333D0/ 30 : DATA UNSIX/0.1666666666666667D0/ 31 : C 32 : C 33 : C 34 : DO 2 IP=1,18 35 : 2 UE(IP)=UUE(IP) 36 : DO 4 IP=1,3 37 : XE(IP)=XXE(1,IP) 38 : YE(IP)=XXE(2,IP) 39 : ZE(IP)=XXE(3,IP) 40 : 4 CONTINUE 40 : CALL PASSA(XE,YE,ZE,P,X13,X23,Y13,Y23) 41 : DO 10 IP=1,6 42 : IP1=3*(IP-1) 43 : DO 5 IQ=1,3 44 : 5 XX(IQ)=UE(IQ+IP1) 44 : CALL MULMAT(YY,P,XX,3,1,3) 45 : DO 7 IQ=1,3 46 : 7 UE(IQ+IP1)=YY(IQ) 47 : 10 CONTINUE 48 : DO 8 IP=1,3 49 : IP1=IP-1 50 : IP2=2*IP1 51 : IP3=3*IP1 52 : IP6=6*IP1 53 : DO 9 IQ=1,2 54 : 9 DT(IQ+IP2)=UE(IQ+IP6) 55 : DO 11 IQ=3,5 56 : IQ2=IQ-2 57 : 11 DF(IQ2+IP3)=UE(IQ+IP6) 58 : 8 CONTINUE 59 : C === 60 : S=1./(X13*Y23-X23*Y13) 61 : A1=Y13 62 : A2=-X13 63 : A3=Y23 64 : A4=-X23 65 : C === MATRICE T(4,3) 66 : T(1,1)=Y23*Y23 67 : T(1,2)=Y13*Y13 68 : T(1,3)=-2.0D0*Y13*Y23 69 : T(2,1)=-X23*Y23 70 : T(2,2)=-X13*Y13 71 : T(2,3)=(X13*Y23+X23*Y13) 72 : T(3,1)=-X23*Y23 73 : T(3,2)=-X13*Y13 74 : T(3,3)=(X13*Y23+X23*Y13) 75 : T(4,1)=X23*X23 76 : T(4,2)=X13*X13 77 : T(4,3)=-2.0D0*X13*X23 78 : C=== MATRICE Q(3,9) 79 : Q(1,1)=DETIER 80 : Q(1,2)=UNTIER*(2.*A1+A3) 81 : Q(1,3)=UNTIER*(2.*A2+A4) 82 : Q(1,4)=-QUTIER 83 : Q(1,5)=UNTIER*(-A1+2.*A3) 84 : Q(1,6)=UNTIER*(-A2+2.*A4) 85 : Q(1,7)=DETIER 86 : Q(1,8)=-A1+UNTIER*A3 87 : Q(1,9)=-A2+UNTIER*A4 88 : Q(2,1)=-QUTIER 89 : Q(2,2)=UNTIER*(2.*A1-A3) 90 : Q(2,3)=UNTIER*(2.*A2-A4) 91 : Q(2,4)=DETIER 92 : Q(2,5)=UNTIER*(A1+2.*A3) 93 : Q(2,6)=UNTIER*(A2+2.*A4) 94 : Q(2,7)=DETIER 95 : Q(2,8)=-A3+UNTIER*A1 96 : Q(2,9)=-A4+UNTIER*A2 97 : Q(3,1)=-DETIER 98 : Q(3,2)=UNTIER*A1+0.5*A3 99 : Q(3,3)=UNTIER*A2+0.5*A4 100 : Q(3,4)=-DETIER 101 : Q(3,5)=0.5*A1+UNTIER*A3 102 : Q(3,6)=0.5*A2+UNTIER*A4 103 : Q(3,7)=QUTIER 104 : Q(3,8)=-UNSIX*(A1+A3) 105 : Q(3,9)=-UNSIX*(A2+A4) 106 : C === 106 : CALL MULMAT(SD,Q,DF,3,1,9) 106 : CALL MULMAT(TM,T,SD,4,1,3) 107 : GRADF(1)=-S*S*TM(1) 108 : GRADF(2)=-S*S*TM(2) 109 : GRADF(3)=0.0D0 110 : GRADF(4)=-S*S*TM(3) 111 : GRADF(5)=-S*S*TM(4) 112 : GRADF(6)=0.0D0 113 : GRADF(7)=0.0D0 114 : GRADF(8)=0.0D0 115 : GRADF(9)=0.0D0 116 : RETURN 117 : END 118 :
© Cast3M 2003 - All rights reserved.
Disclaimer