1 : * T_PITETA PROCEDUR JC220346 12/09/12 21:15:08 7501 2 : 'DEBPROC' T_PITETA TABMOD*'TABLE' MATERI*'MCHAML' SUPTAB*'TABLE'; 3 : * 4 : *|=====================================================================| 5 : *| | 6 : *| OBJET : | 7 : *| ======= | 8 : *| | 9 : *| 1) calculer la derivee seconde de l'energie potentielle vis a vis | 10 : *| de la longueur d'une (ou des) fissure(s) intéragissantes. dG/da | 11 : *| (G = taux de restitution d'énergie, a = longueur le la fissure) | 12 : *| pour etudier éventuellement la stabilite de propagation d'une | 13 : *| (ou des) fissure(s). | 14 : *| 2) calculer une intégrale permettant de decouper les modes mixtes. | 15 : *| Dans ce cas, la procedure, appelée par G_THETA, ne fonctionne | 16 : *| qu'en elasticite pour problèmes de configuration en 2D, 3D ou | 17 : *| axisymetrique modèlisés par éléments dits massifs. Seuls les | 18 : *| materiaux homogenes et isotropes sont acceptables. L'application | 19 : *| du chargement peut etre de type mecaniques, thermiques, forces | 20 : *| volumiques, ou/et pressions sur le fond de la fissure. | 21 : *| | 22 : *| | 23 : *| ENTREE : | 24 : *| ======== | 25 : *| | 26 : *| Arquments obliquatoires : | 27 : *| ------------------------- | 28 : *| | 29 : *| OBJMOD objet du type TABLE stockant tous les objets MODELS | 30 : *| sur une petite zone de maillage entourant le plus grand des | 31 : *| contours qu'on a defini pour calculer dG/da. L'indice | 32 : *| de cette table est 1, 2, 3,...,n (n : nombre de modeles | 33 : *| dans la petite zone de maillage). Si l'on n'a pas prevu des | 34 : *| modeles dans cette petite zone, OBJMOD ici doit contenir | 35 : *| les objets MODELS globales du problems utilises dans la | 36 : *| resolution par elements finis. Dans ce cas le support | 37 : *| maillage de l'ensemble de modeles est la structure totale | 38 : *| etudiee. | 39 : *| MATERI Objet MCHAML de sous-type CARACTERISTIQUES donnant les | 40 : *| propriétés matérielles (module Young, coefficient de | 41 : *| Poisson...) + les proprietes geometriques dans le cas | 42 : *| des elements en coque mince (epaisseur, excentrement...). | 43 : *| Les composantes de MATERI peuvent etre des objets de type | 44 : *| FLOTTANT, MCHAML, EVOLUTIO, NUAGE selon le probleme traité. | 45 : *| Il convient de donner ici le materiau total du probleme | 46 : *| englobant toute la structure. | 47 : *| SUPTAB Objet de type TABLE. | 48 : *| En entrée, SUPTAB sert à définir les options et les | 49 : *| paramètres du calcul. Ses indices sont des objets de type | 50 : *| MOTS (à écrire en toutes lettres) dont voici la liste: | 51 : *| | 52 : *| SUPTAB.CHTHETA = CHPOINT (TABLE en 3D) de deplacement cree | 53 : *| par la procedure CH_THETA. | 54 : *| SUPTAB.DEPLACEMENT = TABLE si le calcul est effectue pas a pas, | 55 : *| CHPOINT si en un seul pas (probleme lineaire). | 56 : *| Dans le premier cas SUPTAB.DEPLACEMENT | 57 : *| contient touts les deplacements en indice | 58 : *| de la definition des valeurs du parametre | 59 : *| d'evolution (ex : table RESUDEPL de NONLIN). | 60 : *| SUPTAB.CONTRAINTE = TABLE si le calcul est effectue pas a pas, | 61 : *| MCHAML si en un seul pas (probleme lineaire). | 62 : *| Dans le premier cas SUPTAB.CONTRAINTE contient | 63 : *| toutes les contraintes en meme indice du | 64 : *| parametre d'evolution que la table | 65 : *| SUPTAB.DEPLACEMDNT (ex : table RESUCONT de | 66 : *| NONLIN). | 67 : *| | 68 : *| | 69 : *| Arquments facultatifs : | 70 : *| ----------------------- | 71 : *| | 72 : *| 1 : Probleme non-lineaire (elasto ou visco-plasticite) | 73 : *| | 74 : *| SUPTAB.VARINTERNE = TABLE. Pour les calculs non-lineaires effectues | 75 : *| pas a pas, elle donne les variables internes | 76 : *| en meme indice d'evolution que les tables | 77 : *| SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE | 78 : *| (ex : table RESUVARI de NONLIN). Cette table | 79 : *| est fournie dans le cas ou les deformations | 80 : *| inelastiques ne sont pas nulles, sinon | 81 : *| le probleme est considere comme lineaire. | 82 : *| | 83 : *| 2 : En thermo-mecanique | 84 : *| | 85 : *| SUPTAB.TEMPERATURE = TABLE pour les calculs effectues pas a pas, | 86 : *| CHPOINT si en un seul pas (probleme lineaire). | 87 : *| Dans le premier cas SUPTAB.TEMPERATURE | 88 : *| contient toutes les temperatures absolutes | 89 : *| en indice d'evolution du parametre de temps, | 90 : *| qui doit etre plus large ou egale a celle des | 91 : *| tables SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE | 92 : *| (ex : table CHPOTHETA utilisee dans NONLIN). | 93 : *| SUPTAB.TREFERENCE = CHPOINT de temperature de reference (ex : | 94 : *| chpoint TREFERENCE utilisee dans NONLIN). | 95 : *| | 96 : *| 3 : En presence de pression ou/et force volumique | 97 : *| agissant dans un voisinage du fond de la fissure | 98 : *| | 99 : *| SUPTAB.PRESSION = Objet de type CHPOINT ou CHARGEMENT, requis dans | 100 : *| dans le cas ou il existe une force volumique | 101 : *| ou/et une pression s'exercant dans un voisinage | 102 : *| du fond de la fissure. Si cette force varie avec | 103 : *| le temps on donne un objet de type CHARGEMENT. | 104 : *| SI cette force reste constante, on donne un | 105 : *| un objet de type CHPOINT | 106 : *| | 107 : *| 4 : En cas de calcul de la derivee seconde de l'energie permet- | 108 : *| tant d'etudier la stabilite de propagation des fissures | 109 : *| | 110 : *| SUPTAB.CHPI = CHPOINT (TABLE en 3D) de deplacement cree | 111 : *| par la procedure CH_THETA. | 112 : *| SUPTAB.RITOTA = RIGIDITE. C'est la rigidité complète de la | 113 : *| structure, y compris les conditions aux limites | 114 : *| de type DEPLACEMENT ou ROTATION. | 115 : *| | 116 : *| 5 : En cas de calcul de la derivee seconde de l'energie | 117 : *| avec une autre solution auxilaire (intégrale permettant, | 118 : *| par exemple, de decouper les modes) | 119 : *| | 120 : *| SUPTAB.'DEPL_AUXI' = Solution auxilaire de deplacement (CHPOINT) | 121 : *| SUPTAB.'CONT_AUXI' = Solution auxilaire de contrainte (MCHAML) | 122 : *| SUPTAB.'PRES_AUXI' = Pression auxilaire si elle applique sur le | 123 : *| voisinage du fond de la fissure (CHPOINT) | 124 : *| | 125 : *| | 126 : *| 6 : Pour un front de fissure tridimensionnel | 127 : *| | 128 : *| SUPTAB.'AVANCE' = MAILLAGE pour donner les points du front pour | 129 : *| lesquels le calcul sera effectue. Si cet | 130 : *| argument est absent, le calcul sera fait pour | 131 : *| tous les noeuds sur le front de la fissure. | 132 : *| | 133 : *| 7 : En cas d'existence de plusieurs materiaux | 134 : *| | 135 : *| SUPTAB.'PARALLELE' = VRAI si la fissure est parallele a l'interface | 136 : *| FAUX sinon . | 137 : *| | 138 : *| SORTIE : | 139 : *| ======== | 140 : *| | 141 : *| Dans tous les cas de calcul | 142 : *| --------------------------- | 143 : *| | 144 : *| SUPTAB.'DGDA' = En 2D, une table si le calcul est effectue pas a | 145 : *| pas, flottant si en un seul pas. Dans le premier | 146 : *| cas, dG/da est en meme indice d'evolution du | 147 : *| parametre de temps que celle des tables | 148 : *| SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE (ou | 149 : *| SUPTAB.VARINTERNE en elasto ou visco-plasticite). | 150 : *| En 3D, si le calcul est realise pas a pas | 151 : *| SUPTAB.'DGDA' est indicee par deux parametres dont | 152 : *| le premier est le facteur d'evolution de temps et | 153 : *| le deuxieme les points sur le front de la fissure. | 154 : *| Pour un calcul realise en un seul pas SUPTAB.G a | 155 : *| une seule indice representant les points sur le | 156 : *| front de la fissure. | 157 : *| Exemple : la valeur de dG/da est | 158 : *| en 2D pour un calcul realise pas a pas a l'instant | 159 : *| T1, (SUPTAB.'DGDA'.T1) | 160 : *| en 2D pour un calcul en un seul pas, (SUPTAB.'DGDA')| 161 : *| en 3D au point P1 pour un calcul realise pas a pas | 162 : *| a l'instant T1 et, (SUPTAB.'DGDA'.T1.P1) | 163 : *| en 3D au point P1 pour un calcul realise en un seul | 164 : *| pas, (SUPTAB.'DGDA'.P1) | 165 : *| SUPTAB.'IERR' = logique egale a VRAI si l'on n'a pas reussit le | 166 : *| calcul ou les donnees sont fautes, sinon | 167 : *| SUPTAB.'IERR' vaut FAUT. | 168 : *| | 169 : *| En cas de calcul effectue pas a pas | 170 : *| ----------------------------------- | 171 : *| | 172 : *| SUPTAB.EVOLDGDA En cas de calcul de la variation seconde | 173 : *| d'énergie, SUPTAB.EVOLDGDA est un objet de type | 174 : *| EVOLUTION donnant la valeur de dG/da en fonction | 175 : *| du temps en elasto-plasticite. Pour un front de | 176 : *| fissure tridimensionnel EVOLDGDA est une table | 177 : *| indicee par les points donnant les evolutions de | 178 : *| dG/da pour chaque point en fonction du temps. | 179 : *| Exemple : En 2D, on peut tracer l'evolution de | 180 : *| dG/da par : DESS (SUPTAB.'EVOLDGDA'); | 181 : *| En 3D, on peut tracer l'evolution de dG/da | 182 : *| au point P1 en fonction du temps par : | 183 : *| DESS (SUPTAB.'EVOLDGDA'.P1); | 184 : *|=====================================================================| 185 : * 186 : &DIME ='VALE' 'DIME'; &MODE ='VALE' 'MODE'; 187 : &ELEM = 'VALEUR' 'ELEM'; MOTAX = 'MOT' AXIS ; 188 : **** 189 : IPAP = ('EGA' ('TYPE' SUPTAB.'CONTRAINTE') 'TABLE ') 'ET' 190 : ('EGA' ('TYPE' SUPTAB.'DEPLACEMENT') 'TABLE '); 191 : **** 192 : OBJMOD = TABMOD.1; NBOBJ = 'DIME' ('INDE' TABMOD); I = 1; 193 : 'SI' ('>' NBOBJ 1) ; 194 : 'REPETER' NBJ1 (NBOBJ - 1); 195 : I = I + 1; OBJMOD = OBJMOD 'ET' TABMOD.I; 196 : 'FIN' NBJ1; 197 : 'FINSI' ; 198 : MAPART = 'EXTR' OBJMOD 'MAIL'; 199 : **** 200 : NBNO1 = 'NBNO' ('ELEM' (CHAN 'LIGNE' MAPART) 1); 201 : ILIN = 'EGA' NBNO1 2; IQUA = 'EGA' NBNO1 3; 202 : ICOQU = (&DIME 'EGA' 3) 'ET' ILIN 'ET' (('EGA' &ELEM 'SEG2') 203 : 'OU' ('EGA' &ELEM 'TRI3') 'OU' ('EGA' &ELEM 'QUA4')); 204 : ************************************************** 205 : ********* TEST DE COMPABILITE DES DONNEES ******** 206 : ************************************************** 207 : SUPTAB.'IERR' = FAUX; 208 : 'SI' ('<' ('NBNO' ('EXTR' MATERI 'MAIL')) ('NBNO' MAPART)); 209 : 'MESS' 'ERREUR : LE SUPPORT GEOMETRIQUE DE MATERIAU EST'; 210 : 'MESS' 'PLUS PETIT QUE CELUI DE L ENSEMBLE DE MODELES'; 211 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 212 : 'FINSI'; 213 : 'SI' ('<' ('NBEL' ('EXTR' MATERI 'MAIL')) ('NBEL' MAPART)); 214 : 'MESS' 'ERREUR : LE SUPPORT GEOMETRIQUE DE MATERIAU EST'; 215 : 'MESS' 'PLUS PETIT QUE CELUI DE L ENSEMBLE DE MODELES'; 216 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 217 : 'FINSI'; 218 : **** 219 : IAUXI = ('EXIST' SUPTAB 'DEPL_AUXI') 'OU' 220 : ('EXIST' SUPTAB 'CONT_AUXI') 'OU' 221 : ('EXIST' SUPTAB 'PRES_AUXI'); 222 : 'SI' IAUXI; 223 : 'SI' ('NON' ('EXIST' SUPTAB 'DEPL_AUXI')); 224 : 'ERREUR' 'ON VEUT LA SOLUTION AUXILAIRE DE DEPLACEMENT'; 225 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 226 : 'FINSI'; 227 : 'SI' ('NON' ('EXIST' SUPTAB 'CONT_AUXI')); 228 : 'ERREUR' 'ON VEUT LA SOLUTION AUXILAIRE DE CONTRAINTE'; 229 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 230 : 'FINSI'; 231 : 'FINSI'; 232 : IPRE_A = FAUX; 233 : 'SI' ('EXIST' SUPTAB 'PRES_AUXI'); 234 : PRES_A = SUPTAB.'PRES_AUXI'; IPRE_A = VRAI; 235 : 'FINSI'; 236 : **** 237 : 'SI' ('NON' ('EXISTE' SUPTAB 'CONTRAINTE')); 238 : 'ERREUR' 'IL FAUT DONNER LE CHAMP DE CONTRAINTE'; 239 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 240 : 'FINSI'; 241 : 'SI' ('NON' ('EXISTE' SUPTAB 'DEPLACEMENT')); 242 : 'ERREUR' 'IL FAUT DONNER LE CHAMP DE DEPLACEMENT'; 243 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 244 : 'FINSI'; 245 : 'SI' ('EXISTE' SUPTAB 'PARALLELE'); 246 : 'SI' (NBOBJ 'EGA' 1); 247 : 'ERRE' 'IL FAUT UNE TABLE STOCKANT TOUS LES OBJETS MODELES'; 248 : 'FINSI'; 249 : IPARAL = SUPTAB.'PARALLELE'; 250 : 'SINON'; 251 : IPARAL = FAUX; 252 : 'FINSI'; 253 : 'SI' IPAP; 254 : 'SI' ('NON' ('EXISTE' SUPTAB 'VARINTERNE')); 255 : *& 'MESS' ' ATTENTION : EN ABSENCE DES VARIABLES INTERNES'; 256 : *& 'MESS' ' LE PROBLEME EST CONSIDERE COMME LINEAIRE.'; 257 : 'FINSI'; 258 : 'FINSI'; 259 : 'SI' ('NON' ('EXISTE' SUPTAB 'CHTHETA')); 260 : 'ERREUR' 'IL FAUT DONNER LE CHAMP THETA'; 261 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 262 : 'FINSI'; 263 : **** 264 : ISECO = ('EXIST' SUPTAB 'CHPI') 'OU' 265 : ('EXIST' SUPTAB 'RITOTA'); 266 : 'SI' ISECO; 267 : 'SAUT' 1 'LIGNE'; 268 : 'SI' ('NON' ('EXIST' SUPTAB 'CHPI')); 269 : 'ERREUR' 'IL FAUT DONNER LE CHAMP PI'; 270 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 271 : 'FINSI'; 272 : 'SI' ('NON' ('EXIST' SUPTAB 'RITOTA')); 273 : 'ERREUR' 'IL FAUT DONNER LA RIGIDITE COMPLETE'; 274 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 275 : 'FINSI'; 276 : RITOTA = SUPTAB.'RITOTA'; 277 : MAILTO = 'EXTR' ('EXTR' RITOTA 'RIGI' 'NOMU') 'MAIL'; 278 : 'FINSI'; 279 : **** 280 : 'SI' (('NON' IAUXI) 'ET' ('NON' ISECO)); 281 : 'ERREUR' 'LES DONNEES NE SONT PAS COMPLETES'; 282 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 283 : 'FINSI'; 284 : 'SI' (IAUXI 'ET' ISECO); 285 : 'ERREUR' 'LE TYPE D INTEGARLE A CALCULER N EST PAS UNIQUE'; 286 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 287 : 'FINSI'; 288 : **** 289 : PASA = FAUX; 290 : ITHER = ('EXIST' SUPTAB 'TEMPERATURE') 'OU' 291 : ('EXIST' SUPTAB 'TREFERENCE'); 292 : 'SI' ITHER; 293 : 'SI' ('NON' ('EXIST' SUPTAB 'TEMPERATURE')) ; 294 : 'ERREUR' 'ON VEUT LA CARTE DE TEMPERATURE'; 295 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 296 : 'FINSI' ; 297 : 'SI' ('NON' ('EXIST' SUPTAB 'TREFERENCE')) ; 298 : 'ERREUR' 'ON VEUT LA TEMPERATURE DE REFERENCE'; 299 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 300 : 'FINSI' ; 301 : 'SI' ('EGA' ('TYPE' SUPTAB.'TEMPERATURE') 'CHARGEME'); 302 : 'SI' ('EXIST' (SUPTAB.'TEMPERATURE') 'T ') ; 303 : PASA = VRAI; 304 : 'FINSI'; 305 : 'FINSI'; 306 : 'FINSI' ; 307 : **** 308 : IPRES = FAUX; 309 : 'SI' ('EXIST' SUPTAB 'PRESSION') ; 310 : PRESSI = SUPTAB.'PRESSION'; IPRES = VRAI ; 311 : 'FINSI' ; 312 : **** 313 : IPARTI = 'EXIS' SUPTAB 'AVANCE'; 314 : **** 315 : YOUVARI = FAUX; NUVARI = FAUX; ALFVARI = FAUX; 316 : TRAVARI = FAUX; SIGVARI = FAUX; HVARI = FAUX; 317 : MATREDU = 'REDU' MATERI OBJMOD; 318 : 'REPETER' BCMOD1 NBOBJ; 319 : MATI = 'REDU' MATREDU TABMOD.&BCMOD1; 320 : YO1 = 'EXCO' MATI 'YOUN'; 321 : TYPYO = 'TYPE' ('EXTR' YO1 'YOUN' 1 1 1); 322 : 'SI' ('EGA' TYPYO 'EVOLUTIO'); 323 : YOUVARI = VRAI; 324 : 'SINON'; 325 : TEST1 = (('MAXI' YO1) - ('MINI' YO1))/('MINI' YO1); 326 : 'SI' ((TEST1 '>' 1.E-10) ET (NON IPARAL)); 327 : YOUVARI = VRAI; 328 : 'FINSI'; 329 : 'FINSI'; 330 : NU1 = 'EXCO' MATI 'NU'; 331 : TYPNU = 'TYPE' ('EXTR' NU1 'NU' 1 1 1); 332 : 'SI' ('EGA' TYPNU 'EVOLUTIO'); 333 : NUVARI = VRAI; 334 : 'SINON'; 335 : TEST1 = (('MAXI' NU1) - ('MINI' NU1))/('MINI' NU1); 336 : 'SI' ((TEST1 '>' 1.E-10) ET (NON IPARAL)); 337 : NUVARI = VRAI; 338 : 'FINSI'; 339 : 'FINSI'; 340 : 'SI' ITHER; 341 : AL1 = 'EXCO' MATI 'ALPH'; 342 : TYPAL = 'TYPE' ('EXTR' AL1 'ALPH' 1 1 1); 343 : 'SI' ('EGA' TYPAL 'EVOLUTIO'); 344 : ALFVARI = VRAI; 345 : 'SINON'; 346 : TEST1 = (('MAXI' AL1) - ('MINI' AL1))/('MINI' AL1); 347 : 'SI' (TEST1 '>' 1.E-10); ALFVARI = VRAI; 'FINSI'; 348 : 'FINSI'; 349 : 'FINSI'; 350 : 'SI' ('EXIST' MATI 'TRAC'); 351 : TR1 = 'EXCO' MATI 'TRAC'; 352 : TYPTR = 'TYPE' ('EXTR' TR1 'TRAC' 1 1 1); 353 : 'SI' ('EGA' TYPTR 'NUAGE '); 354 : TRAVARI = VRAI; 355 : 'FINSI'; 356 : 'FINSI'; 357 : 'SI' ('EXIST' MATI 'SIGY'); 358 : SI1 = 'EXCO' MATI 'SIGY'; 359 : TYPSI = 'TYPE' ('EXTR' SI1 'SIGY' 1 1 1); 360 : 'SI' ('EGA' TYPSI 'EVOLUTIO'); 361 : SIGVARI = VRAI; 362 : 'FINSI'; 363 : 'FINSI'; 364 : 'SI' ('EXIST' MATI 'H'); 365 : H1 = 'EXCO' MATI 'H'; 366 : TYPH = 'TYPE' ('EXTR' H1 'H' 1 1 1); 367 : 'SI' ('EGA' TYPH 'EVOLUTIO'); 368 : HVARI = VRAI; 369 : 'FINSI'; 370 : 'FINSI'; 371 : 'FIN' BCMOD1; 372 : MATVARI = YOUVARI 'OU' NUVARI 'OU' ALFVARI 373 : 'OU' TRAVARI 'OU' SIGVARI 'OU' HVARI; 374 : 'SI' MATVARI; 375 : 'ERREUR' 'MATERIAU NON CONSTANT. OPTION NON DISPONIBLE'; 376 : SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA; 377 : 'FINSI'; 378 : **** 379 : 'SI' IPAP; 380 : TXMECANI= 'MOT' ' Mecanique'; 381 : TXTERMI = 'MOT' ' Thermique'; 382 : TXPRESS = 'MOT' ' Volumique'; 383 : 'SINON'; 384 : TXMECANI= 'MOT' ' Mecanique'; 385 : TXTERMI = 'MOT' ' Thermique'; 386 : TXPRESS = 'MOT' ' Volumique'; 387 : 'FINSI'; 388 : ************************************************** 389 : *** QUELQUES MOTS POUR SIMPLIFIER L'ECRITURE *** 390 : ************************************************** 391 : E = 'MOT' 'EXCO'; MOTU = 'MOTS' 'UX' 'UY'; C = 'MOT' 'CHAI'; 392 : MOTF = 'MOTS' 'FX' 'FY'; S = 'MOT' 'SCAL'; 393 : MU1 = 'MOT' 'UX'; MU2 = 'MOT' 'UY'; MU3 = 'MOT' 'UZ'; 394 : MF1 = 'MOT' 'FX'; MF2 = 'MOT' 'FY'; MF3 = 'MOT' 'FZ'; 395 : GR1 = 'MOT' 'UX,X'; GR2 = 'MOT' 'UX,Y'; GR3 = 'MOT' 'UX,Z'; 396 : GR4 = 'MOT' 'UY,X'; GR5 = 'MOT' 'UY,Y'; GR6 = 'MOT' 'UY,Z'; 397 : GR7 = 'MOT' 'UZ,X'; GR8 = 'MOT' 'UZ,Y'; GR9 = 'MOT' 'UZ,Z'; 398 : SM1 = 'MOT' 'SMXX'; SM2 = 'MOT' 'SMYY'; SM3 = 'MOT' 'SMZZ'; 399 : SM4 = 'MOT' 'SMXY'; SM5 = 'MOT' 'SMXZ'; SM6 = 'MOT' 'SMYZ'; 400 : EP1 = 'MOT' 'EPXX'; EP2 = 'MOT' 'EPYY'; EP3 = 'MOT' 'EPZZ'; 401 : EP4 = 'MOT' 'GAXY'; EP5 = 'MOT' 'GAXZ'; EP6 = 'MOT' 'GAYZ'; 402 : 'SI' ('EGA' MOTAX &MODE) ; 403 : MOTU = 'MOTS' 'UR' 'UZ' ; MOTF = 'MOTS' 'FR' 'FZ' ; 404 : MU1 = 'MOT' 'UR'; MU2 = 'MOT' 'UZ'; MU3 = 'MOT' 'UT'; 405 : MF1 = 'MOT' 'FR'; MF2 = 'MOT' 'FZ'; 406 : GR1 = 'MOT' 'UR,R'; GR2 = 'MOT' 'UR,Z'; GR3 = 'MOT' 'UR,T'; 407 : GR4 = 'MOT' 'UZ,R'; GR5 = 'MOT' 'UZ,Z'; GR6 = 'MOT' 'UZ,T'; 408 : GR7 = 'MOT' 'UT,R'; GR8 = 'MOT' 'UT,Z'; GR9 = 'MOT' 'UT,T'; 409 : SM1 = 'MOT' 'SMRR'; SM2 = 'MOT' 'SMZZ'; SM3 = 'MOT' 'SMTT'; 410 : SM4 = 'MOT' 'SMRZ'; 411 : EP1 = 'MOT' 'EPRR'; EP2 = 'MOT' 'EPZZ'; EP3 = 'MOT' 'EPTT'; 412 : EP4 = 'MOT' 'GARZ'; 413 : 'FINSI'; 414 : 'SI' (&DIME 'EGA' 3) ; 415 : MOTU = 'MOTS' 'UX' 'UY' 'UZ' ; MOTF = 'MOTS' 'FX' 'FY' 'FZ' ; 416 : 'FINSI'; 417 : **** 418 : TX2 = 'CHAIN' ' Contribution a la derivee dG/da due au chargement'; 419 : 'SI' ITHER; 420 : TX1 = 'MOT' 'VARIATION SECONDE D ENERGIE EN THERMO-PLASTICITE'; 421 : 'SINON'; 422 : TX1 = 'MOT' 'VARIATION SECONDE D ENERGIE EN ELASTO-PLASTICITE'; 423 : 'FINSI'; 424 : CHA1 = 'CHAI' 'VARIATION SECONDE dG/da EN FONCTION DU TEMPS'; 425 : MOTTI = 'MOT' 'dG/da'; 426 : MOTCO = 'MOT' ' Derivee dG/da'; 427 : TX3 = 'CHAIN' ' °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°'; 428 : *************************************************** 429 : ********** DEPLACEMENT, GRADIANT INITIAUX ********* 430 : *************************************************** 431 : FOR000 ='CHAN' 'CHPO' OBJMOD ('ZERO' OBJMOD 'FORCES '); 432 : DEP000 ='CHAN' 'CHPO' OBJMOD ('ZERO' OBJMOD 'DEPLACEM'); 433 : GRA000 = 'ZERO' OBJMOD 'GRADIENT'; 434 : ******************************************** 435 : *** ZONE OU LE CHAMP THETA N'EST PAS NUL *** 436 : ******************************************** 437 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU); 438 : TETA = SUPTAB.'CHTHETA'; MENL1 = 'MOT' 'CONT'; 439 : 'FINSI'; 440 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU)); 441 : TETA = SUPTAB.'CHTHETA'.'GLOBAL'; MENL1 = 'MOT' 'ENVE'; 442 : 'FINSI'; 443 : TETA = TETA + DEP000; 444 : NORM1 = ((E MU1 TETA 'SCAL')**2) + ((E MU2 TETA 'SCAL')**2); 445 : 'SI' ('EGA' &DIME 3); 446 : NORM1 = NORM1 + ((E MU3 TETA 'SCAL')**2); 447 : 'FINSI'; 448 : NORM1 = 'CHAN' 'CHAM' OBJMOD (NORM1**0.5); 449 : VA1 = ('MAXI' NORM1) - 1.E-5; VA2 = ('MAXI' NORM1) + 1.E-5; 450 : ELTETA = NORM1 'ELEM' 'COMPRIS' VA1 VA2; 451 : *************************************************** 452 : ***** INDICE DE TEMPERATURE RANGEE DENA LTHER ***** 453 : *************************************************** 454 : 'SI' ('NON' PASA) ; 455 : 'SI' (ITHER 'ET' IPAP) ; 456 : TEPER*'TABLE'= SUPTAB.'TEMPERATURE'; 457 : ITET = 'INDE' TEPER ; NBTET = 'DIME' ITET ; 458 : IT = 1 ; 459 : LTHER = 'PROG' (ITET.IT) ; 460 : 'REPETER' TEPERATU ; 461 : IT = IT + 1 ; 462 : 'SI' ('EXISTE' ITET IT) ; 463 : VALTET = 'PROG' (ITET.IT) ; 464 : LTHER = LTHER 'ET' VALTET ; 465 : 'SINON' ; 466 : 'QUITTER' TEPERATU ; 467 : 'FINSI' ; 468 : 'FIN' TEPERATU ; 469 : LTHER = 'ORDONNER' LTHER ; 470 : 'FINSI' ; 471 : 'FINSI' ; 472 : *************************************************** 473 : ********* TABLES POUR STOCKER LES RESULTATS ******* 474 : *************************************************** 475 : SUPTAB.'DGDA' = TABLE; 476 : *************************************************** 477 : **************** AFFICHAGE DU TITRE ************** 478 : *************************************************** 479 : 'SI' IPAP; 480 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU); 481 : 'SI' ISECO; 482 : 'MESS' ' ' TX1; 483 : 'MESS'; 484 : 'MESS' ' ' TX2; 'MESS' ' ' TX3; 485 : 'MESS' ' Instant ' TXMECANI TXTERMI TXPRESS MOTCO; 486 : 'FINSI'; 487 : 'FINSI'; 488 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU)); 489 : 'SI' ISECO; 490 : 'MESS' ' ' TX1; 491 : 'MESS'; 492 : 'MESS' ' ' TX2; 'MESS' ' ' TX3; 493 : 'MESS' ' Noeuds ' ' Instant ' TXMECANI TXTERMI TXPRESS MOTCO; 494 : 'FINSI'; 495 : 'FINSI'; 496 : 'SINON'; 497 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU); 498 : 'SI' ISECO; 499 : 'MESS' ' ' TX2; 'MESS' ' ' TX3; 500 : 'MESS' ' ' TXMECANI TXTERMI TXPRESS ' Derivee dG/da'; 501 : 'FINSI'; 502 : 'FINSI'; 503 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU)); 504 : 'SI' ISECO; 505 : 'MESS' ' ' TX2; 'MESS' ' ' TX3; 506 : 'MESS' ' Noeuds ' TXMECANI TXTERMI TXPRESS ' Derivee dG/da'; 507 : 'FINSI'; 508 : 'FINSI'; 509 : 'FINSI'; 510 : **** 511 : 'SI' ('NON' IPAP); 512 : SIGF = 'REDU' (SUPTAB.'CONTRAINTE') OBJMOD; 513 : DEPINT = 'REDU' (SUPTAB.'DEPLACEMENT') MAPART; 514 : NBDEP = 1; 515 : 'SINON'; 516 : SIG*'TABLE' = SUPTAB.'CONTRAINTE' ; 517 : DEP*'TABLE' = SUPTAB.'DEPLACEMENT' ; 518 : 'SI' ('EXIST' SUPTAB 'VARINTERNE'); 519 : VAR*'TABLE' = SUPTAB.'VARINTERNE'; 520 : 'SINON'; 521 : VAR = TABLE; 522 : 'FINSI'; 523 : IDEP = 'INDE' DEP ; NBDEP = 'DIME' IDEP ; 524 : 'FINSI'; 525 : *************************************************** 526 : *************************************************** 527 : ********* BOUCLE SUR LE PAS DE CALCUL ********* 528 : *************************************************** 529 : *************************************************** 530 : IABC = 0 ; 531 : 'REPETER' BOUCEXT NBDEP ; 532 : IABC = IABC + 1 ; 533 : S10 = 0.; S20 = 0.; S30 = 0.; S40 = 0.; S50 = 0.; 534 : S60 = 0.; S70 = 0.; S80 = 0.; S90 = 0.; S100 = 0.; 535 : S110 = 0.; S120 = 0.; S130 = 0.; S140 = 0.; 536 : *************************************************** 537 : ***** DEPLACEMENT,CONTRAINTE A L INSTANT INST ***** 538 : *************************************************** 539 : 'SI' IPAP; 540 : INST = IDEP.IABC ; 541 : SIGF = (SIG.INST) 'REDU' OBJMOD ; 542 : 'SI' ('EXIST' VAR INST); 543 : VARF = (VAR.INST) 'REDU' OBJMOD; 544 : 'SINON'; 545 : VARF = 'ZERO' OBJMOD 'VARINTER'; 546 : 'FINSI'; 547 : DEPINT = 'REDU' (DEP.INST) MAPART; 548 : 'FINSI'; 549 : *************************************************** 550 : *********** TEMPERATURE A L INSTANT INST ********** 551 : *************************************************** 552 : 'SI' ITHER ; 553 : 'SI' IPAP; 554 : 'SI' PASA ; 555 : TEPINT = 'TIRE' (SUPTAB.'TEMPERATURE') INST 'T' ; 556 : TEPINT = 'REDU' TEPINT MAPART ; 557 : TEPINT = TEPINT - ('REDU' (SUPTAB.'TREFERENCE') MAPART); 558 : 'SINON'; 559 : K = 0 ; 560 : 'REPETER' BLOC1 NBTET ; 561 : K = K + 1 ; 562 : NBRE = 'EXTR' LTHER K ; 563 : 'SI' (NBRE '>EG' INST) ; 'QUITTER' BLOC1 ; 'FINSI' ; 564 : 'FIN' BLOC1 ; 565 : K = K - 1 ; 566 : 'SI' (> ('ABS' ((NBRE-INST)/INST)) 0.001) ; 567 : NBRE1 = 'EXTR' LTHER K ; 568 : NBRE2 = 'EXTR' LTHER (K+1) ; 569 : D1 = INST - NBRE1 ; D2 = NBRE2 - INST ; 570 : TEPINT = ((('REDU' TEPER.NBRE1 MAPART)*D2)+ 571 : (('REDU' TEPER.NBRE2 MAPART)*D1))*(1/(D1+D2)); 572 : TEPINT = TEPINT - ('REDU' (SUPTAB.'TREFERENCE') MAPART); 573 : 'SINON'; 574 : TEPINT = ('REDU' TEPER.NBRE MAPART) 575 : - ('REDU' (SUPTAB.'TREFERENCE') MAPART) ; 576 : 'FINSI'; 577 : 'FINSI'; 578 : 'SINON'; 579 : TEPINT = ('REDU' (SUPTAB.'TEMPERATURE') MAPART) 580 : - ('REDU' (SUPTAB.'TREFERENCE') MAPART) ; 581 : 'FINSI'; 582 : 'FINSI'; 583 : *************************************************** 584 : ************ MATERIAU A L INSTANT INST ************ 585 : *************************************************** 586 : 'SI' (MATVARI 'ET' ITHER); 587 : TEPABS = TEPINT + ('REDU' (SUPTAB.'TREFERENCE') MAPART); 588 : MAT1 = 'VARI' 'NUAG' OBJMOD MATREDU ('EXCO' 'T' TEPABS); 589 : 'SINON'; 590 : MAT1 = MATREDU; 591 : 'FINSI'; 592 : *************************************************** 593 : ************ GRADIENT A L INSTANT INST ************ 594 : *************************************************** 595 : GRADEP = 'GRAD' OBJMOD MAT1 DEPINT ; 596 : 'SI' ITHER; 597 : TEPEGR = 'GRAD' OBJMOD MAT1 ((E 'T' TEPINT MU1) + DEP000); 598 : 'SI' ISECO; 599 : DEPDT = (E GR1 TEPEGR MU1) + (E GR2 TEPEGR MU2); 600 : 'SI' (&DIME 'EGA' 3); 601 : DEPDT = DEPDT + (E GR3 TEPEGR MU3); 602 : 'FINSI'; 603 : DEPDTGR = 'GRAD' OBJMOD MAT1 ('CHAN' 'CHPO' OBJMOD DEPDT); 604 : 'FINSI'; 605 : 'FINSI'; 606 : ******************************************************* 607 : **** ENERGIE DE DEFORMATION ELASTIQUE ET PLASTIQUE **** 608 : ******************************************************* 609 : WELAS = 0.5*('ENER' OBJMOD SIGF ('ELAS' OBJMOD SIGF MAT1)); 610 : 'SI' IPAP; 611 : 'SI' ('EGA' IABC 1); 612 : VMI1 = 'CHAN' ('VMIS' OBJMOD SIGF MAT1) 'TYPE' 'SCALAIRE'; 613 : WPLAS = 0.5*VMI1*(E VARF 'EPSE') ; 614 : 'SINON' ; 615 : SIGMOY = 0.5*(SIG1 + SIGF); 616 : VMI1 = 'CHAN' ('VMIS' OBJMOD SIGMOY MAT1) 'TYPE' 'SCALAIRE'; 617 : WPLAS = WPLAS + (VMI1*(E (VARF - VAR1) 'EPSE')); 618 : 'FINSI' ; 619 : ENERM = WELAS + WPLAS ; 620 : SIG1 = SIGF; VAR1 = VARF; 621 : 'SINON'; 622 : ENERM = WELAS; 623 : 'FINSI'; 624 : **************************************************** 625 : ********** RECUPERATION DU POINT A AVANCER ********* 626 : **************************************************** 627 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU)); 628 : 'SI' IPAP; 629 : SUPTAB.'DGDA'.INST = TABLE; 630 : 'FINSI'; 631 : TTETA*'TABLE' = SUPTAB.'CHTHETA'; 632 : 'SI' ISECO; TPI*'TABLE' = SUPTAB.'CHPI'; 'FINSI'; 633 : INT = 'INDEX' TTETA; 634 : 'SI' IPARTI; 635 : 'SI' ('EGA' ('TYPE' (SUPTAB.'AVANCE')) 'MAILLAGE'); 636 : PMA = 'CHAN' 'POI1' (SUPTAB.'AVANCE'); 637 : NBOU = ('NBNO' PMA) + 1; 638 : 'SINON'; 639 : PMA = SUPTAB.'AVANCE'; NBOU = 2; 640 : 'FINSI'; 641 : 'SINON'; 642 : NBOU = 'DIME' TTETA; 643 : 'FINSI'; 644 : 'FINSI'; 645 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU); 646 : NBOU = 1; 647 : 'FINSI'; 648 : ************************************************** 649 : ******** BOUCLE SUR LES POINTS A AVANCER ******* 650 : ************************************************** 651 : 'REPETER' BCNOEU NBOU; 652 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU)); 653 : 'SI' (&BCNOEU 'EGA' NBOU); 654 : PM = MOT 'GLOBAL'; 655 : NUNOE = 'CHAI' ' ' PM ' '; 656 : 'SINON'; 657 : PM = INT.&BCNOEU; 658 : 'SI' IPARTI; 659 : 'SI' ('EGA' ('TYPE' (SUPTAB.'AVANCE')) 'MAILLAGE'); 660 : PM = 'POIN' PMA &BCNOEU; 661 : 'SINON'; 662 : PM = SUPTAB.'AVANCE'; 663 : 'FINSI'; 664 : 'FINSI'; 665 : NUNOE = 'NOEU' PM; 666 : 'FINSI'; 667 : TETA = TTETA.PM; 'SI' ISECO; PI = TPI.PM; 'FINSI'; 668 : 'FINSI'; 669 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU); 670 : TETA = SUPTAB.'CHTHETA'; 671 : 'SI' ISECO; PI = SUPTAB.'CHPI'; 'FINSI'; 672 : 'FINSI'; 673 : ************************************************** 674 : ***** GRADIANT DU CHAMP THETA ET DU CHAMP PI ***** 675 : ************************************************** 676 : TETA = TETA + DEP000; 677 : TETAGR = 'GRAD' OBJMOD MAT1 TETA ; 678 : DIVTETA = (E GR1 TETAGR S)+(E GR5 TETAGR S)+(E GR9 TETAGR S); 679 : TETX = 'CHAN' 'CHAM' OBJMOD (E MU1 TETA S) 'STRESSES'; 680 : TETY = 'CHAN' 'CHAM' OBJMOD (E MU2 TETA S) 'STRESSES'; 681 : 'SI' (&DIME 'EGA' 3) ; 682 : TETZ = 'CHAN' 'CHAM' OBJMOD (E MU3 TETA S) 'STRESSES'; 683 : 'FINSI'; 684 : 'SI' ISECO; 685 : PI = PI + DEP000; 686 : PI = PI / ('MAXI' NORM1); 687 : PIGR = 'GRAD' OBJMOD MAT1 PI ; 688 : DIVPI = (E GR1 PIGR S)+(E GR5 PIGR S)+(E GR9 PIGR S); 689 : PITAGR = (OBJMOD PIGR * TETAGR) ; 690 : DIVPITA = (E GR1 PITAGR S)+(E GR5 PITAGR S)+(E GR9 PITAGR S); 691 : ADJ = (DIVPITA - (DIVPI * DIVTETA)) ; 692 : PIX = 'CHAN' 'CHAM' OBJMOD (E MU1 PI S) 'STRESSES'; 693 : PIY = 'CHAN' 'CHAM' OBJMOD (E MU2 PI S) 'STRESSES'; 694 : 'SI' (&DIME 'EGA' 3) ; 695 : PIZ = 'CHAN' 'CHAM' OBJMOD (E MU3 PI S) 'STRESSES'; 696 : 'FINSI'; 697 : 'FINSI'; 698 : ********************************************************* 699 : ***************** TEMU = (Grad T)*THETA ***************** 700 : ****************** TEMU1 = (Grad T)*PI ****************** 701 : *********** TEMU2 = (Grad (Grad T))*PI*THETA ************ 702 : ********************************************************* 703 : 'SI' ITHER; 704 : TEMU = ((E GR1 TEPEGR S)*OBJMOD TETX) + 705 : ((E GR2 TEPEGR S)*OBJMOD TETY) ; 706 : 'SI' (&DIME 'EGA' 3) ; 707 : TEMU = TEMU + ((E GR3 TEPEGR S)*OBJMOD TETZ); 708 : 'FINSI' ; 709 : TEMU = 'CHAN' 'TYPE' ('EXCO' 'SCAL' TEMU 'T') 'TEMPERATURES'; 710 : EPSTU = 'ELAS' OBJMOD ('THETA' OBJMOD MAT1 TEMU) MAT1; 711 : 'SI' ISECO; 712 : TEMU1 = ((E GR1 TEPEGR S)*OBJMOD PIX) + 713 : ((E GR2 TEPEGR S)*OBJMOD PIY); 714 : TXXPIX = (E GR1 DEPDTGR S)*OBJMOD PIX; 715 : TYXPIY = (E GR2 DEPDTGR S)*OBJMOD PIY; 716 : TXYPIX = (E GR4 DEPDTGR S)*OBJMOD PIX; 717 : TYYPIY = (E GR5 DEPDTGR S)*OBJMOD PIY; 718 : TEMU2 = (TETX*OBJMOD (TXXPIX + TYXPIY)) + 719 : (TETY*OBJMOD (TXYPIX + TYYPIY)); 720 : 'SI' (&DIME 'EGA' 3) ; 721 : TEMU1 = TEMU1 + ((E GR3 TEPEGR S)*OBJMOD PIZ); 722 : TZXPIZ = (E GR3 DEPDTGR S)*OBJMOD PIZ; 723 : TZYPIZ = (E GR6 DEPDTGR S)*OBJMOD PIZ; 724 : TXZPIX = (E GR7 DEPDTGR S)*OBJMOD PIX; 725 : TYZPIY = (E GR8 DEPDTGR S)*OBJMOD PIY; 726 : TZZPIY = (E GR9 DEPDTGR S)*OBJMOD PIZ; 727 : TEMU2 = (TETX*OBJMOD (TXXPIX + TYXPIY + TZXPIZ)) + 728 : (TETY*OBJMOD (TXYPIX + TYYPIY + TZYPIZ)) + 729 : (TETZ*OBJMOD (TXZPIX + TYZPIY + TZZPIZ)); 730 : 'FINSI'; 731 : TEMU1 = 'CHAN' 'TYPE' ('EXCO' 'SCAL' TEMU1 'T') 'TEMPERATURES'; 732 : EPSTU1 = 'ELAS' OBJMOD ('THETA' OBJMOD MAT1 TEMU1) MAT1; 733 : TEMU2 = 'CHAN' 'TYPE' ('EXCO' 'SCAL' TEMU2 'T') 'TEMPERATURES'; 734 : EPSTU2 = 'ELAS' OBJMOD ('THETA' OBJMOD MAT1 TEMU2) MAT1; 735 : 'FINSI' ; 736 : 'FINSI'; 737 : ******************************************************************** 738 : ****** On calcul la variation de contrainte et de déplacement ****** 739 : ******************************************************************** 740 : 'SI' ISECO; 741 : GRAD11 = (OBJMOD GRADEP * PIGR) ; 742 : EPXX1 = E GR1 GRAD11 S; 743 : EPYY1 = E GR5 GRAD11 S; 744 : EPZZ1 = E GR9 GRAD11 S; 745 : GAXY1 = (E GR2 GRAD11 S) + (E GR4 GRAD11 S) ; 746 : GAXZ1 = (E GR3 GRAD11 S) + (E GR7 GRAD11 S) ; 747 : GAYZ1 = (E GR6 GRAD11 S) + (E GR8 GRAD11 S) ; 748 : 'SI' (&DIME 'EGA' 3) ; 749 : EPSIA1 = 'MANU' 'CHML' OBJMOD EP1 EPXX1 EP2 750 : EPYY1 EP3 EPZZ1 EP4 GAXY1 EP5 GAXZ1 EP6 751 : GAYZ1 'TYPE' 'DEFORMATIONS' 'STRESSES'; 752 : 'SINON'; 753 : EPSIA1 = 'MANU' 'CHML' OBJMOD EP1 EPXX1 EP2 754 : EPYY1 EP3 EPZZ1 EP4 GAXY1 755 : 'TYPE' 'DEFORMATIONS' 'STRESSES'; 756 : 'FINSI'; 757 : 'SI' ITHER; EPSIA1 = EPSIA1 + EPSTU1; 'FINSI'; 758 : F11 = ('BSIG' OBJMOD ((('HOOK' OBJMOD MATERI)*OBJMOD EPSIA1) 759 : - (OBJMOD SIGF*DIVPI)) + ('FOFI' OBJMOD SIGF PIGR)); 760 : A_DEPI = 'REDU' ('RESO' (F11 + FOR000) RITOTA) MAPART ; 761 : A_SIGF = OBJMOD ('HOOK' OBJMOD MAT1) * 762 : (('EPSI' OBJMOD A_DEPI) - EPSIA1); 763 : 'SINON'; 764 : A_DEPI = 'REDU' (SUPTAB.'DEPL_AUXI') MAPART; 765 : A_SIGF = 'REDU' (SUPTAB.'CONT_AUXI') OBJMOD; 766 : 'FINSI'; 767 : A_DEPGR = 'GRAD' OBJMOD A_DEPI ; 768 : ****************************************************** 769 : ***** S10 = -SIGF*(Grad U)*(Grad PI)*(Grad TETA) ***** 770 : ***** S20 = -SIGF*(Grad U)*(Grad TETA)*(Grad PI) ***** 771 : ***** S30 = SIGF*(Grad U)*(Grad TETA)*(Div PI) ******* 772 : ***** S40 = SIGF*(Grad U)*(Grad PI)*(Div TETA) ******* 773 : ***** S50 = ENEGIE*(ADJ TETA*PI) ********************* 774 : ***** S60 = ALPH*SIGF*(Grad (Grad T))*PI*TETA ******** 775 : ***** S70 = ALPH*SIGF*((Grad T)*PI)*(Div TETA) ******* 776 : ***** S80 = ALPH*SIGF*((Grad T)*TETA)*(Div PI) ******* 777 : ***** S120= ALPH*SIG1*((Grad T)*TETA) **************** 778 : ***** S90 = SIG1*(Grad U)*(Grad TETA) **************** 779 : ***** S100= SIGF*(Grad U1)*(Grad TETA) *************** 780 : ***** S110= -SIGF*(Grad U1)*(Div TETA) *************** 781 : ***** S130= PRESSION*(grad A_DEPI)*THETA ************* 782 : ***** S140= PRESSION_AUXI*(grad U)*THETA ************* 783 : ****************************************************** 784 : 'SI' ISECO; 785 : S10 = 0. - ('INTG' OBJMOD ('WORK' OBJMOD SIGF 786 : (OBJMOD GRADEP * (OBJMOD PIGR * TETAGR)))); 787 : S20 = 0. - ('INTG' OBJMOD ('WORK' OBJMOD SIGF 788 : (OBJMOD GRADEP * (OBJMOD TETAGR * PIGR)))); 789 : S30 = 'INTG' OBJMOD (OBJMOD ('WORK' OBJMOD 790 : SIGF (OBJMOD GRADEP * TETAGR)) * DIVPI); 791 : S40 = 'INTG' OBJMOD (OBJMOD ('WORK' OBJMOD 792 : SIGF (OBJMOD GRADEP * PIGR)) * DIVTETA); 793 : S50 = 'INTG' OBJMOD (ENERM * ADJ); 794 : 'SI' ITHER ; 795 : S60 = 'INTG' OBJMOD ('ENER' OBJMOD SIGF EPSTU2); 796 : S70 = 'INTG' OBJMOD (('ENER' OBJMOD SIGF EPSTU1)*DIVTETA); 797 : S80 = 'INTG' OBJMOD (('ENER' OBJMOD SIGF EPSTU)*DIVPI); 798 : 'FINSI'; 799 : 'FINSI'; 800 : 'SI' ITHER ; 801 : S120 = 'INTG' OBJMOD ('ENER' OBJMOD A_SIGF EPSTU); 802 : 'FINSI'; 803 : 'SI' IPRE_A ; 804 : PREI_A = PRES_A 'REDU' MAPART ; 805 : GRADCH = 'CHANGER' 'CHPO' OBJMOD GRADEP; 806 : DEPLX = ((E GR1 GRADCH S)*(E MU1 TETA S)) + 807 : ((E GR2 GRADCH S)*(E MU2 TETA S)) ; 808 : DEPLY = ((E GR4 GRADCH S)*(E MU1 TETA S)) + 809 : ((E GR5 GRADCH S)*(E MU2 TETA S)) ; 810 : DEP0 = DEP000 + ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2); 811 : 'SI' (&DIME 'EGA' 3) ; 812 : DEPLX = DEPLX + ((E GR3 GRADCH S)*(E MU3 TETA S)); 813 : DEPLY = DEPLY + ((E GR6 GRADCH S)*(E MU3 TETA S)); 814 : DEPLZ = ((E GR7 GRADCH S)*(E MU1 TETA S)) + 815 : ((E GR8 GRADCH S)*(E MU2 TETA S)) + 816 : ((E GR9 GRADCH S)*(E MU3 TETA S)) ; 817 : DEP0 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2) + 818 : ('NOMC' DEPLZ MU3); 819 : 'FINSI'; 820 : S140 = (0 - ('XTY' PREI_A DEP0 MOTF MOTU)) ; 821 : 'FINSI' ; 822 : 'SI' IPRES ; 823 : PREINT = PRESSI 'REDU' MAPART ; 824 : GRADCH = 'CHANGER' 'CHPO' OBJMOD A_DEPGR ; 825 : DEPLX = ((E GR1 GRADCH S)*(E MU1 TETA S)) + 826 : ((E GR2 GRADCH S)*(E MU2 TETA S)) ; 827 : DEPLY = ((E GR4 GRADCH S)*(E MU1 TETA S)) + 828 : ((E GR5 GRADCH S)*(E MU2 TETA S)) ; 829 : DEP0 = DEP000 + ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2); 830 : 'SI' (&DIME 'EGA' 3) ; 831 : DEPLX = DEPLX + ((E GR3 GRADCH S)*(E MU3 TETA S)); 832 : DEPLY = DEPLY + ((E GR6 GRADCH S)*(E MU3 TETA S)); 833 : DEPLZ = ((E GR7 GRADCH S)*(E MU1 TETA S)) + 834 : ((E GR8 GRADCH S)*(E MU2 TETA S)) + 835 : ((E GR9 GRADCH S)*(E MU3 TETA S)) ; 836 : DEP0 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2) + 837 : ('NOMC' DEPLZ MU3); 838 : 'FINSI'; 839 : S130 = (0 - ('XTY' PREINT DEP0 MOTF MOTU)) ; 840 : 'FINSI'; 841 : S90 = 'INTG' OBJMOD ('WORK' OBJMOD 842 : A_SIGF (OBJMOD GRADEP * TETAGR)); 843 : S100 = 'INTG' OBJMOD ('WORK' OBJMOD 844 : SIGF (OBJMOD A_DEPGR * TETAGR)); 845 : S110 = 0. - ('INTG' OBJMOD (OBJMOD ('WORK' 846 : OBJMOD SIGF A_DEPGR) * DIVTETA)) ; 847 : ************************************************** 848 : ******** RASSEMBLAGE DE DIFFERENTS TERMES ******** 849 : ************************************************** 850 : TMCANI = S10 + S20 + S30 + S40 + S50 + S90 + S100 + S110; 851 : TTERMI = S60 + S70 + S80 + S120 ; 852 : TPRESS = S130 + S140; 853 : TTOTA = TMCANI + TTERMI + TPRESS ; 854 : *************************************************** 855 : **** STOCKAGE DES RESULTATS DANS SUPTAB.'DGDA' **** 856 : *************************************************** 857 : C1 = C TMCANI ' '; C2 = C TTERMI ' '; 858 : C3 = C TPRESS ' '; C4 = C TTOTA; 859 : 'SI' IPAP; 860 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU); 861 : SUPTAB.'DGDA'.INST = TTOTA; 862 : 'MESS' (C INST ' ') C1 C2 C3 C4; 863 : 'FINSI'; 864 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU)); 865 : SUPTAB.'DGDA'.INST.PM = TTOTA; 866 : 'MESS' NUNOE (C INST ' ') C1 C2 C3 C4; 867 : 'FINSI'; 868 : 'SINON'; 869 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU); 870 : 'MESS' C1 C2 C3 C4; 871 : SUPTAB.'DGDA' = TTOTA; 872 : 'FINSI'; 873 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU)); 874 : 'MESS' NUNOE C1 C2 C3 C4; 875 : SUPTAB.'DGDA'.PM = TTOTA; 876 : 'FINSI'; 877 : 'FINSI'; 878 : 'MENA'; 879 : 'FIN' BCNOEU; 880 : 'MENA'; 881 : 'SI' (IPAP 'ET' (NBOU '>' 1)); 882 : 'SAUT' 1 'LIGNE'; 883 : 'FINSI'; 884 : 'SI' (IPAP 'ET' (NBOU 'EGA' 1)); 885 : 'SI' (('ABS' ((&BOUCEXT/10) - (&BOUCEXT/10.))) '<' 1.D-10); 886 : 'SAUT' 1 'LIGNE'; 887 : 'FINSI'; 888 : 'FINSI'; 889 : 'FIN' BOUCEXT ; 890 : **************************************************** 891 : ********* FIN BOUCLE SUR LE PAS DE CALCUL ********* 892 : **************************************************** 893 : **************************************************** 894 : ** STOCKAGE DES RESULTATS DANS SUPTAB.'EVOLDGDA' *** 895 : **************************************************** 896 : 'SI' IPAP; 897 : SUPTAB.'EVOLDGDA' = TABLE; 898 : IND1 = 'INDE' (SUPTAB.'DGDA'); 899 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU); 900 : 'TITRE' CHA1; 901 : PT = PROG; PG = PROG; 902 : 'REPETER' BB1 ('DIME' IND1); 903 : T1 = IND1.&BB1; 904 : PT = PT 'ET' (PROG T1); 905 : PG = PG 'ET' (PROG SUPTAB.'DGDA'.T1); 906 : 'FIN' BB1; 907 : SUPTAB.'EVOLDGDA'='EVOL' 'MANU' 'TEMPS' PT MOTTI PG; 908 : 'FINSI'; 909 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU)); 910 : IND2 = 'INDE' (SUPTAB.'DGDA'.(IND1.1)); 911 : 'REPETER' BB1 ('DIME' IND2); 912 : PM = IND2.&BB1; PT = PROG; PG = PROG; 913 : CHA2 = 'CHAI' ' (Pt ' NUNOE ')'; 914 : 'TITR' ('CHAI' CHA1 CHA2); 915 : 'REPETER' BB2 ('DIME' IND1); 916 : T1 = IND1.&BB2; 917 : PT = PT 'ET' (PROG T1); 918 : PG = PG 'ET' (PROG SUPTAB.'DGDA'.T1.PM); 919 : 'FIN' BB2; 920 : SUPTAB.'EVOLDGDA'.PM='EVOL' 'MANU' 'TEMPS' PT MOTTI PG; 921 : 'FIN' BB1; 922 : 'FINSI'; 923 : 'FINSI'; 924 : 'FINPROC' SUPTAB ; 925 : 926 :
© Cast3M 2003 - All rights reserved.
Disclaimer