Download hookis.eso

Back to the list

   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