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 = 'MAP',
40 # ======================================================================
41 # Catalog entry for the MAP function : c_pre_interfaceBody_mesh
42 # ======================================================================
43 INITIALIZATION=PROC(nom="INITIALIZATION",op=None,
44 fr="Initialisation des fichiers d'entrée et de sortie",
45 ang="Input and Output files initialization",
47 Title = SIMP( statut='o',typ='TXM',
48 fr='Titre du cas etudie. Ce titre figurera sur les dessins.',
49 ang='Title of the case being considered. This title shall be marked on the drawings.'
51 #Working_Directory = SIMP( statut='o',typ='Repertoire',defaut='/tmp'),
53 Input_Files= FACT(statut='o',
54 Dictionary = SIMP( statut='o', typ = ('Fichier', 'Dico (*.dico);;All Files (*)',),
55 defaut='telemac2d.dico',
56 fr='Dictionnaire des mots cles.', ang='Key word dictionary.',),
58 Geometry_File_Format = SIMP( statut='o',typ='TXM',into=['SERAFIN','MED','SERAFIND'], defaut='SERAFIN',
59 fr='Format du fichier de geometrie. Les valeurs possibles sont : \n \
60 - SERAFIN : format standard simple precision pour Telemac; \n \
61 - SERAFIND: format standard double precision pour Telemac; \n \
62 - MED : format MED base sur HDF5',
63 ang='Results file format. Possible values are: \n\
64 - SERAFIN : classical single precision format in Telemac;\n\
65 - SERAFIND: classical double precision format in Telemac;\n\
66 - MED : MED format based on HDF5',) ,
68 Geometry_File = SIMP( statut='o', typ = ('Fichier', 'Geo Files (*.geo);;All Files (*)',),
69 fr='Nom du fichier contenant le maillage du calcul a realiser.',
70 ang='Name of the file containing the mesh. \n\
71 This file may also contain the topography and the friction coefficients.'),
73 #Steering_File = SIMP( statut='o', typ = ('Fichier', 'Steering Files (*.cas);;All Files (*)',),),
75 Bottom_Topography_File = SIMP( statut='f', typ = ('Fichier', 'Geo Files (*.geo);;All Files (*)',),
76 fr = "Nom du fichier eventuel contenant la bathymetrie associee au maillage. \
77 Si ce mot-cle est utilise; c'est cette bathymetrie qui sera utilisee pour le calcul.",
78 ang = 'Name of the possible file containing the bathymetric data.\
79 Where this keyword is used, these bathymetric data shall be used in the computation.',
82 Fortran_File = SIMP(statut='f',typ = ('Fichier', 'Fortran files (*.f);;All Files (*)'),
83 fr='Nom du fichier a soumettre',
84 ang='Name of FORTRAN file to be submitted',),
86 Boundary_Conditions_File = SIMP( statut='o', typ = ('Fichier', 'Boundary Condition (*.cli);;All Files (*)',),
87 fr='Nom du fichier contenant les types de conditions aux limites. Ce fichier est rempli de facon automatique\n\
88 par le mailleur au moyen de couleurs affectees aux noeuds des frontieres du domaine de calcul.',
89 ang='Name of the file containing the types of boundary conditions. This file is filled automatically\n\
90 by the mesh generator through through colours that are assigned to the boundary nodes.',),
93 Validation=FACT( statut='f',
95 #PNPN--> creer le Mot_clef simple Validation si ce fact existe
96 Reference_File_Format = SIMP( statut='o',typ='TXM',into=['SERAFIN','MED','SERAFIND'], defaut='SERAFIN',
97 fr = 'Format du fichier de resultats. Les valeurs possibles sont : \n\
98 - SERAFIN : format standard simple precision pour Telemac; \n\
99 - SERAFIND: format standard double precision pour Telemac; \n\
100 - MED : format MED base sur HDF5' ,
101 ang = 'Results file format. Possible values are:\n \
102 - SERAFIN : classical single precision format in Telemac;\n\
103 - SERAFIND: classical double precision format in Telemac; \n\
104 - MED : MED format based on HDF5' ,),
106 Reference_File = SIMP( statut='o', typ = ('Fichier', 'Reference File (*.ref);;All Files (*)',),
107 fr= 'Fichier de resultats de reference pour la validation. Les resultats a placer dans ce fichier seront a ecrire sur le canal 22.',
108 ang= 'Binary-coded result file for validation. The results to be entered into this file shall be written on channel 22.',),
109 ), # Fin de Validation
112 Formatted_And_Binary_Files=FACT( statut='f',
114 Formatted_File2 = SIMP( statut='f', typ = ('Fichier', 'formated File (*.txt);;All Files (*)',),
115 fr = "Fichier de donnees formate mis a la disposition de l'utilisateur. \n\
116 Les donnees de ce fichier seront a lire sur le canal 27.",
117 ang = "Formatted data file made available to the user.\n\
118 The data in this file shall be read on channel 27.",
120 Binary_Data_File1 = SIMP( statut='f', typ = ('Fichier', 'Reference File (*.txt);;All Files (*)',),
121 fr = 'Fichier de donnees code en binaire mis a la disposition de l utilisateur. \n\
122 Les donnees de ce fichier seront a lire sur le canal 24.',
123 ang = 'Binary-coded data file made available to the user.\n\
124 The data in this file shall be read on channel 24.',
126 Binary_Data_File2 = SIMP( statut='f', typ = ('Fichier', 'Reference File (*.txt);;All Files (*)',),
127 fr = 'Fichier de donnees code en binaire mis a la disposition de l utilisateur.\n\
128 Les donnees de ce fichier seront a lire sur le canal 25.',
129 ang = 'Binary-coded data file made available to the user. \n\
130 The data in this file shall be read on channel 25.',
132 ), # fin Formatted_And_Binary_Files
134 ), # Fin de InputFile
137 Computation_Continued=FACT( statut='f',
139 #PNPNPN Computation_Continued == Validation
140 Previous_Computation_File_Format=SIMP( statut='o',typ='TXM',
141 into=['SERAFIN','MED','SERAFIND'],
143 fr='Format du fichier de resultats du calcul precedent. 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='Previous computation 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',
153 Previous_Computation_File = SIMP( statut='o',
154 typ = ('Fichier', 'Computation File (*.res);;All Files (*)',),
155 fr = "Nom d'un fichier contenant les resultats d'un calcul precedent realise sur le meme maillage \n\
156 et dont le dernier pas de temps enregistre va fournir les conditions initiales pour une suite de de calcul.",
157 ang = 'Name of a file containing the results of an earlier computation which was made on the same mesh.\n\
158 The last recorded time step will provid the initial conditions for the new computation.',
160 Previous_Computation_Comm = SIMP( statut='f', typ = ('Fichier', 'COMM(*.comm);;All Files (*)',),
161 fr = "Nom du fichier .comm décrivant le cas précédent",
162 ang = "Name of a file containing the earlier study" ,),
163 Initial_Time_Set = SIMP(typ=bool, statut='f',
164 fr = 'Remet le temps a zero en cas de suite de calcul',
165 ang = 'Initial time set to zero in case of restart',
167 Record_Number_For_Restart = SIMP(typ='I', statut='o', defaut=0,
168 fr = "numero de l'enregistrement de depart dans le fichier du calcul precedent. 0 signifie qu'on prend le dernier enregistrement",
169 ang ="record number to start from in the previous computation file, 0 for last record" ),
172 Computation=FACT(statut='o',
173 #Machine=FACT( statut='o',
174 # A voir plus tar Obsolete ?
175 # Parallel_Processors=SIMP(statut='o',typ='I',val_min=0,defaut=1),
176 #Parallel_Computation=SIMP(statut='o',typ=bool,defaut=False),
178 Coupling=FACT( statut='o',
179 Sisyphe=SIMP(statut='o',typ=bool,defaut=False),
180 Tomawac=SIMP(statut='o',typ=bool,defaut=False),
181 Delwacq=SIMP(statut='o',typ=bool,defaut=False),
182 fr='Liste des codes avec lesquels on couple Telemac-2D\n\
183 SISYPHE : couplage interne avec Sisyphe\n\
184 TOMAWAC : couplage interne avec Tomawac\n\
185 DELWAQ : sortie de fichiers de resultats pour Delwaq',
186 ang='List of codes to be coupled with Telemac-2D\n\
187 SISYPHE : internal coupling with Sisyphe\n\
188 TOMAWAC : internal coupling with Tomawac\n\
189 DELWAQ: will yield results file for Delwaq',
194 TIDE_PARAMETERS=PROC(nom="TIDE_PARAMETERS",op=None,
197 Inputs_Outputs_For_Tide=FACT( statut='o',
198 Harmonic_Constants_File = SIMP( statut='o',
199 typ = ('Fichier', 'All Files (*)',),
200 fr = 'Constantes harmoniques extraites du fichier du modele de maree',
201 ang= 'Harmonic constants extracted from the tidalmodel file',
204 Tidal_Model_File = SIMP( statut='o',
205 typ = ('Fichier', 'All Files (*)',),
206 fr = 'Fichier de geometrie du modele dont sont extraites les constantes harmoniques',
207 ang= 'Geometry file of the model from which harmonic constituents are extracted',
212 Time=FACT( statut='o',
213 #Original_Date_Of_Time=SIMP(statut='f',typ=DateJJMMAAAA,validators=VerifTypeTuple(('R','R','R'))),
214 #Original_Hour_Of_Time=SIMP(statut='f',typ=HeureHHMMSS,validators=VerifTypeTuple(('R','R','R'))),
215 Original_Date_Of_Time=FACT( statut='o',
216 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.",
217 ang ='Give the date of the time origin of the model when taking into account the tide generating force.',
218 Year=SIMP(statut='o',typ='I',val_min=1900,defaut=1900),
219 Month=SIMP(statut='o',typ='I',val_min=1,val_max=12,defaut=1),
220 Day=SIMP(statut='o',typ='I',val_min=1,val_max=31,defaut=1),
222 Original_Hour_Of_Time=FACT( statut='f',
223 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.",
224 ang ='Give the time of the time origin of the model when taking into account the tide generating force.',
225 Hour=SIMP(statut='o',typ='I',val_min=0,val_max=24,defaut=0),
226 Minute=SIMP(statut='o',typ='I',val_min=0,val_max=60,defaut=0),
227 Second=SIMP(statut='o',typ='I',val_min=0,val_max=60,defaut=0),
230 Location=FACT( statut='f',
231 #regles=( PRESENT_PRESENT('Longitude_Of_origin','Latitute_Of_origin', ),),
232 #Spatial_Projection=SIMP(statut='f',typ='I',into=[1,2,3]),
233 #Geographic_System=SIMP(statut='f',typ='I',into=[-1,0,1,2,3,4,5]),
235 Geographic_System=SIMP(statut='f',typ='TXM',
236 into=["DEFINI PAR L'UTILISATEUR", "WGS84 LONGITUDE/LATITUDE EN DEGRES REELS","WGS84 NORD UTM",'WGS84 SUD UTM','LAMBERT', 'MERCATOR'],
237 defaut="DEFINI PAR L'UTILISATEUR",
238 fr = 'Systeme de coordonnees geographiques dans lequel est construit le modele numerique.',
239 ang = 'Geographic coordinates system in which the numerical model is built.Indicate the corresponding zone with the keyword ',
241 b_geo_system = BLOC(condition = "Geographic_System in ('WGS84 LONGITUDE/LATITUDE EN DEGRES REELS','WGS84 NORD UTM','WGS84 SUD UTM','MERCATOR')",
242 Spatial_Projection=SIMP(statut='o',typ='TXM',into=["CARTESIAN, NOT GEOREFERENCED","MERCATOR","LATITUDE LONGITUDE"]),
243 ang = 'Option 2 or 3 mandatory for spherical coordinates Option 3: latitude and longitude in radians!',
244 b_lat = BLOC(condition = "Spatial_Projection == 'LATITUDE LONGITUDE' ",
245 Latitude_Of_Origin=SIMP(statut='o',typ='R',val_min=-90,val_max=90,fr="en radians", ang="in radians"),
246 Longitude_Of_Origin=SIMP(statut='o',typ='R',fr="en radians", ang="in radians"),
249 # declenchement du calcul du mot_clef SPHERICAL COORDINATES
251 Zone_number_in_Geographic_System=SIMP(statut='f',typ='TXM',
252 #into=[-1,0,1,2,3,4,22,30],
253 into=[ 'LAMBERT 1 NORD', 'LAMBERT 2 CENTRE', 'LAMBERT 3 SUD', 'LAMBERT 4 CORSE', 'LAMBERT 2 ETENDU', 'ZONE UTM, PAR EXEMPLE'],
254 fr="Numero de zone (fuseau ou type de projection) lors de l'utilisation d'une projection plane.\n Indiquer le systeme geographique dans lequel est construit le modele numerique avec le mot-cle SYSTEME GEOGRAPHIQUE",
255 ang='Number of zone when using a plane projection. \nIndicate the geographic system in which the numerical model is built with the keyword GEOGRAPHIC SYSTEM'),
257 Physical_Parameters=FACT(statut='o',
258 Tide_Generating_Force=SIMP(statut='o',typ=bool,defaut=False),
259 b_Tide = BLOC(condition = "Tide_Generating_Force==True",
260 Tidal_Data_Base=SIMP(statut='o',typ='TXM',
261 into=[ "JMJ", "TPXO", "LEGOS-NEA", "FES20XX", "PREVIMER",],
262 fr = 'Pour JMJ, renseigner la localisation du fichier bdd_jmj et geofin dans les mots-cles BASE DE DONNEES DE MAREE \n\
263 et FICHIER DU MODELE DE MAREE. Pour TPXO, LEGOS-NEA, FES20XX et PREVIMER, l utilisateur doit telecharger les fichiers \n\
264 de constantes harmoniques sur internet',
265 ang = 'For JMJ, indicate the location of the files bdd_jmj and geofin with keywords TIDE DATA BASE and TIDAL MODEL FILE.\n\
266 For TPXO, LEGOS-NEA, FES20XX and PREVIMER, the user has to download files of harmonic constituents on the internet',
270 Coefficient_To_Calibrate_Tidal_Range=SIMP(statut='o',typ='R',sug=1.),
271 Coefficient_To_Calibrate_Tidal_Velocity=SIMP(statut='o',typ='R',sug=999999),
272 Coefficient_To_Calibrate_Sea_Level=SIMP(statut='o',typ='R',sug=0.),
273 Binary_Database_1_for_Tide = SIMP( statut='o', typ = ('Fichier', '(All Files (*),)',),),
274 Binary_Database_2_for_Tide = SIMP( statut='o', typ = ('Fichier', '(All Files (*),)',),),
277 Wave_Driven_Currents=SIMP(statut='f',typ=bool,sug=False),
278 b_Wave =BLOC(condition = "Wave_Driver_Currents=='True'",
279 Record_Number_in_Wave_File=SIMP(statut='f',typ='I',sug=1),
283 Option_For_Tidal_Boundary_Conditions = SIMP( statut='o',typ='TXM',defaut='No tide',
284 into=['No tide', 'Real tide (recommended methodology)', 'Astronomical tide', 'Mean spring tide', 'Mean tide',\
285 'Mean neap tide', 'Astronomical neap tide', 'Real tide (methodology before 2010)'],
287 b_Option_B = BLOC(condition ='Option_For_Tidal_Boundary_Conditions!="No tide"',
288 Coefficient_To_Calibrate_Tidal_Velocities = SIMP( statut='o',typ='R',
290 fr = 'Coefficient pour ajuster les composantes de vitesse de londe de maree aux frontieres maritimes. La valeur par defaut 999999. signifie que cest la racine carree du COEFFICIENT DE CALAGE DU MARNAGE qui est prise',
291 ang= 'Coefficient to calibrate the tidal velocities of tidal wave at tidal open boundary conditions. Default value 999999. means that the square root of COEFFICIENT TO CALIBRATE TIDAL RANGE is taken',
293 Coefficient_To_Calibrate_Sea_Level = SIMP( statut='o',typ='R',defaut=0,
294 fr = 'Coefficient pour ajuster le niveau de mer',
295 ang = 'Coefficient to calibrate the sea level',
297 Coefficient_To_Calibrate_Tidal_Range = SIMP( statut='o',typ='R',
299 fr = 'Coefficient pour ajuster le marnage de l''onde de maree aux frontieres maritimes',
300 ang = 'Coefficient to calibrate the tidal range of tidal wave at tidal open boundary conditions',
304 ) # Fin TIDE_PARAMETERS
306 INITIAL_STATE=PROC(nom="INITIAL_STATE",op=None,
308 Initial_Conditions=SIMP(statut='o',typ='TXM',
309 into=['ZERO ELEVATION','CONSTANT ELEVATION','ZERO DEPTH','CONSTANT DEPTH','SPECIAL','TPXO SATELLITE ALTIMETRY'],
310 defaut='ZERO ELEVATION',
311 fr = "Permet de definir les conditions initiales sur les hauteurs d'eau. Les valeurs possibles sont :\n\
312 - 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\
313 - 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\
314 - HAUTEUR NULLE .Initialise les hauteurs d'eau a 0. \n\
315 - HAUTEUR CONSTANTE. Initialise les hauteurs d'eau a la valeur donnee par le mot-cle HAUTEUR INITIALE. \n\
316 - PARTICULIERES. Les conditions initiales sur la hauteur d'eau doivent etre precisees dans le sous-programme CONDIN. \n\
317 - ALTIMETRIE SATELLITE TPXO. Les conditions initiales sur la hauteur d'eau et les vitesses sont etablies sur \n\
318 la base des donnees satellite TPXO dont les 8 premiers constistuents ont ete extraits et sauves dans le fichier\n\
319 BASE DE DONNEES DE MAREE." ,
320 ang = 'Makes it possible to define the initial conditions with the water depth. The possible values are : \n\
321 - 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\
322 - CONSTANT ELEVATION. Initializes the water elevation to the value given by the keyword \n\
323 - INITIAL ELEVATION. The initial water depths are computed as in the previous case. \n\
324 - ZERO DEPTH. Initializes the water depths to 0. \n\
325 - CONSTANT DEPTH. Initializes the water depths to the value givenby the key-word INITIAL DEPTH. \n\
326 - SPECIAL. The initial conditions with the water depth should be stated in the CONDIN subroutine. \n\
327 - 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.', ),
329 b_initial_elevation = BLOC (condition = "Initial_Conditions == 'CONSTANT ELEVATION'",
330 Initial_Elevation = SIMP(statut='o',typ='R',
331 fr='Valeur utilisee avec l''option : CONDITIONS INITIALES - COTE CONSTANTE',
332 ang='Value to be used with the option : INITIAL CONDITIONS -CONSTANT ELEVATION'
334 ) , # fin b_initial_elevation
336 b_initial_depth = BLOC (condition = "Initial_Conditions == 'CONSTANT DEPTH'",
337 Initial_Depth = SIMP(statut='o',typ='R',
338 fr='Valeur utilisee avec l''option : CONDITIONS INITIALES :-HAUTEUR CONSTANTE-',
339 ang='Value to be used along with the option: INITIAL CONDITIONS -CONSTANT DEPTH-' ),
340 ),# fin b_initial_depth
342 b_special= BLOC (condition = "Initial_Conditions == 'SPECIAL'",
343 # Ce mot clef est juste informatif
344 special = SIMP(statut='o',typ='TXM',
345 defaut="The initial conditions with the water depth should be stated in the CONDIN subroutine"),
349 b_initial_TPXO = BLOC (condition = "Initial_Conditions == 'TPXO SATELLITE ALTIMETRY'",
350 Base_Ascii_De_Donnees_De_Maree = SIMP( statut='o', typ = ('Fichier', 'All Files (*)',), ),
351 fr = 'Base de donnees de constantes harmoniques tirees du fichier du modele de maree',
352 ang = 'Tide data base of harmonic constituents extracted from the tidal model file',
353 ), # fin b_initial_TPXO
354 ) # fin INITIAL_STATE
356 BOUNDARY_CONDITIONS=PROC(nom="BOUNDARY_CONDITIONS",op=None,
357 fr = 'On donne un ensemble de conditions par frontiere liquide',
358 ang = 'One condition set per liquid boundary is given',
359 # Dans l ideal il faut aller regarder selon les groupes dans le fichier med
360 # en sortie il faut aller chercher le .cli qui va bien
361 #Liquid_Boundaries=FACT(statut='f',max='**',
362 # Options=SIMP(statut='f',typ='I',into=['classical boundary conditions','Thompson method based on characteristics'])
363 # Prescribed_Flowrates=SIMP(statut='f',typ='R'),
364 # Prescribed_Elevations=SIMP(statut='f',typ='R'),
365 # Prescribed_Velocity=SIMP(statut='f',typ='R'),
368 # Il va falloir une "traduction dans le langage du dico"
369 # Il faut seulement l un des 3
371 Liquid_Boundaries=FACT(statut='f',max='**',
373 Options=SIMP(statut='f',typ='I',
374 into=['classical boundary conditions','Thompson method based on characteristics'],
375 fr='On donne 1 entier par frontiere liquide',
376 ang='One integer per liquid boundary is given',
379 Type_Condition=SIMP(statut='o',typ='TXM',into=['Prescribed Flowrates','Prescribed Elevations','Prescribed Velocity'],),
381 # PN On ajouter le type pour rendre l 'ihm plus lisible
382 # mais ce mot-cle n existe pas dans le dico
384 b_Flowrates = BLOC (condition = "Type_Condition == 'Prescribed Flowrates'",
385 Prescribed_Flowrates=SIMP(statut='o',typ='R',
386 fr=' Valeurs des debits imposes aux frontieres liquides entrantes.\n Lire la partie du mode d''emploi consacree aux conditions aux limites',
387 ang='Values of prescribed flowrates at the inflow boundaries.\n The section about boundary conditions is to be read in the manual'),
390 b_Elevations = BLOC (condition = "Type_Condition == 'Prescribed Elevations'",
391 Prescribed_Elevations=SIMP(statut='o',typ='R',
392 fr='Valeurs des cotes imposees aux frontieres liquides entrantes.\n Lire la partie du mode d''emploi consacree aux conditions aux limites',
393 ang='Values of prescribed elevations at the inflow boundaries.\n The section about boundary conditions is to be read in the manual'),
396 b_Velocity = BLOC (condition = "Type_Condition == 'Prescribed Velocity'",
397 Prescribed_Velocity=SIMP(statut='o',typ='R',
398 fr='Valeurs des vitesses imposees aux frontieres liquides entrantes.\n Lire la partie du mode d''emploi consacree aux conditions aux limites',
399 ang='Values of prescribed velocities at the liquid inflow boundaries.\n Refer to the section dealing with the boundary conditions'),
402 ), # fin des Liquid_Boundaries
403 Liquid_Boundaries_File = SIMP( statut='f', typ = ('Fichier', 'All Files (*)',),
404 fr = 'Fichier de variations en temps des conditions aux limites.\n\
405 Les donnees de ce fichier seront a lire sur le canal 12.',
406 ang = 'Variations in time of boundary conditions. Data of this file are read on channel 12.',
410 #PNPN Attention dans le Dico STAGE-DISCHARGE CURVES
411 Stage_Discharge_Curves = SIMP(statut='f',typ='TXM',
413 into=["no","Z(Q)","not programmed"],
414 fr='Indique si une courbe de tarage doit etre utilisee pour une frontiere',
415 ang='Says if a discharge-elevation curve must be used for a given boundary',
417 b_discharge_curve = BLOC (condition = "Stage_Discharge_Curves == 'Z(Q)'",
419 #PNPN Attention dans le Dico STAGE-DISCHARGE CURVES FILES
420 Stage_Discharge_Curves_File = SIMP( statut='f', typ = ('Fichier', 'All Files (*)',),
421 fr='Nom du fichier contenant les courbes de tarage',
422 ang='Name of the file containing stage-discharge curves',
426 Elements_Masked_By_User =SIMP(statut='o',typ=bool,
428 fr = 'Si oui remplir le sous-programme maskob',
429 ang = 'if yes rewrite subroutine maskob',
431 maskob = BLOC (condition = 'Elements_Masked_By_User==True',
432 Consigne = SIMP(statut="o",homo='information',typ="TXM", defaut="Remplir le sous-programme maskob"),
435 ) # fin Boundary_Conditions
438 NUMERICAL_PARAMETERS=PROC(nom="NUMERICAL_PARAMETERS",op=None,
440 Solver_Definition=FACT(statut='o',
442 Equations=SIMP(statut='o',typ='TXM',
443 into=['SAINT-VENANT EF','SAINT-VENANT VF','BOUSSINESQ'],
444 defaut='SAINT-VENANT EF',
445 fr='Choix des equations a resoudre',
446 ang= 'Choice of equations to solve',
449 Solver=SIMP(statut='o',typ='TXM',
450 into = ["conjugate gradient", "conjugate residual","conjugate gradient on a normal equation",\
451 "minimum error", "cgstab", "gmres", "direct",],
452 fr = 'Permet de choisir le solveur utilise pour la resolution de l''etape de propagation. \n\
453 Toutes les methodes proposees actuellement s''apparentent au Gradient Conjugue. Ce sont :\n\
454 1 : gradient conjugue 2 : residu conjugue 3 : gradient conjugue sur equation normale \n\
455 4 : erreur minimale 5 : gradient conjugue carre (non programme) 6 : gradient conjugue carre stabilise (cgstab)\n\
456 7 : gmres (voir aussi option du solveur) 8 : direct',
457 ang = 'Makes it possible to select the solver used for solving the propagation step.\n\
458 All the currently available methods are variations of the Conjugate Gradient method. They are as follows: \n\
459 1: conjugate gradient 2: conjugate residual 3: conjugate gradient on a normal equation\n\
460 4: minimum error 5: conjugate gradient squared (not implemented) 6: conjugate gradient squared stabilised (cgstab) \n\
461 7: gmres (see option for solver) 8: direct',
464 b_gmres = BLOC (condition = "Solver == 'gmres'",
465 Solver_Option = SIMP(statut='o',typ='I', defaut=2, val_min=2,val_max=15,
466 fr = 'la dimension de l''espace de KRILOV',
467 ang = 'dimension of the KRYLOV space',
471 Solver_Accuracy = SIMP(statut='o',typ='R', defaut=1e-4,
472 fr = 'Precision demandee pour la resolution de l''etape de propagation (cf. Note de principe).',
473 ang = 'Required accuracy for solving the propagation step (refer to Principle note).',
476 Maximum_Number_Of_Iterations_For_Solver=SIMP(statut='o',typ='I', defaut=40,
477 fr = 'Les algorithmes utilises pour la resolution de l''etape de propagation etant iteratifs, \n\
478 il est necessaire de limiter le nombre d''iterations autorisees.\n\
479 Remarque : un maximum de 40 iterations par pas de temps semble raisonnable.',
480 ang = 'Since the algorithms used for solving the propagation step are iterative, \
481 the allowed number of iterations should be limited.\n\
482 Note: a maximum number of 40 iterations per time step seems to be reasonable.',
486 Time=FACT(statut='f',
487 regles=(AU_MOINS_UN('Number_Of_Time_Steps','Duration'),
488 EXCLUS('Number_Of_Time_Steps','Duration'),
491 Time_Step=SIMP(statut='o',typ='R'),
492 Number_Of_Time_Steps=SIMP(statut='f',typ='I',
493 fr='Definit le nombre de pas de temps effectues lors de l''execution du code.',
494 ang='Specifies the number of time steps performed when running the code.'),
495 Duration=SIMP(statut='f',typ='R'),
496 Variable_Time_Step=SIMP(statut='f',typ=bool),
497 b_var_time = BLOC(condition = "Variable_Time_Step==True" ,
498 Desired_Courant_Number=SIMP(statut='o',typ='R'),
501 Stop_If_A_Steady_State_Is_Reached=SIMP(statut='f',typ=bool,defaut='False'),
502 b_stop = BLOC(condition = "Stop_If_A_Steady_State_Is_Reached==True" ,
504 Stop_Criteria=SIMP(statut='o',typ=Tuple(3),validators=VerifTypeTuple(('R','R','R')),
505 fr = "Criteres d'arret pour un ecoulement permanent. ces coefficients sont respectivement appliques a\n\
506 1- U et V 2- H 3- T ",
507 ang = 'Stop criteria for a steady state These coefficients are applied respectively to\n\
508 1- U and V 2- H 3- T ',),
511 Control_Of_Limit=SIMP(statut='f',typ=bool,defaut='False',
512 fr = 'Le programme s''arrete si les limites sur u,v,h ou t sont depassees',
513 ang = 'The program is stopped if the limits on u,v,h, or t are trespassed',
516 b_limit = BLOC(condition = "Control_Of_Limit==True" ,
518 Limit_Values=FACT(statut='o',
519 fr = 'valeurs mini et maxi acceptables min puis max',
520 ang= 'min and max acceptable values ',
521 Limit_Values_H=SIMP(statut='o',typ=Tuple(2),validators=VerifTypeTuple(('R','R')),defaut=(-1000,9000)),
522 Limit_Values_U=SIMP(statut='o',typ=Tuple(2),validators=VerifTypeTuple(('R','R')),defaut=(-1000,1000)),
523 Limit_Values_V=SIMP(statut='o',typ=Tuple(2),validators=VerifTypeTuple(('R','R')),defaut=(-1000,1000)),
524 Limit_Values_T=SIMP(statut='o',typ=Tuple(2),validators=VerifTypeTuple(('R','R')),defaut=(-1000,1000)),
529 Linearity=FACT(statut='f',
530 Continuity_Correction =SIMP(typ=bool, statut='o',defaut=False,
531 fr = 'Corrige les vitesses sur les points avec hauteur imposee ou l''equation de continuite n''a pas ete resolue',
532 ang = 'Correction of the velocities on points with a prescribed elevation, where the continuity equation has not been solved',
534 Number_Of_Sub_Iterations_For_Non_Linearity=SIMP(statut='o',typ='I',defaut=1,
535 fr = 'Permet de reactualiser, pour un meme pas de temps, les champs convecteur et propagateur au cours de plusieurs sous-iterations.\n\
536 A la premiere sous-iteration, ces champs sont donnes par C et le champ de vitesses au pas de temps precedent.\n\
537 Aux iterations suivantes, ils sont pris egaux au champ de vitesse obtenu a la fin de la sous-iteration precedente. \n\
538 Cette technique permet d''ameliorer la prise en compte des non linearites.',
539 ang = 'Used for updating, within one time step, the advection and propagation field. upon the first sub-iteration, \n\
540 these fields are given by C and the velocity field in the previous time step. At subsequent iterations, \n\
541 the results of the previous sub-iteration is used to update the advection and propagation field.\n\
542 The non-linearities can be taken into account through this technique.',),
544 Precondionning_setting=FACT(statut='f',
546 Preconditionning=SIMP(statut='f',typ='I',
547 into=[ "diagonal", "no preconditioning", "diagonal condensee", "crout", \
548 "gauss-seidel", "diagonal and crout", "diagonal condensed and crout"],
550 C_U_Preconditionning =SIMP(typ=bool, statut='f',
551 fr = 'Changement de variable de H en C dans le systeme lineaire final',
552 ang = 'Change of variable from H to C in the final linear system'
554 ),# fin Preconditionnement
557 Matrix_Informations=FACT(statut='f',
558 Matrix_Vector_Product =SIMP(statut='f',typ='TXM',
559 into=["classic", "frontal"],
560 fr='attention, si frontal, il faut une numerotation speciale des points',
561 ang='beware, with option 2, a special numbering of points is required',
563 Matrix_Storage =SIMP(statut='f',typ='TXM',
564 into=["EBE classique","Stockage par segments",]
566 ),# fin Matrix_Informations
568 Advection=FACT(statut='o',
570 Advection_Propagation=FACT(statut='o',
571 Advection_Of_U_And_V=SIMP(statut='o',typ=bool,defaut=False,
572 fr = 'Prise en compte ou non de la convection de U et V.',
573 ang= 'The advection of U and V is taken into account or ignored.'
576 b_u_v = BLOC( condition = "Advection_Of_U_And_V==True",
577 Type_Of_Advection_U_And_V=SIMP(statut='o',typ='TXM',position="global",
578 into=["characteristics", "SUPG", "Conservative N-scheme", 'Conservative N-scheme',\
579 'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
580 'Edge-based N-scheme'],
581 defaut="characteristics",
584 b_upwind =BLOC(condition = "Type_Of_Advection_U_And_V== 'SUPG'",
585 Upwind_Coefficients_Of_U_And_V=SIMP(statut='o',typ='R',defaut=1.)
589 Advection_Of_H=SIMP(statut='o',typ=bool,defaut=False,
590 fr = 'Prise en compte ou non de la convection de H.',
591 ang= 'The advection of H is taken into account or ignored.'
594 b_h = BLOC( condition = "Advection_Of_H==True",
596 Type_Of_Advection_H=SIMP(statut='o',typ='TXM',position="global",
597 into=["characteristics", "SUPG", "Conservative N-scheme", 'Conservative N-scheme',\
598 'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
599 'Edge-based N-scheme'],
600 defaut="Conservative PSI-scheme",
602 b_upwind_H = BLOC(condition = "Type_Of_Advection_H== 'SUPG'",
603 Upwind_Coefficients_Of_H=SIMP(statut='o',typ='R',defaut=1.)
608 Advection_Of_K_And_Epsilon=SIMP(statut='o',typ=bool,defaut=False,
609 fr = 'Prise en compte ou non de la convection de Tracer.',
610 ang= 'The advection of Tracer is taken into account or ignored.'
613 b_k = BLOC( condition = "Advection_Of_K_And_Epsilon==True",
615 Type_Of_Advection_K_And_Epsilon=SIMP(statut='o',typ='TXM',position="global",
616 into=["characteristics", "SUPG", "Conservative N-scheme", 'Conservative N-scheme',\
617 'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
618 'Edge-based N-scheme'],
619 defaut="characteristics",
621 b_upwind_k =BLOC(condition = "Type_Of_Advection_K_And_Epsilon== 'SUPG'",
622 Upwind_Coefficients_Of_K_And_Epsilon=SIMP(statut='o',typ='R',defaut=1.)
626 Advection_Of_Tracers=SIMP(statut='o',typ=bool,defaut=False,
627 fr = 'Prise en compte ou non de la convection de Tracer.',
628 ang= 'The advection of Tracer is taken into account or ignored.'
631 b_tracers = BLOC( condition = "Advection_Of_Tracers==True",
633 Type_Of_Advection_Tracers=SIMP(statut='o',typ='TXM',position="global",
634 into=["characteristics", "SUPG", "Conservative N-scheme", 'Conservative N-scheme',\
635 'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
636 'Edge-based N-scheme'],
638 b_upwind_Tracers =BLOC(condition = "Type_Of_Advection_Tracers== 'SUPG'",
639 Upwind_Coefficients_Of_Tracers=SIMP(statut='o',typ='R',defaut=1.)
643 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')",
644 Maximum_Number_Of_Iterations_For_Advection_Schemes = SIMP( statut='o',typ='I', defaut=10 ,
645 fr = 'Seulement pour schemes Edge-based N-scheme',
646 ang= 'Only for Edge-based N-scheme',
652 # recalculer la liste de 4
653 # Attention bloc selon le type de convection
654 SUPG=FACT(statut='o',
655 Supg_Option_U_And_V=SIMP(statut='o',defaut='modified SUPG',typ='TXM',into=['no upwinding', 'classical SUPG','modified SUPG']),
656 Supg_Option_H=SIMP(statut='o',defaut='modified SUPG',typ='TXM',into=['no upwinding', 'classical SUPG','modified SUPG']),
657 Supg_Option_Tracers=SIMP(statut='o',defaut='modified SUPG',typ='TXM',into=['no upwinding', 'classical SUPG','modified SUPG']),
658 Supg_Option_K_and_Epsilon=SIMP(statut='o',defaut='modified SUPG',typ='TXM',into=['no upwinding', 'classical SUPG','modified SUPG']),
661 Mass_Lumping_On_H =SIMP(statut='f',typ='R',defaut=0,
662 fr = 'TELEMAC offre la possibilite d''effectuer du mass-lumping sur H ou U.\n\
663 Ceci revient a ramener tout ou partie (suivant la valeur de ce coefficient) des matrices AM1 (h) ou AM2 (U) \n\
664 et AM3 (V) sur leur diagonale. Cette technique permet d''accelerer le code dans des proportions tres\n\
665 importantes et de le rendre egalement beaucoup plus stable. Cependant les solutions obtenues se trouvent lissees.\n\
666 Ce parametre fixe le taux de mass-lumping effectue sur h.',
667 ang = 'TELEMAC provides an opportunity to carry out mass-lumping either on C,H or on the velocity. \n\
668 This is equivalent to bringing the matrices AM1(h) or AM2(U) and AM3(V) wholly or partly, back onto their diagonal.\n\
669 Thanks to that technique, the code can be speeded up to a quite significant extent and it can also be made much \n\
670 more stable. The resulting solutions, however, become artificially smoothed. \n\
671 This parameter sets the extent of mass-lumping that is performed on h.'),
673 Mass_Lumping_On_Velocity =SIMP(statut='f',typ='R',defaut=0,
674 fr = 'Fixe le taux de mass-lumping effectue sur la vitesse.',
675 ang = 'Sets the amount of mass-lumping that is performed on the velocity.'
681 # Attention a recalculer
682 # Il faut recalculer des listes de 4 en sortie
684 Treatment_Of_The_Linear_System=SIMP(statut='f', typ='TXM',
685 #CHOIX1 = '1="coupled"';'2="Wave equation"'
686 into=["coupled","Wave equation"],
689 Free_Surface_Gradient_Compatibility=SIMP(statut='f',typ='R',defaut=1.,
690 fr = 'Des valeurs inferieures a 1 suppriment les oscillations parasites',
691 ang = 'Values less than 1 suppress spurious oscillations'
696 Propagation=FACT(statut='f',
697 #PNPNPN Il faut recalculer le MCSIM Propagation
698 Linearized_Propagation=SIMP(statut='o',typ=bool,defaut=False),
699 b_linear =BLOC(condition = "Linearized_Propagation==True ",
700 Mean_Depth_For_Linearity=SIMP(statut='o',typ='R',defaut=0.0,val_min=0),
702 Initial_Guess_for_H=SIMP(statut='f',typ='TXM',into=['zero','previous','extrapolation'],defaut='previous',
703 fr = 'Tir initial du solveur de l etape de propagation. Offre la possibilite de modifier la valeur initiale de DH,\n\
704 accroissement de H, a chaque iteration, dans l etape de propagation en utilisant les valeurs finales de cette variable \n\
705 aux pas de temps precedents. Ceci peut permettre daccelerer la vitesse de convergence lors de la resolution du systeme.',
706 ang= 'Initial guess for the solver in the propagation step. Makes it possible to modify the initial value of H, \n\
707 upon each iteration in the propagation step, by using the ultimate values this variable had in the earlier time steps.\n\
708 Thus, the convergence can be speeded up when the system is being solved.',
710 Initial_Guess_for_U=SIMP(statut='f',typ='TXM',into=['zero','previous','extrapolation'], defaut='previous',
711 fr = 'Tir initial du solveur de l etape de propagation. Offre la possibilite de modifier la valeur initiale de DH,\n\
712 accroissement de U, a chaque iteration, dans l etape de propagation en utilisant les valeurs finales de cette variable \n\
713 aux pas de temps precedents. Ceci peut permettre daccelerer la vitesse de convergence lors de la resolution du systeme.',
714 ang= 'Initial guess for the solver in the propagation step. Makes it possible to modify the initial value of U, \n\
715 upon each iteration in the propagation step, by using the ultimate values this variable had in the earlier time steps.\n\
716 Thus, the convergence can be speeded up when the system is being solved.',
719 Discretisation_Implicitation=FACT(statut='f',
720 Discretisations_In_Space=SIMP(statut='f',typ='TXM',
721 into =["linear for velocity and depth", "quasi-bubble-velocity and linear depth", "quadratic velocity and linear depth"],
722 defaut="linear for velocity and depth",),
723 Implicitation_For_Depth=SIMP(statut='f',typ='R',defaut=0.55,
724 fr = 'Fixe la valeur du coefficient d''implicitation sur C dans l''etape de propagation (cf. Note de principe).\n\
725 Les valeurs inferieures a 0.5 donnent un schema instable.',
726 ang = 'Sets the value of the implicitation coefficient for C (the celerity of waves) in the propagation step (refer to principle note).\n\
727 Values below 0.5 result in an unstable scheme.'),
729 Implicitation_for_Velocity=SIMP(statut='f',typ='R',defaut=0.55,
730 fr = 'Fixe la valeur du coefficient d''implicitation sur la vitesse dans l''etape de propagation (cf. Note de principe).\n\
731 Les valeurs inferieures a 0.5 donnent un schema instable.',
732 ang= 'Sets the value of the implicitation coefficient for velocity in the propagation step (refer to principle note).\n\
733 Values below 0.5 result in an unstable condition.'),
735 Implicitation_For_Diffusion_Of_Velocity=SIMP(statut='f',typ='R',defaut=0,
736 fr = 'Fixe la valeur du coefficient d''implicitation sur les termes de diffusion des vitesses',
737 ang = 'Sets the value of the implicitation coefficient for the diffusion of velocity',
742 Tidal_Flats=SIMP(statut='o',typ=bool,defaut=False,
743 fr='permet de supprimer les tests sur les bancs decouvrants, dans les cas ou l''on est certain qu''il n''y en aura pas, En cas de doute : oui',
744 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'
746 b_tidal_flats=BLOC(condition='Tidal_Flats==True',
748 Option_For_The_Treatment_Of_Tidal_Flats=SIMP(statut='o',typ='TXM',
749 into=["Equations resolues partout avec correction sur les bancs decouvrants",\
750 "gel des elements decouvrants","comme 1 mais avec porosite (methode defina)"],
751 defaut="equations resolues partout avec correction sur les bancs decouvrants",
753 b_option_tidal_flats=BLOC(condition='Option_For_The_Treatment_Of_Tidal_Flats=="Equations resolues partout avec correction sur les bancs decouvrants"',
754 Treatment_Of_Negative_Depths = SIMP( statut='o',typ='TXM',
755 into=[ 'no treatment', 'smoothing', 'flux control'],
756 defaut='smoothing' ,),
758 Threshold_For_Negative_Depths = SIMP( statut='o',typ='R', defaut=0.0 ,
759 fr = 'En dessous du seuil, les hauteurs negatives sont lissees',
760 ang= 'Below the threshold the negative depths are smoothed',
763 H_Clipping=SIMP(statut='o',typ=bool,defaut=False,
764 fr = 'Determine si l''on desire ou non limiter par valeur inferieure la hauteur d''eau H (dans le cas des bancs decouvrants par exemple).',
765 ang = 'Determines whether limiting the water depth H by a lower value desirable or not. (for instance in the case of tidal flats)\n\
766 This key-word may have an influence on mass conservation since the truncation of depth is equivalent to adding mass.',),
768 b_clipping=BLOC(condition='H_Clipping==True',
769 Minimum_Value_Of_Depth = SIMP( statut='o',typ='R', defaut=0.0 ,
770 fr = 'Fixe la valeur minimale de a lorsque loption CLIPPING DE H est activee.',
771 ang= 'Sets the minimum H value when option H CLIPPING is implemented. Not fully implemented.',),
775 Turbulence=FACT(statut='f',
776 Solver_For_K_epsilon_Model = SIMP( statut='o',typ='TXM',
777 defaut="conjugate gradient" ,
778 into =("conjugate gradient", "conjugate residuals", "conjugate gradient on normal equation", "minimum error", "conjugate gradient squared",\
779 "conjugate gradient squared stabilised (cgstab)", "gmres", "direct"),
780 #into =('1="conjugate gradient"', '2="conjugate residuals"', '3="conjugate gradient on normal equation"', '4="minimum error"', '5="conjugate gradient squared"', '6="conjugate gradient squared stabilised (cgstab)"', '7="gmres (see option for the solver for k-epsilon model)"', '8="direct"'),
781 fr = 'Permet de choisir le solveur utilise pour la resolution du systeme du modele k-epsilon',
782 ang= 'Makes it possible to select the solver used for solving the system of the k-epsilon model.',
785 b_gmres=BLOC(condition='Solver_For_K_epsilon_Model=="gmres"',
786 Option_For_The_Solver_For_K_epsilon_Model = SIMP( statut='o',typ='I',
787 defaut=2 ,val_min=2,val_max=15,
788 fr = 'le mot cle est la dimension de lespace de KRILOV (valeurs conseillees entre 2 et 7)',
789 ang= 'dimension of the krylov space try values between 2 and 7',),
792 Preconditioning_For_K_epsilon_Model = SIMP( statut='o',typ='TXM',
794 into =("diagonal", "no preconditioning", "diagonal condensed", "crout", "diagonal and crout", "diagonal condensed and crout"),
795 #into =('2="diagonal"', '0="no preconditioning"', '3="diagonal condensed"', '7="crout"', '14="diagonal and crout"', '21="diagonal condensed and crout"'),
796 fr = 'Permet de preconditionner le systeme relatif au modele k-epsilon',
797 ang= 'Preconditioning of the linear system in the diffusion step of the k-epsilon model.',
800 Turbulence_Model = SIMP( statut='o',typ='TXM', defaut="CONSTANT VISCOSITY",
801 #into =('1="CONSTANT VISCOSITY"', '2="ELDER"', '3="K-EPSILON MODEL"', '4="SMAGORINSKI"'),
802 into =("Constant Viscosity", "Elder", "K-Epsilon Model", "Smagorinski"),
804 fr = 'si on choisit loption 2 il ne faut pas oublier dajuster les deux valeurs du mot-cle : COEFFICIENTS ADIMENSIONNELS DE DISPERSION Si on choisit loption 3, ce meme parametre doit retrouver sa vraie valeur physique car elle est utilisee comme telle dans le modele de turbulence',
805 ang= 'When option 2 is chosen, the two values of key-word : NON-DIMENSIONAL DISPERSION COEFFICIENTS are used When option 3 is chosen, this parameter should recover its true physical value, since it is used as such in the turbulence model.',
808 b_turbu_const=BLOC(condition='Turbulence_Model=="Constant Viscosity"',
809 Velocity_Diffusivity=SIMP( statut='o',typ='R',defaut=1.E-6,
810 fr='Fixe de facon uniforme pour l ensemble du domaine la valeur du coefficient de diffusion de viscosite globale (dynamique + turbulente).\n\
811 Cette valeur peut avoir une influence non negligeable sur la forme et la taille des recirculations.',
812 ang = 'Sets, in an even way for the whole domain, the value of the coefficient of global (dynamic+turbulent) viscosity. \n\
813 this value may have a significant effect both on the shapes and sizes of recirculation zones.',),
816 b_turbu_elder=BLOC(condition='Turbulence_Model=="Elder"',
817 Non_Dimensional_Dispersion_Coefficients = SIMP (statut='o',
818 typ=Tuple(2),validators=VerifTypeTuple(('R','R')),defaut=(6.,0.6),
819 fr = 'coefficients longitudinal et transversal dans la formule de Elder.',
820 ang = 'Longitudinal and transversal coefficients in elder s formula. Used only with turbulence model number 2',),
823 Accuracy_Of_K = SIMP( statut='o',typ='R', defaut=1e-09 ,
824 fr = 'Fixe la precision demandee sur k pour le test darret dans letape de diffusion et termes sources du modele k-epsilon.',
825 ang= 'Sets the required accuracy for computing k in the diffusion and source terms step of the k-epsilon model.',
828 Accuracy_Of_Epsilon = SIMP( statut='o',typ='R', defaut=1e-09 ,
829 fr = 'Fixe la precision demandee sur epsilon pour le test darret dans letape de diffusion et termes sources de k et epsilon.',
830 ang= 'Sets the required accuracy for computing epsilon in the diffusion and source-terms step of the k-epsilon model.',
832 Time_Step_Reduction_For_K_epsilon_Model = SIMP( statut='f',typ='R', defaut=1.0 ,
833 fr = 'Coefficient reducteur du pas de temps pour le modele k-epsilon (qui est normalement identique a celui du systeme hydrodynamique).\n\
834 Utilisation deconseillee',
835 ang= 'Time step reduction coefficient for k-epsilon model (which is normally same the same as that of the hydrodynamic system).\n\
836 Not recommended for use.',
838 Maximum_Number_Of_Iterations_For_K_And_Epsilon = SIMP( statut='o',typ='I',
840 fr = 'Fixe le nombre maximum diterations accepte lors de la resolution du systeme diffusion-termes sources du modele k-epsilon.',
841 ang= 'Sets the maximum number of iterations that are acceptable when solving the diffusion source-terms step of the k-epsilon model.',
843 Turbulence_Model_For_Solid_Boundaries = SIMP( statut='o',typ='TXM',
845 #into =('1=smooth', '2=rough'),
846 into =('smooth', 'rough'),
847 fr = 'Permet de choisir le regime de turbulence aux parois ',
848 ang= 'Provided for selecting the type of friction on the walls',
855 Finite_Volume_Scheme = SIMP( statut='o',typ='TXM',
857 into=[ "Roe scheme", "kinetic order 1", "kinetic order 2", "Zokagoa scheme order 1",\
858 "Tchamen scheme order 1", "HLLC scheme order 1", "WAF scheme order 2"],
859 defaut="kinetic order 1",
861 Newmark_Time_Integration_Coefficient = SIMP( statut='o',typ='R',
863 fr = '1. : Euler explicite 0.5 : ordre 2 en temps',
864 ang= '1. : Euler explicit 0.5 : order 2 in time',
866 Option_For_Characteristics = SIMP( statut='o',typ='TXM',
867 defaut="strong form" ,
868 into=['strong form','weak form',],
871 Mass_Lumping_For_Weak_Characteristics=SIMP(statut='f',typ='R',defaut=0,
872 fr = 'Applique a la matrice de masse',
873 ang = 'To be applied to the mass matrix',
876 )# fin NUMERICAL_PARAMETERS
878 PHYSICAL_PARAMETERS=PROC(nom="PHYSICAL_PARAMETERS",op=None,
879 Atmosphere=FACT(statut='f',
880 Wind=SIMP(statut='f',typ=bool,sug=False),
881 b_Wind =BLOC(condition = "Wind=='True'",
882 regles=( PRESENT_PRESENT('Wind_Velocity_along_X','Wind_Velocity_along_Y', ),),
883 Coefficient_Of_Wind_Influence=SIMP(statut='f',typ='R',sug=0,),
884 Wind_Velocity_along_X=SIMP(statut='f',typ='R',sug=0,),
885 Wind_Velocity_along_Y=SIMP(statut='f',typ='R',sug=0,),
886 Threashold_Depth_for_Wind=SIMP(statut='f',typ='R',sug=0,),
887 Air_Pressure=SIMP(statut='f',typ=bool,sug=False),
889 Rain_or_Evaporation=SIMP(statut='f',typ=bool,sug=False),
890 b_Rain =BLOC(condition = "Rain_or_Evaporation=='True'",
891 Rain_or_Evaporation_in_mm_perday=SIMP(statut='f',typ='I',sug=0),
896 Friction_Data=SIMP(statut='o',typ=bool,defaut=False),
897 b_Friction = BLOC(condition = "Friction_Data==True",
898 Friction_Data_File = SIMP( statut='o',
899 typ = ('Fichier', ';;All Files (*)'),
900 fr = 'fichier de donnees pour le frottement',
901 ang= 'friction data file',
903 Depth_In_Friction_Terms = SIMP( statut='o',typ='TXM',
904 defaut= '1="nodal"' ,
905 into =('1="nodal"', '2="average"'),
906 fr = '1 : nodale 2 : moyenne',
907 ang= '1: nodal 2: average',
909 Law_Of_Bottom_Friction = SIMP( statut='o',typ='TXM',
910 defaut='0="NO FRICTION"' ,
911 into =('0="NO FRICTION"', '1="HAALAND"', '2="CHEZY"', '3="STRICKLER"', '4="MANNING"', '5="NIKURADSE"','Log Law of Boundaries 6','Colebrooke_White Log 7'),
912 fr = 'selectionne le type de formulation utilisee pour le calcul du frottement sur le fond.',
913 ang= 'Selects the type of formulation used for the bottom friction.',
915 b_Law_Friction = BLOC(condition = "Law_Of_Bottom_Friction!=0",
916 Friction_Coefficient = SIMP( statut='o',typ='R',
918 fr = 'Fixe la valeur du coefficient de frottement pour la formulation choisie. \
919 Attention, la signification de ce chiffre varie suivant la formule choisie : \
920 1 : coefficient lineaire 2 : coefficient de Chezy 3 : coefficient de Strickler \
921 4 : coefficient de Manning 5 : hauteur de rugosite de Nikuradse',
922 ang= 'Sets the value of the friction coefficient for the selected formulation. \
923 It is noteworthy that the meaning of this figure changes according to the selected formula (Chezy, Strickler, etc.) : \
924 1 : linear coefficient 2 : Chezy coefficient 3 : Strickler coefficient 4 : Manning coefficient 5 : Nikuradse grain size',
927 b_Colebrooke_White = BLOC(condition =' "Law_Of_Bottom_Friction" in ("Colebrooke_White Log 7",)',
928 Manning_Default_Value_For_Colebrook_white_Law = SIMP( statut='o',typ='R',
930 fr = 'valeur par defaut du manning pour la loi de frottement de Colebrook-White ',
931 ang= 'Manning default value for the friction law of Colebrook-White ',
935 Non_submerged_Vegetation_Friction = SIMP( statut='o',typ=bool,
937 fr = 'calcul du frottement du a la vegetation non submergee',
938 ang= 'friction calculation of the non-submerged vegetation',
940 b_Non_Sub = BLOC(condition =' Non_submerged_Vegetation_Friction == True',
941 Diameter_Of_Roughness_Elements = SIMP( statut='o',typ='R',
943 fr = 'diametre des elements de frottements',
944 ang= 'diameter of roughness element',
947 Spacing_Of_Roughness_Elements = SIMP( statut='o',typ='R',
949 fr = 'espacement des elements de frottement',
950 ang= 'spacing of rouhness element',
953 Law_Of_Friction_On_Lateral_Boundaries = SIMP( statut='o',typ='TXM',
955 into =('0="NO FRICTION"', '1="HAALAND"', '2="CHEZY"', '3="STRICKLER"', '4="MANNING"', '5="NIKURADSE"', '6="LOG LAW"', '7="COLEBROOK-WHITE"'),
956 fr = 'selectionne le type de formulation utilisee pour le calcul du frottement sur les parois laterales.',
957 ang= 'Selects the type of formulation used for the friction on lateral boundaries.',
959 Roughness_Coefficient_Of_Boundaries = SIMP( statut='o',typ='R',
961 fr = 'Fixe la valeur du coefficient de frottement sur les frontieres solides avec un regime turbulent rugueux\n\
962 sur les bords du domaine. meme convention que pour le coefficient de frottement',
963 ang= 'Sets the value of the friction coefficient of the solid boundary with the bed roughness option. Same meaning than friction coefficient',
965 Maximum_Number_Of_Friction_Domains = SIMP( statut='o',typ='I',
967 fr = 'nombre maximal de zones pouvant etre definies pour le frottement. Peut etre augmente si necessaire',
968 ang= 'maximal number of zones defined for the friction. Could be increased if needed',
971 Bottom_Smoothings = SIMP( statut='o',typ='I', defaut=0 ,
972 fr = 'Nombre de lissages effectues sur la topographie. chaque lissage, effectue a l aide dune matrice de masse, est conservatif.\n\
973 Utilise lorsque les donnees de bathymetrie donnent des resultats trop irreguliers apres interpolation.',
974 ang= 'Number of smoothings on bottom topography. each smoothing is mass conservative. \n\
975 to be used when interpolation of bathymetry on the mesh gives very rough results.',
978 Threshold_Depth_For_Receding_Procedure=SIMP(statut='o',typ='R',defaut=0 ,
979 fr ='Si > 0., declenche la procedure de ressuyage qui evite le franchissement parasite des digues mal discretisees',
980 ang='If > 0., will trigger the receding procedure that avoids overwhelming of dykes which are too loosely discretised ',
984 Parameter_Estimation=FACT(statut='f',
985 Parameter_Estimation = SIMP( statut='o',typ='TXM', into =["FRICTION","FROTTEMENT, STEADY"],
986 fr ='Liste des parametres a estimer',
987 ang = 'List of parameter to be estimated',),
989 Definition_Of_Zones = SIMP(typ=bool, statut='o', defaut=False,
990 fr = 'Declenche l''appel a def_zones, pour donner un numero de zone a chaque point',
991 ang = 'Triggers the call to def_zones to give a zone number to every point',
993 b_def_zone = BLOC (condition = 'Definition_Of_Zones==True',
994 Consigne = SIMP(statut="o",homo='information',typ="TXM", defaut="complete DEF_ZONES subroutine"),
997 Identification_Method = SIMP( statut='o',typ='TXM',
998 into=["list of tests", "gradient simple", "conj gradient", "Lagrange interp."],
999 defaut='gradient simple',
1001 Maximum_Number_Of_Iterations_For_Identification=SIMP(statut='o',typ='I',defaut=20,
1002 fr = 'chaque iteration comprend au moins un calcul direct et un calcul adjoint',
1003 ang = 'every iteration implies at least a direct and an adjoint computation',
1006 Cost_Function=SIMP(statut="o",typ='TXM', defaut = 'computed with h, u , v',
1007 into=['computed with h, u , v', 'computed with c, u , v'],
1008 # fr = '1 : calculee sur h, u , v 2 : calculee avec c, u , v'
1010 Tolerances_For_Identification=SIMP( statut='o',typ='R',
1011 defaut = (1.E-3,1.E-3,1.E-3,1.E-4),
1012 fr = '4 nombres : precision absolue sur H, U, V, et precision relative sur la fonction cout',
1013 ang = '4 numbers: absolute precision on H, U V, and relative precision on the cost function',
1019 POST_PROCESSING=PROC(nom="POST_PROCESSING",op=None,
1020 Graphic_Printouts=FACT(statut='f',
1021 Graphic_Printout_Period=SIMP(statut='o', typ='I',defaut=1),
1022 Number_Of_First_TimeStep_For_Graphic_Printouts=SIMP(statut='o', typ='I',defaut=1),
1023 Variables_For_Graphic_Printouts=SIMP(statut='o',max="**", typ='TXM',into=['a','b','c'],),
1026 Listing_Printouts=FACT(statut='f',
1028 Results_File_Format = SIMP( statut='o',typ='TXM',into=['SERAFIN','MED','SERAFIND'], defaut='SERAFIN',
1029 fr = 'Format du fichier de resultats. Les valeurs possibles sont : \n\
1030 - SERAFIN : format standard simple precision pour Telemac; \n\
1031 - SERAFIND: format standard double precision pour Telemac; \n\
1032 - MED : format MED base sur HDF5' ,
1033 ang = 'Results file format. Possible values are:\n \
1034 - SERAFIN : classical single precision format in Telemac;\n\
1035 - SERAFIND: classical double precision format in Telemac; \n\
1036 - MED : MED format based on HDF5' ,
1039 Results_File = SIMP( statut='o', typ = ('Fichier', 'Steering Files (*.cas);;All Files (*)',),
1040 fr='Nom du fichier dans lequel seront ecrits les resultats du calcul avec la periodicite donnee par le mot cle : PERIODE POUR LES SORTIES GRAPHIQUES.',
1041 ang='Name of the file into which the computation results shall be written, the periodicity being given by the key-word: GRAPHIC PRINTOUT PERIOD.',
1043 Listing_Printout_Period = SIMP(statut='o', typ='I',defaut=1,
1044 fr = 'Determine la periode en nombre de pas de temps d''impression des variables',
1045 ang = 'Determines, in number of time steps, the printout period for the variables',
1048 Number_Of_First_TimeStep_For_Graphic_Printouts=SIMP(statut='o', typ='I',defaut=1),
1049 Variables_To_Be_Printed=SIMP(statut='o',max="**", typ='TXM',into=['a','b','c']),
1050 ),#Listing_Printouts
1052 Formatted_Results_File = SIMP( statut='o',typ= ('Fichier','All Files (*)',),
1053 fr = 'Fichier de resultats formate mis a la disposition de l utilisateur. \
1054 Les resultats a placer dans ce fichier seront a ecrire sur le canal 29.',
1055 ang= 'Formatted file of results made available to the user. \
1056 The results to be entered into this file shall be written on channel 29.',
1060 Debugger = SIMP(typ=bool, statut='o', defaut=False),
1061 Output_Of_Initial_Conditions = SIMP(typ=bool, statut='o', defaut=True,
1062 fr = 'Si Vrai, impression des conditions initiales dans les resultats',
1063 ang = 'If True, output of initial conditions in the results'
1066 Binary_Results_File = SIMP( statut='f', typ = ('Fichier', ';;All Files (*)',),
1067 fr = "Fichier de resultats code en binaire mis a la disposition de l'utilisateur.\n\
1068 Les resultats a placer dans ce fichier seront a ecrire sur le canal 28.",
1069 ang = "Additional binary-coded result file made available to the user. \n\
1070 The results to be entered into this file shall be written on channel 28.",
1073 Information_About_Solver = SIMP(typ=bool, statut='f',defaut=False,
1074 fr = "Si vrai, Donne a chaque pas de temps le nombre d'iterations necessaires a la convergence du solveur de l'etape de propagation.",
1075 ang = "if True, prints the number of iterations that have been necessary to get the solution of the linear system.",
1080 PRECONDITIONING = SIMP( statut='o',typ='I',
1082 fr = 'Permet de preconditionner le systeme de letape de propagation afin daccelerer la convergence lors de sa resolution. - 0 : pas de preconditionnement; - 2 : preconditionnement diagonal. - 3 : preconditionnement diagonal-bloc - 7 : preconditionnement de Crout par element ou segment -11 : preconditionnement de Gauss-Seidel par element ou segment Certains preconditionnements sont cumulables (les diagonaux 2 ou 3 avec les autres) Pour cette raison on ne retient que les nombres premiers pour designer les preconditionnements. Si lon souhaite en cumuler plusieurs on formera le produit des options correspondantes.',
1083 ang= 'Choice of the preconditioning in the propagation step linear system that the convergence is speeded up when it is being solved. 0: no preconditioning 2: diagonal preconditioning 3: diagonal preconditioning with the condensed matrix 7: Crouts preconditioning per element or segment 11: Gauss-Seidels preconditioning per element or segment Some operations (either 2 or 3 diagonal preconditioning) can be performed concurrently with the others. Only prime numbers are therefore kept to denote the preconditioning operations. When several of them are to be performed concurrently, the product of relevant options shall be made.',
1089 # Attention calculer le logique BREACH
1090 STRUCTURES=PROC(nom="STRUCTURES",op=None,
1092 # Attention calculer le logique BREACH
1094 Number_Of_Culverts = SIMP( statut='o',typ='I',
1096 fr = 'Nombre de siphons traites comme des termes sources ou puits. Ces siphons doivent etre decrits comme des sources \
1097 dans le fichier cas. Leurs caracteristiques sont donnees dans le fichier de donnees des siphons (voir la documentation ecrite)',
1098 ang= 'Number of culverts treated as source terms. They must be described as sources in the domain\
1099 and their features are given in the culvert data file (see written documentation)',
1102 culvert_exist=BLOC(condition="Number_Of_Culverts!=0",
1103 Culverts= FACT(statut='o',
1105 Abscissae_Of_Sources = SIMP( statut='o',
1106 typ=Tuple(2),validators=VerifTypeTuple(('R','R')),
1107 fr = 'Valeurs des abscisses des sources de debit et de traceur.',
1108 ang= 'abscissae of sources of flowrate and/or tracer',
1111 Ordinates_Of_Sources = SIMP( statut='o',
1112 typ=Tuple(2),validators=VerifTypeTuple(('R','R')),
1113 fr = 'Valeurs des ordonnees des sources de debit et de traceur.',
1114 ang= 'ordinates of sources of flowrate and/or tracer',
1116 Water_Discharge_Of_Sources = SIMP( statut='o',
1117 typ=Tuple(2),validators=VerifTypeTuple(('R','R')),
1118 fr = 'Valeurs des debits des sources.',
1119 ang= 'values of water discharge of sources',
1121 Velocities_Of_The_Sources_Along_X = SIMP( statut='o',
1122 typ=Tuple(2),validators=VerifTypeTuple(('R','R')),
1123 fr = 'Vitesses du courant a chacune des sources. Si elles ne sont pas donnees, on considere que la vitesse est celle du courant',
1124 ang= 'Velocities at the sources. If they are not given, the velocity of the flow at this location is taken',
1126 Velocities_Of_The_Sources_Along_Y = SIMP( statut='o',
1127 typ=Tuple(2),validators=VerifTypeTuple(('R','R')),
1128 fr = 'Vitesses du courant a chacune des sources',
1129 ang= 'Velocities at the sources',
1133 Culvert_Data_File = SIMP( statut='o',typ = ('Fichier', 'All Files (*)',),
1134 fr = 'Fichier de description des siphons presents dans le modele',
1135 ang= 'Description of culvert existing in the model',
1140 Number_Of_Tubes = SIMP( statut='o',typ='I',
1142 fr = 'Nombre de buses ou ponts traites comme des termes sources ou puits. Ces buses doivent etre decrits comme des sources\n\
1143 dans le fichier cas. Leurs caracteristiques sont donnees dans le fichier de donnees des buses (voir la documentation ecrite)',
1144 ang= 'Number of tubes or bridges treated as source terms. They must be described as sources in the domain \n\
1145 and their features are given in the tubes data file (see written documentation)',
1148 b_Tubes= BLOC(condition="Number_Of_Tubes!=0",
1149 Tubes_Data_File = SIMP( statut='o',
1150 typ = ('Fichier', 'All Files (*)',),
1151 fr = 'Fichier de description des buses/ponts presents dans le modele',
1152 ang= 'Description of tubes/bridges existing in the model',
1156 Number_Of_Weirs=SIMP(statut='o',typ='I',defaut=0,
1157 fr = 'Nombre de seuils qui seront traites par des conditions aux limites. \n\
1158 Ces seuils doivent etre decrits comme des frontieres du domaine de calcul',
1159 ang = 'Number of weirs that will be treated by boundary conditions.',
1162 b_Weirs= BLOC(condition="Number_Of_Weirs!=0",
1163 Weirs_Data_File = SIMP( statut='o',
1164 typ = ('Fichier', 'All Files (*)',),
1165 fr = 'Fichier de description des seuils presents dans le modele',
1166 ang= 'Description of weirs existing in the model',),
1169 Breach=SIMP(statut='o',typ=bool,defaut=False,
1170 fr = 'Prise en compte de breches dans le calcul par modification altimetrique dans le maillage.',
1171 ang = 'Take in account some breaches during the computation by modifying the bottom level of the mesh.',
1173 b_Breaches= BLOC (condition = 'Breach==True',
1174 Breaches_Data_File = SIMP( statut='o',typ = ('Fichier', 'All Files (*)',),
1175 fr = 'Fichier de description des breches',
1176 ang= 'Description of breaches',
1179 Vertical_Structures=SIMP(statut='o',typ=bool,defaut=False,
1180 fr = 'Prise en compte de la force de trainee de structures verticales',
1181 ang = 'drag forces from vertical structures are taken into account',
1183 maskob = BLOC (condition = 'Vertical_Structures==True',
1184 Consigne = SIMP(statut="o",homo='information',typ="TXM", defaut="subroutine DRAGFO must then be implemented"),
1186 Formatted_File1 = SIMP( statut='f', typ = ('Fichier', 'formated File (*.txt);;All Files (*)',),
1187 fr = "Fichier de donnees formate mis a la disposition de l''utilisateur. \n\
1188 Les donnees de ce fichier seront a lire sur le canal 26.",
1189 ang = 'Formatted data file made available to the user.\n\
1190 The data in this file shall be read on channel 26.',
1193 TRACERS=PROC(nom="TRACERS",op=None,
1194 Boundary_conditions=FACT(statut='o',
1195 Treatment_Of_Fluxes_At_The_Boundaries = SIMP( statut='f',typ='TXM',
1196 into=["Priority to prescribed values","Priority to fluxes"],
1197 fr='Utilise pour les schemas SUPG, PSI et N, \n\
1198 si Priorité aux flux, on ne retrouve pas exactement les valeurs imposees des traceurs,mais le flux est correct',
1199 ang='Used so far only with the SUPG, PSI and N schemes.\n\
1200 if Priority to fluxes, Dirichlet prescribed values are not obeyed,but the fluxes are correct',
1202 ), # fin Boundary_conditions