1 : * CTOD PROCEDUR JC220346 12/09/12 21:15:06 7501 2 : DEBPROC CTOD SUPTAB*TABLE U*CHPOINT ; 3 : ************************************************* 4 : * PROCEDURE POUR LA DETERMINATION DU CTOD * 5 : * PAR LA METHODE DE LA DROITE A 45 DEGRES * 6 : *************************************************************** 7 : *SUPTAB.'MAILLAGE' : MAILLAGE ENTIER (UTILE UNIQUEMENT EN 3D) * 8 : * * 9 : *SUPTAB.'LIFIS1' : OBJET DE TYPE MAILLAGE REPRESENTANT LA LIGNE * 10 : * DE FISSURE EN 2D * 11 : * CETTE LIGNE DOIT CONTENIR AU MOINS 6 ELEMENTS * 12 : * * 13 : * * 14 : * * 15 : * SUPTAB.'FRTFISS' : LIGNE DE FRONT DE FISSURE EN 3 D DE TYPE MAILLAGE * 16 : * POINTE DE FISSURE EN 2D DE TYPE POINT * 17 : * * 18 : *SUPTAB.'PSF1' : POINTS DE LA SURFACE DE FISSURE * 19 : * N'APPARTENANT PAS AU FRONT DE FISSURE EN 3D * 20 : * * 21 : * U : DEPLACEMENT RESULTANT DE NONLIN AU TEMPS SOUHAITE * 22 : * * 23 : ************************************************************************ 24 : * SORTIE * 25 : * SUPTAB.'CTOD' :*TABLE DE REELS CONTENANT LES VALEURS DE CTOD OBTENUES* 26 : * A CHAQUE NOEUD P DU FRONT DE FISSURE EN 3D * 27 : * LES INDICES DE CETTE TABLE SONT DE TYPE POINT * 28 : * EX : SUPTAB.'CTOD'.P : CTOD AU NOEUD DU FRONT DE * 29 : * COORDONNEES EGALES A CELLES DU POINT P * 30 : * *REEL : VALEUR DU CTOD OBTENUE EN 2D * 31 : ************************************************************************ 32 : 33 : ************************************************************************ 34 : ***************** QUELQUES INITIALISATIONS ************************** 35 : ************************************************************************ 36 : 37 : &DIM = 'VALEUR' DIME; 38 : &ELEM = 'VALEUR' ELEM; 39 : &IMP = 'VALEUR' IMPI ; 40 : IELEM2 = (EGA &ELEM 'TRI3') 'OU' (EGA &ELEM 'QUA4'); 41 : IELEM3 = (EGA &ELEM 'CUB8') 'OU' (EGA &ELEM 'PRI6'); 42 : IELEMLIN = IELEM2 'OU' IELEM3; 43 : 44 : SI (EGA &DIM 3); 45 : **------------cas où l'on est en dimension 3----------** 46 : FRTFISS = SUPTAB.'FRTFISS'; 47 : PSF = SUPTAB.'PSF1'; 48 : MAILLAGE = SUPTAB.'MAILLAGE'; 49 : 50 : SINON; 51 : **-----------cas où l'on est en dimension 2-----------** 52 : LIFIS1 = SUPTAB.'LIFIS1'; 53 : PF = SUPTAB.'FRTFISS'; 54 : 55 : FINSI; 56 : 57 : 58 : *************************************************************** 59 : ************** CALCULS EN DIMENSION 3 ****************** 60 : *******RECUPERATION DES LIGNES PERPENDICULAIRES AU FRONT******* 61 : *******DE FISSURE SUR LESQUELLES SERONT EFFECTUES LES CALCULS** 62 : *************************************************************** 63 : *&&&&&&&&&&&&&&&&* 64 : SI (EGA &DIM 3); 65 : *&&&&&&&&&&&&&&&&* 66 : *------determination de cas de fissure debouchante ou non-----* 67 : 68 : TMAIL = TABLE; 69 : TM = TABLE; 70 : TRANCHE = TABLE; 71 : P = (NBEL FRTFISS) + 1; 72 : *-----recuperation des points extremites du front de fissure----* 73 : 74 : FRTFISS = ORDO FRTFISS; 75 : PINIT = FRTFISS POIN 'INIT'; 76 : PFIN = FRTFISS POIN 'FINAL'; 77 : 78 : *-----determination du volume de travail MAILVOL----------------* 79 : MAILVOL = FRTFISS; 80 : REPETER BVOL 7; 81 : MAILVOL = MAILLAGE ELEM APPU LARG MAILVOL; 82 : FIN BVOL; 83 : 84 : *--récupération de la surface initiale de MAILVOL : SURINIT-----* 85 : SURINIT = PINIT; 86 : REPETER BSURINIT 7; 87 : VCUB = MAILLAGE ELEM APPU LARG SURINIT; 88 : SCUB = ENVE VCUB; 89 : SURINIT = SCUB ELEM APPU LARG SURINIT; 90 : FIN BSURINIT; 91 : POINTFIS = SURINIT POIN 'PLAN' PINIT PFIN PSF 0.01; 92 : ELEMSFIS = SURINIT ELEM APPU STRI POINTFIS; 93 : SURINIT = SURINIT DIFF ELEMSFIS; 94 : SURINIT1 = SURINIT; 95 : SURINIT = PINIT; 96 : REPETER BSURI 7; 97 : SURINIT = SURINIT1 ELEM APPU LARG SURINIT ; 98 : FIN BSURI ; 99 : *--récupération de la surface finale de MAILVOL : SURFIN-------* 100 : SURFIN = PFIN; 101 : REPETER BSURFIN 7; 102 : VCUB = MAILLAGE ELEM APPU LARG SURFIN; 103 : SCUB = ENVE VCUB; 104 : SURFIN = SCUB ELEM APPU LARG SURFIN; 105 : FIN BSURFIN; 106 : POINTFIS = SURFIN POIN 'PLAN' PINIT PFIN PSF 0.01; 107 : ELEMSFIS = SURFIN ELEM APPU STRI POINTFIS; 108 : SURFIN = SURFIN DIFF ELEMSFIS; 109 : SURFIN1 = SURFIN; 110 : SURFIN = PFIN ; 111 : REPETER BSURF 7 ; 112 : SURFIN = SURFIN1 ELEM APPU LARG SURFIN; 113 : FIN BSURF ; 114 : *--remplissage de la table des plans orthogonaux à la fissure--* 115 : *--------------------- TMAIL ----------------------------* 116 : TMAIL.1 = CHAN SURINIT POI1; 117 : TM.1 = SURINIT; 118 : TRANCHE.1 = MAILVOL ELEM APPU LARG SURINIT; 119 : I = 0; TRANCHET = TRANCHE.1; 120 : SI ((NBEL FRTFISS) > 1); 121 : REPETER BRECU ((NBEL FRTFISS ) - 1); 122 : I = I + 1; 123 : **--récuperation des tranches--** 124 : TRANCHE.(I + 1) = (MAILVOL ELEM APPU LARG TRANCHET) DIFF TRANCHET; 125 : TRANCHET = TRANCHET ET TRANCHE.(I + 1); 126 : ENVEBI = DIFF (ENVE TRANCHE.(I + 1)) (ENVE TRANCHE.I); 127 : TMAIL.(I + 1) = DIFF ENVEBI 128 : ((ENVE TRANCHE.(I + 1)) ET (ENVE TRANCHE.I)); 129 : TM.(I + 1) = TMAIL.(I + 1); 130 : TMAIL.(I + 1) = TMAIL.(I + 1) CHAN POI1; 131 : 132 : FIN BRECU; 133 : FINSI; 134 : TMAIL.P = CHAN SURFIN POI1; 135 : TM.P = SURFIN ; 136 : 137 : *-------récupération des lignes supports de calcul----------* 138 : *------intersections entre les plans de TMAIL et la---------* 139 : *---------------------surface de fissure--------------------* 140 : 141 : **--récupération de la surface de fissure : SURFIS--** 142 : 143 : ENVMAIL = ENVE MAILLAGE; 144 : PLANFIS = ENVMAIL POINT 'PLAN' PINIT PFIN PSF 0.001; 145 : PLANFIS = ENVMAIL ELEM APPU STRICT PLANFIS; 146 : CO = CONT PLANFIS ; 147 : CO1 = (CO COMP PINIT PFIN); 148 : COSURFIS = CO1 et FRTFISS ; 149 : ELPSF = PLANFIS ELEM APPU LARG PSF; 150 : SURFIS = PLANFIS INCLU COSURFIS; 151 : SS = ELPSF DIFF SURFIS; 152 : **--cas où on n'a pas pris la bonne partie du plan pour SURFIS--** 153 : SI (EGA (NBEL SS) ((NBEL ELPSF) + (NBEL SURFIS))); 154 : SURFIS = PLANFIS DIFF SURFIS; 155 : FINSI; 156 : 157 : 158 : **--récupération des lignes et des points du front de fissure--** 159 : TLIG = TABLE;TPF = TABLE; 160 : I = 0; 161 : CHSURFIS = SURFIS CHAN POI1; 162 : CHFRTFIS = CHAN FRTFISS POI1; 163 : REPETER BLIG P; 164 : I = I + 1; 165 : **--récupération des lignes--** 166 : 167 : TOT = TMAIL.I ET CHSURFIS; DIFSYM = TMAIL.I DIFF CHSURFIS; 168 : TLIG.I = DIFF TOT DIFSYM; 169 : TLIG.I = TMAIL.I ELEM APPU STRI TLIG.I; 170 : 171 : **--récupération des points du front de fissure--** 172 : 173 : TOT = TLIG.I ET CHFRTFIS; 174 : DIFSYM = TLIG.I DIFF CHFRTFIS; 175 : TPF.I = DIFF TOT DIFSYM; 176 : TPF.I = TLIG.I ELEM APPU STRI TPF.I; 177 : TPF.I = TPF.I POIN 1; 178 : H = CONT TM.I; 179 : TLIG.I = H ELEM APPU STRI TLIG.I; 180 : FIN BLIG; 181 : 182 : 183 : 184 : *&&&&&&* 185 : FINSI; 186 : *&&&&&&* 187 : 188 : *************************************************************** 189 : ************** DIMENSION 2 ET 3 ****************** 190 : *************************************************************** 191 : *&&&&&&&&&&&&&&&* 192 : SI (EGA &DIM 2 ); 193 : *&&&&&&&&&&&&&&&* 194 : P = 1; 195 : *&&&&&&&* 196 : FINSI; 197 : *&&&&&&&* 198 : CTOD = TABLE; 199 : SI (EGA &DIM 3); 200 : SUPTAB.'CTOD' = TABLE; 201 : FINSI; 202 : J = 0; 203 : REPETER BKTOTALE P; 204 : J = J + 1; 205 : SI (EGA &DIM 3); 206 : PF = TPF.J; 207 : LIGCTOD = TLIG.J; 208 : MESS 'LIGNE ' J ' DU FRONT DE FISSURE'; 209 : SINON; 210 : LIGCTOD = LIFIS1; 211 : FINSI; 212 : 213 : 214 : LIGCTOD = ORDO LIGCTOD; 215 : SI (NEG (POIN 1 LIGCTOD) PF); 216 : LIGCTOD = INVE (LIGCTOD); 217 : FINSI; 218 : P0 = LIGCTOD POIN 2; 219 : N = NBEL LIGCTOD; 220 : PN = LIGCTOD POIN (N + 1); 221 : TYPMOD = 'VALEUR' MODE; 222 : 223 : *-----PASSAGE DANS LE REPERE LOCAL DE FISSURE---------------* 224 : 225 : * TRANSLATION DES CHPS DE DEPL : NOUVELLE ORIGINE PF 226 : **--récupération des composantes du déplacement--** 227 : SI ((EGA TYPMOD 'PLANDEFO') OU (EGA TYPMOD 'PLANCONT') 228 : OU (EGA TYPMOD 'TRID')); 229 : CHVX = EXCO U 'UX'; 230 : CHVY = EXCO U 'UY'; 231 : FINSI; 232 : SI (EGA TYPMOD 'AXIS'); 233 : CHVX = EXCO U 'UR'; 234 : CHVY = EXCO U 'UZ'; 235 : FINSI; 236 : VXPF= EXTR CHVX 'SCAL' PF; 237 : VYPF= EXTR CHVY 'SCAL' PF; 238 : PMAIL = EXTR U 'MAIL'; 239 : CHVXPF=MANU CHPO PMAIL 1 'SCAL' VXPF; 240 : CHVYPF=MANU CHPO PMAIL 1 'SCAL' VYPF; 241 : CHVX=CHVX - CHVXPF; 242 : CHVY=CHVY - CHVYPF; 243 : SI (EGA TYPMOD 'TRID'); 244 : CHVZ = EXCO U 'UZ'; 245 : VZPF= EXTR CHVZ 'SCAL' PF; 246 : CHVZPF=MANU CHPO PMAIL 1 'SCAL' VZPF; 247 : CHVZ=CHVZ - CHVZPF; 248 : FINSI; 249 : 250 : * ROTATION DES CHPS DE DEPL : DS REPERE DE LA FISSURE 251 : **----cas du 2 D----** 252 : SI (EGA &DIM 2); 253 : VECU = P0 MOIN PN; 254 : XU = VECU / (NORM VECU); 255 : YV = XU PVECT; 256 : X1 = COOR 1 XU; Y1 = COOR 2 XU; 257 : X2 = COOR 1 YV; Y2 = COOR 2 YV; 258 : CHU = (CHVX * X1) + (CHVY * Y1); 259 : CHV = (CHVX * X2) + (CHVY * Y2); 260 : **----cas du 3 D----** 261 : SINON; 262 : **--récupération du repère local :XU YV ZW--** 263 : VECU = P0 MOIN PN; 264 : XU = VECU / (NORM VECU); 265 : SI ((NBEL FRTFISS) > 1); 266 : FRTFI = FRTFISS DIFF (FRTFISS ELEM APPU LARG PF); 267 : PPRO = FRTFI POIN PROC PF; 268 : SINON; 269 : FRTFI = FRTFISS CHAN POI1; 270 : FRTFI = FRTFI DIFF (FRTFI ELEM APPU LARG PF); 271 : PPRO = FRTFI POIN PROC PF; 272 : FINSI; 273 : VECV = PPRO MOIN PF; 274 : YV = VECV / (NORM VECV); 275 : ZW = XU PVEC YV; 276 : ZW = ZW / (NORM ZW); 277 : **--calcul de la matrice de passage --** 278 : X1 = COOR 1 XU; Y1 = COOR 2 XU; Z1 = COOR 3 XU; 279 : X2 = COOR 1 YV; Y2 = COOR 2 YV; Z2 = COOR 3 YV; 280 : X3 = COOR 1 ZW; Y3 = COOR 2 ZW; Z3 = COOR 3 ZW; 281 : **--calcul des déplacements dans le repère local--** 282 : **--mode 1--** 283 : CHV = (X3 * CHVX) + (Y3 * CHVY) + (Z3 * CHVZ); 284 : **--mode 2--** 285 : CHU = (X1 * CHVX) + (Y1 * CHVY) + (Z1 * CHVZ); 286 : FINSI; 287 : 288 : ************************************************************** 289 : * CALCUL DU CTOD * 290 : ************************************************************** 291 : 292 : **-- détermination de l'element d'intersection avec D45 par itération--** 293 : **--( si elle existe )--** 294 : 295 : ICTOD = 0; 296 : TESTE = 6; 297 : BCOUP = 'FAUX'; 298 : REPETER BCTOD TESTE; 299 : ICTOD = ICTOD + 1; 300 : P1 = LIGCTOD POIN ICTOD; 301 : P2 = LIGCTOD POIN (ICTOD + 1); 302 : VECP1 = P1 MOIN PF; 303 : R1 = NORM (VECP1); 304 : VECP2 = P2 MOIN PF; 305 : R2 = NORM (VECP2); 306 : V1 = EXTR (REDU CHV P1) 'SCAL' P1; 307 : V1 = ABS (V1); 308 : SI (EGA P1 PF); V1 = 0.;FINSI; 309 : V2 = EXTR (REDU CHV P2) 'SCAL' P2; 310 : V2 = ABS (V2); 311 : SI ((V1 >EG R1) ET (V2 <EG R2)); 312 : ELCTOD = LIGCTOD COMP P1 P2; 313 : BCOUP = 'VRAI'; 314 : QUIT BCTOD; 315 : FINSI; 316 : FIN BCTOD; 317 : SI (EGA &IMP 1); 318 : mess 'INTERSECTION SUR L ELEMENT N°' ICTOD; 319 : mess 'NOEUD 1 SOMMET : R1 = ' R1 ' V1 = ' V1; 320 : mess 'NOEUD 2 SOMMET : R2 = ' R2 ' V2 = ' V2; 321 : FINSI; 322 : *----------CAS OU L'INTERSECTION EXISTE : CALCUL PLASTIQUE------* 323 : *---------CALCUL DU CTOD AVEC L'INTERSECTION DE LA DROITE A 45--* 324 : SI (EGA BCOUP 'VRAI'); 325 : **-cas d'éléments linéaires--** 326 : SI (IELEMLIN); 327 : ETA = (V1 + V2 - R1 - R2) / (V1 - V2 + R2 - R1); 328 : N1 = (1 - ETA) / 2; 329 : N2 = (1 + ETA) / 2; 330 : V = (N1 * V1) + (N2 * V2) ; 331 : CTOD.PF = 2 * V; 332 : SI (((V > R1) ET (V < R2) ET 333 : (V1 < V) ET (V < V2))); 334 : MESS 'LE CTOD A D45° VAUT :'CTOD.PF; 335 : SINON; 336 : CTOD.PF = 0; 337 : MESS 'PAS D INTERSECTION AVEC LA DROITE A 45°'; 338 : FINSI; 339 : SINON; 340 : ELPO = CHAN ELCTOD POI1; 341 : ELINT = ELPO DIFF (ELPO ELEM APPU LARG P1); 342 : PM = ELINT POIN PROC P1; 343 : VECPM = PM MOIN PF; 344 : RM = NORM (VECPM); 345 : VM = EXTR (REDU CHV PM) 'SCAL' PM; 346 : VM = ABS (VM); 347 : SI (EGA &IMP 1); 348 : mess 'NOEUD MILIEU : RM = ' RM ' VM = ' VM; 349 : FINSI; 350 : A = ((2 * VM) - V1 - V2); 351 : B = (R2 - R1 + V1 - V2); 352 : C = 2 * (RM - VM); 353 : DELTA = (B**2) - (4 * A * C); 354 : SI (DELTA >EG 0); 355 : ETA1 = (((-1) * B) - (DELTA**0.5)) / (2 * A); 356 : ETA2 = (((-1) * B) + (DELTA**0.5)) / (2 * A); 357 : N1A = ETA1 * (ETA1 - 1) / 2; 358 : NMA = 1 - (ETA1**2); 359 : N2A = ETA1 * (ETA1 + 1) / 2; 360 : VA = (N1A * V1) + (NMA * VM) + (N2A * V2); 361 : N1B = ETA2 * (ETA2 - 1) / 2; 362 : NMB = 1 - (ETA2**2); 363 : N2B = ETA2 * (ETA2 + 1) / 2; 364 : VB = (N1B * V1) + (NMB * VM) + (N2B * V2); 365 : SI ((ABS (ETA1) <EG 1) OU (ABS (ETA2) <EG 1)); 366 : SI (EGA ICTOD 1); 367 : SI ((ABS (ETA1) <EG 1) ET (ABS (ETA2) <EG 1)); 368 : PCTOD = PROG VA VB; 369 : CTOD.PF = 2 * (MAXI PCTOD); 370 : MESS 'LE CTOD A D45° VAUT :'CTOD.PF; 371 : SINON; 372 : CTOD.PF = 0; 373 : MESS 'PAS D INTERSECTION AVEC LA DROITE A 45°'; 374 : FINSI; 375 : SINON; 376 : SI (((VA > R1) ET (VA < RM) ET 377 : (V1 < VA) ET (VA < VM)) 378 : OU ((VA > RM) ET (VA < R2) ET 379 : (VM < VA) ET (VA < V2))); 380 : CTOD.PF = 2 * VA; 381 : MESS 'LE CTOD A D45° VAUT :'CTOD.PF; 382 : SINON; 383 : SI (((VB > R1) ET (VB < RM) ET 384 : (V1 < VB) ET (VB < VM)) 385 : OU ((VB > RM) ET (VB < R2) ET 386 : (VM < VB) ET (VB < V2))); 387 : CTOD.PF = 2 * VB; 388 : MESS 'LE CTOD A D45° VAUT :'CTOD.PF; 389 : SINON; 390 : CTOD.PF = 0; 391 : MESS 'PAS DE SOLUTION SATISFAISANTE'; 392 : FINSI; 393 : FINSI; 394 : FINSI; 395 : 396 : SINON; 397 : CTOD.PF = 0; 398 : SI (EGA &IMP 1); 399 : MESS ' PAS DE ETA ENTRE -1 ET 1'; 400 : FINSI; 401 : SI (EGA ICTOD 1); 402 : MESS 'PAS D INTERSECTION AVEC LA DROITE A 45°'; 403 : FINSI; 404 : FINSI; 405 : 406 : 407 : SINON; 408 : CTOD.PF = 0; 409 : MESS 'RESOLUTION IMPOSSIBLE : DELTA < 0'; 410 : SI (EGA ICTOD 1); 411 : MESS 'PAS D INTERSECTION AVEC LA DROITE A 45°'; 412 : FINSI; 413 : FINSI; 414 : FINSI; 415 : SINON; 416 : 417 : *------CAS OU L'ON SE TROUVE EN ELASTICITE :--------------* 418 : *------PAS D'INTERSECTION AVEC LA DROITE A 45°------------* 419 : *------CALCUL DU CTOD AVEC LE SIF K1 ---------------------* 420 : CTOD.PF = 0; 421 : MESS 'PAS D INTERSECTION AVEC LA DROITE A 45° : '; 422 : FINSI; 423 : SI (EGA &DIM 3); 424 : SUPTAB.'CTOD'.PF = CTOD.PF; 425 : SINON; 426 : SUPTAB.'CTOD' = CTOD.PF; 427 : FINSI; 428 : FIN BKTOTALE; 429 : 430 : FINPROC SUPTAB ; 431 :
© Cast3M 2003 - All rights reserved.
Disclaimer