Download g_theta1.procedur

Back to the list

   1 : * G_THETA1  PROCEDUR  JC220346  12/09/12    21:15:07     7501           
   2 : * G_THETA1   PROCEDUR  VALETA    96/05/09    21:15:10     2138
   3 : 'DEBPROC' G_THETA1 TABMOD*'TABLE' MATERI*'MCHAML' SUPTAB*'TABLE';
   4 : *|=====================================================================|
   5 : *|                                                                     |
   6 : *|    OBJET :                                                          |
   7 : *|    =======                                                          |
   8 : *|                                                                     |
   9 : *| 1) calculer le taux de restitution d'energie G en                   |
  10 : *|    elasticite, en elasto-plasticite,en elasto-dynamique ou          |
  11 : *|    l'integrale C* en visco-plasticite en 2D, 3D (massif ou          |
  12 : *|    visco-plasticite en 2D, 3D (massif ou coque mince), ou en        |
  13 : *|    coque mince axisymetrique. Les materiaux utilises peuvent etre   |
  14 : *|    homogenes, non-homogenes, ou composites sous des chargements     |
  15 : *|    de type mecaniques, thermiques, forces volumiques, ou pressions  |
  16 : *|    sur le fond de la fissure.                                       |
  17 : *| 2) decouper les modes mixtes (separation de K1, K2 et K3) en        |
  18 : *|    elasticite pour les problems en 2D, 3D (massif uniquement),      |
  19 : *|    ou en axisymetrique. Pour separer les modes, la version          |
  20 : *|    actuelle de la procedure ne fonctione qu'en cas de materiaux     |
  21 : *|    homogenes et isotrope.                                           |
  22 : *|                                                                     |
  23 : *|    ENTREE :                                                         |
  24 : *|    ========                                                         |
  25 : *|                                                                     |
  26 : *|    Arguments obligatoires :                                         |
  27 : *|    -------------------------                                        |
  28 : *|                                                                     |
  29 : *| TABMOD  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 G ou C*. 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     |
  34 : *|         des modeles dans cette petite zone ou si l'on utilise la    |
  35 : *|         procedure pour decoupler les modes, TABMOD ici doit contenir|
  36 : *|         les objets MODELS globales du problems utilises dans la     |
  37 : *|         resolution par elements finis. Dans ce cas le support       |
  38 : *|         maillage de l'ensemble de modeles est la structure totale   |
  39 : *|         etudiee.                                                    |
  40 : *| MATERI  Objet MCHAML de sous-type CARACTERISTIQUES donnant les      |
  41 : *|         propriétés matérielles (module Young, coefficient de        |
  42 : *|         Poisson...) + les proprietes geometriques dans le cas       |
  43 : *|         des elements en coque mince (epaisseur, excentrement...).   |
  44 : *|         Les composantes de MATERI peuvent etre des objets de type   |
  45 : *|         FLOTTANT, MCHAML, EVOLUTIO, NUAGE selon le probleme traité. |
  46 : *|         Il convient de donner ici le materiau total du probleme     |
  47 : *|         englobant toute la structure.                               |
  48 : *| SUPTAB  objet de type table.                                        |
  49 : *|         En entree, SUPTAB sert a definir les options et les         |
  50 : *|         parametres du calcul. Ses indices sont des objets de type   |
  51 : *|         MOTS (a ecrire en toutes lettres) dont voici la liste:      |
  52 : *|                                                                     |
  53 : *| SUPTAB.CHTHETA  = CHPOINT (TABLE en 3D) de deplacement cree         |
  54 : *|                   par la procedure CH_THETA.                        |
  55 : *| SUPTAB.DEPLACEMENT = TABLE si le calcul est effectue pas a pas,     |
  56 : *|                      CHPOINT si en un seul pas (probleme lineaire). |
  57 : *|                      Dans le premier cas SUPTAB.DEPLACEMENT         |
  58 : *|                      contient touts les deplacements en indice      |
  59 : *|                      de la definition des valeurs du parametre      |
  60 : *|                      d'evolution (ex : table RESUDEPL de NONLIN).   |
  61 : *| SUPTAB.CONTRAINTE  = TABLE si le calcul est effectue pas a pas,     |
  62 : *|                      MCHAML si en un seul pas (probleme lineaire).  |
  63 : *|                      Dans le premier cas SUPTAB.CONTRAINTE contient |
  64 : *|                      toutes les contraintes en meme indice du       |
  65 : *|                      parametre d'evolution que la table             |
  66 : *|                      SUPTAB.DEPLACEMENT (ex : table RESUCONT de     |
  67 : *|                      NONLIN).                                       |
  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 : *| SUPTAB.CHARGEMENT = CHARGEMENT.Pour les calculs non-lineaires       |
  83 : *|                     effectues pas a pas ,on doit rappeler ici le    |
  84 : *|                     chargement utilise.(exige si on a utilise       |
  85 : *|                     la procedure PASAPAS)                           |
  86 : *| SUPTAB.TEMPS      = TABLE. Pour les calculs non-lineaires effectues |
  87 : *|                     pas a pas avec la procedure PASAPAS, cette table|
  88 : *|                     contient la variable 'temps' en meme indice     |
  89 : *|                     entier d'evolution que les tables               |
  90 : *|                     SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE         |
  91 : *| SUPTAB.GRANDS_DEPLACEMENTS = VRAI pour un calcul en grands          |
  92 : *|                              deplacements. Dans ce cas le CH_THETA  |
  93 : *|                              est recalcule automatiquement          |
  94 : *|                              dans la procedure G_THETA a chaque pas |
  95 : *|                              sur la geometrie deformee . La donnee  |
  96 : *|                              de la table utilisee pour le calcul    |
  97 : *|                              initial de CH_THETA (sur geometrie non |
  98 : *|                              deformee) est donc obligatoire :       |
  99 : *|                   - SUPTAB.'TABLE_CH_THETA' = table utilisee pour le|
 100 : *|                                               calcul initial de     |
 101 : *|                                               CH_THETA .            |
 102 : *|    2 : En thermo-mecanique                                          |
 103 : *|                                                                     |
 104 : *| SUPTAB.TEMPERATURE = TABLE pour les calculs effectues pas a pas,    |
 105 : *|                      CHPOINT si en un seul pas (probleme lineaire). |
 106 : *|                      Dans le premier cas SUPTAB.TEMPERATURE         |
 107 : *|                      contient toutes les temperatures absolutes     |
 108 : *|                      en indice d'evolution du parametre de temps,   |
 109 : *|                      qui doit etre plus large ou egale a celle des  |
 110 : *|                      tables SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE |
 111 : *|                      (ex : table CHPOTHETA utilisee dans NONLIN).   |
 112 : *|                      (inutile si on a utilise PASAPAS)              |
 113 : *| SUPTAB.TREFERENCE  = CHPOINT de temperature de reference (ex :      |
 114 : *|                      chpoint TREFERENCE utilisee dans NONLIN).      |
 115 : *|                      (inutile si on a utilise PASAPAS)              |
 116 : *| SUPTAB.TALPHAREFE  = FLOTTANT, requis dans le cas de coefficient de |
 117 : *|                      dilatation thermique alpha dépendant de la     |
 118 : *|                      température. Il est la valeur de la température|
 119 : *|                      de référence qui sert à definir l'alpha dans   |
 120 : *|                      l'expression de la deformation thermique :     |
 121 : *|                      EPSTH = ALPHA(T)*(T - TALPHAREFE) -            |
 122 : *|                      ALPHA(TREFERENCE)*(TREFERENCE - TALPHAREFE)    |
 123 : *|                                                                     |
 124 : *|    3 : En presence de pression ou/et force volumique                |
 125 : *|        agissant dans un voisinage du fond de la fissure             |
 126 : *|                                                                     |
 127 : *| SUPTAB.PRESSION  = Objet de type CHPOINT ou CHARGEMENT, requis dans |
 128 : *|                    dans le cas ou il existe une force volumique     |
 129 : *|                    ou/et une pression s'exercant dans un voisinage  |
 130 : *|                    du fond de la fissure. Si cette force varie avec |
 131 : *|                    le temps on donne un objet de type CHARGEMENT.   |
 132 : *|                    SI cette force reste constante, on donne un      |
 133 : *|                    un objet de type CHPOINT                         |
 134 : *|                    (le logique VRAI suffit si on a utilise PASAPAS) |
 135 : *|                                                                     |
 136 : *|    4 : En cas de reprise de calcul                                  |
 137 : *|                                                                     |
 138 : *| SUPTAB.REPRIS = VRAI                                                |
 139 : *|        En plasticite ou fluage, cette option permet de reprendre    |
 140 : *|        le calcul de G a partir d'un pas de calcul donne             |
 141 : *|                                                                     |
 142 : *|    5 : En cas de materiaux composites                               |
 143 : *|                                                                     |
 144 : *| SUPTAB.PARALLELE = VRAI si la fissure est parallele a toutes les    |
 145 : *|                    interfaces des matériaux differents, FAUX sinon. |
 146 : *|                    Dans le premier cas on precise encore :          |
 147 : *| SUPTAB.INTERFACE = TABLE stockant tous les interfaces (de type      |
 148 : *|                    MAILLAGE) des materiaux differents. L'indice     |
 149 : *|                    de cette table est 1, 2, 3,..., N (N : nombre    |
 150 : *|                    d'interfaces des materiaux. En cas des           |
 151 : *|                    materiaux composites, il convient de             |
 152 : *|                    constuire les table TABMOD et INTERFACE          |
 153 : *|                    comme montre ci-dessous                          |
 154 : *|                                                                     |
 155 : *|        --------------|------------|-------------|------------|      |
 156 : *|        |             |            |             |            |      |
 157 : *|        |  TABMOD.1   |  TABMOD.2  | TABMOD.3 ...|  TABMOD.n  |      |
 158 : *|        |             |            |             |            |      |
 159 : *|        --------------|------------|-------------|------------|      |
 160 : *|                INTERFACE.1  INTERFACE.2 ... INTERFACE.N             |
 161 : *|                                                                     |
 162 : *|    6 : Dans le cas de calcul de l'integrale C* en visco-plasticite  |
 163 : *|                                                                     |
 164 : *| SUPTAB.'LOI'      = MOT pour preciser la loi de fluage utilisee     |
 165 : *|                     dans le calcul. On rapelle que les lois         |
 166 : *|                     acctuellement utilisables sont                  |
 167 : *|                     NORTON, BLACKBURN, RCCMR_316, RCCMR_304,        |
 168 : *|                     LEMAITRE ET POLYNOMIAL.                         |
 169 : *| SUPTAB.'DEFINELA' = TABLE. Pour les calculs en viscoplastique,      |
 170 : *|                     elle donne les déformations inélastiques        |
 171 : *|                     en meme indice d'evolution que les tables       |
 172 : *|                     SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE         |
 173 : *|                     (ex : table RESUDEFI de NONLIN).                |
 174 : *| SUPTAB.'DEFI_INI' = MCHAML pour donner la déformation inélastique   |
 175 : *|                     au debut de la periode de fluage. Si elle est   |
 176 : *|                     nulle, on la crée avec l'opérateur 'ZERO'.      |
 177 : *| SUPTAB.'DEPL_INI' = CHPOINT pour donner le champ de deplacements    |
 178 : *|                     au debut de la periode de fluage (ex :          |
 179 : *|                     solution deplacement elastique).                |
 180 : *| SUPTAB.'CONT_INI' = MCHAML pour donner le champ de contraintes      |
 181 : *|                     au debut de la periode de fluage (ex :          |
 182 : *|                     solution contrainte elastique).                 |
 183 : *| SUPTAB.'TEMP_INI' = CHPOINT pour donner le champ de temperature     |
 184 : *|                     ABSOLUTE au debut de la periode de fluage.      |
 185 : *| SUPTAB.'TEMP0'    = FLOTTANT (facultatif) pour donner le temps a    |
 186 : *|                     partir duquel commence la periode de fluage.    |
 187 : *|                     Par defaut c'est le temps zero qui correspond   |
 188 : *|                     le debut de la fluage. Il est a noter que       |
 189 : *|                     l'integrale C* n'est independant du contour     |
 190 : *|                     d'integration que lorsque le fluage est         |
 191 : *|                     stationaire, c'est-a-dire quand le champ de     |
 192 : *|                     contraintes est redistribue et ne varie plus.   |
 193 : *|                                                                     |
 194 : *|    7 : Pour un front de fissure tridimensionnel                     |
 195 : *|                                                                     |
 196 : *| SUPTAB.'AVANCE'   =  MAILLAGE pour donner les points du front pour  |
 197 : *|                      lesquels le calcul sera effectue. Si cet       |
 198 : *|                      argument est absent, le calcul sera fait pour  |
 199 : *|                      tous les noeuds sur le front de la fissure.    |
 200 : *|                                                                     |
 201 : *|    8 : En cas de decouplage des modes mixtes                        |
 202 : *|                                                                     |
 203 : *| SUPTAB.'MODMIXTE' = Objet LOGIQUE egale VRAI si on veut separer     |
 204 : *|                     les modes. Dans ce cas il faut preciser         |
 205 : *| SUPTAB.'LEVRESUP' = MAILLAGE représentant la lèvre supérieur de     |
 206 : *|                     la fissure.                                     |
 207 : *| SUPTAB.'LEVREINF' = MAILLAGE représentant la lèvre inférieur de     |
 208 : *|                     la fissure                                      |
 209 : *| SUPTAB.'FONDFISS' = POINT ou MAILLAGE représentant la pointe de     |
 210 : *|                     la fissure                                      |
 211 : *|                                                                     |
 212 : *|    9 : En elasto-dynamique                                          |
 213 : *|                                                                     |
 214 : *| SUPTAB.'VITESSE    =  TABLE en elasto-dynamique,                    |
 215 : *|                       contient les VITESSES                         |
 216 : *|                                                                     |
 217 : *| SUPTAB.'TDYN'      =  TABLE en elasto-dynamique, contient tous      |
 218 : *|                       les INSTANTS de sortie.                       |
 219 : *|                                                                     |
 220 : *|                                                                     |
 221 : *|    SORTIE :                                                         |
 222 : *|    ========                                                         |
 223 : *|                                                                     |
 224 : *|    Dans tous les cas de calcul                                      |
 225 : *|    ---------------------------                                      |
 226 : *|                                                                     |
 227 : *| SUPTAB.G = 1) Pour le taux de restitution d'énergie G ou            |
 228 : *|               l'intégrale C* habituelle, SUPTAB.G est, en 2D, une   |
 229 : *|               table si le calcul est effectue pas a pas, flottant   |
 230 : *|               si en un seul pas. Dans le premier cas, G est en meme |
 231 : *|               indice d'evolution du parametre de temps que celle    |
 232 : *|               des tables SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE    |
 233 : *|               (ou SUPTAB.VARINTERNE en elasto ou visco-plasticite). |
 234 : *|               En 3D, si le calcul est realise pas a pas SUPTAB.G    |
 235 : *|               est indicee par deux parametres dont le premier est   |
 236 : *|               le facteur d'evolution de temps et le deuxieme les    |
 237 : *|               points sur le front de la fissure. Pour un calcul     |
 238 : *|               realise en un seul pas SUPTAB.G a une seule indice    |
 239 : *|               representant les points sur le front de la fissure.   |
 240 : *|               Exemple : la valeur de G ou C* est                    |
 241 : *|               en 2D pour un calcul realise pas a pas a l'instant    |
 242 : *|                     T1, (SUPTAB.'G'.T1)                             |
 243 : *|               en 2D pour un calcul en un seul pas, (SUPTAB.'G')     |
 244 : *|               en 3D au point P1 pour un calcul realise pas a pas a  |
 245 : *|                     l'instant T1, (SUPTAB.'G'.T1.P1)                |
 246 : *|               en 3D au point P1 pour un calcul realise en un seul   |
 247 : *|                     pas, (SUPTAB.'G'.P1)                            |
 248 : *|            2) En cas de decouplage des modes mixtes (separation     |
 249 : *|               des facteurs K1, K2 et K3), SUPTAB.G est, en 2D, une  |
 250 : *|               table indicee par les mots 'I' et 'II' representant   |
 251 : *|               deux flottants associes a K1 et K2, respectivement.   |
 252 : *|               Si le calcul est realise pas a pas, SUPTAB.G.'I' et   |
 253 : *|               SUPTAB.G.'II' sont deux tables, en meme indice        |
 254 : *|               d'evolution du parametre de temps que celle des       |
 255 : *|               tables SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE (ou    |
 256 : *|               SUPTAB.VARINTERNE). En 3D, si le calcul est realise   |
 257 : *|               pas a pas, SUPTAB.G est indicee par trois parametres  |
 258 : *|               dont le premier est le mot 'I', 'II' ou 'III'         |
 259 : *|               representant des valeurs associées a K1, K2 ou K3,    |
 260 : *|               la deuxieme indice est le facteur d'evolution de temps|
 261 : *|               representant les instants auxquels on a realise le    |
 262 : *|               calcul et la troisieme le point representant les      |
 263 : *|               noeuds sur le front de la fissure. Pour les calcul    |
 264 : *|               realise en un seul pas, SUPTAB.G est indicee par      |
 265 : *|               deux parametres dont le premier est le mot 'I', 'II'  |
 266 : *|               ou 'III' et le deuxieme les noeuds sur le front de la |
 267 : *|               fissure.                                              |
 268 : *|               Exemple : le facteur d'intensite de contrainte en     |
 269 : *|               mode MI (MI est un objet de type mot valant 'I', 'II' |
 270 : *|               ou 'III') est Ki = (Gi/C_MATE)**0.5 avec i = 1, 2, 3, |
 271 : *|               C_MATE une constante dependant du module d'Young et   |
 272 : *|               du coefficient de Poisson et Gi un flottant egale a : |
 273 : *|               en 2D pour un calcul realise pas a pas a l'instant    |
 274 : *|                     T1, (SUPTAB.'G'.MI.T1)                          |
 275 : *|               en 2D pour un calcul en un seul pas, (SUPTAB.MI.'G')  |
 276 : *|               en 3D au point P1 pour un calcul realise pas a pas a  |
 277 : *|                     l'instant T1, (SUPTAB.'G'.MI.T1.P1)             |
 278 : *|               en 3D au point P1 pour un calcul realise en un seul   |
 279 : *|                     pas, (SUPTAB.'G'.MI.P1)                         |
 280 : *|               REMARQUE : La constante materielle C_MATE est sauvee  |
 281 : *|                          dans l'objet FLOTTANT SUPTAB.C_MATE. Pour  |
 282 : *|                          fissure dans l'interface de bimetallique,  |
 283 : *|                          elle est une fonction des modules d'Young  |
 284 : *|                          et coefficients de Poisson des materiaux.  |
 285 : *|                          Les signes pour les FIC K1 et K2 sont      |
 286 : *|                          stockees dans les objets SUPTAB.'SIGNE_K1' |
 287 : *|                          et SUPTAB.'SIGNE_K2', egale à 1 s'ils sont |
 288 : *|                          positifs, -1 s'ils sont negatifs.          |
 289 : *|                                                                     |
 290 : *|    En cas de calcul effectue pas a pas                              |
 291 : *|    -----------------------------------                              |
 292 : *|                                                                     |
 293 : *| SUPTAB.EVOLG = 1) En cas de calcul du taux de restitution d'énergie |
 294 : *|                   G ou de l'intégrale C* habituelle d'un probleme   |
 295 : *|                   plan, SUPTAB.EVOLG est un objet de type EVOLUTION |
 296 : *|                   donnant la valeur de G ou C* en fonction du temps |
 297 : *|                   en elasto ou visco-plasticite. Pour un front de   |
 298 : *|                   fissure tridimensionnel EVOLG est une table       |
 299 : *|                   indicee par les points donnant les evolutions de  |
 300 : *|                   G ou C* pour chaque point en fonction du temps.   |
 301 : *|                   Exemple : En 2D, on peut tracer l'evolution de    |
 302 : *|                   G ou C* par : DESS (SUPTAB.'EVOLG');              |
 303 : *|                   En 3D, on peut tracer l'evolution de G ou C*      |
 304 : *|                   au point P1 en fonction du temps par :            |
 305 : *|                   DESS (SUPTAB.'EVOLG'.P1);                         |
 306 : *|                2) En cas de decouplage des modes mixtes (separation |
 307 : *|                   des facteurs K1, K2 et K3), SUPTAB.EVOLG est, en  |
 308 : *|                   2D, une table indicee par les mots 'I' et 'II'    |
 309 : *|                   representant deux evolutions de la valeur de      |
 310 : *|                   Gi (i = 1, 2) en fonction du temps. En 3D         |
 311 : *|                   SUPTAB.EVOLG est indicee par deux parametres      |
 312 : *|                   dont le premier est le mot 'I', 'II' ou 'III'     |
 313 : *|                   representant des valeurs Gi associées a K1, K2 ou |
 314 : *|                   K3, la deuxieme indice est le point representant  |
 315 : *|                   les noeuds sur le front de la fissure.            |
 316 : *|                   Exemple : En 2D, on peut tracer l'evolution de    |
 317 : *|                   mode MI (MI est un objet de type mot valant 'I',  |
 318 : *|                   'II') par : DESS (SUPTAB.'EVOLG'.MI);             |
 319 : *|                   En 3D, on peut tracer l'evolution de mode MI      |
 320 : *|                   (MI est un objet de type mot valant 'I', 'II',    |
 321 : *|                   ou 'III') au point P1 en fonction du temps par :  |
 322 : *|                   DESS (SUPTAB.'EVOLG'.MI.P1);                      |
 323 : *|                                                                     |
 324 : *|                                                                     |
 325 : *| SUPTAB.'CRITERE_DECHARGE' = En cas de calcul élasto-plastique       |
 326 : *|         isotrope ou cinématique, éventuellement thermique, on       |
 327 : *|         calcul un critère de décharge des contraintes défini par    |
 328 : *|         ( si, F = courbe de traction ): crit = F(EPSeq)/ SIGeq.     |
 329 : *|         crit = 1. si non-décharge et crit > 1. si décharge.         |
 330 : *|         SUPTAB.'CRITERE_DECHARGE' est une table indicée par les     |
 331 : *|         temps de calcul.                                            |
 332 : *|                                                                     |
 333 : *|  En cas de calcul elasto-dynamique  :                               |
 334 : *|  -----------------------------------                                |
 335 : *|                                                                     |
 336 : *|    SUPTAB.'G' =  Table contenant les valeurs de G indicée par les   |
 337 : *|                  instants de calculs.                               |
 338 : *|=====================================================================|
 339 : *
 340 : 'SAUT' 1 'LIGNE'; &DIME ='VALE' 'DIME'; &MODE ='VALE' 'MODE';
 341 : &ELEM = 'VALEUR' 'ELEM'; MOTAX = 'MOT' AXIS ; VALPI = 3.14159261626;
 342 : ****
 343 : * stockage de la configuration initiale
 344 :   CONFIG0 = FORM;
 345 : *
 346 : 'SI' ('EXISTE' SUPTAB 'REPRIS');
 347 :    IREPRI = SUPTAB.'REPRIS';
 348 : 'SINON';
 349 :    IREPRI = FAUX;
 350 : 'FINSI';
 351 : ****
 352 : IPAP = ('EGA' ('TYPE' SUPTAB.'CONTRAINTE') 'TABLE   ') 'ET'
 353 :        ('EGA' ('TYPE' SUPTAB.'DEPLACEMENT') 'TABLE   ');
 354 : ****
 355 : IFLUA = ('EXIS' SUPTAB 'LOI') 'OU'
 356 :         ('EXIS' SUPTAB 'DEPL_INI') 'OU'
 357 :         ('EXIS' SUPTAB 'CONT_INI') 'OU'
 358 :         ('EXIS' SUPTAB 'DEFI_INI') 'OU'
 359 :         ('EXIS' SUPTAB 'DEFINELA');
 360 : ****
 361 : OBJMOD = TABMOD.1; NBOBJ = 'DIME' ('INDE' TABMOD); I = 1;
 362 : 'SI' ('>' NBOBJ 1) ;
 363 :   'REPETER' NBJ1 (NBOBJ - 1);
 364 :      I = I + 1; OBJMOD = OBJMOD 'ET' TABMOD.I;
 365 :   'FIN' NBJ1;
 366 : 'FINSI' ;
 367 : MAPART = 'EXTR' OBJMOD 'MAIL';
 368 : ****
 369 : NBNO1 = 'NBNO' ('ELEM' (CHAN 'LIGNE' MAPART) 1);
 370 : ILIN = 'EGA' NBNO1 2; IQUA = 'EGA' NBNO1 3;
 371 : ICOQU = (&DIME 'EGA' 3) 'ET' ILIN 'ET' (('EGA' &ELEM 'SEG2')
 372 :         'OU' ('EGA' &ELEM 'TRI3') 'OU' ('EGA' &ELEM 'QUA4'));
 373 : ****
 374 : 'SI' ((&DIME 'EGA' 3) 'ET' ('>' NBOBJ 1));
 375 :   'MESS' 'ERREUR : ON NE PEUT PAS ENCORE TRAITER LES PROBLEMES';
 376 :   'MESS' 'DE MULTI-MODELES DE MATERIAUX COMPOSITES EN 3D';
 377 :   'QUITTER' G_THETA;
 378 : 'FINSI';
 379 : **************************************************
 380 : ********* TEST DE COMPABILITE DES DONNEES ********
 381 : **************************************************
 382 : 'SI' ('<' ('NBNO' ('EXTR' MATERI 'MAIL')) ('NBNO' MAPART));
 383 :   'MESS' 'ERREUR : LE SUPPORT GEOMETRIQUE DE MATERIAU EST';
 384 :   'MESS' 'PLUS PETIT QUE CELUI DE L ENSEMBLE DE MODELES';
 385 :   'QUITTER' G_THETA;
 386 : 'FINSI';
 387 : 'SI' ('<' ('NBEL' ('EXTR' MATERI 'MAIL')) ('NBEL' MAPART));
 388 :   'MESS' 'ERREUR : LE SUPPORT GEOMETRIQUE DE MATERIAU EST';
 389 :   'MESS' 'PLUS PETIT QUE CELUI DE L ENSEMBLE DE MODELES';
 390 :   'QUITTER' G_THETA;
 391 : 'FINSI';
 392 : ****
 393 : 'SI' ('EXIST' SUPTAB 'MODMIXTE');
 394 :    IMIXT = SUPTAB.'MODMIXTE';
 395 : 'SINON';
 396 :    IMIXT = FAUX;
 397 : 'FINSI';
 398 : 'SI' IMIXT;
 399 :    'SI' ICOQU;
 400 :      'MESS' 'ERREUR : ON NE PEUT PAS ENCORE DECOUPER';
 401 :      'MESS' 'LES MODES POUR LES ELEMENTS DE COQUE MINCE';
 402 :      'QUITTER' G_THETA;
 403 :    'FINSI';
 404 :    'SI' ('NON' ('EXIST' SUPTAB 'LEVRESUP'));
 405 :      'ERREUR' 'ON VEUT LA LEVRE SUPERIEURE DE LA FISSURE';
 406 :      'QUITTER' G_THETA;
 407 :    'FINSI';
 408 :    'SI' ('NON' ('EXIST' SUPTAB 'LEVREINF'));
 409 :      'ERREUR' 'ON VEUT LA LEVRE INFERIEURE DE LA FISSURE';
 410 :      'QUITTER' G_THETA;
 411 :    'FINSI';
 412 :    'SI' ('NON' ('EXIST' SUPTAB 'FONDFISS'));
 413 :      'ERREUR' 'ON VEUT LE FOND DE LA FISSURE';
 414 :      'QUITTER' G_THETA;
 415 :    'FINSI';
 416 :     NB1 = 'NBNO' MAPART;
 417 :     NB2 = 'NBNO' (MAPART 'ET' SUPTAB.'LEVRESUP');
 418 :     NB3 = 'NBNO' (MAPART 'ET' SUPTAB.'LEVREINF');
 419 :    'SI' (('NEG' NB1 NB2) 'OU' ('NEG' NB1 NB3));
 420 :      'MESS' 'ERREUR : LES LEVRES DE LA FISSURE N EST PAS';
 421 :      'MESS' 'COHERENTES AVEC LE MAILLAGE DES OBJETS MODELES';
 422 :      'QUITTER' G_THETA;
 423 :    'FINSI';
 424 : 'FINSI';
 425 : ***
 426 : 'SI' ('NON' ('EXISTE' SUPTAB 'CONTRAINTE'));
 427 :    'ERREUR' 'IL FAUT DONNER LE CHAMP DE CONTRAINTE';
 428 :    'QUITTER' G_THETA;
 429 : 'FINSI';
 430 : 'SI' ('NON' ('EXISTE' SUPTAB 'DEPLACEMENT'));
 431 :    'ERREUR' 'IL FAUT DONNER LE CHAMP DE DEPLACEMENT';
 432 :    'QUITTER' G_THETA;
 433 : 'FINSI';
 434 : 'SI' (IPAP 'ET' ('NON' IMIXT));
 435 :   'SI' ('NON' ('EXISTE' SUPTAB 'VARINTERNE'));
 436 :     'MESS' '   ATTENTION : EN ABSENCE DES VARIABLES INTERNES';
 437 :     'MESS' '   LE PROBLEME EST CONSIDERE COMME LINEAIRE.';
 438 :   'FINSI';
 439 : 'FINSI';
 440 : 'SI' ('NON' ('EXISTE' SUPTAB 'CHTHETA'));
 441 :    'ERREUR' 'IL FAUT DONNER LE CHAMP THETA';
 442 :    'QUITTER' G_THETA;
 443 : 'FINSI';
 444 : ***
 445 : 'SI' ('EXISTE' SUPTAB 'PARALLELE');
 446 :   'SI' (NBOBJ 'EGA' 1);
 447 :     'ERRE' 'IL FAUT UNE TABLE STOCKANT TOUS LES OBJETS MODELES';
 448 :     'QUITTER' G_THETA;
 449 :   'FINSI';
 450 :    IPARAL = SUPTAB.'PARALLELE';
 451 : 'SINON';
 452 :    IPARAL = FAUX;
 453 : 'FINSI';
 454 : ***
 455 : IDANS = FAUX; MODINF = 0; MODSUP = 0;
 456 : 'SI' (IPARAL 'ET' IMIXT);
 457 :   'REPETER' NBJ1 (NBOBJ - 1);
 458 :      EL_1 = 'EXTR' TABMOD.&NBJ1 'MAIL';
 459 :      EL_2 = 'EXTR' TABMOD.(&NBJ1 + 1) 'MAIL';
 460 :      NB1 = 'NBNO' (EL_1 'ET' SUPTAB.'LEVRESUP');
 461 :      NB2 = 'NBNO' (EL_2 'ET' SUPTAB.'LEVREINF');
 462 :     'SI' (('EGA' ('NBNO' EL_1) NB1) 'ET' ('EGA' ('NBNO' EL_2) NB2));
 463 :        MODSUP = TABMOD.&NBJ1; MODINF = TABMOD.(&NBJ1 + 1);
 464 :        LCOM1 = ('CONT' EL_1) 'ELEM' 'APPU' 'STRI' ('CONT' EL_2);
 465 :        IDANS = VRAI; 'QUITTER' NBJ1;
 466 :     'FINSI';
 467 :      NB1 = 'NBNO' (EL_1 'ET' SUPTAB.'LEVREINF');
 468 :      NB2 = 'NBNO' (EL_2 'ET' SUPTAB.'LEVRESUP');
 469 :     'SI' (('EGA' ('NBNO' EL_1) NB1) 'ET' ('EGA' ('NBNO' EL_2) NB2));
 470 :        MODINF = TABMOD.&NBJ1; MODSUP = TABMOD.(&NBJ1 + 1);
 471 :        LCOM1 = ('CONT' EL_1) 'ELEM' 'APPU' 'STRI' ('CONT' EL_2);
 472 :        IDANS = VRAI; 'QUITTER' NBJ1;
 473 :     'FINSI';
 474 :   'FIN' NBJ1;
 475 : 'FINSI';
 476 : ***
 477 : 'SI' ('EXISTE' SUPTAB 'GRANDS_DEPLACEMENTS');
 478 :    IGDEPL = VRAI;
 479 :   'SI' ('EXISTE' SUPTAB 'TABLE_CH_THETA');
 480 :      TAB1 = TABLE;
 481 :      TAB1 = SUPTAB.'TABLE_CH_THETA';
 482 :   'SINON';
 483 :     'MESS' ' IL FAUT DONNER LA TABLE UTILISEE POUR LE CALCUL
 484 :              DE CH_THETA ';
 485 :     'QUITTER'  G_THETA;
 486 :  'FINSI';
 487 : 'SINON';
 488 :   IGDEPL = FAUX;
 489 : 'FINSI';
 490 : ***
 491 : ITHER = ('EXIST' SUPTAB 'TEMPERATURE') 'OU'
 492 :         ('EXIST' SUPTAB 'TREFERENCE');
 493 : TESTHER = FAUX ; PASA = FAUX ;
 494 : *Adaptation eventuelle des donnees issue de PASAPAS
 495 : SUPTABB = TABLE ;
 496 : 'SI' IPAP ;
 497 :  'SI' ('NON' ('EXISTE' SUPTAB 'VITESSE'));
 498 : *Controle de l'indiçage des tables
 499 :   CONTROP = 'INDEX' (SUPTAB.'CONTRAINTE') ;
 500 :   VALCONT = CONTROP.1 ;
 501 :   'SI' ('EGA' ('TYPE' VALCONT) 'FLOTTANT') ;
 502 :     PASA = FAUX ;
 503 :   'SINON' ;
 504 :     'SI' ('EGA' ('TYPE' VALCONT) 'ENTIER  ') ;
 505 :       PASA = VRAI ;
 506 :     'SINON' ;
 507 :       'ERREUR' 'INDICE DE TABLE INCOMPATIBLE' ;
 508 :     'FINSI' ;
 509 :   'FINSI' ;
 510 :   'SI' PASA ;
 511 : *lecture du chargement
 512 :     'SI' ('EXISTE' SUPTAB 'CHARGEMENT') ;
 513 :       CHAR1 = SUPTAB.'CHARGEMENT' ;
 514 :       TESTHER = 'EXIS' CHAR1 'T   ' ;
 515 :     'SINON' ;
 516 :       'ERREUR' 'ON VEUT LE CHARGEMENT' ;
 517 :     'FINSI' ;
 518 : *lecture des variable de temps
 519 :     'SI' ('EXISTE' SUPTAB 'TEMPS') ;
 520 :        N = (DIME (SUPTAB.'TEMPS')) - 1 ;
 521 :     'SINON' ;
 522 :       'ERREUR' 'ON VEUT LA TABLE DES TEMPS SAUVES' ;
 523 :     'FINSI' ;
 524 :     TSIG = TABLE ;TDEPL = TABLE ;TVARI = TABLE ;TDEFI = TABLE ;I = 0 ;
 525 :     SUPTEM = SUPTAB.'TEMPS' ;
 526 :     SUPCON = SUPTAB.'CONTRAINTE' ;
 527 :     SUPDEP = SUPTAB.'DEPLACEMENT' ;
 528 :     'SI' ('EXISTE' SUPTAB 'VARINTERNE') ;
 529 :       'SI' ('EGA' ('TYPE' SUPTAB.'VARINTERNE') 'TABLE   ') ;
 530 :         SUPVAR = SUPTAB.'VARINTERNE' ;
 531 :       'FINSI' ;
 532 :     'FINSI' ;
 533 :     'SI' IFLUA ; SUPDFI = SUPTAB.'DEFINELA' ; 'FINSI' ;
 534 :     'REPETER' BINST N ;
 535 :       I = I + 1 ;
 536 :       TI = SUPTEM.I; TSIG.TI = SUPCON.I; TDEPL.TI = SUPDEP.I;
 537 :     'SI' ('EXISTE' SUPTAB 'VARINTERNE') ;
 538 :       'SI' ('EGA' ('TYPE' SUPTAB.'VARINTERNE') 'TABLE   ') ;
 539 :         TVARI.TI = SUPVAR.I ;
 540 :       'FINSI' ;
 541 :       'FINSI' ;
 542 :       'SI' IFLUA; TDEFI.TI = SUPDFI.I ; 'FINSI' ;
 543 :     'FIN' BINST ;
 544 :     SUPTABB.'DEPLACEMENT' = TDEPL ;
 545 :     SUPTABB.'CONTRAINTE' = TSIG ;
 546 :     'SI' ('EXISTE' SUPTAB 'VARINTERNE') ;
 547 :       'SI' ('EGA' ('TYPE' SUPTAB.'VARINTERNE') 'TABLE   ') ;
 548 :         SUPTABB.'VARINTERNE' = TVARI ;
 549 :       'FINSI' ;
 550 :     'FINSI' ;
 551 :     'SI' IFLUA; SUPTABB.'DEFINELA' = TDEFI ; 'FINSI' ;
 552 :    'FINSI';
 553 :   'SINON' ;
 554 :     SUPTABB.'DEPLACEMENT' = SUPTAB.'DEPLACEMENT' ;
 555 :     SUPTABB.'CONTRAINTE' = SUPTAB.'CONTRAINTE' ;
 556 :     'SI' ('EXISTE' SUPTAB 'VARINTERNE') ;
 557 :       'SI' ('EGA' ('TYPE' SUPTAB.'VARINTERNE') 'TABLE   ') ;
 558 :         SUPTABB.'VARINTERNE' = SUPTAB.'VARINTERNE' ;
 559 :       'FINSI' ;
 560 :     'FINSI' ;
 561 :   'FINSI';
 562 : 'SINON' ;
 563 :   SUPTABB.'DEPLACEMENT' = SUPTAB.'DEPLACEMENT' ;
 564 :   SUPTABB.'CONTRAINTE' = SUPTAB.'CONTRAINTE' ;
 565 :  'SI' ('EXISTE' SUPTAB 'VARINTERNE') ;
 566 :    'SI' ('EGA' ('TYPE' SUPTAB.'VARINTERNE') 'TABLE   ') ;
 567 :       SUPTABB.'VARINTERNE' = SUPTAB.'VARINTERNE' ;
 568 :    'FINSI' ;
 569 :  'FINSI' ;
 570 : 'FINSI' ;
 571 : *
 572 : 'SI' ITHER;
 573 :   'SI' ('NON' ('EXIST' SUPTAB 'TEMPERATURE')) ;
 574 :     'SI' ('NON' PASA) ;
 575 :       'ERREUR' 'ON VEUT LA CARTE DE TEMPERATURE';
 576 :       'QUITTER' G_THETA;
 577 :     'FINSI' ;
 578 :   'FINSI' ;
 579 :   'SI' ('NON' ('EXIST' SUPTAB 'TREFERENCE')) ;
 580 :     'ERREUR' 'ON VEUT LA TEMPERATURE DE REFERENCE';
 581 :     'QUITTER' G_THETA;
 582 :   'FINSI';
 583 :   'SI' ('EXISTE' SUPTAB 'TALPHAREFE');
 584 :      TALPH1 = SUPTAB.'TALPHAREFE';
 585 :   'SINON';
 586 :      TALPH1 = 0.;
 587 :   'FINSI';
 588 : 'SINON' ;
 589 :   'SI' TESTHER ;
 590 :     'ERREUR' 'EXISTENCE DE TEMPERATURES: TEMPERATURE DE REFERENCE ?';
 591 :     'QUITTER' G_THETA;
 592 :   'FINSI' ;
 593 : 'FINSI';
 594 : *
 595 : *** MODPLA : table indicée par entier pour stocker les modèles
 596 : ***          mécaniques de chaque objet MMODEL. Elle est vide
 597 : ***          si le modèle est élastique ou élastoplastique
 598 : ***          avec une courbe de traction independante de la
 599 : ***          température. Dans le cas contraire la table vaut
 600 : ***          1 si le modèle est plastique isotrope. Alors une
 601 : ***            nouvelle courbe de traction EPSE-SIGMA est faite.
 602 : ***          2 si le modèle est plastique cinématique
 603 : ***          3 si le modèle est plastique parfaite
 604 : YOUVARI = FAUX; NUVARI = FAUX; ALFVARI = FAUX; MODPLA = TABLE;
 605 : TABTRA = TABLE;
 606 : 'REPETER' BCMOD1 NBOBJ;
 607 :    MODI = TABMOD.&BCMOD1;
 608 :    MATI = 'REDU' MATERI MODI;
 609 :    YO1 = 'EXCO' MATI 'YOUN';
 610 :    TYPYO = 'TYPE' ('EXTR' YO1 'YOUN' 1 1 1);
 611 :   'SI' ('EGA' TYPYO 'EVOLUTIO');
 612 :      YOUVARI = VRAI;
 613 :   'SINON';
 614 :      TEST1 = (('MAXI' YO1) - ('MINI' YO1))/('MINI' YO1);
 615 :     'SI' ((TEST1 '>' 1.E-10) 'ET' ('NON' IPARAL));
 616 :        YOUVARI = VRAI;
 617 :     'FINSI';
 618 :   'FINSI';
 619 : *
 620 :    NU1 = 'EXCO' MATI 'NU';
 621 :    TYPNU = 'TYPE' ('EXTR' NU1 'NU' 1 1 1);
 622 :   'SI' ('EGA' TYPNU 'EVOLUTIO');
 623 :      NUVARI = VRAI;
 624 :   'SINON';
 625 :      TEST1 = (('MAXI' NU1) - ('MINI' NU1))/('MINI' NU1);
 626 :     'SI' ((TEST1 '>' 1.E-10) 'ET' ('NON' IPARAL));
 627 :        NUVARI = VRAI;
 628 :     'FINSI';
 629 :   'FINSI';
 630 : *
 631 :   'SI' ITHER;
 632 :      AL1 = 'EXCO' MATI 'ALPH';
 633 :      TYPAL = 'TYPE' ('EXTR' AL1 'ALPH' 1 1 1);
 634 :     'SI' ('EGA' TYPAL 'EVOLUTIO');
 635 :        ALFVARI = VRAI;
 636 :     'SINON';
 637 :        TEST1 = (('MAXI' AL1) - ('MINI' AL1))/('MINI' AL1);
 638 :       'SI' ((TEST1 '>' 1.E-10) 'ET' ('NON' IPARAL));
 639 :          ALFVARI = VRAI;
 640 :       'FINSI';
 641 :     'FINSI';
 642 :   'FINSI';
 643 : *
 644 :   'SI' ('EXIST' MATI 'TRAC');
 645 :      TR1 = 'EXCO' MATI 'TRAC';
 646 :      TYPTR = 'TYPE' ('EXTR' TR1 'TRAC' 1 1 1);
 647 :     'SI' ('EGA' TYPTR 'NUAGE   ');
 648 :        MODPLA.&BCMOD1 = 1;
 649 :        TRA1 = 'EXTR' TR1 'TRAC' 1 1 1; COM1 = 'EXTR' TRA1 'COMP';
 650 :        NOMEVO1 = 'MOT' 'TRAC'; NOMFLO1 = 'MOT' 'T';
 651 :       'REPETER' BNUA1 ('DIME' TRA1 'UPLE');
 652 :         'SI' ('EGA' &BNUA1 1);
 653 :            NUA1 = 'EXTR' TRA1 'MINI' NOMFLO1;
 654 :         'SINON';
 655 :            NUA1 = 'EXTR' TRA1 'SUPE' NOMFLO1 (T1 + 1.E-10);
 656 :         'FINSI';
 657 :          T1 =  'EXTR' NUA1 NOMFLO1;
 658 :          EV1 = 'EXTR' NUA1 NOMEVO1;
 659 :          PSIG1 = 'EXTR' EV1 'ORDO'; PEPS1 = 'EXTR' EV1 'ABSC';
 660 :          VYOU1 = ('EXTR' 2 PSIG1) / ('EXTR' 2 PEPS1);
 661 :          PEPS2 = PROG;
 662 :         'REPETER' BSIG1 (('DIME' PSIG1) - 1);
 663 :            VA1 = ('EXTR' (&BSIG1 + 1) PEPS1) -
 664 :                 (('EXTR' (&BSIG1 + 1) PSIG1) / VYOU1);
 665 :            PEPS2 = PEPS2 'ET' ('PROG' VA1);
 666 :         'FIN' BSIG1;
 667 :          EV1 = 'EVOL' 'MANU' 'EPSE' PEPS2 'SIGM' ('ENLE' PSIG1 1);
 668 :         'SI' (&BNUA1 'EGA' 1);
 669 :            TRA2 = 'NUAG' 'COMP' NOMFLO1 T1 'COMP' NOMEVO1 EV1;
 670 :         'SINON';
 671 :            TRA2 = TRA2 'ET' ('NUAG' 'COMP' NOMFLO1
 672 :                             T1 'COMP' NOMEVO1 EV1);
 673 :         'FINSI';
 674 :       'FIN' BNUA1;
 675 :        TABTRA.&BCMOD1 = TRA2;
 676 : *** On enlève la courbe de traction si elle depend de
 677 : *** la temperature (operation trop couteuse pour VARI)
 678 :        MAT0 = MATI; LCOMP1 = 'EXTR' MAT0 'COMP';
 679 :       'REPETER' BCOM1 ('DIME' LCOMP1);
 680 :          C1 = 'EXTR' LCOMP1 &BCOM1;
 681 :         'SI' ('NEG' C1 'TRAC');
 682 :           'SI' ('EGA' &BCOM1 1);
 683 :              MATI = 'MATE' MODI C1 ('EXCO' C1 MAT0);
 684 :           'SINON';
 685 :              MATI = MATI 'ET' ('MATE' MODI C1 ('EXCO' C1 MAT0));
 686 :           'FINSI';
 687 :         'FINSI';
 688 :       'FIN' BCOM1;
 689 :     'FINSI';
 690 :   'SINON';
 691 :     'SI' ('EXIST' MATI 'SIGY');
 692 :        SI1 = 'EXCO' MATI 'SIGY';
 693 :        TYPSI = 'TYPE' ('EXTR' SI1 'SIGY' 1 1 1);
 694 :       'SI' ('EXIST' MATI 'H');
 695 :          H1 = 'EXCO' MATI 'H';
 696 :          TYPH = 'TYPE' ('EXTR' H1 'H' 1 1 1);
 697 :         'SI' (('EGA' TYPH 'EVOLUTIO') 'OU'
 698 :               ('EGA' TYPSI 'EVOLUTIO'));
 699 :            MODPLA.&BCMOD1 = 2;
 700 :         'FINSI';
 701 :       'SINON';
 702 :         'SI' ('EGA' TYPSI 'EVOLUTIO');
 703 :            MODPLA.&BCMOD1 = 3;
 704 :         'FINSI';
 705 :       'FINSI';
 706 :     'FINSI';
 707 :   'FINSI';
 708 :   'SI' ('EGA' &BCMOD1 1);
 709 :      MATREDU = MATI;
 710 :   'SINON';
 711 :      MATREDU = MATREDU 'ET' MATI;
 712 :   'FINSI';
 713 : 'FIN' BCMOD1;
 714 : MATVARI = YOUVARI 'OU' NUVARI 'OU' ALFVARI
 715 :          'OU' (('DIME' MODPLA) '>' 0);
 716 : ***
 717 : 'SI' (IMIXT 'ET' MATVARI);
 718 :    'MESS' 'ERREUR : ON NE PEUT PAS ENCORE DECOUPER LES';
 719 :    'MESS' 'MODES POUR UN MATERIAU NON CONSTANT PAR MORCEAUX';
 720 :    'QUITTER' G_THETA;
 721 : 'FINSI';
 722 : ***
 723 : IPARTI = 'EXIST' SUPTAB 'AVANCE';
 724 : ***
 725 : IINTER = FAUX;
 726 : 'SI' ('NON' IPARAL);
 727 : 'SI' ('>' NBOBJ 1);
 728 :    IINTER = VRAI;
 729 :   'SI' ('NON' ('EXIST' SUPTAB 'INTERFACE')) ;
 730 :      'ERREUR' 'ON VEUT LA TABLE STOCKANT LES INTERFACES';
 731 :      'QUITTER' G_THETA;
 732 :   'SINON';
 733 :      LINTER = SUPTAB.'INTERFACE' ;
 734 :     'SI' ((('DIME' LINTER) + 1) 'NEG' NBOBJ);
 735 :        'MESS' 'ERREUR : IL CONVIENT DE REMPLIR LES TABLES MODELE';
 736 :        'MESS' 'ET INTERFACE COMME DECRITES DANS LA NOTICE.';
 737 :        'QUITTER' G_THETA;
 738 :     'FINSI';
 739 :     'REPETER' BIN1 ('DIME' LINTER);
 740 :        MI1 = LINTER.&BIN1;
 741 :        MO1 = 'EXTR' (TABMOD.&BIN1) 'MAIL';
 742 :        MO2 = 'EXTR' (TABMOD.(&BIN1 + 1)) 'MAIL';
 743 :        NB1 = 'NBNO' MO1; NB2 = 'NBNO' (MO1 ET MI1);
 744 :        NB3 = 'NBNO' MO2; NB4 = 'NBNO' (MO2 ET MI1);
 745 :        'SI' ('NON' (('EGA' NB1 NB2) 'ET' ('EGA' NB3 NB4)));
 746 :          'MESS' 'ERREUR : L INTERFACE No' &BIN1 'N EST';
 747 :          'MESS' 'PAS COHERENTE AVEC LES OBJETS MODELES.';
 748 :          'QUITTER' G_THETA;
 749 :        'FINSI';
 750 :     'FIN' BIN1;
 751 :   'FINSI';
 752 : 'FINSI';
 753 : 'SI' (('EGA' NBOBJ 1) 'ET' ('EXIST' SUPTAB 'INTERFACE'));
 754 :    'MESS' 'ERREUR : UN SEUL OBJET MODELE NE PERMET';
 755 :    'MESS' 'PAS DE PRENDRE EN COMPTE DES INTERFACES.';
 756 :    'QUITTER' G_THETA;
 757 : 'FINSI';
 758 : 'FINSI';
 759 : ***
 760 : 'SI' IFLUA;
 761 :    'SI' ('NON' ('EXIST' SUPTAB 'LOI'));
 762 :      'ERREUR' 'IL FAUT PRECISER LA LOI DE FLUAGE UTILISEE';
 763 :      'QUITTER' G_THETA;
 764 :    'FINSI';
 765 :    'SI' ('NON' ('EXIST' SUPTAB 'CONT_INI'));
 766 :      'ERREUR' 'ON VEUT LA CONTRAINTE AU DEBUT DU FLUAGE';
 767 :      'QUITTER' G_THETA;
 768 :    'FINSI';
 769 :    'SI' ('NON' ('EXIST' SUPTAB 'DEPL_INI'));
 770 :      'ERREUR' 'ON VEUT LE DEPLACEMENT AU DEBUT DU FLUAGE';
 771 :      'QUITTER' G_THETA;
 772 :    'FINSI';
 773 :    'SI' ('NON' ('EXIST' SUPTAB 'DEFI_INI'));
 774 :      'ERREUR' 'ON VEUT LA DEFORMATION INELASTIQUE AU DEBUT DU FLUAGE';
 775 :      'QUITTER' G_THETA;
 776 :    'FINSI';
 777 :    'SI' ('NON' ('EXIST' SUPTAB 'DEFINELA'));
 778 :      'ERREUR' 'ON VEUT LA TABLE DE DEFORMATIONS INELASTIQUES';
 779 :      'QUITTER' G_THETA;
 780 :    'FINSI';
 781 : 'FINSI';
 782 : ***
 783 : 'SI' (IFLUA 'ET' ITHER);
 784 :    'SI' ('NON' ('EXIST' SUPTAB 'TEMP_INI'));
 785 :      'ERREUR' 'ON VEUT LA TEMPERATURE AU DEBUT DU FLUAGE';
 786 :      'QUITTER' G_THETA;
 787 :    'FINSI';
 788 : 'FINSI';
 789 : ***
 790 : 'SI' ICOQU;
 791 :    'SI' ('NON' ('EXIST' MATREDU 'EPAI'));
 792 :      'MESS' 'ERREUR : DANS LE MATERIAU ON N A PAS TROUVE LA';
 793 :      'MESS' '         COMPOSANTE DONNANT L EPAISSEUR DE LA COQUE';
 794 :      'QUITTER' G_THETA;
 795 :    'SINON';
 796 :       EPAICH = 'CHAN' ('EXCO' MATREDU 'EPAI' 'SCAL')
 797 :                'STRESSES' OBJMOD;
 798 :    'FINSI';
 799 : 'FINSI';
 800 : ***
 801 : IPRES = FAUX;
 802 : 'SI' PASA ;
 803 :   'SI' ('EXIST' SUPTAB 'PRESSION') ;
 804 :     'SI' ('NEG' SUPTAB.'PRESSION' FAUX) ;
 805 :       IPRES = VRAI ;
 806 :     'FINSI' ;
 807 :   'FINSI' ;
 808 : 'SINON' ;
 809 :   'SI' ('EXIST' SUPTAB 'PRESSION') ;
 810 :      PRESSI = SUPTAB.'PRESSION'; IPRES = VRAI ;
 811 :   'FINSI' ;
 812 : 'FINSI' ;
 813 : ***
 814 : ENEDEF = TABLE; ENEVON = TABLE;
 815 : 'SI' ('EXIST' SUPTAB 'ENEDEF');
 816 :    ENEDEF*'TABLE' = SUPTAB.'ENEDEF';
 817 : 'FINSI';
 818 : 'SI' ('EXIST' SUPTAB 'ENEVON');
 819 :    ENEVON*'TABLE' = SUPTAB.'ENEVON';
 820 : 'FINSI';
 821 : ***
 822 : 'SI' IPAP;
 823 : ***Affichage en cas de calcul dynamique****
 824 :  'SI' ('EXIST' SUPTAB 'VITESSE') ;
 825 :             TXMECANI= 'MOT' ' ';
 826 :             TXTERMI = 'MOT' ' ';
 827 :             TXPRESS = 'MOT' ' ';
 828 :   'SINON';
 829 :    TXMECANI= 'MOT' '    Mecanique';
 830 :    TXTERMI = 'MOT' '    Thermique';
 831 :    TXPRESS = 'MOT' '    Volumique';
 832 :   'FINSI';
 833 : 'SINON';
 834 :    TXMECANI= 'MOT' ' Mecanique';
 835 :    TXTERMI = 'MOT' '    Thermique';
 836 :    TXPRESS = 'MOT' '    Volumique';
 837 : 'FINSI';
 838 : **************************************************
 839 : ***  QUELQUES MOTS POUR SIMPLIFIER L'ECRITURE  ***
 840 : **************************************************
 841 : E = 'MOT' 'EXCO'; MOTU = 'MOTS' 'UX' 'UY'; C = 'MOT' 'CHAI';
 842 : MOTF = 'MOTS' 'FX' 'FY'; S = 'MOT' 'SCAL'; MTS1 = 'MOTS' 'SCAL';
 843 : U1 = 'MOT' 'UX'; U2 = 'MOT' 'UY'; U3 = 'MOT' 'UZ';
 844 : F1 = 'MOT' 'FX'; F2 = 'MOT' 'FY'; F3 = 'MOT' 'FZ';
 845 : GR1 = 'MOT' 'UX,X'; GR2 = 'MOT' 'UX,Y'; GR3 = 'MOT' 'UX,Z';
 846 : GR4 = 'MOT' 'UY,X'; GR5 = 'MOT' 'UY,Y'; GR6 = 'MOT' 'UY,Z';
 847 : GR7 = 'MOT' 'UZ,X'; GR8 = 'MOT' 'UZ,Y'; GR9 = 'MOT' 'UZ,Z';
 848 : SM1 = 'MOT' 'SMXX'; SM2 = 'MOT' 'SMYY'; SM3 = 'MOT' 'SMZZ';
 849 : SM4 = 'MOT' 'SMXY'; SM5 = 'MOT' 'SMXZ'; SM6 = 'MOT' 'SMYZ';
 850 : 'SI' ('EGA' MOTAX &MODE) ;
 851 :    MOTU = 'MOTS' 'UR' 'UZ' ; MOTF = 'MOTS' 'FR' 'FZ' ;
 852 :    U1 = 'MOT' 'UR'; U2 = 'MOT' 'UZ'; U3 = 'MOT' 'UT';
 853 :    F1 = 'MOT' 'FR'; F2 = 'MOT' 'FZ';
 854 :    GR1 = 'MOT' 'UR,R'; GR2 = 'MOT' 'UR,Z'; GR3 = 'MOT' 'UR,T';
 855 :    GR4 = 'MOT' 'UZ,R'; GR5 = 'MOT' 'UZ,Z'; GR6 = 'MOT' 'UZ,T';
 856 :    GR7 = 'MOT' 'UT,R'; GR8 = 'MOT' 'UT,Z'; GR9 = 'MOT' 'UT,T';
 857 :    SM1 = 'MOT' 'SMRR'; SM2 = 'MOT' 'SMZZ'; SM3 = 'MOT' 'SMTT';
 858 :    SM4 = 'MOT' 'SMRZ';
 859 : 'FINSI';
 860 : 'SI' (&DIME 'EGA' 3) ;
 861 :    MOTU = 'MOTS' 'UX' 'UY' 'UZ' ; MOTF = 'MOTS' 'FX' 'FY' 'FZ' ;
 862 : 'FINSI';
 863 : ****
 864 : TX4 = 'MOT' 'TAUX DE RESTITUTION D ENERGIE EN ELASTO-DYNAMIQUE';
 865 : 'SI' IFLUA;
 866 : 'SI' ITHER;
 867 : TX1 = 'MOT' 'VALEUR DE L INTEGRALE C* EN VISCO-THERMO-PLASTIQUE';
 868 : 'SINON';
 869 : TX1 = 'MOT' '   VALEUR DE L INTEGRALE C* EN VISCO-PLASTICITE';
 870 : 'FINSI';
 871 : CHA1 = 'CHAI' 'INTEGRALE C* EN FONCTION DU TEMPS';
 872 : MOTTI = 'MOT' 'C*';
 873 : MOTCO = 'MOT' '     Valeur C*';
 874 : 'SINON';
 875 : 'SI' ITHER;
 876 : 'SI' IMIXT;
 877 : TX1 = 'MOT' ' DECOUPLAGE DES MODES MIXTES EN THERMO-PLASTICITE ';
 878 : 'SINON';
 879 : TX1 = 'MOT' 'TAUX DE RESTITUTION D ENERGIE EN THERMO-PLASTICITE';
 880 : 'FINSI';
 881 : 'SINON';
 882 : 'SI' IMIXT;
 883 : TX1 = 'MOT' ' DECOUPLAGE DES MODES MIXTES EN ELASTO-PLASTICITE ';
 884 : 'SINON';
 885 : TX1 = 'MOT' 'TAUX DE RESTITUTION D ENERGIE EN ELASTO-PLASTICITE';
 886 : 'FINSI';
 887 : 'FINSI';
 888 : CHA1 = 'CHAI' 'TAUX DE RESTITUTION G EN FONCTION DU TEMPS';
 889 : MOTTI = 'MOT' 'G';
 890 : 'SI' IMIXT;
 891 :    CHA1='CHAI' 'TAUX DE RESTITUTION Gi EN FONCTION DU TEMPS';
 892 :    MOTTI = 'MOT' 'Gi';
 893 : 'FINSI';
 894 : 'FINSI';
 895 : MOTCO = 'MOT' '     Le Taux G';
 896 : TX2 = 'CHAIN' '     Contribution due au chargement     ';
 897 : TX3 = 'CHAIN' '     °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°     ';
 898 : 'SI' IMIXT;
 899 :   MOTCO = 'MOT' '      Valeurs ';
 900 :   TX2 = 'CHAIN' ' M et J* dus aux chargements F1* et F2* ';
 901 :   TX3 = 'CHAIN' ' °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ';
 902 : 'FINSI';
 903 : *********************************************************
 904 : ************ NOM DES COMPOSANTES DE MATERIAUX ***********
 905 : *********************************************************
 906 : ***
 907 : *** ITYPEF = 99 SI EN ELASTO OU THERMO-ELASTO-PLASTICITE
 908 : *** ITYPEF = 1 VISCO-PLASTICITE. LOI DE FLUAGE NORTON
 909 : *** ITYPEF = 2 VISCO-PLASTICITE. LOI DE FLUAGE BLACKBURN
 910 : *** ITYPEF = 3 VISCO-PLASTICITE. LOI DE FLUAGE RCCMR_316
 911 : *** ITYPEF = 4 VISCO-PLASTICITE. LOI DE FLUAGE RCCMR_304
 912 : *** ITYPEF = 5 VISCO-PLASTICITE. LOI DE FLUAGE LEMAITRE
 913 : *** ITYPEF = 6 VISCO-PLASTICITE. LOI DE FLUAGE POLYNOMIAL
 914 : *** POUR ITYPEF = 1 ET 6 ON A UNE EXPRESSION EXPLICITE
 915 : *** DE L'INTEGRATION DE LA VITESSE DU FLUAGE SUR LE TEMPS
 916 : ***
 917 : ITYPEF = 99;
 918 : 'SI' IFLUA; TEMP0 = 0.;
 919 :   'SI' ('EXIS' SUPTAB 'TEMP0'); TEMP0 = SUPTAB.'TEMP0'; 'FINSI';
 920 :   'SI' ('EGA' SUPTAB.'LOI' 'NORTON'); ITYPEF = 1; 'FINSI';
 921 :   'SI' ('EGA' SUPTAB.'LOI' 'BLACKBURN'); ITYPEF=2; 'FINS';
 922 :   'SI' ('EGA' SUPTAB.'LOI' 'RCCMR_316'); ITYPEF=3; 'FINS';
 923 :   'SI' ('EGA' SUPTAB.'LOI' 'RCCMR_304'); ITYPEF=4; 'FINS';
 924 :   'SI' ('EGA' SUPTAB.'LOI' 'LEMAITRE'); ITYPEF=5; 'FINSI';
 925 :   'SI' ('EGA' SUPTAB.'LOI' 'POLYNOMIAL'); ITYPEF=6;'FINS';
 926 :   'SI' ('EGA' ITYPEF 99);
 927 :     'ERREUR' 'LA LOI DE FLUAGE DONNEE EST INCONNUE';
 928 :     'QUITTER' G_THETA;
 929 :   'FINSI';
 930 : 'FINSI';
 931 : ***************************************************
 932 : ********** DEPLACEMENT, GRADIANT INITIAUX *********
 933 : ***************************************************
 934 : DEP000 ='CHAN' 'CHPO' OBJMOD ('ZERO' OBJMOD 'DEPLACEM');
 935 : GRA000 = 'ZERO' OBJMOD 'GRADIENT';
 936 : ***************************************************
 937 : ***** INDICE DE TEMPERATURE RANGEE DENA LTHER *****
 938 : ***************************************************
 939 : 'SI' ('NON' PASA) ;
 940 :   'SI' (ITHER 'ET' IPAP) ;
 941 :      TEPER*'TABLE'= SUPTAB.'TEMPERATURE';
 942 :      ITET = 'INDE' TEPER ; NBTET = 'DIME' ITET ;
 943 :      IT = 1 ;
 944 :      LTHER = 'PROG' (ITET.IT) ;
 945 :     'REPETER' TEPERATU ;
 946 :        IT = IT + 1 ;
 947 :       'SI' ('EXISTE' ITET IT) ;
 948 :          VALTET = 'PROG' (ITET.IT) ;
 949 :          LTHER = LTHER 'ET' VALTET ;
 950 :       'SINON' ;
 951 :         'QUITTER' TEPERATU ;
 952 :       'FINSI' ;
 953 :     'FIN' TEPERATU ;
 954 :     LTHER = 'ORDONNER' LTHER ;
 955 :   'FINSI' ;
 956 : 'FINSI' ;
 957 : ***************************************************
 958 : ********* TABLES POUR STOCKER LES RESULTATS *******
 959 : ***************************************************
 960 : SUPTAB.'G' = TABLE;
 961 : 
 962 : 'SI' ('NON' ('EXIST' SUPTAB 'CRITERE_DECHARGE')) ;
 963 :     SUPTAB.'CRITERE_DECHARGE' = TABLE ;
 964 : 'FINSI';
 965 : ***************************************************
 966 : *************** SI REPRISE DE CALCUL **************
 967 : ***************************************************
 968 : 'SI' (IREPRI 'ET' IPAP);
 969 :     NBG = 'DIME' ('INDE' (SUPTAB.'G'));
 970 :     NBDEP = NBDEP - NBG ;
 971 :    'SI' (NBDEP '<EG' 0);
 972 :      'MESS' 'CALCULS DEJA EFFECTUES. PAS DE REPRISE';
 973 :      'QUITTER' G_THETA;
 974 :    'FINSI';
 975 :     SIG1 = SUPTAB.'SIG1';
 976 :     PROTEMP = EXTR (SUPTAB.'EVOLG') 'ABSC';
 977 :     PROVALG = EXTR (SUPTAB.'EVOLG') 'ORDO';
 978 :     VAR1 = SUPTAB.'VAR1';
 979 :     VDI1 = SUPTAB.'VDI1';
 980 :     MAT1 = SUPTAB.'MAT1';
 981 :     WELAS = 0.5*('ENER' OBJMOD SIG1 ('ELAS' OBJMOD SIG1 MAT1));
 982 :     IDD1 = 'INDE' ENEDEF;
 983 :     WPLAS = ENEDEF.(IDD1.('DIME' IDD1)) - WELAS;
 984 :    'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER);
 985 :       WVMIS = ENEVON.(IDD1.('DIME' IDD1));
 986 :    'FINSI';
 987 :    'SI' ICOQU;
 988 :       MOTU = MOTU 'ET' ('MOTS' RX RY RZ) ;
 989 :       MOTF = MOTF 'ET' ('MOTS' MX MY MZ) ;
 990 :    'FINSI';
 991 : 'SINON';
 992 :     NBG = 0;PROVALG = PROG; PROTEMP = PROG;
 993 : 'FINSI';
 994 : ***************************************************
 995 : ****************  AFFICHAGE DU TITRE **************
 996 : ***************************************************
 997 : 'SI' IPAP;
 998 : *Affichage du titre dans le cas d'un calcul en dynamique
 999 :    'SI' ('EXIST' SUPTAB 'VITESSE') ;
