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