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