Download g_calcul.procedur

Back to the list

   1 : * G_CALCUL  PROCEDUR  BP208322  13/12/20    21:15:08     7890           
   2 : DEBPROC G_CALCUL SUPTAB*'TABLE' INFTAB*'TABLE';
   3 : *|=====================================================================|
   4 : *|                                                                     |
   5 : *|    OBJECTIF :                                                       |
   6 : *|    ==========                                                       |
   7 : *|                                                                     |
   8 : *| Cette procedure est appelee par G_THETA.                            |
   9 : *|                                                                     |
  10 : *|                                                                     |
  11 : *|    ENTREE :                                                         |
  12 : *|    ========                                                         |
  13 : *|                                                                     |
  14 : *| SUPTAB = objet de type TABLE utilise par la procedure G_THETA       |
  15 : *| INFTAB = objet de type TABLE donnant toute information              |
  16 : *|          complementaire pour le calcul des integrales de contour    |
  17 : *|                                                                     |
  18 : *|                                                                     |
  19 : *|                                                                     |
  20 : *|                                                                     |
  21 : *|=====================================================================|
  22 : flmess = faux ;
  23 : 
  24 : 
  25 : 
  26 : *|=====================================================================|
  27 : *|=======  I. INITIALISATIONS  ========================================|
  28 : 
  29 : 
  30 : **************************************************                       
  31 : ************* INFORMATIONS GENERALES *************                      
  32 : **************************************************
  33 : VALPI = 3.14159261626; 
  34 : &DIME = VALE DIME; &MODE = VALE MODE;           
  35 : &ELEM = VALE 'ELEM'; MOTAX = MOT 'AXIS' ;   
  36 : 
  37 : **************************************************                      
  38 : *** INFORMATIONS PROVENANT DE LA TABLE INFTAB ****                      
  39 : **************************************************
  40 : MOTTI = INFTAB.'MOTTI';
  41 : MODCOU = INFTAB.'MODCOU';
  42 : TABMOD = INFTAB.'TABMOD';
  43 :  NBOBJ = DIME TABMOD;
  44 : LINTER = INFTAB.'LINTER';
  45 : ICOQU = INFTAB.'ICOQU';
  46 : IGDER = INFTAB.'IGDER';
  47 : IGDEP = INFTAB.'IGDEP';
  48 : IREPRI = INFTAB.'IREPRI';
  49 : IPAP = INFTAB.'IPAP';
  50 : 
  51 : ILIN = INFTAB.'ILIN';
  52 : ITHER = INFTAB.'ITHER';
  53 : IPARAL = INFTAB.'IPARAL';
  54 : MATVARI = INFTAB.'MATVARI';
  55 : YOUVARI = INFTAB.'YOUVARI';
  56 : ALFVARI = INFTAB.'ALFVARI';
  57 : IINTE = INFTAB.'IINTE';
  58 : IQUA = INFTAB.'IQUA';
  59 : ELTETA = INFTAB.'ELTETA';
  60 : RIGTOT = INFTAB.'RIGTOT';
  61 : OBJMOD = INFTAB.'OBJMOD'; 
  62 : MAILMOD = EXTR OBJMOD 'MAILLAGE';
  63 : MODPLA = INFTAB.'MODPLA';
  64 : FOR000 = INFTAB.'FOR000';
  65 : DEP000 = INFTAB.'DEP000';
  66 : CMD000 = INFTAB.'CMD000'; 
  67 : CMD001 = INFTAB.'CMD001'; 
  68 : GRA000 = INFTAB.'GRA000'; 
  69 : *
  70 : IPERSO1 = INFTAB.'IPERSO1';
  71 : si(IPERSO1); ESTIM = INFTAB . 'ESTIMATION'; fins;
  72 : IXFEM = INFTAB.'IXFEM';
  73 : ITYPEF = INFTAB.'ITYPEF';
  74 : IABC = INFTAB.'IABC';
  75 : &BOUCEXT = INFTAB.'&BOUCEXT';
  76 : &BOUCMIX = INFTAB.'&BOUCMIX';
  77 : INST = INFTAB.'INST';
  78 : FACT1 = INFTAB.'FACT1';
  79 : C_MATE = INFTAB.'C_MATE';
  80 : MAT1 = INFTAB.'MAT1';
  81 : ENERM = INFTAB.'ENERM';
  82 : WVMIS = INFTAB.'WVMIS';
  83 : TALPH1 = INFTAB.'TALPH1';
  84 : TEPINT = INFTAB.'TEPINT';
  85 : TEPABS = INFTAB.'TEPABS';
  86 : PREINT = INFTAB.'PREINT';
  87 : DEPINT = INFTAB.'DEPINT';
  88 : SIGF = INFTAB.'SIGF';
  89 : SIG1 = INFTAB.'SIG1';
  90 : VARF = INFTAB.'VARF';
  91 : *pour la dynamique
  92 : VITF = INFTAB.'VITF';
  93 : ACCF = INFTAB.'ACCF';
  94 : *pour le decouplage
  95 : MOTMIX = INFTAB.'MOTMIX';
  96 : MOTMIA = INFTAB.'MOTMIA';
  97 : A_PREI = INFTAB.'A_PREI';
  98 : A_DEPI = INFTAB.'A_DEPI';
  99 : A_DEPGR = INFTAB.'A_DEPGR';
 100 : A_SIGF = INFTAB.'A_SIGF';
 101 : * modif sm
 102 : DEFINT = INFTAB.'DEFINT';
 103 : IDEFI = INFTAB.'IDEFI';
 104 : * fin modif sm
 105 : *debut du cas contact frottant IFROT (btrolle 19/02/2013)
 106 : IFROT  = INFTAB . 'IFROT' ;
 107 : si (IFROT);
 108 :   OBJCON = INFTAB . 'OBJCON';
 109 :   OBJCON2 = INFTAB . 'OBJCON2';
 110 :   WDEP   = INFTAB . 'WDEP' ;
 111 :   SIGCON = INFTAB . 'SIGCON';
 112 :   B_DEPGR = INFTAB .'B_DEPGR';
 113 : fins;
 114 : *fin du cas contact frottant IFROT (btrolle 19/02/2013)
 115 : 
 116 : **************************************************                      
 117 : ***  QUELQUES MOTS POUR SIMPLIFIER L'ECRITURE  ***                      
 118 : **************************************************                      
 119 : MOTU = MOTS 'UX' 'UY'; MOTF = MOTS 'FX' 'FY'; 
 120 : MU1 = MOT 'UX'; MU2 = MOT 'UY'; MU3 = MOT 'UZ';                      
 121 : MF1 = MOT 'FX'; MF2 = MOT 'FY'; MF3 = MOT 'FZ';                      
 122 : MFA1 = MOT 'FAX'; MFA2 = MOT 'FAY'; MFA3 = MOT 'FAZ';                      
 123 : GR1 = MOT 'UX,X'; GR2 = MOT 'UX,Y'; GR3 = MOT 'UX,Z';             
 124 : GR4 = MOT 'UY,X'; GR5 = MOT 'UY,Y'; GR6 = MOT 'UY,Z';             
 125 : GR7 = MOT 'UZ,X'; GR8 = MOT 'UZ,Y'; GR9 = MOT 'UZ,Z';             
 126 : SM1 = MOT 'SMXX'; SM2 = MOT 'SMYY'; SM3 = MOT 'SMZZ';             
 127 : SM4 = MOT 'SMXY'; SM5 = MOT 'SMXZ'; SM6 = MOT 'SMYZ';
 128 : EP1 = MOT 'EPXX'; EP2 = MOT 'EPYY'; EP3 = MOT 'EPZZ';             
 129 : EP4 = MOT 'GAXY'; EP5 = MOT 'GAXZ'; EP6 = MOT 'GAYZ';
 130 : SI (EGA MOTAX &MODE) ;                                              
 131 :    MOTU = MOTS 'UR' 'UZ' ; MOTF = MOTS 'FR' 'FZ' ;                  
 132 :    MU1 = MOT 'UR'; MU2 = MOT 'UZ'; MU3 = MOT 'UT';                   
 133 :    MF1 = MOT 'FR'; MF2 = MOT 'FZ';                                    
 134 :    GR1 = MOT 'UR,R'; GR2 = MOT 'UR,Z'; GR3 = MOT 'UR,T';          
 135 :    GR4 = MOT 'UZ,R'; GR5 = MOT 'UZ,Z'; GR6 = MOT 'UZ,T';          
 136 :    GR7 = MOT 'UT,R'; GR8 = MOT 'UT,Z'; GR9 = MOT 'UT,T';          
 137 :    SM1 = MOT 'SMRR'; SM2 = MOT 'SMZZ'; SM3 = MOT 'SMTT';          
 138 :    SM4 = MOT 'SMRZ';
 139 :    EP1 = MOT 'EPRR'; EP2 = MOT 'EPZZ'; EP3 = MOT 'EPTT';          
 140 :    EP4 = MOT 'GARZ';
 141 : FINSI;                                                                
 142 : SI (&DIME EGA 3) ;                                                  
 143 :    MOTU = MOTS 'UX' 'UY' 'UZ' ; MOTF = MOTS 'FX' 'FY' 'FZ' ;        
 144 : FINSI;
 145 : SI ICOQU;                                                          
 146 :    MOTU = MOTU ET (MOTS RX RY RZ) ;                              
 147 :    MOTF = MOTF ET (MOTS MX MY MZ) ;                              
 148 : FINSI;
 149 : *BP: PETIT AJOUT DE NOM DE COMPOSANTE DE CHPOINT
 150 : SI(EGA IINTE 1); MOCOMP = 'J';    FINSI;
 151 : SI(EGA IINTE 2); MOCOMP = 'C*';   FINSI;
 152 : SI(EGA IINTE 3); MOCOMP = 'C*';   FINSI;
 153 : SI(EGA IINTE 4); MOCOMP = 'DJDA'; FINSI;
 154 : SI(EGA IINTE 5); MOCOMP = 'J';    FINSI;
 155 : SI(EGA IINTE 99); 
 156 :   SI(EGA MOTMIX 'I'  ); MOCOMP = 'K1';  FINSI;
 157 :   SI(EGA MOTMIX 'II' ); MOCOMP = 'K2';  FINSI;
 158 :   SI(EGA MOTMIX 'III'); MOCOMP = 'K3';  FINSI;
 159 : FINSI;
 160 : 
 161 : ************************************                                    
 162 : *** RIGTOT + BLOCAGES MECANIQUES ***                                
 163 : ************************************
 164 : SI (EGA IINTE 4) ;
 165 :   SI IPAP;
 166 :      RIGTOT = RIGTOT ET
 167 :              (SUPTAB.'SOLUTION_PASAPAS'.'BLOCAGES_MECANIQUES');
 168 : *rem bp: on suppose ceux ci identique a ceux de wtab...             
 169 :   SINON;
 170 :      RIGTOT = RIGTOT ET SUPTAB.'BLOCAGES_MECANIQUES';
 171 :   FINSI;
 172 : FINSI;
 173 : 
 174 : ************************************                                    
 175 : ********* Valeurs initiales ********                                    
 176 : ************************************
 177 : S10 = 0.; S20 = 0.; S30 = 0.; S40 = 0.; S50 = 0.;                    
 178 : S60 = 0.; S70 = 0.; S80 = 0.; S90 = 0.; S100 = 0.;                   
 179 : S110 = 0.; S120 = 0.; S130 = 0.; S140 = 0.; S141 = 0.;
 180 : S150 = 0.; S160 = 0.; S170 = 0.; S180 = 0.;
 181 : S190 = 0.; S200 = 0.; S210 = 0.; S220 = 0.;  
 182 : 
 183 : ************************************                                    
 184 : ********** MATERIAU MAT2 ***********                                    
 185 : ************************************
 186 : SI (ICOQU ET IQUA);                                               
 187 :    MAT2 = MAT1;                                                        
 188 : SINON;                                                              
 189 :    MAT2 = TEXT '        ';                                           
 190 : FINSI;
 191 : 
 192 : ***************************************************                     
 193 : ** DECLARATION DES TABLES STOCKANT LES RESULTATS **                     
 194 : ***************************************************
 195 : * SI ((EGA &BOUCEXT 1) ET (EGA &BOUCMIX 1));
 196 : *   SI (IPAP ET (NON IREPRI));  
 197 : * BP: mauvaise place du test sur IREPRI
 198 : si(iperso1); FLCREA = iabc ega 0;
 199 : sino;        FLCREA = NON IREPRI;
 200 : fins;
 201 : SI ((EGA &BOUCEXT 1) ET (EGA &BOUCMIX 1) et FLCREA);
 202 :   SI (IPAP);  
 203 :     si(flmess); mess 'on va creer SUPTAB RESULTATS'; fins;
 204 : *** CREATION DE LA TABLE CRIT_DECHA_*
 205 :     SI (EGA ITYPEF 99);
 206 :        SUPTAB.'CRIT_DECHA_GLOBAL1' = TABLE ;
 207 :        SUPTAB.'CRIT_DECHA_LOCAL1' = TABLE ;
 208 :        SUPTAB.'CRIT_DECHA_GLOBAL2' = TABLE ;
 209 :        SUPTAB.'CRIT_DECHA_GLOBAL2_L' = TABLE ;
 210 :        SUPTAB.'CRIT_DECHA_LOCAL2' = TABLE ;
 211 :     FINSI;
 212 : *** CREATION DE LA TABLE RESULTATS EN 2D
 213 :     SI (EGA &DIME 2);
 214 :       SI (EGA IINTE 99);
 215 :          SUPTAB.'RESULTATS' = TABLE;
 216 :          SUPTAB.'RESULTATS'.'I' = TABLE;
 217 :          SUPTAB.'RESULTATS'.'II' = TABLE;
 218 :          SUPTAB.'EVOLUTION_RESULTATS' = TABLE;
 219 :       SINON;
 220 :          SUPTAB.'RESULTATS' = TABLE;        
 221 :       FINSI;
 222 :     FINSI;
 223 : *** CREATION DE LA TABLE RESULTATS EN 3D
 224 :     SI (EGA &DIME 3) ;
 225 :       SI (EGA IINTE 99);
 226 :          SUPTAB.'RESULTATS' = TABLE;
 227 :          SUPTAB.'RESULTATS'.'I' = TABLE;
 228 :          SUPTAB.'RESULTATS'.'II' = TABLE;
 229 :          SUPTAB.'RESULTATS'.'III' = TABLE;
 230 :          SUPTAB.'EVOLUTION_RESULTATS' = TABLE;
 231 :          SUPTAB.'EVOLUTION_RESULTATS'.'I' = TABLE;
 232 :          SUPTAB.'EVOLUTION_RESULTATS'.'II' = TABLE;
 233 :          SUPTAB.'EVOLUTION_RESULTATS'.'III' = TABLE;
 234 :       SINON;
 235 :          SUPTAB.'RESULTATS' = TABLE;
 236 :          SUPTAB.'EVOLUTION_RESULTATS' = TABLE;
 237 :       FINSI;
 238 :     FINSI;
 239 : *** CREATION DE LA TABLE EPAISSEUR_RESULTATS EN COQUE
 240 :     SI ICOQU;
 241 :        SI (EGA IINTE 99);
 242 :           SUPTAB.'EPAISSEUR_RESULTATS' = TABLE;
 243 :           SUPTAB.'EPAISSEUR_RESULTATS'.'I' = TABLE;
 244 :           SUPTAB.'EPAISSEUR_RESULTATS'.'II' = TABLE;
 245 :           SUPTAB.'EPAISSEUR_RESULTATS'.'III' = TABLE;
 246 :        SINON;
 247 :           SUPTAB.'EPAISSEUR_RESULTATS' = TABLE;
 248 :        FINSI;
 249 :     FINSI;
 250 : * CAS OU L ON NE VERIFIE PAS (IPAP ET (NON IREPRI));
 251 :   SINON;
 252 : *** CREATION DE LA TABLE RESULTATS EN 2D
 253 :     SI (EGA &DIME 2);
 254 :       SI (EGA IINTE 99);
 255 :          SUPTAB.'RESULTATS' = TABLE;
 256 :       FINSI;
 257 :     FINSI;
 258 : *** CREATION DE LA TABLE RESULTATS EN 3D
 259 :     SI (EGA &DIME 3);
 260 :       SI (EGA IINTE 99);
 261 :          SUPTAB.'RESULTATS' = TABLE;
 262 :          SUPTAB.'RESULTATS'.'I' = TABLE;
 263 :          SUPTAB.'RESULTATS'.'II' = TABLE;
 264 :          SUPTAB.'RESULTATS'.'III' = TABLE;
 265 :       SINON;
 266 :          SUPTAB.'RESULTATS' = TABLE;
 267 :       FINSI;
 268 :     FINSI;
 269 : *** CREATION DE LA TABLE EPAISSEUR_RESULTATS EN COQUE
 270 :     SI ICOQU;
 271 :       SI (EGA IINTE 99);
 272 :          SUPTAB.'EPAISSEUR_RESULTATS' = TABLE;
 273 :       FINSI;
 274 :     FINSI;
 275 :   FINSI;
 276 : FINSI;
 277 : 
 278 : *POUR LE PAS DE TEMPS IABC
 279 : SI (IPAP ET (EGA &DIME 3) ET (EGA &BOUCMIX 1));
 280 :   SI (EGA IINTE 99);
 281 :      SUPTAB.'RESULTATS'.'I'.IABC = TABLE;
 282 :      SUPTAB.'RESULTATS'.'II'.IABC = TABLE;
 283 :      SUPTAB.'RESULTATS'.'III'.IABC = TABLE;
 284 :   SINON;
 285 :      SUPTAB.'RESULTATS'.IABC = TABLE;
 286 :   FINSI;
 287 : FINSI;
 288 : 
 289 : 
 290 : 
 291 : *|=====================================================================|
 292 : *|=======  II. CRITERES DE DECHARGES  =================================|
 293 : 
 294 : 
 295 : ************************************************************
 296 : ****** CRITERE GLOBAL 1 DE DECHARGE DES CONTRAINTES ********
 297 : ************************************************************
 298 : ***                                                                     
 299 : *** EVALUATION EN ELASTO-PLASTICITE OU THERMO-ELASTO-PLASTICITE          
 300 : *** PAR COMPARAISON AVEC UN CALCUL EN ELASTICITE NON-LINEAIRE
 301 : *** EN PRENANT POUR REFERENCE LES CONTRAINTES DE VON-MISES DU 
 302 : *** CALCUL RENDU PAR PASAPAS ET LES CONTRAINTES EQUIVALENTES LUES
 303 : *** SUR LES COURBES DE TRACTION         
 304 : ***
 305 : OUICRIT = VRAI ;
 306 : SI (EXIS SUPTAB 'CALCUL_CRITERE') ;
 307 :   OUICRIT = SUPTAB.'CALCUL_CRITERE';
 308 : FINSI ;
 309 : si(flmess et OUICRIT); 
 310 :   mess 'on va calculer les CRITERES DE DECHARGES, modpla='; 
 311 : *   list modpla;
 312 : fins;
 313 : 
 314 : SI ((EGA ITYPEF 99) ET IPAP ET OUICRIT);
 315 : 
 316 :    XCRIT = 1. ;
 317 : 
 318 :   REPE BCMOD0 NBOBJ;                                             
 319 :     EXISCRIT = FAUX ;
 320 :      MODI = TABMOD.&BCMOD0 ;                                           
 321 :      MATI = REDU MAT1 MODI ; 
 322 :      EPSE1 = EXCO VARF 'EPSE' ; 
 323 :      EPSE1 = EPSE1 CHAN TYPE 'SCALAIRE';                                    
 324 :      EPSET = REDU EPSE1 MODI ;
 325 :      MSQ = 'MASQ' 'SUPERIEUR' EPSET 1.E-6 ;  
 326 :                         
 327 : *VMIS1 = contraintes de Von-Mises en elastoplastique
 328 :      VMIS1 = CHAN ('VMIS' MODI (REDU SIGF MODI) MATI)
 329 :              TYPE 'SCALAIRE'; 
 330 :                  
 331 :    SI ('EXIS' MODPLA &BCMOD0) ;    
 332 : *       TEPABS = TEPINT + TALPH1 ;                          
 333 :        YOU = CHAN 'STRESSES' MODI (EXCO MATI 'YOUN') ;
 334 :        YOU = YOU CHAN TYPE 'SCALAIRE';
 335 :       SI (EGA MODPLA.&BCMOD0 1);                                  
 336 : *modèle est plastique isotrope. on utilise la  
 337 : *courbe de traction TABTRA.&BCMOD0
 338 :         EXISCRIT = VRAI ;
 339 :           MATA = 'VARI' 'NUAG' MODI ('MATE' MODI                        
 340 :                  'TRAC' TABTRA.&BCMOD0) TEPABS ;
 341 :            EPELAST = EXCO (VMIS1*(YOU**(-1))) 'SCAL' 'EPSE' ;
 342 :           EPSTOT = EPELAST + EPSET ;
 343 : *VMIS2 = contraintes déduites des déformations 
 344 : *équivalentes par la courbe de traction
 345 :           VMIS2 = 'VARI' 'NUAG' MODI (EXCO 'TRAC' MATA 'SIGM')               
 346 :                    EPSTOT 'STRESSES' 'SCALAIRE';              
 347 :       FINSI;
 348 : 
 349 :       SI (EGA MODPLA.&BCMOD0 2) ;                                
 350 : *modèle est plastique cinematique, cas ou  
 351 : *SIGY et H sont des évolutions
 352 :         EXISCRIT = VRAI ;
 353 :           VMIS22 = CHAN 'STRESSES' MODI (EXCO MATI 'SIGY' 'SCAL') ;
 354 :           HSCAL = EXCO MATI 'H' 'SCAL'; 
 355 :           HSCAL = HSCAL CHAN TYPE 'SCALAIRE';                             
 356 :           VMIS2 = VMIS22 + ((CHAN 'STRESSES' MODI HSCAL) * EPSET);        
 357 :       FINSI;   
 358 :                                                      
 359 :       SI (EGA MODPLA.&BCMOD0 3) ;                                
 360 : *modèle est plastique parfait
 361 :         EXISCRIT = VRAI ;
 362 :           VMIS2 = CHAN 'STRESSES' MODI ((EXCO MATI 'SIGY' 'SCAL')
 363 :                CHAN TYPE 'SCALAIRE' )    ;
 364 :       FINSI;   
 365 :                                                         
 366 :    SINON; 
 367 : *** modèle élastoplastique et modèle plastique cinématique
 368 : ***  avec caractéristiques independantes de la température 
 369 : 
 370 :       SI (EXIS MATI 'TRAC') ;
 371 : *extraction de la courbe de traction du modele MODI
 372 :         EXISCRIT = VRAI ;
 373 :          TRACTI = EXTR MATI 'TRAC' 1 1 1 ;
 374 :          PEPSO = EXTR TRACTI 'ABSC' ;
 375 :          PSIGM = EXTR TRACTI 'ORDO' ;
 376 :          TRACTI = 'EVOL' 'MANU' 'EPSE' PEPSO 'SIGM' PSIGM ;
 377 :          YOU = CHAN 'STRESSES' MODI (EXCO MATI 'YOUN') ;
 378 :          YOU = YOU CHAN TYPE 'SCALAIRE' ;
 379 :          EPELAST = EXCO (VMIS1*(YOU**(-1))) 'SCAL' 'EPSE' ;
 380 :          EPSTOT = EPELAST + EPSET ;
 381 : *VMIS2 = contraintes déduites des déformations 
 382 : *équivalentes par la courbe de traction
 383 :          VMIS2 = 'VARI' MODI EPSTOT TRACTI 'STRESSES' 'SCALAIRE';
 384 :       FINSI;
 385 : 
 386 :       SI ((EXIS MATI 'SIGY') ET (EXIS MATI 'H'));
 387 : *modèle est plastique cinematique traité ici séparément du cas 
 388 : *ou SIGY et H sont des évolutions c'est inutile car MAT1 est 
 389 : *déja instantié en température mais il faudra régler le pb de 
 390 : *MODPLA dans son ensemble avec ZONE et une identification 
 391 : *automatique de chacun des sous-modes
 392 :         EXISCRIT = VRAI ;
 393 :           VMIS22 = CHAN 'STRESSES' MODI (EXCO MATI 'SIGY' 'SCAL');
 394 :           VMIS22 = VMIS22 CHAN TYPE 'SACALAIRE';               
 395 :           HSCAL = EXCO MATI 'H' 'SCAL';
 396 :           HSCAL = HSCAL CHAN TYPE 'SCALAIRE';                            
 397 :           VMIS2 = VMIS22 + ((CHAN 'STRESSES' MODI HSCAL) * EPSET);        
 398 :       FINSI;
 399 :       SI ((EXIS MATI 'SIGY') ET (NON (EXIS MATI 'H')));
 400 : *modèle est plastique parfait
 401 :         EXISCRIT = VRAI ;
 402 :           VMIS2 = CHAN 'STRESSES' MODI (EXCO MATI 'SIGY' 'SCAL');
 403 :           VMIS2 = VMIS2 CHAN TYPE 'SACALAIRE';                 
 404 :       FINSI;
 405 : 
 406 :    FINSI;     
 407 :                                                      
 408 :       SI EXISCRIT ;
 409 :          VMIS1P = VMIS1 * MSQ ;
 410 :          VMIS1S = INTG MODI VMIS1P ;
 411 :          VMIS2P = VMIS2 * MSQ ; 
 412 :          VMIS2S = INTG MODI VMIS2P ;
 413 :          SI ('NEG' VMIS1S 0.) ;
 414 :            XCRIT = XCRIT + ((VMIS2S/VMIS1S) - 1.) ;
 415 :          FINSI ;
 416 :       FINSI ; 
 417 :                                                         
 418 :   FIN BCMOD0;  
 419 :                                                      
 420 :   SUPTAB.'CRIT_DECHA_GLOBAL1'.IABC = XCRIT ;
 421 : 
 422 : FINSI;
 423 : 
 424 : 
 425 : *********************************************************
 426 : ****** CRITERE LOCAL 1 DE DECHARGE DES CONTRAINTES ******
 427 : *********************************************************
 428 : ***
 429 : ***
 430 : ***
 431 : ***
 432 : ***
 433 : 
 434 : SI ((EGA ITYPEF 99) ET IPAP ET (IABC  > 0) ET OUICRIT);
 435 : si(flmess);   mess 'CRITERE LOCAL 1'; fins;
 436 :         EXISCRIT = FAUX ;
 437 :         VMITOTF = ZERO OBJMOD STRESSES ;
 438 :         VMITOT1 = ZERO OBJMOD STRESSES ;
 439 : *initialisation
 440 : 
 441 : REPE BCMOD0 NBOBJ; 
 442 : 
 443 :      MODI = TABMOD.&BCMOD0 ;
 444 :      MATI = REDU MAT1 MODI ; 
 445 :      EPSE1 = EXCO VARF 'EPSE' ;
 446 :      EPSE1 =  EPSE1 CHAN TYPE 'SCALAIRE';                                   
 447 :      EPSET = REDU EPSE1 MODI ;
 448 :      MSQ = 'MASQ' 'SUPERIEUR' EPSET 1.E-6 ;
 449 : 
 450 :   SI ('EXIS' MODPLA &BCMOD0) ; 
 451 :          INST1 = SUPTAB.'SOLUTION_PASAPAS'.'TEMPS'.(IABC-1) ;
 452 :          TEPIN1 = 'TIRE' CHAR1 INST1 'T' ;
 453 :          TEPIN1 = REDU TEPIN1 ELTETA ;
 454 :          TEPIN1 = TEPIN1 - TALPH1 ;
 455 :          TEPABS = TEPINT + TALPH1 ;     
 456 :          TEPAB1 = TEPIN1 + TALPH1 ; 
 457 : *TEPAB1 : temperature absolue au pas precedent
 458 : 
 459 : *modele plastique isotrope
 460 :        SI (EGA MODPLA.&BCMOD0 1) ; 
 461 :         MATA = 'VARI' 'NUAG' MODI ('MATE' MODI                        
 462 :                       'TRAC' TABTRA.&BCMOD0) TEPABS ;
 463 :         VMISF = CHAN ('VMIS' MODI SIGF MATA) TYPE 'SCALAIRE' ;
 464 : *VMISF : contrainte de Von Mises au pas courant
 465 :         MATA1 = 'VARI' 'NUAG' MODI ('MATE' MODI                        
 466 :                       'TRAC' TABTRA.&BCMOD0) TEPAB1 ;
 467 :         VMIS1 = CHAN ('VMIS' MODI SIG1 MATA1) TYPE 'SCALAIRE' ;
 468 : *VMIS1 : contrainte de Von Mises au pas precedent
 469 :        FINSI; 
 470 : 
 471 : *modele plastique cinematique ou plastique parfait
 472 :        SI  ((EGA MODPLA.&BCMOD0 2) OU 
 473 :               (EGA MODPLA.&BCMOD0 3)) ;  
 474 :          VMISF = CHAN ('VMIS' MODI SIGF MATI) TYPE 'SCALAIRE';
 475 :          VMIS1 = CHAN ('VMIS' MODI SIG1 MATI) TYPE 'SCALAIRE';
 476 :        FINSI; 
 477 : 
 478 : *pour ces 3 modeles
 479 :        SI   ((EGA MODPLA.&BCMOD0 1) OU 
 480 :               (EGA MODPLA.&BCMOD0 2) OU 
 481 :               (EGA MODPLA.&BCMOD0 3)) ;
 482 :          EXISCRIT = VRAI ;
 483 :          VMISFP = VMISF * MSQ ;
 484 :          VMIS1P = VMIS1 * MSQ ;
 485 : *VMISFP : contrainte de Von Mises aux points d'integration plastifies
 486 : **      au pas courant
 487 : *VMIS1P : contrainte de Von Mises aux points d'integration plastifies
 488 : **      au pas precedent
 489 : *on considere la plastification lorsque EPSET > 1E-6
 490 :          VMISF1P = VMISFP - VMIS1P ;
 491 : *VMISFP : difference entre la contrainte equivalente au temps de
 492 : *calcul t et celle au temps precedent (t-1)
 493 :          VMITOTF = VMITOTF + VMISFP ;
 494 :          VMITOT1 = VMITOT1 + VMISF1P ; 
 495 :        FINSI;
 496 : 
 497 :   SINON;
 498 : 
 499 :          SI ('EXIS' MATI 'TRAC') ;
 500 : *modele elastoplastique avec 
 501 : **caracteristiques independantes de la temperature
 502 :             VMISF = CHAN ('VMIS' MODI (REDU SIGF MODI) MATI)
 503 :                     TYPE 'SCALAIRE'; 
 504 :             VMIS1 = CHAN ('VMIS' MODI (REDU SIG1 MODI) MATI)
 505 :                     TYPE 'SCALAIRE'; 
 506 :          FINSI; 
 507 :          SI (EXIS MATI 'SIGY') ;
 508 : *modele plastique cinematique et plastique parfait avec 
 509 : **caracteristiques independantes de la temperature
 510 :             VMISF = CHAN ('VMIS' MODI SIGF MATI)
 511 :                     TYPE 'SCALAIRE';
 512 :             VMIS1 = CHAN ('VMIS' MODI SIG1 MATI)
 513 :                     TYPE 'SCALAIRE';
 514 :          FINSI;  
 515 : 
 516 :          SI (('EXIS' MATI 'TRAC') OU (EXIS MATI 'SIGY')) ;
 517 :                 EXISCRIT = VRAI ;
 518 :                 VMISFP = VMISF * MSQ ;
 519 :                 VMIS1P = VMIS1 * MSQ ;
 520 :                 VMISF1P = VMISFP - VMIS1P ;
 521 :                 VMITOTF = VMITOTF + VMISFP ;
 522 :                 VMITOT1 = VMITOT1 + VMISF1P ;
 523 :          FINSI ;
 524 :   FINSI ;
 525 : 
 526 : FIN BCMOD0 ;
 527 : 
 528 :   SI EXISCRIT ; 
 529 : *      MSQO = (CHAN 'CHPO' OBJMOD (VMITOT1*((VMITOTF)**(-1)))) 
 530 : *             'MASQ' 'INFERIEUR' 0. ;
 531 : *      SUPTAB.'CRIT_DECHA_LOCAL1'.IABC =
 532 : *         (CHAN 'CHPO' OBJMOD ((VMITOT1*((VMITOTF)**(-1)))) * MSQO) ;
 533 : * #MC 04/11/98 : pour le MASQ, un produit suffit (pas de risque de /0)
 534 :       MSQO = (CHAN 'CHPO' OBJMOD (VMITOT1*VMITOTF)) 
 535 :              'MASQ' 'INFERIEUR' 0. ;
 536 : * #MC 04/11/98 : ou il y a des 0, on met 1.E-10
 537 :       SUPTAB.'CRIT_DECHA_LOCAL1'.IABC =
 538 :          (CHAN 'CHPO' OBJMOD ((VMITOT1*((
 539 :          VMITOTF+(1.E-10*(VMITOTF 'MASQ' 'EGAL' 0.))
 540 :          )**(-1)))) * MSQO) ;
 541 : *lorsque la valeur du critere est positive, c'est-a-dire qu'il n'y a
 542 : **pas de decharge, celle-ci est ramenee a zero  
 543 :   FINSI;
 544 : 
 545 : FINSI;
 546 : 
 547 : 
 548 : ************************************************************
 549 : ****** CRITERE GLOBAL 2 DE DECHARGE DES CONTRAINTES ********
 550 : ************************************************************
 551 : ***
 552 : *** 
 553 : *** 
 554 : 
 555 : SI ((EGA ITYPEF 99) ET IPAP ET (NON IREPRI) ET OUICRIT); 
 556 : 
 557 : si(flmess);   mess 'CRITERE GLOBAL 2'; fins;
 558 : 
 559 : SI ('EXIS' SUPTAB.'SOLUTION_PASAPAS' 'DEFORMATIONS_INELASTIQUES');
 560 :      si (IPERSO1);    EPPLASF = ESTIM . 'DEFORMATIONS_INELASTIQUES';
 561 :      sino;            EPPLASF = SUPTAB . 'SOLUTION_PASAPAS' . 
 562 :                       'DEFORMATIONS_INELASTIQUES' . IABC;    
 563 :      finsi;
 564 : 
 565 :      XCRIT = 1. ;
 566 :      PRO1 = 0. ;
 567 :      PRO2 = 0. ;
 568 :      CRITLOCA = MANU  'CHPO' (EXTR OBJMOD 'MAIL') 1 'SCAL' 1. ;
 569 :      NUMERA = ZERO OBJMOD STRESSES ;
 570 :      DENOMI = ZERO OBJMOD STRESSES ;
 571 : 
 572 : *initialisation
 573 : *glob2 n'est pas calcule si reprise car on ne connait pas i-1
 574 : 
 575 :      VMISF = CHAN ('VMIS' OBJMOD SIGF MAT1) TYPE 'SCALAIRE'; 
 576 : *VMISF : contrainte de Von Mises au pas courant
 577 :     SI ('EXIS' SUPTAB VMISMAX);
 578 :      MQSIG = 'MASQ' 'SUPERIEUR' 0. ((SUPTAB.VMISMAX) - VMISF) ;                 
 579 :      VMISF = VMISF + (MQSIG * ((SUPTAB.VMISMAX) - VMISF)) ;
 580 :     FINSI;    
 581 :      SUPTAB.VMISMAX = VMISF ;
 582 : 
 583 :   REPE BCMOD0 NBOBJ ;  
 584 :      EXISCRIT = FAUX ;
 585 :      MODI = TABMOD.&BCMOD0 ;                                           
 586 :      MATI = REDU MAT1 MODI ; 
 587 :      EPSEI = REDU (EXCO VARF 'EPSE') MODI ; 
 588 :      EPSEI = EPSEI CHAN TYPE 'SCALAIRE';
 589 : *      EPPLASI = (SUPTAB.'SOLUTION_PASAPAS'.
 590 : *               'DEFORMATIONS_INELASTIQUES'.IABC) REDU MODI ;
 591 :      EPPLASI = REDU EPPLASF MODI ;
 592 :      VMISFI = REDU VMISF MODI ;
 593 :      SIGFI = REDU SIGF MODI ;
 594 : 
 595 :      YOU = CHAN 'STRESSES' MODI (EXCO MATI 'YOUN') ;
 596 :      YOU = YOU  CHAN TYPE 'SCALAIRE';    
 597 :      SI ('EXIS' MODPLA &BCMOD0) ; 
 598 : 
 599 :        SI ((EGA MODPLA.&BCMOD0 1) OU 
 600 :            (EGA MODPLA.&BCMOD0 2) OU 
 601 :            (EGA MODPLA.&BCMOD0 3)) ; 
 602 : *modele plastique isotrope
 603 : *modele plastique cinematique 
 604 : *modele plastique parfait
 605 :          EXISCRIT = VRAI ;
 606 : 
 607 :          lm_dein = EXTR epplasi 'COMP' ;
 608 :          lm_defo = EXTR modi 'DEFO' ;
 609 :          ep_u = nomc lm_dein lm_defo epplasi ;
 610 :          ep_u = changer ep_u type deformations ;
 611 : *        PRO1 = PRO1 + (INTG MODI (ENER MODI SIGFI EPPLASI));   
 612 :          PRO1 = PRO1 + (INTG MODI (ENER MODI SIGFI ep_u));   
 613 :          PRO2 = PRO2 + (INTG MODI (VMISFI * EPSEI)) ;
 614 : 
 615 :        FINSI; 
 616 : 
 617 :      SINON; 
 618 : 
 619 :        SI (('EXIS' MATI 'TRAC') OU (EXIS MATI 'SIGY')); 
 620 : *modele elastoplastique et
 621 : *modele plastique cinematique et plastique parfait 
 622 : ** avec caracteristiques independantes de la temperature
 623 :          EXISCRIT = VRAI ;
 624 : 
 625 :          lm_dein = EXTR epplasi 'COMP' ;
 626 :          lm_defo = EXTR modi 'DEFO' ;
 627 :          ep_u = 'NOMC' lm_dein lm_defo epplasi ;
 628 :          ep_u = ep_u changer type deformations ;
 629 : *        PRO1 = PRO1 + (INTG MODI (ENER MODI  SIGFI EPPLASI));   
 630 :          PRO1 = PRO1 + (INTG MODI (ENER MODI  SIGFI ep_u));   
 631 :          PRO2 = PRO2 + (INTG MODI (VMISFI * EPSEI)) ;    
 632 : 
 633 : *        NUMERA = NUMERA + (ENER MODI  SIGFI EPPLASI) ;
 634 :          NUMERA = NUMERA + (ENER MODI  SIGFI ep_u) ;
 635 :          DENOMI = DENOMI + (VMISFI * EPSEI) ;
 636 : 
 637 :        FINSI;
 638 : 
 639 :      FINSI ;
 640 : 
 641 :      SI (EXISCRIT ET (PRO2 'NEG' 0.)) ;
 642 :         XCRIT = XCRIT + (1. - (PRO1/PRO2)) ; 
 643 :         CRITLOCA = CRITLOCA + (1. - 
 644 :          (CHAN 'CHPO' OBJMOD (NUMERA*((DENOMI)**(-1.))))) ;
 645 :      FINSI;  
 646 : 
 647 :   FIN BCMOD0 ;
 648 : 
 649 : * Le maxi sert a corriger le probleme castem sur les EPSE 
 650 : * (ENER MODI  SIGFI EPPLASI) n est pas toujours egal à 
 651 : * (VMISFI * EPSEI) lorsque le chargement est proportionnel
 652 : * A supprimer quand le pb sera resolu
 653 :      SUPTAB.'CRIT_DECHA_GLOBAL2'.IABC = 
 654 :          'MAXI' (prog 0.99999 XCRIT) ;  
 655 :      SUPTAB.'CRIT_DECHA_GLOBAL2_L'.IABC = CRITLOCA ;
 656 : 
 657 : *mess 'PRO1' , PRO1 , 'PRO2' , PRO2 ,  'XCRIT' , XCRIT ; 
 658 :  
 659 : FINSI;
 660 : FINSI;
 661 : 
 662 : 
 663 : *********************************************************
 664 : ****** CRITERE LOCAL 2 DE DECHARGE DES CONTRAINTES ******
 665 : *********************************************************
 666 : ***
 667 : ***
 668 : ***
 669 : ***
 670 : 
 671 : SI ((EGA ITYPEF 99) ET IPAP ET (IABC  > 0) ET OUICRIT);
 672 : si(flmess);   mess 'CRITERE local 2'; fins;
 673 : 
 674 : *initialisation
 675 :         EXISCRIT = FAUX ;
 676 :         CRIT0 = 'ZERO' OBJMOD STRESSES ;
 677 : 
 678 :   REPE BCMOD0 NBOBJ; 
 679 :      MODI = TABMOD.&BCMOD0 ;                                           
 680 :      MATI = REDU MAT1 MODI ; 
 681 :      EPSE1 = EXCO VARF 'EPSE' ; 
 682 :      EPSE1 = EPSE1 CHAN TYPE 'SCALAIRE';                                    
 683 :      EPSET = REDU EPSE1 MODI ;
 684 : 
 685 :     SI (('EXIS' MODPLA &BCMOD0) OU ('EXIS' MATI 'TRAC')
 686 :       OU ('EXIS' MATI 'SIGY'));
 687 :            MAT_z = 'MANU' 'CHML' MODI 'YOUN' 1. 'NU' 0. 'EPAI' 1.
 688 :                           TYPE 'CARACTERISTIQUES' 'RIGIDITE' ;
 689 :            EXISCRIT = VRAI ;
 690 :            DSIG = ELAS MODI (SIGF - SIG1) MAT_z ;
 691 :            INV1 = ENER MODI (REDU SIGF MODI) (REDU DSIG MODI) ;
 692 :            SIGFTRA = ENER MODI (REDU SIGF MODI) 
 693 :                     (REDU (ELAS MODI SIGF MAT_z) MODI) ;
 694 :            DSIGTRA = ENER MODI (REDU DSIG MODI)
 695 :                  (ELAS MODI DSIG MAT_z) ;
 696 :            NOR1 = SIGFTRA**(1./2) ;
 697 :            DNOR = DSIGTRA**(1./2) ;
 698 :            DENO = NOR1 * DNOR ;
 699 :            CRIT0 = CRIT0 + (INV1 * (DENO**(-1))) ;
 700 : 
 701 :     FINSI ;
 702 : 
 703 :   FIN BCMOD0 ; 
 704 : 
 705 :   SI EXISCRIT ;
 706 :        SUPTAB.'CRIT_DECHA_LOCAL2'.IABC = CHAN 'CHPO' OBJMOD CRIT0 ;
 707 :   FINSI;
 708 : 
 709 : 
 710 : FINSI;
 711 : 
 712 : 
 713 : 
 714 : *|=====================================================================|
 715 : *|=======  III. TRAITEMENT DES CHAMPS MECANIQUES  =====================|
 716 : si(flmess);   mess 'TRAITEMENT DES CHAMPS MECANIQUES'; fins;
 717 : 
 718 : ****************************************************                    
 719 : * ON CHANGE LA TEMPERATURE EN MCHAML AU NOEUD =TEPINT                    
 720 : ****************************************************
 721 :   SI (EGA (TYPE TEPINT) 'CHPOINT ');
 722 :      TEPINT = REDU TEPINT ELTETA ;
 723 :      TEPINT = CHAN 'CHAM' TEPINT OBJMOD 'NOEUD' 'TEMPERATURES';
 724 : *   FINSI; 
 725 : *   SI (EGA (TYPE TEPINT) 'MCHAML  ');
 726 :   SINON; 
 727 :     SI (EGA (TYPE TEPINT) 'MCHAML  ');
 728 :       TEPINT = REDU TEPINT OBJMOD ;
 729 :       TEPINT = CHAN 'NOEUD' OBJMOD TEPINT;
 730 :     FINSI; 
 731 :   FINSI;
 732 :   
 733 : ***************************************************                     
 734 : ***** GRADIENT DU DEPLACEMENT DEPINT =GRADEP ******                     
 735 : ***************************************************                    
 736 : GRADEP = GRAD OBJMOD MAT1 DEPINT ;                  
 737 : GRADEF = TEXT '        ' ;                                         
 738 : SI (ICOQU ET ILIN);                                            
 739 :    GRADEF = 'GRAF' OBJMOD MAT1 DEPINT;                             
 740 : FINSI;
 741 : 
 742 : ***************************************************                     
 743 : ***** CAS DU CONTACT FROTTANT : ON CALCULE WSAUTGR = GRADIENT DU SAUT ******    
 744 : ***************************************************                    
 745 : SI (IFROT);
 746 : * WDEP = deplacement de la fissure de composante UX ... AX ...
 747 : * [grad(w)] = grad [w] car linearité (le saut [w] est donné par AX ...)
 748 : * on utilise un modele liée a la geo de la fissure (cohesif ou contact)
 749 :     WSAUTGR = GRAD OBJCON WDEP ;
 750 : * SIGCON = sigma*n de composantes SMX... homogene a une contrainte
 751 : * supporté sur la levre superieure
 752 :     SI (NEG (TYPE SIGCON) 'MCHAML  ');
 753 :       SIGCON = REDU SIGCON (extr OBJCON2 'MAILLAGE');
 754 :       SIGCON = CHAN 'CHAM' SIGCON OBJCON2 'STRESSES' 'CONTRAINTES';
 755 :     FINS;
 756 : *   Vsigcon = 'VECTEUR' sigcon objcon (1E-8) ('MOTS' 'SMX' 'SMY' 'SMZ');
 757 : *    'TRACER' vsigcon ('EXTRAIRE' objcon 'MAIL');
 758 :     SIGXN = (CHAN (exco SIGCON 'SMX' 'SCAL') TYPE 'SCALAIRE');
 759 :     SIGYN = (CHAN (exco SIGCON 'SMY' 'SCAL') TYPE 'SCALAIRE');
 760 :     si (ega &DIME 3);
 761 :       SIGZN = (CHAN (exco SIGCON 'SMZ' 'SCAL') TYPE 'SCALAIRE');
 762 :     fins;
 763 : FINSI;
 764 : 
 765 : ***************************************************                     
 766 : ***** GRADIENT DE LA VITESSE VITF   =GRAVIT  ******                     
 767 : ***************************************************                     
 768 : SI (EGA IINTE 5); 
 769 :     GRAVIT = GRAD OBJMOD MAT1 VITF;
 770 :     VITF = CHAN 'CHAM'  OBJMOD VITF 'STRESSES';
 771 :     ACCF = CHAN 'CHAM'  OBJMOD ACCF 'STRESSES';
 772 : FINSI;
 773 : 
 774 : ***************************************************                     
 775 : ** GRADIENT TEMPERATURE Grad T pour tous elements =TEPEGR
 776 : ** et Grad Grad T pour les elements massifs seuls (si DJ/DA) =DEPDTGR           
 777 : *************************************************** 
 778 : SI ITHER;
 779 :   SI (NON ICOQU);
 780 :      TEPEGR = GRAD OBJMOD MAT1 (((EXCO 'T' TEPINT MU1)
 781 :           CHAN TYPE 'SCALAIRE') + CMD000); 
 782 :     SI (EGA IINTE 4);       
 783 :        DEPDT = ((EXCO GR1 TEPEGR MU1) + (EXCO GR2 TEPEGR MU2))
 784 :             CHAN TYPE 'SCALAIRE'  ;                   
 785 :       SI (&DIME EGA 3);                                             
 786 :        DEPDT=DEPDT + ((EXCO GR3 TEPEGR MU3) CHAN TYPE 'SCALAIRE');          
 787 :       FINSI;                                                         
 788 :        DEPDTGR = GRAD OBJMOD MAT1 (CHAN TYPE 
 789 :                  (CHAN 'NOEUD' OBJMOD DEPDT) 'DEPLACEMENTS');
 790 : *       DEPDTGR = GRAD OBJMOD MAT1 (CHAN 'CHPO' OBJMOD DEPDT);   
 791 :     FINSI;
 792 :   SINON;
 793 :      TEPEGR = GRAD OBJMOD MAT1 ((((EXCO 'TINF' TEPINT MU1)
 794 :              CHAN TYPE 'SCALAIRE') ET
 795 :              ((EXCO 'T   ' TEPINT MU2)CHAN TYPE 'SCALAIRE') ET
 796 :              ((EXCO 'TSUP' TEPINT MU3)CHAN TYPE 'SCALAIRE'))
 797 :                   + CMD000); 
 798 :   FINSI;      
 799 : FINSI;
 800 : 
 801 : ***************************************************                     
 802 : **GRADIENT DE PRESSIONS Grad P (si DJ/DA) =PRESGR 
 803 : *************************************************** 
 804 : SI (EGA IINTE 4);
 805 :   SI ('>' (XTX PREINT) 1.E-10);
 806 :     M1 = EXTR OBJMOD 'FORC';
 807 :     M2 = EXTR OBJMOD 'DEPL';
 808 :     REPE B1 (DIME M1);
 809 :        F1 = DEP000 + (EXCO (EXTR M1 &B1) PREINT (EXTR M2 &B1));
 810 :     FIN B1;
 811 :     PRESGR = GRAD OBJMOD MAT1 F1;                            
 812 :   FINSI;
 813 : FINSI;
 814 : 
 815 : ***************************************************                     
 816 : * PROFIL DE L'ENERGIE DANS L'EPAISSEUR DE LA COQUE 
 817 : ***************************************************
 818 : SI ICOQU;
 819 :   PEX1 = PROG; PEN1 = PROG;
 820 :   REPE NBJ7 (DIME MODCOU);
 821 :     MCOU1 = MODCOU.&NBJ7; 
 822 :     EX1 = EXTR (REDU MCOU1 MAT1) 'EXCE' 1 1 1;
 823 :     E1 = EXTR (REDU MCOU1 MAT1) 'EPAI' 1 1 1;
 824 :     SI ('<' (E1 / EPAITO) 1.E-4);
 825 :        ENR1 = EXTR (REDU MCOU1 ENERM) 'SCAL' 1 1 1;
 826 :        PEX1 = PEX1 ET ('PROG' EX1);
 827 :        PEN1 = PEN1 ET ('PROG' ENR1);
 828 :     FINSI;
 829 :   FIN NBJ7;
 830 :   M1 = MOT ' DANS L EPAISSEUR DE LA COQUE A T =';
 831 :   'TITR' ('CHAI' 'INTEGRALE ' MOTTI M1 INST);
 832 :   EVENR = 'EVOL' 'MANU' 'COOR.Z LOCAL' PEX1 MOTTI PEN1;
 833 :   SOM1 = EXTR 1 ('SOMM' EVENR);
 834 :   SI (EGA SOM1 0.); 
 835 :      SOM1 = SOM1 + 1.E-10; 
 836 :   FINSI;
 837 :   EVENR = EVENR * EPAITO / SOM1;
 838 :   NN = DIME (EXTR EVENR 'ORDO' 1); 
 839 :   V_SUPE = EXTR NN (EXTR EVENR 'ORDO' 1);
 840 :   V_MOYE = EXTR ((NN - 1) / 2) (EXTR EVENR 'ORDO' 1);
 841 :   V_INFE = EXTR 1 (EXTR EVENR 'ORDO' 1); 
 842 : FINSI;
 843 : 
 844 : ****************************************************                    
 845 : *  RECUPERATION DU NOMBRE DE POINT A AVANCER  =NBOU                  
 846 : ****************************************************
 847 : SI ((EGA &DIME 2) OU ICOQU);                                    
 848 :    NBOU = 1;                                                          
 849 : FINSI;
 850 : SI ((EGA &DIME 3) ET (NON ICOQU));                            
 851 :    TTETA*'TABLE' = SUPTAB.'CHAMP_THETA';
 852 :   SI (EGA IINTE 4);
 853 :      TPI*'TABLE' = SUPTAB.'CHAMP_PI';
 854 :   FINSI;                                 
 855 :    INT = INDE TTETA;                                               
 856 :   SI (EXIS SUPTAB 'NOEUDS_AVANCES');                                       
 857 :     SI (EGA (TYPE (SUPTAB.'NOEUDS_AVANCES')) 'MAILLAGE');               
 858 :        PMA = CHAN 'POI1' (SUPTAB.'NOEUDS_AVANCES');                         
 859 :        NBOU = ('NBNO' PMA) + 1;                                       
 860 :     SINON;                                                          
 861 :         A = SUPTAB.'NOEUDS_AVANCES'; NBOU = 2;                               
 862 :     FINSI;                                                          
 863 :   SINON;                                                            
 864 :      NBOU = DIME TTETA;                                             
 865 :   FINSI;                                                            
 866 : FINSI;
 867 : 
 868 : 
 869 : 
 870 : *|=====================================================================|
 871 : *|======= BOUCLE SUR LES NOEUDS A AVANCER VIRTUELLEMENT =============>
 872 : REPE BCNOEU NBOU;   
 873 : 
 874 : ************************************************** 
 875 : * RECUP DU CHAMP TETA ASSOCIE AU NOEUD PM DE NUMERO NUNOE
 876 : * ET DU CHAMP PI (SI DJ/DA)
 877 : **************************************************                      
 878 : SI ((EGA &DIME 3) ET (NON ICOQU));                            
 879 :   SI (&BCNOEU EGA NBOU);                                          
 880 :      PM = MOT 'GLOBAL';                                               
 881 :      NUNOE = 'CHAI' ' ' PM ' ';                                       
 882 :   SINON;                                                            
 883 :      PM = INT.&BCNOEU;                                                
 884 :     SI (EXIS SUPTAB 'NOEUDS_AVANCES');                                     
 885 :       SI (EGA (TYPE (SUPTAB.'NOEUDS_AVANCES')) 'MAILLAGE');             
 886 :          PM = POIN PMA &BCNOEU;                                     
 887 :       SINON;                                                        
 888 :          PM = SUPTAB.'NOEUDS_AVANCES';                                        
 889 :       FINSI;                                                        
 890 :     FINSI;                                                          
 891 :     si(ega (type PM) 'POINT');
 892 :       NUNOE = NOEU PM;                                               
 893 :     sino;
 894 :       NUNOE = &BCNOEU;                                               
 895 :     fins;
 896 :   FINSI;                                                            
 897 :   TETA = TTETA.PM;
 898 :   SI (EGA IINTE 4); PI = TPI.PM; FINSI;
 899 : FINSI;                                                              
 900 : SI ((EGA &DIME 2) OU ICOQU);                                    
 901 :   PM = SUPTAB.'FRONT_FISSURE';                                        
 902 :   TETA = SUPTAB.'CHAMP_THETA';
 903 :   SI (EGA IINTE 4);
 904 :      PI = SUPTAB.'CHAMP_PI';
 905 :   FINSI;
 906 : FINSI; 
 907 : 
 908 : * si(&BOUCMIX ega 1);
 909 : *   vq7 = VECT TETA 'DEPL' 'BLEU' ; 
 910 : *   MESHFR1=SUPTAB.'FRONT_FISSURE';MESHFR11 = chan MESHFR1 'POI1';
 911 : * *   trac vq7 (MAILMOD et MESHFR1 et MESHFR11) 'TITR' 'CHAMP_THETA'; 
 912 : *  trac vq7 ((aret MAILMOD) et MESHFR1 et MESHFR11) 'TITR' 'CHAMP_THETA'; 
 913 : * fins;
 914 : 
 915 : 
 916 : **************************************************                      
 917 : * GRADIENT, DIVERGENCE DU CHAMP TETA =TETAGR, DIVTETA
 918 : * CHAMELEM TETA =(TETX,TETY,TETZ)
 919 : **************************************************
 920 : TETA = TETA + DEP000;
 921 : TETAGR = GRAD OBJMOD MAT1 TETA; 
 922 : DIVTETA = (EXCO GR1 TETAGR 'SCAL') +
 923 :           (EXCO GR5 TETAGR 'SCAL') +
 924 :           (EXCO GR9 TETAGR 'SCAL');
 925 : DIVTETA= DIVTETA CHAN TYPE 'SCALAIRE';
 926 : *btrolle 2013 : ajout de TETAX, TETAY et TETAZ 
 927 : TETAX= CHAN 'CHAM' OBJMOD (EXCO MU1 TETA 'SCAL') 'SCALAIRE';              
 928 : TETAY= CHAN 'CHAM' OBJMOD (EXCO MU2 TETA 'SCAL') 'SCALAIRE';              
 929 : TETX = CHAN 'CHAM' OBJMOD (EXCO MU1 TETA 'SCAL') 'STRESSES';                
 930 : TETY = CHAN 'CHAM' OBJMOD (EXCO MU2 TETA 'SCAL') 'STRESSES';
 931 : TETX = TETX CHAN TYPE'SCALAIRE';
 932 : TETY = TETY CHAN TYPE'SCALAIRE';               
 933 : SI (&DIME EGA 3) ;                                                
 934 :    TETAZ= CHAN 'CHAM' OBJMOD (EXCO MU3 TETA 'SCAL') 'SCALAIRE';              
 935 :    TETZ = CHAN 'CHAM' OBJMOD (EXCO MU3 TETA 'SCAL') 'STRESSES';
 936 :    TETZ = TETZ CHAN TYPE'SCALAIRE';               
 937 : FINSI;     
 938 : 
 939 : **************************************************                      
 940 : * GRADIENT, DIVERGENCE DU CHAMP PI =PIGR, DIVPI
 941 : * CHAMELEM PI =(PIX,PIY,PIZ)
 942 : * ...
 943 : **************************************************
 944 : SI (EGA IINTE 4);
 945 :    NORM1 = ((EXCO MU1 PI 'SCAL')**2) + ((EXCO MU2 PI 'SCAL')**2);           
 946 :   SI (EGA &DIME 3);                                                   
 947 :      NORM1 = NORM1 + ((EXCO MU3 PI 'SCAL')**2);                               
 948 :   FINSI;
 949 :    PI = PI + DEP000;
 950 :    PI = PI / ('MAXI' (NORM1**0.5));
 951 :    PIGR = GRAD OBJMOD MAT1 PI;
 952 :    DIVPI = (EXCO GR1 PIGR 'SCAL') +
 953 :            (EXCO GR5 PIGR 'SCAL') +
 954 :            (EXCO GR9 PIGR 'SCAL');
 955 :    DIVPI = DIVPI CHAN TYPE 'SCALAIRE';              
 956 :    PITAGR = (OBJMOD PIGR * TETAGR) ;                                  
 957 :    DIVPITA = (EXCO GR1 PITAGR 'SCAL') +
 958 :              (EXCO GR5 PITAGR 'SCAL') +
 959 :              (EXCO GR9 PITAGR 'SCAL'); 
 960 :    DIVPITA = DIVPITA CHAN TYPE 'SCALAIRE';          
 961 :    ADJ = (DIVPITA - (DIVPI * DIVTETA)) ;
 962 :    PIX = CHAN 'CHAM' OBJMOD (EXCO MU1 PI 'SCAL') 'STRESSES';                
 963 :    PIY = CHAN 'CHAM' OBJMOD (EXCO MU2 PI 'SCAL') 'STRESSES';
 964 :    PIX= PIX CHAN TYPE'SCALAIRE'; 
 965 :    PIY= PIY CHAN TYPE'SCALAIRE';                 
 966 :   SI (&DIME EGA 3) ;                                              
 967 :      PIZ = CHAN 'CHAM' OBJMOD (EXCO MU3 PI 'SCAL') 'STRESSES';
 968 :      PIZ= PIZ CHAN TYPE'SCALAIRE';                    
 969 :   FINSI;  
 970 : FINSI; 
 971 : 
 972 : ******************************************************** 
 973 : * DENSITE DE MATERIAU EN CAS DE CALCUL DE J DYNAMIQUE **
 974 : ********************************************************
 975 : SI (EGA IINTE 5);
 976 :    RHO1 = REDU (EXCO MAT1 'RHO' 'SCAL') OBJMOD;
 977 :    RHO1 = (CHAN OBJMOD 'STRESSES' RHO1) CHAN TYPE 'SCALAIRE';
 978 : FINSI;
 979 : 
 980 : ********************************************************                
 981 : *********** SI LE MATERIAU N'EST PAS CONSTANT **********
 982 : * YOU1 = YOUGR * TETA = (grad E) * TETA
 983 : * SIGPRIM = (grad D)*TETA*(EPSI elas)   ou grad D =D(grad E,nu) =DMAT         
 984 : * ALF1 = ALFGR*TETA = (grad Alpha)*TETA
 985 : * DMAT = D(1,nu,ALF1)
 986 : ********************************************************                
 987 : SI MATVARI;                                                         
 988 : *** Le coefficient de Poisson est constant ***                          
 989 : *    NU1 = REDU (EXCO MAT1 'NU' 'SCAL') OBJMOD;                               
 990 : *    NU1 = EXCO NU1 'SCAL' 'NU';
 991 :    NU1 = REDU (EXCO MAT1 'NU') OBJMOD;
 992 :    NU1 = NU1 CHAN TYPE 'SCALAIRE';                                          
 993 : ****** Gradient de Module d'young ******                                
 994 :   SI YOUVARI;                                                       
 995 :      YOU1 = REDU (EXCO MAT1 'YOUN' 'SCAL') OBJMOD;
 996 :      YOU1 = YOU1   CHAN TYPE 'SCALAIRE';                             
 997 :      YOUGR = GRA000; I = 0;                                           
 998 :     REPE NBJ2 NBOBJ;                                             
 999 :        I = I + 1;                                                     
