1 : C DDIS SOURCE CHAT 05/01/12 22:38:00 5004 2 : C SUBROUTINE DDIS : L'INITIALISATION ET L'APPEL DES LOI DE COMPORTEMENT 3 : C========================================================================= 4 : SUBROUTINE DDIS(NSTRS,CMATE,N2EL,N2PTEL,WTRAV,MFR,IFOU,IB, 5 : 1 IGAU,EPAIST,MELE,NPINT,NBPGAU,NBGMAT,NELMAT,SECT, 6 : 2 LHOOK,CRIGI,NMATT,INDLEG,IPWRKG,WRKGL,WRK0,WRK1,KERRE) 7 : C 8 : IMPLICIT INTEGER(I-N) 9 : IMPLICIT REAL*8(A-H,O-Z) 10 : C 11 : -INC CCOPTIO 12 : -INC SMCOORD 13 : C 14 : *********************************************************************** 15 : * INITIALISATION ET APPEL DES LOIS DE COMPORTEMENT * 16 : *********************************************************************** 17 : * 18 : * ENTREES : 19 : * WRK0 SEGMENT DE TRAVAIL CONTENANT LES CARACTERISTIQUES 20 : * MATERIAUX 21 : * WRK1 SEGMENT DE TRAVAIL CONTENANT LES EFFORTS, LES DEPLACEMENTS 22 : * ET LA MATRICE DE HOOK 23 : * NMATT NOMBRE DE COMPOSANTES DE PROPRIETES DE MATERIAU 24 : * INDLEG CODAGE DES, TYPES DE LOI DE COMPORTEMENT RETENUS 25 : * WRKGL SEGMENT CONTENANT LES LOIS DE COMPORTEMENT DE LA SECTION 26 : * IPWRKG SEGMENT DE POINTEUR SUR LES LOIS CONTENUES DANS WRKGL 27 : * KERRE INDICATEUR D'ERREUR 28 : * WTRAV SEGMENT DE TRAVAIL CONTENANT LES TABLEAUX UTILISES POUR 29 : * LE CALCUL DE LA MATRICE DE HOOKE ELASTIQUE (SS-PROGRAMME CALSIG) 30 : * 31 : * N2EL = NBRE D ELEMENTS DANS SEGMENT DE HOOKE 32 : * N2PTEL= NBRE DE POINTS DANS SEGMENT DE HOOKE 33 : * MFR = NUMERO DE LA FORMULATION 34 : * IFOU = OPTION DE CALCUL 35 : * IB = NUMERO DE L ELEMENT COURANT 36 : * IGAU = NUMERO DU POINT COURANT 37 : * EPAIST= EPAISSEUR 38 : * NBPGAU= NBRE DE POINTS DE GAUSS 39 : * MELE = NUMERO DE L ELEMENT FINI 40 : * NPINT = NBRE DE POINTS D INTEGRATION 41 : * NBGMAT= NBRE DE POINTS DANS SEGMENT DE CARACTERISTIQUES 42 : * NELMAT= NBRE D ELEMENTS DANS SEGMENT DE CARACTERISTIQUES 43 : * SECT = SECTION 44 : * LHOOK = TAILLE DE LA MATRICE DE HOOKE 45 : * 46 : * SORTIES : 47 : * WRK1 SEGMENT DE TRAVAIL CONTENANT SOLLICITATIONS CORRIGEES 48 : * AU COURS DU PAS DE TEMPS CONSIDERE 49 : * KERRE INDICATEUR D'ERREUR 50 : * 51 : *********************************************************************** 52 : * 53 : * ATTENTION : 54 : * (ELEF1,ELDEP1) ET (ELEF2,ELDEP2) DEFINISSENT LE DOMAINE DE 55 : * COMPORTEMENT ELASTIQUE LINEAIRE PUR DE L'ELEMENT 56 : * CES COUPLES DE VALEURS DOIVENT DONC ETRE COHERENTS AVEC LA 57 : * MATRICE DE RIGIDITE DE L'ELEMENT (INERTIE ET MODULE D'YOUNG) 58 : * 59 : * CES DEUX COUPLES DE VALEURS SONT A DECLARER DANS LES OPTIONS A 60 : * 5 OU 7 POINTS (4 OU 6 POUR LA COMPRESSION) 61 : * 62 : * LES COUPLES (YEF1,YDEP1) ET (YEF2,YDEP2) TENANT COMPTE DE 63 : * L'ENDOMMAGEMENT SONT A RENTRER DANS L'OPTION 6 OU 7 POINTS 64 : * 65 : ********************************************************************** 66 : C 67 : DIMENSION ICOMP(3),DD(5),IDP(3),CRIGI(12) 68 : C 69 : SEGMENT WRK0 70 : REAL*8 XMAT(NCXMAT) 71 : ENDSEGMENT 72 : C 73 : SEGMENT WRK1 74 : REAL*8 DDHOOK(LHOOK,LHOOK),SIG0(NSTRS),DEPST(NSTRS) 75 : REAL*8 SIGF(NSTRS),VAR0(NVARI),VARF(NVARI) 76 : REAL*8 DEFP(NSTRS),XCAR(ICARA) 77 : ENDSEGMENT 78 : C 79 : SEGMENT WRKGL 80 : REAL*8 TLOICO(NBLOI) 81 : ENDSEGMENT 82 : C 83 : SEGMENT IPWRKG 84 : POINTEUR IPOL(3).WRKGL 85 : ENDSEGMENT 86 : C 87 : SEGMENT WTRAV 88 : REAL*8 DDAUX(LHOOK,LHOOK),VALMAT(NUMAT) 89 : REAL*8 VALCAR(NUCAR),DSIGT(NSTRS) 90 : REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK) 91 : REAL*8 XLOC(IDIM,IDIM),XGLOB(IDIM,IDIM) 92 : REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK) 93 : ENDSEGMENT 94 : C 95 : C 96 : CHARACTER*8 CMATE 97 : C 98 : C INITIALISATIONS 99 : C 100 : JJ=0 101 : DO 40 II = 1,3 102 : IDP(II) = 0 103 : 40 ICOMP(II) = 0 104 : DO 41 II = 1,5 105 : 41 DD(II) = 0.0 106 : XLUNG = SQRT((XCOOR(1)-XCOOR(5))**2 + (XCOOR(2)-XCOOR(6))**2 + 107 : 1 (XCOOR(3)-XCOOR(7))**2) 108 : C 109 : C RECUPERATION DES COURBES ET DECODAGE DE INDLEG 110 : C 111 : DO 55 II = 1,2 112 : IF(INDLEG.GE.100)THEN 113 : ICOMP(3) = ICOMP(3) + 1 114 : INDLEG = INDLEG - 100 115 : END IF 116 : 55 CONTINUE 117 : DO 56 II = 1,2 118 : IF(INDLEG.GE.10)THEN 119 : ICOMP(2) = ICOMP(2) + 1 120 : INDLEG = INDLEG - 10 121 : END IF 122 : 56 CONTINUE 123 : IF(INDLEG.GE.1) ICOMP(1) = 1 124 : C 125 : C CALCUL DE L'INCREMENT DE CONTRAINTES 126 : C 126 : CALL CALSIG(DEPST,DDAUX,NSTRS,CMATE,VALMAT,VALCAR, 127 : 1 N2EL,N2PTEL,MFR,IFOU,IB,IGAU,EPAIST,NBPGAU, 128 : 2 MELE,NPINT,NBGMAT,NELMAT,SECT,LHOOK,TXR,XLOC, 129 : 3 XGLOB,D1HOOK,ROTHOO,DDHOMU,CRIGI,DSIGT,IRTD) 130 : * 131 : IF(IRTD.NE.1) THEN 132 : KERRE=69 133 : GOTO 998 134 : ENDIF 135 : * 136 : C 137 : C 138 : C RECUPERATION DES EFFORTS PRECEDANTS ET DES INCREMENTS 139 : C 140 : DO 57 II = 1,6 141 : 57 SIGF(II) = SIG0(II) + DSIGT(II) 142 : C 143 : C 144 : C COMPRESSION 145 : C 146 : C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT. 147 : C 148 : IF (ICOMP(1).EQ.0)THEN 149 : GO TO 100 150 : ELSE 151 : JJ=JJ+1 152 : NBLOI = IPOL(JJ).TLOICO(/1) 153 : * 154 : IF (NBLOI.EQ .12) THEN 155 : YEFC2=(-1.*TLOICO(1)) 156 : YDEPC2=(-1.*TLOICO(2)) 157 : ELEFC2=(-1.* TLOICO(3)) 158 : ELDEPC2=(-1.*TLOICO(4)) 159 : ELEFC1=(-1.*TLOICO(7)) 160 : ELDEPC1=(-1.*TLOICO(8)) 161 : YEFC1=(-1.*TLOICO(9)) 162 : YDEPC1=(-1.*TLOICO(10)) 163 : UEFC1 =(-1.*TLOICO(11)) 164 : UDEPC1 =(-1.*TLOICO(12)) 165 : ELSE 166 : YEFC2=(-1.*TLOICO(1)) 167 : YDEPC2=(-1.*TLOICO(2)) 168 : ELEFC2=(-1.*TLOICO(1)) 169 : ELDEPC2=(-1.*TLOICO(2)) 170 : ELEFC1=(-1.*TLOICO(5)) 171 : ELDEPC1=(-1.*TLOICO(6)) 172 : YEFC1=(-1.*TLOICO(5)) 173 : YDEPC1=(-1.*TLOICO(6)) 174 : UEFC1=(-1.*TLOICO(7)) 175 : UDEPC1=(-1.*TLOICO(8)) 176 : ENDIF 177 : * 178 : IFLAGC = INT(VAR0(2)) 179 : RRC = VAR0(3) 180 : EFMXC = VAR0(4) 181 : DEPMXC = VAR0(5) 182 : EFMNC = VAR0(6) 183 : DEPMNC = VAR0(7) 184 : DEPC = VAR0(8) 185 : XINT = VAR0(9) 186 : PLASC = VAR0(10) 187 : * 188 : RR1 = (ELEFC1 - ELEFC2)/(ELDEPC1 - ELDEPC2) 189 : EFC = SIG0(1) 190 : VAREFC = DSIGT(1) 191 : VARDPC = VAREFC / RR1 192 : 193 : C 194 : C APPEL DE LA LOI DE COMPORTEMENT 195 : C 196 : VARDP0 = VARDPC 197 : IF((ABS(VARDP0)).GE.1.0E-9)THEN 197 : CALL DCMP(IFLAGC,IDP(1),ELEFC1,ELDEPC1,ELEFC2,ELDEPC2, 198 : 1 YEFC1,YDEPC1,YEFC2,YDEPC2,UEFC1,UDEPC1, 199 : 2 EFC,VARDPC,DEPC,DEPEC,DEPMXC,EFMXC, 200 : 3 DEPMNC,EFMNC,XINT,RRC) 201 : VARF(2) = IFLAGC 202 : VARF(3) = RRC 203 : VARF(4) = EFMXC 204 : VARF(5) = DEPMXC 205 : VARF(6) = EFMNC 206 : VARF(7) = DEPMNC 207 : VARF(8) = DEPC 208 : VARF(9) = XINT 209 : SIGF(1) = EFC 210 : DEPE = EFC / RR1 211 : VARDEP = DEPC - DEPE 212 : DD(1) = VARDEP - PLASC 213 : DEFP(1) = DD(1) 214 : VARF(10) = VARDEP 215 : ELSE 216 : DEFP(1) = DEFP(1) 217 : DO 51 II = 2,10 218 : 51 VARF(II) = VAR0(II) 219 : END IF 220 : END IF 221 : C 222 : C 223 : C FLEXION 224 : C 225 : C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT. 226 : C 227 : 100 IF (ICOMP(2).EQ.0)THEN 228 : GO TO 200 229 : ELSE 230 : JJ=JJ+1 231 : NBLOI = IPOL(JJ).TLOICO(/1) 232 : * 233 : IF (NBLOI.EQ .14) THEN 234 : UEFF1 = (-1.*TLOICO(1)) 235 : UDEPF1 = (-1.*TLOICO(2)) 236 : YEFF1 = (-1.*TLOICO(3)) 237 : YDEPF1 = (-1.*TLOICO(4)) 238 : ELEFF1 = (-1.*TLOICO(5)) 239 : ELDEPF1 = (-1.*TLOICO(6)) 240 : ELEFF2 = (-1.*TLOICO(9)) 241 : ELDEPF2 = (-1.*TLOICO(10)) 242 : YEFF2 = (-1.*TLOICO(11)) 243 : YDEPF2 = (-1.*TLOICO(12)) 244 : UEFF2 = (-1.*TLOICO(13)) 245 : UDEPF2 = (-1.*TLOICO(14)) 246 : ELSE 247 : UEFF1 = (-1.*TLOICO(1)) 248 : UDEPF1 = (-1.*TLOICO(2)) 249 : YEFF1 = (-1.*TLOICO(3)) 250 : YDEPF1 = (-1.*TLOICO(4)) 251 : ELEFF1 = (-1.*TLOICO(3)) 252 : ELDEPF1 = (-1.*TLOICO(4)) 253 : ELEFF2 = (-1.*TLOICO(7)) 254 : ELDEPF2 = (-1.*TLOICO(8)) 255 : YEFF2 = (-1.*TLOICO(7)) 256 : YDEPF2 = (-1.*TLOICO(8)) 257 : UEFF2 = (-1.*TLOICO(9)) 258 : UDEPF2 = (-1.*TLOICO(10)) 259 : ENDIF 260 : * 261 : IFLAGF = INT(VAR0(11)) 262 : RRF = VAR0(12) 263 : EFMXF = VAR0(13) 264 : DEPMXF = VAR0(14) 265 : EFMNF = VAR0(15) 266 : DEPMNF = VAR0(16) 267 : X0F = VAR0(17) 268 : DEPF = VAR0(18) 269 : PLASF = VAR0(19) 270 : * 271 : RR2 = (ELEFF1 - ELEFF2)/(ELDEPF1 - ELDEPF2) 272 : M2 = ICOMP(2) + 4 273 : EFF = SIG0(M2) 274 : VAREFF = DSIGT(M2) 275 : VARDPF = VAREFF / RR2 276 : C 277 : C APPEL DE LA LOI DE COMPORTEMENT 278 : C 279 : VARDP0 = VARDPF 280 : IF(ABS(VARDP0).GT.1.0E-9)THEN 280 : CALL DTAK(IFLAGF,IDP(2),ELEFF1,ELDEPF1,ELEFF2,ELDEPF2, 281 : 1 YEFF1,YDEPF1,YEFF2,YDEPF2,UEFF1,UDEPF1, 282 : 2 UEFF2,UDEPF2,EFF,VARDPF,DEPF,DEPEF, 283 : 3 DEPMXF,DEPMNF,EFMXF,EFMNF,X0F,RRF) 284 : VARF(11) = IFLAGF 285 : VARF(12) = RRF 286 : VARF(13) = EFMXF 287 : VARF(14) = DEPMXF 288 : VARF(15) = EFMNF 289 : VARF(16) = DEPMNF 290 : VARF(17) = X0F 291 : VARF(18) = DEPF 292 : SIGF(M2) = EFF 293 : DEPE = EFF / RR2 294 : VARDEP = DEPF - DEPE 295 : IF(M2.EQ.6)THEN 296 : DD(2) = VARDEP - PLASF 297 : DD(5) = (VARDEP - PLASF) / XLUNG 298 : ELSE 299 : DD(3) = -1.0 * (VARDEP - PLASF) 300 : DD(4) = (VARDEP - PLASF) / XLUNG 301 : END IF 302 : VARF(19) = VARDEP 303 : ELSE 304 : DO 52 II = 11,19 305 : 52 VARF(II) = VAR0(II) 306 : END IF 307 : END IF 308 : C 309 : C 310 : C CISAILLEMENT 311 : C 312 : C RECUPERATION DE LA LOI DE COMPORTEMENT ET VARIABLES INT. 313 : C 314 : 200 IF(ICOMP(3).EQ.0)THEN 315 : GO TO 300 316 : ELSE 317 : JJ= JJ+1 318 : NBLOI = IPOL(JJ).TLOICO(/1) 319 : * 320 : IF (NBLOI.EQ.14) THEN 321 : UEFT1 = (-1 * TLOICO(1)) 322 : UDEPT1 = (-1 * TLOICO(2)) 323 : YEFT1 = (-1 * TLOICO(3)) 324 : YDEPT1 = (-1 * TLOICO(4)) 325 : ELEFT1 = (-1 * TLOICO(5)) 326 : ELDEPT1 = (-1 * TLOICO(6)) 327 : ELEFT2 = (-1 * TLOICO(9)) 328 : ELDEPT2 = (-1 * TLOICO(10)) 329 : YEFT2 = (-1 * TLOICO(11)) 330 : YDEPT2 = (-1 * TLOICO(12)) 331 : UEFT2 = (-1 * TLOICO(13)) 332 : UDEPT2 = (-1 * TLOICO(14)) 333 : ELSE 334 : UEFT1 = (-1 * TLOICO(1)) 335 : UDEPT1 = (-1 * TLOICO(2)) 336 : YEFT1 = (-1 * TLOICO(3)) 337 : YDEPT1 = (-1 * TLOICO(4)) 338 : ELEFT1 = (-1 * TLOICO(3)) 339 : ELDEPT1 = (-1 * TLOICO(4)) 340 : ELEFT2 = (-1 * TLOICO(7)) 341 : ELDEPT2 = (-1 * TLOICO(8)) 342 : YEFT2 = (-1 * TLOICO(7)) 343 : YDEPT2 = (-1 * TLOICO(8)) 344 : UEFT2 = (-1 * TLOICO(9)) 345 : UDEPT2 = (-1 * TLOICO(10)) 346 : ENDIF 347 : * 348 : IFLAGS = INT(VAR0(20)) 349 : RRS = VAR0(21) 350 : EFMXS = VAR0(22) 351 : DEPMXS = VAR0(23) 352 : EFMNS = VAR0(24) 353 : DEPMNS = VAR0(25) 354 : X01S = VAR0(26) 355 : X02S = VAR0(27) 356 : FINS = VAR0(28) 357 : EFLIMS = VAR0(29) 358 : DEPS = VAR0(30) 359 : PLASS = VAR0(31) 360 : * 361 : RR3 = (ELEFT1 - ELEFT2)/(ELDEPT1 - ELDEPT2) 362 : M3 = ICOMP(3) + 1 363 : EFS = SIG0(M3) 364 : VAREFS = DSIGT(M3) 365 : VARDPS =VAREFS / RR3 366 : C 367 : C APPEL DES LOIS DE COMPORTEMENT 368 : C 369 : VARDP0 = VARDPS 370 : C WRITE (6,*) 'RR entree=',RRS 371 : C WRITE (6,*) 'EF entree=',EFS 372 : C WRITE (6,*) 'DEP entree=',DEPS 373 : C WRITE (6,*) 'VARDEP entree=', VARDPS 374 : C WRITE (6,*) 'IFLAG entree=' , IFLAGS 375 : IF(ABS(VARDP0).GT.1.E-9)THEN 375 : CALL DTAI(IFLAGS,IDP(3),ELEFT1,ELDEPT1,ELEFT2,ELDEPT2, 376 : 1 YEFT1,YDEPT1,YEFT2,YDEPT2,UEFT1,UDEPT1, 377 : 2 UEFT2,UDEPT2,EFS,VARDPS,DEPS,EFLIMS, 378 : 3 DEPMXS,DEPMNS,EFMXS,EFMNS,X01S,X02S,FINS,RRS) 379 : VARF(20) = IFLAGS 380 : VARF(21) = RRS 381 : VARF(22) = EFMXS 382 : VARF(23) = DEPMXS 383 : VARF(24) = EFMNS 384 : VARF(25) = DEPMNS 385 : VARF(26) = X01S 386 : VARF(27) = X02S 387 : VARF(28) = FINS 388 : VARF(29) = EFLIMS 389 : VARF(30) = DEPS 390 : SIGF(M3) = EFS 391 : C WRITE (6,*) 'RR sortie=',RRS 392 : C WRITE (6,*) 'EF sortie=',EFS 393 : C WRITE (6,*) 'DEP sortie=',DEPS 394 : C WRITE (6,*) 'VARDEP sortie=', VARDPS 395 : C WRITE (6,*) 'IFLAG sortie=' , IFLAGS 396 : DEPE = EFS / RR3 397 : VARDEP = DEPS - DEPE 398 : C WRITE (6,*) 'VARDEP PLAST sortie=' , VARDEP 399 : IF(M3.EQ.2)THEN 400 : DD(2) = DD(2) + VARDEP - PLASS 401 : DD(5) = DD(5) + (VARDEP - PLASS) / XLUNG 402 : ELSE 403 : DD(3) = DD(3) + VARDEP - PLASS 404 : DD(4) = DD(4) + (VARDEP - PLASS) / XLUNG 405 : END IF 406 : VARF(31) = VARDEP 407 : ELSE 408 : DO 53 II = 20,31 409 : 53 VARF(II) = VAR0(II) 410 : END IF 411 : END IF 412 : C 413 : C MISE A JOUR DES VARIABLES INTERNES 414 : C 415 : 300 DEFP(2) = DEFP(2) + DD(2) 416 : DEFP(3) = DEFP(3) + DD(3) 417 : DEFP(5) = DEFP(5) + DD(4) 418 : DEFP(6) = DEFP(6) + DD(5) 419 : VARF(1) = VAR0(1) + SQRT(DD(1)**2 + DD(2)**2 + DD(3)**2) 420 : C 421 : C MISE A JOUR DE L'INDICE D'ERREUR 422 : C 423 : IF(IDP(1).NE.0) KERRE = -1 424 : IF(IDP(2).NE.0) KERRE = KERRE - 2 425 : IF(IDP(3).NE.0) KERRE = KERRE - 4 426 : C 427 : 998 RETURN 428 : END 429 :
© Cast3M 2003 - All rights reserved.
Disclaimer