Salome HOME
CCAR: Modified Files:
[tools/eficas.git] / Minicode / cata_saturne.py
1 # debut entete
2
3 import Accas
4 from Accas import *
5
6 import ops
7
8 JdC = JDC_CATA(code='SATURNE',
9                execmodul=None,
10                regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
11                          AU_MOINS_UN('FIN'),
12                          A_CLASSER(('DEBUT','POURSUITE'),'FIN')
13                         )
14               )
15
16 # P. RASCLE MMN
17 # remarques diverses sur le catalogue Saturne
18 # - dans les blocs, il faut au moins un mot clé de statut obligatoire
19 # probleme de rafraichissement des blocs dépendants quand la valeur d'un mot cle global (ITURB) passe de 1 à 0
20
21 # Type le plus general
22 class entier  (ASSD):pass
23 class reel    (ASSD):pass
24 class complexe(ASSD):pass
25 class liste   (ASSD):pass
26 class chaine  (ASSD):pass
27
28
29 class sonde(ASSD):pass
30 class varsca(ASSD):pass
31 class flusca(ASSD):pass
32 class varpre(ASSD):pass
33 class varvitx(ASSD):pass
34 class varvity(ASSD):pass
35 class varvitz(ASSD):pass
36 class eturb(ASSD):pass
37 class dturb(ASSD):pass
38 class tsr11(ASSD):pass
39 class tsr22(ASSD):pass
40 class tsr33(ASSD):pass
41 class tsr12(ASSD):pass
42 class tsr13(ASSD):pass
43 class tsr23(ASSD):pass
44 class resti(ASSD):pass
45
46 class maillage(ASSD):pass
47 class modele(ASSD):pass
48 class matr_asse(ASSD):pass
49 class cham_elem_sief_r(ASSD):pass
50 class theta_geom(ASSD):pass
51 class cham_mater(ASSD):pass
52 class cara_elem(ASSD):pass
53 class char_ther(ASSD):pass
54 class char_meca(ASSD):pass
55 class nume_ddl(ASSD):pass
56 class char_acou(ASSD):pass
57 class listr8 (ASSD):pass
58 class matr_elem(ASSD):pass
59 class matr_elem_depl_c(matr_elem):pass
60 class matr_elem_depl_r(matr_elem):pass
61 class matr_elem_pres_c(matr_elem):pass
62 class matr_elem_temp_r(matr_elem):pass
63
64 # matr_asse :
65 #--------------------------------
66 class matr_asse(ASSD):pass
67 class matr_asse_depl_c(matr_asse):pass
68 class matr_asse_depl_r(matr_asse):pass
69 class matr_asse_gene_r(matr_asse):pass
70 class matr_asse_gene_c(matr_asse):pass
71 class matr_asse_pres_c(matr_asse):pass
72 class matr_asse_pres_r(matr_asse):pass
73 class matr_asse_temp_c(matr_asse):pass
74 class matr_asse_temp_r(matr_asse):pass
75
76
77 # fin entete
78
79 INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
80              fr="Débranchement vers un fichier de commandes secondaires",
81              sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1,
82          UNITE = SIMP(statut='o',typ='I'),
83          INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
84 );
85
86 POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude",
87                 docu="U4.11.03-f1",sd_prod = ops.POURSUITE,
88                 op_init = ops.POURSUITE_context,fichier_ini = 1,
89          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
90                            into=("OUI","NON"),defaut="OUI"),
91          BASE            =FACT(fr="définition des parmètres associés aux bases JEVEUX",
92                                statut='f',min=1,max=3,
93            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
94            TITRE           =SIMP(statut='f',typ='TXM'),
95            CAS             =SIMP(statut='f',typ='TXM'),
96            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
97            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
98            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
99          ),
100          IMPRESSION      =FACT(statut='f',min=1,max=3,
101            FICHIER         =SIMP(statut='o',typ='TXM'),
102            UNITE           =SIMP(statut='o',typ='I'),
103          ),
104          CATALOGUE       =FACT(statut='f',min=1,max=10,
105            FICHIER         =SIMP(statut='o',typ='TXM'),
106            TITRE           =SIMP(statut='f',typ='TXM'),
107            UNITE           =SIMP(statut='f',typ='I'),
108          ),
109          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
110                                statut='f',min=1,max=1,
111            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
112                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
113            JEVEUX          =SIMP(fr="force les déchargement sur disque",
114                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
115            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
116                                  statut='f',typ='TXM',into=('TES',)),
117          ),
118          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
119            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
120            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
121            TAILLE          =SIMP(statut='f',typ='I'),
122            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
123            PARTITION       =SIMP(statut='f',typ='R' ),
124          ),
125          CODE            =FACT("définition d un nom pour l'esemble d'une étude",
126                                statut='f',min=1,max=1,
127            NOM             =SIMP(statut='o',typ='TXM'),
128            UNITE           =SIMP(statut='f',typ='I',defaut=15),
129          ),
130 )  ;
131
132 FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
133                 fr="Définition d une fonction",reentrant = 'n',
134                 regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
135                 REEL = SIMP(typ = 'shell',max=1),
136                 ENTIER = SIMP(typ = 'shell',max=1),
137                 COMPLEXE = SIMP(typ = 'shell',max=1),
138 ) ;
139
140 AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-f1",
141                  fr="Affectation des éléments finis sur le maillage",reentrant='n',
142          MAILLAGE        =SIMP(statut='o',typ=(maillage) ),
143          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
144          VERIF           =SIMP(statut='f',typ='TXM',max=2,into=("MAILLE","NOEUD") ),
145                 );
146 NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-f",reentrant='n',
147               fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
148          MATR_RIGI       =SIMP(statut='f',typ=(matr_elem_depl_r ,matr_elem_depl_c,
149                                                matr_elem_temp_r,matr_elem_pres_c),max=100 ),
150          MODELE          =SIMP(statut='f',typ=modele ),
151          b_modele        =BLOC(condition = "MODELE != None",
152            CHARGE     =SIMP(statut='f',max='**',typ=(char_meca,char_ther,char_acou, ),),
153          ),
154          METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
155          b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale",
156            RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
157          ),
158          b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
159            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
160          ),
161          b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué",
162            RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
163          ),
164          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
165 )  ;
166
167 DEFI_SONDE = OPER(nom="DEFI_SONDE",op= 1,sd_prod=sonde,
168      docu="U2D1",
169      fr="définition d'une sonde historique avec ses coordonnées",
170                   X = SIMP(statut ='o',typ='R',
171                            fr="coordonnée X de la sonde"),
172                   Y = SIMP(statut ='o',typ='R',
173                            fr="coordonnée Y de la sonde"),
174                   Z = SIMP(statut ='o',typ='R',
175                            fr="coordonnée Z de la sonde")
176                  );
177
178 def defi_scala_prod(**args):
179    return varsca
180
181 DEFI_SCALA = OPER(nom="DEFI_SCALA",op=2,sd_prod=defi_scala_prod,
182 fr="définition d'une inconnue scalaire avec ses paramètres physico numériques",
183                   NUMERIC = FACT(statut='o',max=01,
184                                 fr="propriétés numériques liées à l'inconnue",
185                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
186                                                   fr="indicateur de convection"),
187                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
188                                                   fr="présence terme instationnaire dans les matrices"),
189                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
190                                                   fr="diffusion"),
191                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
192                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
193                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
194                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
195                                                                           fr="pourcentage schéma convectif au second ordre"),
196                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
197                                                                           fr ="type schéma convectif au second ordre 1 : centré")
198                                                             ),
199                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
200                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
201                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
202                                                   fr="précision relative pour la résolution des systèmes linéaires"),
203                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
204                                                   fr="type de limitation des gradients"),
205                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
206                                                   fr="reconstruction des gradients"),
207                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
208                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
209                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
210                                                   fr="facteur de limitation des gradients"),
211                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
212                                                   fr="précision relative pour la reconstruction itérative des gradients")
213                                  ),
214                   RESTITUE = FACT(statut='o',max=01,
215                                   fr = "Description de la grandeur restituée",
216                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
217                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
218                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
219                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
220                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
221                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
222                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
223                                   ),
224                   MODELE = FACT(statut='o',max=01,
225                                 fr="modélisation",
226                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
227                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
228                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
229                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
230                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
231                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
232                                 )
233                  );
234
235 DEFI_FLUSCA = OPER(nom="DEFI_FLUSCA",op=2,sd_prod=flusca,fr="définition des fluctuations d'une inconnue scalaire avec ses paramètres physico numériques",
236                   VARFL  = SIMP(statut='o',typ=varsca,fr="scalaire associé au calcul de la variance des fluctuations"),
237                   NUMERIC = FACT(statut='o',max=01,
238                                 fr="propriétés numériques liées à l'inconnue",
239                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
240                                                   fr="indicateur de convection"),
241                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
242                                                   fr="présence terme instationnaire dans les matrices"),
243                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
244                                                   fr="diffusion"),
245                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
246                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
247                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
248                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
249                                                                           fr="pourcentage schéma convectif au second ordre"),
250                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
251                                                                           fr ="type schéma convectif au second ordre 1 : centré")
252                                                             ),
253                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
254                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
255                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
256                                                   fr="précision relative pour la résolution des systèmes linéaires"),
257                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
258                                                   fr="type de limitation des gradients"),
259                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
260                                                   fr="reconstruction des gradients"),
261                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
262                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
263                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
264                                                   fr="facteur de limitation des gradients"),
265                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
266                                                   fr="précision relative pour la reconstruction itérative des gradients")
267                                  ),
268                   RESTITUE = FACT(statut='o',max=01,
269                                   fr = "Description de la grandeur restituée",
270                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
271                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
272                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
273                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
274                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
275                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
276                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
277                                   ),
278                   MODELE = FACT(statut='o',max=01,
279                                 fr="modélisation",
280                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
281                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
282                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
283                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
284                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
285                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable"),
286                                 RVARFL = SIMP(statut='o',typ='R',val_min=0,defaut=0.8,
287                                                        fr="nombre de Prandtl pour la variance des fluctuations du scalaire")
288                                 )
289                   );
290
291 DEFI_PRESSION = OPER(nom="DEFI_PRESSION",op=2,sd_prod=varpre,fr="définition del'inconnue pression avec ses paramètres physico numériques",
292                    NUMERIC = FACT(statut='o',max=01,
293                                   fr="propriétés de l'équation de pression",
294                                   ICONV  = SIMP(statut='o',typ='I',defaut=0,into=(0,1),
295                                                 fr="indicateur de convection"),
296                                   ISTAT  = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
297                                                 fr="présence terme instationnaire dans les matrices"),
298                                   IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
299                                                 fr="diffusion"),
300                                   IDIRCL = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
301                                                 fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
302                                   SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
303                                                           BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
304                                                                         fr="pourcentage schéma convectif au second ordre"),
305                                                           ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
306                                                                         fr ="type schéma convectif au second ordre 1 : centré")
307                                                           ),
308                                   NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
309                                                 fr="nombre max d'itération pour la résolution des systèmes linéaires"),
310                                   EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
311                                                 fr="précision relative pour la résolution des systèmes linéaires"),
312                                   IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
313                                                 fr="type de limitation des gradients"),
314                                   NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
315                                                 fr="reconstruction des gradients"),
316                                   NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
317                                                 fr="nombre d'itérations pour la reconstruction des seconds membres"),
318                                   CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
319                                                 fr="facteur de limitation des gradients"),
320                                   EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
321                                                 fr="précision relative pour la reconstruction itérative des gradients")
322                                   ),
323                   RESTITUE = FACT(statut='o',max=01,
324                                   fr = "Description de la grandeur restituée",
325                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
326                                                 defaut="Pression"),
327                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
328                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
329                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
330                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
331                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
332                                                 fr = "inventaire des sondes utilisées pour la grandeur")
333                                   ),
334                   MODELE = FACT(statut='o',max=01,
335                                 fr="modélisation",
336                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
337                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
338                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
339                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
340                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
341                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
342                                 )
343                     );
344
345 DEFI_VITX = OPER(nom="DEFI_VITX",op=2,sd_prod=varvitx,fr="définition de l'inconnue vitesse X avec ses paramètres physico numériques",
346                    NUMERIC = FACT(statut='o',max=01,
347                                   fr="propriétés de l'équation de vitesse X",
348                                   ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
349                                                 fr="indicateur de convection"),
350                                   ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
351                                                 fr="présence terme instationnaire dans les matrices"),
352                                   IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
353                                                 fr="diffusion"),
354                                   IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
355                                                 fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
356                                   SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
357                                                           BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
358                                                                         fr="pourcentage schéma convectif au second ordre"),
359                                                           ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
360                                                                         fr ="type schéma convectif au second ordre 1 : centré")
361                                                           ),
362                                   NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
363                                                 fr="nombre max d'itération pour la résolution des systèmes linéaires"),
364                                   EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
365                                                 fr="précision relative pour la résolution des systèmes linéaires"),
366                                   IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
367                                                 fr="type de limitation des gradients"),
368                                   NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
369                                                 fr="reconstruction des gradients"),
370                                   NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
371                                                 fr="nombre d'itérations pour la reconstruction des seconds membres"),
372                                   CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
373                                                 fr="facteur de limitation des gradients"),
374                                   EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
375                                                 fr="précision relative pour la reconstruction itérative des gradients")
376                                   ),
377                   RESTITUE = FACT(statut='o',max=01,
378                                   fr = "Description de la grandeur restituée",
379                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
380                                                 defaut="vitesse_u1"),
381                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
382                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
383                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
384                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
385                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
386                                                 fr = "inventaire des sondes utilisées pour la grandeur")
387                                   ),
388                   MODELE = FACT(statut='o',max=01,
389                                 fr="modélisation",
390                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
391                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
392                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
393                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
394                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
395                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
396                                 )
397                 );
398
399 DEFI_VITY = OPER(nom="DEFI_VITY",op=2,sd_prod=varvity,fr="définition de l'inconnue vitesse Y avec ses paramètres physico numériques",
400                    NUMERIC = FACT(statut='o',max=01,
401                                   fr="propriétés de l'équation de vitesse Y",
402                                   ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
403                                                 fr="indicateur de convection"),
404                                   ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
405                                                 fr="présence terme instationnaire dans les matrices"),
406                                   IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
407                                                 fr="diffusion"),
408                                   IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
409                                                 fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
410                                   SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
411                                                           BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
412                                                                         fr="pourcentage schéma convectif au second ordre"),
413                                                           ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
414                                                                         fr ="type schéma convectif au second ordre 1 : centré")
415                                                           ),
416                                   NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
417                                                 fr="nombre max d'itération pour la résolution des systèmes linéaires"),
418                                   EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
419                                                 fr="précision relative pour la résolution des systèmes linéaires"),
420                                   IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
421                                                 fr="type de limitation des gradients"),
422                                   NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
423                                                 fr="reconstruction des gradients"),
424                                   NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
425                                                 fr="nombre d'itérations pour la reconstruction des seconds membres"),
426                                   CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
427                                                 fr="facteur de limitation des gradients"),
428                                   EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
429                                                 fr="précision relative pour la reconstruction itérative des gradients")
430                                   ),
431                   RESTITUE = FACT(statut='o',max=01,
432                                   fr = "Description de la grandeur restituée",
433                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
434                                                 defaut="vitesse_v1"),
435                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
436                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
437                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
438                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
439                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
440                                                 fr = "inventaire des sondes utilisées pour la grandeur")
441                                   ),
442                   MODELE = FACT(statut='o',max=01,
443                                 fr="modélisation",
444                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
445                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
446                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
447                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
448                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
449                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
450                                 )
451                 );
452
453 DEFI_VITZ = OPER(nom="DEFI_VITZ",op=2,sd_prod=varvitz,fr="définition de l'inconnue vitesse Z avec ses paramètres physico numériques",
454                    NUMERIC = FACT(statut='o',max=01,
455                                   fr="propriétés de l'équation de vitesse Z",
456                                   ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
457                                                 fr="indicateur de convection"),
458                                   ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
459                                                 fr="présence terme instationnaire dans les matrices"),
460                                   IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
461                                                 fr="diffusion"),
462                                   IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
463                                                 fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
464                                   SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
465                                                           BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
466                                                                         fr="pourcentage schéma convectif au second ordre"),
467                                                           ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
468                                                                         fr ="type schéma convectif au second ordre 1 : centré")
469                                                           ),
470                                   NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
471                                                 fr="nombre max d'itération pour la résolution des systèmes linéaires"),
472                                   EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
473                                                 fr="précision relative pour la résolution des systèmes linéaires"),
474                                   IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
475                                                 fr="type de limitation des gradients"),
476                                   NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
477                                                 fr="reconstruction des gradients"),
478                                   NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
479                                                 fr="nombre d'itérations pour la reconstruction des seconds membres"),
480                                   CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
481                                                 fr="facteur de limitation des gradients"),
482                                   EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
483                                                 fr="précision relative pour la reconstruction itérative des gradients")
484                                   ),
485                   RESTITUE = FACT(statut='o',max=01,
486                                   fr = "Description de la grandeur restituée",
487                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée",
488                                                 defaut="vitesse_w1"),
489                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
490                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
491                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
492                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
493                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
494                                                 fr = "inventaire des sondes utilisées pour la grandeur")
495                                   ),
496                   MODELE = FACT(statut='o',max=01,
497                                 fr="modélisation",
498                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
499                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour la grandeur"),
500                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour la grandeur"),
501                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour la grandeur"),
502                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée à la grandeur"),
503                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable"),
504                                 )
505                 );
506
507
508 DEFI_ETURB = OPER(nom="DEFI_ETURB",op=2,sd_prod=eturb,fr="définition de l'inconnue energie turbulente k-eps avec ses paramètres physico numériques",
509                   NUMERIC = FACT(statut='o',max=01,
510                                     fr="propriétés numériques liées à l'inconnue",
511                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
512                                                   fr="indicateur de convection"),
513                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
514                                                   fr="présence terme instationnaire dans les matrices"),
515                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
516                                                   fr="diffusion"),
517                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
518                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
519                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
520                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
521                                                                           fr="pourcentage schéma convectif au second ordre"),
522                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
523                                                                           fr ="type schéma convectif au second ordre 1 : centré")
524                                                             ),
525                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
526                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
527                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
528                                                   fr="précision relative pour la résolution des systèmes linéaires"),
529                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
530                                                   fr="type de limitation des gradients"),
531                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
532                                                   fr="reconstruction des gradients"),
533                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
534                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
535                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
536                                                   fr="facteur de limitation des gradients"),
537                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
538                                                   fr="précision relative pour la reconstruction itérative des gradients")
539                                  ),
540                   RESTITUE = FACT(statut='o',max=01,
541                                   fr = "Description de la grandeur restituée",
542                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
543                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
544                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
545                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
546                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
547                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
548                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
549                                   ),
550                   MODELE = FACT(statut='o',max=01,
551                                 fr="modélisation",
552                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
553                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
554                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
555                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
556                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
557                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
558                                 )
559                  );
560
561 DEFI_DTURB = OPER(nom="DEFI_DTURB",op=2,sd_prod=dturb,fr="définition de l'inconnue dissipation turbulente k-eps avec ses paramètres physico numériques",
562                   NUMERIC = FACT(statut='o',max=01,
563                                 fr="propriétés numériques liées à l'inconnue",
564                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
565                                                   fr="indicateur de convection"),
566                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
567                                                   fr="présence terme instationnaire dans les matrices"),
568                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
569                                                   fr="diffusion"),
570                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
571                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
572                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
573                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
574                                                                           fr="pourcentage schéma convectif au second ordre"),
575                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
576                                                                           fr ="type schéma convectif au second ordre 1 : centré")
577                                                             ),
578                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
579                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
580                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
581                                                   fr="précision relative pour la résolution des systèmes linéaires"),
582                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
583                                                   fr="type de limitation des gradients"),
584                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
585                                                   fr="reconstruction des gradients"),
586                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
587                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
588                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
589                                                   fr="facteur de limitation des gradients"),
590                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
591                                                   fr="précision relative pour la reconstruction itérative des gradients")
592                                  ),
593                   RESTITUE = FACT(statut='o',max=01,
594                                   fr = "Description de la grandeur restituée",
595                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
596                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
597                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
598                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
599                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
600                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
601                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
602                                   ),
603                   MODELE = FACT(statut='o',max=01,
604                                 fr="modélisation",
605                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
606                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
607                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
608                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
609                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
610                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
611                                 )
612                  );
613
614 DEFI_TSR11 = OPER(nom="DEFI_TSR11",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R11 Rij-eps avec ses paramètres physico numériques",
615                   NUMERIC = FACT(statut='o',max=01,
616                                 fr="propriétés numériques liées à l'inconnue",
617                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
618                                                   fr="indicateur de convection"),
619                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
620                                                   fr="présence terme instationnaire dans les matrices"),
621                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
622                                                   fr="diffusion"),
623                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
624                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
625                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
626                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
627                                                                           fr="pourcentage schéma convectif au second ordre"),
628                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
629                                                                           fr ="type schéma convectif au second ordre 1 : centré")
630                                                             ),
631                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
632                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
633                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
634                                                   fr="précision relative pour la résolution des systèmes linéaires"),
635                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
636                                                   fr="type de limitation des gradients"),
637                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
638                                                   fr="reconstruction des gradients"),
639                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
640                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
641                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
642                                                   fr="facteur de limitation des gradients"),
643                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
644                                                   fr="précision relative pour la reconstruction itérative des gradients")
645                                  ),
646                   RESTITUE = FACT(statut='o',max=01,
647                                   fr = "Description de la grandeur restituée",
648                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
649                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
650                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
651                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
652                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
653                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
654                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
655                                   ),
656                   MODELE = FACT(statut='o',max=01,
657                                 fr="modélisation",
658                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
659                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
660                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
661                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
662                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
663                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
664                                 )
665                  );
666
667 DEFI_TSR22 = OPER(nom="DEFI_TSR22",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R22 Rij-eps avec ses paramètres physico numériques",
668                   NUMERIC = FACT(statut='o',max=01,
669                                 fr="propriétés numériques liées à l'inconnue",
670                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
671                                                   fr="indicateur de convection"),
672                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
673                                                   fr="présence terme instationnaire dans les matrices"),
674                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
675                                                   fr="diffusion"),
676                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
677                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
678                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
679                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
680                                                                           fr="pourcentage schéma convectif au second ordre"),
681                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
682                                                                           fr ="type schéma convectif au second ordre 1 : centré")
683                                                             ),
684                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
685                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
686                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
687                                                   fr="précision relative pour la résolution des systèmes linéaires"),
688                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
689                                                   fr="type de limitation des gradients"),
690                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
691                                                   fr="reconstruction des gradients"),
692                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
693                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
694                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
695                                                   fr="facteur de limitation des gradients"),
696                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
697                                                   fr="précision relative pour la reconstruction itérative des gradients")
698                                  ),
699                   RESTITUE = FACT(statut='o',max=01,
700                                   fr = "Description de la grandeur restituée",
701                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
702                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
703                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
704                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
705                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
706                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
707                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
708                                   ),
709                   MODELE = FACT(statut='o',max=01,
710                                 fr="modélisation",
711                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
712                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
713                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
714                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
715                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
716                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
717                                 )
718                  );
719
720 DEFI_TSR33 = OPER(nom="DEFI_TSR33",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R33 Rij-eps avec ses paramètres physico numériques",
721                   NUMERIC = FACT(statut='o',max=01,
722                                 fr="propriétés numériques liées à l'inconnue",
723                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
724                                                   fr="indicateur de convection"),
725                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
726                                                   fr="présence terme instationnaire dans les matrices"),
727                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
728                                                   fr="diffusion"),
729                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
730                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
731                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
732                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
733                                                                           fr="pourcentage schéma convectif au second ordre"),
734                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
735                                                                           fr ="type schéma convectif au second ordre 1 : centré")
736                                                             ),
737                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
738                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
739                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
740                                                   fr="précision relative pour la résolution des systèmes linéaires"),
741                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
742                                                   fr="type de limitation des gradients"),
743                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
744                                                   fr="reconstruction des gradients"),
745                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
746                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
747                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
748                                                   fr="facteur de limitation des gradients"),
749                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
750                                                   fr="précision relative pour la reconstruction itérative des gradients")
751                                  ),
752                   RESTITUE = FACT(statut='o',max=01,
753                                   fr = "Description de la grandeur restituée",
754                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
755                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
756                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
757                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
758                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
759                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
760                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
761                                   ),
762                   MODELE = FACT(statut='o',max=01,
763                                 fr="modélisation",
764                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
765                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
766                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
767                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
768                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
769                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
770                                 )
771                  );
772
773 DEFI_TSR12 = OPER(nom="DEFI_TSR12",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R12 Rij-eps avec ses paramètres physico numériques",
774                   NUMERIC = FACT(statut='o',max=01,
775                                 fr="propriétés numériques liées à l'inconnue",
776                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
777                                                   fr="indicateur de convection"),
778                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
779                                                   fr="présence terme instationnaire dans les matrices"),
780                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
781                                                   fr="diffusion"),
782                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
783                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
784                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
785                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
786                                                                           fr="pourcentage schéma convectif au second ordre"),
787                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
788                                                                           fr ="type schéma convectif au second ordre 1 : centré")
789                                                             ),
790                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
791                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
792                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
793                                                   fr="précision relative pour la résolution des systèmes linéaires"),
794                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
795                                                   fr="type de limitation des gradients"),
796                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
797                                                   fr="reconstruction des gradients"),
798                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
799                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
800                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
801                                                   fr="facteur de limitation des gradients"),
802                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
803                                                   fr="précision relative pour la reconstruction itérative des gradients")
804                                  ),
805                   RESTITUE = FACT(statut='o',max=01,
806                                   fr = "Description de la grandeur restituée",
807                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
808                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
809                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
810                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
811                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
812                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
813                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
814                                   ),
815                   MODELE = FACT(statut='o',max=01,
816                                 fr="modélisation",
817                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
818                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
819                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
820                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
821                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
822                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
823                                 )
824                  );
825
826 DEFI_TSR13 = OPER(nom="DEFI_TSR13",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R13 Rij-eps avec ses paramètres physico numériques",
827                   NUMERIC = FACT(statut='o',max=01,
828                                 fr="propriétés numériques liées à l'inconnue",
829                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
830                                                   fr="indicateur de convection"),
831                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
832                                                   fr="présence terme instationnaire dans les matrices"),
833                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
834                                                   fr="diffusion"),
835                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
836                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
837                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
838                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
839                                                                           fr="pourcentage schéma convectif au second ordre"),
840                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
841                                                                           fr ="type schéma convectif au second ordre 1 : centré")
842                                                             ),
843                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
844                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
845                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
846                                                   fr="précision relative pour la résolution des systèmes linéaires"),
847                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
848                                                   fr="type de limitation des gradients"),
849                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
850                                                   fr="reconstruction des gradients"),
851                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
852                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
853                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
854                                                   fr="facteur de limitation des gradients"),
855                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
856                                                   fr="précision relative pour la reconstruction itérative des gradients")
857                                  ),
858                   RESTITUE = FACT(statut='o',max=01,
859                                   fr = "Description de la grandeur restituée",
860                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
861                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
862                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
863                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
864                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
865                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
866                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
867                                   ),
868                   MODELE = FACT(statut='o',max=01,
869                                 fr="modélisation",
870                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
871                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
872                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
873                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
874                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
875                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
876                                 )
877                  );
878
879 DEFI_TSR23 = OPER(nom="DEFI_TSR23",op=2,sd_prod=tsr11,fr="définition de l'inconnue tension Reynolds R23 Rij-eps avec ses paramètres physico numériques",
880                   NUMERIC = FACT(statut='o',max=01,
881                                 fr="propriétés numériques liées à l'inconnue",
882                                     ICONV  = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
883                                                   fr="indicateur de convection"),
884                                     ISTAT  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
885                                                   fr="présence terme instationnaire dans les matrices"),
886                                     IDIFF  = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
887                                                   fr="diffusion"),
888                                     IDIRCL = SIMP(statut='f',typ='I',defaut=1,into=(0,1),
889                                                   fr="décalage du spectre des valeurs propres en l'absence de Dirichlet"),
890                                     SCHEMA_CONVECTIF = BLOC(condition="ICONV == 1", fr ="ordre du schéma convectif",
891                                                             BLENCV = SIMP(statut='o',typ='R',defaut=0,val_min=0,val_max=1,
892                                                                           fr="pourcentage schéma convectif au second ordre"),
893                                                             ISCHCV = SIMP(statut='f',typ='I',defaut=0,into=(0,1),
894                                                                           fr ="type schéma convectif au second ordre 1 : centré")
895                                                             ),
896                                     NITMAX = SIMP(statut='f',typ='I',defaut=10000,val_min=0,
897                                                   fr="nombre max d'itération pour la résolution des systèmes linéaires"),
898                                     EPSILO = SIMP(statut='f',typ='R',defaut=1.e-4,val_min=0,
899                                                   fr="précision relative pour la résolution des systèmes linéaires"),
900                                     IMLIGR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,-1,0,1),
901                                                   fr="type de limitation des gradients"),
902                                     NSWRGR = SIMP(statut='f',typ='I',defaut=100,val_min=0,
903                                                   fr="reconstruction des gradients"),
904                                     NSWRSM = SIMP(statut='f',typ='I',defaut=2,val_min=0,
905                                                   fr="nombre d'itérations pour la reconstruction des seconds membres"),
906                                     CLIMGR = SIMP(statut='f',typ='R',defaut=1.5,val_min=0,
907                                                   fr="facteur de limitation des gradients"),
908                                     EPSRGR = SIMP(statut='f',typ='R',defaut=1.e-5,val_min=0,
909                                                   fr="précision relative pour la reconstruction itérative des gradients")
910                                  ),
911                   RESTITUE = FACT(statut='o',max=01,
912                                   fr = "Description de la grandeur restituée",
913                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
914                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
915                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
916                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
917                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
918                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
919                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
920                                   ),
921                   MODELE = FACT(statut='o',max=01,
922                                 fr="modélisation",
923                                 VALREF = SIMP(statut='o',typ='R',fr="valeur de référence (température, masse volumique...)"),
924                                 SCAMIN = SIMP(statut='f',typ='R',defaut=1.e12,fr="valeur minimale pour le scalaire"),
925                                 SCAMAX = SIMP(statut='f',typ='R',defaut=-1.e12,fr="valeur maximale pour le scalaire"),
926                                 SIGMAS = SIMP(statut='f',typ='R',val_min=0,defaut=1,fr="nombre de Prandtl pour le scalaire"),
927                                 VISLS0 = SIMP(statut='o',typ='R',fr="valeur de référence de la viscosité associée au scalaire"),
928                                 IVISLS = SIMP(statut='f',typ='I',defaut=0,into=(0,1),fr="viscosité variable")
929                                 )
930                  );
931
932
933 DEFI_RESTI = OPER(nom="DEFI_RESTI",op=2,sd_prod=resti,fr = "Description de la grandeur restituée",
934                                   NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur restituée"),
935                                   ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
936                                                 fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
937                                   ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
938                                                 fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
939                                   IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
940                                                 fr = "inventaire des sondes utilisées pour la grandeur scalaire")
941                   );
942
943 CALCUL_SATURNE = PROC(nom = "CALCUL_SATURNE",op = 1,
944                       fr = "définition des paramètres généraux pour un calcul Saturne",
945                       docu = "néant",reentrant = 'n',
946         NomsBibliotheque   = NUPL ( max      = '**',
947                                     statut   = 'o',
948                                     elements = (  SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"),
949                                                   SIMP (typ='TXM',fr="Identifiant de l'isotope dans la bibliotheque")
950                                                )
951                                   ),
952         ENVELOPPE = FACT(statut='o',max=01,fr = "gestion de l'enveloppe",
953                          IFOENV = SIMP(statut='o',typ='I',defaut=2,into=(0,1,2),position='global',
954                                        fr = "mode de communication enveloppe solveur"),
955                          ENVTOSOLV = BLOC(condition="IFOENV > 0",
956                                           fr = "liaison enveloppe vers solveur",
957                                           IMPEVI = SIMP(statut='o',typ='I',defaut=13,val_min=0,val_max=99,
958                                                         fr = "numéro de fichier enveloppe vers solveur"),
959                                           FICEVI = SIMP(statut='o',typ='TXM',defaut="enveloppe_vers_solveur          ",
960                                                         fr = "nom de fichier enveloppe vers solveur")
961                                          ),
962                          SOLVTOENV = BLOC(condition="IFOENV > 0",
963                                           fr = "liaison solveur vers enveloppe",
964                                           IMPEVO = SIMP(statut='o',typ='I',defaut=14,val_min=0,val_max=99,
965                                                         fr = "numéro de fichier solveur vers enveloppe"),
966                                           FICEVO = SIMP(statut='o',typ='TXM',defaut="solveur_vers_enveloppe          ",
967                                                         fr = "nom de fichier solveur vers enveloppe")
968                                          )
969                         ),
970         FICHIERS_CALCUL = FACT(statut='f',max=01,
971                                fr ="définition des fichiers géométrie, suite, stop",
972                                GEOMETRIE = BLOC(condition="IFOENV == 0",
973                                                 fr = "fichier géométrique (pas d'enveloppe)",
974                                                 IMPGEO = SIMP(statut='o',typ='I',defaut=10,val_min=0,val_max=99,
975                                                               fr = "numéro de fichier géométrique"),
976                                                 FICGEO = SIMP(statut='o',typ='TXM',defaut="geomet",
977                                                               fr = "nom de fichier géométrique")
978                                                ),
979                                SUITE_AMONT = BLOC(condition="ISUITE == 1",
980                                                   fr = "fichier suite amont",
981                                                   IMPAMO = SIMP(statut='o',typ='I',defaut=11,val_min=0,val_max=99,
982                                                               fr = "numéro de fichier suite amont"),
983                                                   FICGEO = SIMP(statut='o',typ='TXM',defaut="suiamo",
984                                                               fr = "nom de fichier suite amont"),
985                                                   IFOAMO = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
986                                                               fr = "format du fichier suite amont, 0 = binaire")
987                                                  ),
988                                FICHIER_STOP = FACT(fr = "fichier stop",
989                                                    IMPSTP = SIMP(statut='o',typ='I',defaut=12,val_min=0,val_max=99,
990                                                                  fr = "numéro de fichier stop"),
991                                                    FICSTP = SIMP(statut='o',typ='TXM',defaut="ficstp",
992                                                                  fr = "nom de fichier stop")
993                                                   ),
994                                SUITE_AVAL = FACT(fr = "fichier suite aval",
995                                                  IMPAVA = SIMP(statut='o',typ='I',defaut=20,val_min=0,val_max=99,
996                                                              fr = "numéro de fichier suite aval"),
997                                                  FICAVA = SIMP(statut='o',typ='TXM',defaut="suiamo",
998                                                              fr = "nom de fichier suite aval"),
999                                                  IFOAVA = SIMP(statut='o',typ='I',defaut=1,into=(0,1),
1000                                                              fr = "format du fichier suite aval, 0 = binaire")
1001                                                 )
1002                               ),
1003         POST_PROC_ENSIGHT = FACT(statut='f',max=01,
1004                                  fr = "options de post processing par Ensight",
1005                                  IFOENS = SIMP(statut='f',typ='I',defaut=-2,into=(-2,-1,0,1),
1006                                                fr = "option type de fichier et processus générateur"),
1007                                  NTCHR  = SIMP(statut='f',typ='I',defaut=-1,
1008                                                fr = "périodicité de sortie des fichiers Ensight"),
1009                                  ITCHR  = SIMP(statut='f',typ='I',defaut=0,val_min=0,
1010                                                fr = "compteur des sorties des fichiers Ensight"),
1011                                  N3S_ASCII_NOY = BLOC(condition="(IFOENS == -1) and (IFOENV == 0)",
1012                                                       fr = "format Ensight N3S ASCII généré par le noyau",
1013                                                       IMPPST = SIMP(statut='o',typ='I',defaut=21,val_min=0,val_max=99,
1014                                                                     fr = "numéro de fichier Ensight"),
1015                                                       FICPST = SIMP(statut='o',typ='TXM',defaut="dessin",
1016                                                                     fr = "nom de fichier Ensight")
1017                                                       ),
1018                                  P0_NOY =        BLOC(condition="((IFOENS == 0) or (IFOENS == 1)) and (IFOENV == 0)",
1019                                                       fr = "format Ensight P0 généré par le noyau",
1020                                                       IMPEP0 = SIMP(statut='o',typ='I',defaut=22,val_min=0,val_max=99,
1021                                                                     fr = "numéro de fichier Ensight"),
1022                                                       EMPCHR = SIMP(statut='o',typ='TXM',defaut="./",
1023                                                                     fr = "répertoire de fichier Ensight"),
1024                                                       ENTCHR = SIMP(statut='o',typ='TXM',defaut="chr",
1025                                                                     fr = "préfixe nom de fichier Ensight")
1026                                                       )
1027                                 ),
1028         HISTORIQUE_PONCTUEL = FACT(statut='o',max=01,
1029                                    fr = "Sondes historiques",
1030                                    FICHIERS_HISTORIQUES = FACT(statut='f',max=01,
1031                                                                fr = "description des fichiers historiques",
1032                                                                EMPHIS = SIMP(statut='o',typ='TXM',defaut="./",
1033                                                                              fr="répertoire fichiers historiques"),
1034                                                                EXTHIS = SIMP(statut='o',typ='TXM',defaut="hst",
1035                                                                              fr="extension fichiers historiques")
1036                                                                ),
1037                                    NTHIST = SIMP(statut='f',typ='I',defaut=-999,
1038                                                  fr="fréquence de sortie des historiques en pas de temps"),
1039                                    NTHSAV = SIMP(statut='f',typ='I',defaut=-999,
1040                                                  fr="fréquence de sauvegarde des historiques en pas de temps")
1041                                   ),
1042         OPTIONS_TURBULENCE = FACT(statut='o',max=01,
1043                                   fr="modèle de turbulence",
1044                                   ITURB  = SIMP(statut='f',fr="laminaire : 0, k-epsilon :1,Rij-epsilon :2",
1045                                                 typ='I',into=(0,1,2),defaut=1,position='global'),
1046                                   MODTURB = BLOC(condition="ITURB == 1",
1047                                                  fr = "option k-epsilon",
1048                                                  IGRAKE = SIMP(statut='o',typ='I',
1049                                                                fr="prise en compte gravité dans k-epsilon",
1050                                                                into=(0,1),defaut=0),
1051                                                  IDEUCH = SIMP(statut='f',typ='I',
1052                                                                fr="prise en compte k-epsilon deux échelles",
1053                                                                into=(0,1),defaut=1),
1054                                                  IKEKOU = SIMP(statut='f',typ='I',
1055                                                                fr="prise en compte couplage en incréments sur k-epsilon",
1056                                                                into=(0,1),defaut=1)
1057                                                  ),
1058                                   TEMPTURB = BLOC(condition="ITURB == 1",
1059                                                   fr = "option k-epsilon",
1060                                                   ISCALT = SIMP(statut='o',typ=varsca,
1061                                                                 fr=" identificateur inconnue scalaire température ")
1062                                                   )
1063                                   ),
1064         MARCHE_TEMPS = FACT(statut='o',max=01,
1065                             fr = "définition de la marche en temps",
1066                             DTREF  = SIMP(statut='o',fr="pas de temps de référence",
1067                                                         typ='R',val_min=0),
1068                             IDTVAR = SIMP(statut='f',fr="pas de temps constant : 0, variable temps espace : 1, variable temps : 2",
1069                                           typ='I',into=(0,1,2),defaut=0,position='global'),
1070                                   # probleme trace eficas quand un mot cle position global change
1071                             PASVAR = BLOC(condition="IDTVAR != 0",fr="options pas de temps variable",
1072                                           XCFMAX = SIMP(statut='o',fr="nombre de Courant-Fourier cible",
1073                                                         typ='R',defaut=0.5,val_min=0),
1074                                           FMIN =   SIMP(statut='f',fr="rapport min pas calculé DTREF",
1075                                                         typ='R',defaut=0.1,val_min=0),
1076                                           FMAX =   SIMP(statut='f',fr="rapport max pas calculé DTREF",
1077                                                         typ='R',defaut=1000,val_min=0),
1078                                           VARRDT = SIMP(statut='f',fr="variation relative max pas calculé entre deux instants",
1079                                                         typ='R',defaut=0.1,val_min=0)
1080                                           )
1081                             ),
1082         OPTIONS_EQUATIONS = FACT(statut='o',max=01,
1083                                    fr = "propriétés des équations, inconnues principales",
1084                                    IMGR   = SIMP(statut='f',fr="utilisation du multigrille pour la résolution des systèmes linéaires",
1085                                                  typ='I',into=(0,1),defaut=0),
1086                                    IMRGRA = SIMP(statut='f',fr="type de reconstruction des gradients 1 : moindres carrés",
1087                                                  typ='I',into=(0,1),defaut=0),
1088                                    ),
1089         VARIABLES = FACT(statut='o',max=01,
1090                          fr = "Restitution des grandeurs principales",
1091                          NTLIST = SIMP(statut='f',typ='I',defaut=1,val_min=1,val_max='**',
1092                                        fr = "fréquence de sortie (en pas de temps) dans le compte rendu d'éxécution"),
1093                          IWARNI = SIMP(statut='f',typ='I',defaut=2,val_min=0,val_max='**',
1094                                        fr = "niveau de détail des impressions dans le compte rendu d'éxécution"),
1095                          MASVOL1 = FACT(statut='o',max=01,
1096                                          fr = "Description de la grandeur restituée : masse volumique",
1097                                          NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : masse volumique",
1098                                                        defaut="Masse_vol1"),
1099                                          ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
1100                                                        fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
1101                                          ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
1102                                                        fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
1103                                          IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
1104                                                        fr = "inventaire des sondes utilisées pour la grandeur masse volumique")
1105                                         ),
1106                         TURB_KE = BLOC(condition="ITURB == 1",
1107                                        E_TURB = FACT(statut='o',max=01,
1108                                                      fr = "Description de la grandeur restituée : énergie turbulente",
1109                                                      NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : energie turbulente",
1110                                                                    defaut="Energie_1"),
1111                                                      ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
1112                                                                    fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
1113                                                      ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
1114                                                                    fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
1115                                                      IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
1116                                                                    fr = "inventaire des sondes utilisées pour la grandeur énergie turbulente")
1117                                                     ),
1118                                        D_TURB = FACT(statut='o',max=01,
1119                                                      fr = "Description de la grandeur restituée : dissipation turbulente",
1120                                                      NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : dissipation turbulente",
1121                                                                    defaut="Dissipation"),
1122                                                      ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
1123                                                                    fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
1124                                                      ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
1125                                                                    fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
1126                                                      IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
1127                                                                    fr = "inventaire des sondes utilisées pour la grandeur dissipation turbulente")
1128                                                     ),
1129                                        V_TURB = FACT(statut='o',max=01,
1130                                                      fr = "Description de la grandeur restituée : viscosité turbulente",
1131                                                      NOMVAR = SIMP(statut='o',typ='TXM',fr = "nom de la grandeur : viscosité turbulente",
1132                                                                    defaut="Visc_turb1"),
1133                                                      ICHRVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
1134                                                                    fr = "post-traitement (-999 : le code décide ; 0 : non ; 1 : oui)"),
1135                                                      ILISVR = SIMP(statut='f',typ='I',defaut=-999,into=(-999,0,1),
1136                                                                    fr = "impression dans CR exécution (-999 : le code décide ; 0 : non ; 1 : oui)"),
1137                                                      IHISVR = SIMP(statut='f',typ=sonde,min=0,max='**',
1138                                                                    fr = "inventaire des sondes utilisées pour la grandeur viscosité turbulente")
1139                                                     ),
1140                                       )
1141                         ),
1142         GESTION_CALCUL = FACT(statut='o',max=01,
1143                               fr = "calcul suite et numéros de pas de temps début et fin",
1144                               ISUITE = SIMP(statut='o',typ='I',defaut=0,into=(0,1),position='global',
1145                                             fr = "indicateur calcul suite (1 = suite)"),
1146                               NTPABS = SIMP(statut='f',typ='I',defaut=0,
1147                                             fr = "numéro dernier pas de temps calcul précédent (initialisation automatique)"),
1148                               NTMABS = SIMP(statut='o',typ='I',
1149                                             fr = "numéro dernier pas de temps visé (absolu)"),
1150                               TTPABS = SIMP(statut='f',typ='R',defaut=0,
1151                                             fr = "temps simulation au dernier pas de temps précédent (initialisation automatique)")
1152                              ),
1153         CONSTANTES_PHYSIQUES=FACT(statut='o',max=01,
1154                                   fr = "Grandeurs physiques et modélisation",
1155                                   GRAVITE = FACT(statut='o',max=01,
1156                                                  fr = "composantes de la gravité",
1157                                                  GX = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon X"),
1158                                                  GY = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon Y"),
1159                                                  GZ = SIMP(statut ='o',typ='R',defaut=0, fr = "gravité selon Z")
1160                                                  ),
1161                                   FLUIDE = FACT(statut='o',max=01,
1162                                                 fr = "propriétés du fluide",
1163                                                 RO0 = SIMP(statut ='o',typ='R',val_min=0,fr="masse volumique de référence"),
1164                                                 VISCL0 = SIMP(statut ='o',typ='R',val_min=0,fr="viscosité dynamique de référence"),
1165                                                 P0 = SIMP(statut ='o',typ='R',val_min=0,fr="pression de référence")
1166                                                 ),
1167                                   TURBULENCE = BLOC(condition="ITURB >= 0",
1168                                                     XKAPPA = SIMP(statut ='o',typ='R',defaut=0.42,val_min=0,fr="constante de Karman"),
1169                                                     CSTLOG = SIMP(statut ='f',typ='R',defaut=5.2,val_min=0,fr="constante de la loi log"),
1170                                                     YPLULI = SIMP(statut ='f',typ='R',defaut=2/0.42,val_min=0,fr="valeur limite de y+ pour la sous couche visqueuse"),
1171                                                     CMU = SIMP(statut ='f',typ='R',defaut=0.009,val_min=0,fr="constante C mu"),
1172                                                     CE1 = SIMP(statut ='f',typ='R',defaut=1.44,val_min=0,fr="constante C epsilon 1"),
1173                                                     CE2 = SIMP(statut ='f',typ='R',defaut=1.92,val_min=0,fr="constante C epsilon 2"),
1174                                                     CE3 = SIMP(statut ='f',typ='R',defaut=1.0,val_min=0,fr="constante C epsilon 3"),
1175                                                     SIGMAK = SIMP(statut ='f',typ='R',defaut=1.0,val_min=0,fr="nombre de Prandtl pour k en k-epsilon"),
1176                                                     SIGMAE = SIMP(statut ='f',typ='R',defaut=1.3,val_min=0,fr="nombre de Prandtl pour epsilon en k-epsilon"),
1177                                                     ALMAX = SIMP(statut ='f',typ='R',val_min=0,fr="longueur macroscopique caractéristique du domaine"),
1178                                                     UREF = SIMP(statut ='f',typ='R',val_min=0,fr="vitesse caractéristique de l'écoulement pour l'initialisation du k-epsilon")
1179                                                     )
1180                                   )
1181                                  );
1182
1183 CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
1184                       docu="U4.32.01-d1",reentrant='f',
1185          regles=(UN_PARMI('VALE_R','LIST_PARA'),),
1186          FONCTION        =SIMP(statut='o',typ=fonction ),
1187          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
1188          VALE_R          =SIMP(statut='f',typ='R',max='**'),
1189          LIST_PARA       =SIMP(statut='f',typ=listr8 ),
1190          INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG","INT") ),
1191          PROL_DROITE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
1192          PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
1193          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
1194          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
1195 )  ;
1196
1197 LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage,
1198                    fr="Lecture d'un fichier de maillage",
1199                    ang="Readings of a mesh file",
1200                    docu="U4.21.01-f",reentrant='n',
1201 #
1202          UNITE           =SIMP(statut='f',typ='I',defaut= 20 ),
1203 #
1204          FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
1205                             fr="Format du fichier : ASTER ou MED.",
1206                             ang="Format of the file : ASTER or MED.",),
1207 #
1208          ABSC_CURV       =FACT(statut='f',min=00,max=01,
1209                TOUT          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
1210          ),
1211 #
1212          VERI_MAIL       =FACT(statut='d',min=01,max=01,
1213                APLAT         =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
1214          ),
1215 #
1216          b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
1217                            fr="Informations complémentaires pour la lecture MED.",
1218                            ang="Further information for MED readings.",
1219 #
1220 # Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
1221 # le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
1222 #
1223               NOM_MED    = SIMP(statut='f',typ='TXM',
1224                             fr="Nom du maillage dans le fichier MED.",
1225                             ang="Name of the mesh into the MED file.",),
1226 #
1227               INFO_MED   = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
1228 #
1229                            ) ,
1230 #
1231          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
1232 #
1233 )  ;
1234
1235 DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-f1",repetable='n',
1236            fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
1237           sd_prod=ops.DEBUT,
1238
1239          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
1240                            into=("OUI","NON"),defaut="OUI"),
1241          BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
1242                                statut='f',min=01,max=03,
1243            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
1244                                  into=('GLOBALE','VOLATILE','LOCALE'),),
1245            TITRE           =SIMP(statut='f',typ='TXM'),
1246            CAS             =SIMP(statut='f',typ='TXM'),
1247            NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
1248            LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
1249            LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
1250          ),
1251          IMPRESSION      =FACT(statut='f',min=01,max=03,
1252            FICHIER         =SIMP(statut='o',typ='TXM'),
1253            UNITE           =SIMP(statut='o',typ='I'),
1254          ),
1255          CATALOGUE       =FACT(statut='f',min=01,max=10,
1256            FICHIER         =SIMP(statut='o',typ='TXM'),
1257            TITRE           =SIMP(statut='f',typ='TXM'),
1258            UNITE           =SIMP(statut='f',typ='I'),
1259          ),
1260          CODE            =FACT("définition d un nom pour l'esemble d'une étude",
1261                                statut='f',min=01,max=01,
1262            NOM             =SIMP(statut='o',typ='TXM'),
1263            UNITE           =SIMP(statut='f',typ='I',defaut=15),
1264          ),
1265          DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
1266                                statut='f',min=01,max=01,
1267            JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
1268                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
1269            JEVEUX          =SIMP(fr="force les déchargement sur disque",
1270                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
1271            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
1272                                  statut='f',typ='TXM',into=('TEST',)),
1273          ),
1274          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
1275            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
1276            TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
1277            TAILLE          =SIMP(statut='f',typ='I'),
1278            TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
1279            PARTITION       =SIMP(statut='f',typ='R'),
1280          ),
1281  );
1282
1283 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
1284          docu="U4.11.02-f",
1285          RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
1286                                statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
1287          PERFORMANCE     =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
1288                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
1289          INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
1290                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
1291          FICHIER         =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
1292 )  ;
1293
1294
1295 def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
1296                         SOLVEUR,NUME_DDL,CHARGE,INST,**args):
1297   """
1298      Ecriture de la macro MACRO_MATR_ASSE
1299   """
1300   ier=0
1301   # On met le mot cle NUME_DDL dans une variable locale pour le proteger
1302   numeddl=NUME_DDL
1303   # On importe les definitions des commandes a utiliser dans la macro
1304   # Le nom de la variable doit etre obligatoirement le nom de la commande
1305   CALC_MATR_ELEM=self.get_cmd('CALC_MATR_ELEM')
1306   NUME_DDL      =self.get_cmd('NUME_DDL')
1307   ASSE_MATRICE  =self.get_cmd('ASSE_MATRICE')
1308   # La macro compte pour 1 dans la numerotation des commandes
1309   self.icmd=1
1310
1311   if SOLVEUR:
1312     methode=SOLVEUR['METHODE']
1313     if methode=='LDLT':
1314       if SOLVEUR['RENUM']:
1315          renum=SOLVEUR['RENUM']
1316       else:
1317          renum='RCMK'
1318       if renum not in ('SANS','RCMK'):
1319         ier=ier+1
1320         self.cr.fatal("Avec methode LDLT, RENUM doit etre SANS ou RCMK.")
1321         return ier
1322     elif methode=='MULT_FRONT':
1323       if SOLVEUR['RENUM']:
1324          renum=SOLVEUR['RENUM']
1325       else:
1326          renum='MDA'
1327       if renum not in ('MDA','MD','METIS'):
1328         ier=ier+1
1329         self.cr.fatal("Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK.")
1330         return ier
1331     elif methode=='GCPC':
1332       if SOLVEUR['RENUM']:
1333          renum=SOLVEUR['RENUM']
1334       else:
1335          renum='SANS'
1336       if renum not in ('SANS','RCMK'):
1337         ier=ier+1
1338         self.cr.fatal("Avec methode GCPC, RENUM doit etre SANS ou RCMK.")
1339         return ier
1340   else:
1341     methode='MULT_FRONT'
1342     renum  ='MDA'
1343
1344   if numeddl in self.sdprods:
1345     # Si le concept numeddl est dans self.sdprods
1346     # il doit etre  produit par la macro
1347     # il faudra donc appeler la commande NUME_DDL
1348     lnume = 1
1349   else:
1350     lnume = 0
1351   lrigel = 0
1352   lmasel = 0
1353
1354   iocc=0
1355   for m in MATR_ASSE:
1356     iocc=iocc+1
1357     option=m['OPTION']
1358     if iocc == 1 and lnume == 1 and option not in ('RIGI_MECA','RIGI_MECA_LAGR',
1359                                                    'RIGI_THER','RIGI_ACOU')      :
1360       ier=ier+1
1361       self.cr.fatal("LA PREMIERE OPTION DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR")
1362       return ier
1363
1364     if m['SIEF_ELGA']!=None and option!='RIGI_GEOM':
1365       ier=ier+1
1366       self.cr.fatal("SIEF_ELGA N EST ADMIS QU AVEC L OPTION RIGI_GEOM")
1367       return ier
1368
1369     if m['MODE_FOURIER']!=None and option not in ('RIGI_MECA','RIGI_FLUI_STRU','RIGI_THER'):
1370       ier=ier+1
1371       self.cr.fatal("MODE_FOURIER N EST ADMIS QU AVEC UNE DES OPTIONS RIGI_MECA RIGI_FLUI_STRU RIGI_THER")
1372       return ier
1373
1374     if (m['THETA']!=None or m['PROPAGATION']!=None) and option!='RIGI_MECA_LAGR':
1375       ier=ier+1
1376       self.cr.fatal("PROPAGATION ET,OU THETA NE SONT ADMIS QU AVEC L OPTION RIGI_MECA_LAGR")
1377       return ier
1378     motscles={'OPTION':option}
1379     if option == 'AMOR_MECA':
1380        if (not lrigel or not lmasel):
1381           ier=ier+1
1382           self.cr.fatal("""POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE
1383                            RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)""")
1384           return ier
1385        if CHAM_MATER != None:
1386           motscles['RIGI_MECA']   =rigel
1387           motscles['MASS_MECA']   =masel
1388     if CHARGE     != None:
1389        if option[0:9] not in ('MASS_THER','RIGI_GEOM','MASS_ID_M'):
1390                            motscles['CHARGE']      =CHARGE
1391     if CHAM_MATER != None: motscles['CHAM_MATER']  =CHAM_MATER
1392     if CARA_ELEM  != None: motscles['CARA_ELEM']   =CARA_ELEM
1393     if INST       != None: motscles['INST']        =INST
1394     if m['SIEF_ELGA']   :  motscles['SIEF_ELGA']   =m['SIEF_ELGA']
1395     if m['MODE_FOURIER']:  motscles['MODE_FOURIER']=m['MODE_FOURIER']
1396     if m['THETA']       :  motscles['THETA']       =m['THETA']
1397     if m['PROPAGATION'] :  motscles['PROPAGATION'] =m['PROPAGATION']
1398     __a=CALC_MATR_ELEM(MODELE=MODELE,**motscles)
1399
1400     if option == 'RIGI_MECA':
1401       rigel  = __a
1402       lrigel = 1
1403     if option == 'MASS_MECA':
1404       masel  = __a
1405       lmasel = 1
1406
1407     if lnume and option in ('RIGI_MECA','RIGI_THER','RIGI_ACOU','RIGI_MECA_LAGR'):
1408       self.DeclareOut('num',numeddl)
1409       # On peut passer des mots cles egaux a None. Ils sont ignores
1410       num=NUME_DDL(MATR_RIGI=__a,METHODE=methode,RENUM=renum)
1411     else:
1412       num=numeddl
1413
1414     self.DeclareOut('mm',m['MATRICE'])
1415     mm=ASSE_MATRICE(MATR_ELEM=__a,NUME_DDL=num)
1416   return ier
1417
1418 def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
1419   if not MATR_ASSE:  raise AsException("Impossible de typer les concepts resultats")
1420   if not NUME_DDL:  raise AsException("Impossible de typer les concepts resultats")
1421   self.type_sdprod(NUME_DDL,nume_ddl)
1422   for m in MATR_ASSE:
1423     opti=m['OPTION']
1424
1425     if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" ,
1426        "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
1427        "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R",
1428        "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r
1429
1430     if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
1431
1432     if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" ,
1433        "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r
1434
1435     if opti == "RIGI_MECA_HYST"   : t= matr_asse_depl_c
1436
1437     self.type_sdprod(m['MATRICE'],t)
1438   return None
1439
1440 MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,docu="U4.61.21-c",
1441                       sd_prod=macro_matr_asse_prod,
1442                       fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
1443          MODELE          =SIMP(statut='o',typ=modele),
1444          CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
1445          CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
1446          CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou)),
1447          INST            =SIMP(statut='f',typ='R'),
1448          NUME_DDL        =SIMP(statut='o',typ=(nume_ddl,CO)),
1449          SOLVEUR         =FACT(statut='d',min=01,max=01,
1450            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",
1451                                  into=("LDLT","MULT_FRONT","GCPC")),
1452            RENUM           =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")),
1453          ),
1454          MATR_ASSE       =FACT(statut='o',min=01,max='**',
1455            MATRICE         =SIMP(statut='o',typ=(matr_asse,CO)),
1456            OPTION          =SIMP(statut='o',typ='TXM',
1457                                  into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
1458                                        "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",
1459                                        "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
1460                                        "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR",
1461                                        "RIGI_THER","MASS_THER",
1462                                        "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",
1463                                        "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",)
1464                                  ),
1465            SIEF_ELGA       =SIMP(statut='f',typ=cham_elem_sief_r),
1466            MODE_FOURIER    =SIMP(statut='f',typ='I'),
1467            THETA           =SIMP(statut='f',typ=theta_geom),
1468            PROPAGATION     =SIMP(statut='f',typ='R'),
1469          ),
1470          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
1471          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
1472 )  ;
1473
1474
1475 def defi_valeur_prod(self,IS=None,R8=None,TX=None,C8=None,LS=None):
1476   if IS != None  : return entier
1477   if R8 != None  : return reel
1478   if TX != None  : return chaine
1479   if C8 != None  : return complexe
1480   if LS != None  : return liste
1481   raise AsException("type de concept resultat non prevu")
1482
1483 DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod,
1484                  fr="Affectation d une valeur à une variable Superviseur",
1485                  docu="U4.31.04-e1",reentrant='f',
1486          regles=(UN_PARMI('IS','R8','TX','C8','LS'),),
1487          IS              =SIMP(statut='f',typ='I',max='**'),
1488          R8              =SIMP(statut='f',typ='R',max='**'),
1489          TX              =SIMP(statut='f',typ='TXM',max='**'),
1490          C8              =SIMP(statut='f',typ='C',max='**'),
1491          LS              =SIMP(statut='f',typ='L',max='**'),
1492 )  ;
1493
1494 def macro2_prod(self,MODELE,**args):
1495    return maillage
1496
1497 MACRO2 =MACRO(nom="MACRO2",op= -5 ,docu="U4.61.21-c",
1498                       sd_prod=macro2_prod,
1499                       fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
1500          MODELE          =SIMP(statut='o',typ=modele),
1501 );