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