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