Download pout2mas.procedur

Back to the list

   1 : * POUT2MAS  PROCEDUR  PASCAL    14/01/23    21:15:03     7910           
   2 : *************************************************************************
   3 : *
   4 : *
   5 : *  Génère un maillage volumique à partir d'un modèle de poutre 
   6 : *   (section, tuyau, poutre)
   7 : *
   8 : **************************************************************************
   9 : DEBPROC POUT2MAS MOD1*MMODEL MAT1*MCHAML MOTCLE/MOT TAB1/TABLE; 
  10 : *
  11 : OPTI ELEM CUB8;
  12 : *
  13 : MESH3D = MOT 'MESH3D';
  14 : DEP3DJ = MOT 'DEP3DJ';
  15 : DEF3DJ = MOT 'DEF3DJ';
  16 : DEFANI =  MOT 'DEFANI';
  17 : BLPOUT3D =  MOT 'BLPOUT3D';
  18 : *
  19 : ZONMOD = extr MOD1 ZONE;
  20 : *
  21 : SI (NON (EXISTE MOTCLE));
  22 :   MOTCLE = MOT 'MASSIF';
  23 : FINSI;
  24 : *
  25 : * Option par défaut
  26 : *
  27 :    NCIRCP = 8;
  28 :    NCIRCT = 8;
  29 :    NEPAIT = 1;
  30 :    NY = 1;
  31 :    NZ = 1;
  32 :    FLAGPOUT = 'CIRCULAIRE';
  33 :    AMPDEF = 1.;
  34 :    FLAGDEFO = FAUX;
  35 :    FLAGVAIS = FAUX;
  36 :    FLAGVONS = FAUX;
  37 :    FLAGRELA = FAUX;
  38 :    FLAGMATS = FAUX;
  39 : *
  40 : SI (EXISTE TAB1);
  41 : *
  42 :     SI (EXISTE TAB1 'AMPLITUDE_DEFORMEES');
  43 :          AMPDEF = TAB1.'AMPLITUDE_DEFORMEES';
  44 :     FINSI;
  45 : *
  46 :     SI (EXISTE TAB1 'TUYAU');
  47 :        SI (EXISTE (TAB1.'TUYAU') 'NCIRC');
  48 :           NCIRCT = (TAB1.'TUYAU').'NCIRC';
  49 :        SINON;
  50 :            NCIRCT = 8;
  51 :        FINSI;
  52 : *
  53 :        SI (EXISTE (TAB1.'TUYAU') 'EPAI');
  54 :           NEPAIT = (TAB1.'TUYAU').'EPAI';
  55 :        SINON;
  56 :           NEPAIT = 1;
  57 :        FINSI;
  58 : *
  59 :      FINSI;
  60 : *
  61 :      SI (EXISTE TAB1 'POUTRE');
  62 :        SI (EXISTE (TAB1.'POUTRE') 'NCIRC');
  63 :           NCIRCP = (TAB1.'POUTRE').'NCIRC';
  64 :        SINON;
  65 :           NCIRCP = 8;
  66 :        FINSI;
  67 :        SI (EXISTE (TAB1.'POUTRE') 'NY');
  68 :           NY = (TAB1.'POUTRE').'NY';
  69 :        SINON;
  70 :          NY = 1;
  71 :        FINSI;       
  72 :        SI (EXISTE (TAB1.'POUTRE') 'NZ');
  73 :           NZ = (TAB1.'POUTRE').'NZ';
  74 :        SINON;
  75 :           NZ = 1;
  76 :        FINSI;       
  77 :        SI (EXISTE (TAB1.'POUTRE') 'RECTANGULAIRE');
  78 :           FLAGPOUT = 'RECTANGULAIRE';
  79 :        SINON;
  80 :           FLAGPOUT = 'CIRCULAIRE';
  81 :        FINSI;
  82 :     FINSI;
  83 : *
  84 :     SI (EXISTE TAB1 'DEPLACEMENTS');
  85 :       FLAGDEFO = VRAI;
  86 :       TAB1. 'DEFORMEES'= TABLE; 
  87 :       TAB1. 'DEPLACEMENTS_3D'= TABLE;
  88 :       NDEFO = DIME (TAB1.'DEPLACEMENTS');
  89 :       DEP3D= TABLE; 
  90 :      SINON;
  91 :       FLAGDEFO = FAUX;
  92 :       NDEFO = 0;
  93 :     FINSI;
  94 : *
  95 : * Si on veut creer les relations pour les sections au droit des noeuds
  96 : *
  97 :     SI (EXISTE TAB1 'RELATION_3D');
  98 :       SI (EGA (TAB1.'RELATION_3D') VRAI);
  99 :         FLAGRELA = VRAI;
 100 :         BLPOUTJ = MOT 'BLPOUTJ';   
 101 :         BLPOUT3D = MOT 'BLPOUT3D';           
 102 :       SINON; 
 103 :         FLAGRELA = FAUX;      
 104 :       FINSI;
 105 :      SINON;
 106 :       FLAGRELA = FAUX;
 107 :     FINSI;
 108 : *
 109 : * si on fournit MATS
 110 : *
 111 :     SI (EXISTE TAB1 'MATS');
 112 :       FLAGMATS = VRAI;
 113 :       MAT3D= MOT 'MAT3D'; 
 114 :      SINON;
 115 :       FLAGMATS = FAUX;
 116 :       NMATS = 0;
 117 :     FINSI;
 118 : *
 119 : *  si on fournit VAIS 
 120 : *
 121 :     SI (EXISTE TAB1 'VAIS');
 122 :       FLAGVAIS = VRAI;
 123 :       TAB1. 'VAIS_3D'= TABLE;
 124 :       NVAIS = DIME (TAB1.'VAIS');
 125 :       VAI3D= TABLE; 
 126 :      SINON;
 127 :       FLAGVAIS = FAUX;
 128 :       NVAIS = 0;
 129 :     FINSI;
 130 : *
 131 : * si on fournit VONS 
 132 : *
 133 :     SI (EXISTE TAB1 'VONS');
 134 :       FLAGVONS = VRAI;
 135 :       TAB1. 'VONS_3D'= TABLE;
 136 :       NVONS = DIME (TAB1.'VONS');
 137 :       VON3D= TABLE; 
 138 :      SINON;
 139 :       FLAGVONS = FAUX;
 140 :       NVONS = 0;
 141 :     FINSI;
 142 : *
 143 : FINSI; 
 144 : 
 145 : *
 146 : * Fin de la lecture de la table d'entrée
 147 : *
 148 : * Génération du maillage
 149 : *
 150 : NBZONE = ENTIER ((DIME ZONMOD)/2.);
 151 : *
 152 : * On boucle sur les zones
 153 : *
 154 : REPETER LAB1 NBZONE;
 155 : *
 156 :   I1= &LAB1;
 157 :   MESHPOUI =  ZONMOD.(2*I1);
 158 :   MODPOUI = ZONMOD.((2*I1) - 1);
 159 :   MATPOUI = REDU MAT1 MODPOUI;
 160 : *
 161 :   NB2= NBEL (ELEM MESHPOUI 'SEG2');
 162 : * 
 163 :   SI (NB2 > 0);
 164 : *
 165 : * On boucle sur les éléments
 166 : *
 167 :   REPETER LAB2 NB2;
 168 :     I2 = &LAB2;
 169 :      MESHPOUJ = MESHPOUI ELEM SEG2 I2;
 170 :      PODEPOJ = (MESHPOUJ POIN 'INITIAL');
 171 :      POFIPOJ = (MESHPOUJ POIN 'FINAL');
 172 :      VEC0POJ = 0.5*(PODEPOJ PLUS POFIPOJ);
 173 :      VECXPOJ = POFIPOJ MOINS PODEPOJ;
 174 :      VECXPOJ = VECXPOJ/(NORME VECXPOJ);
 175 :      VECYPOJ = EXTR MATPOUI VECT 1 I2 1;
 176 :      VECYPOJ = VECYPOJ/(NORME VECYPOJ); 
 177 :      VECYPOJ = VECYPOJ MOINS ((VECYPOJ PSCAL VECXPOJ)*VECXPOJ);
 178 :      SI ((NORM VECYPOJ) < 1.D-10);
 179 :        SI (VECXPOJ SCAL (1. 0. 0.) > 1.D-10);
 180 :            VECYPOJ = VECXPOJ PVEC (1. 0. 0.);
 181 :         SINON;
 182 :            VECYPOJ = VECXPOJ PVEC (0. 1. 0.);
 183 :         FINSI;
 184 :      FINSI;
 185 :      VECZPOJ = VECXPOJ PVEC VECYPOJ ;
 186 : *
 187 : *
 188 : * Cas du modèle à fibre
 189 : *  
 190 : SI (EXISTE MATPOUI 'MODS');
 191 : *
 192 :      MODSEC = (EXTR MATPOUI MODS 1 I2 1);
 193 :      ZONSEC = EXTR MODSEC ZONE;
 194 : *
 195 : SINON;
 196 : *
 197 : * Cas des tuyaux
 198 : *
 199 :   SI ((EXISTE MATPOUI 'EPAI') ET (EXISTE MATPOUI 'RAYO') );
 200 : *
 201 :     EPATUY = (MAXI (EXCO MATPOUI 'EPAI')); 
 202 :     RAYTUY = (MAXI (EXCO MATPOUI 'RAYO')); 
 203 : *
 204 :    P1S = (RAYTUY - (0.5 * EPATUY)) 0. 0.;
 205 :    P2S = (RAYTUY + (0.5 * EPATUY)) 0. 0.; 
 206 : *
 207 :    P12S = DROI NEPAIT P1S P2S;
 208 :    MESHSEC = P12S ROTA NCIRCT 360. (0. 0. 0.) (0. 0. 1.); 
 209 : *
 210 :    ZONSEC = TABLE;
 211 :    ZONSEC.1 =  MESHSEC;  
 212 :    ZONSEC.2 =  MESHSEC;  
 213 : * 
 214 : *
 215 : * Fin cas des tuyaux
 216 : *
 217 :   SINON;
 218 : *
 219 : * Cas des poutres
 220 : *
 221 :   SI ((EXISTE MATPOUI 'INRY') ET (EXISTE MATPOUI 'INRZ') );
 222 : *
 223 :     INRY = (MAXI (EXCO MATPOUI 'INRY')); 
 224 :     INRZ = (MAXI (EXCO MATPOUI 'INRZ')); 
 225 : * 
 226 : *
 227 :    SI (EGA FLAGPOUT 'CIRCULAIRE');
 228 : *
 229 :      RAYO = ((2.D0*(INRY + INRZ))/PI)**0.25;   
 230 :      P1S = RAYO 0. 0.;
 231 :      P2S = 0. RAYO 0.;
 232 :      P3S = ((-1.)*RAYO) 0. 0.; 
 233 :      P4S = 0. ((-1.)*RAYO) 0.; 
 234 : *
 235 :       NDISCR = ENTIER (NCIRCP/4); 
 236 : *
 237 :      CERB = (CERC NDISCR P1S (0. 0. 0.)  P2S) ET 
 238 :             (CERC NDISCR P2S (0. 0. 0.)  P3S) ET 
 239 :             (CERC NDISCR P3S (0. 0. 0.)  P4S) ET 
 240 :             (CERC NDISCR P4S (0. 0. 0.)  P1S);
 241 :       MESHSEC = SURF CERB 'PLANE'; 
 242 :       ZONSEC = TABLE;
 243 :       ZONSEC.1 =  MESHSEC;  
 244 :       ZONSEC.2 =  MESHSEC;
 245 : *     
 246 :    SINON;
 247 :       LX = (144.*(INRZ**3)/INRY)**(1./8.);   
 248 :       LY = (144.*(INRY**3)/INRZ)**(1./8.);  
 249 :       P1S = (0.5*LX) ((-0.5)*LY) 0.;
 250 :       P2S = ((-0.5)*LX) ((-0.5)*LY) 0.; 
 251 :       MESHSEC = (DROI NY P1S P2S) TRAN NZ (0. LY 0.);  
 252 :       ZONSEC = TABLE;
 253 :       ZONSEC.1 =  MESHSEC;  
 254 :       ZONSEC.2 =  MESHSEC;
 255 : *               
 256 :    FINSI;
 257 : *
 258 :   FINSI;
 259 : * Fin test poutre
 260 :   FINSI;
 261 : * Fin test tuyau
 262 : FINSI;
 263 : * Fin test fibre 
 264 : *
 265 : *
 266 :      REPETER LAB20 (ENTIER (0.5*(DIME ZONSEC)));
 267 :          I20 = &lab20;
 268 : *
 269 :          MESHSECJ = ZONSEC.(2*I20);
 270 :          MODSECJ = ZONSEC.(2*I20 - 1);
 271 : *
 272 :          MESHSECF = DEDU MESHSECJ 
 273 :          ((0. 0. 0.) et (0. 0. 1.) 
 274 :        et (1. 0. 0.) et (0. 1. 0.))
 275 :         (VEC0POJ et (VEC0POJ plus VECXPOJ)
 276 :       et (VEC0POJ plus VECYPOJ) et (VEC0POJ plus VECZPOJ));
 277 : * 
 278 : *     Génération du volume    
 279 : *
 280 :       SI (EGA MOTCLE 'GAUSS');
 281 :         VOL3DJ = MESHSECF;
 282 :       SINON;    
 283 :          MeshSECF=MESHSECF PLUS ((-0.5)*(POFIPOJ MOINS PODEPOJ));  
 284 :          MeshSECG=MESHSECF PLUS (POFIPOJ MOINS PODEPOJ);                 
 285 :          ELTYPE = ELEM MESHSECF TYPE;
 286 :          Ntype = DIME ELTYPE;
 287 :          REPETER LAB3  Ntype;
 288 :            EleType = (EXTR ELTYPE &LAB3);
 289 :            MESHB = ELEM MeshSECF EleType;
 290 :            MESHC = ELEM MeshSECG EleType;
 291 :            SI (EGA EleType SEG2);
 292 : *  Cas des SEGS
 293 :              MESHVol = MESHB TRAN 1 (POFIPOJ MOINS PODEPOJ);          
 294 :            SINON;
 295 : *  Cas des TRIS et QUAS
 296 :               SI ((EGA EleType TRI3) OU (EGA EleType QUA4));
 297 :                 MESHVol = MESHB VOLU MESHC 1;
 298 :               SINON;
 299 : *  Cas des POJS
 300 :                NBMESH = NBEL MESHB;
 301 :                REPETER LAB4 NBMESH;
 302 :                  SI (&LAB4 EGA 1);
 303 :                      MESHVol = DROI 1 (POIN MESHB &LAB4) 
 304 :                                       (POIN MESHC &LAB4);                       
 305 :                  SINON;
 306 :                      MESHVola = DROI 1 (POIN MESHB &LAB4) 
 307 :                                       (POIN MESHC &LAB4);                       
 308 :                      MESHVol = MESHVol ET MESHVola;
 309 :                  FINSI;
 310 :                FIN LAB4;           
 311 : *
 312 :               FINSI;
 313 :            FINSI;
 314 : *
 315 :            ELIM 0.00001 (MESHVol et MESHC);
 316 : *
 317 :            SI (EGA (TYPE VOL3DJ) MOT);
 318 :                VOL3DJ = MESHVol;
 319 :            SINON;
 320 :                VOL3DJ = VOL3DJ et MESHVol;
 321 :            FINSI;  
 322 : *
 323 :          FIN LAB3;        
 324 :       FINSI;
 325 : *
 326 :        SI ( EGA (TYPE VOL3DJJ) MOT);
 327 :           VOL3DJJ = VOL3DJ;
 328 :           VOL3DJ = MOT 'VOL3DJ';
 329 :        SINON;
 330 :           VOL3DJJ = VOL3DJJ ET VOL3DJ;
 331 :           VOL3DJ = MOT 'VOL3DJ';
 332 :        FINSI;
 333 : *
 334 : * Transfert des MATS sur le 3D
 335 : *
 336 :      SI FLAGMATS;
 337 : *
 338 :        MATJ = EXTR (REDU ((TAB1.'MATS')) MESHPOUJ)
 339 :                1 1 1 'MATS';
 340 :        MATJ0 = (CHAN CHPO (REDU MATJ MODSECJ) MODSECJ);
 341 :        MATJ0 = 'CHAN' 'ATTRIBUT' MATJ0 'NATURE' 'DISCRET';
 342 : * 
 343 :        SI (EGA MOTCLE 'GAUSS');
 344 :         MATJ = DEDU MATJ0 TRAN MESHSECJ MESHSECF;
 345 :        SINON;    
 346 :         mess 'Option disponible seulement pour GAUSS';
 347 :        FINSI;
 348 : *
 349 : *
 350 :            SI ((EGA (TYPE MAT3D) MOT));
 351 :                MAT3D = MATJ ;
 352 :                MATJ = MOT 'VAIJ';
 353 :            SINON;
 354 :                MAT3D = MAT3D ET MATJ;
 355 :                MATJ = MOT 'MATJ';
 356 :            FINSI; 
 357 :       FINSI; 
 358 : *
 359 : * Fin pour MATS
 360 : * Transfert des VAIS sur le 3D
 361 : *
 362 :      SI FLAGVAIS;
 363 : *
 364 :       REPETER LAB6 NDEFO;
 365 :         i6 = (INDEX (TAB1.'VAIS')).&LAB6;
 366 : *
 367 :        VAIJ = EXTR (REDU ((TAB1.'VAIS'). i6) MESHPOUJ)
 368 :                1 1 1 'VAIS';
 369 :        VAIJ0 =
 370 :        (CHAN CHPO (REDU VAIJ MODSECJ) MODSECJ);
 371 :       VAIJ0 = 'CHAN' 'ATTRIBUT' VAIJ0 'NATURE' 'DISCRET';
 372 : * 
 373 :       SI (EGA MOTCLE 'GAUSS');
 374 :        VAIJ = DEDU VAIJ0 TRAN MESHSECJ MESHSECF;
 375 :       SINON;    
 376 :        mess 'Option disponible seulement pour GAUSS';
 377 :       FINSI;
 378 : *
 379 : *
 380 :            SI (NON (EXISTE VAI3D i6));
 381 :                VAI3D . i6= VAIJ ;
 382 :                VAIJ = MOT 'VAIJ';
 383 :            SINON;
 384 :                VAI3D. i6 =(VAI3D. i6) ET VAIJ;
 385 :                VAIJ = MOT 'VAIJ';
 386 :            FINSI; 
 387 : *
 388 :        FIN LAB6;   
 389 : *
 390 :      FINSI; 
 391 : *
 392 : * Fin pour VAIS
 393 : *
 394 : *
 395 : * Transfert des VONS sur le 3D
 396 : *
 397 :      SI FLAGVONS;
 398 : *
 399 :       REPETER LAB6 NVONS;
 400 :         i6 = (INDEX (TAB1.'VONS')).&LAB6;
 401 : *
 402 :        VONJ = EXTR (REDU ((TAB1.'VONS'). i6) MESHPOUJ)
 403 :                1 1 1 VONS;
 404 :        VONJ0 = 'CHAN' 'CHPO' (REDU VONJ MODSECJ) MODSECJ;
 405 :        VONJ0 =  EXCO VONJ0 (mots SMXX SMXY SMXZ)
 406 :                           (mots SMXX SMXY SMXZ);
 407 :        VONJ0 = 'CHAN' 'ATTRIBUT' VONJ0 'NATURE' 'DISCRET';
 408 : * 
 409 :       SI (EGA MOTCLE 'GAUSS');
 410 :        VONJ = DEDU VONJ0 TRAN MESHSECJ MESHSECF;
 411 :       SINON;    
 412 :        mess 'Option disponible seulement pour GAUSS';
 413 :       FINSI;
 414 : *
 415 : *
 416 :            SI (NON (EXISTE VON3D i6));
 417 :                VON3D . i6= VONJ ;
 418 :                VONJ = MOT 'VONJ';
 419 :            SINON;
 420 :                VON3D. i6 =(VON3D. i6) ET VONJ;
 421 :                VONJ = MOT 'VONJ';
 422 :            FINSI; 
 423 : *
 424 :        FIN LAB6;   
 425 : *
 426 :      FINSI; 
 427 : *
 428 : * Fin du VONS
 429 : *
 430 : *
 431 : * Ecriture des RELA pour les poutres
 432 : *
 433 :      SI FLAGRELA;
 434 :        BLPOUTJ = (RELA CORI DEPL ROTA PODEPOJ MeshSECF) ET
 435 :                 (RELA CORI DEPL ROTA POFIPOJ MeshSECG);
 436 :        SI ((EGA (TYPE BLPOUT3D) MOT));
 437 :                BLPOUT3D = BLPOUTJ ;
 438 :                BLPOUTJ = MOT 'BLPOUTJ';
 439 :        SINON;
 440 :                BLPOUT3D = BLPOUT3D ET BLPOUTJ ;
 441 :                BLPOUTJ = MOT 'BLPOUTJ';
 442 :        FINSI;                 
 443 :      FINSI;
 444 : *
 445 : *
 446 : * Fin RELA pour les poutres
 447 : *
 448 :     FIN LAB20;   
 449 : *
 450 : * Calcul des deformees sur le 3D
 451 : *
 452 :   SI FLAGDEFO;
 453 : *
 454 :       REPETER LAB5 NDEFO;
 455 :         i5 = (INDEX (TAB1.'DEPLACEMENTS')). &LAB5;
 456 : *
 457 :           DEPJ = REDU ((TAB1.'DEPLACEMENTS'). i5) MESHPOUJ;
 458 :           DEPXINI = (EXTR DEPJ PODEPOJ UX);
 459 :           DEPYINI = (EXTR DEPJ PODEPOJ UY);
 460 :           DEPZINI = (EXTR DEPJ PODEPOJ UZ);
 461 :           DEPXFIN = (EXTR DEPJ POFIPOJ UX);
 462 :           DEPYFIN = (EXTR DEPJ POFIPOJ UY);
 463 :           DEPZFIN = (EXTR DEPJ POFIPOJ UZ);
 464 :           ROTXINI = (EXTR DEPJ PODEPOJ RX);
 465 :           ROTYINI = (EXTR DEPJ PODEPOJ RY);
 466 :           ROTZINI = (EXTR DEPJ PODEPOJ RZ);
 467 :           ROTXFIN = (EXTR DEPJ POFIPOJ RX);
 468 :           ROTYFIN = (EXTR DEPJ POFIPOJ RY);
 469 :           ROTZFIN = (EXTR DEPJ POFIPOJ RZ);
 470 : *
 471 :           COOUX = EXCO  (COOR VOL3DJJ 1) SCAL  ;
 472 :           COOUX0 = MANU CHPO VOL3DJJ 1  SCAL
 473 :                 ( (0.5*((COOR PODEPOJ 1) + (COOR POFIPOJ 1))))
 474 :                  NATURE DISCRET;
 475 :           COOUY = EXCO  (COOR VOL3DJJ 2) SCAL  ;
 476 :           COOUY0 = MANU CHPO VOL3DJJ 1  SCAL
 477 :                 ( (0.5*((COOR PODEPOJ 2) + (COOR POFIPOJ 2))))
 478 :                  NATURE DISCRET;
 479 :           COOUZ = EXCO  (COOR VOL3DJJ 3) SCAL  ;
 480 :           COOUZ0 = MANU CHPO VOL3DJJ 1  SCAL
 481 :                 ( (0.5*((COOR PODEPOJ 3) + (COOR POFIPOJ 3))))
 482 :                 NATURE DISCRET;
 483 : *
 484 :           DEPJ0 = MANU CHPO VOL3DJJ 3 
 485 :                      UX (0.5*(DEPXINI + DEPXFIN)) 
 486 :                      UY (0.5*(DEPYINI + DEPYFIN)) 
 487 :                      UZ (0.5*(DEPZINI + DEPZFIN))
 488 :                         NATURE DISCRET;  
 489 : *   
 490 :           DEPJ = DEPJ0 ET 
 491 :                (EXCO  ( ((0.5*(ROTYINI + ROTYFIN))*(COOUZ - COOUZ0)) 
 492 :             - ((0.5*(ROTZINI + ROTZFIN))*(COOUY - COOUY0)) ) SCAL UX
 493 :               NATURE DISCRET);
 494 :           DEPJ  = (DEPJ) ET 
 495 :              (EXCO  ( ((0.5*(ROTZINI + ROTZFIN))*(COOUX-COOUX0)) 
 496 :             - ((0.5*(ROTXINI + ROTXFIN))*(COOUZ - COOUZ0)) ) SCAL UY
 497 :               NATURE DISCRET) ;
 498 :           DEPJ = (DEPJ) ET 
 499 :              (EXCO  ( ((0.5*(ROTXINI + ROTXFIN))*(COOUY-COOUY0)) 
 500 :            - ((0.5*(ROTYINI + ROTYFIN))*(COOUX - COOUX0)) ) SCAL UZ
 501 :              NATURE DISCRET) ;
 502 : *
 503 : *
 504 :            SI (NON (EXISTE DEP3D i5));
 505 :                DEP3D . i5= DEPJ ;
 506 :                DEPJ = MOT 'DEPJ';
 507 :            SINON;
 508 :                DEP3D. i5 =(DEP3D. i5) ET DEPJ;
 509 :                DEPJ = MOT 'DEPJ';
 510 :            FINSI; 
 511 : *
 512 :        FIN LAB5;   
 513 : *
 514 :      FINSI; 
 515 : *
 516 : *  Fin calcul des deformees sur le modele 3D
 517 : *
 518 :        SI ( EGA (TYPE MESH3D) MOT);
 519 :           MESH3D = VOL3DJJ;
 520 :           VOL3DJJ = MOT 'VOL3DJJ';
 521 :        SINON;
 522 :           MESH3D = MESH3D ET VOL3DJJ;
 523 :           VOL3DJJ = MOT 'VOL3DJJ';
 524 :        FINSI;
 525 : *
 526 : * Fin boucle sur les éléments
 527 : *
 528 :   FIN LAB2;
 529 : *
 530 :   FINSI;
 531 : *
 532 : *
 533 : * Fin boucle sur les sous zones
 534 : *
 535 : FIN LAB1;
 536 : *
 537 : * On stocke les résultats sur le maillage 3D
 538 : *
 539 : SI FLAGDEFO;
 540 : REPETER LAB6 NDEFO;
 541 :   i6 = &lab6;
 542 :    (TAB1.'DEPLACEMENTS_3D'). i6  = DEP3D.i6;
 543 :    (TAB1.'DEFORMEES'). i6  = DEFO MESH3D (DEP3D.i6) AMPDEF;
 544 : FIN LAB6;
 545 : FINSI;
 546 : SI FLAGVAIS;
 547 :  REPETER LAB6 NVAIS;
 548 :       i6 = &lab6;
 549 :      (TAB1.'VAIS_3D'). i6  = VAI3D.i6;
 550 :  FIN LAB6;
 551 : FINSI;
 552 : SI FLAGVONS;
 553 :  REPETER LAB6 NVONS;
 554 :       i6 = &lab6;
 555 :      (TAB1.'VONS_3D'). i6  = VON3D.i6;
 556 :  FIN LAB6;
 557 : FINSI;
 558 : SI FLAGMATS;
 559 :      TAB1.'MATS_3D'  = MAT3D;
 560 : FINSI;
 561 : SI FLAGRELA;
 562 :      TAB1.'RELATION_3D' = BLPOUT3D;
 563 : FINSI;
 564 : *
 565 : 'FINPROC' MESH3D;
 566 : *                                        
 567 :  
 568 :  
 569 :  
 570 :  
 571 :  

© Cast3M 2003 - All rights reserved.
Disclaimer