8 def __convert__(self,valeur):
9 if type(valeur) == types.StringType: return None
10 if len(valeur) != self.ntuple: return None
14 return "Date : jj/mm/aaaa "
21 def __init__(self,ntuple):
24 def __convert__(self,valeur):
25 if type(valeur) == types.StringType:
27 if len(valeur) != self.ntuple:
32 return "Tuple de %s elements" % self.ntuple
36 JdC = JDC_CATA (code = 'TELEMAC',
39 # ======================================================================
40 # Catalog entry for the MAP function : c_pre_interfaceBody_mesh
41 # ======================================================================
43 # -----------------------------------------------------------------------
44 INITIALIZATION = PROC(nom = "INITIALIZATION",op = None,
45 # -----------------------------------------------------------------------
47 fr = "Initialisation des fichiers d'entrée et de sortie",
48 ang = "Input and Output files initialization",
49 UIinfo = { "groupes" : ( "CACHE", )},
50 #UIinfo = { "groupes" : ( "iiii", )},
52 # ------------------------------------
53 Title = SIMP( statut = 'o',typ = 'TXM',
54 # ------------------------------------
55 fr = 'Titre du cas etudie. Ce titre figurera sur les dessins.',
56 ang = 'Title of the case being considered. This title shall be marked on the drawings.'),
57 #Working_Directory = SIMP( statut='o',typ='Repertoire',defaut='/tmp'),
59 # ------------------------------------
60 Input_Files = FACT(statut='o',
61 # ------------------------------------
63 # Dictionary = SIMP( statut='o', typ = ('Fichier', 'Dico (*.dico);;All Files (*)',),
64 # defaut='telemac2d.dico',
65 # fr='Dictionnaire des mots cles.', ang='Key word dictionary.',),
66 # PN : le mot cle doit etre dans le dictionnaire et repris du catalogue mais n
69 # ------------------------------------
70 Geometry_File_Format = SIMP( statut = 'o', typ = 'TXM',
71 # ------------------------------------
72 into = ['Serafin', 'MED', 'SerafinD'],
74 fr = 'Format du fichier de geometrie. Les valeurs possibles sont : \n \
75 - SERAFIN : format standard simple precision pour Telemac; \n \
76 - SERAFIND: format standard double precision pour Telemac; \n \
77 - MED : format MED base sur HDF5',
78 ang = 'Results file format. Possible values are: \n\
79 - SERAFIN : classical single precision format in Telemac;\n\
80 - SERAFIND: classical double precision format in Telemac;\n\
81 - MED : MED format based on HDF5',) ,
83 # ------------------------------------
84 Geometry_File = SIMP( statut = 'o',
85 # ------------------------------------
86 # PNPNPN Question Soizic --> pourqoi Geo Files
87 # idem pour Bottom_Topography_File
88 typ = ('Fichier', 'Geo Files (*.geo);;All Files (*)',),
89 fr = 'Nom du fichier contenant le maillage du calcul a realiser.',
90 ang = 'Name of the file containing the mesh. \n\
91 This file may also contain the topography and the friction coefficients.'),
93 #Steering_File = SIMP( statut = 'o', typ = ('Fichier', 'Steering Files (*.cas);;All Files (*)',),),
96 # ------------------------------------
97 Fortran_File = SIMP(statut = 'f',
98 # ------------------------------------
99 typ = ('Fichier', 'Fortran files (*.f);;All Files (*)'),
100 fr = 'Nom du fichier a soumettre',
101 ang = 'Name of FORTRAN file to be submitted',),
103 # ------------------------------------
104 Bottom_Topography_File = SIMP( statut = 'f',
105 # ------------------------------------
106 typ = ('Fichier', 'Geo Files (*.geo);;All Files (*)',),
107 fr = "Nom du fichier eventuel contenant la bathymetrie associee au maillage. \
108 Si ce mot-cle est utilise; c'est cette bathymetrie qui sera utilisee pour le calcul.",
109 ang = 'Name of the possible file containing the bathymetric data.\
110 Where this keyword is used, these bathymetric data shall be used in the computation.',
113 # ------------------------------------
114 Bottom_Smoothings = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
115 # ------------------------------------
116 fr = 'Nombre de lissages effectues sur la topographie. chaque lissage, effectue a l aide dune matrice de masse, est conservatif.\n\
117 Utilise lorsque les donnees de bathymetrie donnent des resultats trop irreguliers apres interpolation.',
118 ang = 'Number of smoothings on bottom topography. each smoothing is mass conservative. \n\
119 to be used when interpolation of bathymetry on the mesh gives very rough results.',),
121 # ------------------------------------
122 Boundary_Conditions_File = SIMP( statut = 'o',
123 # ------------------------------------
124 typ = ('Fichier', 'Boundary Condition (*.cli);;All Files (*)',),
125 fr = 'Nom du fichier contenant les types de conditions aux limites. Ce fichier est rempli de facon automatique\n\
126 par le mailleur au moyen de couleurs affectees aux noeuds des frontieres du domaine de calcul.',
127 ang = 'Name of the file containing the types of boundary conditions. This file is filled automatically\n\
128 by the mesh generator through through colours that are assigned to the boundary nodes.',),
131 # ------------------------------------
132 Validation = FACT( statut = 'f',
133 # ------------------------------------
134 #PNPN--> creer le Mot_clef simple Validation si ce fact existe
136 # ------------------------------------
137 Reference_File_Format = SIMP( statut = 'o',
138 # ------------------------------------
140 into = ['Serafin','MED','SerafinD'],
142 fr = 'Format du fichier de resultats. Les valeurs possibles sont : \n\
143 - SERAFIN : format standard simple precision pour Telemac; \n\
144 - SERAFIND: format standard double precision pour Telemac; \n\
145 - MED : format MED base sur HDF5' ,
146 ang = 'Results file format. Possible values are:\n \
147 - SERAFIN : classical single precision format in Telemac;\n\
148 - SERAFIND: classical double precision format in Telemac; \n\
149 - MED : MED format based on HDF5' ,),
151 # ------------------------------------
152 Reference_File = SIMP( statut = 'o',
153 # ------------------------------------
154 typ = ('Fichier', 'Reference File (*.ref);;All Files (*)',),
155 fr = 'Fichier de resultats de reference pour la validation. Les resultats a placer dans ce fichier seront a ecrire sur le canal 22.',
156 ang = 'Binary-coded result file for validation. The results to be entered into this file shall be written on channel 22.',),
158 ), # Fin de Validation
160 # ------------------------------------
161 Formatted_And_Binary_Files = FACT( statut = 'f',
162 # ------------------------------------
164 # ------------------------------------
165 Formatted_Data_File_1 = SIMP( statut = 'f', typ = ('Fichier', 'formated File (*.txt);;All Files (*)',),
166 # ------------------------------------
167 fr = "Fichier de donnees formate mis a la disposition de l''utilisateur. \n\
168 Les donnees de ce fichier seront a lire sur le canal 26.",
169 ang = 'Formatted data file made available to the user.\n\
170 The data in this file shall be read on channel 26.',),
172 # ------------------------------------
173 Formatted_Data_File_2 = SIMP( statut = 'f', typ = ('Fichier', 'formated File (*.txt);;All Files (*)',),
174 # ------------------------------------
175 fr = "Fichier de donnees formate mis a la disposition de l'utilisateur. \n\
176 Les donnees de ce fichier seront a lire sur le canal 27.",
177 ang = "Formatted data file made available to the user.\n\
178 The data in this file shall be read on channel 27.",),
180 # ------------------------------------
181 Binary_Data_File_1 = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)',),
182 # ------------------------------------
183 fr = 'Fichier de donnees code en binaire mis a la disposition de l utilisateur. \n\
184 Les donnees de ce fichier seront a lire sur le canal 24.',
185 ang = 'Binary-coded data file made available to the user.\n\
186 The data in this file shall be read on channel 24.',),
188 # ------------------------------------
189 Binary_Data_File_2 = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)',),
190 # ------------------------------------
191 fr = 'Fichier de donnees code en binaire mis a la disposition de l utilisateur.\n\
192 Les donnees de ce fichier seront a lire sur le canal 25.',
193 ang = 'Binary-coded data file made available to the user. \n\
194 The data in this file shall be read on channel 25.',),
196 ), # fin Formatted_And_Binary_Files
198 ), # Fin de InputFile
200 # -----------------------------------------------------------------------
201 Initial_State = FACT(statut='o',
202 # -----------------------------------------------------------------------
204 # ------------------------------------
205 Initial_Conditions = SIMP(statut = 'o',typ = 'TXM',
206 # ------------------------------------
207 into = ['Zero elevation','Constant elevation','Zero depth','Constant depth','Special','Tpxo satellite altimetry'],
208 defaut = 'Zero elevation',
209 fr = "Permet de definir les conditions initiales sur les hauteurs d'eau. Les valeurs possibles sont :\n\
210 - COTE NULLE. Initialise la cote de surface libre a 0. \nLes hauteurs d'eau initiales sont alors retrouvees en faisant la difference entre les cotes de surface libre et du fond. \n\
211 - COTE CONSTANTE . Initialise la cote de surface libre a la valeur donnee par le mot-cle COTE INITIALE. Les hauteurs d'eau initiales sont calculees comme precedemment.\n\
212 - HAUTEUR NULLE .Initialise les hauteurs d'eau a 0. \n\
213 - HAUTEUR CONSTANTE. Initialise les hauteurs d'eau a la valeur donnee par le mot-cle HAUTEUR INITIALE. \n\
214 - PARTICULIERES. Les conditions initiales sur la hauteur d'eau doivent etre precisees dans le sous-programme CONDIN. \n\
215 - ALTIMETRIE SATELLITE TPXO. Les conditions initiales sur la hauteur d'eau et les vitesses sont etablies sur \n\
216 la base des donnees satellite TPXO dont les 8 premiers constistuents ont ete extraits et sauves dans le fichier\n\
217 BASE DE DONNEES DE MAREE." ,
218 ang = 'Makes it possible to define the initial conditions with the water depth. The possible values are : \n\
219 - ZERO ELEVATION. Initializes the free surface elevation to 0. \n The initial water depths are then found by computing the difference between the free surface and the bottom. \n\
220 - CONSTANT ELEVATION. Initializes the water elevation to the value given by the keyword \n\
221 - INITIAL ELEVATION. The initial water depths are computed as in the previous case. \n\
222 - ZERO DEPTH. Initializes the water depths to 0. \n\
223 - CONSTANT DEPTH. Initializes the water depths to the value givenby the key-word INITIAL DEPTH. \n\
224 - SPECIAL. The initial conditions with the water depth should be stated in the CONDIN subroutine. \n\
225 - TPXO SATELITE ALTIMETRY. The initial conditions on the free surface and velocities are established from the TPXO satellite program data,\n the harmonic constituents of which are stored in the TIDE DATA BASE file.', ),
227 # ------------------------------------
228 b_initial_elevation = BLOC (condition = "Initial_Conditions == 'Constant elevation'",
229 # ------------------------------------
230 # ------------------------------------
231 Initial_Elevation = SIMP(statut = 'o',typ = 'R',
232 # ------------------------------------
233 fr = 'Valeur utilisee avec l''option : CONDITIONS INITIALES - COTE CONSTANTE',
234 ang = 'Value to be used with the option : INITIAL CONDITIONS -CONSTANT ELEVATION' ),
235 ) , # fin b_initial_elevation
237 # ------------------------------------
238 b_initial_depth = BLOC (condition = "Initial_Conditions == 'Constant depth'",
239 # ------------------------------------
240 # ------------------------------------
241 Initial_Depth = SIMP(statut = 'o',typ = 'R',
242 # ------------------------------------
243 fr = 'Valeur utilisee avec l''option : CONDITIONS INITIALES :-HAUTEUR CONSTANTE-',
244 ang = 'Value to be used along with the option: INITIAL CONDITIONS -CONSTANT DEPTH-' ),
245 ),# fin b_initial_depth
247 # ------------------------------------
248 b_special = BLOC (condition = "Initial_Conditions == 'Special'",
249 # ------------------------------------
250 # ------------------------------------
251 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
252 # ------------------------------------
253 defaut = "The initial conditions with the water depth should be stated in the CONDIN subroutine"),
256 #PNPN il faut changer la condition pour que cela soit dans maree. il faut une position = global_jdc et remonter # cela
257 # ------------------------------------
258 b_initial_TPXO = BLOC (condition = "Initial_Conditions == 'TPXO satellite altimetry'",
259 # ------------------------------------
260 # ------------------------------------
261 Ascii_Database_For_Tide = SIMP( statut = 'o',
262 # ------------------------------------
263 typ = ('Fichier', 'All Files (*)',),
264 fr = 'Base de donnees de constantes harmoniques tirees du fichier du modele de maree',
265 ang = 'Tide data base of harmonic constituents extracted from the tidal model file',),
266 ), # fin b_initial_TPXO
268 ), # fin Initial_State
271 # ------------------------------------
272 #Computation_Continued = SIMP( statut = 'o',typ = bool,defaut = False,position = "global_jdc"),
273 Computation_Continued = SIMP( statut = 'o',typ = bool,defaut = False),
274 # ------------------------------------
276 # ------------------------------------
277 b_comput_con = BLOC(condition = 'Computation_Continued == True',
278 Computation_Continued_Settings = FACT(statut = 'o',
280 # ------------------------------------
281 Previous_Computation_File_Format = SIMP( statut = 'o',typ = 'TXM',
282 # ------------------------------------
283 into = ['Serafin','MED','SerafinD'],
285 fr = 'Format du fichier de resultats du calcul precedent. Les valeurs possibles sont : \n\
286 - SERAFIN : format standard simple precision pour Telemac; \n\
287 - SERAFIND: format standard double precision pour Telemac; \n\
288 - MED : format MED base sur HDF5',
289 ang = 'Previous computation results file format. Possible values are: \n\
290 - SERAFIN : classical single precision format in Telemac; \n\
291 - SERAFIND: classical double precision format in Telemac; \n\
292 - MED : MED format based on HDF5',),
294 # ------------------------------------
295 Previous_Computation_File = SIMP( statut = 'o',
296 # ------------------------------------
297 typ = ('Fichier', 'Computation File (*.res);;All Files (*)',),
298 fr = "Nom d'un fichier contenant les resultats d'un calcul precedent realise sur le meme maillage \n\
299 et dont le dernier pas de temps enregistre va fournir les conditions initiales pour une suite de de calcul.",
300 ang = 'Name of a file containing the results of an earlier computation which was made on the same mesh.\n\
301 The last recorded time step will provid the initial conditions for the new computation.',
303 # ------------------------------------
304 Initial_Time_Set_To_Zero = SIMP(typ = bool, statut = 'o',
305 # ------------------------------------
306 fr = 'Remet le temps a zero en cas de suite de calcul',
307 ang = 'Initial time set to zero in case of restart',
310 # ------------------------------------
311 Record_Number_For_Restart = SIMP(typ = 'I', statut = 'o', defaut = 0,
312 # ------------------------------------
313 fr = "numero de l'enregistrement de depart dans le fichier du calcul precedent. 0 signifie qu'on prend le dernier enregistrement",
314 ang = "record number to start from in the previous computation file, 0 for last record" ),
317 ),# fin BLOC b_comput_con
319 # ------------------------------------
320 Coupling = FACT( statut = 'o',
321 # ------------------------------------
322 # PNPNPN Attention 1 seul choix possible
323 fr = 'Liste des codes avec lesquels on couple Telemac-2D',
324 ang = 'List of codes to be coupled with Telemac-2D',
326 # ------------------------------------
327 Sisyphe = SIMP(statut = 'o',typ = bool,defaut = False ,
328 # ------------------------------------
329 fr = 'couplage interne avec Sisyphe',
330 ang = 'internal coupling with Sisyphe'),
332 # ------------------------------------
333 Tomawac = SIMP(statut = 'o',typ = bool,defaut = False,
334 # ------------------------------------
335 fr = 'couplage interne avec Tomawac',
336 ang = 'internal coupling with Tomawac'),
338 # ------------------------------------
339 Delwacq = SIMP(statut = 'o',typ = bool,defaut = False,
340 # ------------------------------------
341 fr = 'couplage interne avec Delwacq',
342 ang = 'internal coupling with Delwacq'),
343 # PNPNPN Attention : il faut des mots cles si Delwacq. a voir avec Soizic
348 # ------------------------------------
349 Parallel_Computation = SIMP(statut = 'o',typ = 'TXM',
350 # ------------------------------------
351 # Ce mot clef n existe pas dans le dico
352 into = ['Sequentiel','Parallel'],
353 defaut = 'Sequentiel',),
355 # ------------------------------------
356 b_para = BLOC(condition = 'Parallel_Computation == "Parallel"',
357 # ------------------------------------
358 # ------------------------------------
359 Parallel_Processors = SIMP(statut = 'o',typ = 'I',
360 # ------------------------------------
361 val_min = 0,defaut = 1,
362 fr = 'NOMBRE DE PROCESSEURS EN CALCUL PARALLELE \n\
363 0 : 1 machine, compilation sans bibliotheque de parallelisme \n\
364 1 : 1 machine, compilation avec bibliotheque de parallelisme \n\
365 2 : 2 processeurs ou machines en parallele etc... ',
366 ang = 'NUMBER OF PROCESSORS FOR PARALLEL PROCESSING \n\
367 0 : 1 machine, compiling without parallel library \n\
368 1 : 1 machine, compiling with a parallel library \n\
369 2 : 2 processors or machines in parallel'),
374 # -----------------------------------------------------------------------
375 TIDE_PARAMETERS = PROC(nom = "TIDE_PARAMETERS",op = None,
376 # -----------------------------------------------------------------------
377 # ------------------------------------
378 Inputs_Outputs_For_Tide = FACT( statut = 'o',
379 # ------------------------------------
381 # ------------------------------------
382 Harmonic_Constants_File = SIMP( statut = 'o',
383 # ------------------------------------
384 typ = ('Fichier', 'All Files (*)',),
385 fr = 'Constantes harmoniques extraites du fichier du modele de maree',
386 ang = 'Harmonic constants extracted from the tidalmodel file',),
388 # ------------------------------------
389 Tidal_Model_File = SIMP( statut = 'o',
390 # ------------------------------------
391 typ = ('Fichier', 'All Files (*)',),
392 fr = 'Fichier de geometrie du modele dont sont extraites les constantes harmoniques',
393 ang = 'Geometry file of the model from which harmonic constituents are extracted',),
395 ), # Fin Inputs_Outputs_For_Tide
397 # ------------------------------------
398 Location = FACT( statut = 'o',
399 # ------------------------------------
400 # ------------------------------------
401 Geographic_System = SIMP(statut = 'o',typ = 'TXM',
402 # ------------------------------------
403 into = ["Defined by user", "WGS84 longitude/latitude in real degrees", "WGS84 nothern UTM",\
404 "WGS84 southern UTM","Lambert", "Mercator",],
405 defaut = "Defined by user",
406 fr = 'Systeme de coordonnees geographiques dans lequel est construit le modele numerique.',
407 ang = 'Geographic coordinates system in which the numerical model is built.',),
409 # ------------------------------------
410 b_geo_plan = BLOC(condition = "Geographic_System in ['WGS84 nothern UTM','WGS84 southern UTM','Lambert']",
411 # ------------------------------------
413 # ------------------------------------
414 Zone_Number_In_Geographic_System = SIMP(statut = 'f',typ = 'TXM',
415 # ------------------------------------
416 into = [ 'Lambert 1 north', 'Lambert 2 center', 'Lambert 3 south', \
417 'Lambert 4 corsica', 'Lambert 2 extended', 'UTM zone,E.G.'],
418 fr = "Numero de zone (fuseau ou type de projection) lors de l'utilisation d'une projection plane.\n \
419 Indiquer le systeme geographique dans lequel est construit le modele numerique avec le mot-cle SYSTEME GEOGRAPHIQUE",
420 ang = 'Number of zone when using a plane projection. \n\
421 Indicate the geographic system in which the numerical model is built with the keyword GEOGRAPHIC SYSTEM'),
425 # ------------------------------------
426 Physical_Parameters = FACT(statut = 'o',
427 # ------------------------------------
429 # ------------------------------------
430 Tide_Generating_Force = SIMP(statut = 'o',
431 # ------------------------------------
432 typ = bool, defaut = False),
434 # ------------------------------------
435 b_Tide = BLOC(condition = "Tide_Generating_Force == True",
436 # ------------------------------------
437 # ------------------------------------
438 Longitude_Of_Origin_Point = SIMP(typ = 'R',
439 # ------------------------------------
440 statut = 'o', defaut = 48.,
441 fr = 'Fixe la valeur de la longitude du point origine du modele, lors de l utilisation de la force generatrice de la maree.',
442 ang = 'Give the value of the longitude of the origin point of the model, when taking into account of the tide generator force.',),
444 # ------------------------------------
445 Tidal_Data_Base = SIMP(statut = 'o',typ = 'TXM',
446 # ------------------------------------
447 # Soizic . Il faudrait une consigne ? avec des blocs ?
448 # en suspens pour JMJ
449 into = [ "JMJ", "TPXO", "Miscellaneous (LEGOS-NEA, FES20XX, PREVIMER...)",],
450 fr = 'Pour JMJ, renseigner la localisation du fichier bdd_jmj et geofin dans les mots-cles BASE DE DONNEES DE MAREE \n\
451 et FICHIER DU MODELE DE MAREE. Pour TPXO, LEGOS-NEA, FES20XX et PREVIMER, l utilisateur doit telecharger les fichiers \n\
452 de constantes harmoniques sur internet',
453 ang = 'For JMJ, indicate the location of the files bdd_jmj and geofin with keywords TIDE DATA BASE and TIDAL MODEL FILE.\n\
454 For TPXO, LEGOS-NEA, FES20XX and PREVIMER, the user has to download files of harmonic constituents on the internet',),
456 # ------------------------------------
457 b_tpxo = BLOC(condition = "Tidal_Data_Base == 'TPXO'",
458 # ------------------------------------
460 # ------------------------------------
461 Minor_Constituents_Inference = SIMP( statut = 'o',typ = bool,
462 # ------------------------------------
464 fr = 'Interpolation de composantes harmoniques mineures a partir de celles lues dans les \n\
465 fichiers d entrees lies aux mots-cles BASE BINAIRE 1 DE DONNEES DE MAREE et BASE BINAIRE 2 DE DONNEES DE MAREE',
466 ang = 'Inference of minor constituents from the one read in input files linked to \n\
467 keywords BINARY DATABASE 1 FOR TIDE and BINARY DATABASE 2 FOR TIDE',),
471 # ------------------------------------
472 Binary_Database_1_For_Tide = SIMP( statut = 'o',
473 # ------------------------------------
474 typ = ('Fichier', '(All Files (*),)',),
475 fr = 'Base de donnees binaire 1 tiree du fichier du modele de maree.\n\
476 Dans le cas des donnees satellitaires de TPXO, ce fichier correspond aux donnees de niveau d''eau, par exemple h_tpxo7.2',
477 ang = 'Binary database 1 extracted from the tidal model file.\n\
478 In the case of the TPXO satellite altimetry model, this file should be for free surface level, for instance h_tpxo7.2',),
480 # ------------------------------------
481 Binary_Database_2_For_Tide = SIMP( statut = 'o',
482 # ------------------------------------
483 typ = ('Fichier', '(All Files (*),)',),
484 fr= 'Base de donnees binaire 2 tiree du fichier du modele de maree.\n\
485 Dans le cas des donnees satellitaires de TPXO, ce fichier correspond aux donnees de vitesse de marrees, par exemple u_tpxo7.2',
486 ang = 'Binary database 2 extracted from the tidal model file.\n\
487 In the case of the TPXO satellite altimetry model, this file should be for tidal velocities, for instance u_tpxo7.2' ),
489 ),#fin du bloc b_tpxo
490 ), # Fin du Bloc b_Tide
492 # ------------------------------------
493 Option_For_Tidal_Boundary_Conditions = SIMP( statut = 'o',
494 # ------------------------------------
495 typ = 'TXM', defaut = 'No tide',
496 into = ['No tide', 'Real tide (recommended methodology)', 'Astronomical tide', \
497 'Mean spring tide', 'Mean tide', 'Mean neap tide', \
498 'Astronomical neap tide', 'Real tide (methodology before 2010)'],),
500 # ------------------------------------
501 b_Option_B = BLOC(condition = 'Option_For_Tidal_Boundary_Conditions!= "No tide"',
502 # ------------------------------------
503 # ------------------------------------
504 Coefficient_To_Calibrate_Tidal_Range = SIMP(statut = 'o',
505 # ------------------------------------
506 typ = 'R', defaut = 1.,
507 fr = 'Coefficient pour ajuster le marnage de l''onde de maree aux frontieres maritimes',
508 ang = 'Coefficient to calibrate the tidal range of tidal wave at tidal open boundary conditions'),
510 # ------------------------------------
511 Coefficient_To_Calibrate_Tidal_Velocities = SIMP(statut = 'o',
512 # ------------------------------------
513 typ = 'R', defaut = 999999,
514 fr = 'Coefficient pour ajuster les composantes de vitesse de l''onde de maree aux frontieres maritimes.\n\
515 La valeur par defaut 999999. signifie que c''est la racine carree du Coefficient_De_Calage_Du_Marnage qui est prise',
516 ang = 'Coefficient to calibrate the tidal velocities of tidal wave at tidal open boundary conditions.\n\
517 Default value 999999. means that the square root of Coefficient_To_Calibrate_Tidal_Range is taken'),
519 # ------------------------------------
520 Coefficient_To_Calibrate_Sea_Level = SIMP(statut = 'o',typ = 'R',
521 # ------------------------------------
523 fr = 'Coefficient pour ajuster le niveau de mer',
524 ang = 'Coefficient to calibrate the sea level'),
527 ), #fin Physical_Parameters
528 ) # Fin TIDE_PARAMETERS
530 # -----------------------------------------------------------------------
531 BOUNDARY_CONDITIONS = PROC(nom = "BOUNDARY_CONDITIONS",op = None,
532 # -----------------------------------------------------------------------
533 fr = 'On donne un ensemble de conditions par frontiere liquide',
534 ang = 'One condition set per liquid boundary is given',
535 UIinfo = { "groupes" : ( "CACHE", )},
536 #UIinfo = { "groupes" : ( "iiii", )},
537 # Dans l ideal il faut aller regarder selon les groupes dans le fichier med
538 # en sortie il faut aller chercher le .cli qui va bien
539 #Liquid_Boundaries = FACT(statut = 'f',max = '**',
540 # Options = SIMP(statut = 'f',typ = 'I',into = ['classical boundary conditions','Thompson method based on characteristics'])
541 # Prescribed_Flowrates = SIMP(statut = 'f',typ = 'R'),
542 # Prescribed_Elevations = SIMP(statut = 'f',typ = 'R'),
543 # Prescribed_Velocity = SIMP(statut = 'f',typ = 'R'),
546 # Il va falloir une "traduction dans le langage du dico"
547 # Il faut seulement l un des 3
549 # ------------------------------------
550 Liquid_Boundaries = FACT(statut = 'o',max = '**',
551 # ------------------------------------
553 # ------------------------------------
554 Option_For_Liquid_Boundaries = SIMP(statut = 'f',typ = 'I',
555 # ------------------------------------
556 into = ['Classical boundary conditions','Thompson method based on characteristics'],
557 fr = 'On donne 1 entier par frontiere liquide',
558 ang = 'One integer per liquid boundary is given',),
560 # ------------------------------------
561 Type_Condition = SIMP(statut = 'o',typ = 'TXM',
562 # On ajoute le type pour rendre l 'ihm plus lisible
563 # mais ce mot-cle n existe pas dans le dico
564 # ------------------------------------
565 into = ['Prescribed Flowrates', 'Prescribed Elevations', 'Prescribed Velocity'],),
567 # ------------------------------------
568 b_Flowrates = BLOC (condition = "Type_Condition == 'Prescribed Flowrates'",
569 # ------------------------------------
570 # ------------------------------------
571 Prescribed_Flowrates = SIMP(statut = 'o',
572 # ------------------------------------
574 fr = ' Valeurs des debits imposes aux frontieres liquides entrantes.\n\
575 Lire la partie du mode d''emploi consacree aux conditions aux limites',
576 ang = 'Values of prescribed flowrates at the inflow boundaries.\n\
577 The section about boundary conditions is to be read in the manual'),
580 # ------------------------------------
581 b_Elevations = BLOC (condition = "Type_Condition == 'Prescribed Elevations'",
582 # ------------------------------------
583 # ------------------------------------
584 Prescribed_Elevations = SIMP(statut = 'o',typ = 'R',
585 # ------------------------------------
586 fr = 'Valeurs des cotes imposees aux frontieres liquides entrantes.\n\
587 Lire la partie du mode d''emploi consacree aux conditions aux limites',
588 ang = 'Values of prescribed elevations at the inflow boundaries.\n\
589 The section about boundary conditions is to be read in the manual'),
590 ), # fin b_Elevations
592 # ------------------------------------
593 b_Velocity = BLOC (condition = "Type_Condition == 'Prescribed Velocity'",
594 # ------------------------------------
595 # ------------------------------------
596 Prescribed_Velocities = SIMP(statut = 'o',typ = 'R',
597 # ------------------------------------
598 fr = 'Valeurs des vitesses imposees aux frontieres liquides entrantes.\n\
599 Lire la partie du mode d''emploi consacree aux conditions aux limites',
600 ang = 'Values of prescribed velocities at the liquid inflow boundaries.\n\
601 Refer to the section dealing with the boundary conditions'),
604 ), # fin des Liquid_Boundaries
606 # ------------------------------------
607 Liquid_Boundaries_File = SIMP( statut = 'f',
608 # ------------------------------------
609 typ = ('Fichier', 'All Files (*)',),
610 fr = 'Fichier de variations en temps des conditions aux limites.\n\
611 Les donnees de ce fichier seront a lire sur le canal 12.',
612 ang = 'Variations in time of boundary conditions. Data of this file are read on channel 12.',
616 #PNPN Attention dans le Dico STAGE-DISCHARGE CURVES
617 #PNPN regarder le document de reference pour changer non programme
618 # ------------------------------------
619 Stage_Discharge_Curves = SIMP(statut = 'f',typ = 'TXM',
620 # ------------------------------------
621 into = ["No one","Z(Q)","Q(Z)"],
622 fr = 'Indique si une courbe de tarage doit etre utilisee pour une frontiere',
623 ang = 'Says if a discharge-elevation curve must be used for a given boundary',),
625 # ------------------------------------
626 b_discharge_curve = BLOC (condition = "Stage_Discharge_Curves != 'no'",
627 # ------------------------------------
628 # ------------------------------------
629 Stage_Discharge_Curves_File = SIMP( statut = 'f',
630 # ------------------------------------
631 typ = ('Fichier', 'All Files (*)',),
632 fr = 'Nom du fichier contenant les courbes de tarage',
633 ang = 'Name of the file containing stage-discharge curves',),
634 ), # fin b_discharge_curve
636 # ------------------------------------
637 Elements_Masked_By_User = SIMP(statut = 'o',typ = bool,
638 # ------------------------------------
640 fr = 'Si oui remplir le sous-programme maskob',
641 ang = 'if yes rewrite subroutine maskob',),
643 # ------------------------------------
644 maskob = BLOC (condition = 'Elements_Masked_By_User == True',
645 # ------------------------------------
646 # ------------------------------------
647 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
648 # ------------------------------------
649 defaut = "Remplir le sous-programme maskob"),
652 ) # fin Boundary_Conditions
654 # -----------------------------------------------------------------------
655 NUMERICAL_PARAMETERS = PROC(nom = "NUMERICAL_PARAMETERS",op = None,
656 # -----------------------------------------------------------------------
658 UIinfo = { "groupes" : ( "CACHE", )},
659 #UIinfo = { "groupes" : ( "iiii", )},
661 # ------------------------------------
662 Equations = SIMP(statut = 'o',typ = 'TXM',
663 # ------------------------------------
664 into = ['Saint-Venant EF','Saint-Venant VF','Boussinesq'],
665 defaut = 'Saint-Venant EF',
666 fr = 'Choix des equations a resoudre',
667 ang = 'Choice of equations to solve',),
669 # ------------------------------------
670 Treatment_Of_The_Linear_System = SIMP(statut = 'o', typ = 'TXM',
671 # ------------------------------------
672 into = ["Coupled", "Wave equation"],
673 defaut = "Coupled",),
675 # ------------------------------------
676 Finite_Volume_Scheme = SIMP( statut = 'o',typ = 'TXM',
677 # ------------------------------------
678 into = [ "Roe scheme", "Kinetic order 1", "Kinetic order 2", "Zokagoa scheme order 1",\
679 "Tchamen scheme order 1", "HLLC scheme order 1", "WAF scheme order 2"],
680 defaut = "Kinetic order 1",),
682 # ------------------------------------
683 Solver_Definition = FACT(statut = 'o',
684 # ------------------------------------
686 # ------------------------------------
687 Solver = SIMP(statut = 'o',typ = 'TXM',
688 # ------------------------------------
689 into = ["Conjugate gradient", "Conjugate residual","Conjugate gradient on a normal equation",\
690 "Minimum error", "CGSTAB", "GMRES", "Direct",],
691 fr = 'Permet de choisir le solveur utilise pour la resolution de l''etape de propagation. \n\
692 Toutes les methodes proposees actuellement s''apparentent au Gradient Conjugue. Ce sont :\n\
693 1 : gradient conjugue 2 : residu conjugue 3 : gradient conjugue sur equation normale \n\
694 4 : erreur minimale 5 : gradient conjugue carre (non programme) 6 : gradient conjugue carre stabilise (cgstab)\n\
695 7 : gmres (voir aussi option du solveur) 8 : direct',
696 ang = 'Makes it possible to select the solver used for solving the propagation step.\n\
697 All the currently available methods are variations of the Conjugate Gradient method. They are as follows: \n\
698 1: conjugate gradient 2: conjugate residual 3: conjugate gradient on a normal equation\n\
699 4: minimum error 5: conjugate gradient squared (not implemented) 6: conjugate gradient squared stabilised (cgstab) \n\
700 7: gmres (see option for solver) 8: direct',),
702 # ------------------------------------
703 b_gmres = BLOC (condition = "Solver == 'GMRES'",
704 # ------------------------------------
705 # ------------------------------------
706 Solver_Option = SIMP(statut = 'o',typ = 'I', defaut = 2, val_min = 2,val_max = 15,
707 # ------------------------------------
708 fr = 'la dimension de l''espace de KRILOV',
709 ang = 'dimension of the KRYLOV space',),
712 # ------------------------------------
713 Solver_Accuracy = SIMP(statut = 'o',typ = 'R', defaut = 1e-4,
714 # ------------------------------------
715 fr = 'Precision demandee pour la resolution de l''etape de propagation (cf. Note de principe).',
716 ang = 'Required accuracy for solving the propagation step (refer to Principle note).',),
718 # ------------------------------------
719 Maximum_Number_Of_Iterations_For_Solver = SIMP(statut = 'o',typ = 'I', defaut = 100,
720 # ------------------------------------
721 fr = 'Les algorithmes utilises pour la resolution de l''etape de propagation etant iteratifs, \n\
722 il est necessaire de limiter le nombre d''iterations autorisees.\n\
723 Remarque : un maximum de 40 iterations par pas de temps semble raisonnable.',
724 ang = 'Since the algorithms used for solving the propagation step are iterative, \
725 the allowed number of iterations should be limited.\n\
726 Note: a maximum number of 40 iterations per time step seems to be reasonable.',),
730 # ------------------------------------
731 Linearity = FACT(statut = 'f',
732 # ------------------------------------
733 # ------------------------------------
734 Continuity_Correction = SIMP(typ = bool, statut = 'o',
735 # ------------------------------------
737 fr = 'Corrige les vitesses sur les points avec hauteur imposee ou l equation de continuite n a pas ete resolue',
738 ang = 'Correction of the velocities on points with a prescribed elevation, where the continuity equation has not been solved',),
742 # ------------------------------------
743 Precondionning_setting = FACT(statut = 'f',
744 # ------------------------------------
746 # ------------------------------------
747 Preconditioning = SIMP(statut = 'o',typ = 'TXM',max="**",
748 # ------------------------------------
749 # PNPN Soizic ? Est ce que c'est une liste
750 # Comment fait-on le into est faux : voir l aide
751 # PN Je propose qu 'on puisse faire +sieurs choix et qu on recalcule en sortie
752 # ou on propose des choix croisés parce que toutes les combinaisons ne sont pas possibles ?
754 into = [ "Diagonal", "No preconditioning", "Diagonal condensee", "Crout", "Gauss-Seidel", ],
755 defaut=("Diagonal",), homo="SansOrdreNiDoublon",
756 fr='Permet de preconditionner le systeme de l etape de propagation afin d accelerer la convergence \n\
757 lors de sa resolution. Certains preconditionnements sont cumulables : (les diagonaux 2 ou 3 avec les autres)\n\
758 Pour cette raison on ne retient que les nombres premiers pour designer les preconditionnements. Si l on souhaite en cumuler\n\
759 plusieurs on formera le produit des options correspondantes.',
760 ang='Choice of the preconditioning in the propagation step linear system that the convergence is speeded up\n\
761 when it is being solved.Some operations (either 2 or 3 diagonal preconditioning) can be performed concurrently with the others.\n\
762 Only prime numbers are therefore kept to denote the preconditioning operations. When several of them are to be performed concurrently,\n\
763 the product of relevant options shall be made.',
765 # ------------------------------------
766 C_U_Preconditioning = SIMP(typ = bool, statut = 'o', defaut=False,
767 # ------------------------------------
768 fr = 'Changement de variable de H en C dans le systeme lineaire final',
769 ang = 'Change of variable from H to C in the final linear system'
772 ),# fin Preconditionnement
774 # ------------------------------------
775 Matrix_Informations = FACT(statut = 'f',
776 # ------------------------------------
777 # ------------------------------------
778 Matrix_Vector_Product = SIMP(statut = 'o',typ = 'TXM',
779 # ------------------------------------
780 into = ["Classic", "Frontal"],
782 fr = 'attention, si frontal, il faut une numerotation speciale des points',
783 ang = 'beware, with option 2, a special numbering of points is required',
785 # ------------------------------------
786 Matrix_Storage = SIMP(statut = 'o',typ = 'TXM',
787 # ------------------------------------
788 into = ["Classical EBE","Edge-based storage",],
789 defaut='Edge-based storage',
791 ),# fin Matrix_Informations
794 # ------------------------------------
795 Advection = FACT(statut = 'o',
796 # ------------------------------------
798 # ------------------------------------
799 Type_Of_Advection = FACT(statut = 'o',
800 # ------------------------------------
803 # Tres differents du dico liste de 4
804 # PNPN eclaircir les choix SVP
805 # soizic. choix 3 et 4 et 13 et 14
806 # Attention recalcul de Type_Of_Advection
807 # ------------------------------------
808 Advection_Of_U_And_V = SIMP(statut = 'f',typ = bool, defaut = True,
809 # ------------------------------------
810 fr = 'Prise en compte ou non de la convection de U et V.',
811 ang = 'The advection of U and V is taken into account or ignored.'),
813 # ------------------------------------
814 b_u_v = BLOC( condition = "Advection_Of_U_And_V == True",
815 # ------------------------------------
816 # ------------------------------------
817 Type_Of_Advection_U_And_V = SIMP(statut = 'o',typ = 'TXM',position = "global",
818 # ------------------------------------
819 into = ["Characteristics", "SUPG", "Conservative N-scheme", 'Conservative N-scheme',\
820 'Conservative PSI-scheme', 'Non conservative PSI-scheme', 'Implicit non conservative N-scheme',\
821 'Edge-based N-scheme'],
822 defaut = "Characteristics", ),
824 # ------------------------------------
825 b_upwind = BLOC(condition = "Type_Of_Advection_U_And_V == 'SUPG'",
826 # ------------------------------------
827 # ------------------------------------
828 Supg_Option_U_And_V = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
829 # ------------------------------------
830 into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
832 # ------------------------------------
833 Upwind_Coefficients_Of_U_And_V = SIMP(statut = 'o',typ = 'R', defaut = 1.)
834 # ------------------------------------
838 # ------------------------------------
839 Advection_Of_H = SIMP(statut = 'o',typ = bool, defaut = True,
840 # ------------------------------------
841 fr = 'Prise en compte ou non de la convection de H.',
842 ang = 'The advection of H is taken into account or ignored.'),
844 # ------------------------------------
845 b_h = BLOC( condition = "Advection_Of_H == True",
846 # ------------------------------------
847 # ------------------------------------
848 Type_Of_Advection_H = SIMP(statut = 'o',typ = 'TXM',position = "global",
849 # ------------------------------------
850 into = ["Characteristics", "SUPG", "Conservative N-scheme", 'Conservative N-scheme',\
851 'Conservative PSI-scheme', 'Non conservative PSI-scheme', 'Implicit non conservative N-scheme',\
852 'Edge-based N-scheme'],
853 defaut = "Conservative PSI-scheme",),
854 # ------------------------------------
855 b_upwind_H = BLOC(condition = "Type_Of_Advection_H == 'SUPG'",
856 # ------------------------------------
857 # ------------------------------------
858 Supg_Option_H = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
859 # ------------------------------------
860 into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
862 # ------------------------------------
863 Upwind_Coefficients_Of_H = SIMP(statut = 'o',typ = 'R', defaut = 1.)
864 # ------------------------------------
868 # ------------------------------------
869 Advection_Of_K_And_Epsilon = SIMP(statut = 'o',typ = bool, defaut = True,
870 # ------------------------------------
871 fr = 'Prise en compte ou non de la convection de Tracer.',
872 ang = 'The advection of Tracer is taken into account or ignored.'),
874 # ------------------------------------
875 b_k = BLOC( condition = "Advection_Of_K_And_Epsilon == True",
876 # ------------------------------------
877 # ------------------------------------
878 Type_Of_Advection_K_And_Epsilon = SIMP(statut = 'o',typ = 'TXM',position = "global",
879 # ------------------------------------
880 into = ["Characteristics", "SUPG", "Conservative N-scheme", 'Conservative N-scheme',\
881 'Conservative PSI-scheme', 'Non conservative PSI-scheme', 'Implicit non conservative N-scheme',\
882 'Edge-based N-scheme'],
883 defaut = "Characteristics",),
884 # ------------------------------------
885 b_upwind_k = BLOC(condition = "Type_Of_Advection_K_And_Epsilon == 'SUPG'",
886 # ------------------------------------
887 # ------------------------------------
888 Supg_Option_K_And_Epsilon = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
889 # ------------------------------------
890 into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
892 # ------------------------------------
893 Upwind_Coefficients_Of_K_And_Epsilon = SIMP(statut = 'o',typ = 'R', defaut = 1.)
894 # ------------------------------------
898 # ------------------------------------
899 Advection_Of_Tracers = SIMP(statut = 'o',typ = bool, defaut = True,
900 # ------------------------------------
901 fr = 'Prise en compte ou non de la convection de Tracer.',
902 ang = 'The advection of Tracer is taken into account or ignored.'),
904 # ------------------------------------
905 b_tracers = BLOC( condition = "Advection_Of_Tracers == True",
906 # ------------------------------------
907 # ------------------------------------
908 Type_Of_Advection_Tracers = SIMP(statut = 'o',typ = 'TXM',position = "global",
909 # ------------------------------------
910 into = ["Characteristics", "SUPG", "Conservative N-scheme", 'Conservative N-scheme',\
911 'Conservative PSI-scheme', 'Non conservative PSI-scheme', 'Implicit non conservative N-scheme',\
912 'Edge-based N-scheme'],
914 # ------------------------------------
915 b_upwind_Tracers = BLOC(condition = "Type_Of_Advection_Tracers == 'SUPG'",
916 # ------------------------------------
917 # ------------------------------------
918 Supg_Option_Tracers = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
919 # ------------------------------------
920 into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
922 # ------------------------------------
923 Upwind_Coefficients_Of_Tracers = SIMP(statut = 'o',typ = 'R', defaut = 1.)
924 # ------------------------------------
925 ), # fin b_upwind_Tracers
928 # ------------------------------------
929 b_max = BLOC( condition = "(Advection_Of_Tracers == True and Type_Of_Advection_Tracers == 'Edge-based N-scheme') or (Advection_Of_K_And_Epsilon == True and Type_Of_Advection_K_And_Epsilon == 'Edge-based N-scheme') or (Advection_Of_U_And_V == True and Type_Of_Advection_U_And_V == 'Edge-based N-scheme') or ( Advection_Of_H == True and Type_Of_Advection_H == 'Edge-based N-scheme')",
930 # ------------------------------------
931 # ------------------------------------
932 Maximum_Number_Of_Iterations_For_Advection_Schemes = SIMP( statut = 'o',typ = 'I', defaut = 10 ,
933 # ------------------------------------
934 fr = 'Seulement pour schemes Edge-based N-scheme',
935 ang = 'Only for Edge-based N-scheme',),
938 # ------------------------------------
939 b_traitement = BLOC( condition = "(Advection_Of_Tracers == True and Type_Of_Advection_Tracers in ['Edge-based N-scheme','SUPG','Conservative N-scheme','Conservative PSI-scheme']) or (Advection_Of_K_And_Epsilon == True and Type_Of_Advection_K_And_Epsilon in ['Edge-based N-scheme','SUPG','Conservative N-scheme','Conservative PSI-scheme']) or (Advection_Of_U_And_V == True and Type_Of_Advection_U_And_V in ['Edge-based N-scheme','SUPG','Conservative N-scheme','Conservative PSI-scheme']) or ( Advection_Of_H == True and Type_Of_Advection_H in ['Edge-based N-scheme','SUPG','Conservative N-scheme','Conservative PSI-scheme'])",
940 # ------------------------------------
942 # ------------------------------------
943 Treatment_Of_Fluxes_At_The_Boundaries = SIMP( statut = 'o',typ = 'TXM',
944 # ------------------------------------
945 into = ["Priority to prescribed values","Priority to fluxes"],
946 fr = 'Utilise pour les schemas SUPG, PSI et N, \n\
947 si Priorité aux flux, on ne retrouve pas exactement les valeurs imposees des traceurs,mais le flux est correct',
948 ang = 'Used so far only with the SUPG, PSI and N schemes.\n\
949 if Priority to fluxes, Dirichlet prescribed values are not obeyed,but the fluxes are correct',),
951 ), # fin b_traitement
952 ), # Fin Type_Of_Advection
956 # recalculer la liste de 4
957 # Attention bloc selon le type de convection
958 # ------------------------------------
959 # SUPG = FACT(statut = 'o',
960 # ------------------------------------
961 # ------------------------------------
962 # Supg_Option_U_And_V = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
963 # ------------------------------------
964 # into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
965 # ------------------------------------
966 # Supg_Option_H = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
967 # ------------------------------------
968 # into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
969 # ------------------------------------
970 # Supg_Option_Tracers = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
971 # ------------------------------------
972 # into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
973 # ------------------------------------
974 # Supg_Option_K_And_Epsilon = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
975 # ------------------------------------
976 # into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
979 # ------------------------------------
980 Mass_Lumping_On_H = SIMP(statut = 'o',typ = 'R', defaut = 0,
981 # ------------------------------------
982 fr = 'TELEMAC offre la possibilite d''effectuer du mass-lumping sur H ou U.\n\
983 Ceci revient a ramener tout ou partie (suivant la valeur de ce coefficient) des matrices AM1 (h) ou AM2 (U) \n\
984 et AM3 (V) sur leur diagonale. Cette technique permet d''accelerer le code dans des proportions tres\n\
985 importantes et de le rendre egalement beaucoup plus stable. Cependant les solutions obtenues se trouvent lissees.\n\
986 Ce parametre fixe le taux de mass-lumping effectue sur h.',
987 ang = 'TELEMAC provides an opportunity to carry out mass-lumping either on C,H or on the velocity. \n\
988 This is equivalent to bringing the matrices AM1(h) or AM2(U) and AM3(V) wholly or partly, back onto their diagonal.\n\
989 Thanks to that technique, the code can be speeded up to a quite significant extent and it can also be made much \n\
990 more stable. The resulting solutions, however, become artificially smoothed. \n\
991 This parameter sets the extent of mass-lumping that is performed on h.'),
993 # ------------------------------------
994 Mass_Lumping_On_Velocity = SIMP(statut = 'o', typ = 'R', defaut = 0,
995 # ------------------------------------
996 fr = 'Fixe le taux de mass-lumping effectue sur la vitesse.',
997 ang = 'Sets the amount of mass-lumping that is performed on the velocity.'),
999 # ------------------------------------
1000 Mass_Lumping_For_Weak_Characteristics = SIMP(statut = 'o',typ = 'R',defaut = 0,
1001 # ------------------------------------
1002 fr = 'Applique a la matrice de masse',
1003 ang = 'To be applied to the mass matrix',),
1004 # ------------------------------------
1005 Free_Surface_Gradient_Compatibility = SIMP(statut = 'o',typ = 'R',defaut = 1.,
1006 # ------------------------------------
1007 fr = 'Des valeurs inferieures a 1 suppriment les oscillations parasites',
1008 ang = 'Values less than 1 suppress spurious oscillations'),
1010 # ------------------------------------
1011 Number_Of_Sub_Iterations_For_Non_Linearities = SIMP(statut = 'o',typ = 'I',
1012 # ------------------------------------
1014 fr = 'Permet de reactualiser, pour un meme pas de temps, les champs convecteur et propagateur \n\
1015 au cours de plusieurs sous-iterations.\n\
1016 A la premiere sous-iteration, ces champs sont donnes par C et le champ de vitesses au pas de temps precedent.\n\
1017 Aux iterations suivantes, ils sont pris egaux au champ de vitesse obtenu a la fin de la sous-iteration precedente. \n\
1018 Cette technique permet d''ameliorer la prise en compte des non linearites.',
1019 ang = 'Used for updating, within one time step, the advection and propagation field.\n\
1020 upon the first sub-iteration, \n\
1021 these fields are given by C and the velocity field in the previous time step. At subsequent iterations, \n\
1022 the results of the previous sub-iteration is used to update the advection and propagation field.\n\
1023 The non-linearities can be taken into account through this technique.',),
1028 #PNPNPN Il faut recalculer le MCSIMP Propagation
1029 # ------------------------------------
1030 Propagation = FACT(statut = 'o',
1031 # ------------------------------------
1032 # ------------------------------------
1033 Initial_Guess_For_H = SIMP(statut = 'o',typ = 'TXM',
1034 # ------------------------------------
1035 into = ['Zero', 'Previous', 'Extrapolation'],
1036 defaut = 'Previous',
1037 fr = 'Tir initial du solveur de l etape de propagation. Offre la possibilite de modifier la valeur initiale de DH,\n\
1038 accroissement de H, a chaque iteration, dans l etape de propagation en utilisant les valeurs finales de cette variable \n\
1039 aux pas de temps precedents. Ceci peut permettre daccelerer la vitesse de convergence lors de la resolution du systeme.',
1040 ang = 'Initial guess for the solver in the propagation step. Makes it possible to modify the initial value of H, \n\
1041 upon each iteration in the propagation step, by using the ultimate values this variable had in the earlier time steps.\n\
1042 Thus, the convergence can be speeded up when the system is being solved.',),
1045 # ------------------------------------
1046 Linearized_Propagation = SIMP(statut = 'o',typ = bool,defaut = False,
1047 # ------------------------------------
1048 fr = 'Permet de lineariser l''etape de propagation; \n\
1049 par exemple lors de la realisation de cas tests pour lesquels on dispose d une solution analytique dans le cas linearise.',
1050 ang = 'Provided for linearizing the propagation step; \n\
1051 e.g. when performing test-cases for which an analytical solution in the linearized case is available.' ),
1053 # ------------------------------------
1054 b_linear = BLOC(condition = "Linearized_Propagation == True ",
1055 # ------------------------------------
1056 # ------------------------------------
1057 Mean_Depth_For_Linearization = SIMP(statut = 'o',typ = 'R', defaut = 0.0, val_min = 0,
1058 # ------------------------------------
1059 fr = 'Fixe la hauteur d eau autour de laquelle s effectue la linearisation lorsque l option PROPAGATION LINEARISEE est choisie.',
1060 ang = 'Sets the water depth about which the linearization is made when the LINEARIZED PROPAGATION OPTION is selected.'),
1062 # ------------------------------------
1063 Initial_Guess_For_U = SIMP(statut = 'o',typ = 'TXM',
1064 # ------------------------------------
1065 into = ['Zero', 'Previous', 'Extrapolation'],
1066 defaut = 'Previous',
1067 fr = 'Tir initial du solveur de l etape de propagation. Offre la possibilite de modifier la valeur initiale de DH,\n\
1068 accroissement de U, a chaque iteration, dans l etape de propagation en utilisant les valeurs finales de cette variable \n\
1069 aux pas de temps precedents. Ceci peut permettre daccelerer la vitesse de convergence lors de la resolution du systeme.',
1070 ang = 'Initial guess for the solver in the propagation step. Makes it possible to modify the initial value of U, \n\
1071 upon each iteration in the propagation step, by using the ultimate values this variable had in the earlier time steps.\n\
1072 Thus, the convergence can be speeded up when the system is being solved.',),
1076 ), # fin Propagation
1079 # ------------------------------------
1080 Diffusion = FACT(statut = 'o',
1081 # ------------------------------------
1083 # ------------------------------------
1084 Diffusion_Of_Velocity = SIMP( statut='o',typ=bool,
1085 # ------------------------------------
1087 fr = 'Permet de decider si lon prend ou non en compte la diffusion des vitesses.',
1088 ang= 'Makes it possible to decide whether the diffusion of velocity (i.e. viscosity) is taken into account or not.',
1090 # ------------------------------------
1091 b_Diffu = BLOC(condition = 'Diffusion_Of_Velocity == True',
1092 # ------------------------------------
1093 # ------------------------------------
1094 Implicitation_For_Diffusion_Of_Velocity = SIMP(statut = 'o',typ = 'R',defaut = 0,
1095 # ------------------------------------
1096 fr = 'Fixe la valeur du coefficient d''implicitation sur les termes de diffusion des vitesses',
1097 ang = 'Sets the value of the implicitation coefficient for the diffusion of velocity',),
1099 # ------------------------------------
1100 Option_For_The_Diffusion_Of_Velocities = SIMP( statut='o',typ='TXM',
1101 # ------------------------------------
1102 defaut='Diffusion in the form div( nu grad(U))' ,
1103 into=['Diffusion in the form div( nu grad(U))','Diffusion in the form 1/h div ( h nu grad(U))'],
1104 fr = '1: Diffusion de la forme div( nu grad(U) ) 2: Diffusion de la forme 1/h div ( h nu grad(U) )',
1105 ang= '1: Diffusion in the form div( nu grad(U) ) 2: Diffusion in the form 1/h div ( h nu grad(U) )',),
1109 # ------------------------------------
1110 Discretization_Implicitation = FACT(statut = 'f',
1111 # ------------------------------------
1113 # ------------------------------------------------------------------
1114 Discretizations_In_Space_U_And_V = SIMP(statut = 'o',typ = 'TXM',
1115 # ------------------------------------------------------------------
1116 into = ["Linear", "Quasi-bubble", "Quadratic"],
1117 defaut = "Linear",),
1118 # ------------------------------------------------------------------
1119 Discretizations_In_Space_H = SIMP(statut = 'o',typ = 'TXM',
1120 # ------------------------------------------------------------------
1121 into = ["Linear", "Quasi-bubble", "Quadratic"],
1122 defaut = "Linear",),
1123 # ------------------------------------------------------------------
1124 Discretizations_In_Space_K_And_Epsilon = SIMP(statut = 'f',typ = 'TXM',
1125 # ------------------------------------------------------------------
1126 into = ["Linear", "Quasi-bubble", "Quadratic"],
1127 defaut = "Linear",),
1128 # ------------------------------------------------------------------
1129 Discretizations_In_Space_Tracers = SIMP(statut = 'f',typ = 'TXM',
1130 # ------------------------------------------------------------------
1131 into = ["Linear", "Quasi-bubble", "Quadratic"],
1132 defaut = "Linear",),
1134 # ------------------------------------
1135 Implicitation_For_Depth = SIMP(statut = 'o',typ = 'R',defaut = 0.55,
1136 # ------------------------------------
1137 fr = 'Fixe la valeur du coefficient d''implicitation sur C dans l''etape de propagation (cf. Note de principe).\n\
1138 Les valeurs inferieures a 0.5 donnent un schema instable.',
1139 ang = 'Sets the value of the implicitation coefficient for C (the celerity of waves) in the propagation step (refer to principle note).\n\
1140 Values below 0.5 result in an unstable scheme.'),
1142 # ------------------------------------
1143 Implicitation_For_Velocity = SIMP(statut = 'o',typ = 'R',defaut = 0.55,
1144 # ------------------------------------
1145 fr = 'Fixe la valeur du coefficient d''implicitation sur la vitesse dans l''etape de propagation (cf. Note de principe).\n\
1146 Les valeurs inferieures a 0.5 donnent un schema instable.',
1147 ang = 'Sets the value of the implicitation coefficient for velocity in the propagation step (refer to principle note).\n\
1148 Values below 0.5 result in an unstable condition.'),
1150 ), # fin Discretization_Implicitation
1153 # ------------------------------------
1154 Tidal=FACT(statut='f',
1155 # ------------------------------------
1156 Tidal_Flats = SIMP(statut = 'o',typ = bool,defaut = True,
1157 # ------------------------------------
1158 fr = 'permet de supprimer les tests sur les bancs decouvrants si on est certain qu''il n''y en aura pas, En cas de doute : oui',
1159 ang = 'When no,the specific treatments for tidal flats are by-passed. This spares time, but of course you must be sure that you have no tidal flats'),
1161 # ------------------------------------
1162 b_tidal_flats = BLOC(condition = 'Tidal_Flats == True',
1163 # ------------------------------------
1164 # ------------------------------------
1165 Option_For_The_Treatment_Of_Tidal_Flats = SIMP(statut = 'o',typ = 'TXM',
1166 # ------------------------------------
1167 into = ["Equations solved everywhere with correction on tidal flats", "Dry elements frozen", "1 but with porosity (defina method)",],
1168 defaut="Equations solved everywhere with correction on tidal flats",),
1170 # ------------------------------------
1171 b_option_tidal_flats = BLOC(condition = 'Option_For_The_Treatment_Of_Tidal_Flats == "Equations solved everywhere with correction on tidal flats"',
1172 # ------------------------------------
1173 # ------------------------------------
1174 Treatment_Of_Negative_Depths = SIMP( statut = 'o',typ = 'TXM',
1175 # ------------------------------------
1176 into = [ 'No treatment', 'Smoothing', 'Flux control'],
1177 defaut = 'Smoothing' ,),
1178 ), # fin bloc b_option_tidal_flats
1180 # ------------------------------------
1181 Threshold_For_Negative_Depths = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
1182 # ------------------------------------
1183 fr = 'En dessous du seuil, les hauteurs negatives sont lissees',
1184 ang = 'Below the threshold the negative depths are smoothed',),
1186 # ------------------------------------
1187 Threshold_Depth_For_Receding_Procedure = SIMP(statut = 'o',typ = 'R',defaut = 0 ,
1188 # ------------------------------------
1189 fr = 'Si > 0., declenche la procedure de ressuyage qui evite le franchissement parasite des digues mal discretisees',
1190 ang = 'If > 0., will trigger the receding procedure that avoids overwhelming of dykes which are too loosely discretised ',),
1193 # ------------------------------------
1194 H_Clipping = SIMP(statut = 'o',typ = bool,defaut = False,
1195 # ------------------------------------
1196 fr = 'Determine si on desire ou non limiter par valeur inferieure la hauteur d eau H (dans le cas des bancs decouvrants par exemple).',
1197 ang = 'Determines whether limiting the water depth H by a lower value desirable or not. (for instance in the case of tidal flats)\n\
1198 This key-word may have an influence on mass conservation since the truncation of depth is equivalent to adding mass.',),
1200 # ------------------------------------
1201 b_clipping = BLOC(condition = 'H_Clipping == True',
1202 # ------------------------------------
1203 # ------------------------------------
1204 Minimum_Value_Of_Depth = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
1205 # ------------------------------------
1206 fr = 'Fixe la valeur minimale de a lorsque loption CLIPPING DE H est activee.',
1207 ang = 'Sets the minimum H value when option H CLIPPING is implemented. Not fully implemented.',),
1209 ), # fin bloc b_tidal_flats
1212 # ------------------------------------
1214 # ------------------------------------
1216 # ------------------------------------
1217 Newmark_Time_Integration_Coefficient = SIMP( statut = 'o',typ = 'TXM',
1218 # ------------------------------------
1219 defaut = "Euler explicite",
1220 into = ["Euler explicite","Order 2 in time"],),
1222 # ------------------------------------
1223 Option_For_Characteristics = SIMP( statut = 'o',typ = 'TXM',
1224 # ------------------------------------
1226 into = ['Strong','Weak',],),
1231 )# fin NUMERICAL_PARAMETERS
1233 # -----------------------------------------------------------------------
1234 PHYSICAL_PARAMETERS = PROC(nom = "PHYSICAL_PARAMETERS",op = None,
1235 # -----------------------------------------------------------------------
1236 UIinfo = { "groupes" : ( "CACHE", )},
1237 # ------------------------------------
1238 Friction_Setting = FACT(statut = 'o',
1239 # ------------------------------------
1240 # ------------------------------------
1241 Friction_Data_File = SIMP( statut = 'o',
1242 # ------------------------------------
1243 typ = ('Fichier', ';;All Files (*)'),
1244 fr = 'fichier de donnees pour le frottement',
1245 ang = 'friction data file',),
1247 # ------------------------------------
1248 Depth_In_Friction_Terms = SIMP( statut = 'o',typ = 'TXM',
1249 # ------------------------------------
1251 into = ("Nodal", "Average"),),
1253 # ------------------------------------
1254 Law_Of_Bottom_Friction = SIMP( statut = 'o',typ = 'TXM',
1255 # ------------------------------------
1256 defaut = 'No friction' ,
1257 into = ('No friction', 'Haaland', 'Chezy', 'Strickler', 'Manning', 'Nikuradse','Log law','Colebrooke_white'),
1258 fr = 'selectionne le type de formulation utilisee pour le calcul du frottement sur le fond.',
1259 ang = 'Selects the type of formulation used for the bottom friction.',),
1261 # ------------------------------------
1262 b_Law_Friction = BLOC(condition = "Law_Of_Bottom_Friction!= 'No friction'",
1263 # ------------------------------------
1264 # ------------------------------------
1265 Friction_Coefficient = SIMP( statut = 'o',typ = 'R',
1266 # ------------------------------------
1268 fr = 'Fixe la valeur du coefficient de frottement pour la formulation choisie. \
1269 Attention, la signification de ce chiffre varie suivant la formule choisie : \
1270 1 : coefficient lineaire 2 : coefficient de Chezy 3 : coefficient de Strickler \
1271 4 : coefficient de Manning 5 : hauteur de rugosite de Nikuradse',
1272 ang = 'Sets the value of the friction coefficient for the selected formulation. \
1273 It is noteworthy that the meaning of this figure changes according to the selected formula (Chezy, Strickler, etc.) : \
1274 1 : linear coefficient 2 : Chezy coefficient 3 : Strickler coefficient 4 : Manning coefficient 5 : Nikuradse grain size',),
1275 ), # Fin b_Law_Friction
1277 # ------------------------------------
1278 b_Colebrooke_White = BLOC(condition = "Law_Of_Bottom_Friction == 'Colebrooke_white'",
1279 # ------------------------------------
1280 # ------------------------------------
1281 Manning_Default_Value_For_Colebrook_White_Law = SIMP( statut = 'o',typ = 'R',
1282 # ------------------------------------
1284 fr = 'valeur par defaut du manning pour la loi de frottement de Colebrook-White ',
1285 ang = 'Manning default value for the friction law of Colebrook-White ',),
1286 ), # Fin b_Colebrooke_White
1288 # ------------------------------------
1289 Non_Submerged_Vegetation_Friction = SIMP( statut = 'o',typ = bool,
1290 # ------------------------------------
1292 fr = 'calcul du frottement du a la vegetation non submergee',
1293 ang = 'friction calculation of the non-submerged vegetation',),
1295 # ------------------------------------
1296 b_Non_Sub = BLOC(condition = ' Non_submerged_Vegetation_Friction == True',
1297 # ------------------------------------
1298 # ------------------------------------
1299 Diameter_Of_Roughness_Elements = SIMP( statut = 'o',typ = 'R',
1300 # ------------------------------------
1302 fr = 'diametre des elements de frottements',
1303 ang = 'diameter of roughness element',),
1305 # ------------------------------------
1306 Spacing_Of_Roughness_Elements = SIMP( statut = 'o',typ = 'R',
1307 # ------------------------------------
1309 fr = 'espacement des elements de frottement',
1310 ang = 'spacing of rouhness element',),
1313 # ------------------------------------
1314 Law_Of_Friction_On_Lateral_Boundaries = SIMP( statut = 'o',typ = 'TXM',
1315 # ------------------------------------
1316 defaut = "No friction" ,
1317 into = ("No friction", "Haaland", "Chezy", "Strickler", "Manning", "Nikuradse", "Log law", "Colebrook-white"),
1318 fr = 'selectionne le type de formulation utilisee pour le calcul du frottement sur les parois laterales.',
1319 ang = 'Selects the type of formulation used for the friction on lateral boundaries.',),
1322 # ------------------------------------
1323 b_Fric = BLOC(condition = 'Law_Of_Friction_On_Lateral_Boundaries != "No friction"',
1324 # ------------------------------------
1326 # PNPNPN soizic ?Ne faut-il pas un bloc sur Law_Of_Friction_On_Lateral_Boundaries
1327 # ------------------------------------
1328 Roughness_Coefficient_Of_Boundaries = SIMP( statut = 'o',typ = 'R',
1329 # ------------------------------------
1331 fr = 'Fixe la valeur du coefficient de frottement sur les frontieres solides avec un regime turbulent rugueux\n\
1332 sur les bords du domaine. meme convention que pour le coefficient de frottement',
1333 ang = 'Sets the value of the friction coefficient of the solid boundary with the bed roughness option. Same meaning than friction coefficient',),
1335 # ------------------------------------
1336 Maximum_Number_Of_Friction_Domains = SIMP( statut = 'o',typ = 'I',
1337 # ------------------------------------
1339 fr = 'nombre maximal de zones pouvant etre definies pour le frottement. Peut etre augmente si necessaire',
1340 ang = 'maximal number of zones defined for the friction. Could be increased if needed',),
1343 # ------------------------------------
1344 Definition_Of_Zones = SIMP(typ = bool, statut = 'o', defaut = False,
1345 # ------------------------------------
1346 fr = 'Declenche l''appel a def_zones, pour donner un numero de zone a chaque point',
1347 ang = 'Triggers the call to def_zones to give a zone number to every point',),
1349 # ------------------------------------
1350 b_def_zone = BLOC (condition = 'Definition_Of_Zones == True',
1351 # ------------------------------------
1352 # ------------------------------------
1353 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM", defaut = "complete DEF_ZONES subroutine"),
1354 # ------------------------------------
1357 ), # Fin du bloc Friction
1358 # ------------------------------------
1359 Meteorology = FACT(statut = 'f',
1360 # ------------------------------------
1362 # ------------------------------------
1363 Wind = SIMP(statut = 'o',typ = bool,defaut = False,
1364 # ------------------------------------
1365 fr = 'Prise en compte ou non des effets du vent.',
1366 ang = 'Determines whether the wind effects are to be taken into account or not.'),
1368 # ------------------------------------
1369 b_Wind = BLOC(condition = "Wind == True",
1370 # ------------------------------------
1371 # ------------------------------------
1372 Wind_Velocity_Along_X = SIMP(statut = 'o',typ = 'R', defaut = 0.,
1373 # ------------------------------------
1374 fr = 'Composante de la vitesse du vent suivant l''axe des x (m/s).',
1375 ang = 'Wind velocity, component along x axis (m/s).',),
1377 # ------------------------------------
1378 Wind_Velocity_Along_Y = SIMP(statut = 'o',typ = 'R',defaut = 0.,
1379 # ------------------------------------
1380 fr = 'Composante de la vitesse du vent suivant l''axe des y (m/s).',
1381 ang = 'Wind velocity, component along y axis (m/s).',),
1383 # ------------------------------------
1384 Threshold_Depth_For_Wind = SIMP(statut = 'o',typ = 'R',defaut = 0.,
1385 # ------------------------------------
1386 fr = 'Retire la force due au vent dans les petites profondeurs',
1387 ang = 'Wind is not taken into account for small depths' ),
1389 # ------------------------------------
1390 Coefficient_Of_Wind_Influence = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
1391 # ------------------------------------
1392 fr = 'Fixe la valeur du coefficient d entrainement du vent (cf. Note de principe).',
1393 ang = 'Sets the value of the wind driving coefficient. Refer to principle note.',),
1395 # ------------------------------------
1396 Option_For_Wind = SIMP( statut = 'o',typ = 'TXM', defaut = 0 ,
1397 # ------------------------------------
1398 into = ["No wind","Constant in time and space","Variable in time","Variable in time and space"],
1399 fr = 'donne les options pour introduire le vent',
1400 ang = 'gives option for managing the wind'),
1402 # ------------------------------------
1403 file_For_wind = BLOC (condition = 'Option_For_Wind == "Variable in time" or Option_For_Wind == "Variable in time and space"',
1404 # ------------------------------------
1405 # ------------------------------------
1406 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
1407 # ------------------------------------
1408 defaut = "give formated file 3"),
1409 ), # fin bloc file_For_wind
1411 # ------------------------------------
1412 speed_For_wind = BLOC (condition = 'Option_For_Wind == "Constant in time and space"',
1413 # ------------------------------------
1414 # ------------------------------------
1415 Speed_And_Direction_Of_Wind = SIMP( statut = 'o', defaut = (0.0, 0.0) ,
1416 # ------------------------------------
1417 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1418 fr = 'Donne la vitesse et la direction (en degres de 0 a 360, 0 etant y = 0 et x = +inf) du vent',
1419 ang = 'gives the speed and direction (degre (from 0 to 360), 0 given y = 0 anx x = +infinity)',),
1424 # ------------------------------------
1425 Air_Pressure = SIMP(statut = 'o',typ = bool, defaut = False,
1426 # ------------------------------------
1427 fr = 'Permet de decider si l''on prend ou non en compte l''influence d''un champ de pression.',
1428 ang = 'Provided to decide whether the influence of an atmosphere field is taken into account or not.'),
1430 # ------------------------------------
1431 b_air = BLOC(condition = "Air_Pressure == True",
1432 # ------------------------------------
1433 # ------------------------------------
1434 Value_Of_Atmospheric_Pressure = SIMP( statut = 'o',typ = 'R',
1435 # ------------------------------------
1437 fr = 'donne la valeur de la pression atmospherique lorsquelle est constante en temps et en espace',
1438 ang = 'gives the value of atmospheric pressure when it is contant in time and space',),
1441 # ------------------------------------
1442 Rain_Or_Evaporation = SIMP(statut = 'o',typ = bool,
1443 # ------------------------------------
1445 fr = 'Pour ajouter un apport ou une perte d''eau en surface.',
1446 ang = 'to add or remove water at the free surface. ',),
1448 # -----------------------------------
1449 b_Rain = BLOC(condition = "Rain_Or_Evaporation == True",
1450 # ------------------------------------
1451 # ------------------------------------
1452 Rain_Or_Evaporation_In_Mm_Per_Day = SIMP(statut = 'o',typ = 'I',defaut = 0.),
1453 # ------------------------------------
1456 ), # fin Meteorology
1458 # ------------------------------------
1459 Wave = FACT(statut = 'f',
1460 # ------------------------------------
1462 # ------------------------------------
1463 Wave_Driven_Currents = SIMP(statut = 'o',
1464 # ------------------------------------
1465 typ = bool, defaut = False,
1466 fr = 'Active la prise en compte des courants de houle',
1467 ang = 'Wave driven currents are taken into account.'),
1469 # ------------------------------------
1470 b_Wave = BLOC(condition = "Wave_Driven_Currents == True",
1471 # ------------------------------------
1472 # ------------------------------------
1473 Record_Number_In_Wave_File = SIMP(statut = 'o',typ = 'I', defaut = 1,
1474 # ------------------------------------
1475 fr = 'Numero d enregistrement dans le fichier des courants de houle',
1476 ang = 'Record number to read in the wave driven currents file'),
1482 # ------------------------------------
1483 Parameters_Estimation = FACT(statut = 'f',
1484 # ------------------------------------
1485 # ------------------------------------
1486 Parameter_Estimation = SIMP( statut = 'o',typ = 'TXM', into = ["Friction","Frottement","Steady"],
1487 # ------------------------------------
1488 fr = 'Liste des parametres a estimer',
1489 ang = 'List of parameter to be estimated',),
1491 # ------------------------------------
1492 Identification_Method = SIMP( statut = 'o',typ = 'TXM',
1493 # ------------------------------------
1494 into = ["List of tests", "Gradient simple", "Conj gradient", "Lagrange interp."],
1495 defaut = 'GRadient simple',),
1497 # ------------------------------------
1498 Maximum_Number_Of_Iterations_For_Identification = SIMP(statut = 'o',typ = 'I',defaut = 20,
1499 # ------------------------------------
1500 fr = 'chaque iteration comprend au moins un calcul direct et un calcul adjoint',
1501 ang = 'every iteration implies at least a direct and an adjoint computation', ),
1503 # ------------------------------------
1504 Cost_Function = SIMP(statut = "f",typ = 'TXM',
1505 # ------------------------------------
1506 defaut = 'Computed with h, u , v',
1507 into = ['Computed with h, u , v', 'Computed with c, u , v'],),
1509 # ------------------------------------
1510 Tolerances_For_Identification = FACT( statut = 'o',
1511 # ------------------------------------
1512 # PNPNPN recalculer en liste de 4 reels
1513 # ------------------------------------
1514 Tolerance_For_H = SIMP( statut = 'o',typ = 'R', defaut=1.E-3,
1515 # ------------------------------------
1516 fr = "precision absolue sur H",
1517 ang = "absolute precision on H",),
1518 # ------------------------------------
1519 Tolerance_For_U = SIMP( statut = 'o',typ = 'R', defaut=1.E-3,
1520 # ------------------------------------
1521 fr = "precision absolue sur U",
1522 ang = "absolute precision on U",),
1523 # ------------------------------------
1524 Tolerance_For_V = SIMP( statut = 'o',typ = 'R', defaut=1.E-3,
1525 # ------------------------------------
1526 fr = "precision absolue sur V",
1527 ang = "absolute precision on V",),
1528 # ------------------------------------
1529 Tolerance_For_cout = SIMP( statut = 'o',typ = 'R', defaut=1.E-4,
1530 # ------------------------------------
1531 fr = "precision relative sur la fonction cout",
1532 ang = "relative precision on the cost function",),
1533 ),# fin Tolerances_For_Identification
1535 ), # fin fact Parameters_Estimation
1537 # ------------------------------------
1538 Sources = FACT( statut = 'f',
1539 # ------------------------------------
1540 # ------------------------------------
1541 Number_Of_Sources = SIMP( statut = 'o',typ = 'I', defaut = 0 ,),
1542 # ------------------------------------
1543 # Attention a la sortie a reformatter. voir page 68 du user manuel V7
1545 # ------------------------------------
1546 sources_exists = BLOC(condition = "Number_Of_Sources!= 0",
1547 # ------------------------------------
1549 # ------------------------------------
1550 Sources_File = SIMP( statut = 'o',
1551 # ------------------------------------
1552 typ = ('Fichier', 'All Files (*)',),
1553 fr = 'Nom du fichier contenant les informations variables en temps des sources',
1554 ang = 'Name of the file containing time-dependent information on sources',),
1556 #PNPNPNPN saisir autant de source que le nombre
1557 # ------------------------------------
1558 Source = FACT(statut = 'o',
1559 # ------------------------------------
1561 # ------------------------------------
1562 Abscissae_Of_Sources = SIMP( statut = 'o',
1563 # ------------------------------------
1564 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1565 fr = 'Valeurs des abscisses des sources de debit et de traceur.',
1566 ang = 'abscissae of sources of flowrate and/or tracer',),
1568 # ------------------------------------
1569 Ordinates_Of_Sources = SIMP( statut = 'o',
1570 # ------------------------------------
1571 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1572 fr = 'Valeurs des ordonnees des sources de debit et de traceur.',
1573 ang = 'ordinates of sources of flowrate and/or tracer',),
1575 # ------------------------------------
1576 Water_Discharge_Of_Sources = SIMP( statut = 'o',
1577 # ------------------------------------
1578 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1579 fr = 'Valeurs des debits des sources.',
1580 ang = 'values of water discharge of sources',),
1582 # ------------------------------------
1583 Velocities_Of_The_Sources_Along_X = SIMP( statut = 'f',
1584 # ------------------------------------
1585 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1586 fr = 'Vitesses du courant a chacune des sources. Si elles ne sont pas donnees, on considere que la vitesse est celle du courant',
1587 ang = 'Velocities at the sources. If they are not given, the velocity of the flow at this location is taken',),
1589 # ------------------------------------
1590 Velocities_Of_The_Sources_Along_Y = SIMP( statut = 'f',
1591 # ------------------------------------
1592 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1593 fr = 'Vitesses du courant a chacune des sources',
1594 ang = 'Velocities at the sources',),
1596 ), # Fin du Fact Source
1598 # ------------------------------------
1599 Type_Of_Sources = SIMP(statut = 'o',typ = 'TXM',into = ["Normal","Dirac"],
1600 # ------------------------------------
1601 fr = 'Source portee par une base elements finis Source portee par une fonction de Dirac',
1602 ang = 'Source term multiplied by a finite element basis, Source term multiplied by a Dirac function',),
1604 ),#fin bloc source - exits
1605 ),#fin MC source - exits
1608 # ------------------------------------
1609 Coriolis_Settings = FACT(statut = 'f',
1610 # ------------------------------------
1611 # ------------------------------------
1612 Coriolis = SIMP( statut='o',typ=bool,
1613 # ------------------------------------
1615 fr = 'Prise en compte ou non de la force de Coriolis.',
1616 ang= 'The Coriolis force is taken into account or ignored.',),
1618 # -------------------------------------------------------
1619 Coriolis_Coefficient = SIMP( statut='o',typ='R',
1620 # -------------------------------------------------------
1622 fr = 'Fixe la valeur du coefficient de la force de Coriolis. Celui-ci doit etre calcule en fonction de la latitude l \n\
1623 par la formule FCOR = 2w sin(l) , w etant la vitesse de rotation de la terre. w = 7.27 10-5 rad/s \n\
1624 Les composantes de la force de Coriolis sont alors : FU = FCOR x V FV = - FCOR x U',
1625 ang= 'Sets the value of the Coriolis force coefficient, in cartesian coordinates. This coefficient,\n\
1626 denoted FCOR in the code, should be equal to 2 w sin(l)d where w denotes the earth angular speed of rotation and l the latitude. \n\
1627 w = 7.27 10-5 rad/sec The Coriolis force components are then: FU = FCOR x V, FV = -FCOR x U In spherical coordinates, the latitudes are known',),
1628 ), #fin Coriolis_Settings
1632 # ------------------------------------
1633 Various = FACT( statut = 'f',
1634 # ------------------------------------
1635 # ------------------------------------
1636 Water_Density = SIMP(statut = 'o',typ = 'R',defaut = 1000.,
1637 # ------------------------------------
1638 fr = 'Fixe la valeur de la masse volumique de l eau.',
1639 ang = 'set the value of water density',
1642 # ------------------------------------
1643 Gravity_Acceleration = SIMP(statut = 'o',typ = 'R',defaut = 9.81,
1644 # ------------------------------------
1645 fr = 'Fixe la valeur de l acceleration de la pesanteur.',
1646 ang = 'Set the value of the acceleration due to gravity.',
1649 # ------------------------------------
1650 Vertical_Structures = SIMP(statut = 'o',typ = bool,defaut = False,
1651 # ------------------------------------
1652 fr = 'Prise en compte de la force de trainee de structures verticales',
1653 ang = 'drag forces from vertical structures are taken into account',),
1655 # ------------------------------------
1656 maskob = BLOC (condition = 'Vertical_Structures == True',
1657 # ------------------------------------
1658 # ------------------------------------
1659 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
1660 # ------------------------------------
1661 defaut = "subroutine DRAGFO must then be implemented"),
1665 # -----------------------------------------------------------------------
1666 Secondary_Currents_Settings = FACT( statut='f',
1667 # -----------------------------------------------------------------------
1668 # -----------------------------------------------------------------------
1669 Secondary_Currents = SIMP( statut='o',typ=bool,
1670 # -----------------------------------------------------------------------
1672 fr = 'Pour prendre en compte les courants secondaires',
1673 ang= 'Using the parametrisation for secondary currents',
1676 # -----------------------------------------------------------------------
1677 b_currents_exists = BLOC(condition = "Secondary_Currents == True",
1678 # -----------------------------------------------------------------------
1679 # -----------------------------------------------------------------------
1680 Production_Coefficient_For_Secondary_Currents = SIMP( statut='o',typ='R',
1681 # -----------------------------------------------------------------------
1683 fr = 'Une constante dans les termes de creation de Omega',
1684 ang= 'A constant in the production terms of Omega',),
1686 # -----------------------------------------------------------------------
1687 Dissipation_Coefficient_For_Secondary_Currents = SIMP( statut='o',typ='R',
1688 # -----------------------------------------------------------------------
1690 fr = 'Coefficient de dissipation de Omega',
1691 ang= 'Coefficient of dissipation term of Omega',),
1693 ), # fin b_currents_exists
1694 ), # fin Secondary_Currents_Settings
1696 # ------------------------------------
1697 Tsunami = FACT(statut = 'f',
1698 # ------------------------------------
1699 # -------------------------------------------------------
1700 Option_For_Tsunami_Generation = SIMP( statut='o',typ='I', defaut=0 ,
1701 # -------------------------------------------------------
1705 # -------------------------------------------------------
1706 Physical_Characteristics_Of_The_Tsunami = SIMP( statut='o',typ='R',
1707 # -------------------------------------------------------
1709 defaut=(100.0, 210000.0, 75000.0, 13.6, 81.0, 41.0, 110.0, 0.0, 0.0, 3.0) ,
1714 )# fin PHYSICAL_PARAMETERS
1716 # -----------------------------------------------------------------------
1717 OUTPUT_FILES = PROC(nom = "OUTPUT_FILES",op = None,
1718 # -----------------------------------------------------------------------
1720 # ------------------------------------
1721 Graphic_And_Listing_Printouts = FACT(statut = 'f',
1722 # ------------------------------------
1723 # ------------------------------------
1724 Variables_For_Graphic_Printouts = SIMP(statut = 'o',max = "**", typ = 'TXM',
1725 # ------------------------------------
1726 into=[ "Velocity along X axis (m/s)", "Velocity along Y axis (m/s)", "Wave celerity (m/s)", "Water depth (m)",
1727 "Free surface elevation (m)", "Bottom elevation (m)", "Froude number", "Scalar flowrate of fluid (m2/s)",
1728 "Tracer 1 etc. ", "Turbulent kinetic energy in K-Epsilon model (J/kg)", "Dissipation of turbulent energy (W/kg)",
1729 "Turbulent viscosity of K-Epsilon model (m2/s)", "Flowrate along X axis (m2/s)", "Flowrate along Y axis (m2/s)",
1730 "Scalar velocity (m/s)", "Wind along X axis (m/s)", "Wind along Y axis (m/s)", "Air pressure (Pa)",
1731 "Friction coefficient", "Drift along X (m)", "Drift along Y (m)", "Courant number", "Supplementary variable N",
1732 "Supplementary variable O", "Supplementary variable R", "Supplementary variable Z", "Maximum elevation",
1733 "Time of maximum elevation", "Maximum velocity", "Time of maximum velocity", "Friction velocity"],
1735 #homo="SansOrdreNiDoublon"),
1737 # ------------------------------------
1738 Graphic_Printout_Period = SIMP(statut = 'o', typ = 'I',defaut = 1,
1739 # ------------------------------------
1740 fr = 'Determine la periode en nombre de pas de temps d''impression des VARIABLES POUR LES SORTIES GRAPHIQUES \n\
1741 dans le FICHIER DES RESULTATS.',
1742 ang = 'Determines, in number of time steps, the printout period for the VARIABLES FOR GRAPHIC PRINTOUTS in the RESULTS FILE.' ,),
1744 # ------------------------------------
1745 Number_Of_First_Time_Step_For_Graphic_Printouts = SIMP(statut = 'o', typ = 'I',defaut = 1,
1746 # ------------------------------------
1747 fr = 'Determine le nombre de pas de temps a partir duquel debute l''ecriture des resultats dans le listing.',
1748 ang = 'Determines the number of time steps after which the results are first written into the listing.'),
1751 # ------------------------------------
1752 Results_File = SIMP( statut = 'o',
1753 # ------------------------------------
1754 typ = ('Fichier', 'All Files (*)',),
1755 fr = 'Nom du fichier dans lequel sont ecrits les resultats du calcul avec la periodicite donnee PERIODE POUR LES SORTIES GRAPHIQUES.',
1756 ang = 'Name of the file into which the computation results shall be written, the periodicity being given by GRAPHIC PRINTOUT PERIOD.',),
1758 # ------------------------------------
1759 Results_File_Format = SIMP( statut = 'o',typ = 'TXM',into = ['Serafin','MED','SerafinD'], defaut = 'Serafin',
1760 # ------------------------------------
1761 fr = 'Format du fichier de resultats. Les valeurs possibles sont : \n\
1762 - SERAFIN : format standard simple precision pour Telemac; \n\
1763 - SERAFIND: format standard double precision pour Telemac; \n\
1764 - MED : format MED base sur HDF5' ,
1765 ang = 'Results file format. Possible values are:\n \
1766 - SERAFIN : classical single precision format in Telemac;\n\
1767 - SERAFIND: classical double precision format in Telemac; \n\
1768 - MED : MED format based on HDF5' ,
1771 # ------------------------------------
1772 Listing_Printout_Period = SIMP(statut = 'o', typ = 'I',defaut = 1,
1773 # ------------------------------------
1774 fr = 'Determine la periode en nombre de pas de temps d''impression des variables',
1775 ang = 'Determines, in number of time steps, the printout period for the variables',),
1777 # ------------------------------------
1778 Listing_Printout = SIMP( statut='o',typ=bool, defaut=True ,
1779 # ------------------------------------
1780 fr = 'Sortie des resultats sur support papier. Si on met False, le listing ne contient que lentete et la mention FIN NORMALE DU PROGRAMME : La Valeur False est a eviter',
1781 ang= 'Result printout on hard copy. When NO is selected, the listing only includes the heading and the phrase "NORMAL END OF PROGRAM" In addition, the options MASS BALANCE and VALIDATION are inhibited. Value False Not recommended for use.',
1784 # ------------------------------------
1785 Variables_To_Be_Printed = SIMP(statut = 'o',max = "**", typ = 'TXM',
1786 # ------------------------------------
1787 into = [ "Velocity along X axis (m/s)", "Velocity along Y axis (m/s)", "Wave celerity (m/s)", "Water depth (m)",
1788 "Free surface elevation (m)", "Bottom elevation (m)", "Froude number", "Scalar flowrate of fluid (m2/s)",
1789 "Tracer", "Turbulent kinetic energy in K-Epsilon model (J/kg)", "Dissipation of turbulent energy (W/kg)",
1790 "Turbulent viscosity of K-Epsilon model (m2/s)", "Flowrate along x axis (m2/s)", "Flowrate along y axis (m2/s)",
1791 "Scalar velocity (m/s)", "Wind along x axis (m/s)", "Wind along y axis (m/s)", "Air pressure (Pa)",
1792 "Friction coefficient", "Drift along x (m)", "Drift along y (m)", "Courant number",
1793 "Supplementary variable N", "Supplementary variable O", "Supplementary variable R", "Supplementary variable Z"]
1794 ,homo="SansOrdreNiDoublon"),
1796 ),# fin Listing_Graphic_Printouts
1798 # ------------------------------------
1799 Formatted_Results_File = SIMP( statut = 'f',
1800 # ------------------------------------
1801 typ = ('Fichier','All Files (*)',),
1802 fr = 'Fichier de resultats formate mis a la disposition de l utilisateur. \
1803 Les resultats a placer dans ce fichier seront a ecrire sur le canal 29.',
1804 ang = 'Formatted file of results made available to the user. \
1805 The results to be entered into this file shall be written on channel 29.',),
1808 # ------------------------------------
1809 Binary_Results_File = SIMP( statut = 'f',
1810 # ------------------------------------
1811 typ = ('Fichier', ';;All Files (*)',),
1812 fr = "Fichier de resultats code en binaire mis a la disposition de l'utilisateur.\n\
1813 Les resultats a placer dans ce fichier seront a ecrire sur le canal 28.",
1814 ang = "Additional binary-coded result file made available to the user. \n\
1815 The results to be entered into this file shall be written on channel 28.",),
1818 # ------------------------------------
1819 Output_Of_Initial_Conditions = SIMP(typ = bool, statut = 'o',
1820 # ------------------------------------
1822 fr = 'Si Vrai, impression des conditions initiales dans les resultats',
1823 ang = 'If True, output of initial conditions in the results'),
1825 # ------------------------------------
1826 Number_Of_Private_Arrays = SIMP( statut='o',typ='I',
1827 # ------------------------------------
1829 fr = 'Nombre de tableaux mis a disposition de l utilisateur',
1830 ang= 'Number of arrays for own user programming',
1834 # ------------------------------------
1835 Information_About_Solver = SIMP(typ = bool, statut = 'f',
1836 # ------------------------------------
1838 fr = "Si vrai, Donne a chaque pas de temps le nombre d'iterations necessaires a la convergence du solveur de l'etape de propagation.",
1839 ang = "if True, prints the number of iterations that have been necessary to get the solution of the linear system.",),
1841 # ------------------------------------
1842 Mass_Balance = SIMP( statut='o',typ=bool,
1843 # ------------------------------------
1845 fr = 'Determine si l on effectue ou non le bilan de masse sur le domaine. Cette procedure calcule a chaque pas de temps : \n\
1846 - les flux aux entrees et sorties du domaine, - le flux global a travers lensemble des parois du domaine (liquides ou solides) \n\
1847 - l erreur relative sur la masse pour ce pas de temps.\n\
1848 En fin de listing, on trouve l erreur relative sur la masse pour l ensemble du calcul.\n\
1849 Il ne sagit que dun calcul indicatif car il nexiste pas dexpression compatible du debit en formulation c,u,v.',
1851 ang= 'Determines whether a check of the mass-balance over the domain is mader or not.\n\
1852 This procedures computes the following at each time step: the domain inflows and outflows, the overall flow across all the boundaries,\n\
1853 the relative error in the mass for that time step. The relative error in the mass over the whole computation can be found at the end of the listing.',
1856 # ------------------------------------
1857 Controls = FACT( statut='f',
1858 # ------------------------------------
1859 # ------------------------------------
1860 Control_Sections = SIMP(statut = 'f',typ = Tuple(2),validators = VerifTypeTuple(('I','I')),
1861 # ------------------------------------
1862 fr = 'Couples de points (numeros globaux dans le maillage) entre lesquels les debits instantanes et cumules seront donnes.',
1863 ang = 'Couples of points (global numbers in the mesh) defining sections where the instantaneous and cumulated discharges will be given',),
1865 # ------------------------------------
1866 Printing_Cumulated_Flowrates = SIMP( statut = 'o',typ = bool, defaut = False ,
1867 # ------------------------------------
1868 fr = 'impression du flux cumule a travers les sections de controle',
1869 ang = 'printing the cumulated flowrates through control sections',),
1871 # ------------------------------------
1872 Compatible_Computation_Of_Fluxes = SIMP( statut = 'o',typ = bool, defaut = False ,
1873 # ------------------------------------
1874 fr = 'flux a travers les sections de controle, calcul compatible avec l impermeabilite sous forme faible',
1875 ang = 'flowrates through control sections, computation compatible with the weak formulation of no-flux boundary condition',),
1877 # ------------------------------------
1878 Sections_Input_File = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)'),
1879 # ------------------------------------
1880 fr = 'sections input file, partitioned',
1881 ang = 'sections input file, partitioned',),
1883 # ------------------------------------
1884 Sections_Output_File = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)'),
1885 # ------------------------------------
1886 fr = 'sections output file, written by the master',
1887 ang = 'sections output file, written by the master',),
1890 # ------------------------------------
1891 Fourier = FACT(statut = 'f',
1892 # ------------------------------------
1893 # ------------------------------------
1894 Fourier_Analysis_Periods = SIMP( statut='o',
1895 # ------------------------------------
1896 max='**', typ = 'R',
1897 fr = 'Liste des periodes que lon veut analyser',
1898 ang= 'List of periods to be analysed',),
1900 # ------------------------------------
1901 Time_Range_For_Fourier_Analysis = SIMP( statut='o',
1902 # ------------------------------------
1903 typ = Tuple(2), validators = VerifTypeTuple(('R','R')),
1905 fr = 'Pour le calcul du marnage et de la phase de la maree',
1906 ang= 'For computing tidal range and phase of tide',
1909 # ------------------------------------
1910 List_Of_Points = SIMP( statut='o',
1911 # ------------------------------------
1912 typ = Tuple(2), validators = VerifTypeTuple(('I','I')),
1913 fr = 'Liste de points remarquables pour les impressions',
1914 ang= 'List of remarkable points for printouts',),
1916 # ------------------------------------
1917 Names_Of_Points = SIMP( statut='o',typ='TXM',
1918 # ------------------------------------
1920 fr = 'Noms des points remarquables pour les impressions',
1921 ang= 'Names of remarkable points for printouts',
1925 ) # FIN OUTPUT_FILES
1928 # -----------------------------------------------------------------------
1929 CONSTRUCTION_WORKS_MODELLING = PROC(nom = "CONSTRUCTION_WORKS_MODELLING",op = None,
1930 # -----------------------------------------------------------------------
1932 # Attention calculer le logique BREACH
1934 # ------------------------------------
1935 Number_Of_Culverts = SIMP( statut = 'o',typ = 'I',
1936 # ------------------------------------
1938 fr = 'Nombre de siphons traites comme des termes sources ou puits. Ces siphons doivent etre decrits comme des sources \
1939 dans le fichier cas. Leurs caracteristiques sont donnees dans le fichier de donnees des siphons (voir la documentation ecrite)',
1940 ang = 'Number of culverts treated as source terms. They must be described as sources in the domain\
1941 and their features are given in the culvert data file (see written documentation)',),
1942 # ------------------------------------
1943 culvert_exists = BLOC(condition = "Number_Of_Culverts!= 0",
1944 # ------------------------------------
1945 # ------------------------------------
1946 Culvert_Data_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
1947 # ------------------------------------
1948 fr = 'Fichier de description des siphons presents dans le modele',
1949 ang = 'Description of culvert existing in the model',),
1950 ), # fin bloc culvert_exists
1952 # ------------------------------------
1953 Number_Of_Tubes = SIMP( statut = 'o',typ = 'I',
1954 # ------------------------------------
1956 fr = 'Nombre de buses ou ponts traites comme des termes sources ou puits. Ces buses doivent etre decrits comme des sources\n\
1957 dans le fichier cas. Leurs caracteristiques sont donnees dans le fichier de donnees des buses (voir la documentation ecrite)',
1958 ang = 'Number of tubes or bridges treated as source terms. They must be described as sources in the domain \n\
1959 and their features are given in the tubes data file (see written documentation)',),
1960 # ------------------------------------
1961 b_Tubes = BLOC(condition = "Number_Of_Tubes!= 0",
1962 # ------------------------------------
1963 # ------------------------------------
1964 Tubes_Data_File = SIMP( statut = 'o',
1965 # ------------------------------------
1966 typ = ('Fichier', 'All Files (*)',),
1967 fr = 'Fichier de description des buses/ponts presents dans le modele',
1968 ang = 'Description of tubes/bridges existing in the model',),
1969 ), # in bloc b_Tubes
1971 # ------------------------------------
1972 Number_Of_Weirs = SIMP(statut = 'o',typ = 'I',defaut = 0,
1973 # ------------------------------------
1974 fr = 'Nombre de seuils qui seront traites par des conditions aux limites. \n\
1975 Ces seuils doivent etre decrits comme des frontieres du domaine de calcul',
1976 ang = 'Number of weirs that will be treated by boundary conditions.',
1978 # ------------------------------------
1979 b_Weirs = BLOC(condition = "Number_Of_Weirs!= 0",
1980 # ------------------------------------
1981 # ------------------------------------
1982 Weirs_Data_File = SIMP( statut = 'o',
1983 # ------------------------------------
1984 typ = ('Fichier', 'All Files (*)',),
1985 fr = 'Fichier de description des seuils presents dans le modele',
1986 ang = 'Description of weirs existing in the model',),
1988 # ------------------------------------
1989 Type_Of_Weirs = SIMP( statut = 'o',typ = 'TXM',
1990 # ------------------------------------
1991 into = ["Horizontal with same number of nodes upstream/downstream (Historical solution with bord)",
1992 "General (New solution with sources points)"],
1993 defaut = "Horizontal with same number of nodes upstream/downstream (Historical solution with bord)",
1994 fr = 'MĂ©thode de traitement des seuils ',
1995 ang = 'Method for treatment of weirs',),
1998 # ------------------------------------
1999 Breach = SIMP(statut = 'o',typ = bool,defaut = False,
2000 # ------------------------------------
2001 fr = 'Prise en compte de breches dans le calcul par modification altimetrique dans le maillage.',
2002 ang = 'Take in account some breaches during the computation by modifying the bottom level of the mesh.',),
2004 # ------------------------------------
2005 b_Breaches = BLOC (condition = 'Breach == True',
2006 # ------------------------------------
2007 # ------------------------------------
2008 Breaches_Data_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
2009 # ------------------------------------
2010 fr = 'Fichier de description des breches',
2011 ang = 'Description of breaches',),
2015 ) # Fin CONSTRUCTION_WORKS_MODELLING
2018 # -----------------------------------------------------------------------
2019 GENERAL_PARAMETERS = PROC(nom = "GENERAL_PARAMETERS",op = None,
2020 # -----------------------------------------------------------------------
2021 UIinfo = { "groupes" : ( "CACHE", )},
2022 # ------------------------------------
2023 Location = FACT(statut = 'o',
2024 # ------------------------------------
2025 # ------------------------------------
2026 Origin_Coordinates = SIMP( statut='o',
2027 # ------------------------------------
2028 typ = Tuple(2),validators = VerifTypeTuple(('I','I')),defaut = (0,0),
2029 fr = 'Valeur en metres, utilise pour eviter les trop grands nombres, transmis dans le format Selafin mais pas d autre traitement pour l instant',
2030 ang= 'Value in metres, used to avoid large real numbers, added in Selafin format, but so far no other treatment',),
2033 # ------------------------------------
2034 Spherical_Coordinates = SIMP(typ = bool,statut = 'o',defaut = False,
2035 # ------------------------------------
2036 fr = 'Choix des coordonnees spheriques pour la realisation du calcul ( pour les grands domaines de calcul).',
2037 ang = 'Selection of spherical coordinates to perform the computation (for large computation domains).'),
2039 # ------------------------------------
2040 b_Spher = BLOC(condition = 'Spherical_Coordinates == True',
2041 # ------------------------------------
2042 # ------------------------------------
2043 Latitude_Of_Origin_Point = SIMP(typ = 'R',statut = 'o',defaut = 48.,
2044 # ------------------------------------
2045 fr = 'Determine l origine utilisee pour le calcul de latitudes lorsque l on effectue un calcul en coordonnees spheriques.',
2046 ang = 'Determines the origin used for computing latitudes when a computation is made in spherical coordinates.this latitude\n\
2047 is in particular used to compute the Coriolis force. In cartesian coordinates, Coriolis coefficient is considered constant.'),
2049 # ------------------------------------
2050 Spatial_Projection_Type = SIMP(statut = 'o',typ = 'TXM',
2051 # ------------------------------------
2052 defaut="Cartesian, not georeferenced",
2053 into = ["Cartesian, not georeferenced","Mercator","Latitude longitude"]),
2056 # ------------------------------------
2057 b_Spher_faux = BLOC(condition = 'Spherical_Coordinates == False',
2058 # ------------------------------------
2059 # ------------------------------------
2060 Spatial_Projection_Type = SIMP(statut = 'o',typ = 'TXM',
2061 # ------------------------------------
2062 into = ["Cartesian, not georeferenced","Mercator","Latitude longitude"],
2063 defaut = "Cartesian, not georeferenced",),
2064 ), # fin b_Spher_faux
2066 ), # Fin de Location
2067 # ------------------------------------
2068 Time = FACT(statut = 'o',
2069 # ------------------------------------
2070 regles = (AU_MOINS_UN('Number_Of_Time_Steps','Duration'),
2071 EXCLUS('Number_Of_Time_Steps','Duration'),
2074 # -----------------------------------------------------------------------
2075 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
2076 # -----------------------------------------------------------------------
2077 defaut = "Choose between Keywords 'Number_Of_Time_Steps' or 'Duration'"),
2079 # ------------------------------------
2080 Time_Step = SIMP(statut = 'o',
2081 # ------------------------------------
2082 typ = 'R', defaut = 1,
2083 fr = 'Definit le nombre de pas de temps effectues lors de l''execution du code.',
2084 ang = 'Specifies the number of time steps performed when running the code.'),
2086 # ------------------------------------
2087 Number_Of_Time_Steps = SIMP(statut = 'f',typ = 'I',
2088 # ------------------------------------
2089 fr = 'Definit le nombre de pas de temps effectues lors de l''execution du code.',
2090 ang = 'Specifies the number of time steps performed when running the code.'),
2092 # ------------------------------------
2093 Duration = SIMP(statut = 'f',typ = 'R',
2094 # ------------------------------------
2095 fr = 'duree de la simulation. alternative au parametre nombre de pas de temps. \n\
2096 On en deduit le nombre de pas de temps en prenant l''entier le plus proche de (duree du calcul/pas de temps).\n\
2097 Si le nombre de pas de temps est aussi donne, on prend la plus grande valeur',
2098 ang = 'duration of simulation. May be used instead of the parameter NUMBER OF TIME STEPS. \n\
2099 The nearest integer to (duration/time step) is taken. If NUMBER OF TIME STEPS is also given, the greater value is taken',),
2102 # Attention, on laisse la règle mais il est possible d avoir les 2 en entrées --> attention au convert
2103 # ------------------------------------
2104 Variable_Time_Step = SIMP(statut = 'o',typ = bool, defaut=False,
2105 # ------------------------------------
2106 fr = 'Pas de temps variable pour avoir un nombre de courant souhaite',
2107 ang = 'Variable time-step to get a given Courant number'),
2109 # ------------------------------------
2110 b_var_time = BLOC(condition = "Variable_Time_Step == True" ,
2111 # ------------------------------------
2112 # ------------------------------------
2113 Desired_Courant_Number = SIMP(statut = 'o',typ = 'R',
2114 # ------------------------------------
2115 fr = 'Nombre de Courant souhaite ',
2116 ang = 'Desired Courant number',),
2119 # ------------------------------------
2120 Original_Date_Of_Time = FACT( statut = 'o',
2121 # ------------------------------------
2122 fr = "Permet de fixer la date d'origine des temps du modele lors de la prise en compte de la force generatrice de la maree.",
2123 ang = 'Give the date of the time origin of the model when taking into account the tide generating force.',
2124 Year = SIMP(statut = 'o',typ = 'I',val_min = 1900, defaut = 1900),
2125 Month = SIMP(statut = 'o',typ = 'I',val_min = 1,val_max = 12, defaut = 1),
2126 Day = SIMP(statut = 'o',typ = 'I',val_min = 1,val_max = 31,defaut = 1),),
2128 # ------------------------------------
2129 Original_Hour_Of_Time = FACT( statut = 'o',
2130 # ------------------------------------
2131 fr = "Permet de fixer l'heure d'origine des temps du modele lors de la prise en compte de la force generatrice de la maree.",
2132 ang = 'Give the time of the time origin of the model when taking into account the tide generating force.',
2133 Hour = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 24, defaut = 0),
2134 Minute = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 60, defaut = 0),
2135 Second = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 60, defaut = 0),
2138 # ------------------------------------
2139 Stop_If_A_Steady_State_Is_Reached = SIMP(statut = 'o',
2140 # ------------------------------------
2141 typ = bool,defaut = False),
2143 # ------------------------------------
2144 b_stop = BLOC(condition = "Stop_If_A_Steady_State_Is_Reached == True" ,
2145 # ------------------------------------
2146 # ------------------------------------
2147 Stop_Criteria = SIMP(statut = 'o',typ = Tuple(3),validators = VerifTypeTuple(('R','R','R')),
2148 # ------------------------------------
2149 fr = "Criteres d'arret pour un ecoulement permanent. ces coefficients sont respectivement appliques a\n\
2150 1- U et V 2- H 3- T ",
2151 ang = 'Stop criteria for a steady state These coefficients are applied respectively to\n\
2152 1- U and V 2- H 3- T ',),
2155 # ------------------------------------
2156 Control_Of_Limits = SIMP(statut = 'o',
2157 # ------------------------------------
2158 typ = bool, defaut = False,
2159 fr = 'Le programme s''arrete si les limites sur u,v,h ou t sont depassees',
2160 ang = 'The program is stopped if the limits on u,v,h, or t are trespassed',),
2162 # ------------------------------------
2163 b_limit = BLOC(condition = "Control_Of_Limit == True" ,
2164 Limit_Values = FACT(statut = 'o',
2165 # Attention : 1 seul MC ds Telemac
2166 # ------------------------------------
2167 fr = 'valeurs mini et maxi acceptables min puis max',
2168 ang = 'min and max acceptable values ',
2170 # ------------------------------------
2171 Limit_Values_H = SIMP(statut = 'o',typ = Tuple(2),
2172 # ------------------------------------
2173 validators = VerifTypeTuple(('R','R')), defaut = (-1000,9000)),
2174 # ------------------------------------
2175 Limit_Values_U = SIMP(statut = 'o',typ = Tuple(2),
2176 # ------------------------------------
2177 validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
2178 # ------------------------------------
2179 Limit_Values_V = SIMP(statut = 'o',typ = Tuple(2),
2180 # ------------------------------------
2181 validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
2182 # ------------------------------------
2183 Limit_Values_T = SIMP(statut = 'o',typ = Tuple(2),
2184 # ------------------------------------
2185 validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
2186 ),), # fin Fact et b_limit
2189 # Attention il faut recalculer en sortie : il faut 0 ou 1 et non un boolean
2190 # ------------------------------------
2191 Debugger = SIMP(typ = bool , statut = 'o',
2192 # ------------------------------------
2194 fr= 'Pour imprimer la sequence des appels, mettre 1',
2195 ang = 'If 1, calls of subroutines will be printed in the listing',),
2197 ) # Fin GENERAL_PARAMETERS
2200 # -----------------------------------------------------------------------
2201 TURBULENCE = PROC(nom = "TURBULENCE",op = None,
2202 # -----------------------------------------------------------------------
2204 # -----------------------------------------------------------------------
2205 Turbulence_Model = SIMP( statut = 'o',typ = 'TXM', defaut = "Constant Viscosity",
2206 # -----------------------------------------------------------------------
2207 into = ("Constant Viscosity", "Elder", "K-Epsilon Model", "Smagorinski"),
2208 fr = 'Pour Elder, il faut pas oublier d ajuster les deux valeurs du mot-cle : COEFFICIENTS ADIMENSIONNELS DE DISPERSION\n\
2209 Pour K-Epsilon Model, ce meme parametre doit retrouver sa vraie valeur physique car elle est utilisee comme telle dans le modele de turbulence',
2210 ang = 'When Elder, the two values of key-word : NON-DIMENSIONAL DISPERSION COEFFICIENTS are used \n\
2211 When K-Epsilon Model, this parameter should recover its true physical value, since it is used as such in the turbulence model.',),
2213 # ------------------------------------
2214 b_turbu_const = BLOC(condition = 'Turbulence_Model == "Constant Viscosity"',
2215 # ------------------------------------
2216 # ------------------------------------
2217 Velocity_Diffusivity = SIMP( statut = 'o',typ = 'R',
2218 # ------------------------------------
2220 fr = 'Fixe de facon uniforme pour l ensemble du domaine la valeur du coefficient de diffusion de viscosite globale (dynamique + turbulente).\n\
2221 Cette valeur peut avoir une influence non negligeable sur la forme et la taille des recirculations.',
2222 ang = 'Sets, in an even way for the whole domain, the value of the coefficient of global (dynamic+turbulent) viscosity. \n\
2223 this value may have a significant effect both on the shapes and sizes of recirculation zones.',),
2224 ), # fin b_turbu_const
2226 # ------------------------------------
2227 b_turbu_elder = BLOC(condition = 'Turbulence_Model == "Elder"',
2228 # ------------------------------------
2229 # ------------------------------------
2230 Non_Dimensional_Dispersion_Coefficients = SIMP (statut = 'o',
2231 # ------------------------------------
2232 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),defaut = (6.,0.6),
2233 fr = 'coefficients longitudinal et transversal dans la formule de Elder.',
2234 ang = 'Longitudinal and transversal coefficients in elder s formula. Used only with turbulence model number 2',),
2235 ), # fin bloc b_turbu_elder
2237 # -----------------------------------------------------------------------
2238 Accuracy_Of_K = SIMP( statut = 'o',typ = 'R', defaut = 1e-09 ,
2239 # -----------------------------------------------------------------------
2240 fr = 'Fixe la precision demandee sur k pour le test d arret dans letape de diffusion et termes sources du modele k-epsilon.',
2241 ang = 'Sets the required accuracy for computing k in the diffusion and source terms step of the k-epsilon model.',),
2243 # -----------------------------------------------------------------------
2244 Accuracy_Of_Epsilon = SIMP( statut = 'o',typ = 'R', defaut = 1e-09 ,
2245 # -----------------------------------------------------------------------
2246 fr = 'Fixe la precision demandee sur epsilon pour le test darret dans letape de diffusion et termes sources de k et epsilon.',
2247 ang = 'Sets the required accuracy for computing epsilon in the diffusion and source-terms step of the k-epsilon model.',),
2249 # -----------------------------------------------------------------------
2250 Time_Step_Reduction_For_K_Epsilon_Model = SIMP( statut = 'f',typ = 'R', defaut = 1.0 ,
2251 # -----------------------------------------------------------------------
2252 fr = 'Coefficient reducteur du pas de temps pour le modele k-epsilon (qui est normalement identique a celui du systeme hydrodynamique).\n\
2253 Utilisation deconseillee',
2254 ang = 'Time step reduction coefficient for k-epsilon model (which is normally same the same as that of the hydrodynamic system).\n\
2255 Not recommended for use.',),
2257 # -----------------------------------------------------------------------
2258 Maximum_Number_Of_Iterations_For_K_And_Epsilon = SIMP( statut = 'o',typ = 'I',
2259 # -----------------------------------------------------------------------
2261 fr = 'Fixe le nombre maximum diterations accepte lors de la resolution du systeme diffusion-termes sources du modele k-epsilon.',
2262 ang = 'Sets the maximum number of iterations that are acceptable when solving the diffusion source-terms step of the k-epsilon model.',),
2264 # -----------------------------------------------------------------------
2265 Turbulence_Model_For_Solid_Boundaries = SIMP( statut = 'o',typ = 'TXM',
2266 # -----------------------------------------------------------------------
2268 into = ('Smooth', 'Rough'),
2269 fr = 'Permet de choisir le regime de turbulence aux parois ',
2270 ang = 'Provided for selecting the type of friction on the walls',),
2272 # -----------------------------------------------------------------------
2273 Solver_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'TXM',
2274 # -----------------------------------------------------------------------
2275 defaut = "Conjugate gradient" ,
2276 into = ("Conjugate gradient", "Conjugate residuals", "Conjugate gradient on normal equation",
2277 "Minimum error", "Conjugate gradient squared", "Conjugate gradient squared stabilised (CGSTAB)",
2279 fr = 'Permet de choisir le solveur utilise pour la resolution du systeme du modele k-epsilon',
2280 ang = 'Makes it possible to select the solver used for solving the system of the k-epsilon model.',),
2282 # -----------------------------------------------------------------------
2283 b_gmres = BLOC(condition = 'Solver_For_K_Epsilon_Model == "GMRES"',
2284 # -----------------------------------------------------------------------
2285 # -----------------------------------------------------------------------
2286 Option_For_The_Solver_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'I',
2287 # -----------------------------------------------------------------------
2288 defaut = 2 ,val_min = 2,val_max = 15,
2289 fr = 'le mot cle est la dimension de lespace de KRILOV (valeurs conseillees entre 2 et 7)',
2290 ang = 'dimension of the krylov space try values between 2 and 7',),
2291 ), # fin bloc b_gmres
2293 # -----------------------------------------------------------------------
2294 Preconditioning_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'TXM',
2295 # -----------------------------------------------------------------------
2296 defaut = 'Diagonal' ,
2297 into = ("Diagonal", "No preconditioning", "Diagonal condensed", "Crout", "Diagonal and crout", "Diagonal condensed and crout"),
2298 fr = 'Permet de preconditionner le systeme relatif au modele k-epsilon',
2299 ang = 'Preconditioning of the linear system in the diffusion step of the k-epsilon model.',
2300 homo="SansOrdreNiDoublon",
2302 # -----------------------------------------------------------------------
2303 Information_About_K_Epsilon_Model = SIMP(statut = 'o',typ = bool,defaut = True,
2304 # -----------------------------------------------------------------------
2305 fr = 'Donne le nombre d iterations du solveur de l etape de diffusion et termes sources du modele k-epsilon.',
2306 ang = 'Gives the number of iterations of the solver in the diffusion and source terms step of the k-epsilon model.',
2313 # -----------------------------------------------------------------------
2314 PARTICLE_TRANSPORT = PROC(nom = "PARTICLE_TRANSPORT",op = None,
2315 # -----------------------------------------------------------------------
2316 # -----------------------------------------------------------------------
2317 Number_Of_Drogues = SIMP(statut = 'o',typ = 'I',defaut = 0,
2318 # -----------------------------------------------------------------------
2319 fr = 'Permet d''effectuer un suivi de flotteurs',
2320 ang = 'Number of drogues in the computation.',),
2322 # -----------------------------------------------------------------------
2323 Algae_Transport_Model = SIMP( statut = 'o',typ = bool, defaut = False ,
2324 # -----------------------------------------------------------------------
2325 fr = 'Si oui, les flotteurs seront des algues',
2326 ang = 'If yes, the floats or particles will be algae',),
2328 # -----------------------------------------------------------------------
2329 algae_exists = BLOC(condition = "Algae_Transport_Model == True",
2330 # -----------------------------------------------------------------------
2331 # -----------------------------------------------------------------------
2332 Algae_Type = SIMP( statut = 'o',typ = 'TXM',
2333 # -----------------------------------------------------------------------
2334 into = ["Sphere", "Iridaea flaccida (close to ulva)", "Pelvetiopsis limitata", "Gigartina leptorhynchos"],
2336 homo="SansOrdreNiDoublon",
2337 fr = 'Type des algues. Pour sphere les algues seront modelisees comme des spheres, pour les autres choix voir Gaylord et al.(1994)',
2338 ang = 'Algae type. For sphere, the algae particles will be modeled as spheres, for the other choices see Gaylord et al.(1994)',),
2340 # -----------------------------------------------------------------------
2341 Diameter_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 0.1 ,
2342 # -----------------------------------------------------------------------
2343 fr = 'Diametre des algues en m',
2344 ang = 'Diametre of algae in m',),
2346 # -----------------------------------------------------------------------
2347 Density_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 1050.0 ,
2348 # -----------------------------------------------------------------------
2349 fr = 'Masse volumique des algues en kg/m3',
2350 ang = 'Density of algae in kg/m3',),
2352 # -----------------------------------------------------------------------
2353 Thickness_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 0.01 ,
2354 # -----------------------------------------------------------------------
2355 fr = 'Epaisseur des algues en m',
2356 ang = 'Thickness of algae in m',),
2360 # -----------------------------------------------------------------------
2361 Oil_Spill_Model = SIMP( statut = 'o',typ = bool, defaut = False ,
2362 # -----------------------------------------------------------------------
2363 fr = 'pour declencher le modele de derive de nappes, dans ce cas le fichier de commandes migrhycar est necessaire',
2364 ang = 'will trigger the oil spill model, in this case the migrhycar steering file is needed',),
2366 # -----------------------------------------------------------------------
2367 oil_exists = BLOC(condition = "Oil_Spill_Model == True",
2368 # -----------------------------------------------------------------------
2369 # -----------------------------------------------------------------------
2370 Oil_Spill_Steering_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
2371 # -----------------------------------------------------------------------
2372 fr = 'Contient les donnees pour le modele de derive de nappes',
2373 ang = 'Contains data for the oil spill model',),
2376 # -----------------------------------------------------------------------
2377 drogues_exists = BLOC(condition = "Number_Of_Drogues!= 0 or Algae_Transport_Model == True or Oil_Spill_Model == True",
2378 # -----------------------------------------------------------------------
2379 # -----------------------------------------------------------------------
2380 Drogues_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
2381 # -----------------------------------------------------------------------
2382 fr = 'Fichier de resultat avec les positions des flotteurs',
2383 ang = 'Results file with positions of drogues',),
2385 # -----------------------------------------------------------------------
2386 Printout_Period_For_Drogues = SIMP(statut = 'o',typ = 'I',defaut = 1,
2387 # -----------------------------------------------------------------------
2388 fr = 'Nombre de pas de temps entre 2 sorties de positions de flotteurs dans le fichier des resultats binaire supplementaire\n\
2389 N affecte pas la qualite du calcul de la trajectoire',
2390 ang = 'Number of time steps between 2 outputs of drogues positions in the binary file',),
2391 ),#fin drogues ou algae
2394 # -----------------------------------------------------------------------
2395 Stochastic_Diffusion_Model = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
2396 # -----------------------------------------------------------------------
2397 fr = 'Pour les particules : flotteurs, algues, hydrocarbures',
2398 ang = 'Meant for particles: drogues, algae, oil spills',),
2400 # -----------------------------------------------------------------------
2401 Number_Of_Lagrangian_Drifts = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
2402 # -----------------------------------------------------------------------
2403 fr = 'Permet deffectuer simultanement plusieurs calculs de derives lagrangiennes initiees a des pas differents',
2404 ang = 'Provided for performing several computations of lagrangian drifts starting at different times.',),
2406 # -----------------------------------------------------------------------
2407 b_cons = BLOC(condition = "Number_Of_Lagrangian_Drifts != 0",
2408 # -----------------------------------------------------------------------
2409 # -----------------------------------------------------------------------
2410 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
2411 # -----------------------------------------------------------------------
2412 defaut = "Add A and G in the VARIABLES FOR GRAPHIC PRINTOUTS key-word in POST_PROCESSING SECTION"),
2416 # -----------------------------------------------------------------------
2417 TRACERS = PROC(nom = "TRACERS",op = None,
2418 # -----------------------------------------------------------------------
2420 # -----------------------------------------------------------------------
2421 Tracers_Setting = FACT(statut = 'o',
2422 # -----------------------------------------------------------------------
2424 # -----------------------------------------------------------------------
2425 Number_Of_Tracers = SIMP( statut='o',typ='I',
2426 # -----------------------------------------------------------------------
2428 fr = 'Definit le nombre de traceurs.',
2429 ang= 'Defines the number of tracers',),
2430 #PNPNPN Recalculer Names_Of_Tracers et Initial_Values_Of_Tracers comme des listes
2431 # pour Names_Of_Tracers = Names_Of_Tracers+Names_Of_Unit
2432 # il faut faire un validateur (la chaine doit faire 16 caracteres evtuellement complete par des blancs)
2434 # ------------------------------------
2435 Tracer = FACT(statut = 'o', max="**",
2436 # ------------------------------------
2437 # -----------------------------------------------------------------------
2438 Name_Of_Tracer = SIMP( statut='o',typ='TXM',
2439 # -----------------------------------------------------------------------
2440 fr = 'Noms des traceurs en 16 caracteres',
2441 ang= 'Name of tracers in 32 characters',),
2443 # -----------------------------------------------------------------------
2444 Name_Of_Unit = SIMP( statut='o',typ='TXM',
2445 # -----------------------------------------------------------------------
2446 fr = 'Noms de l unité en 16 caracteres',
2447 ang= 'Name of unit in 16 characters',),
2449 b_Computation_Continued = BLOC(condition = 'Computation_Continued == True',
2450 #PNPNPN Attention: global_jdc ne fonctionne pas bien : pas de propagation si chgt de valeur de Computation_Continued
2451 # -----------------------------------------------------------------------
2452 Initial_Values_Of_Tracers = SIMP( statut='o',
2453 # -----------------------------------------------------------------------
2454 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
2456 fr = 'Fixe la valeur initiale du traceur.',
2457 ang= 'Sets the initial value of the tracer.',),
2459 ), # fin b_Computation_Continued
2460 # ------------------------------------
2461 Boundary_Conditions = FACT( statut = 'f',
2462 # ------------------------------------
2463 # -----------------------------------------------------------------------
2464 Prescribed_Tracers_Values = SIMP( statut='o',
2465 # -----------------------------------------------------------------------
2466 typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
2467 fr = 'Valeurs du traceur imposees aux frontieres liquides entrantes. Lire la partie du manuel consacree aux conditions aux limites',
2468 ang= 'Tracer values prescribed at the inflow boundaries. Read the manual section dealing with the boundary conditions',),
2469 ), # fin Boundary_Conditions
2472 # -----------------------------------------------------------------------
2473 Density_Effects = SIMP( statut='o',typ=bool,
2474 # -----------------------------------------------------------------------
2476 fr = 'prise en compte du gradient horizontal de densite le traceur est alors la salinite',
2477 ang= 'the horizontal gradient of density is taken into account the tracer is then the salinity',),
2479 # -----------------------------------------------------------------------
2480 b_Density_Effects = BLOC(condition = 'Density_Effects == True',
2481 # -----------------------------------------------------------------------
2482 # ------------------------------------
2483 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
2484 # ------------------------------------
2485 defaut='the first Tracer must be the salinity expressed in kg/m3'),
2487 # -----------------------------------------------------------------------
2488 Mean_Temperature = SIMP( statut='o',typ='R',
2489 # -----------------------------------------------------------------------
2491 fr = 'temperature de reference pour le calcul des effets de densite ',
2492 ang= 'reference temperature for density effects',),
2494 ), # fin b_Density_Effects
2496 ), # fin b_Tracers_Settings
2497 # -----------------------------------------------------------------------
2498 Solving = FACT( statut='o',
2499 # -----------------------------------------------------------------------
2500 # -----------------------------------------------------------------------
2501 Solver_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
2502 # -----------------------------------------------------------------------
2503 defaut='Conjugate gradient' ,
2504 into =('Conjugate gradient', 'Conjugate residual', 'Conjugate gradient on a normal equation',
2505 'Minimum error"', 'Squared conjugate gradient', 'CGSTAB', 'GMRES', 'Direct'),
2508 # Ne faut-il pas un bloc?
2509 # -----------------------------------------------------------------------
2510 Solver_Option_For_Tracers_Diffusion = SIMP( statut='o',typ='I',
2511 # -----------------------------------------------------------------------
2513 fr = 'si le solveur est GMRES (7) le mot cle est la dimension de lespace de KRILOV (valeurs conseillees entre 2 et 15)',
2514 ang= 'WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE TRY VALUES BETWEEN 2 AND 15',),
2516 # -----------------------------------------------------------------------
2517 Preconditioning_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
2518 # -----------------------------------------------------------------------
2520 into =('diagonal', 'no preconditioning', 'diagonal condensed', 'crout', 'diagonal and crout', 'diagonal condensed and crout'),
2521 fr = 'Permet de preconditionner le systeme relatif au traceur. Memes definition et possibilites que pour le mot-cle PRECONDITIONNEMENT.',
2522 ang= 'Preconditioning of the linear system in the tracer diffusion step. Same definition and possibilities as for the keyword PRECONDITIONING',
2526 # -----------------------------------------------------------------------
2527 Accuracy = FACT( statut='o',
2528 # -----------------------------------------------------------------------
2529 # -----------------------------------------------------------------------
2530 Accuracy_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='R', defaut=1e-06 ,
2531 # -----------------------------------------------------------------------
2532 fr = 'Fixe la precision demandee pour le calcul de la diffusion du traceur.',
2533 ang= 'Sets the required accuracy for computing the tracer diffusion.',),
2535 # -----------------------------------------------------------------------
2536 Maximum_Number_Of_Iterations_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='I', defaut=60 ,
2537 # -----------------------------------------------------------------------
2538 fr = 'Limite le nombre diterations du solveur a chaque pas de temps pour le calcul de la diffusion du traceur.',
2539 ang= 'Limits the number of solver iterations at each time step for the diffusion of tracer.',),
2542 # -----------------------------------------------------------------------
2543 Sources = FACT( statut='o',
2544 # -----------------------------------------------------------------------
2545 # ------------------------------------
2546 Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
2547 # ------------------------------------
2548 defaut = "La longueur de la liste doit etre nb de source * nb de tracers"),
2549 # -----------------------------------------------------------------------
2550 Values_Of_The_Tracers_At_The_Sources = SIMP( statut='o',typ='R', max='**' ,
2551 # -----------------------------------------------------------------------
2552 fr = 'Valeurs des traceurs a chacune des sources',
2553 ang= 'Values of the tracers at the sources',),
2555 # -----------------------------------------------------------------------
2556 Metereology = FACT( statut='o',
2557 # -----------------------------------------------------------------------
2558 # en fait, c'est une liste de Tuple de 2. Il faudrait caluler la taille en fonction du Nombre de sources
2559 # -----------------------------------------------------------------------
2560 Values_Of_Tracers_In_The_Rain = SIMP(
2561 # -----------------------------------------------------------------------
2562 statut='o',typ='R',defaut=0, max=2 , fr = '', ang= '',),
2563 ), # fin Metereology
2565 # -----------------------------------------------------------------------
2566 Numerical = FACT( statut='o',
2567 # -----------------------------------------------------------------------
2569 # -----------------------------------------------------------------------
2570 Implicitation_Coefficient_Of_Tracers = SIMP( statut='o',typ='R',
2571 # -----------------------------------------------------------------------
2573 fr = 'Fixe la valeur du coefficient dimplicitation du traceur',
2574 ang= 'Sets the value of the implicitation coefficient for the tracer',),
2576 # -----------------------------------------------------------------------
2577 Diffusion_Of_Tracers = SIMP( statut='o',typ=bool,
2578 # -----------------------------------------------------------------------
2580 fr = 'Prise en compte ou non de la diffusion du traceur passif.',
2581 ang= 'The diffusion of the passive tracer is taken into account or ignored.',),
2583 # ------------------------------------
2584 b_Diffusion_Of_Tracers = BLOC(condition = 'Diffusion_Of_Tracers == True',
2585 # ------------------------------------
2586 # ------------------------------------
2587 Coefficient_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='R',
2588 # ------------------------------------
2590 fr = 'Fixe la valeur du coefficient de diffusion du traceur. Linfluence de ce parametre sur levolution du traceur dans le temps est importante.',
2591 ang= 'Sets the value of the tracer diffusivity.',),
2593 # ------------------------------------
2594 Option_For_The_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
2595 # ------------------------------------
2596 defaut='Diffusion in the form div( nu grad(T))' ,
2597 into=[ 'Diffusion in the form div( nu grad(T))', 'Diffusion in the form 1/h div ( h nu grad(T))',],),
2598 ), # fin b_Diffusion_Of_Tracers
2600 # ------------------------------------
2601 Scheme_For_Advection_Of_Tracers = SIMP( statut='o',typ='TXM',
2602 # ------------------------------------
2603 defaut="Characteristics" ,
2604 into =("No advection", "Characteristics", "Explicit + SUPG", "Explicit leo postma", "explicit + murd scheme-N",
2605 "explicit + murd scheme-PSI", "Leo postma for tidal flats", "N-scheme for tidal flats"),
2606 fr = 'Choix du schema de convection pour les traceurs, remplace FORME DE LA CONVECTION',
2607 ang= 'Choice of the advection scheme for the tracers, replaces TYPE OF ADVECTION',),
2609 # ------------------------------------
2610 Scheme_Option_For_Advection_Of_Tracers = SIMP( statut='o',typ='TXM',
2611 # ------------------------------------
2613 into=['Explicit','Predictor-corrector for tracers'],
2614 fr = 'Si present remplace et a priorite sur : OPTION POUR LES CARACTERISTIQUES OPTION DE SUPG Si schema PSI : 1=explicite 2=predicteur-correcteur pour les traceurs',
2615 ang= 'If present replaces and has priority over: OPTION FOR CHARACTERISTICS SUPG OPTION IF PSI SCHEME: 1=explicit 2=predictor-corrector for tracers',),
2617 # ------------------------------------
2618 Mass_Lumping_On_Tracers = SIMP ( statut='o',typ='R',
2619 # ------------------------------------
2621 fr = 'Fixe le taux de mass-lumping effectue sur le traceur.',
2622 ang = 'Sets the amount of mass-lumping that is performed on the tracer.',),
2625 # -----------------------------------------------------------------------
2626 Degradation = FACT( statut='o',
2627 # -----------------------------------------------------------------------
2629 # PN Attention, il faut recalculer Law_Of_Tracers_Degradation
2630 # et les coefficients.
2631 # Question : pourquoi 2 et pas selon le nb de tracer
2632 # Est ce que ce $ va sous tracer ?
2633 # -----------------------------------------------------------------------
2634 Law1_Of_Tracers_Degradation = SIMP( statut='o',typ='TXM',
2635 # -----------------------------------------------------------------------
2636 into=["No degradation","F(T90) law"],
2637 defaut="No degradation",
2638 fr = 'Prise en compte dune loi de decroissance des traceurs',
2639 ang= 'Take in account a law for tracers decrease',),
2641 # -----------------------------------------------------------------------
2642 b_Law1 = BLOC(condition = 'Law1_Of_Tracers_Degradation == "F(T90) law"',
2643 # -----------------------------------------------------------------------
2644 # -----------------------------------------------------------------------
2645 Coefficient_1_For_Law_Of_Tracers_Degradation = SIMP( statut='o',typ='R',
2646 # -----------------------------------------------------------------------
2647 fr = 'Coefficient 1 de la loi de decroissance des traceurs',
2648 ang= 'Coefficient 1 of law for tracers decrease',),
2651 # -----------------------------------------------------------------------
2652 Law2_Of_Tracers_Degradation = SIMP( statut='o',typ='TXM',
2653 # -----------------------------------------------------------------------
2654 into=["No degradation","F(T90) law"],
2655 defaut="No degradation",
2656 fr = 'Prise en compte dune loi de decroissance des traceurs',
2657 ang= 'Take in account a law for tracers decrease',),
2659 # -----------------------------------------------------------------------
2660 b_Law2 = BLOC(condition = 'Law2_Of_Tracers_Degradation == "F(T90) law"',
2661 # -----------------------------------------------------------------------
2662 # -----------------------------------------------------------------------
2663 Coefficient_2_For_Law_Of_Tracers_Degradation = SIMP( statut='o',typ='R',
2664 # -----------------------------------------------------------------------
2665 fr = 'Coefficient 2 de la loi de decroissance des traceurs',
2666 ang= 'Coefficient 2 of law for tracers decrease',),
2668 ), # fin Degradation
2673 Ordre_Des_Commandes = ( 'INITIALIZATION', 'BOUNDARY_CONDITIONS','GENERAL_PARAMETERS', 'PHYSICAL_PARAMETERS', 'NUMERICAL_PARAMETERS',
2674 'TURBULENCE', 'TRACERS', 'PARTICLE_TRANSPORT', 'CONSTRUCTION_WORKS_MODELLING', 'TIDE_PARAMETERS', 'OUTPUT_FILES')