1 : C ELLP23 SOURCE CHAT 05/01/12 23:35:31 5004 2 : SUBROUTINE ELLP23(CARACT,COOR,GAMA,ZXX,XCOR,VALDE1,VALDE2, 3 : * ZS,NP,NBELEM,XPI) 4 : C 5 : IMPLICIT INTEGER(I-N) 6 : IMPLICIT REAL*8 (A-H,O-Y) 7 : IMPLICIT COMPLEX*16 (Z) 8 : C 9 : C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 10 : C 11 : C OPERATEUR ELFE LAPLACE POUTRE 12 : C 13 : C CALCUL POUR LA POUTRE N› INP LES VALEURS DE Ua ET DE Ub EN LOCAL 14 : C 15 : C PARAMETRES : 16 : C 17 : C CARACT : TABLEAU DES CARACTERISTIQUE DES POUTRES (9,NP) 18 : C COOR : TABLEAU DES COORDONNEES DES NOEUDS (3,2*NP) 19 : C GAMA : TABLEAU DES VECTEUR DEFINISSANT LE PLAN LOCALE OXY (3,2*NP) 20 : C ZXX : VECTEUR (24*NP) DONNANT LE VECTEUR SOLUTION DU TREILLIS 21 : C DANS LE REPERE GLOBAL 22 : C XCOR : TABLEAU DONNANT LES COORD. DES NOEUDS DE L'OBJET MAILLAGE 23 : C DANS LE REPERE GLOBAL 24 : C ZS : VALEUR DE S = S0 + I W 25 : C NP : NOMBRE DE POUTRES DU TREILLIS 26 : C NBELEM : NOMBRE D'ELEMENTS DU SOUS-MAILLAGE 27 : C XPI : VALEUR PRECISE DE PI 28 : C 29 : C 30 : C SORTIES : 31 : C 32 : C VALDE1 : MODULE DE UX, UY, UZ POUR LES 2 POINTS DE CHAQUE ELEMENT 33 : C DU SOUS-MAILLAGE 34 : C VALDE2 : PHASE DE UX, UY, UZ POUR LES 2 POINTS DE CHAQUE ELEMENT 35 : C DU SOUS-MAILLAGE 36 : C 37 : C 38 : C AUTEUR : SAINT-DIZIER 39 : C DATE : 19 JUILLET 1990 40 : C 41 : C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 42 : C 43 : DIMENSION CARACT(12,*),COOR(3,*),GAMA(3,*) 44 : DIMENSION ZXX(*),XCOR(2,3,NBELEM) 45 : DIMENSION VALDE1(2,NBELEM,3),VALDE2(2,NBELEM,3) 46 : C 47 : DIMENSION ZU(24),ZU1(24),ZU2(24) 48 : DIMENSION R1(3,3),R2(3,3),ZD(12),ZE(12,12) 49 : C 50 : DO 100 INP = 1 , NP 51 : C 52 : DO 101 II = 1 , 24 53 : ZU(II) = ZXX(24*(INP-1)+II) 54 : 101 CONTINUE 55 : C 56 : C 57 : C -------------- ACQUISITION DES CARACTERISTIQUES DE LA POUTRE 58 : C --------------------------------------------- 59 : CE = CARACT( 1,INP) 60 : CNU = CARACT( 2,INP) 61 : CRO = CARACT( 3,INP) 62 : CSE = CARACT( 4,INP) 63 : CC = CARACT( 5,INP) 64 : CIP = CARACT( 6,INP) 65 : CIY = CARACT( 7,INP) 66 : CIZ = CARACT( 8,INP) 67 : CKCY = CARACT( 9,INP) 68 : CKCZ = CARACT(10,INP) 69 : CAM = CARACT(11,INP) 70 : CETA = CARACT(12,INP) 71 : C 72 : ZI = (0.D0 , 1.D0) 73 : C 74 : ZCE = CE*(1.D0+CETA*ZI) 75 : ZCP = SQRT(ZCE/CRO) 76 : ZCMU = ZCE/(2.D0*(1.D0+CNU)) 77 : ZCR = SQRT(ZCMU/CRO) 78 : C 79 : ZALFA2= ZS*ZS*CRO*CSE + CAM*ZS 80 : ZALFA2= ZALFA2 / (ZCE*CSE) 81 : ZALFAX= SQRT(ZALFA2) 82 : C 83 : ZALFA2= ZS*ZS*CRO*CIP + CAM*ZS 84 : ZALFA2= ZALFA2 / (ZCMU*CC) 85 : ZALFAR= SQRT(ZALFA2) 86 : C 87 : ZALFA4= CRO*CRO*CIZ*ZS*ZS*ZS*ZS/ZCMU/CKCY 88 : * + CAM*CRO*CIZ*ZS*ZS*ZS/ZCMU/CKCY/CSE 89 : * + CRO*CSE*ZS*ZS 90 : * + CAM*ZS 91 : ZALFA4= ZALFA4/(ZCE*CIZ) 92 : ZALFA2= SQRT(ZALFA4) 93 : ZALFAY= SQRT(ZALFA2) 94 : C 95 : ZZ3 = CRO*CIZ*(1.D0+ZCE/(ZCMU*CKCY))*ZS*ZS 96 : * + CAM*ZCE*CIZ*ZS/(ZCMU*CKCY*CSE) 97 : ZZ3 = ZZ3 / (ZCE*CIZ*ZALFA2) 98 : C 99 : ZALFA4= CRO*CRO*CIY*ZS*ZS*ZS*ZS/ZCMU/CKCZ 100 : * + CAM*CRO*CIY*ZS*ZS*ZS/ZCMU/CKCZ/CSE 101 : * + CRO*CSE*ZS*ZS 102 : * + CAM*ZS 103 : ZALFA4= ZALFA4/(ZCE*CIY) 104 : ZALFA2= SQRT(ZALFA4) 105 : ZALFAZ= SQRT(ZALFA2) 106 : C 107 : ZZ4 = CRO*CIY*(1.D0+ZCE/(ZCMU*CKCZ))*ZS*ZS 108 : * + CAM*ZCE*CIY*ZS/(ZCMU*CKCZ*CSE) 109 : ZZ4 = ZZ4 / (ZCE*CIY*ZALFA2) 110 : C 111 : N1 = 2*INP-1 112 : N2 = 2*INP 113 : XXA = COOR (1,N1) 114 : XYA = COOR (2,N1) 115 : XZA = COOR (3,N1) 116 : XXB = COOR (1,N2) 117 : XYB = COOR (2,N2) 118 : XZB = COOR (3,N2) 119 : C 120 : XL = SQRT((XXB-XXA)**2 + (XYB-XYA)**2 + (XZB-XZA)**2) 121 : C 122 : C ------------------------------ VECTEUR UNITAIRE OX REPERE LOCALE 123 : C --------------------------------- 124 : XI1 = (XXB-XXA)/XL 125 : XI2 = (XYB-XYA)/XL 126 : XI3 = (XZB-XZA)/XL 127 : C 128 : C ------------------------- VECTEUR UNITAIRE OY REPERE LOCALE 129 : C --------------------------------- 130 : GX = GAMA(1,INP) 131 : GY = GAMA(2,INP) 132 : GZ = GAMA(3,INP) 133 : GG = SQRT(GX*GX + GY*GY + GZ*GZ) 134 : GX = GX/GG 135 : GY = GY/GG 136 : GZ = GZ/GG 137 : C 138 : DELTA = SQRT (1.D0 - (XI1*GX + XI2*GY + XI3*GZ)**2) 139 : C 140 : DET=-(GX*XI3-GZ*XI1)**2-(GY*XI1-GX*XI2)**2-(GY*XI3-GZ*XI2)**2 141 : C 142 : XJ1 = (XI2*(GY*XI1-GX*XI2)-XI3*(GX*XI3-GZ*XI1))*DELTA/DET 143 : XJ2 = (XI3*(GZ*XI2-GY*XI3)-XI1*(GY*XI1-GX*XI2))*DELTA/DET 144 : XJ3 = (XI1*(GX*XI3-GZ*XI1)-XI2*(GZ*XI2-GY*XI3))*DELTA/DET 145 : C 146 : C ---------------------------- VECTEUR UNITAIRE OZ REPERE LOCALE 147 : C --------------------------------- 148 : XK1 = XI2*XJ3 - XI3*XJ2 149 : XK2 = XI3*XJ1 - XI1*XJ3 150 : XK3 = XI1*XJ2 - XI2*XJ1 151 : C 152 : R1(1,1) = XI1 153 : R1(1,2) = XJ1 154 : R1(1,3) = XK1 155 : R1(2,1) = XI2 156 : R1(2,2) = XJ2 157 : R1(2,3) = XK2 158 : R1(3,1) = XI3 159 : R1(3,2) = XJ3 160 : R1(3,3) = XK3 161 : C 162 : C 163 : R2(1,1) = XJ2*XK3 - XJ3*XK2 164 : R2(1,2) = XJ3*XK1 - XJ1*XK3 165 : R2(1,3) = XJ1*XK2 - XJ2*XK1 166 : R2(2,1) = XI3*XK2 - XI2*XK3 167 : R2(2,2) = XI1*XK3 - XI3*XK1 168 : R2(2,3) = XI2*XK1 - XI1*XK2 169 : R2(3,1) = XI2*XJ3 - XI3*XJ2 170 : R2(3,2) = XI3*XJ1 - XI1*XJ3 171 : R2(3,3) = XI1*XJ2 - XI2*XJ1 172 : C 173 : C ----------------------------- MATRICE DIMENSIONNEMENT ZD 174 : C -------------------------- 175 : ZD( 1) = XL**2/ZCP 176 : ZD( 2) = XL**2/ZCP 177 : ZD( 3) = XL**2/ZCP 178 : ZD( 4) = XL/ZCR 179 : ZD( 5) = XL**2/ZCP*ZALFAZ 180 : ZD( 6) = XL**2/ZCP*ZALFAY 181 : ZD( 7) = XL**2/ZCP*ZALFAX 182 : ZD( 8) = XL**2/ZCP*(ZALFAY**3) 183 : ZD( 9) = XL**2/ZCP*(ZALFAZ**3) 184 : ZD(10) = XL/ZCR*ZALFAR 185 : ZD(11) = XL**2/ZCP*(ZALFAZ**2) 186 : ZD(12) = XL**2/ZCP*(ZALFAY**2) 187 : C 188 : C 189 : C ------------------------------- MATRICE DES EFFORTS ZE 190 : C ---------------------- 191 : DO 20 I = 1 , 12 192 : DO 21 J = 1 , 12 193 : ZE(I,J) = 0.D0 194 : 21 CONTINUE 195 : 20 CONTINUE 196 : C 197 : C 198 : ZA5 = 1.D0 199 : ZA6 = 1.D0 200 : ZB6 = 1.D0 / (ZCMU*CKCY*CSE) 201 : ZB5 = 1.D0 / (ZCMU*CKCZ*CSE) 202 : C 203 : ZA8 = (CRO*CSE*ZS*ZS+CAM*ZS)/(ZCMU*ZCMU*CKCY*CKCY*CSE*CSE) 204 : * - 1.D0/(ZCE*CIZ) 205 : ZA9 = (CRO*CSE*ZS*ZS+CAM*ZS)/(ZCMU*ZCMU*CKCZ*CKCZ*CSE*CSE) 206 : * - 1.D0/(ZCE*CIY) 207 : ZB8 = CRO*ZS*ZS*(1.D0/(ZCMU*CKCY)+1.D0/ZCE) 208 : * + CAM*ZS/(ZCMU*CKCY*CSE) 209 : ZB9 = CRO*ZS*ZS*(1.D0/(ZCMU*CKCZ)+1.D0/ZCE) 210 : * + CAM*ZS/(ZCMU*CKCZ*CSE) 211 : C 212 : ZA12= 1.D0/(ZCE*CIZ) 213 : ZA11= 1.D0/(ZCE*CIY) 214 : ZB12= (CRO*CSE*ZS*ZS+CAM*ZS)/(ZCMU*CKCY*CSE) 215 : ZB11= (CRO*CSE*ZS*ZS+CAM*ZS)/(ZCMU*CKCZ*CSE) 216 : C 217 : C 218 : ZE( 1, 1) = 1.D0 219 : ZE( 2, 2) = 1.D0 220 : ZE( 3, 3) = 1.D0 221 : ZE( 4, 4) = 1.D0 222 : ZE( 5, 5) = ZA5 223 : ZE( 5, 9) = ZB5 224 : ZE( 6, 6) = ZA6 225 : ZE( 6, 8) = ZB6 226 : ZE( 7, 7) = 1.D0/(ZCE*CSE) 227 : ZE( 8, 6) = ZB8 228 : ZE( 8, 8) = ZA8 229 : ZE( 9, 5) = ZB9 230 : ZE( 9, 9) = ZA9 231 : ZE(10,10) =-1.D0/(ZCMU*CC) 232 : ZE(11, 3) = ZB11 233 : ZE(11,11) = ZA11 234 : ZE(12, 2) = ZB12 235 : ZE(12,12) = ZA12 236 : C 237 : C 238 : C -- CACUL DE ZU1 = ZR * ZU 239 : C 240 : DO 27 I = 1 , 24 241 : ZU1(I) = 0.D0 242 : ZU2(I) = 0.D0 243 : 27 CONTINUE 244 : C 245 : DO 26 I = 1 , 8 246 : DO 25 J = 1 , 3 247 : DO 24 K = 1 , 3 248 : ZU1((I-1)*3+J)=ZU1((I-1)*3+J)+R2(J,K)*ZU((I-1)*3+K) 249 : 24 CONTINUE 250 : 25 CONTINUE 251 : 26 CONTINUE 252 : C 253 : C -- CACUL DE ZU2 = ZE * ZU1 254 : C 255 : DO 30 I = 1,12 256 : DO 31 J = 1,12 257 : ZU2(I) = ZU2(I) + ZE(I,J)*ZU1(J) 258 : 31 CONTINUE 259 : 30 CONTINUE 260 : C 261 : DO 32 I = 1,12 262 : DO 33 J = 1,6 263 : ZU2(I+12) = ZU2(I+12) + ZE(I,J )*ZU1(J+12) 264 : ZU2(I+12) = ZU2(I+12) - ZE(I,J+6)*ZU1(J+18) 265 : 33 CONTINUE 266 : 32 CONTINUE 267 : C 268 : C 269 : C -- CACUL DE ZU2 = ZD * ZU2 270 : C 271 : C 272 : DO 34 I = 1,12 273 : ZU2(I ) = ZU2(I )/ZD(I) 274 : ZU2(I+12) = ZU2(I+12)/ZD(I) 275 : 34 CONTINUE 276 : C 277 : C 278 : C --------------- NBELEM : NOMBRE D'ELEMENTS DANS LE SOUS MAILLAGE 279 : C 280 : DO 110 IN = 1 , NBELEM 281 : C 282 : XX1 = XCOR ( 1,1,IN) 283 : XY1 = XCOR ( 1,2,IN) 284 : XZ1 = XCOR ( 1,3,IN) 285 : C 286 : XX2 = XCOR ( 2,1,IN) 287 : XY2 = XCOR ( 2,2,IN) 288 : XZ2 = XCOR ( 2,3,IN) 289 : C 289 : CALL ELLP07(XXA,XYA,XZA,XXB,XYB,XZB, 290 : * XX1,XY1,XZ1,XX2,XY2,XZ2,IOUI) 291 : C 292 : IF (IOUI.EQ.0) THEN 293 : C 294 : XXD1 = SQRT((XXA-XX1)**2+(XYA-XY1)**2+(XZA-XZ1)**2) 295 : XXD2 = SQRT((XXA-XX2)**2+(XYA-XY2)**2+(XZA-XZ2)**2) 296 : XXL1= XL -XXD1 297 : XXL2= XL -XXD2 298 : C 299 : C XXDi : DISTANCE DE A AU PT M DE CALCUL DU DEPLACEMENT 300 : C 300 : CALL ELLP31(XXD1,INP,ZS,ZALFAX,ZALFAR,ZALFAY,ZALFAZ, 301 : * Z10X ,Z11X ,Z1,Z2,Z30X ,Z31X ,Z32X ,Z33X ,Z34X ,ZZ3, 302 : * Z40X ,Z41X ,Z42X ,Z43X ,Z44X ,ZZ4) 303 : C 303 : CALL ELLP31(XXL1,INP,ZS,ZALFAX,ZALFAR,ZALFAY,ZALFAZ, 304 : * Z10XL,Z11XL,Z1,Z2,Z30XL,Z31XL,Z32XL,Z33XL,Z34XL,ZZ3, 305 : * Z40XL,Z41XL,Z42XL,Z43XL,Z44XL,ZZ4) 306 : C 307 : ZUX1 = ZU2(19)*Z10XL-ZU2(13)*Z11XL-ZU2(7)*Z10X-ZU2(1)*Z11X 308 : C 309 : ZUY1 =-(ZZ3*Z31X -Z33X )*ZU2(2) - (ZZ3*Z30X -Z32X )*ZU2(6) 310 : * + Z31X *ZU2(12) + Z30X *ZU2(8) 311 : * -(ZZ3*Z31XL-Z33XL)*ZU2(14)+(ZZ3*Z30XL-Z32XL)*ZU2(18) 312 : * + Z31XL*ZU2(24) - Z30XL*ZU2(20) 313 : C 314 : ZUZ1 =-(ZZ4*Z41X -Z43X )*ZU2(3) - (ZZ4*Z40X -Z42X )*ZU2(5) 315 : * + Z41X *ZU2(11) + Z40X *ZU2(9) 316 : * -(ZZ4*Z41XL-Z43XL)*ZU2(15)+(ZZ4*Z40XL-Z42XL)*ZU2(17) 317 : * + Z41XL*ZU2(23) - Z40XL*ZU2(21) 318 : C 319 : C 320 : ZUX1 = ZUX1 * ZD(1) 321 : ZUY1 = ZUY1 * ZD(2) 322 : ZUZ1 = ZUZ1 * ZD(3) 323 : C 324 : ZX1 = R1(1,1)*ZUX1 + R1(1,2)*ZUY1 + R1(1,3)*ZUZ1 325 : ZY1 = R1(2,1)*ZUX1 + R1(2,2)*ZUY1 + R1(2,3)*ZUZ1 326 : ZZ1 = R1(3,1)*ZUX1 + R1(3,2)*ZUY1 + R1(3,3)*ZUZ1 327 : C 327 : CALL ELLP31(XXD2,INP,ZS,ZALFAX,ZALFAR,ZALFAY,ZALFAZ, 328 : * Z10X ,Z11X ,Z1,Z2,Z30X ,Z31X ,Z32X ,Z33X ,Z34X ,ZZ3, 329 : * Z40X ,Z41X ,Z42X ,Z43X ,Z44X ,ZZ4) 330 : C 330 : CALL ELLP31(XXL2,INP,ZS,ZALFAX,ZALFAR,ZALFAY,ZALFAZ, 331 : * Z10XL,Z11XL,Z1,Z2,Z30XL,Z31XL,Z32XL,Z33XL,Z34XL,ZZ3, 332 : * Z40XL,Z41XL,Z42XL,Z43XL,Z44XL,ZZ4) 333 : C 334 : C 335 : ZUX2 = ZU2(19)*Z10XL-ZU2(13)*Z11XL-ZU2(7)*Z10X-ZU2(1)*Z11X 336 : C 337 : ZUY2 =-(ZZ3*Z31X -Z33X )*ZU2(2) - (ZZ3*Z30X -Z32X )*ZU2(6) 338 : * + Z31X *ZU2(12) + Z30X *ZU2(8) 339 : * -(ZZ3*Z31XL-Z33XL)*ZU2(14)+(ZZ3*Z30XL-Z32XL)*ZU2(18) 340 : * + Z31XL*ZU2(24) - Z30XL*ZU2(20) 341 : C 342 : ZUZ2 =-(ZZ4*Z41X -Z43X )*ZU2(3) - (ZZ4*Z40X -Z42X )*ZU2(5) 343 : * + Z41X *ZU2(11) + Z40X *ZU2(9) 344 : * -(ZZ4*Z41XL-Z43XL)*ZU2(15)+(ZZ4*Z40XL-Z42XL)*ZU2(17) 345 : * + Z41XL*ZU2(23) - Z40XL*ZU2(21) 346 : C 347 : C 348 : ZUX2 = ZUX2 * ZD(1) 349 : ZUY2 = ZUY2 * ZD(2) 350 : ZUZ2 = ZUZ2 * ZD(3) 351 : C 352 : C 353 : ZX2 = R1(1,1)*ZUX2 + R1(1,2)*ZUY2 + R1(1,3)*ZUZ2 354 : ZY2 = R1(2,1)*ZUX2 + R1(2,2)*ZUY2 + R1(2,3)*ZUZ2 355 : ZZ2 = R1(3,1)*ZUX2 + R1(3,2)*ZUY2 + R1(3,3)*ZUZ2 356 : C 357 : C 358 : PRZX1 = ZX1 359 : PIZX1 = ZX1*(0.D0,-1.D0) 360 : PRZY1 = ZY1 361 : PIZY1 = ZY1*(0.D0,-1.D0) 362 : PRZZ1 = ZZ1 363 : PIZZ1 = ZZ1*(0.D0,-1.D0) 364 : PRZX2 = ZX2 365 : PIZX2 = ZX2*(0.D0,-1.D0) 366 : PRZY2 = ZY2 367 : PIZY2 = ZY2*(0.D0,-1.D0) 368 : PRZZ2 = ZZ2 369 : PIZZ2 = ZZ2*(0.D0,-1.D0) 370 : C 371 : IF (ABS(PRZX1).LT.1.E-38.AND.ABS(PIZX1).LT.1.E-38) THEN 372 : PPX1 = 0.D0 373 : ELSE 374 : PPX1 = ATAN2(PIZX1,PRZX1)*180.D0/XPI 375 : END IF 376 : C 377 : IF (ABS(PRZY1).LT.1.E-38.AND.ABS(PIZY1).LT.1.E-38) THEN 378 : PPY1 = 0.D0 379 : ELSE 380 : PPY1 = ATAN2(PIZY1,PRZY1)*180.D0/XPI 381 : END IF 382 : C 383 : IF (ABS(PRZZ1).LT.1.E-38.AND.ABS(PIZZ1).LT.1.E-38) THEN 384 : PPZ1 = 0.D0 385 : ELSE 386 : PPZ1 = ATAN2(PIZZ1,PRZZ1)*180.D0/XPI 387 : END IF 388 : C 389 : C 390 : IF (ABS(PRZX2).LT.1.E-38.AND.ABS(PIZX2).LT.1.E-38) THEN 391 : PPX2 = 0.D0 392 : ELSE 393 : PPX2 = ATAN2(PIZX2,PRZX2)*180.D0/XPI 394 : END IF 395 : C 396 : IF (ABS(PRZY2).LT.1.E-38.AND.ABS(PIZY2).LT.1.E-38) THEN 397 : PPY2 = 0.D0 398 : ELSE 399 : PPY2 = ATAN2(PIZY2,PRZY2)*180.D0/XPI 400 : END IF 401 : C 402 : IF (ABS(PRZZ2).LT.1.E-38.AND.ABS(PIZZ2).LT.1.E-38) THEN 403 : PPZ2 = 0.D0 404 : ELSE 405 : PPZ2 = ATAN2(PIZZ2,PRZZ2)*180.D0/XPI 406 : END IF 407 : C 408 : VALDE1(1,IN,1) = ABS(ZX1) 409 : VALDE1(1,IN,2) = ABS(ZY1) 410 : VALDE1(1,IN,3) = ABS(ZZ1) 411 : VALDE1(2,IN,1) = ABS(ZX2) 412 : VALDE1(2,IN,2) = ABS(ZY2) 413 : VALDE1(2,IN,3) = ABS(ZZ2) 414 : C 415 : VALDE2(1,IN,1) = PPX1 416 : VALDE2(1,IN,2) = PPY1 417 : VALDE2(1,IN,3) = PPZ1 418 : VALDE2(2,IN,1) = PPX2 419 : VALDE2(2,IN,2) = PPY2 420 : VALDE2(2,IN,3) = PPZ2 421 : C 422 : C 423 : END IF 424 : C 425 : 110 CONTINUE 426 : C 427 : 100 CONTINUE 428 : C 429 : END 430 : 431 :
© Cast3M 2003 - All rights reserved.
Disclaimer