1000 :     'MESS' '        ' TX4;
1001 :     'MESS' '   Instant ' '     Taux G ';
1002 :     'SINON';
1003 :   'SI' (('EGA' &DIME 2) 'OU' ICOQU);
1004 :     'MESS' '        ' TX1;
1005 :     'MESS';
1006 :     'MESS' '             ' TX2; 'MESS' '             ' TX3;
1007 :     'MESS' '   Instant ' TXMECANI TXTERMI TXPRESS MOTCO;
1008 :   'FINSI';
1009 :   'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
1010 :     'MESS' '           ' TX1;
1011 :     'MESS';
1012 :     'MESS' '                ' TX2; 'MESS' '                ' TX3;
1013 :     'MESS' ' Noeuds ' '   Instant ' TXMECANI TXTERMI TXPRESS MOTCO;
1014 :   'FINSI';
1015 :   'FINSI';
1016 :   'SAUT' 1 'LIGNE';
1017 : 'SINON';
1018 :   'SI' (('EGA' &DIME 2) 'OU' ICOQU);
1019 :     'MESS' '      ' TX2; 'MESS' '      ' TX3;
1020 :     'MESS' ' ' TXMECANI TXTERMI TXPRESS MOTCO;
1021 :   'FINSI';
1022 :   'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
1023 :     'MESS' '          ' TX2; 'MESS' '          ' TX3;
1024 :     'MESS' ' Noeuds  ' TXMECANI TXTERMI TXPRESS MOTCO;
1025 :   'FINSI';
1026 : 'FINSI';
1027 : ********************************************
1028 : *** ZONE OU LE CHAMP THETA N'EST PAS NUL ***
1029 : ********************************************
1030 : 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
1031 :    TETA = SUPTAB.'CHTHETA'; MENL1 = 'MOT' 'CONT';
1032 : 'FINSI';
1033 : 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
1034 :    TETA = SUPTAB.'CHTHETA'.'GLOBAL'; MENL1 = 'MOT' 'ENVE';
1035 : 'FINSI';
1036 : TETA = TETA + DEP000;
1037 : NORM1 = ((E U1 TETA S)**2) + ((E U2 TETA S)**2);
1038 : 'SI' ('EGA' &DIME 3);
1039 :    NORM1 = NORM1 + ((E U3 TETA S)**2);
1040 : 'FINSI';
1041 : NORM1 = 'CHAN' 'CHAM' OBJMOD (NORM1**0.5);
1042 : VA1 = ('MAXI' NORM1) - 1.E-5; VA2 = ('MAXI' NORM1) + 1.E-5;
1043 : ELTETA = NORM1 'ELEM' 'COMPRIS' VA1 VA2;
1044 : 'SI' IDANS;
1045 :    LCOM1 = 'CHAN' (LCOM1 'ELEM' 'APPU' 'STRI' ELTETA) 'POI1';
1046 : 'FINSI';
1047 : *******************************************************
1048 : * CONDITIONS AUX LIMITES POUR LE DECOUPLAGE DES MODES *
1049 : * OU LES CONTRAINTES/DEPLACEMENTS POUR LE CALCUL DE G *
1050 : *******************************************************
1051 : 'SI' IMIXT;
1052 :    PM = SUPTAB.'FONDFISS';
1053 :   'SI' ('EGA' &DIME 2);
1054 :      X1 Y1 = 'COOR' MAPART; X0 Y0 = 'COOR' PM;
1055 :      DIS1 = (((X1 - X0)**2) + ((Y1 - Y0)**2))**0.5;
1056 :   'SINON';
1057 :      X1 Y1 Z1 = 'COOR' MAPART;
1058 :     'SI' ('NON' ICOQU); PM = 'POIN' PM 'INIT'; 'FINSI';
1059 :      X0 Y0 Z0 = 'COOR' PM;
1060 :      DIS1 = (((X1 - X0)**2) + ((Y1 - Y0)**2) + ((Z1 - Z0)**2))**0.5;
1061 :   'FINSI';
1062 :    PLOIN1 = 'POIN' 1 ('POIN' 'MAXI' DIS1);
1063 :   'SI' ('EGA' &DIME 2);
1064 :      X1 Y1 = 'COOR' (MAPART 'DIFF'
1065 :               (SUPTAB.'LEVREINF' 'ET' SUPTAB.'LEVRESUP'));
1066 :      X0 Y0 = 'COOR' PLOIN1;
1067 :      DIS1 = (((X1 - X0)**2) + ((Y1 - Y0)**2))**0.5;
1068 :   'SINON';
1069 :      X1 Y1 Z1 = 'COOR' (MAPART 'DIFF'
1070 :                  (SUPTAB.'LEVREINF' 'ET' SUPTAB.'LEVRESUP'));
1071 :      X0 Y0 Z0 = 'COOR' PLOIN1;
1072 :      DIS1 = (((X1 - X0)**2) + ((Y1 - Y0)**2) + ((Z1 - Z0)**2))**0.5;
1073 :   'FINSI';
1074 :    PLOIN2 = 'POIN' 1 ('POIN' 'MAXI' DIS1);
1075 :    BLOQ1 = ('BLOQ' 'DEPL' 'ROTA' PLOIN2) 'ET' ('BLOQ' U2 PLOIN1);
1076 :   'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
1077 :      BLOQ1 = BLOQ1 'ET' ('BLOQ' UZ MAPART);
1078 :   'FINSI';
1079 : 'FINSI';
1080 : ******************************************
1081 : * FISSURE DANS LE REPERE GLOBAL ET LOCAL *
1082 : ******************************************
1083 : 'SI' (IMIXT 'ET' ('EGA' &DIME 2));
1084 : * Inclinaison de la fissure par rapport à l'axe globale
1085 :    XG0 YG0 = 'COOR' PM;
1086 :    SEG1 = SUPTAB.'LEVRESUP' 'ELEM' 'APPU' 'LARG' PM;
1087 :    SEG1 = 'ORDO' SEG1; P_SUP = 'POIN' SEG1 'INIT';
1088 :   'SI' ('EGA' P_SUP PM);
1089 :      P_SUP = 'POIN' SEG1 'FINA';
1090 :   'FINSI';
1091 :    SEG1 = SUPTAB.'LEVREINF' 'ELEM' 'APPU' 'LARG' PM;
1092 :    SEG1 = 'ORDO' SEG1; P_INF = 'POIN' SEG1 'INIT';
1093 :   'SI' ('EGA' P_INF PM);
1094 :      P_INF = 'POIN' SEG1 'FINA';
1095 :   'FINSI';
1096 :    XP1 = 'COOR' 1 P_SUP; XP2 = 'COOR' 1 P_INF;
1097 :    YP1 = 'COOR' 2 P_SUP; YP2 = 'COOR' 2 P_INF;
1098 :    PHI1 = 'ATG' (YG0 - ((YP1 + YP2)/2.)) (XG0 - ((XP1 + XP2)/2.));
1099 : * Coordonnées dans le repère général et local
1100 :    XG1 YG1 = 'COOR' ELTETA;
1101 :    XL1 = ((XG1 - XG0)*('COS' PHI1)) + ((YG1 - YG0)*('SIN' PHI1));
1102 :    YL1 = ((YG1 - YG0)*('COS' PHI1)) - ((XG1 - XG0)*('SIN' PHI1));
1103 :    TETA1 = 'ATG' YL1 (XL1 + 1.E-30);
1104 :    R1 = (((XL1*XL1) + (YL1*YL1))**0.5) + 1.E-20;
1105 :    EL_1 = ELTETA 'ELEM' 'APPU' 'LARG' P_SUP;
1106 :    EL_2 = ELTETA 'ELEM' 'APPU' 'LARG' P_INF;
1107 :    VA1 = 'XTY' ('MANU' 'CHPO' EL_1 1 'SCAL' 1.)
1108 :                ('REDU' YL1 EL_1) MTS1 MTS1;
1109 :    VA2 = 'XTY' ('MANU' 'CHPO' EL_2 1 'SCAL' 1.)
1110 :                ('REDU' YL1 EL_2) MTS1 MTS1;
1111 :   'SI' (('<' VA1 0.) 'ET' ('>' VA2 0.));
1112 :      PPPP = P_SUP; P_SUP = P_INF; P_INF = PPPP;
1113 :      MMDD = MODSUP; MODSUP = MODINF; MODINF = MMDD;
1114 :   'FINSI';
1115 :   'SI' (('EGA' XP1 XP2 1.E-30) 'ET' ('EGA' YP1 YP2 1.E-30));
1116 :      TETA_S = 'REDU' TETA1 SUPTAB.'LEVRESUP';
1117 :      TETA_F = 'REDU' TETA1 SUPTAB.'LEVREINF';
1118 :      TETA1 = TETA1 - TETA_S - TETA_F;
1119 :     'SI' (('>' VA1 0.) 'ET' ('<' VA2 0.));
1120 :        TETA1 = TETA1 + ((TETA_S*0.) + 180.) + ((TETA_F*0.) - 180.);
1121 :     'SINON';
1122 :        TETA1 = TETA1 + ((TETA_F*0.) + 180.) + ((TETA_S*0.) - 180.);
1123 :     'FINSI';
1124 :   'FINSI';
1125 :    TETAR1 = TETA1*VALPI/180.;
1126 :   'SI' IDANS;
1127 :      EL_1 = ('EXTR' MODSUP 'MAIL') 'ELEM' 'APPU' 'STRI' ELTETA;
1128 :      EL_2 = ('EXTR' MODINF 'MAIL') 'ELEM' 'APPU' 'STRI' ELTETA;
1129 :      PEL_1 = ('CHAN' EL_1 'POI1') 'DIFF' LCOM1;
1130 :      PEL_2 = ('CHAN' EL_2 'POI1') 'DIFF' LCOM1;
1131 :   'FINSI';
1132 : 'FINSI';
1133 : **************************************************
1134 : * SOLUTION DE CONTRAINTE/DEPLACEMENT DU PROBLEME *
1135 : **************************************************
1136 : 'SI' ('NON' IPAP);
1137 :    SIGF = 'REDU' (SUPTABB.'CONTRAINTE') OBJMOD;
1138 :    DEPINT = 'REDU' (SUPTABB.'DEPLACEMENT') MAPART;
1139 :    NBDEP = 1;
1140 : 'SINON';
1141 :    SIG*'TABLE' = (SUPTABB.'CONTRAINTE') ;
1142 :    DEP*'TABLE' = SUPTABB.'DEPLACEMENT' ;
1143 :   'SI' ('EXIST' SUPTAB 'VITESSE') ;
1144 :      VIT*'TABLE' = SUPTAB.'VITESSE' ;
1145 :   'FINSI' ;
1146 :   'SI' IFLUA; DFI*'TABLE' = SUPTABB.'DEFINELA'; 'FINSI';
1147 :   'SI' ('EXIST' SUPTAB 'VARINTERNE');
1148 :      VAR*'TABLE' = SUPTABB.'VARINTERNE';
1149 :   'SINON';
1150 :      VAR = TABLE;
1151 :   'FINSI';
1152 :    IDEP = 'INDE' DEP ; NBDEP = 'DIME' IDEP ;
1153 : 'FINSI';
1154 : ***********************************************
1155 : ***********************************************
1156 : ********* BOUCLE SUR LE PAS DE CALCUL *********
1157 : ***********************************************
1158 : ***********************************************
1159 : TEMPREEL = PROG ;
1160 : IABC = 0 ; 'SI' IMIXT; NBDEP = 1; 'FINSI';
1161 : 'REPETER' BOUCEXT NBDEP ;
1162 :    IABC = IABC + 1 ;
1163 :    S10 = 0.; S20 = 0.; S30 = 0.; S40 = 0.; S50 = 0.;
1164 :    S60 = 0.; S70 = 0.; S80 = 0.; S90 = 0.; S100 = 0.;
1165 :    S110 = 0.; S120 = 0.; S130 = 0.; S140 = 0.;S300 = 0.;
1166 :    S500 = 0.;
1167 : ***************************************************
1168 : ***** DEPLACEMENT,CONTRAINTE A L INSTANT INST *****
1169 : ***************************************************
1170 :   'SI' IPAP;
1171 :      IABC = NBG + IABC ;
1172 :      INST = IDEP.IABC ;
1173 :      PROTEMP = PROTEMP ET (PROG INST) ;
1174 :      SIGF = (SIG.INST) 'REDU' OBJMOD;
1175 : *Calcul du temps reel pour le calcul en dynamique
1176 :  'SI' ('EXIST' SUPTAB 'VITESSE') ;
1177 :      TDYN = SUPTAB.'TDYN';
1178 :      TEMP1 = TDYN.INST ;
1179 :      TEMPREEL = TEMPREEL ET (PROG TEMP1);
1180 :  'FINSI' ;
1181 : ************************************************
1182 :     'SI' ('EXIST' VAR INST);
1183 :        VARF = (VAR.INST) 'REDU' OBJMOD;
1184 :     'SINON';
1185 :        VARF = 'ZERO' OBJMOD 'VARINTER';
1186 :     'FINSI';
1187 :     'SI' IFLUA;
1188 :       'SI' ('EGA' IABC 1) ;
1189 :          DELTAT = IDEP.IABC - TEMP0;
1190 :          DEPINT = (DEP.(IDEP.IABC)) - (SUPTAB.'DEPL_INI');
1191 :          VITDFI = (DFI.(IDEP.IABC)) - (SUPTAB.'DEFI_INI');
1192 :          SIG1 = 'REDU' OBJMOD (SUPTAB.'CONT_INI');
1193 :       'FINSI';
1194 :       'SI' (IABC '>' 1);
1195 :          DELTAT = (IDEP.IABC) - (IDEP.(IABC - 1));
1196 :          DEPINT = (DEP.(IDEP.IABC)) - (DEP.(IDEP.(IABC - 1)));
1197 :          VITDFI = (DFI.(IDEP.IABC)) - (DFI.(IDEP.(IABC - 1)));
1198 :       'FINSI';
1199 :        DEPINT = ('REDU' MAPART DEPINT) / DELTAT;
1200 :        VITDFI = ('REDU' MAPART VITDFI) / DELTAT;
1201 :     'SINON';
1202 :        DEPINT = (DEP.INST) 'REDU' MAPART;
1203 : ******************************************
1204 : *Cas du calcul en dynamique
1205 :  'SI' ('EXIST' SUPTAB 'VITESSE') ;
1206 :        VITF = (VIT.INST) 'REDU' MAPART ;
1207 :      'FINSI' ;
1208 : ******************************************
1209 :     'FINSI';
1210 :   'FINSI';
1211 : ****************************************************
1212 : ******* cas de calculs en grands deplacements ******
1213 : ****************************************************
1214 :   'SI' IGDEPL;
1215 :     'FORM' DEPINT;
1216 :      SUPTAB.'CHTHETA' = CH_THETA TAB1;
1217 :     'FORM' CONFIG0;
1218 :   'FINSI';
1219 : ************************************
1220 : ****** Signe des FIC K1 et K2 ******
1221 : ************************************
1222 : 'SI' (IMIXT 'ET' ('EGA' &DIME 2));
1223 :    DUXG1 = ('EXTR' DEPINT U1 P_SUP) - ('EXTR' DEPINT U1 P_INF);
1224 :    DUYG1 = ('EXTR' DEPINT U2 P_SUP) - ('EXTR' DEPINT U2 P_INF);
1225 :    DUXL1 = (DUXG1*('COS' PHI1)) + (DUYG1*('SIN' PHI1));
1226 :    DUYL1 = (DUYG1*('COS' PHI1)) - (DUXG1*('SIN' PHI1));
1227 :    SUPTAB.'SIGNE_K1' = 'SIGN' DUYL1;
1228 :    SUPTAB.'SIGNE_K2' = 'SIGN' DUXL1;
1229 : 'FINSI';
1230 : ***************************************************
1231 : *********** TEMPERATURE A L INSTANT INST **********
1232 : ***************************************************
1233 :   'SI' ITHER ;
1234 :     'SI' IPAP;
1235 :       'SI' PASA ;
1236 :         TEPINT = 'TIRE' CHAR1 INST 'T' ;
1237 :         TEPINT = 'REDU' TEPINT MAPART ;
1238 :         TEPINT = TEPINT - TALPH1 ;
1239 :       'SINON' ;
1240 :          K = 0 ;
1241 :         'REPETER' BLOC1 NBTET ;
1242 :            K = K + 1 ;
1243 :            NBRE = 'EXTR' LTHER K ;
1244 :           'SI' (NBRE '>EG' INST) ; 'QUITTER' BLOC1 ; 'FINSI' ;
1245 :         'FIN' BLOC1 ;
1246 :          K = K - 1 ;
1247 :         'SI' (> ('ABS' ((NBRE-INST)/INST)) 0.001) ;
1248 :            NBRE1 = 'EXTR' LTHER K ;
1249 :            NBRE2 = 'EXTR' LTHER (K+1) ;
1250 :            D1 = INST - NBRE1 ; D2 = NBRE2 - INST ;
1251 :            TEPINT = ((('REDU' TEPER.NBRE1 MAPART)*D2)+
1252 :                      (('REDU' TEPER.NBRE2 MAPART)*D1))*(1/(D1+D2));
1253 :            TEPINT = TEPINT - ('REDU' (SUPTAB.'TREFERENCE') MAPART);
1254 :         'SINON';
1255 :            TEPINT = ('REDU' TEPER.NBRE MAPART)
1256 :                   - ('REDU' (SUPTAB.'TREFERENCE') MAPART) ;
1257 :         'FINSI';
1258 :       'FINSI' ;
1259 :       'SI' IFLUA;
1260 :          TEP1 = TEPINT;
1261 :         'SI' ('EGA' IABC 1) ;
1262 :            DELTAT = IDEP.IABC - TEMP0;
1263 :            TEPINT = TEPINT - (SUPTAB.'TEMP_INI') +
1264 :                     ('REDU' (SUPTAB.'TREFERENCE') MAPART);
1265 :         'FINSI';
1266 :         'SI' (IABC '>' 1);
1267 :            DELTAT = (IDEP.IABC) - (IDEP.(IABC - 1));
1268 :            TEPINT = TEPINT - TEP2; DETR TEP2;
1269 :         'FINSI';
1270 :          TEPINT = TEPINT / DELTAT ;
1271 :          TEP2 = TEP1; DETR TEP1;
1272 :       'FINSI';
1273 :     'SINON';
1274 :        TEPINT = ('REDU' (SUPTAB.'TEMPERATURE') MAPART)
1275 :               - ('REDU' (SUPTAB.'TREFERENCE') MAPART) ;
1276 :     'FINSI';
1277 :   'FINSI';
1278 : ***************************************************
1279 : ************ MATERIAU A L INSTANT INST ************
1280 : ***************************************************
1281 :   'SI' (MATVARI 'ET' ITHER);
1282 :      TEPABS = TEPINT + TALPH1 ;
1283 :      MAT1 = 'VARI' 'NUAG' OBJMOD MATREDU ('EXCO' 'T' TEPABS 'T');
1284 :   'SINON';
1285 :      MAT1 = MATREDU;
1286 :   'FINSI';
1287 : ****************************************************
1288 : *** SOLUTIONS AUXILAIRES EN DECOUPLAGE DES MODES ***
1289 : ****************************************************
1290 :    NBMIXT = 1; IM = 0;
1291 :   'SI' IMIXT;
1292 :      NBMIXT = 2;
1293 : * Constantes physiques de bi-matériaux
1294 :      CHAM1 = ('EXCO' 'YOUN' MAT1) 'ET' ('EXCO' 'NU  ' MAT1);
1295 :     'SI' ('NON' IDANS);
1296 :        CHPO1 = 'CHAN' 'CHPO' OBJMOD CHAM1;
1297 :        VYO_1 = 'EXTR' CHPO1 'YOUN' PM;
1298 :        VNU_1 = 'EXTR' CHPO1 'NU  ' PM;
1299 :        VYO_2 = VYO_1; VNU_2 = VNU_1;
1300 :     'SINON';
1301 :        CHPO1 = 'CHAN' 'CHPO' MODSUP ('REDU' CHAM1 MODSUP);
1302 :        VYO_1 = 'EXTR' CHPO1 'YOUN' PM;
1303 :        VNU_1 = 'EXTR' CHPO1 'NU  ' PM;
1304 :        CHPO1 = 'CHAN' 'CHPO' MODINF ('REDU' CHAM1 MODINF);
1305 :        VYO_2 = 'EXTR' CHPO1 'YOUN' PM;
1306 :        VNU_2 = 'EXTR' CHPO1 'NU  ' PM;
1307 :     'FINSI';
1308 :      KSI_1 = (3. - (4. * VNU_1));
1309 :      KSI_2 = (3. - (4. * VNU_2));
1310 :     'SI' ('EGA' &MODE 'PLANCONT');
1311 :        KSI_1 = (3. - VNU_1) / (1. + VNU_1);
1312 :        KSI_2 = (3. - VNU_2) / (1. + VNU_2);
1313 :     'FINSI';
1314 :      MU_1 = VYO_1/(2.*(1. + VNU_1));
1315 :      MU_2 = VYO_2/(2.*(1. + VNU_2));
1316 :      VA1 = (KSI_1/MU_1) + (1./MU_2);
1317 :      VA2 = (KSI_2/MU_2) + (1./MU_1);
1318 :      EPS1 = (1./(2.*VALPI))*(LOG (VA1/VA2));
1319 :      COSH1 = VALPI*EPS1;
1320 :      COSH1 = (('EXP' COSH1) + ('EXP' (COSH1*(-1.))))/2.;
1321 :      VA1 = (MU_1 + (KSI_1*MU_2))*(MU_2 + (KSI_2*MU_1));
1322 :      VA2 = MU_1*MU_2*((MU_1*(1. + KSI_2)) + (MU_2*(1. + KSI_1)));
1323 :      C_MATE = (COSH1*COSH1*VA1)/(4.*VA2);
1324 :      SUPTAB.'C_MATE' = C_MATE;
1325 :     'SI' (('EGA' &DIME 2) 'ET' ('NON' IDANS));
1326 :        EPSLG_R = EPS1*('LOG' R1);
1327 :        VA1 = 'COS' (EPSLG_R*180./VALPI);
1328 :        VA2 = 'SIN' (EPSLG_R*180./VALPI);
1329 :        BTA1 = ((0.5*VA1) + (EPS1*VA2))/(0.25 + (EPS1*EPS1));
1330 :        BTAPM1 = ((0.5*VA2) - (EPS1*VA1))/(0.25 + (EPS1*EPS1));
1331 :        DTA_1 = 'EXP' (0. - ((VALPI - TETAR1)*EPS1));
1332 :        DTA_2 = 'EXP' ((VALPI + TETAR1)*EPS1);
1333 :        GAM_1 = (KSI_1*DTA_1) - (DTA_1**(-1.));
1334 :        GAM_2 = (KSI_2*DTA_2) - (DTA_2**(-1.));
1335 :        GAMPM_1 = (KSI_1*DTA_1) + (DTA_1**(-1.));
1336 :        GAMPM_2 = (KSI_2*DTA_2) + (DTA_2**(-1.));
1337 :        GTAR1 = EPSLG_R + (TETAR1*0.5);
1338 :        COS2 = 'COS' (TETA1/2.); SIN2 = 'SIN' (TETA1/2.);
1339 :        D_1 = (BTA1*GAM_1*COS2) + (BTAPM1*GAMPM_1*SIN2);
1340 :        D_2 = (BTA1*GAM_2*COS2) + (BTAPM1*GAMPM_2*SIN2);
1341 :        DPM_1 = (BTAPM1*GAM_1*COS2) - (BTA1*GAMPM_1*SIN2);
1342 :        DPM_2 = (BTAPM1*GAM_2*COS2) - (BTA1*GAMPM_2*SIN2);
1343 :        CVA_1 = ('SIN' TETA1)*('SIN' (GTAR1*180./VALPI));
1344 :        CVA_2 = ('SIN' TETA1)*('COS' (GTAR1*180./VALPI));
1345 :        COE_1 = ((R1/(2.*VALPI))**0.5)/(4.*MU_1);
1346 :        COE_2 = ((R1/(2.*VALPI))**0.5)/(4.*MU_2);
1347 :     'FINSI';
1348 :     'SI' ('EGA' &DIME 3);
1349 :        NBMIXT = 2;
1350 :     'FINSI';
1351 :   'FINSI';
1352 :   'REPETER' BOUCMIXT NBMIXT;
1353 :    IM = IM + 1;
1354 :   'SI' IMIXT;
1355 :     'SI' (('EGA' &DIME 2) 'ET' ('NON' IDANS));
1356 :       'SI' (IM 'EGA' 1);
1357 :          MOTMIX = 'MOT' 'I'; MOJET1 = 'MOT' '    J1* =>   ';
1358 :          UX_1 = COE_1*(D_1 + (2.*DTA_1*CVA_1));
1359 :          UX_2 = COE_2*(D_2 + (2.*DTA_2*CVA_1));
1360 :          UY_1 = (-1.)*COE_1*(DPM_1 + (2.*DTA_1*CVA_2));
1361 :          UY_2 = (-1.)*COE_2*(DPM_2 + (2.*DTA_2*CVA_2));
1362 :       'FINSI';
1363 :       'SI' (IM 'EGA' 2);
1364 :          MOTMIX = 'MOT' 'II'; 'SAUT' 1 LIGNE;
1365 :          MOJET1 = 'MOT' '    J2* =>   ';
1366 :          UX_1 = (-1.)*COE_1*(DPM_1 - (2.*DTA_1*CVA_2));
1367 :          UX_2 = (-1.)*COE_2*(DPM_2 - (2.*DTA_2*CVA_2));
1368 :          UY_1 = (-1.)*COE_1*(D_1 - (2.*DTA_1*CVA_1));
1369 :          UY_2 = (-1.)*COE_2*(D_2 - (2.*DTA_2*CVA_1));
1370 :       'FINSI';
1371 : * Champ déplcement dans le repère local et général
1372 :       'SI' ('NON' IDANS);
1373 :          UL1 = UX_1 * 1.; UL2 = UY_1 * 1.;
1374 :       'SINON';
1375 :          UL1 = ('REDU' UX_1 PEL_1) + ('REDU' UX_2 PEL_2) +
1376 :              ((('REDU' UX_1 LCOM1) + ('REDU' UX_2 LCOM1))/2.);
1377 :          UL2 = ('REDU' UY_1 PEL_1) + ('REDU' UY_2 PEL_2) +
1378 :              ((('REDU' UY_1 LCOM1) + ('REDU' UY_2 LCOM1))/2.);
1379 :       'FINSI';
1380 :        UG1 = (UL1*('COS' PHI1)) - (UL2*('SIN' PHI1));
1381 :        UG2 = (UL1*('SIN' PHI1)) + (UL2*('COS' PHI1));
1382 :        UG1 = 'CHAN' 'ATTRIBUT' UG1 'NATURE' 'DIFFUS';
1383 :        UG2 = 'CHAN' 'ATTRIBUT' UG2 'NATURE' 'DIFFUS';
1384 :        DEPINT = (('NOMC' UG1 U1) 'ET' ('NOMC' UG2 U2)) + DEP000;
1385 :        SIGF = 'SIGM' MAT1 OBJMOD DEPINT;
1386 :        IPRES = VRAI; PRESSI = 'BSIG' SIGF OBJMOD;
1387 :     'SINON';
1388 :        IPRES = VRAI;
1389 :        LSUP = SUPTAB.'LEVRESUP'; LINF = SUPTAB.'LEVREINF';
1390 :       'SI' ('EGA' &DIME 3);
1391 :          IPRES = FAUX;
1392 :          LSUP = LSUP 'DIFF' (LSUP 'ELEM' 'APPU' 'STRI' ELTETA);
1393 :          LINF = LINF 'DIFF' (LINF 'ELEM' 'APPU' 'STRI' ELTETA);
1394 :       'FINSI';
1395 :        F11 = 'PRES' 'MASS' OBJMOD LSUP 1.;
1396 :        F21 = 'PRES' 'MASS' OBJMOD LINF 1.;
1397 :       'SI' (IM 'EGA' 1);
1398 :          MOTMIX = 'MOT' 'I'; MOJET1 = 'MOT' '    J1* =>   ';
1399 :          PRESSI = F11 + F21;
1400 :       'FINSI';
1401 :       'SI' (IM 'EGA' 2);
1402 :          MOTMIX = 'MOT' 'II'; 'SAUT' 1 LIGNE;
1403 :          MOJET1 = 'MOT' '    J2* =>   ';
1404 :          PRESSI = (('EXCO' F1 F11 F2)*(-1.)) + ('EXCO' F2 F11 F1)
1405 :                 + (('EXCO' F1 F21 F2)*(-1.)) + ('EXCO' F2 F21 F1);
1406 :       'FINSI';
1407 :       'SI' (IM 'EGA' 3);
1408 :          MOTMIX = 'MOT' 'III'; 'SAUT' 1 LIGNE;
1409 :          MOJET1 = 'MOT' '    J3* =>   ';
1410 :       'FINSI';
1411 :        DEPINT = 'RESO' (('RIGI' OBJMOD MAT1) 'ET' BLOQ1) PRESSI;
1412 :        SIGF = 'SIGM' MAT1 OBJMOD DEPINT;
1413 :     'FINSI';
1414 :      DEPINT = 'REDU' DEPINT MAPART;
1415 :      SIGF = 'REDU' SIGF OBJMOD;
1416 :      SUPTAB.'G'.MOTMIX = TABLE;
1417 :      ITHER = FAUX;
1418 : ***************************************************
1419 : ************* APPEL A LA PROCEDURE T_PITA *********
1420 : ***************************************************
1421 :      TAB = TABLE;
1422 :      TAB.'DEPLACEMENT' = SUPTABB.'DEPLACEMENT';
1423 :      TAB.'CONTRAINTE'= SUPTABB.'CONTRAINTE';
1424 :      TAB.'CHTHETA' = SUPTAB.'CHTHETA';
1425 :      TAB.'DEPL_AUXI' = DEPINT;
1426 :      TAB.'CONT_AUXI' = SIGF;
1427 :      TAB.'PRES_AUXI' = PRESSI;
1428 :     'SI' ('EXIST' SUPTAB 'PARALELLE');
1429 :        TAB.'PARALELLE' = SUPTAB.'PARALELLE';
1430 :     'FINSI';
1431 :     'SI' ('EXIST' SUPTAB 'PRESSION');
1432 :        TAB.'PRESSION' = SUPTAB.'PRESSION';
1433 :     'FINSI';
1434 :     'SI' IPARTI;
1435 :        TAB.'AVANCE' = SUPTAB.'AVANCE';
1436 :     'FINSI';
1437 :     'SI' (('EXIST' SUPTAB 'TEMPERATURE') 'OU' TESTHER);
1438 :       'SI' TESTHER;
1439 :          TAB.'TEMPERATURE' = SUPTAB.'CHARGEMENT';
1440 :       'SINON';
1441 :          TAB.'TEMPERATURE' = SUPTAB.'TEMPERATURE';
1442 :       'FINSI';
1443 :        TAB.'TREFERENCE' = SUPTAB.'TREFERENCE';
1444 :        TAB.'TALPHAREFE' = TALPH1;
1445 :     'FINSI';
1446 :      T_PITETA TABMOD MATERI TAB;
1447 :     'SI' (TAB.'IERR'); 'QUITTER' G_THETA; 'FINSI';
1448 :      TPI = TAB.'DGDA'; 'OUBL' TAB;
1449 :   'FINSI';
1450 : ***************************************************
1451 : ************ GRADIENT A L INSTANT INST ************
1452 : ***************************************************
1453 :    GRADEP = 'GRAD' OBJMOD MAT1 DEPINT ;
1454 :    GRADEF = 'TEXT' '        ' ;
1455 :   'SI' ICOQU; GRADEF = 'GRAF' OBJMOD DEPINT; 'FINSI';
1456 :   'SI' ITHER;
1457 :      TEPEGR = 'GRAD' OBJMOD MAT1 ((E 'T' TEPINT U1) + DEP000);
1458 :   'FINSI';
1459 : ********************************************************
1460 : * SI LA COURBE DE TRACTION DEPEND DE LA TEMPERATURE ON *
1461 : * CALCULE LA VARIATION DE CONTRAINTE DE VON-MISES LORS *
1462 : * D'UNE AUGMENTATION (DETATE) DE LA TEMPERATURE A INST *
1463 : ********************************************************
1464 :   'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER 'ET'
1465 :          ('NON' ('EXIST' ENEDEF INST)));
1466 :      DETATE = 1.;
1467 :      TEP1 = TEPABS + ('MANU' 'CHPO' MAPART 1 'T' DETATE);
1468 :      EPS1 = 'EXCO' VARF 'EPSE';
1469 :      MSQ1 = 'MASQ' 'SUPERIEUR' EPS1 1.E-20;
1470 :      VMI1 = ('CHAN' ('VMIS' OBJMOD SIGF MAT1)
1471 :                      'TYPE' 'SCALAIRE')*MSQ1;
1472 :      DETAVM = VMI1 * 0.;
1473 :     'REPETER' BCMOD2 NBOBJ;
1474 :        MODI = TABMOD.&BCMOD2;
1475 :        VM1 = 'REDU' VMI1 MODI;
1476 :       'SI' ('EXIS' MODPLA &BCMOD2);
1477 :         'SI' ('EGA' MODPLA.&BCMOD2 1);
1478 :            MA1 = 'VARI' 'NUAG' MODI ('MATE' MODI
1479 :                  'TRAC' TABTRA.&BCMOD2) TEP1;
1480 :            VM2 = 'VARI' 'NUAG' MODI (E 'TRAC' MA1 'SIGM')
1481 :                  ('REDU' EPS1 MODI) 'STRESSES' 'SCALAIRE';
1482 :            VM2 = (E VM2 'SIGM' S) * ('REDU' MSQ1 MODI);
1483 :         'FINSI';
1484 :         'SI' (('EGA' MODPLA.&BCMOD2 2) 'OU'
1485 :               ('EGA' MODPLA.&BCMOD2 3));
1486 :            MA1 = 'VARI' 'NUAG' MODI ('REDU' MATERI MODI) TEP1;
1487 :            EPS2 = 'REDU' EPS1 MODI;
1488 :            VM2 = 'CHAN' 'STRESSES' MODI (E MA1 'SIGY' S);
1489 :           'SI' ('EGA' MODPLA.&BCMOD2 2);
1490 :              HSCAL1 = 'EXCO' MA1 'H' 'SCAL';
1491 :              VM2 = VM2 + (('CHAN' 'STRESSES' MODI HSCAL1)*EPS2);
1492 :           'FINSI';
1493 :            VM2 = VM2 * ('REDU' MSQ1 MODI);
1494 :         'FINSI';
1495 :          DETAVM = DETAVM + ((VM2 - VM1) / DETATE);
1496 :       'FINSI';
1497 :     'FIN' BCMOD2;
1498 :   'FINSI';
1499 : ****************************************************
1500 : ******* EN CAS DE CALCUL EN VISCO_PLASTICITE *******
1501 : ****************************************************
1502 :   'SI' IFLUA;
1503 :     'SI' ('EGA' ITYPEF 1);
1504 :        CHAF1 = 'CHAN' 'STRESSES' OBJMOD (E 'AF1' MAT1 S);
1505 :        CHAF2 = 'CHAN' 'STRESSES' OBJMOD (E 'AF2' MAT1 S);
1506 :        CHAF3 = 'CHAN' 'STRESSES' OBJMOD (E 'AF3' MAT1 S);
1507 :     'FINSI';
1508 :     'SI' ('EGA' ITYPEF 6);
1509 :        CHAF0 = 'CHAN' 'STRESSES' OBJMOD (E 'AF0' MAT1 S);
1510 :        CHAF1 = 'CHAN' 'STRESSES' OBJMOD (E 'AF1' MAT1 S);
1511 :        CHAF2 = 'CHAN' 'STRESSES' OBJMOD (E 'AF2' MAT1 S);
1512 :        CHAF3 = 'CHAN' 'STRESSES' OBJMOD (E 'AF3' MAT1 S);
1513 :     'FINSI';
1514 :   'FINSI';
1515 : 
1516 : *******************************************************
1517 : ****      CRITERE DE DECHARGE DES CONTRAINTES      ****
1518 : *******************************************************
1519 : ***
1520 : *** EVALUATION EN ELASTO-PLASTICITE OU THERMO-ELASTO-PLASTICITE
1521 : *** PAR COMPARAISON AVEC UN CALCUL EN ELASTICITE NON-LINEAIRE
1522 : *** EN PRENANT POUR REFERENCE LES CONTRAINTES DE VON-MISES DU
1523 : *** CALCUL RENDU PAR PASAPAS ET LES CONTRAINTES EQUIVALENTES LUES
1524 : *** SUR LES COURBES DE TRACTION
1525 : ***
1526 :  'SI' ('NON' ('EXIST' (SUPTAB.'CRITERE_DECHARGE') INST)) ;
1527 : 
1528 :  'SI' (('NON' ('EXIST' ENEDEF INST)) 'ET' ('EGA' ITYPEF 99) 'ET' IPAP);
1529 : 
1530 :       EXISCRIT = FAUX ;
1531 :       VMITOT1 = 0. ;
1532 :       VMITOT2 = 0. ;
1533 : 
1534 :        'REPETER' BCMOD0 NBOBJ;
1535 : 
1536 :        MODI = TABMOD.&BCMOD0 ;
1537 :        MATI = 'REDU' MAT1 MODI ;
1538 :        EPSE1 = 'EXCO' VARF 'EPSE' ;
1539 :        EPSET = 'REDU' EPSE1 MODI ;
1540 :        MSQ = 'MASQ' 'SUPERIEUR' EPSET 1.E-6 ;
1541 : 
1542 : ************
1543 :          'SI' ('EXIS' MODPLA &BCMOD0) ;
1544 : *** MODPLA : table indicée par entier pour stocker les modèles
1545 : ***          1 si le modèle est plastique isotrope. Alors une
1546 : ***            nouvelle courbe de traction EPSE-SIGMA est faite.
1547 : ***          2 si le modèle est plastique cinématique
1548 : 
1549 :           EXISCRIT = VRAI ;
1550 :           TEPABS = TEPINT + TALPH1 ;
1551 : 
1552 :           YOU = 'CHAN' 'STRESSES' MODI ('EXCO' MATI 'YOUN') ;
1553 : 
1554 :           'SI' ('EGA' MODPLA.&BCMOD0 1);
1555 : *          *modèle est plastique isotrope. on utilise la courbe de traction TABT
1556 :             MATA = 'VARI' 'NUAG' MODI ('MATE' MODI
1557 :                     'TRAC' TABTRA.&BCMOD0) TEPABS ;
1558 : *           *VMIS1 = contraintes de Von-Mises en elastoplastique
1559 :             VMIS1 = 'CHAN' ('VMIS' MODI SIGF MATA) 'TYPE' 'SCALAIRE';
1560 :             EPELAST = 'EXCO' (VMIS1*(YOU**(-1))) 'SCAL' 'EPSE' ;
1561 :             EPSTOT = EPELAST + EPSET ;
1562 : *          *VMIS2 = contraintes déduites des déformations équivalentes par la co
1563 :             VMIS2 = 'VARI' 'NUAG' MODI (E 'TRAC' MATA 'SIGM')
1564 :                      EPSTOT 'STRESSES' 'SCALAIRE';
1565 :           'FINSI';
1566 : 
1567 :           'SI' ('EGA' MODPLA.&BCMOD0 2) ;
1568 : *         *modèle est plastique cinematique, cas ou SIGY et H sont des évolution
1569 :             VMIS1 = 'CHAN' ('VMIS' MODI SIGF MATI) 'TYPE' 'SCALAIRE';
1570 :             VMIS22 = 'CHAN' 'STRESSES' MODI (E MATI 'SIGY' S) ;
1571 :             HSCAL = 'EXCO' MATI 'H' 'SCAL';
1572 :             VMIS2 = VMIS22 + (('CHAN' 'STRESSES' MODI HSCAL) * EPSET);
1573 :           'FINSI';
1574 : 
1575 :           'SI' (('EGA' MODPLA.&BCMOD0 1) 'OU' ('EGA' MODPLA.&BCMOD0 2));
1576 :              VMIS1P = VMIS1 * MSQ ;
1577 :              VMIS1S = 'INTG' MODI VMIS1P ;
1578 :              VMIS2P = VMIS2 * MSQ ;
1579 :              VMIS2S = 'INTG' MODI VMIS2P ;
1580 :             'SI' ('EGA' &BCMOD0 1) ;
1581 :               VMITOT1 = VMIS1S ;
1582 :               VMITOT2 = VMIS2S ;
1583 :             'SINON' ;
1584 :               VMITOT1 = VMITOT1 + VMIS1S ;
1585 :               VMITOT2 = VMITOT2 + VMIS2S ;
1586 :             'FINSI' ;
1587 :           'FINSI';
1588 : 
1589 :          'SINON';
1590 : *** modèle élastoplastique et modèle plastique cinématique
1591 : ***  avec caractéristiques independantes de la température
1592 : 
1593 :          CRIT = FAUX ;
1594 : 
1595 :         'SI' ('EXIST' MATI 'TRAC') ;
1596 : *       *extraction de la courbe de traction du modele MODI
1597 :           TRACTI = 'EXTR' MATI 'TRAC' 1 1 1 ;
1598 :           PEPSO = 'EXTR' TRACTI 'ABSC' ;
1599 :           PSIGM = 'EXTR' TRACTI 'ORDO' ;
1600 :           TRACTI = 'EVOL' 'MANU' 'EPSE' PEPSO 'SIGM' PSIGM ;
1601 : *       *VMIS1 = contraintes de Von-Mises en elastoplastique
1602 :           VMIS1 = 'CHAN' ('VMIS' MODI ('REDU' SIGF MODI) MATI)
1603 :                   'TYPE' 'SCALAIRE';
1604 :           YOU = 'CHAN' 'STRESSES' MODI ('EXCO' MATI 'YOUN') ;
1605 :           EPELAST = 'EXCO' (VMIS1*(YOU**(-1))) 'SCAL' 'EPSE' ;
1606 :           EPSTOT = EPELAST + EPSET ;
1607 : *       *VMIS2 = contraintes déduites des déformations équivalentes par la courb
1608 :           VMIS2 = 'VARI' MODI EPSTOT TRACTI 'STRESSES' 'SCALAIRE';
1609 :           CRIT = VRAI ;
1610 : 
1611 :         'SINON';
1612 :           'SI' (('EXIST' MATI 'SIGY') 'ET' ('EXIST' MATI 'H')) ;
1613 : *       *modèle est plastique cinematique traité ici séparément du cas ou SIGY e
1614 : *       *c'est inutile car MAT1 est déja instantié en température mais il faudra
1615 : *       *MODPLA dans son ensemble avec ZONE et une identification de automatique
1616 :             VMIS1 = 'CHAN' ('VMIS' MODI SIGF MATI) 'TYPE' 'SCALAIRE';
1617 :             VMIS22 = 'CHAN' 'STRESSES' MODI (E MATI 'SIGY' S) ;
1618 :             HSCAL = 'EXCO' MATI 'H' 'SCAL';
1619 :             VMIS2 = VMIS22 + (('CHAN' 'STRESSES' MODI HSCAL) * EPSET);
1620 :             CRIT = VRAI ;
1621 :           'FINSI';
1622 : 
1623 :         'FINSI';
1624 : 
1625 :         'SI' CRIT ;
1626 :            EXISCRIT = VRAI ;
1627 : 
1628 :            VMIS1P = VMIS1* MSQ ;
1629 :            VMIS1S = 'INTG' MODI VMIS1P ;
1630 :            VMIS2P = VMIS2 * MSQ ;
1631 :            VMIS2S = 'INTG' MODI VMIS2P ;
1632 : 
1633 :            VMITOT1 = VMITOT1 + VMIS1S ;
1634 :            VMITOT2 = VMITOT2 + VMIS2S ;
1635 : 
1636 :         'FINSI' ;
1637 : 
1638 : 
1639 :          'FINSI';
1640 :        'FIN' BCMOD0;
1641 : 
1642 :     'SI' EXISCRIT;
1643 :      'SI' ('EGA' VMITOT1 0.) ;
1644 :         MESS 'Pas de déformations plastiques supérieures à 1.E-6' ;
1645 :          SUPTAB.'CRITERE_DECHARGE'.INST = 1.0000 ;
1646 :      'SINON' ;
1647 : *       MESS 'VMITOT1 = ' VMITOT1 ;
1648 : *       MESS 'VMITOT2 = ' VMITOT2 ;
1649 :        MESS 'Critère de décharge :' (VMITOT2/VMITOT1) ;
1650 :          SUPTAB.'CRITERE_DECHARGE'.INST = (VMITOT2/VMITOT1) ;
1651 :      'FINSI';
1652 :     'FINSI';
1653 : 
1654 :  'FINSI';
1655 :  'FINSI';
1656 : 
1657 : *******************************************************
1658 : **** ENERGIE DE DEFORMATION ELASTIQUE ET PLASTIQUE ****
1659 : *******************************************************
1660 : ***
1661 : *** DENSITE D'ENERGIE EN ELASTO OU THERMO-ELASTO-PLASTICITE ET
1662 : *** DENSITE D'ENERGIE LIEE A LA VARIATION DE COURBE DE TRACTION
1663 : ***
1664 :   'SI' (('NON' ('EXIST' ENEDEF INST)) 'OU' IMIXT);
1665 :    IAVAN = VRAI;
1666 :   'SI' ('EGA' ITYPEF 99);
1667 :      WELAS = 0.5*('ENER' OBJMOD SIGF ('ELAS' OBJMOD SIGF MAT1));
1668 :     'SI' (IPAP 'ET' ('NON' IMIXT));
1669 :       'SI' (('EGA' IABC 1) 'ET' ('NON' IREPRI)) ;
1670 :          VMI1 = 'CHAN' ('VMIS' OBJMOD SIGF MAT1) 'TYPE' 'SCALAIRE';
1671 :         'SI' ICOQU; VMI1 = VMI1*OBJMOD EPAICH; 'FINSI';
1672 :          WPLAS = 0.5*VMI1*(E VARF 'EPSE');
1673 :         'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER);
1674 :            WVMIS = 0.5*DETAVM*(E VARF 'EPSE') ;
1675 :         'FINSI';
1676 :       'SINON' ;
1677 :          VMI1 = 'CHAN' (0.5*(('VMIS' OBJMOD SIG1 MAT1) +
1678 :                  ('VMIS' OBJMOD SIGF MAT1))) 'TYPE' 'SCALAIRE';
1679 :         'SI' ICOQU; VMI1 = VMI1*OBJMOD EPAICH; 'FINSI';
1680 :          WPLAS = WPLAS + (VMI1*(E (VARF - VAR1) 'EPSE'));
1681 :         'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER);
1682 :            WVMIS = WVMIS + ((0.5*(DETAV1 + DETAVM))*
1683 :                    (E (VARF - VAR1) 'EPSE'));
1684 :         'FINSI';
1685 :       'FINSI' ;
1686 :        ENERM = WELAS + WPLAS;
1687 :        SIG1 = SIGF; VAR1 = VARF;
1688 :       'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER); DETAV1 = DETAVM;
1689 :       'FINSI';
1690 :     'SINON';
1691 :        ENERM = WELAS; IAVAN = FAUX;
1692 :     'FINSI';
1693 :   'FINSI';
1694 : ***
1695 : *** DENSITE D'ENERGIE POUR LES FLUAGES DONT ON A UNE
1696 : *** EXPRESSION EXPLICITE DE L'INTEGRATION SUR LE TEMPS
1697 : ***
1698 :   'SI' ('EGA' ITYPEF 1);
1699 :      UN1 = CHAF1 * (CHAF1 ** (-1.));
1700 :      COE1 = ((MINI (CHAF2 + UN1)) + (MAXI (CHAF2 + UN1)))/2.;
1701 :      COE2 = ((MINI CHAF3) + (MAXI CHAF3))/2.;
1702 :      VMI1 = E S ('VMIS' OBJMOD SIGF MAT1);
1703 :      ENERM = (CHAF2*((CHAF2 + UN1)**(-1.)))*CHAF1*
1704 :              (VMI1**COE1)*CHAF3*(INST**(COE2 - 1));
1705 :     'SI' ICOQU; ENERM = ENERM*OBJMOD EPAICH; 'FINSI';
1706 :   'FINSI';
1707 :   'SI' ('EGA' ITYPEF 6);
1708 :      VMI1 = E S ('VMIS' OBJMOD SIGF MAT1);
1709 :      ENERM1 = (1./2.)*CHAF1*(VMI1**2.);
1710 :      ENERM2 = (2./3.)*CHAF2*(VMI1**3.);
1711 :      ENERM3 = (3./4.)*CHAF3*(VMI1**4.);
1712 :      ENERM = ENERM1 + ENERM2 + ENERM3;
1713 :     'SI' ICOQU; ENERM = ENERM*OBJMOD EPAICH; 'FINSI';
1714 :   'FINSI';
1715 : ***
1716 : *** ON N'A PAS UNE EXPRESSION EXPLICITE DE
1717 : *** L'INTEGRATION DU FLUAGE SUR LE TEMPS
1718 : ***
1719 :   'SI' (('>' ITYPEF 1) 'ET' ('<' ITYPEF 6));
1720 :      SIGMOY = 0.5*(SIG1 + SIGF);
1721 :     'SI' (('EGA' IABC 1) 'ET' ('NON' IREPRI));
1722 :        ENERM = 'ENER' OBJMOD VITDFI SIGMOY;
1723 :     'SINON' ;
1724 :        ENERM = ENERM + ('ENER' OBJMOD (VITDFI - VDI1) SIGMOY);
1725 :     'FINSI' ;
1726 :      SIG1 = SIGF; VDI1 = VITDFI;
1727 :   'FINSI';
1728 : ***
1729 : *** ON STOCKE L'ENEGIE DANS UNE TABLE
1730 : ***
1731 :   'SI' IPAP;
1732 :      ENEDEF.INST = ENERM;
1733 :     'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER);
1734 :        ENEVON.INST = WVMIS;
1735 :     'FINSI';
1736 :   'FINSI';
1737 : ***
1738 : *** SI L'ENEGIE EST DEJA CALCULEE ON LE RESTITUE
1739 : ***
1740 :   'SINON';
1741 :    IAVAN = FAUX; ENERM = ENEDEF.INST;
1742 :   'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER);
1743 :      WVMIS = ENEVON.INST;
1744 :   'FINSI';
1745 :   'FINSI';
1746 : ****************************************************
1747 : ********** RECUPERATION DU POINT A AVANCER *********
1748 : ****************************************************
1749 :   'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
1750 :     'SI' (IPAP 'ET' ('NON' IMIXT));
1751 :        SUPTAB.'G'.INST = TABLE;
1752 :     'FINSI';
1753 :      TTETA*'TABLE' = SUPTAB.'CHTHETA';
1754 :      INT = 'INDEX' TTETA;
1755 :     'SI' IPARTI;
1756 :       'SI' ('EGA' ('TYPE' (SUPTAB.'AVANCE')) 'MAILLAGE');
1757 :          PMA = 'CHAN' 'POI1' (SUPTAB.'AVANCE');
1758 :          NBOU = ('NBNO' PMA) + 1;
1759 :       'SINON';
1760 :          PMA = SUPTAB.'AVANCE'; NBOU = 2;
1761 :       'FINSI';
1762 :     'SINON';
1763 :        NBOU = 'DIME' TTETA;
1764 :     'FINSI';
1765 :   'FINSI';
1766 :   'SI' (('EGA' &DIME 2) 'OU' ICOQU);
1767 :      NBOU = 1;
1768 :   'FINSI';
1769 : **************************************************
1770 : ********  BOUCLE SUR LES POINTS A AVANCER  *******
1771 : **************************************************
1772 :   'REPETER' BCNOEU NBOU;
1773 :   'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
1774 :     'SI' (&BCNOEU 'EGA' NBOU);
1775 :        PM = MOT 'GLOBAL';
1776 :        NUNOE = 'CHAI' ' ' PM ' ';
1777 :     'SINON';
1778 :        PM = INT.&BCNOEU;
1779 :       'SI' IPARTI;
1780 :         'SI' ('EGA' ('TYPE' (SUPTAB.'AVANCE')) 'MAILLAGE');
1781 :            PM = 'POIN' PMA &BCNOEU;
1782 :         'SINON';
1783 :            PM = SUPTAB.'AVANCE';
1784 :         'FINSI';
1785 :       'FINSI';
1786 :        NUNOE = 'NOEU' PM;
1787 :     'FINSI';
1788 :      TETA = TTETA.PM;
1789 :   'FINSI';
1790 :   'SI' (('EGA' &DIME 2) 'OU' ICOQU);
1791 :      TETA = SUPTAB.'CHTHETA';
1792 :   'FINSI';
1793 : **************************************************
1794 : ************* GRADIANT DU CHAMP THETA ************
1795 : **************************************************
1796 :    TETA = TETA + DEP000;
1797 :    TETAGR = 'GRAD' OBJMOD MAT1 TETA ;
1798 :    DIVTETA = (E GR1 TETAGR S)+(E GR5 TETAGR S)+(E GR9 TETAGR S);
1799 : **************************************************
1800 : **** LES COMPOSANTES DU CHAMP THETA EN MCHAML ****
1801 : **************************************************
1802 :    TETX = 'CHAN' 'CHAM' OBJMOD (E U1 TETA S) 'STRESSES';
1803 :    TETY = 'CHAN' 'CHAM' OBJMOD (E U2 TETA S) 'STRESSES';
1804 :   'SI' (&DIME 'EGA' 3) ;
1805 :      TETZ = 'CHAN' 'CHAM' OBJMOD (E U3 TETA S) 'STRESSES';
1806 :   'FINSI';
1807 : ********************************************************
1808 : *********** SI LE MATERIAU N'EST PAS CONSTANT **********
1809 : *** S60 = 0.5*(grad D)*THETA*(EPSI elas)*(EPSI elas) ***
1810 : ********* S70 = Tr(sigma)*T*(Grad Alpha)*THETA *********
1811 : ********************************************************
1812 : ***Détermination de rho en cas de calcul en dynamique***
1813 : 'SI' ('EXIST' SUPTAB 'VITESSE') ;
1814 :        RHO1 = 'REDU' (E MAT1 'RHO' S) OBJMOD;
1815 :        RHO11= 'CHAN' 'CHPO' OBJMOD RHO1 ;
1816 :       'FINSI';
1817 : ***********************************************
1818 :  'SI' MATVARI;
1819 : *** Le coefficient de Poisson est constant ***
1820 :      NU1 = 'REDU' (E MAT1 'NU' S) OBJMOD;
1821 :      NU1 = E NU1  S 'NU';
1822 : ****** Gradient de Module d'young ******
1823 :  'SI' YOUVARI;
1824 :        YOU1 = 'REDU' (E MAT1 'YOUN' S) OBJMOD;
1825 :        YOUGR = GRA000;
1826 :        I = 0;
1827 :       'REPETER' NBJ2 NBOBJ;
1828 :          I = I + 1;
1829 :          YO1 = 'CHAN' 'CHPO' TABMOD.I
1830 :                ('REDU' (E MAT1 'YOUN' S) TABMOD.I);
1831 :          YOUGR = YOUGR + ('GRAD' TABMOD.I MAT1 (('NOMC' U1 YO1)
1832 :                  + ('REDU' DEP000 ('EXTR' YO1 'MAIL'))));
1833 :       'FIN' NBJ2;
1834 :        YOU1 = ((E GR1 YOUGR S)*OBJMOD TETX) +
1835 :               ((E GR2 YOUGR S)*OBJMOD TETY);
1836 :       'SI' (&DIME 'EGA' 3);
1837 :          YOU1 = YOU1 + ((E GR3 YOUGR S)*OBJMOD TETZ);
1838 :       'FINSI';
1839 :        YOU1 = E YOU1 S 'YOUN';
1840 :        DMAT = 'MATE' OBJMOD 'YOUN' YOU1 'NU' NU1;
1841 :        SIGPRIM = ('HOOK' OBJMOD DMAT)*OBJMOD
1842 :                  ('ELAS' OBJMOD SIGF MAT1);
1843 :        S60 = 'INTG' OBJMOD (0.5*('ENER' OBJMOD
1844 :               SIGPRIM ('ELAS' OBJMOD SIGF MAT1)));
1845 :     'FINSI';
1846 : ****** Gradient de Coefficient de Dilatation ******
1847 :     'SI' (ITHER 'ET' ALFVARI);
1848 :        ALF1 = 'REDU' (E MAT1 'ALPH' S) OBJMOD;
1849 :        ALFGR = GRA000; I = 0;
1850 :       'REPETER' NBJ3 NBOBJ;
1851 :          I = I + 1;
1852 :          AL1 = 'CHAN' 'CHPO' TABMOD.I
1853 :                ('REDU' (E MAT1 'ALPH' S) TABMOD.I);
1854 :          ALFGR = ALFGR + ('GRAD' TABMOD.I MAT1 (('NOMC' U1 AL1)
1855 :                  + ('REDU' DEP000 ('EXTR' AL1 'MAIL'))));
1856 :       'FIN' NBJ3;
1857 :        ALF1 = ((E GR1 ALFGR S)*OBJMOD TETX) +
1858 :               ((E GR2 ALFGR S)*OBJMOD TETY);
1859 :       'SI' (&DIME 'EGA' 3) ;
1860 :          ALF1 = ALF1 + ((E GR3 ALFGR S)*OBJMOD TETZ);
1861 :       'FINSI' ;
1862 :        ALF1 = E ALF1 S 'ALPH';
1863 :        DMAT = 'MATE' OBJMOD 'YOUN' 1. 'NU' NU1 'ALPH' ALF1;
1864 :        S70 = 'INTG' OBJMOD ('ENER' OBJMOD SIGF ('ELASTI'
1865 :               OBJMOD ('THETA' OBJMOD TEPINT DMAT) DMAT));
1866 :     'FINSI';
1867 :   'FINSI';
1868 : ***********************************************
1869 : ******** S40 = Tr(sigma)*(Grad T)*THETA *******
1870 : ***********************************************
1871 :   'SI' ITHER;
1872 :      TEMU = ((E GR1 TEPEGR S)*OBJMOD TETX) +
1873 :             ((E GR2 TEPEGR S)*OBJMOD TETY) ;
1874 :     'SI' (&DIME 'EGA' 3) ;
1875 :        TEMU = TEMU + ((E GR3 TEPEGR S)*OBJMOD TETZ);
1876 :     'FINSI' ;
1877 :      TEMU = 'CHAN' 'TYPE' ('EXCO' 'SCAL' TEMU 'T') 'TEMPERATURES';
1878 :      EPSTU = 'ELAS' OBJMOD ('THETA' OBJMOD MAT1 TEMU) MAT1;
1879 :      S40 = 'INTG' OBJMOD ('ENER' OBJMOD SIGF EPSTU);
1880 :   'FINSI';
1881 : ****************************************************
1882 : ********* S120 = wvmis*(Grad T)*THETA avec *********
1883 : * wvmis = SOME d(Von_mises)/d(Temperature) d(EPSE) *
1884 : ****************************************************
1885 :   'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER);
1886 :      TEMU = 'CHAN' 'TYPE' ('EXCO' 'T' TEMU 'SCAL') 'SCALAIRE';
1887 :      S120 = 'INTG' OBJMOD (WVMIS * TEMU);
1888 :   'FINSI';
1889 : *********************************************************
1890 : *** Contribution due a la force au fond de la fissure ***
1891 : ***************** S50 = F*(grad U)*THETA ****************
1892 : *********************************************************
1893 :   'SI' IPRES ;
1894 :     'SI' ('NON' IMIXT);
1895 :       'SI' PASA ;
1896 :          PREINT = ('TIRE' CHAR1 INST 'MECA') 'REDU' MAPART ;
1897 :       'SINON' ;
1898 :          MOC1 = 'CHAIN' 'C' ('TYPE' PRESSI);
1899 :         'SI' ('EGA' MOC1 'CCHARGEME');
1900 :            PREINT = ('TIRE' PRESSI INST) 'REDU' MAPART ;
1901 :         'SINON';
1902 :            PREINT = PRESSI 'REDU' MAPART ;
1903 :         'FINSI';
1904 :       'FINSI' ;
1905 :     'SINON' ;
1906 :        PREINT = PRESSI 'REDU' MAPART ;
1907 :     'FINSI' ;
1908 :      GRADCH = 'CHANGER' 'CHPO' OBJMOD GRADEP ;
1909 :      DEPLX = ((E GR1 GRADCH S)*(E U1 TETA S)) +
1910 :              ((E GR2 GRADCH S)*(E U2 TETA S)) ;
1911 :      DEPLY = ((E GR4 GRADCH S)*(E U1 TETA S)) +
1912 :              ((E GR5 GRADCH S)*(E U2 TETA S)) ;
1913 :      DEP0 = DEP000 + ('NOMC' DEPLX U1) + ('NOMC' DEPLY U2);
1914 :     'SI' (&DIME 'EGA' 3) ;
1915 :        DEPLX = DEPLX + ((E GR3 GRADCH S)*(E U3 TETA S));
1916 :        DEPLY = DEPLY + ((E GR6 GRADCH S)*(E U3 TETA S));
1917 :        DEPLZ = ((E GR7 GRADCH S)*(E U1 TETA S)) +
1918 :                ((E GR8 GRADCH S)*(E U2 TETA S)) +
1919 :                ((E GR9 GRADCH S)*(E U3 TETA S)) ;
1920 :        DEP0 = ('NOMC' DEPLX U1) + ('NOMC' DEPLY U2) +
1921 :               ('NOMC' DEPLZ U3);
1922 :     'FINSI' ;
1923 :     'SI' ICOQU ;
1924 :        GRAFCH = 'CHANGER' 'CHPO' OBJMOD GRADEF ;
1925 :        BXX = E 'BX,X' GRAFCH S;
1926 :        BXY = E 'BX,Y' GRAFCH S;
1927 :        BYX = E 'BY,X' GRAFCH S;
1928 :        BYY = E 'BY,Y' GRAFCH S;
1929 :        DEPFX = 'NOMC' 'RX' ( (BXX*(E 'UX' TETA S))+
1930 :                              (BXY*(E 'UY' TETA S)) );
1931 :        DEPFY = 'NOMC' 'RY' ( (BYX*(E 'UX' TETA S))+
1932 :                              (BYY*(E 'UY' TETA S)) );
1933 :        DEP0 = DEP000 + DEPFX + DEPFY;
1934 :     'FINSI' ;
1935 :      S50 = 'XTY' PREINT DEP0 MOTF MOTU ;
1936 :   'FINSI';
1937 : **************************************************
1938 : **** Contribution due a l'energie mecanique ******
1939 : ************** S10 = w*(div THETA) ***************
1940 : ******* S20 = sigma*(grad U)*(grad THETA) ********
1941 : **************************************************
1942 :    S10 = 'INTG' OBJMOD (ENERM*OBJMOD DIVTETA) ;
1943 :   'SI' ICOQU;
1944 :      S20 = 'INTG' OBJMOD ('WORK' OBJMOD SIGF
1945 :             (GRADEP*OBJMOD TETAGR) (GRADEF*OBJMOD TETAGR)) ;
1946 :   'SINON';
1947 :      S20 = 'INTG' OBJMOD ('WORK' OBJMOD SIGF
1948 :                          (GRADEP*OBJMOD TETAGR)) ;
1949 :   'FINSI';
1950 : ****************************************************
1951 : ** Calcul des termes supplementaires en dynamique **
1952 : ****************************************************
1953 :     'SI' ('EXIST' SUPTAB 'VITESSE') ;
1954 :     RH1  = 'CHAN' 'CHAM' RHO11 OBJMOD STRESSES ;
1955 :     VITF = 'CHAN' 'CHAM'  OBJMOD VITF 'STRESSES';
1956 : ATT5 = ((E U1 VITF)**2) + ((E U2 VITF)**2) ;
1957 : S300 = 'INTG' OBJMOD (0.5*(RH1 * ATT5 * DIVTETA)) ;
1958 : ATT61 = ((E GR1 GRADEP 'SCAL')*TETX) + ((E GR2 GRADEP 'SCAL')*TETY) ;
1959 : ATT62 = ((E GR4 GRADEP 'SCAL')*TETX) + ((E GR5 GRADEP 'SCAL')*TETY) ;
1960 : ATT6 = ((E U1 VITF 'SCAL')*ATT61) + ((E U2 VITF 'SCAL')*ATT62) ;
1961 : S400 = 'INTG' OBJMOD(RH1 * ATT6 );
1962 :        'SI' ('EGA' IABC 1);
1963 :     TEMP22 = TEMP1;
1964 :     S401 = S400;
1965 :     S500 = S400;
1966 :        'SINON' ;
1967 :     'SI' ('EGA' IABC 2);
1968 : *
1969 : ** calcul du pas de temps DT en dynamique
1970 : *
1971 :      DT1 = TEMP1 - TEMP22;
1972 :     'FINSI';
1973 :        S500 = (S400 - S401) / DT1 ;
1974 :        S401 = S400;
1975 :     'FINSI' ;
1976 :   'FINSI';
1977 : *******************************************************
1978 : ** Terme supplementaire en cas de materiaux composite *
1979 : ********* integrale sur la ligne d'interface **********
1980 : ************ S100 = (W(b) - W(a))*TETA(x) *************
1981 : ** S110 = SIGF*n*[ (dU/dX)(b) - (dU/dX)(a) ]*TETA(x) **
1982 : ****** SIGF*n = Force agissant sur l'interface ********
1983 : *******************************************************
1984 :   'SI' IINTER ;
1985 :      I = 0;
1986 :     'REPETER' NBJ4 (NBOBJ - 1);
1987 :        I = I + 1;
1988 :        OBJINT = 'MODE' LINTER.I 'MECANIQUE' 'ELASTIQUE';
1989 :        TETXL = 'REDU' LINTER.I (E U1 TETA S);
1990 :        TETXLC = 'CHAN' 'CHAM' OBJINT TETXL 'STRESSES';
1991 : ***
1992 :        ENEMA = 'REDU' LINTER.I ('CHAN' 'CHPO' TABMOD.I
1993 :                 ('REDU' TABMOD.I ENERM));
1994 :        ENEMB = 'REDU' LINTER.I ('CHAN' 'CHPO' TABMOD.(I + 1)
1995 :                 ('REDU' TABMOD.(I + 1) ENERM));
1996 :        ENRMAL = 'CHAN' 'CHAM' OBJINT ENEMA 'STRESSES';
1997 :        ENRMBL = 'CHAN' 'CHAM' OBJINT ENEMB 'STRESSES';
1998 :        S100 = S100 + ('INTG' OBJINT
1999 :               ((ENRMBL - ENRMAL) * OBJINT TETXLC));
2000 : ***
2001 :        GRADA = 'REDU' LINTER.I ('CHAN' 'CHPO' TABMOD.I
2002 :                 ('REDU' TABMOD.I GRADEP));
2003 :        GRADB = 'REDU' LINTER.I ('CHAN' 'CHPO' TABMOD.(I + 1)
2004 :                 ('REDU' TABMOD.(I + 1) GRADEP));
2005 :        UXXAL = 'CHAN' 'CHAM' OBJINT (E GR1 GRADA S) 'STRESSES';
2006 :        UXXBL = 'CHAN' 'CHAM' OBJINT (E GR1 GRADB S) 'STRESSES';
2007 :        UYXAL = 'CHAN' 'CHAM' OBJINT (E GR4 GRADA S) 'STRESSES';
2008 :        UYXBL = 'CHAN' 'CHAM' OBJINT (E GR4 GRADB S) 'STRESSES';
2009 :        SIGML = 'REDU' LINTER.I ('CHAN' 'CHPO' OBJMOD SIGF);
2010 :        SIXXL = 'CHAN' 'CHAM' OBJINT (E SM1 SIGML S) 'STRESSES';
2011 :        SIXYL = 'CHAN' 'CHAM' OBJINT (E SM4 SIGML S) 'STRESSES';
2012 :        AAAA1 = (SIXXL * OBJINT (UXXBL - UXXAL)) +
2013 :                (SIXYL * OBJINT (UYXBL - UYXAL));
2014 :        S110 = S110 + ('INTG' OBJINT (AAAA1*OBJINT TETXLC));
2015 :     'FIN' NBJ4;
2016 :   'FINSI';
2017 : 
2018 : **************************************************
2019 : ******** RASSEMBLAGE DE DIFFERENTS TERMES ********
2020 : **************************************************
2021 :    GMCANI = S20 - S10 - S60 - S100 + S110 ;
2022 :    GTERMI = S40 + S70 - S120 ;
2023 :    GPRESS = 0. - S50 ;
2024 : *Regroupement des termes en cas de calcul en dynamique*
2025 :  'SI' ('EXIST' SUPTAB 'VITESSE');
2026 :    GDYN = S300 + S500 ;
2027 :    GTOTA = GMCANI + GTERMI + GPRESS + GDYN ;
2028 :  'SINON';
2029 :   GTOTA = GMCANI + GTERMI + GPRESS ;
2030 :  'FINSI';
2031 : ***************************************************
2032 : ****** STOCKAGE DES RESULTATS DANS SUPTAB.'G' *****
2033 : ***************************************************
2034 :    C1 = C GMCANI ' '; C2 = C GTERMI ' ';
2035 :    C3 = C GPRESS '  '; C4 = C GTOTA;
2036 :   'SI' IPAP;
2037 : **Affichage de G dans le cas d'un calcul en dynamique**
2038 :    'SI' ('EXIST' SUPTAB 'VITESSE') ;
2039 :       'SI' (('EGA' &DIME 2 )'OU'('EGA' &DIME 3)) ;
2040 :        'MESS' INST'       'GTOTA;
2041 :        PROVALG = PROVALG ET (PROG GTOTA);
2042 :        SUPTAB.'G'.INST = GTOTA;
2043 :       'FINSI';
2044 : *******************************************************
2045 :    'SINON';
2046 :     'SI' (('EGA' &DIME 2) 'OU' ICOQU);
2047 :        'SI' ('EGA' &DIME 2);
2048 :          PROVALG = PROVALG ET (PROG GTOTA);
2049 :        'FINSI';
2050 :       'SI' IMIXT;
2051 :         'MESS' MOJET1 C1 C2 C3 C4;
2052 :          INN = 'INDE' TPI;
2053 :         'REPETER' BB1 ('DIME' TPI);
2054 :            VA1 = ((TPI.(INN.&BB1))**2) / (4.* GTOTA);
2055 :            SUPTAB.'G'.MOTMIX.(INN.&BB1) = VA1;
2056 :         'FIN' BB1;
2057 :       'SINON';
2058 :         'MESS' (C INST ' ') C1 C2 C3 C4;
2059 :          SUPTAB.'G'.INST = GTOTA;
2060 :       'FINSI';
2061 :     'FINSI';
2062 :     'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
2063 :       'SI' IMIXT;
2064 :         'MESS' NUNOE MOJET1 C1 C2 C3 C4;
2065 :          IND1 = 'INDE' TPI;
2066 :          IND2 = 'INDE' (TPI.(IND1.1));
2067 :         'REPETER' BB1 ('DIME' IND2);
2068 :            PM = IND2.&BB1;
2069 :           'REPETER' BB2 ('DIME' IND1);
2070 :              T1 = IND1.&BB2;
2071 :             'SI' ('NON' ('EXIST' (SUPTAB.'G'.MOTMIX) T1));
2072 :                SUPTAB.'G'.MOTMIX.T1 = TABLE;
2073 :             'FINSI';
2074 :              VA1 = ((TPI.T1.PM)**2) / (4.* GTOTA);
2075 :              SUPTAB.'G'.MOTMIX.T1.PM = VA1;
2076 :           'FIN' BB2;
2077 :         'FIN' BB1;
2078 :       'SINON';
2079 :         'MESS' NUNOE (C INST ' ') C1 C2 C3 C4;
2080 :          SUPTAB.'G'.INST.PM = GTOTA;
2081 :       'FINSI';
2082 :     'FINSI';
2083 :    'FINSI';
2084 :   'SINON';
2085 :     'SI' (('EGA' &DIME 2) 'OU' ICOQU);
2086 :       'MESS' C1 C2 C3 C4;
2087 :       'SI' IMIXT;
2088 :          SUPTAB.'G'.MOTMIX = (TPI**2) / (4.* GTOTA);
2089 :       'SINON';
2090 :          SUPTAB.'G' = GTOTA;
2091 :       'FINSI';
2092 :     'FINSI';
2093 :     'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
2094 :       'MESS' NUNOE C1 C2 C3 C4;
2095 :       'SI' IMIXT;
2096 :          INN = 'INDE' TPI;
2097 :         'REPETER' BB1 ('DIME' TPI);
2098 :            VA1 = ((TPI.(INN.&BB1))**2) / (4.* GTOTA);
2099 :            SUPTAB.'G'.MOTMIX.(INN.&BB1) = VA1;
2100 :         'FIN' BB1;
2101 :       'SINON';
2102 :          SUPTAB.'G'.PM = GTOTA;
2103 :       'FINSI';
2104 :     'FINSI';
2105 :    'FINSI';
2106 :   'MENA';
2107 : 
2108 : 'FIN' BCNOEU;
2109 : 'MENA';
2110 : 'SI' (IPAP 'ET' (NBOU '>' 1));
2111 :   'SAUT' 1 'LIGNE';
2112 : 'FINSI';
2113 : 'SI' (IPAP 'ET' (NBOU 'EGA' 1));
2114 :   'SI' (('ABS' ((&BOUCEXT/10) - (&BOUCEXT/10.))) '<' 1.D-10);
2115 :     'SAUT' 1 'LIGNE';
2116 :   'FINSI';
2117 : 'FINSI';
2118 : 'FIN' BOUCMIXT;
2119 : 'FIN' BOUCEXT ;
2120 : ****************************************************
2121 : ********* FIN BOUCLE SUR LE PAS DE CALCUL  *********
2122 : ****************************************************
2123 : ****************************************************
2124 : **** STOCKAGE DES RESULTATS DANS SUPTAB.'EVOLG' ****
2125 : ****************************************************
2126 : 'SI' IPAP;
2127 : ***Affichage de G pour le calul en dynamique****
2128 :  'SI' ('EXIST' SUPTAB 'VITESSE') ;
2129 :     'SI' (('EGA' &DIME 2) 'OU' ('EGA' &DIME 3));
2130 :        SUPTAB.'EVOLG' = 'EVOL' 'MANU' 'TEMPS' TEMPREEL 'G(t)' PROVALG;
2131 :     'FINSI';
2132 : *************************************************
2133 :  'SINON';
2134 :    SUPTAB.'EVOLG' = TABLE;
2135 :    IND1 = 'INDE' (SUPTAB.'G');
2136 :   'SI' (('EGA' &DIME 2) 'OU' ICOQU);
2137 :     'TITRE' CHA1;
2138 :     'SI' IMIXT;
2139 :       'REPETER' BB1 ('DIME' IND1);
2140 :          MOT1 = IND1.&BB1; PT = PROG; PG = PROG;
2141 :          IND2 = 'INDE' (SUPTAB.'G'.MOT1);
2142 :         'REPETER' BB2 ('DIME' IND2);
2143 :            T1 = IND2.&BB2;
2144 :            PT = PT 'ET' (PROG T1);
2145 :            PG = PG 'ET' (PROG SUPTAB.'G'.MOT1.T1);
2146 :         'FIN' BB2;
2147 :          SUPTAB.'EVOLG'.MOT1='EVOL' 'MANU' 'TEMPS' PT MOTTI PG;
2148 :       'FIN' BB1;
2149 :     'SINON';
2150 :        PT = PROG; PG = PROG;
2151 :       'REPETER' BB1 ('DIME' IND1);
2152 :          T1 = IND1.&BB1;
2153 :          PT = PT 'ET' (PROG T1);
2154 :          PG = PG 'ET' (PROG SUPTAB.'G'.T1);
2155 :       'FIN' BB1;
2156 :        SUPTAB.'EVOLG'='EVOL' 'MANU' 'TEMPS' PT MOTTI PG;
2157 :     'FINSI';
2158 :   'FINSI';
2159 :   'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
2160 :     'SI' IMIXT;
2161 :       'REPETER' BB1 ('DIME' IND1);
2162 :          MOT1 = IND1.&BB1; SUPTAB.'EVOLG'.MOT1 = TABLE;
2163 :          IND2 = 'INDE' (SUPTAB.'G'.MOT1);
2164 :          IND3 = 'INDE' (SUPTAB.'G'.MOT1.(IND2.1));
2165 :         'REPETER' BB2 ('DIME' IND3);
2166 :            PM = IND3.&BB2; PT = PROG; PG = PROG;
2167 :           'SI' ('EGA' &BB2 ('DIME' IND3));
2168 :              CHA2 = 'CHAI' ' (Global)';
2169 :           'SINON';
2170 :              CHA2 = 'CHAI' ' (Pt ' ('NOEUD' PM) ')';
2171 :           'FINSI';
2172 :           'TITR' ('CHAI' CHA1 CHA2);
2173 :           'REPETER' BB3 ('DIME' IND2);
2174 :              T1 = IND2.&BB3;
2175 :              PT = PT 'ET' (PROG T1);
2176 :              PG = PG 'ET' (PROG SUPTAB.'G'.MOT1.T1.PM);
2177 :           'FIN' BB3;
2178 :            SUPTAB.'EVOLG'.MOT1.PM='EVOL' 'MANU' 'TEMPS' PT MOTTI PG;
2179 :         'FIN' BB2;
2180 :       'FIN' BB1;
2181 :     'SINON';
2182 :        IND2 = 'INDE' (SUPTAB.'G'.(IND1.1));
2183 :       'REPETER' BB1 ('DIME' IND2);
2184 :          PM = IND2.&BB1; PT = PROG; PG = PROG;
2185 :         'SI' ('EGA' &BB1 ('DIME' IND2));
2186 :            CHA2 = 'CHAI' ' (Global)';
2187 :         'SINON';
2188 :            CHA2 = 'CHAI' ' (Pt ' ('NOEUD' PM) ')';
2189 :         'FINSI';
2190 :         'TITR' ('CHAI' CHA1 CHA2);
2191 :         'REPETER' BB2 ('DIME' IND1);
2192 :            T1 = IND1.&BB2;
2193 :            PT = PT 'ET' (PROG T1);
2194 :            PG = PG 'ET' (PROG SUPTAB.'G'.T1.PM);
2195 :         'FIN' BB2;
2196 :          SUPTAB.'EVOLG'.PM='EVOL' 'MANU' 'TEMPS' PT MOTTI PG;
2197 :       'FIN' BB1;
2198 :     'FINSI';
2199 :   'FINSI';
2200 :  'FINSI';
2201 : 'FINSI';
2202 : ********************************************************
2203 : **** STOCKAGE POUR UNE EVENTUELLE REPRISE DE CALCUL ****
2204 : ********************************************************
2205 : 'SI' (IPAP 'ET' IAVAN);
2206 :    SUPTAB.'ENEDEF' = ENEDEF;
2207 :   'SI' ((('DIME' MODPLA) '>' 0) 'ET' ITHER);
2208 :      SUPTAB.'ENEVON' = ENEVON;
2209 :   'FINSI';
2210 :    SUPTAB.'SIG1' = SIG1 ;
2211 :    SUPTAB.'VAR1' = VAR1 ;
2212 :    SUPTAB.'VDI1' = VDI1 ;
2213 :    SUPTAB.'MAT1' = MAT1 ;
2214 : 'FINSI';
2215 : 'FINPROC' SUPTAB;
2216 : 
2217 : 
2218 : 
2219 :  

© Cast3M 2003 - All rights reserved.
Disclaimer