1 : C HOOKIS SOURCE AM 14/02/12 21:15:03 7961 2 : SUBROUTINE HOOKIS(VALMAT,VALCAR,VAR,MFR,IB,IGAU,EXCEN,EPAIST, 3 : + INAT,MELE,NPINT,IFOU,KCAS,NBGMAT,NELMAT, 4 : + S,SECT,LHOOK,DDHOMU,DDHOOK,COBMA,XMOB,IRET) 5 : C 6 : C---------------------------------------------------------------------- 7 : C 8 : C Calcul de la matrice de HOOKE dans le cas d'un 9 : C matériau isotrope 10 : C 11 : C Entrees: 12 : C -------- 13 : C VALMAT tableau de materiau 14 : C VALCAR tableau de caracteristiques 15 : C VAR tableau de variables internes 16 : C MFR numero de formulation 17 : C IB numero de l'element 18 : C IGAU numero du point de Gauss 19 : C EXCEN excentrement (coques minces avec ou sans cisail. transv) 20 : C EPAIST epaisseur (coques minces avec ou sans cisail. transv) 21 : C INAT numero de la plasticite 22 : C MELE numero de l'element fini 23 : C NPINT coque integree ou non 24 : C IFOU numero d'harmonique de Fourier 25 : C KCAS = 1 si on veut la matrice pour elle-meme 26 : C = 2 si on veut la matrice pour l'inverser ensuite 27 : C NBGMAT, NELMAT tailles des tableaux 28 : C S 29 : C SECT SECTION DE L'ELEMENT IB (<> 0 SI MFR.EQ.27) 30 : C LHOOK taille de la matrice de HOOKE 31 : C 32 : C Sorties: 33 : C -------- 34 : C DDHOOK matrice de HOOKE 35 : C IRET = 1 si option existante, 0 sinon 36 : C 37 : C--------------------------------------------------------------------- 38 : C 39 : IMPLICIT INTEGER(I-N) 40 : IMPLICIT REAL*8(A-H,O-Z) 41 : PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0) 42 : PARAMETER(SIX=6.D0,DOUZE=12.D0,TRSIX=36.D0) 43 : PARAMETER(PENA=1.D6,PENB=1.D6) 44 : PARAMETER(X774=.774596669241483D0) 45 : PARAMETER(XK=1.2D0) 46 : PARAMETER(D6=1.D06) 47 : C 48 : -INC CCREEL 49 : -INC CCOPTIO 50 : C 51 : DIMENSION DDHOOK(LHOOK,*),DDHOMU(LHOOK,*),COBMA(*) 52 : DIMENSION VALCAR(*),VALMAT(*),VAR(*),S(*) 53 : DIMENSION COBB(3),CPBB(3),XKBB(3,3) 54 : C 55 : C INITIALISATION 56 : C 56 : CALL ZERO(DDHOOK,LHOOK,LHOOK) 56 : CALL ZERO(COBMA,LHOOK,1) 57 : C 58 : C CAS DES MATERIAUX ENDOMMAGEABLES 59 : C DU MATERIAU CERAMIQUE 60 : C 61 : * write(6,*) ' inat',inat 62 : IF(INAT.EQ.26.OR.INAT.EQ.29.OR.INAT.EQ.65) THEN 63 : IF(INAT.EQ.26) THEN 63 : CALL ELAST1(KCAS,IFOU,VAR,0,VALMAT,0,0.D0,0.D0, 64 : 1 VALCAR,0,MFR,LHOOK,DDHOOK,DDHOMU,KERRE,-1,0) 65 : if(npint.le.1.and.mfr.eq.3) kerre=99 66 : * write(6,*) ' kerre',kerre 67 : ELSEIF(INAT.EQ.29) THEN 67 : CALL ELAST1(KCAS,IFOU,VAR,0,VALMAT,0,0.D0,0.D0, 68 : 1 VALCAR,0,MFR,LHOOK,DDHOOK,DDHOMU,KERRE,-2,0) 69 : if(npint.le.1.and.mfr.eq.3) kerre=99 70 : * write(6,*) ' kerre',kerre 71 : ELSEIF(INAT.EQ.65) THEN 72 : CCC IF(IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN 73 : CCC IBID2 = 26 74 : CCC ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.1) THEN 75 : CCC IBID2 = 35 76 : CCC ELSE IF(IFOUR.EQ.-3) THEN 77 : CCC IBID2 = 30 78 : CCC ELSE IF(IFOUR.EQ.-2) THEN 79 : CCC IBID2 = 23 80 : CCC ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.0) THEN 81 : CCC IF(NPINT.EQ.0) THEN 82 : CCC IBID2 = 31 83 : CCC ELSE 84 : CCC IBID2 =23 85 : CCC ENDIF 86 : CCC ENDIF 87 : CCC Eloi : correction de IBID2 88 : IF(IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN 89 : IBID2 = 27 90 : ELSE IF(IFOUR.EQ.2.AND.(MFR.EQ.1.OR.MFR.EQ.31)) THEN 91 : IBID2 = 36 92 : ELSE IF(IFOUR.EQ.-3) THEN 93 : IBID2 = 27 94 : ELSE IF(IFOUR.EQ.-2) THEN 95 : IBID2 = 24 96 : ELSE IF(IFOUR.EQ.2.AND.MFR.EQ.0) THEN 97 : IF(NPINT.EQ.0) THEN 98 : IBID2 = 32 99 : ELSE 100 : IBID2 =24 101 : ENDIF 102 : ENDIF 103 : C modifications cas céramique lorsque on a endommagement généralisé 104 : IF (VAR(IBID2).EQ.1.D0) THEN 104 : CALL ELAST3(KCAS,IFOU,VALMAT,MFR,LHOOK,DDHOOK,KERRE,1) 105 : ELSE 105 : CALL ELAST3(KCAS,IFOU,VALMAT,MFR,LHOOK,DDHOOK,KERRE,0) 106 : ENDIF 107 : ENDIF 108 : IF (KERRE.NE.0) THEN 109 : IRET=0 110 : GOTO 1020 111 : ENDIF 112 : C 113 : ELSEIF (IGAU.LE.NBGMAT.AND. 114 : 1 (IB.LE.NELMAT.OR.NBGMAT.GT.1)) THEN 115 : C 116 : C Formulation massive et milieu poreux, joints poreux et incompressibles 117 : C IF(MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33.OR. 118 : c 1 MFR.EQ.57.OR.MFR.EQ.59) THEN 119 : c as : 120 : IF(MFR.EQ.1.OR.MFR.EQ.31.OR.MFR.EQ.33.OR. 121 : 1 MFR.EQ.57.OR.MFR.EQ.59.OR.MFR.EQ.63) THEN 122 : * 123 : NSTMU=3 124 : C 125 : C cas des joints poreux 126 : C 127 : IF(MELE.GE.108.AND.MELE.LE.110)THEN 128 : NSTMU=2 129 : C 130 : IF(IFOU.EQ.2) THEN 131 : NSTMU=3 132 : 133 : C 134 : C CAS TRIDIMENSIONNEL 135 : C 136 : ZK1 =VALMAT(1) 137 : ZK2 =VALMAT(1) 138 : ZK3 =VALMAT(2) 139 : C 140 : DDHOOK(1,1)=ZK1 141 : DDHOOK(2,2)=ZK2 142 : DDHOOK(3,3)=ZK3 143 : C 144 : ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR. 145 : & IFOU.EQ.-1.OR.IFOU.EQ.0) THEN 146 : C 147 : C CAS CONTRAINTES PLANES DEFORMATIONS PLANES AXISYMETRIE 148 : C 149 : ZK1 =VALMAT(1) 150 : ZK2 =VALMAT(2) 151 : C 152 : DDHOOK(1,1)=ZK1 153 : DDHOOK(2,2)=ZK2 154 : C 155 : ELSE 156 : IRET=0 157 : ENDIF 158 : COBMA(NSTMU)=VALMAT(3) 159 : XMOB=VALMAT(4) 160 : C 161 : ELSE 162 : C 163 : YOU =VALMAT(1) 164 : XNU =VALMAT(2) 165 : IF(IFOU.EQ.-2.AND.KCAS.EQ.1) THEN 166 : C 167 : C CONTRAINTES PLANES 168 : C 169 : AUX =YOU/(UN-XNU*XNU) 170 : AUX1=AUX*XNU 171 : DDHOOK(1,1)=AUX 172 : DDHOOK(1,2)=AUX1 173 : DDHOOK(2,1)=AUX1 174 : DDHOOK(2,2)=AUX 175 : DDHOOK(4,4)=(UN-XNU)*AUX*UNDEMI 176 : C 177 : C AXISYMETRIQUE, DEFORMATIONS PLANES ET DEFO PLANE GENE 178 : C FOURIER ET TRIDIMENSIONNEL 179 : C 180 : ELSE IF(IFOU.EQ.-1.OR.IFOU.EQ.0.OR.IFOU.EQ.-3.OR.IFOU.EQ 181 : $ .1.OR.IFOU.EQ.2.OR.(IFOU.EQ.-2.AND.KCAS.EQ.2)) 182 : $ THEN 183 : AUX0=UN/((UN+XNU)*(UN-DEUX*XNU)) 184 : AUX =YOU*AUX0*(UN-XNU) 185 : AUX1=YOU*AUX0*XNU 186 : GEGE=YOU*UNDEMI/(UN+XNU) 187 : C 188 : DDHOOK(1,1)=AUX 189 : DDHOOK(1,2)=AUX1 190 : DDHOOK(1,3)=AUX1 191 : C 192 : DDHOOK(2,1)=AUX1 193 : DDHOOK(2,2)=AUX 194 : DDHOOK(2,3)=AUX1 195 : C 196 : DDHOOK(3,1)=AUX1 197 : DDHOOK(3,2)=AUX1 198 : DDHOOK(3,3)=AUX 199 : DDHOOK(4,4)=GEGE 200 : C 201 : C FOURIER ET TRIDIMENSIONNEL 202 : C 203 : IF(IFOU.EQ.1.OR.IFOU.EQ.2) THEN 204 : DDHOOK(5,5)=GEGE 205 : DDHOOK(6,6)=GEGE 206 : ENDIF 207 : C 208 : C CAS UNIDIMENSIONNELS (1D) 209 : ELSE IF (IFOU.GE.3.AND.IFOU.LE.15) THEN 210 : IF (IFOU.EQ.6.AND.KCAS.EQ.1) THEN 211 : DDHOOK(1,1)=YOU 212 : ELSE IF ((IFOU.EQ.4.OR.IFOU.EQ.8).AND.KCAS.EQ.1) THEN 213 : AUX=YOU/(UN-XNU*XNU) 214 : AUX1=AUX*XNU 215 : DDHOOK(1,1)=AUX 216 : DDHOOK(1,2)=AUX1 217 : DDHOOK(2,1)=AUX1 218 : DDHOOK(2,2)=AUX 219 : ELSE IF ((IFOU.EQ.5.OR.IFOU.EQ.10.OR.IFOU.EQ.13).AND. 220 : . KCAS.EQ.1) THEN 221 : AUX=YOU/(UN-XNU*XNU) 222 : AUX1=AUX*XNU 223 : DDHOOK(1,1)=AUX 224 : DDHOOK(1,3)=AUX1 225 : DDHOOK(3,1)=AUX1 226 : DDHOOK(3,3)=AUX 227 : ELSE 228 : AUX0=YOU/((UN+XNU)*(UN-XNU-XNU)) 229 : AUX=AUX0*(UN-XNU) 230 : AUX1=AUX0*XNU 231 : DDHOOK(1,1)=AUX 232 : DDHOOK(1,2)=AUX1 233 : DDHOOK(1,3)=AUX1 234 : DDHOOK(2,1)=AUX1 235 : DDHOOK(2,2)=AUX 236 : DDHOOK(2,3)=AUX1 237 : DDHOOK(3,1)=AUX1 238 : DDHOOK(3,2)=AUX1 239 : DDHOOK(3,3)=AUX 240 : ENDIF 241 : ELSE 242 : IRET=0 243 : ENDIF 244 : * 245 : * addition pour massifs poreux 246 : * 247 : IF(MELE.GE.79.AND.MELE.LE.83) THEN 248 : DO 4501 II=1,NSTMU 249 : COBMA(II)=VALMAT(3) 250 : 4501 CONTINUE 251 : XMOB=VALMAT(4) 252 : * 253 : ELSE IF(MELE.GE.173.AND.MELE.LE.182) THEN 254 : * 255 : LHAUX=4 256 : IF(IFOUR.EQ.1.OR.IFOUR.EQ.-3) LHAUX=6 257 : DO 4502 II=1,NSTMU 258 : COBMA(II)=1.D0 259 : 4502 CONTINUE 260 : XMOB=1.D0 261 : * 262 : IF(MFR.EQ.57) THEN 263 : IDECAP=2 264 : COBB(1) = VALMAT(3) 265 : COBB(2) = VALMAT(4) 266 : CPBB(1) = VALMAT(5) 267 : CPBB(2) = VALMAT(6) 268 : XKBB(1,1)= VALMAT(7) 269 : XKBB(1,2)= VALMAT(8) 270 : XKBB(2,1)= VALMAT(9) 271 : XKBB(2,2)= VALMAT(10) 272 : * 273 : ELSE IF(MFR.EQ.59) THEN 274 : IDECAP=3 275 : COBB(1) = VALMAT(3) 276 : COBB(2) = VALMAT(4) 277 : COBB(3) = VALMAT(5) 278 : CPBB(1) = VALMAT(6) 279 : CPBB(2) = VALMAT(7) 280 : CPBB(3) = VALMAT(8) 281 : XKBB(1,1)= VALMAT(9) 282 : XKBB(1,2)= VALMAT(10) 283 : XKBB(1,3)= VALMAT(11) 284 : XKBB(2,1)= VALMAT(12) 285 : XKBB(2,2)= VALMAT(13) 286 : XKBB(2,3)= VALMAT(14) 287 : XKBB(3,1)= VALMAT(15) 288 : XKBB(3,2)= VALMAT(16) 289 : XKBB(3,3)= VALMAT(17) 290 : ENDIF 291 : * 292 : DO 5602 I=1,IDECAP 293 : IDI=LHOOK-IDECAP+I 294 : DO 5603 J=1,IDECAP 295 : IDJ=LHOOK-IDECAP+J 296 : DDHOOK(IDI,IDJ)=XKBB(I,J) 297 : 5603 CONTINUE 298 : DO 5604 J=1,LHAUX 299 : DDHOOK(IDI,J)=CPBB(I)*COBMA(J) 300 : DDHOOK(J,IDI)=-COBB(I)*COBMA(J) 301 : 5604 CONTINUE 302 : 5602 CONTINUE 303 : * 304 : ENDIF 305 : 306 : ENDIF 307 : C 308 : C Coques minces 309 : C 310 : ELSE IF(MFR.EQ.3) THEN 311 : C 312 : C CAS DKT INTEGRE 313 : C 314 : IF (NPINT.NE.0) THEN 315 : YOU =VALMAT(1) 316 : XNU =VALMAT(2) 317 : AUX =YOU/(UN-XNU*XNU) 318 : AUX1=AUX*XNU 319 : DDHOOK(1,1)=AUX 320 : DDHOOK(1,2)=AUX1 321 : DDHOOK(2,1)=AUX1 322 : DDHOOK(2,2)=AUX 323 : DDHOOK(4,4)=(UN-XNU)*AUX*UNDEMI 324 : * PETITE RUSE POUR EVITER LES DIVISIONS PAR 0.D0 A.M. LE 14/6/89 325 : DDHOOK(3,3)=AUX*1.D-6 326 : ELSE 327 : C 328 : C CAS TRIDIMENSIONNEL ET FOURIER 329 : C 330 : IF(IFOU.EQ.2.OR.IFOU.EQ.1) THEN 331 : YOU =VALMAT(1) 332 : XNU =VALMAT(2) 333 : AUX=YOU/(UN-XNU*XNU) 334 : AUX1=AUX*XNU 335 : GEGE=YOU*UNDEMI/(UN+XNU) 336 : C 337 : DDHOOK(1,1)=AUX 338 : DDHOOK(2,1)=AUX1 339 : DDHOOK(1,2)=AUX1 340 : DDHOOK(2,2)=AUX 341 : DDHOOK(3,3)=GEGE 342 : C 343 : DDHOOK(4,4)=AUX 344 : DDHOOK(5,4)=AUX1 345 : DDHOOK(4,5)=AUX1 346 : DDHOOK(5,5)=AUX 347 : DDHOOK(6,6)=GEGE 348 : C 349 : C CAS AXISYMETRIQUE ET DEFORMATIONS PLANES 350 : C 351 : ELSE IF(IFOU.EQ.0.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN 352 : YOU = VALMAT(1) 353 : XNU = VALMAT(2) 354 : AUX=YOU/(UN-XNU*XNU) 355 : AUX1=AUX*XNU 356 : C 357 : DDHOOK(1,1)=AUX 358 : DDHOOK(2,1)=AUX1 359 : DDHOOK(1,2)=AUX1 360 : DDHOOK(2,2)=AUX 361 : C 362 : DDHOOK(3,3)=AUX 363 : DDHOOK(4,3)=AUX1 364 : DDHOOK(3,4)=AUX1 365 : DDHOOK(4,4)=AUX 366 : C 367 : C CAS CONTRAINTES PLANES 368 : C 369 : ELSE IF(IFOU.EQ.-2) THEN 370 : YOU=VALMAT(1) 371 : DDHOOK(1,1)=YOU 372 : DDHOOK(3,3)=YOU 373 : C 374 : ELSE 375 : IRET=0 376 : ENDIF 377 : ENDIF 378 : C 379 : C Coques epaisses 380 : C 381 : ELSE IF(MFR.EQ.5) THEN 382 : C 383 : C CAS TRIDIMENSIONNEL 384 : C 385 : IF(IFOU.EQ.2) THEN 386 : YOU=VALMAT(1) 387 : XNU=VALMAT(2) 388 : AUX=YOU/(UN-XNU*XNU) 389 : AUX1=AUX*XNU 390 : GEGE=YOU*UNDEMI/(UN+XNU) 391 : C 392 : DDHOOK(1,1)=AUX 393 : DDHOOK(2,1)=AUX1 394 : DDHOOK(1,2)=AUX1 395 : DDHOOK(2,2)=AUX 396 : C 397 : DDHOOK(3,3)=GEGE 398 : DDHOOK(4,4)=GEGE/XK 399 : DDHOOK(5,5)=DDHOOK(4,4) 400 : ELSE 401 : IRET=0 402 : ENDIF 403 : C 404 : ELSE IF(MFR.EQ.61) THEN 405 : C 406 : C ELEMENTS CIFL MACRO ELEMENT CISAILLEMENT FLEXION 407 : C 408 : YOU=VALMAT(1) 409 : XNU=VALMAT(2) 410 : GEGE=YOU*UNDEMI/(UN+XNU) 411 : C 412 : SECT=VALCAR(1) 413 : XINZ=VALCAR(2) 414 : C 415 : DDHOOK(1,1)=YOU *SECT 416 : DDHOOK(2,2)=YOU *XINZ 417 : DDHOOK(3,3)=GEGE*SECT 418 : DDHOOK(4,4)=YOU *SECT 419 : DDHOOK(5,5)=YOU *XINZ 420 : C 421 : C Poutres et tuyaux 422 : C 423 : ELSEIF(MFR.EQ.7.OR.MFR.EQ.13) THEN 424 : C 425 : IF(MFR.EQ.13) THEN 426 : YOUNG=VALMAT(1) 427 : C CAS DES TUYAUX - ON CALCULE LES CARACTERISTIQUES DE LA POUTRE 428 : C EQUIVALENTE 429 : PRES=VALCAR(4) 430 : CISA=VALCAR(5) 431 : VALCAR(4)=1.D0 432 : VALCAR(5)=0.D0 433 : VALCAR(6)=0.D0 434 : VALCAR(7)=PRES 435 : VALCAR(8)=CISA 435 : CALL TUYKAR(VALCAR,KERRE,2,YOUNG) 436 : IF(KERRE.EQ.1) THEN 437 : IRET=0 438 : GOTO 1020 439 : ENDIF 440 : ENDIF 441 : C 442 : C 443 : IF (IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN 444 : SD=VALCAR(1) 445 : XINZ=VALCAR(2) 446 : SREDY=VALCAR(3) 447 : IF(MELE.EQ.84) THEN 448 : C SECTION "REDUITE" 449 : IF (SREDY.EQ.0.D0) SREDY=SD 450 : ENDIF 451 : ELSE 452 : XINX=VALCAR(1) 453 : XINY=VALCAR(2) 454 : XINZ=VALCAR(3) 455 : SD=VALCAR(4) 456 : SREDY=VALCAR(5) 457 : SREDZ=VALCAR(6) 458 : C 459 : IF(MELE.EQ.84) THEN 460 : C SECTION "REDUITE" 461 : IF (SREDZ.EQ.0.D0) SREDZ=SD 462 : IF (SREDY.EQ.0.D0) SREDY=SD 463 : ENDIF 464 : C 465 : ENDIF 466 : C 467 : IF(IFOU.EQ.2) THEN 468 : YOU=VALMAT(1) 469 : XNU=VALMAT(2) 470 : CISA=YOU*0.5D0/(1.D0+XNU) 471 : C 472 : DDHOOK(1,1)=YOU*SD 473 : DDHOOK(2,2)=CISA*SREDY 474 : DDHOOK(3,3)=CISA*SREDZ 475 : DDHOOK(4,4)=CISA*XINX 476 : DDHOOK(5,5)=YOU*XINY 477 : DDHOOK(6,6)=YOU*XINZ 478 : C 479 : ELSEIF (IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.-3) THEN 480 : YOU=VALMAT(1) 481 : XNU=VALMAT(2) 482 : CISA=YOU*0.5D0/(1.D0+XNU) 483 : C 484 : DDHOOK(1,1)=YOU*SD 485 : DDHOOK(2,2)=CISA*SREDY 486 : DDHOOK(3,3)=YOU*XINZ 487 : C 488 : ELSE 489 : IRET=0 490 : ENDIF 491 : C 492 : C Coques minces avec cisaillement transverse 493 : C 494 : ELSE IF(MFR.EQ.9) THEN 495 : C 496 : C CAS TRIDIMENSIONNEL 497 : C 498 : IF(IFOU.EQ.2) THEN 499 : YOU = VALMAT(1) 500 : XNU = VALMAT(2) 501 : AUX=YOU/(UN-XNU*XNU) 502 : AUX1=AUX*XNU 503 : GEGE=YOU*UNDEMI/(UN+XNU) 504 : C 505 : DDHOOK(1,1)=AUX 506 : DDHOOK(2,1)=AUX1 507 : DDHOOK(1,2)=AUX1 508 : DDHOOK(2,2)=AUX 509 : DDHOOK(3,3)=GEGE 510 : C 511 : DDHOOK(4,4)=AUX 512 : DDHOOK(5,4)=AUX1 513 : DDHOOK(4,5)=AUX1 514 : DDHOOK(5,5)=AUX 515 : DDHOOK(6,6)=GEGE 516 : C 517 : DDHOOK(7,7)=GEGE/XK 518 : DDHOOK(8,8)=GEGE/XK 519 : ELSE 520 : IRET=0 521 : ENDIF 522 : C 523 : C Linespring 524 : C 525 : ELSE IF(MFR.EQ.15) THEN 526 : C 527 : C TRIDIMENSIONNEL 528 : C 529 : IF(IFOU.EQ.2) THEN 530 : YOU=VALMAT(1) 531 : XNU=VALMAT(2) 532 : EE=YOU*UNDEMI/(UN-XNU*XNU) 533 : EPA1=VALCAR(1) 534 : FISS1=VALCAR(2) 535 : EPA2=VALCAR(6) 536 : FISS2=VALCAR(7) 537 : C 538 : 539 : C ON RECUPERE LES FISS AUX POINTS DE GAUSS IL FAUT LES CALCULER 540 : C AUX EXTREMITES 541 : FISS1 = (FISS1*(UNDEMI +UNDEMI/X774))+ 542 : + (FISS2*(UNDEMI-UNDEMI/X774)) 543 : FISS2 = (FISS1*(UNDEMI -UNDEMI/X774))+ 544 : + (FISS2*(UNDEMI+UNDEMI/X774)) 545 : C ASURW = A / W NOTATION CHEISSOUX 546 : W=(EPA1+EPA2)*UNDEMI 547 : ASURW=(FISS1+FISS2)/W 548 : C 549 : D1=EE*W 550 : D2=EE*W*W*W/DOUZE 551 : PEWMB=D1*PENB 552 : PEWFB=D2*PENA 553 : H1=UNDEMI-UNDEMI*S(IGAU) 554 : H2=UNDEMI+UNDEMI*S(IGAU) 555 : ASURW=(H1*FISS1+H2*FISS2)/W 556 : C ON RECUPERE LES COEFFICIENTS ALPHAS ET F I 556 : CALL LISPAL(ASURW,ALMM,ALMF,ALFF,DELTA) 557 : DELTA=D1/DELTA 558 : C CALCUL DES COEFFICIENTS R1 R2 R3 R4 559 : R1= DELTA*ALFF/W 560 : R2=-DELTA*ALMF/SIX 561 : R3=-DELTA*ALMF/SIX 562 : R4= DELTA*ALMM*W/TRSIX 563 : C 564 : DDHOOK(1,1)=R1 565 : DDHOOK(1,4)=R2 566 : DDHOOK(2,2)=PEWMB 567 : DDHOOK(3,3)=PEWMB 568 : DDHOOK(4,1)=R3 569 : DDHOOK(4,4)=R4 570 : DDHOOK(5,5)=PEWFB 571 : ELSE 572 : IRET=0 573 : ENDIF 574 : C 575 : 576 : C Tuyau fissure 577 : C 578 : ELSE IF(MFR.EQ.17) THEN 579 : C 580 : C TRIDIMENSIONNEL 581 : C 582 : IF(IFOU.EQ.2) THEN 583 : YOU=VALMAT(1) 584 : XNU=VALMAT(2) 585 : CISA = YOU /(DEUX *(UN + XNU)) 586 : RAYO=VALCAR(1) 587 : EPAI=VALCAR(2) 588 : TETA1=VALCAR(9)*UNDEMI 589 : 590 : C CONVERSION DE TETA1 EN RADIAN 591 : TETA = (TETA1 * XPI)/180.D0 592 : TESPI = TETA/XPI 593 : C ON MET DANS 'RAYMO' LE RAYON MOYEN DU TUYAU. 594 : RAYMO =RAYO - (EPAI/DEUX) 595 : C CALCUL DE A COEFIICIENT ZAHOR 596 : RSURT=RAYMO / EPAI 597 : IF(RSURT.LE.10.D0.AND.RSURT.GE.4.9D0) THEN 598 : AXX = ( .125D0*RSURT - .25D0 ) **.25D0 599 : ELSE IF(RSURT.GT.10.D0.AND.RSURT.LE.35.D0) THEN 600 : AXX = ( .4D0*RSURT - 3.D0 ) **.25D0 601 : ELSE 602 : KERRE=3 603 : ENDIF 604 : C 605 : C INITIALISATION DES TERMES DE PENALISATION 606 : C 607 : PPFX = DEUX * XPI * EPAI * YOU * RAYMO * D6 608 : PPFY = DEUX * XPI * EPAI * CISA * RAYMO * D6 609 : PPFZ = PPFY 610 : PPMX = DEUX * XPI * EPAI * CISA * (RAYMO**2) * D6 611 : PPMY = YOU * XPI * EPAI * (RAYMO**2) * D6 612 : PPMZ = PPMY 613 : IF (TETA1.LE.(0.5D0)) THEN 614 : RR11 = PPFX 615 : RR16 = XZERO 616 : RR66 = PPMZ 617 : ELSE 617 : CALL TUFIFP(TESPI,AXX,FP,FM,FMP,FOP,FOM) 618 : DENOM = FP*FM - FMP*FMP 619 : COEF = (YOU * XPI * EPAI)/(DENOM * (TETA**2)) 620 : RR11 = COEF * DEUX * FM 621 : RR16 = COEF * RAYMO * FMP 622 : RR66 = COEF * (RAYMO**2) * FP *UNDEMI 623 : ENDIF 624 : C 625 : DDHOOK(1,1)=RR11 626 : DDHOOK(1,6)=RR16 627 : DDHOOK(2,2)=PPFY 628 : DDHOOK(3,3)=PPFZ 629 : DDHOOK(4,4)=PPMX 630 : DDHOOK(5,5)=PPMY 631 : DDHOOK(6,1)=DDHOOK(1,6) 632 : DDHOOK(6,6)=RR66 633 : ELSE 634 : IRET=0 635 : ENDIF 636 : C 637 : C Cas des barres 638 : C 639 : ELSE IF(MFR.EQ.27.OR.MFR.EQ.49) THEN 640 : C 641 : YOU=VALMAT(1) 642 : DDHOOK(1,1)=YOU*SECT 643 : C 644 : C Elements joints JOT3, JOI4 et JOI2 645 : C 646 : ELSE IF(MFR.EQ.35) THEN 647 : C 648 : C CAS TRIDIMENSIONNEL 649 : C 650 : IF(IFOU.EQ.2) THEN 651 : ZK1 =VALMAT(1) 652 : ZK2 =VALMAT(1) 653 : ZK3 =VALMAT(2) 654 : C 655 : DDHOOK(1,1)=ZK1 656 : DDHOOK(2,2)=ZK2 657 : DDHOOK(3,3)=ZK3 658 : C 659 : C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N) 660 : C DEFORMATIONS PLANES DANS LE PLAN (S1,N) 661 : C AXISYMETRIE DANS LE PLAN (S1,N) 662 : C 663 : ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1 664 : & .OR.IFOU.EQ.0) THEN 665 : ZK1 =VALMAT(1) 666 : ZK2 =VALMAT(2) 667 : C 668 : DDHOOK(1,1)=ZK1 669 : DDHOOK(2,2)=ZK2 670 : C 671 : ELSE 672 : IRET=0 673 : ENDIF 674 : C 675 : C 676 : C Elements joints JCT3, JCI4 en 2D cisaillement 677 : C 678 : ELSE IF(MFR.EQ.53) THEN 679 : C 680 : C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N) 681 : C DEFORMATIONS PLANES DANS LE PLAN (S1,N) 682 : C 683 : IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1 684 : & .OR.IFOU.EQ.-3) THEN 685 : ZK1 =VALMAT(1) 686 : C 687 : DDHOOK(1,1)=ZK1 688 : DDHOOK(2,2)=ZK1 689 : C 690 : ELSE 691 : IRET=0 692 : ENDIF 693 : C 694 : C Elements joints generalises JGI2, JGT3, JGI4 695 : C 696 : ELSE IF(MFR.EQ.55) THEN 697 : C 698 : YOU =VALMAT(1) 699 : XNU =VALMAT(2) 700 : C 701 : C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N) 702 : C 703 : IF(IFOU.EQ.-2) THEN 704 : AUX =YOU/(UN-XNU*XNU) 705 : AUX1=AUX*XNU 706 : * 707 : DDHOOK(1,1)=(UN-XNU)*AUX*UNDEMI/EPAIST 708 : * 709 : DDHOOK(2,2)= AUX / EPAIST 710 : DDHOOK(2,3)= AUX1 711 : * 712 : DDHOOK(3,2)= AUX1 713 : DDHOOK(3,3)= AUX * EPAIST 714 : C 715 : C CAS DEFORMATIONS PLANES DANS LE PLAN (S1,N) 716 : C 717 : ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-1) THEN 718 : AUX0=UN/((UN+XNU)*(UN-DEUX*XNU)) 719 : AUX =YOU*AUX0*(UN-XNU) 720 : AUX1=YOU*AUX0*XNU 721 : * 722 : DDHOOK(1,1)=YOU*UNDEMI/(UN+XNU)/EPAIST 723 : * 724 : DDHOOK(2,2)= AUX / EPAIST 725 : DDHOOK(2,3)= AUX1 726 : DDHOOK(2,4)= AUX1 727 : * 728 : DDHOOK(3,2)= AUX1 729 : DDHOOK(3,3)= AUX * EPAIST 730 : DDHOOK(3,4)= AUX1 * EPAIST 731 : * 732 : DDHOOK(4,2)= AUX1 733 : DDHOOK(4,3)= AUX1 * EPAIST 734 : DDHOOK(4,4)= AUX * EPAIST 735 : C 736 : C CAS TRIDIMENSIONNEL 737 : C 738 : ELSE IF(IFOU.EQ.2) THEN 739 : AUX0=UN/((UN+XNU)*(UN-DEUX*XNU)) 740 : AUX =YOU*AUX0*(UN-XNU) 741 : AUX1=YOU*AUX0*XNU 742 : * 743 : DDHOOK(1,1)=YOU*UNDEMI/(UN+XNU)/EPAIST 744 : * 745 : DDHOOK(2,2)=DDHOOK(1,1) 746 : * 747 : DDHOOK(3,3)= AUX / EPAIST 748 : DDHOOK(3,4)= AUX1 749 : DDHOOK(3,5)= AUX1 750 : * 751 : DDHOOK(4,3)= AUX1 752 : DDHOOK(4,4)= AUX * EPAIST 753 : DDHOOK(4,5)= AUX1 * EPAIST 754 : * 755 : DDHOOK(5,3)= AUX1 756 : DDHOOK(5,4)= AUX1 * EPAIST 757 : DDHOOK(5,5)= AUX * EPAIST 758 : * 759 : DDHOOK(6,6)=YOU*UNDEMI/(UN+XNU)*EPAIST 760 : C 761 : C OPTION NON DEFINIE 762 : C 763 : ELSE 764 : IRET=0 765 : ENDIF 766 : C 767 : C Elements de zones cohesives 768 : C 769 : ELSE IF(MFR.EQ.77) THEN 770 : 771 : * POUR LE MOMENT, ON NE TIENT PAS COMPTE DE L'ENDOMMAGEMENT 772 : 773 : C 774 : C CAS TRIDIMENSIONNEL 775 : C 776 : IF(IFOU.EQ.2) THEN 777 : ZK1 =VALMAT(1) 778 : ZK2 =VALMAT(1) 779 : ZK3 =VALMAT(2) 780 : C 781 : DDHOOK(1,1)=ZK1 782 : DDHOOK(2,2)=ZK2 783 : DDHOOK(3,3)=ZK3 784 : C 785 : C CAS CONTRAINTES PLANES DANS LE PLAN (S1,N) 786 : C DEFORMATIONS PLANES DANS LE PLAN (S1,N) 787 : C 788 : ELSE IF(IFOU.EQ.-3.OR.IFOU.EQ.-2.OR.IFOU.EQ.-1) THEN 789 : ZK1 =VALMAT(1) 790 : ZK2 =VALMAT(2) 791 : C 792 : DDHOOK(1,1)=ZK1 793 : DDHOOK(2,2)=ZK2 794 : C 795 : ELSE 796 : IRET=0 797 : ENDIF 798 : C 799 : ELSE 800 : IRET=0 801 : GOTO 1020 802 : ENDIF 803 : ENDIF 804 : C 805 : C Prise en compte de l'epaisseur et de l'excentrement 806 : C dans le cas des coques minces avec ou sans cisaillement 807 : C transverse 808 : C 809 : IF ((MFR.EQ.3.AND.NPINT.EQ.0).OR.MFR.EQ.9) THEN 809 : CALL HOOKMU(EPAIST,EXCEN,LHOOK,DDHOOK,DDHOMU) 810 : DO 1005 IO=1,LHOOK 811 : DO 10051 JO=1,LHOOK 812 : DDHOOK(IO,JO)=DDHOMU(IO,JO) 813 : 10051 CONTINUE 814 : 1005 CONTINUE 815 : ENDIF 816 : C 817 : C Cas particulier de certains materiaux endommageables 818 : C 819 : IF (INAT.EQ.62.OR.INAT.EQ.64.OR.INAT.EQ.30.OR.INAT.EQ.118) THEN 819 : CALL ELAST2(DDHOOK,LHOOK,VALMAT,VAR,INAT,IB,IGAU) 820 : ENDIF 821 : C 822 : 1020 RETURN 823 : END 824 : 825 : 826 : 827 :
© Cast3M 2003 - All rights reserved.
Disclaimer