1000 :        YO1 = CHAN 'STRESSES' TABMOD.I                                   
1001 :             (REDU ((EXCO MAT1 'YOUN' MU1)
1002 :     CHAN TYPE 'SCALAIRE') TABMOD.I);                     
1003 :        YOUGR = YOUGR + (GRAD TABMOD.I MAT1 (YO1 +        
1004 :                (REDU CMD001 TABMOD.I)));
1005 : *       YO1 = CHAN 'CHPO' TABMOD.I                                   
1006 : *            (REDU (EXCO MAT1 'YOUN' 'SCAL') TABMOD.I);                    
1007 : *       YOUGR = YOUGR + (GRAD TABMOD.I MAT1 (('NOMC' MU1 YO1)         
1008 : *               + (REDU DEP000 (EXTR YO1 'MAIL'))));                
1009 :     FIN NBJ2;                                                       
1010 :      YOU1 = (((EXCO GR1 YOUGR 'SCAL')CHAN TYPE 'SCALAIRE')
1011 :               *OBJMOD TETX) +                           
1012 :             (((EXCO GR2 YOUGR 'SCAL')CHAN TYPE 'SCALAIRE')
1013 :               *OBJMOD TETY);                            
1014 :     SI (&DIME EGA 3);                                             
1015 :       YOU1= YOU1 + (((EXCO GR3 YOUGR 'SCAL')CHAN TYPE 'SCALAIRE')
1016 :            *OBJMOD TETZ);                   
1017 :     FINSI;                                                          
1018 :      YOU1 = (EXCO YOU1 'SCAL' 'YOUN') CHAN TYPE 'SCALAIRE' ;               
1019 :      DMAT = 'MATE' OBJMOD 'YOUN' YOU1 'NU' NU1;                       
1020 :      SIGPRIM = ('HOOK' OBJMOD DMAT)*OBJMOD                            
1021 :                (ELAS OBJMOD SIGF MAT1);
1022 :   FINSI;                                                            
1023 : ****** Gradient de Coefficient de Dilatation ******                     
1024 :   SI (ITHER ET ALFVARI);                                          
1025 :      ALF1 = REDU (EXCO MAT1 'ALPH' 'SCAL') OBJMOD;
1026 :      ALF1 = ALF1 CHAN TYPE 'SCALAIRE';                          
1027 :      ALFGR = GRA000; I = 0;                                           
1028 :     REPE NBJ3 NBOBJ;                                             
1029 :        I = I + 1;                                                     
1030 :        AL1 = CHAN 'STRESSES' TABMOD.I                                   
1031 :             (REDU (EXCO MAT1 'ALPH' MU1) TABMOD.I); 
1032 :        AL1 = AL1 CHAN TYPE 'SCALAIRE';                      
1033 :        ALFGR = ALFGR + (GRAD TABMOD.I MAT1 (AL1 +          
1034 :                (REDU CMD001 TABMOD.I)));
1035 : *!       AL1 = CHAN 'CHPO' TABMOD.I                                   
1036 : *!             (REDU (EXCO MAT1 'ALPH' 'SCAL') TABMOD.I);          
1037 : *!       ALFGR = ALFGR + (GRAD TABMOD.I MAT1 (('NOMC' MU1 AL1)         
1038 : *!               + (REDU DEP000 (EXTR AL1 'MAIL'))));               
1039 :     FIN NBJ3;                                                       
1040 :      ALF1 = (((EXCO GR1 ALFGR 'SCAL')CHAN TYPE 'SCALAIRE')
1041 :               * OBJMOD TETX) +                           
1042 :             (((EXCO GR2 ALFGR 'SCAL')CHAN TYPE 'SCALAIRE')
1043 :              * OBJMOD TETY); 
1044 :                                  
1045 :     SI (&DIME EGA 3) ;                                            
1046 :        ALF1=ALF1 + (((EXCO GR3 ALFGR 'SCAL')CHAN TYPE 'SCALAIRE')
1047 :              * OBJMOD TETZ);                   
1048 :     FINSI ;                                                         
1049 :      ALF1 = EXCO ALF1 'SCAL' 'ALPH';
1050 :      ALF1 = ALF1 CHAN TYPE 'SCALAIRE';                                      
1051 :      DMAT = 'MATE' OBJMOD 'YOUN' 1. 'NU' NU1 'ALPH' ALF1;
1052 :   FINSI;                                                            
1053 : FINSI; 
1054 : 
1055 : ***********************************************                         
1056 : * TEMU  = (Grad T)*THETA            
1057 : * TEMU1 = (Grad T)*PI             
1058 : * TEMU2 = (Grad (Grad T))*PI*THETA 
1059 : * EPSTU = D^-1 sigma^th 
1060 : *         avec sigma^th = (-3lambda-2mu)*alpha*(grad T)*TETA*I
1061 : ***********************************************                         
1062 : SI ITHER;
1063 :   SI (NON ICOQU);                                                           
1064 :      TEMU = (((EXCO GR1 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1065 :              * OBJMOD TETX) +                            
1066 :             (((EXCO GR2 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1067 :            *  OBJMOD TETY) ;                            
1068 :     SI (&DIME EGA 3) ;                                              
1069 :       TEMU=TEMU +(((EXCO GR3 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1070 :           * OBJMOD TETZ);                    
1071 :     FINSI ;
1072 :      TEMU = CHAN TYPE (EXCO 'SCAL' TEMU 'T') 'TEMPERATURES';
1073 :   SINON;
1074 :      T1 = (((EXCO GR1 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1075 :               *OBJMOD TETX) +                            
1076 :           (((EXCO GR2 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1077 :              *OBJMOD TETY) +
1078 :           (((EXCO GR3 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1079 :                * OBJMOD TETZ) ;  
1080 :      T2 = (((EXCO GR4 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1081 :             * OBJMOD TETX) +                            
1082 :           (((EXCO GR5 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1083 :                * OBJMOD TETY) +
1084 :           (((EXCO GR6 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1085 :               * OBJMOD TETZ) ;
1086 :      T3 = (((EXCO GR7 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1087 :              * OBJMOD TETX) +                            
1088 :           (((EXCO GR8 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1089 :             * OBJMOD TETY) +
1090 :           (((EXCO GR9 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1091 :            * OBJMOD TETZ) ;           
1092 :      TEMU = CHAN TYPE ((EXCO 'SCAL' T1 'TINF') ET
1093 :              (EXCO 'SCAL' T2 'T   ') ET
1094 :              (EXCO 'SCAL' T3 'TSUP')) 'TEMPERATURES';
1095 :   FINSI;      
1096 :    EPSTU = ELAS OBJMOD (THET OBJMOD MAT1 TEMU) MAT1;
1097 : *
1098 :   SI (EGA IINTE 4);
1099 :      TEMU1 = (((EXCO GR1 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1100 :            * OBJMOD PIX) +                          
1101 :              (((EXCO GR2 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1102 :            * OBJMOD PIY);
1103 :     SI (&DIME EGA 3) ;                                              
1104 :       TEMU1=TEMU1+(((EXCO GR3 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1105 :             * OBJMOD PIZ);                    
1106 :     FINSI ;
1107 :     SI ICOQU;
1108 :        TEMU1 = CHAN TYPE ((EXCO 'SCAL' TEMU1 'T') ET
1109 :                 (EXCO 'SCAL' TEMU1 'TINF') ET
1110 :                 (EXCO 'SCAL' TEMU1 'TSUP')) 'TEMPERATURES';
1111 :     SINON;
1112 :        TEMU1 = CHAN TYPE (EXCO 'SCAL' TEMU1 'T') 'TEMPERATURES';
1113 :     FINSI;
1114 :      EPSTU1 = ELAS OBJMOD (THET OBJMOD MAT1 TEMU1) MAT1;
1115 : *
1116 :      TXXPIX = ((EXCO GR1 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1117 :            * OBJMOD PIX;                           
1118 :      TYXPIY = ((EXCO GR2 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1119 :              * OBJMOD PIY;                           
1120 :      TXYPIX = ((EXCO GR4 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1121 :            * OBJMOD PIX;                           
1122 :      TYYPIY = ((EXCO GR5 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1123 :           * OBJMOD PIY;                           
1124 :      TEMU2 = (TETX*OBJMOD (TXXPIX + TYXPIY)) +                        
1125 :              (TETY*OBJMOD (TXYPIX + TYYPIY));                         
1126 :     SI (&DIME EGA 3) ;                                            
1127 :       TEMU1=TEMU1+(((EXCO GR3 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
1128 :            * OBJMOD PIZ);                 
1129 :        TZXPIZ=((EXCO GR3 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1130 :              * OBJMOD PIZ;                         
1131 :        TZYPIZ=((EXCO GR6 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1132 :                * OBJMOD PIZ;                         
1133 :        TXZPIX=((EXCO GR7 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1134 :              * OBJMOD PIX;                         
1135 :        TYZPIY=((EXCO GR8 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1136 :              * OBJMOD PIY;                         
1137 :        TZZPIY=((EXCO GR9 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
1138 :              * OBJMOD PIZ;                         
1139 :        TEMU2= (TETX*OBJMOD (TXXPIX + TYXPIY + TZXPIZ)) +             
1140 :                (TETY*OBJMOD (TXYPIX + TYYPIY + TZYPIZ)) +             
1141 :                (TETZ*OBJMOD (TXZPIX + TYZPIY + TZZPIZ));              
1142 :     FINSI;                                                          
1143 :     SI ICOQU;
1144 :        TEMU2 = CHAN TYPE ((EXCO 'SCAL' TEMU2 'T') ET
1145 :                 (EXCO 'SCAL' TEMU2 'TINF') ET
1146 :                 (EXCO 'SCAL' TEMU2 'TSUP')) 'TEMPERATURES';
1147 :     SINON;
1148 :        TEMU2 = CHAN TYPE (EXCO 'SCAL' TEMU2 'T') 'TEMPERATURES';
1149 :     FINSI;
1150 :      EPSTU2 = ELAS OBJMOD (THET OBJMOD MAT1 TEMU2) MAT1;
1151 :   FINSI;                    
1152 : FINSI;
1153 : 
1154 : * modif sm
1155 : ***********************************************                         
1156 : * CUMDEFI = SIG_{IJ} * (deps_{ij} / dx_{,k}) * thet_{k}
1157 : ***********************************************
1158 : CUMDEFI = ZERO OBJMOD 'STRESSES' ;
1159 : si IDEFI;
1160 : 
1161 :  SI (NON ICOQU);
1162 :  
1163 :   NIDEF = 3;
1164 :   SI (&DIME EGA 3) ; 
1165 :     NIDEF = 6;
1166 :   FINSI;
1167 :   
1168 :   JDEFI = 0;
1169 :   REPETER BDEFI NIDEF;
1170 :     JDEFI = JDEFI + 1 ;
1171 :     
1172 :     SI (JDEFI EGA 1);
1173 :       EIJ = EXCO DEFINT 'EPXX' MU1;
1174 :       SMIJ = EXCO SIGF 'SMXX' 'SCAL';
1175 :     FINSI;
1176 :     SI (JDEFI EGA 2);
1177 :       EIJ = EXCO DEFINT 'EPYY' MU1;
1178 :       SMIJ = EXCO SIGF 'SMYY' 'SCAL';
1179 :     FINSI;
1180 :     SI (JDEFI EGA 3);
1181 :       EIJ = EXCO DEFINT 'GAXY' MU1;
1182 :       SMIJ = EXCO SIGF 'SMXY' 'SCAL';
1183 :     FINSI;
1184 :     SI (JDEFI EGA 4);
1185 :       EIJ = EXCO DEFINT 'EPZZ' MU1;
1186 :       SMIJ = EXCO SIGF 'SMZZ' 'SCAL';
1187 :     FINSI;
1188 :     SI (JDEFI EGA 5);
1189 :       EIJ = EXCO DEFINT 'GAXZ' MU1;
1190 :       SMIJ = EXCO SIGF 'SMXZ' 'SCAL';
1191 :     FINSI;
1192 :     SI (JDEFI EGA 6);
1193 :       EIJ = EXCO DEFINT 'GAYZ' MU1;
1194 :       SMIJ = EXCO SIGF 'SMYZ' 'SCAL';
1195 :     FINSI;
1196 : 
1197 :     DEIJGR = GRAD OBJMOD MAT1 (( CHAN
1198 :      (CHAN  'NOEUD' OBJMOD  EIJ)  TYPE 'SCALAIRE') + CMD000); 
1199 :     DEIJX = (CHAN (CHAN 'STRESSES' OBJMOD 
1200 :     (EXCO DEIJGR 'UX,X' 'SCAL')) TYPE 'SCALAIRE') * 
1201 :     (CHAN SMIJ TYPE 'SCALAIRE') * TETX; 
1202 :     DEIJY = (CHAN (CHAN 'STRESSES' OBJMOD 
1203 :     (EXCO DEIJGR 'UX,Y' 'SCAL')) TYPE 'SCALAIRE') * 
1204 :     (CHAN SMIJ TYPE 'SCALAIRE') * TETY; 
1205 :     CUMDEFI = CUMDEFI + ( DEIJX) + ( DEIJY) ;
1206 :     SI (&DIME EGA 3) ;    
1207 :      DEIJZ = (CHAN (CHAN 'STRESSES' OBJMOD 
1208 :      (EXCO DEIJGR 'UX,Z' 'SCAL')) TYPE 'SCALAIRE') * 
1209 :     (CHAN SMIJ TYPE 'SCALAIRE')* TETZ; 
1210 :      CUMDEFI = CUMDEFI  + (DEIJZ);
1211 :     FINSI;
1212 : 
1213 :   FIN BDEFI;
1214 :  
1215 :  FINSI;
1216 : finsi;
1217 : 
1218 : *fin modif sm
1219 : 
1220 : ***********************************************                         
1221 : * PEMU = (Grad P)*PI
1222 : * PEMU1 = (Grad P)*TETA
1223 : * PEMU2 = (Grad P)*(Grad PI)*TETA
1224 : ***********************************************
1225 : SI (EGA IINTE 4);
1226 : SI ('>' (XTX PREINT) 1.E-10);
1227 :    F1 = (((EXCO GR1 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1228 :            * OBJMOD PIX) +
1229 :         (((EXCO GR2 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1230 :               * OBJMOD PIY);
1231 :    F2 = (((EXCO GR4 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1232 :              * OBJMOD PIX) +
1233 :         (((EXCO GR5 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1234 :              * OBJMOD PIY);
1235 :    PEMU = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F1 MF1) ET
1236 :                                 (EXCO 'SCAL' F2 MF2)) ;
1237 :   SI (EGA &DIME 3);
1238 :      F1=F1+ (((EXCO GR3 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1239 :            * OBJMOD PIZ);
1240 :      F2=F2+ (((EXCO GR6 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1241 :            * OBJMOD PIZ);
1242 :      F3 = (((EXCO GR7 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1243 :            * OBJMOD PIX) +
1244 :           (((EXCO GR8 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1245 :            * OBJMOD PIY) +
1246 :           (((EXCO GR9 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1247 :                  * OBJMOD PIZ);
1248 :      PEMU = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F1 MF1) ET
1249 :             (EXCO 'SCAL' F2 MF2) ET (EXCO 'SCAL' F3 MF3)); 
1250 :   FINSI;
1251 : *
1252 :    F1 = (((EXCO GR1 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1253 :              * OBJMOD TETX) +
1254 :         (((EXCO GR2 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1255 :            * OBJMOD TETY);
1256 :    F2 = (((EXCO GR4 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1257 :            * OBJMOD TETX) +
1258 :         (((EXCO GR5 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1259 :            * OBJMOD TETY);
1260 :    PEMU1 = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F1 MF1) ET
1261 :                                  (EXCO 'SCAL' F2 MF2)) ;
1262 :   SI (EGA &DIME 3);
1263 :      F1=F1+ (((EXCO GR3 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1264 :                     * OBJMOD TETZ);
1265 :      F2=F2+ (((EXCO GR6 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1266 :                 * OBJMOD TETZ);
1267 :      F3=(((EXCO GR7 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1268 :               * OBJMOD TETX) +
1269 :           (((EXCO GR8 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1270 :               * OBJMOD TETY) +
1271 :           (((EXCO GR9 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1272 :                * OBJMOD TETZ);
1273 :      PEMU1 = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F1 MF1) ET
1274 :              (EXCO 'SCAL' F2 MF2) ET (EXCO 'SCAL' F3 MF3)); 
1275 :   FINSI;
1276 : *
1277 :    F1= (((EXCO GR1 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1278 :                 * OBJMOD TETX) +
1279 :         (((EXCO GR2 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1280 :               * OBJMOD TETY);
1281 :    F2= (((EXCO GR4 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1282 :                * OBJMOD TETX) +
1283 :         (((EXCO GR5 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1284 :                  * OBJMOD TETY);
1285 :   SI (EGA &DIME 3);
1286 :      F1=F1 + (((EXCO GR3 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1287 :                *OBJMOD TETZ);
1288 :      F2=F2 + (((EXCO GR6 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1289 :               *OBJMOD TETZ);
1290 :      F3 = (((EXCO GR7 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1291 :               *OBJMOD TETX) +
1292 :           (((EXCO GR8 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1293 :                 *OBJMOD TETY) +
1294 :           (((EXCO GR9 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
1295 :                *OBJMOD TETZ);
1296 :   FINSI;
1297 :    F4 = (((EXCO GR1 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1298 :                *OBJMOD F1) +
1299 :         (((EXCO GR2 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1300 :              *OBJMOD F2);
1301 :    F5 = (((EXCO GR4 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1302 :                *OBJMOD F1) +
1303 :         (((EXCO GR5 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1304 :               *OBJMOD F2);
1305 :    PEMU2 = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F4 MF1) ET
1306 :                                  (EXCO 'SCAL' F5 MF2)) ;
1307 :   SI (EGA &DIME 3);
1308 :      F4 = F4 + (((EXCO GR3 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1309 :                  * OBJMOD F3);
1310 :      F5 = F5 + (((EXCO GR6 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1311 :                * OBJMOD F3);
1312 :      F6 = (((EXCO GR7 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1313 :                  * OBJMOD F1) +
1314 :           (((EXCO GR8 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1315 :                * OBJMOD F2) +
1316 :           (((EXCO GR9 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
1317 :                  * OBJMOD F3);
1318 :      PEMU2 = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F4 MF1) ET
1319 :              (EXCO 'SCAL' F5 MF2) ET (EXCO 'SCAL' F6 MF3)); 
1320 :   FINSI;
1321 : FINSI;
1322 : FINSI;
1323 : 
1324 : ***********************************************                         
1325 : * DANS LE CAS DE CALCUL DE DJ/DA                        
1326 : * U^aux=A_DEPI  et  SIGMA^aux=A_SIGF                      
1327 : ***********************************************                         
1328 : SI (EGA IINTE 4);
1329 :    GRAD11 = (OBJMOD GRADEP * PIGR) ;                                  
1330 :    EPXX1 = (EXCO GR1 GRAD11 'SCAL')CHAN TYPE 'SCALAIRE';                  
1331 :    EPYY1 = (EXCO GR5 GRAD11 'SCAL')CHAN TYPE 'SCALAIRE';                  
1332 :    EPZZ1 = (EXCO GR9 GRAD11 'SCAL')CHAN TYPE 'SCALAIRE';                  
1333 :    GAXY1 = ((EXCO GR2 GRAD11 'SCAL') + (EXCO GR4 GRAD11 'SCAL'))          
1334 :                CHAN TYPE 'SCALAIRE' ;               
1335 :    GAXZ1 = ((EXCO GR3 GRAD11 'SCAL') + (EXCO GR7 GRAD11 'SCAL'))
1336 :              CHAN TYPE 'SCALAIRE' ;                      
1337 :    GAYZ1 = ((EXCO GR6 GRAD11 'SCAL') + (EXCO GR8 GRAD11 'SCAL'))
1338 :             CHAN TYPE 'SCALAIRE' ;                      
1339 :   SI (&DIME EGA 3) ;                                              
1340 :      EPSIA1 = 'MANU' 'CHML' OBJMOD EP1 EPXX1 EP2                      
1341 :                EPYY1 EP3 EPZZ1 EP4 GAXY1 EP5 GAXZ1 EP6                
1342 :                GAYZ1 TYPE 'DEFORMATIONS' 'STRESSES';                
1343 :   SINON;                                                            
1344 :      EPSIA1 = 'MANU' 'CHML' OBJMOD EP1 EPXX1 EP2                      
1345 :                EPYY1 EP3 EPZZ1 EP4 GAXY1                              
1346 :               TYPE 'DEFORMATIONS' 'STRESSES';                
1347 :   FINSI;                                                            
1348 :   SI ITHER; EPSIA1 = EPSIA1 + EPSTU1; FINSI;                      
1349 :    F11 = ('BSIG' OBJMOD ((('HOOK' OBJMOD MAT1)*OBJMOD EPSIA1)       
1350 :        - (OBJMOD SIGF*DIVPI)) + ('FOFI' OBJMOD SIGF PIGR)) ;
1351 :   SI ('>' (XTX PREINT) 1.E-10); 
1352 :      F11 = F11 + PEMU + (PREINT*(CHAN 'CHPO' OBJMOD DIVPI));
1353 :   FINSI;
1354 :    A_PREI = FOR000;          
1355 :    A_DEPI = REDU ('RESO' (F11 + FOR000) RIGTOT) ELTETA ;  
1356 :    A_SIGF = OBJMOD ('HOOK' OBJMOD MAT1)*
1357 :                    (('EPSI' OBJMOD A_DEPI) - EPSIA1);
1358 : FINSI;
1359 : 
1360 : ***************************************************                     
1361 : * GRADIENT DU DEPLACEMENT AUX A_DEPI =A_DEPGR
1362 : * SI DJ/DA ou SI DECOUPLAGE  (sauf si A_DEPGR existe deja)
1363 : ***************************************************
1364 : SI ((EGA IINTE 4) OU (EGA IINTE 99));
1365 :    si (NEG (TYPE A_DEPGR) 'MCHAML');
1366 :      A_DEPGR = GRAD OBJMOD MAT1 A_DEPI;                                 
1367 :    fins;
1368 :    A_DEPGF = TEXT '        ' ; 
1369 :    SI (ICOQU ET ILIN);                                            
1370 :      A_DEPGF = 'GRAF' OBJMOD MAT1 A_DEPI;                             
1371 :    FINSI;
1372 : FINSI;
1373 : 
1374 : ***********************************************              
1375 : * DEP0 = (grad U)*THETA       
1376 : ***********************************************
1377 : LO1 = ((EGA IINTE 1) OU (EGA IINTE 2) OU (EGA IINTE 3)
1378 :         OU (EGA IINTE 4) OU (EGA IINTE 5)) 
1379 :         ET ('>' (XTX PREINT) 1.E-10);
1380 : LO2 = FAUX;
1381 : SI (EGA IINTE 99);
1382 :    LO2 = '>' (XTX A_PREI) 1.E-10;
1383 : FINSI;
1384 : SI (LO1 OU LO2);
1385 :    GRADCH = CHAN 'CHPO' OBJMOD GRADEP ;  
1386 : *  mess 'gcalcul : CHAN CHPO grad(U)';
1387 : *bp : on se ramene a un chpoint pour faire XTY avec preint ensuite
1388 : *     on moyenne avce CHAN CHPO, pourrait on l'eviter?
1389 :    DEPLX = ((EXCO GR1 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +              
1390 :            ((EXCO GR2 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) ;              
1391 :    DEPLY = ((EXCO GR4 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +              
1392 :            ((EXCO GR5 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) ;              
1393 :    DEP0 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2);             
1394 :   SI (&DIME EGA 3) ;                                              
1395 :      DEPLX = DEPLX + 
1396 :              ((EXCO GR3 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL'));             
1397 :      DEPLY = DEPLY + 
1398 :              ((EXCO GR6 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL'));             
1399 :      DEPLZ = ((EXCO GR7 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +            
1400 :              ((EXCO GR8 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) +            
1401 :              ((EXCO GR9 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL')) ;            
1402 :      DEP0 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2) +                   
1403 :             ('NOMC' DEPLZ MU3);                                       
1404 :   FINSI ;                                                           
1405 :   SI (ICOQU ET ILIN);                                             
1406 :      GRAFCH = CHAN 'CHPO' OBJMOD GRADEF ;                        
1407 :      BXX = EXCO 'BX,X' GRAFCH 'SCAL';                                         
1408 :      BXY = EXCO 'BX,Y' GRAFCH 'SCAL';                                         
1409 :      BYX = EXCO 'BY,X' GRAFCH 'SCAL';                                         
1410 :      BYY = EXCO 'BY,Y' GRAFCH 'SCAL';                                         
1411 :      DEPFX = 'NOMC' 'RX' ( (BXX*(EXCO 'UX' TETA 'SCAL'))+                     
1412 :                            (BXY*(EXCO 'UY' TETA 'SCAL')) );                   
1413 :      DEPFY = 'NOMC' 'RY' ( (BYX*(EXCO 'UX' TETA 'SCAL'))+                     
1414 :                            (BYY*(EXCO 'UY' TETA 'SCAL')) );                   
1415 :      DEP0 = DEP0 + DEPFX + DEPFY;                                   
1416 :   FINSI ;                                
1417 : FINSI;
1418 : 
1419 : ***********************************************              
1420 : * DEP1 = (grad A_DEPI)*THETA   
1421 : ***********************************************
1422 : LO1 = (EGA IINTE 4) ET ('>' (XTX PREINT) 1.E-10);
1423 : LO2 = FAUX;
1424 : SI (EGA IINTE 99);
1425 :    LO2 = ('>' (XTX A_PREI) 1.E-10) OU ('>' (XTX PREINT) 1.E-10);
1426 : FINSI;
1427 : SI (LO1 OU LO2);
1428 : *  mess 'gcalcul : CHAN CHPO grad(U^aux)';
1429 :    GRADCH = CHAN 'CHPO' OBJMOD A_DEPGR ;                         
1430 : *bp : on se ramene a un chpoint pour faire XTY avec preint ensuite
1431 : *     on moyenne avec CHAN CHPO, pourrait on l'eviter?
1432 :    DEPLX = ((EXCO GR1 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +              
1433 :            ((EXCO GR2 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) ;              
1434 :    DEPLY = ((EXCO GR4 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +              
1435 :            ((EXCO GR5 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) ;              
1436 :    DEP1 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2);             
1437 :   SI (&DIME EGA 3) ;                                              
1438 :      DEPLX = DEPLX + 
1439 :              ((EXCO GR3 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL'));             
1440 :      DEPLY = DEPLY + 
1441 :              ((EXCO GR6 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL'));             
1442 :      DEPLZ = ((EXCO GR7 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +            
1443 :              ((EXCO GR8 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) +            
1444 :              ((EXCO GR9 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL')) ;            
1445 :      DEP1 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2) +                   
1446 :             ('NOMC' DEPLZ MU3);                                       
1447 :   FINSI ;                                                           
1448 :   SI (ICOQU ET ILIN);                                             
1449 :      GRAFCH = CHAN 'CHPO' OBJMOD GRADEF ;                        
1450 :      BXX = EXCO 'BX,X' GRAFCH 'SCAL';                                         
1451 :      BXY = EXCO 'BX,Y' GRAFCH 'SCAL';                                         
1452 :      BYX = EXCO 'BY,X' GRAFCH 'SCAL';                                         
1453 :      BYY = EXCO 'BY,Y' GRAFCH 'SCAL';                                         
1454 :      DEPFX = 'NOMC' 'RX' ( (BXX*(EXCO 'UX' TETA 'SCAL'))+                     
1455 :                            (BXY*(EXCO 'UY' TETA 'SCAL')) );                   
1456 :      DEPFY = 'NOMC' 'RY' ( (BYX*(EXCO 'UX' TETA 'SCAL'))+                     
1457 :                            (BYY*(EXCO 'UY' TETA 'SCAL')) );                   
1458 :      DEP1 = DEP1 + DEPFX + DEPFY;                                   
1459 :   FINSI ;                                
1460 : FINSI;
1461 : 
1462 : *********************************************** 
1463 : * Termes suppléménetaire en Dynamique
1464 : * VCARE = V*V 
1465 : * GRUTV = (grad U)*THETA*V      (Attigui)
1466 : * GRVTV = V^T * (grad V)*THETA  (BP)
1467 : * GRWTU = W^T * (grad U)*THETA  (BP)
1468 : *********************************************** 
1469 : SI (EGA IINTE 5);
1470 :   VCARE =( ((EXCO MU1 VITF 'SCAL')**2) + ((EXCO MU2 VITF 'SCAL')**2) )
1471 :             CHAN TYPE 'SCALAIRE'  ;
1472 :   DEPFX = (((EXCO GR1 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE') *TETX) + 
1473 :           (((EXCO GR2 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE') *TETY) ;
1474 :   DEPFY = (((EXCO GR4 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE') *TETX) + 
1475 :           (((EXCO GR5 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE') *TETY) ;
1476 :   VITFX = (((EXCO GR1 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE') *TETX) + 
1477 :           (((EXCO GR2 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE') *TETY) ;
1478 :   VITFY = (((EXCO GR4 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE') *TETX) + 
1479 :           (((EXCO GR5 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE') *TETY) ;
1480 :   SI (EGA &DIME 3);
1481 :     VCARE=VCARE +(((EXCO MU3 VITF 'SCAL')**2)CHAN TYPE 'SCALAIRE');
1482 :     DEPFX=DEPFX +(((EXCO GR3 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
1483 :     DEPFY=DEPFY +(((EXCO GR6 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
1484 :     DEPFZ = (((EXCO GR7 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETX) + 
1485 :             (((EXCO GR8 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETY) +
1486 :             (((EXCO GR9 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
1487 :     VITFX=VITFX +(((EXCO GR3 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
1488 :     VITFY=VITFY +(((EXCO GR6 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
1489 :     VITFZ = (((EXCO GR7 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETX) + 
1490 :             (((EXCO GR8 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETY) +
1491 :             (((EXCO GR9 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
1492 :     GRUTV = ((EXCO MU1 VITF 'SCAL')*DEPFX) + 
1493 :             ((EXCO MU2 VITF 'SCAL')*DEPFY) +
1494 :             ((EXCO MU3 VITF 'SCAL')*DEPFZ) ;
1495 :     GRWTU = ((EXCO MU1 ACCF 'SCAL')*DEPFX) + 
1496 :             ((EXCO MU2 ACCF 'SCAL')*DEPFY) +
1497 :             ((EXCO MU3 ACCF 'SCAL')*DEPFZ) ;
1498 :     GRVTV = ((EXCO MU1 VITF 'SCAL')*VITFX) + 
1499 :             ((EXCO MU2 VITF 'SCAL')*VITFY) +
1500 :             ((EXCO MU3 VITF 'SCAL')*VITFZ) ;
1501 :   SINON;
1502 :      GRUTV = ((EXCO MU1 VITF 'SCAL')*DEPFX) + 
1503 :              ((EXCO MU2 VITF 'SCAL')*DEPFY) ;
1504 :     GRWTU = ((EXCO MU1 ACCF 'SCAL')*DEPFX) + 
1505 :             ((EXCO MU2 ACCF 'SCAL')*DEPFY) ;
1506 :     GRVTV = ((EXCO MU1 VITF 'SCAL')*VITFX) + 
1507 :             ((EXCO MU2 VITF 'SCAL')*VITFY) ;
1508 :   FINSI;
1509 : FINSI;
1510 : 
1511 : 
1512 : 
1513 : *|=====================================================================|
1514 : *|=======  IV. CALCUL DE J,C*,C*(h) ou J_DYNA  ========================|
1515 : 
1516 : ***********************************************
1517 : * S10 = w*(div THETA) 
1518 : * S20 = sigma*(grad U)*(grad THETA)                         
1519 : * S40 = Tr(sigma)*Alpha*(Grad T)*THETA 
1520 : * S50 = F*(grad U)*THETA 
1521 : * S60 = 0.5*(grad D)*THETA*(EPSI elas)*(EPSI elas)                
1522 : * S70 = Tr(sigma)*T*(Grad Alpha)*THETA                
1523 : * S100 = (W(b) - W(a))*TETA(x) 
1524 : * S110 = SIGF*n*[ (dU/dX)(b) - (dU/dX)(a) ]*TETA(x) 
1525 : * S120 = wvmis*(Grad T)*THETA 
1526 : *     ou wvmis = SOME d(Von_mises)/d(Temperature) d(EPSE)
1527 : ***********************************************
1528 : * Termes supplementaires pour le J dynamique (Formulation de Attigui)
1529 : * S130 = 0.5*RHO*(V²)*(div THETA) 
1530 : * S140 = [Delta (RHO*V*(grad U)*THETA)]/(Delta Temps)
1531 : * Termes supplementaires pour le J dynamique (Formulation de BP)
1532 : * S130 = -0.5*RHO*(V²)*(div THETA) 
1533 : * S140 =  RHO*W*(grad U)*THETA 
1534 : * S141 = -RHO*V*(grad V)*THETA
1535 : ***********************************************
1536 : * Termes supplementaires pour le J en grands-deplacements
1537 : * S150 = sigma*((grad U)t)*(grad U)*(grad THETA)
1538 : ***********************************************
1539 : ***********************************************
1540 : * Termes supplementaires pour un chaergement en déformation imposée (modif sm)
1541 : * S160 = sigma*(deps/dx)*(THETA)
1542 : *      = SIG_{IJ} * (deps^{imp}_{ij} / dx_{,k}) * thet_{k}
1543 : ***********************************************
1544 : * Termes supplementaires pour le contact frottant (modif BP,BT)
1545 : * S111 = SIGF*n*[ (dU/dX)(b) - (dU/dX)(a) ]*TETA(x) 
1546 : ***********************************************
1547 : 
1548 : 
1549 : SI ( (IINTE EGA 1) OU (IINTE EGA 2) OU 
1550 :      (IINTE EGA 3) OU (IINTE EGA 5));
1551 :   S10 = INTG OBJMOD (ENERM*OBJMOD DIVTETA) MAT2;
1552 :   SI (ICOQU ET ILIN);                                               
1553 :      S20 = INTG OBJMOD (WORK OBJMOD SIGF                            
1554 :             (GRADEP*OBJMOD TETAGR) (GRADEF*OBJMOD TETAGR));            
1555 :   SINON;                                                              
1556 :      S20 = INTG OBJMOD (WORK OBJMOD SIGF                            
1557 :                          (GRADEP*OBJMOD TETAGR)) MAT2;     
1558 :   FINSI;
1559 :   SI IGDEP;
1560 :     SI (ICOQU ET ILIN);
1561 :        S150 = INTG OBJMOD (WORK OBJMOD SIGF                            
1562 :                (((TAGR GRADEP)*OBJMOD GRADEP)*OBJMOD TETAGR)
1563 :                (((TAGR GRADEF)*OBJMOD GRADEF)*OBJMOD TETAGR));
1564 :     SINON;   
1565 :        S150 = INTG OBJMOD (WORK OBJMOD SIGF                            
1566 :                (((TAGR GRADEP)*OBJMOD GRADEP)*OBJMOD TETAGR)) MAT2;
1567 :     FINSI; 
1568 :   FINSI;
1569 :   SI ITHER;
1570 :      S40 = INTG OBJMOD (ENER OBJMOD SIGF EPSTU) MAT2;
1571 :   FINSI;
1572 :   SI ('>' (XTX PREINT) 1.E-10) ;
1573 :      S50 = XTY PREINT DEP0 MOTF MOTU ;
1574 :   FINSI;
1575 :   SI (MATVARI ET YOUVARI);
1576 :      S60 = INTG OBJMOD (0.5*(ENER OBJMOD                          
1577 :             SIGPRIM (ELAS OBJMOD SIGF MAT1))) MAT2;
1578 :   FINSI;
1579 :   SI (MATVARI ET ITHER ET ALFVARI);
1580 :      S70 = INTG OBJMOD (ENER OBJMOD SIGF (ELAS                
1581 :             OBJMOD (THET OBJMOD TEPINT DMAT) DMAT)) MAT2;
1582 :   FINSI;
1583 :   SI (('>' (DIME LINTER) 0) ET (NON IPARAL));
1584 :      I = 0; IND1 = 'INDE' LINTER;                                               
1585 :     REPE NBJ4 (DIME IND1);                                         
1586 :        I = I + 1;
1587 :        LE1 = IND1.&NBJ4;
1588 :        L1 = LINTER.LE1;
1589 :        M1 = TABMOD.(EXTR LE1 1);
1590 :        M2 = TABMOD.(EXTR LE1 2);                                              
1591 :        OBJINT = MODE L1 'MECANIQUE' 'ELASTIQUE';                
1592 :        TETXL = REDU L1 (EXCO MU1 TETA 'SCAL');         
1593 :        TETXLC = CHAN 'CHAM' OBJINT TETXL 'STRESSES';                  
1594 : ***                                                                     
1595 :        ENEMA = REDU L1 (CHAN 'CHPO' M1 (REDU M1 ENERM));                  
1596 :        ENEMB = REDU L1 (CHAN 'CHPO' M2 (REDU M2 ENERM));                  
1597 :        ENRMAL = CHAN 'CHAM' OBJINT ENEMA 'STRESSES';                  
1598 :        ENRMBL = CHAN 'CHAM' OBJINT ENEMB 'STRESSES';                  
1599 :        S100 = S100 + (INTG OBJINT                                     
1600 :               ((ENRMBL - ENRMAL) * OBJINT TETXLC) MAT2);                     
1601 : ***                                                                     
1602 :        GRADA = REDU L1 (CHAN 'CHPO' M1 (REDU M1 GRADEP));                 
1603 :        GRADB = REDU L1 (CHAN 'CHPO' M2 (REDU M2 GRADEP));                 
1604 :        UXXAL =CHAN 'CHAM' OBJINT (EXCO GR1 GRADA 'SCAL') 'STRESSES';        
1605 :        UXXBL =CHAN 'CHAM' OBJINT (EXCO GR1 GRADB 'SCAL') 'STRESSES';        
1606 :        UYXAL =CHAN 'CHAM' OBJINT (EXCO GR4 GRADA 'SCAL') 'STRESSES';        
1607 :        UYXBL =CHAN 'CHAM' OBJINT (EXCO GR4 GRADB 'SCAL') 'STRESSES';        
1608 :        SIGML =REDU L1 (CHAN 'CHPO' OBJMOD SIGF);             
1609 :        SIXXL =CHAN 'CHAM' OBJINT (EXCO SM1 SIGML 'SCAL') 'STRESSES';        
1610 :        SIXYL =CHAN 'CHAM' OBJINT (EXCO SM4 SIGML 'SCAL') 'STRESSES';        
1611 :        AAAA1 = (SIXXL * OBJINT (UXXBL - UXXAL)) +                       
1612 :                (SIXYL * OBJINT (UYXBL - UYXAL));                        
1613 :        S110 = S110 + (INTG OBJINT (AAAA1*OBJINT TETXLC) MAT2);
1614 :     FIN NBJ4;                                                       
1615 :   FINSI;                                                               
1616 :   SI (((DIME MODPLA) '>' 0) ET ITHER);                            
1617 :      TEMU = CHAN TYPE (EXCO 'T' TEMU 'SCAL') 'SCALAIRE';          
1618 :      S120 = INTG OBJMOD (WVMIS * TEMU) MAT2;                               
1619 :   FINSI;
1620 : *
1621 : * Termes supplémentaire en Dynamique **********
1622 :   SI (IINTE EGA 5);
1623 : * * Formulation de Attigui
1624 : *      S130 = INTG OBJMOD (0.5*(RHO1 * VCARE * DIVTETA)) MAT2;
1625 : *       SSS1 = INTG OBJMOD (RHO1 * GRUTV) MAT2;
1626 : *      SI (EGA IABC 0);
1627 : *          S140 = SSS1; 
1628 : *      SINON;
1629 : *          DELTAT = INST - SUPTAB.'SOLUTION_PASAPAS'.'TEMPS'.(IABC - 1);
1630 : *          S140 = (SSS1 - SUPTAB.'SSS0') / DELTAT;
1631 : *      FINSI;
1632 : *       SUPTAB.'SSS0' = SSS1;
1633 : * Formulation de BP 
1634 : * permet : - une meilleure independance du contour
1635 : *          - de traiter le cas des fissures qui se propage
1636 : *          - de ne pas stocker SSS1
1637 :      S130 = INTG OBJMOD (0.5*(RHO1 * VCARE * DIVTETA)) MAT2;
1638 :      S140 = INTG OBJMOD (RHO1 * GRWTU) MAT2;
1639 :      S141 = INTG OBJMOD (RHO1 * GRVTV) MAT2;
1640 :   FINSI; 
1641 :   
1642 :   
1643 : * Termes supplémentaire pour un chargement en déformation imposée (SM) *********
1644 :   S160 = 0.;
1645 :   SI (IINTE EGA 1);
1646 :     si IDEFI;
1647 :      S160 = INTG OBJMOD CUMDEFI MAT2;
1648 :     finsi;
1649 :   FINSI; 
1650 : * fin modif sm
1651 : 
1652 : * Termes supplémentaire pour le contact frottant (btrolle 19/02/2013)
1653 :   SI (IFROT);
1654 : * teta       
1655 :     TETXC = PROI OBJCON2 TETAX 'STRESSES';         
1656 :     TETYC = PROI OBJCON2 TETAY 'STRESSES';
1657 :     si (ega &DIME 3);
1658 :       TETZC = PROI OBJCON2 TETAZ 'STRESSES';
1659 :     fins;
1660 : * [grad(w)] = grad [w] = WSAUTGR
1661 : * sigma*n    
1662 :     AAAAX= (SIGXN * (CHAN (exco WSAUTGR AX,X 'SCAL') TYPE 'SCALAIRE'))
1663 :          + (SIGYN * (CHAN (exco WSAUTGR AY,X 'SCAL') TYPE 'SCALAIRE'));
1664 :     AAAAY= (SIGXN * (CHAN (exco WSAUTGR AX,Y 'SCAL') TYPE 'SCALAIRE'))
1665 :          + (SIGYN * (CHAN (exco WSAUTGR AY,Y 'SCAL') TYPE 'SCALAIRE'));
1666 :     si (ega &DIME 3);
1667 :       AAAAX = AAAAX 
1668 :             + (SIGZN *  (CHAN(exco WSAUTGR AZ,X) TYPE 'SCALAIRE'));
1669 :       AAAAY = AAAAY 
1670 :             + (SIGZN *  (CHAN(exco WSAUTGR AZ,Y) TYPE 'SCALAIRE'));
1671 :       AAAAZ = (SIGXN *  (CHAN(exco WSAUTGR AX,Z) TYPE 'SCALAIRE'))
1672 :             + (SIGYN *  (CHAN(exco WSAUTGR AY,Z) TYPE 'SCALAIRE'))
1673 :             + (SIGZN *  (CHAN(exco WSAUTGR AZ,Z) TYPE 'SCALAIRE'));
1674 :       AAAA111 = (AAAAX * OBJCON2 TETXC) 
1675 :               + (AAAAY * OBJCON2 TETYC)
1676 :               + (AAAAZ * OBJCON2 TETZC);
1677 :     sino;
1678 :       AAAA111 = (AAAAX * OBJCON2 TETXC) 
1679 :               + (AAAAY * OBJCON2 TETYC);
1680 :     fins;
1681 : *    AAAA111 = 'MANUEL' CHML objcon 'SCAL' 1 TYPE 'SCALAIRE' 'STRESSES';
1682 :     S111 = INTG OBJCON2 AAAA111 ; mess 'S111=' S111;
1683 :   'SINON';
1684 :       S111 = 0.0;
1685 :   FINSI;                                                               
1686 : * fin du cas contact frottant (btrolle 19/02/2013)
1687 : 
1688 : 
1689 : * somme des termes ***************************
1690 :    GMCANI = (S20 - S10 - S60 - S100 + S110 - S111  
1691 :              - S130 + S140 - S141 + S150)*FACT1;  
1692 :    GTERMI = (S40 + S70 - S120) * FACT1;                                         
1693 : * modif sm = ajout S160
1694 :    GPRESS = (S160 - S50) * FACT1;                                               
1695 :    GTOTA = GMCANI + GTERMI + GPRESS ; 
1696 : FINSI;
1697 : 
1698 : 
1699 : 
1700 : *|=====================================================================|
1701 : *|=======  V. CALCUL DE DJ/DA  ========================================|
1702 : 
1703 : ***********************************************
1704 : * S10 = -SIGF*(Grad U)*(Grad PI)*(Grad TETA)                   
1705 : * S20 = -SIGF*(Grad U)*(Grad TETA)*(Grad PI)                   
1706 : * S30 = SIGF*(Grad U)*(Grad TETA)*(Div PI)                   
1707 : * S40 = SIGF*(Grad U)*(Grad PI)*(Div TETA)                 
1708 : * S50 = ENEGIE*(ADJ TETA*PI)                  
1709 : * S60 = ALPH*SIGF*(Grad (Grad T))*PI*TETA                   
1710 : * S70 = ALPH*SIGF*((Grad T)*PI)*(Div TETA)                  
1711 : * S80 = ALPH*SIGF*((Grad T)*TETA)*(Div PI)                  
1712 : * S90 = SIG1*(Grad U)*(Grad TETA)                  
1713 : * S100= SIGF*(Grad U1)*(Grad TETA)                
1714 : * S110= -SIGF*(Grad U1)*(Div TETA) 
1715 : * S120= ALPH*SIG1*((Grad T)*TETA)                   
1716 : * S130= -PRESSION*(grad A_DEPI)*THETA                  
1717 : * S140= -(Grad PRESSION)*(Grad PI)*TETA*U 
1718 : * S150= (Grad PRESSION)*TETA*U*(Div PI)
1719 : * S160= -(Grad PRESSION)*PI*(Grad U)*TETA                  
1720 : *********************************************** 
1721 : SI (IINTE EGA 4);                 
1722 :    S10 = 0. - (INTG OBJMOD (WORK OBJMOD SIGF                      
1723 :               (OBJMOD GRADEP * (OBJMOD PIGR * TETAGR))));             
1724 :    S20 = 0. - (INTG OBJMOD (WORK OBJMOD SIGF                      
1725 :               (OBJMOD GRADEP * (OBJMOD TETAGR * PIGR))));             
1726 :    S30 = INTG OBJMOD (OBJMOD (WORK OBJMOD                         
1727 :           SIGF (OBJMOD GRADEP * TETAGR)) * DIVPI);                    
1728 :    S40 = INTG OBJMOD (OBJMOD (WORK OBJMOD                         
1729 :           SIGF (OBJMOD GRADEP * PIGR)) * DIVTETA);                    
1730 :    S50 = INTG OBJMOD (ENERM * ADJ);                                 
1731 :   SI ITHER ;                                                        
1732 :      S60 = INTG OBJMOD (ENER OBJMOD SIGF EPSTU2);                 
1733 :      S70 = INTG OBJMOD ((ENER OBJMOD SIGF EPSTU1)*DIVTETA);       
1734 :      S80 = INTG OBJMOD ((ENER OBJMOD SIGF EPSTU)*DIVPI);
1735 :      S120 = INTG OBJMOD (ENER OBJMOD A_SIGF EPSTU);     
1736 :   FINSI;
1737 :   SI ('>' (XTX PREINT) 1.E-10) ;
1738 :      S130 = XTY PREINT DEP1 MOTF MOTU ;
1739 :      S140 = XTY PEMU2 (CHAN 'CHPO' OBJMOD DEPINT) MOTF MOTU;
1740 :      S150 = XTY (PEMU1*(CHAN 'CHPO' OBJMOD DIVPI)) 
1741 :                   (CHAN 'CHPO' OBJMOD DEPINT) MOTF MOTU;
1742 :      S160 = XTY PEMU DEP0 MOTF MOTU;                
1743 :   FINSI;                                                              
1744 :    S90 = INTG OBJMOD (WORK OBJMOD A_SIGF (OBJMOD GRADEP * TETAGR));         
1745 :    S100 = INTG OBJMOD (WORK OBJMOD SIGF (OBJMOD A_DEPGR * TETAGR));         
1746 :    S110 = 0. - (INTG OBJMOD (OBJMOD (WORK                           
1747 :                  OBJMOD SIGF A_DEPGR) * DIVTETA)) ;
1748 :    GMCANI = S10 + S20 + S30 + S40 + S50 + S90 + S100 + S110;            
1749 :    GTERMI = S60 + S70 + S80 + S120 ;                                    
1750 :    GPRESS = S150 - S130 - S140 - S160;
1751 :    GTOTA = GMCANI + GTERMI + GPRESS ;
1752 : FINSI;
1753 : 
1754 : 
1755 : 
1756 : *|=====================================================================|
1757 : *|=======  VI. CALCUL DES FACTEURS D INTENSITE DES CONTRAINTES  =======|
1758 : 
1759 : ***********************************************
1760 : * En pratique on les deduit de l integrale d interaction
1761 : * M(u,u^aux) = 2/E^* (K1*K1^aux + K2*K2^aux)
1762 : * On calcule donc :
1763 : *  J1 = 1/E^* K1^2 = M(u,u^aux_1)**2 / 4*J(u^aux_1,u^aux_1)
1764 : *  J2 = 1/E^* K2^2 = M(u,u^aux_2)**2 / 4*J(u^aux_2,u^aux_2)
1765 : ***********************************************
1766 : * l'integrale J(u^aux, u^aux) est la somme de :
1767 : * S10 = 0.5*Tr(A_sigf*(grad A_depi))*(div THETA)
1768 : * S20 = Tr[A_sigf*(grad A_depi)*(grad THETA)] *
1769 : * S50 = A_prei*(grad A_depi)*THETA 
1770 : *********************************************** 
1771 : * l'integrale M(u, u^aux) et la somme de :
1772 : * S60 = Tr[A_sigf*(Grad U)*(Grad THETA)] 
1773 : * S70 = Tr[SIGF*(Grad A_depi)*(Grad THETA)]                   
1774 : * S80 = Tr[SIGF*(Grad A_depi)*(Div THETA)]                  
1775 : * S90 = PREINT*(grad A_depi)*THETA                   
1776 : * S100= A_prei*(grad U)*THETA 
1777 : * S110= ALPH*A_sigf*((Grad T)*TETA) 
1778 : ***********************************************
1779 : * Termes supplementaires pour le contact frottant (modif BP,BT)
1780 : * S111 = SIGF*n*[ (dU^aux/dX)(b) - (dU^aux/dX)(a) ]*TETA(x) 
1781 : ***********************************************
1782 : 
1783 : 
1784 : SI (IINTE EGA 99) ;
1785 : *    si(IXFEM);
1786 : * *  REM: pour les elements XFEM on a contruit les champs aux. tq
1787 : * *      (K_I^aux, K_II^aux)  =  (1,0)  et (0,1)
1788 : * *      => inutile de calculer J(u^aux,u^aux) (= C_MATE)
1789 : *bp 07/07/2011 : cela est faux dans le cas d'une fissure courbée 
1790 : *      COE_M2K = 2. * C_MATE;   
1791 : *    sino;
1792 :      S10 = 0.5*( INTG OBJMOD 
1793 :            (OBJMOD (WORK OBJMOD A_SIGF A_DEPGR) * DIVTETA) );
1794 :      S20 = INTG OBJMOD 
1795 :            (WORK OBJMOD A_SIGF (A_DEPGR*OBJMOD TETAGR) ) MAT2;
1796 :      SI ('>' (XTX A_PREI) 1.E-10);
1797 :         S50 = XTY A_PREI DEP1 MOTF MOTU ;
1798 :      FINSI;
1799 :      JETOILE = 'ABS' (S20 - S10 - S50);
1800 :      COE_M2K = 2. * ((C_MATE*JETOILE)**0.5);
1801 : *    fins;
1802 : *  integrale M(u, u^aux)
1803 :    S60 = INTG OBJMOD (WORK OBJMOD A_SIGF (OBJMOD GRADEP * TETAGR));
1804 :    S70 = INTG OBJMOD (WORK OBJMOD SIGF (OBJMOD A_DEPGR * TETAGR));
1805 :    S80 = INTG OBJMOD (OBJMOD (WORK OBJMOD SIGF A_DEPGR) * DIVTETA);
1806 : *rem: on pourrait calculer M avec les 2 lignes ci dessous:
1807 : *    S81 = INTG OBJMOD (OBJMOD (WORK OBJMOD A_SIGF GRADEP) * DIVTETA);
1808 : *    S80 = 0.5*(S80+S81);
1809 : * Termes supplémentaire pour le contact frottant (btrolle 19/02/2013)
1810 : * on calcule WSAUTGR^aux = GRADIENT DU SAUT^aux                     
1811 : SI (IFROT 'ET' IXFEM);
1812 : * WDEP = deplacement de la fissure de composante UX ... AX ...
1813 : * [grad(w)] = grad [w] car linearité (le saut [w] est donné par AX ...)
1814 : * on utilise un modele liée a la geo de la fissure (cohesif ou contact)
1815 : * mess 'I avec contact frottant';
1816 : * SIGCON = sigma*n de composantes SMX... homogene a une contrainte
1817 : * supporté sur la levre superieure
1818 :    SI (NEG (TYPE SIGCON) 'MCHAML  ');
1819 :      SIGCON = REDU SIGCON (extr OBJCON2 'MAILLAGE');
1820 :      SIGCON = CHAN 'CHAM' SIGCON OBJCON2 'STRESSES' 'CONTRAINTES';
1821 :    FINS;
1822 :    SIGXN = (CHAN (exco SIGCON 'SMX' 'SCAL') TYPE 'SCALAIRE');
1823 :    SIGYN = (CHAN (exco SIGCON 'SMY' 'SCAL') TYPE 'SCALAIRE');
1824 :    si (ega &DIME 3);
1825 :      SIGZN = (CHAN (exco SIGCON 'SMZ' 'SCAL') TYPE 'SCALAIRE');
1826 :    fins;
1827 : * teta       
1828 :     TETXC = PROI OBJCON2 TETAX 'STRESSES';         
1829 :     TETYC = PROI OBJCON2 TETAY 'STRESSES';
1830 :     si (ega &DIME 3);
1831 :       TETZC = PROI OBJCON2 TETAZ 'STRESSES';
1832 :     fins;
1833 : * [grad(w)] = grad [w] = WSAUTGR
1834 : * sigma*n    
1835 :   AAAAX= (SIGXN * (CHAN (exco B_DEPGR AX,X 'SCAL') TYPE 'SCALAIRE'))
1836 :    + (SIGYN * (CHAN (exco B_DEPGR AY,X 'SCAL') TYPE 'SCALAIRE'));
1837 :   AAAAY= (SIGXN * (CHAN (exco B_DEPGR AX,Y 'SCAL') TYPE 'SCALAIRE'))
1838 :    '+' (SIGYN * (CHAN (exco B_DEPGR AY,Y 'SCAL') TYPE 'SCALAIRE'));
1839 :     si (ega &DIME 3);
1840 :       AAAAX = AAAAX 
1841 :             + (SIGZN *  (CHAN(exco B_DEPGR AZ,X) TYPE 'SCALAIRE'));
1842 :       AAAAY = AAAAY 
1843 :             + (SIGZN *  (CHAN(exco B_DEPGR AZ,Y) TYPE 'SCALAIRE'));
1844 :       AAAAZ = (SIGXN *  (CHAN(exco B_DEPGR AX,Z) TYPE 'SCALAIRE'))
1845 :             + (SIGYN *  (CHAN(exco B_DEPGR AY,Z) TYPE 'SCALAIRE'))
1846 :             + (SIGZN *  (CHAN(exco B_DEPGR AZ,Z) TYPE 'SCALAIRE'));
1847 :       AAAA111 = (AAAAX * OBJCON2 TETXC) 
1848 :               + (AAAAY * OBJCON2 TETYC)
1849 :               + (AAAAZ * OBJCON2 TETZC);
1850 :     sino;
1851 :       AAAA111 = (AAAAX * OBJCON2 TETXC) 
1852 :               + (AAAAY * OBJCON2 TETYC);
1853 :     fins;
1854 :     S111 = INTG OBJCON2 AAAA111;
1855 : 'SINON';
1856 :     S111 = 0.0;
1857 : FINSI;
1858 : * fin du cas contact frottant (btrolle 19/02/2013)
1859 :    SI ('>' (XTX PREINT) 1.E-10);
1860 :      S90 = XTY PREINT DEP1 MOTF MOTU ;
1861 :    FINSI;
1862 :    SI ('>' (XTX A_PREI) 1.E-10);
1863 :      S100 = XTY A_PREI DEP0 MOTF MOTU ;
1864 :    FINSI;
1865 :    SI ITHER ;                                                          
1866 :      S110 = INTG OBJMOD (ENER OBJMOD A_SIGF EPSTU);                 
1867 :    FINSI;
1868 : *  facteurs d intensite des contraintes
1869 :    GMCANI = (S60 + S70 - S80 + S111) / COE_M2K;
1870 :    GTERMI = (S110) / COE_M2K;
1871 :    GPRESS = (-1.*(S100 + S90)) / COE_M2K;
1872 :    GTOTA = GMCANI + GTERMI + GPRESS ;
1873 : FINSI;
1874 : 
1875 : 
1876 : *|=====================================================================|
1877 : *|=======  VII. STOCKAGE DES RESULTATS ET IMPRESSIONS  ================|
1878 : 
1879 : 
1880 : ***************************************************                     
1881 : ** PROFILE DE G DANS L EPAISSEUR EN CAS DE COQUE **                     
1882 : ***************************************************
1883 : SI ICOQU;
1884 :   SI IPAP;
1885 :      SUPTAB.'EPAISSEUR_RESULTATS'.IABC = EVENR * GTOTA;
1886 :   SINON;  
1887 :      SUPTAB.'EPAISSEUR_RESULTATS' = EVENR * GTOTA;
1888 :   FINSI;
1889 : FINSI;       
1890 : 
1891 : ***************************************************                     
1892 : ** STOCKAGE DES RESULTATS DANS SUPTAB.'RESULTATS'**
1893 : ***************************************************                     
1894 : C1 = 'CHAI' GMCANI ' '; C2 = 'CHAI' GTERMI ' '; 
1895 : C3 = 'CHAI' GPRESS '  '; C4 = 'CHAI' GTOTA;
1896 : *CAS PASAPAS
1897 : SI IPAP;                                                            
1898 :   SI (EGA &DIME 2);                                  
1899 :     SI (EGA IINTE 99);                                                      
1900 :       MESS MOTMIA '  ' IABC C1 C2 C3 C4;                
1901 :        SUPTAB.'RESULTATS'.MOTMIX.IABC = GTOTA;
1902 :     SINON;                                                          
1903 :       MESS IABC C1 C2 C3 C4;                                
1904 :        SUPTAB.'RESULTATS'.IABC = GTOTA;                                       
1905 :     FINSI;                                                          
1906 :   FINSI;                                                            
1907 :   SI ((EGA &DIME 3) ET (NON ICOQU));                          
1908 :     SI (EGA IINTE 99);                                                      
1909 :       MESS MOTMIA ' ' NUNOE IABC C1 C2 C3 C4;
1910 :        SUPTAB.'RESULTATS'.MOTMIX.IABC.PM = GTOTA;                               
1911 :     SINON;                                                          
1912 :       MESS NUNOE IABC C1 C2 C3 C4;                          
1913 :        SUPTAB.'RESULTATS'.IABC.PM = GTOTA;                                    
1914 :     FINSI;                                                          
1915 :   FINSI;
1916 :   SI ICOQU;                                                         
1917 :      C1 = 'CHAI' (GMCANI*V_SUPE) ' '; C2 = 'CHAI' (GTERMI*V_SUPE) ' ';
1918 :      C3 = 'CHAI' (GPRESS*V_SUPE) '  ';C4 = 'CHAI' (GTOTA*V_SUPE);     
1919 :      C5 = 'CHAI' (GMCANI*V_MOYE) ' '; C6 = 'CHAI' (GTERMI*V_MOYE) ' ';
1920 :      C7 = 'CHAI' (GPRESS*V_MOYE) '  ';C8 = 'CHAI' (GTOTA*V_MOYE);     
1921 :      C9 = 'CHAI' (GMCANI*V_INFE) ' '; C10= 'CHAI' (GTERMI*V_INFE) ' ';
1922 :      C11= 'CHAI' (GPRESS*V_INFE) '  ';C12= 'CHAI' (GTOTA*V_INFE);     
1923 :     MESS ' Superi ' IABC C1 C2  C3  C4;                               
1924 :     MESS ' Median ' IABC C5 C6  C7  C8;                               
1925 :     MESS ' Inferi ' IABC C9 C10 C11 C12;                              
1926 :      C1 = 'CHAI' GMCANI ' '; C2 = 'CHAI' GTERMI ' ';                            
1927 :      C3 = 'CHAI' GPRESS '  '; C4 = 'CHAI' GTOTA;                                
1928 :     MESS ' Global ' IABC C1 C2 C3 C4;                                 
1929 :     SI (EGA IINTE 99);                                                      
1930 :        SUPTAB.'RESULTATS'.MOTMIX = GTOTA;                    
1931 :     SINON;                                                          
1932 :        SUPTAB.'RESULTATS'.IABC.'SUPERI' = GTOTA*V_SUPE;                       
1933 :        SUPTAB.'RESULTATS'.IABC.'MEDIAN' = GTOTA*V_MOYE;                       
1934 :        SUPTAB.'RESULTATS'.IABC.'INFERI' = GTOTA*V_INFE;                       
1935 :        SUPTAB.'RESULTATS'.IABC.'GLOBAL' = GTOTA;                                
1936 :     FINSI;                                                          
1937 :   FINSI; 
1938 : *CAS RESOU
1939 : SINON;                                                              
1940 :   SI (EGA &DIME 2);                   
1941 :     SI (EGA IINTE 99);
1942 :       MESS MOTMIA '  ' C1 C2 C3 C4;                                           
1943 :        SUPTAB.'RESULTATS'.MOTMIX = GTOTA;                    
1944 :     SINON;
1945 :       MESS C1 C2 C3 C4;                                                       
1946 :        SUPTAB.'RESULTATS' = GTOTA;                                            
1947 :     FINSI;                                                          
1948 :   FINSI;                                                            
1949 :   SI ((EGA &DIME 3) ET (NON ICOQU));                                    
1950 :     SI (EGA IINTE 99);                                                      
1951 :       MESS ' ' MOTMIA '  ' NUNOE C1 C2 C3 C4;
1952 :        SUPTAB.'RESULTATS'.MOTMIX.PM = GTOTA;
1953 :     SINON; 
1954 :       MESS NUNOE C1 C2 C3 C4; 
1955 :        SUPTAB.'RESULTATS'.PM = GTOTA;     
1956 :     FINSI;                                                          
1957 :   FINSI;                                                            
1958 :   SI ICOQU;                                                         
1959 :      C1 = 'CHAI' (GMCANI*V_SUPE) ' '; C2 = 'CHAI' (GTERMI*V_SUPE) ' ';
1960 :      C3 = 'CHAI' (GPRESS*V_SUPE) '  ';C4 = 'CHAI' (GTOTA*V_SUPE);     
1961 :      C5 = 'CHAI' (GMCANI*V_MOYE) ' '; C6 = 'CHAI' (GTERMI*V_MOYE) ' ';
1962 :      C7 = 'CHAI' (GPRESS*V_MOYE) '  ';C8 = 'CHAI' (GTOTA*V_MOYE);     
1963 :      C9 = 'CHAI' (GMCANI*V_INFE) ' '; C10= 'CHAI' (GTERMI*V_INFE) ' ';
1964 :      C11= 'CHAI' (GPRESS*V_INFE) '  ';C12= 'CHAI' (GTOTA*V_INFE);     
1965 :     MESS ' Superi ' C1 C2  C3  C4;                               
1966 :     MESS ' Median ' C5 C6  C7  C8;                               
1967 :     MESS ' Inferi ' C9 C10 C11 C12;                              
1968 :      C1 = 'CHAI' GMCANI ' '; C2 = 'CHAI' GTERMI ' ';                            
1969 :      C3 = 'CHAI' GPRESS '  '; C4 = 'CHAI' GTOTA;                                
1970 :     MESS ' Global ' C1 C2 C3 C4;                                 
1971 :     SI (EGA IINTE 99);                                                      
1972 :        SUPTAB.'RESULTATS'.MOTMIX = GTOTA;                    
1973 :     SINON;                                                          
1974 :        SUPTAB.'RESULTATS'.'SUPERI' = GTOTA*V_SUPE;                       
1975 :        SUPTAB.'RESULTATS'.'MEDIAN' = GTOTA*V_MOYE;                       
1976 :        SUPTAB.'RESULTATS'.'INFERI' = GTOTA*V_INFE;                       
1977 :        SUPTAB.'RESULTATS'.'GLOBAL' = GTOTA;                                   
1978 :     FINSI;                                                          
1979 :   FINSI;                                                            
1980 : FINSI;                                                              
1981 : 
1982 : ***BP: PETIT AJOUT ***       
1983 :        SI(ega (type PM) 'MAILLAGE');
1984 :          SI (EGA (&BCNOEU) 1); 
1985 :            GCHAM1 = MANU 'CHML' PM MOCOMP GTOTA;
1986 :          SINO;
1987 :            GCHAM1 = GCHAM1 
1988 :                 et (MANU 'CHML' PM MOCOMP GTOTA);
1989 :          FINS; 
1990 :        FINS;
1991 :        SI(ega (type PM) 'POINT');
1992 :          SI (EGA (&BCNOEU) 1); 
1993 :            GCHPO1 = MANU 'CHPO' PM 1 MOCOMP GTOTA 'NATURE' 'DIFFUS';
1994 :          SINO;
1995 :            GCHPO1 = GCHPO1 
1996 :                 et (MANU 'CHPO' PM 1 MOCOMP GTOTA 'NATURE' 'DIFFUS');
1997 :          FINS;
1998 :        FINS;
1999 : ***BP: FIN DU PETIT AJOUT ***       
2000 :                                                           
2001 : FIN BCNOEU;                                                           
2002 : *<== FIN DE BOUCLE SUR LES NOEUDS A AVANCER VIRTUELLEMENT =============|
2003 : *|=====================================================================|
2004 : 
2005 : *********************************************************************           
2006 : ** STOCKAGE DES CHAMPS RESULTATS (+ logique qu'une table a priori) **
2007 : ********************************************************************* 
2008 : SI  ( (NEG (TYPE GCHPO1) 'CHPOINT') 
2009 :    ET (EGA (TYPE GCHAM1) 'MCHAML') );
2010 : *version J constant par morceaux
2011 : *      GCHPO1 = PROI SUPTAB.'FRONT_FISSURE' GCHAM1;
2012 : *version J lissée (projete sur approximation EF) 
2013 :       efJ = EXTR GCHAM1 'MAILLAGE' ; 
2014 : *  mess 'efJ='; list efJ; trac efJ ; 
2015 : *  totoj = inte efJ MAILMOD 'NOVERIF'; 
2016 : *  mess (nbel efJ) ' =nbel=? ' (nbel totoj); 
2017 : *  mess (nbno efJ) ' =nbno=? ' (nbno totoj); 
2018 :       OBJMODj =redu OBJMOD efj ;
2019 :       GCHPO1 = CHAN 'CHPO' GCHAM1 OBJMODj 'MOYE';
2020 :       GCHPO1 = CHAN 'CHAM' GCHPO1 OBJMOD;
2021 : *  mess 'redu ok appel a proi';     
2022 :       GCHPO1 = PROI SUPTAB.'FRONT_FISSURE' GCHPO1;
2023 : FINS;
2024 : *CAS PASAPAS
2025 : SI(IPAP);
2026 :   SI (EGA (TYPE GCHPO1) 'CHPOINT'); 
2027 :     SI(NON (EXIS SUPTAB  'CHPO_RESULTATS'));
2028 :       SUPTAB . 'CHPO_RESULTATS' = TABL;
2029 :     FINSI;
2030 :     SI((EGA &BOUCMIX 1) ou (NON (EXIS SUPTAB.'CHPO_RESULTATS' IABC)));
2031 :       SUPTAB.'CHPO_RESULTATS'.IABC = GCHPO1;
2032 :     SINO;
2033 :       SUPTAB.'CHPO_RESULTATS'.IABC 
2034 :       = SUPTAB.'CHPO_RESULTATS'.IABC ET GCHPO1;
2035 :     FINS;
2036 :   FINS;
2037 :   SI (EGA (TYPE GCHAM1) 'MCHAML'); 
2038 :     SI(NON (EXIS SUPTAB  'CHAM_RESULTATS'));
2039 :       SUPTAB . 'CHAM_RESULTATS' = TABL;
2040 :     FINSI;  
2041 :     SI((EGA &BOUCMIX 1) ou (NON (EXIS SUPTAB.'CHAM_RESULTATS' IABC)));
2042 :       SUPTAB.'CHAM_RESULTATS'.IABC = GCHAM1;
2043 :     SINO;
2044 :       SUPTAB.'CHAM_RESULTATS'.IABC 
2045 :       = SUPTAB.'CHAM_RESULTATS'.IABC ET GCHAM1;
2046 :     FINS;
2047 :   FINS;
2048 : *CAS RESOU
2049 : SINO;
2050 :   SI (EGA (TYPE GCHPO1) 'CHPOINT'); 
2051 :     SI((EGA &BOUCMIX 1) ou (NON (EXIS SUPTAB 'CHPO_RESULTATS')));
2052 :       SUPTAB.'CHPO_RESULTATS' = GCHPO1;
2053 :     SINO;
2054 :       SUPTAB.'CHPO_RESULTATS' = SUPTAB.'CHPO_RESULTATS' ET GCHPO1;
2055 :     FINS;
2056 :   FINS;
2057 :   SI (EGA (TYPE GCHAM1) 'MCHAML'); 
2058 :     SI((EGA &BOUCMIX 1) ou (NON (EXIS SUPTAB 'CHAM_RESULTATS')));
2059 :       SUPTAB.'CHAM_RESULTATS' = GCHAM1;
2060 :     SINO;
2061 :       SUPTAB.'CHAM_RESULTATS' = SUPTAB.'CHAM_RESULTATS' ET GCHAM1;
2062 :     FINS;
2063 :  FINS;
2064 : FINS;
2065 : 
2066 : * ON SE PREPARE A PARTIR...
2067 : MENA;
2068 : SI (IPAP ET ICOQU);                                          
2069 :   'SAUT' 1 'LIGNE';                                                     
2070 : FINSI;                                                            
2071 : SI (IPAP ET (NBOU '>' 1));                                          
2072 :   'SAUT' 1 'LIGNE';                                                     
2073 : FINSI;                                                                
2074 : SI (IPAP ET (NBOU EGA 1) ET (NON ICOQU));
2075 :   SI (('ABS' ((&BOUCEXT/10) - (&BOUCEXT/10.))) '<' 1.D-10);           
2076 :     'SAUT' 1 'LIGNE';                                                   
2077 :   FINSI;                                                              
2078 : FINSI;
2079 : 
2080 : FINPROC SUPTAB;
2081 :  
2082 :  
2083 :  
2084 :  
2085 :  
2086 :  
2087 :  
2088 :  

© Cast3M 2003 - All rights reserved.
Disclaimer