1 : C COQ3SH SOURCE CHAT 05/01/12 22:21:34 5004 2 : SUBROUTINE COQ3SH(QSI,ETA,XEL,VNM) 3 : C======================================================================= 4 : C 5 : C EVALUATION DES FONCTIONS DE FORME DU DKT OU COQ3 6 : C BASE SUR UNE INTERPOLATION CUBIQUE DES FCTNS DE FORME 7 : C 8 : C ENTREES 9 : C QSI ETA COORDONNEES REDUITES DU POINT DE GAUSS 10 : C XEL(3,3)=COORDONNEES LOCALES DE L ELEMENT 11 : C NOEUD 1 2 SUR L AXE QSI NOEUD 1 EN 0,0,0 12 : C NOEUD 3 DANS LE PLAN QSI ETA 13 : C SORTIES 14 : C VNM(3,9) = FONCTION DE FORME POUR W 15 : C VNM(1,1:9)= VALEUR DE W 16 : C VNM(2,1:9)= DERIVEE W,X 17 : C VNM(3,1:9)= DERIVEE W,Y 18 : C 19 : C EBERSOLT SEPTEMBRE 85 20 : C IL EXISTE UNE AUTRE ROUTINE QUI CALCULE QUE W 21 : C C EST MFDKT 22 : C======================================================================= 23 : IMPLICIT INTEGER(I-N) 24 : IMPLICIT REAL*8(A-H,O-Z) 25 : DIMENSION XEL(3,*),VNM(3,*),VNX(9),VNY(9) 26 : DATA UN,DEUX,TROIS,SIX,UNDEMI/1.D0,2.D0,3.D0,6.D0,.5D0/ 27 : DATA XZER/0.D0/ 28 : C 29 : C MISE A ZERO DE VNM 30 : C 31 : DO 10 IA=1,9 32 : DO 10 IB=1,3 33 : VNM(IB,IA)=XZER 34 : 10 CONTINUE 35 : C 36 : C CALCUL DES FONCTIONS D INTERPOLATION 37 : C 38 : AL=UN-QSI-ETA 39 : A=QSI*ETA*AL 40 : C 41 : VNM(1,1)= AL*AL*(TROIS-DEUX*AL) +A*DEUX 42 : VNM(1,2)= AL*AL*QSI +A*UNDEMI 43 : VNM(1,3)= AL*AL*ETA +A*UNDEMI 44 : C 45 : VNM(1,4)=(TROIS-DEUX*QSI)*QSI*QSI +A*DEUX 46 : VNM(1,5)=(QSI-UN)*QSI*QSI -A 47 : VNM(1,6)= QSI*QSI*ETA +A*UNDEMI 48 : C 49 : VNM(1,7)=(TROIS-DEUX*ETA)*ETA*ETA +A*DEUX 50 : VNM(1,8)= ETA*ETA*QSI +A*UNDEMI 51 : VNM(1,9)=(ETA-UN)*ETA*ETA -A 52 : C 53 : C DERIVEES PAR RAPPORT A QSI 54 : C 55 : B = ETA*(AL-QSI) 56 : C 57 : VNX(1)= SIX*AL*(AL-UN) +B*DEUX 58 : VNX(2)=(AL-DEUX*QSI)*AL +B*UNDEMI 59 : VNX(3)=-DEUX*AL*ETA +B*UNDEMI 60 : C 61 : VNX(4)= SIX*QSI*(UN-QSI) +B*DEUX 62 : VNX(5)= QSI*(TROIS*QSI-DEUX) -B 63 : VNX(6)= DEUX*QSI*ETA +B*UNDEMI 64 : C 65 : VNX(7)= B*DEUX 66 : VNX(8)= ETA*ETA +B*UNDEMI 67 : VNX(9)= -B 68 : C 69 : C DERIVEES PAR RAPPORT A ETA 70 : C 71 : C = QSI*(AL-ETA) 72 : C 73 : VNY(1)= SIX*AL*(AL-UN) +C*DEUX 74 : VNY(2)=-DEUX*QSI*AL +C*UNDEMI 75 : VNY(3)=(AL-DEUX*ETA)*AL +C*UNDEMI 76 : C 77 : VNY(4)= C*DEUX 78 : VNY(5)= -C 79 : VNY(6)= QSI*QSI +C*DEUX 80 : C 81 : VNY(7)= SIX*ETA*(UN-ETA) +C*DEUX 82 : VNY(8)= DEUX*QSI*ETA +C*UNDEMI 83 : VNY(9)= ETA*(TROIS*ETA-DEUX) -C 84 : C 85 : C VARIABLES DANS LE REPERE X,Y 86 : C 87 : X21=XEL(1,2)-XEL(1,1) 88 : X13=XEL(1,1)-XEL(1,3) 89 : Y13=XEL(2,1)-XEL(2,3) 90 : C 91 : C CHANGEMENT DE REPERE POUR W 92 : C 93 : CC =VNM(1,2)*X21-VNM(1,3)*X13 94 : VNM(1,2)=-VNM(1,3)*Y13 95 : VNM(1,3)=-CC 96 : CC =VNM(1,5)*X21-VNM(1,6)*X13 97 : VNM(1,5)=-VNM(1,6)*Y13 98 : VNM(1,6)=-CC 99 : CC =VNM(1,8)*X21-VNM(1,9)*X13 100 : VNM(1,8)=-VNM(1,9)*Y13 101 : VNM(1,9)=-CC 102 : C 103 : C CHANGEMENT DE REPERE POUR W,X 104 : C 105 : VNM(2,1)= VNX(1)/X21 106 : VNM(2,2)=-VNX(3)*Y13/X21 107 : VNM(2,3)=-VNX(2) +VNX(3)*X13/X21 108 : C 109 : VNM(2,4)= VNX(4)/X21 110 : VNM(2,5)=-VNX(6)*Y13/X21 111 : VNM(2,6)=-VNX(5) +VNX(6)*X13/X21 112 : C 113 : VNM(2,7)= VNX(7)/X21 114 : VNM(2,8)=-VNX(9)*Y13/X21 115 : VNM(2,9)=-VNX(8) +VNX(9)*X13/X21 116 : C 117 : C CHANGEMENT DE REPERE POUR W,Y 118 : C 119 : VNM(3,1)=-VNX(1)*X13/(X21*Y13) - VNY(1)/Y13 120 : VNM(3,2)= VNX(3)*X13/X21 + VNY(3) 121 : VNM(3,3)= VNX(2)*X13/Y13 -VNX(3)*X13*X13/(X21*Y13) 122 : 1 +VNY(2)*X21/Y13 -VNY(3)*X13/Y13 123 : C 124 : VNM(3,4)=-VNX(4)*X13/(X21*Y13) - VNY(4)/Y13 125 : VNM(3,5)= VNX(6)*X13/X21 + VNY(6) 126 : VNM(3,6)= VNX(5)*X13/Y13 -VNX(6)*X13*X13/(X21*Y13) 127 : 1 +VNY(5)*X21/Y13 -VNY(6)*X13/Y13 128 : C 129 : VNM(3,7)=-VNX(7)*X13/(X21*Y13) - VNY(7)/Y13 130 : VNM(3,8)= VNX(9)*X13/X21 + VNY(9) 131 : VNM(3,9)= VNX(8)*X13/Y13 -VNX(9)*X13*X13/(X21*Y13) 132 : 1 +VNY(8)*X21/Y13 -VNY(9)*X13/Y13 133 : C 134 : RETURN 135 : END 136 :
© Cast3M 2003 - All rights reserved.
Disclaimer