Download ctod.procedur

Back to the list

   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