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