Salome HOME
premiere version
[tools/eficas.git] / generator / generator_cuve2dg.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013   EDF R&D
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
8 #
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 """
21     Ce module contient le plugin generateur de fichier au format 
22     DefaillCUVE pour EFICAS.
23
24 """
25 import traceback
26 import types,string,re
27
28 from Noyau import N_CR
29 from Accas import MCSIMP
30 from generator_python import PythonGenerator
31
32 def entryPoint():
33    """
34        Retourne les informations nécessaires pour le chargeur de plugins
35
36        Ces informations sont retournées dans un dictionnaire
37    """
38    return {
39         # Le nom du plugin
40           'name' : 'cuve2dg',
41         # La factory pour créer une instance du plugin
42           'factory' : Cuve2dgGenerator,
43           }
44
45
46 class Cuve2dgGenerator(PythonGenerator):
47    """
48        Ce generateur parcourt un objet de type JDC et produit
49        un texte au format eficas et 
50        un texte au format DefaillCUVE
51
52    """
53    # Les extensions de fichier préconisées
54    extensions=('.comm',)
55
56    def __init__(self,cr=None):
57       # Si l'objet compte-rendu n'est pas fourni, on utilise le compte-rendu standard
58       if cr :
59          self.cr=cr
60       else:
61          self.cr=N_CR.CR(debut='CR generateur format DefaillCUVE pour DefaillCUVE',
62                          fin='fin CR format DefaillCUVE pour DefaillCUVE')
63       # Le texte au format DefaillCUVE est stocké dans l'attribut textCuve
64       self.textCuve=''
65
66       # Ce dictionnaire liste le nom des variables utilisees dans le script
67       self.variable = {
68          "NiveauImpression" : "MESSAGE_LEVEL",
69          "FichierDataIn"    : "DATARESUME_FILE",
70          "FichierTempSigma" : "TEMPSIG_FILE",
71          "FichierCSV"       : "CSV_FILE",
72          "FichierRESTART" : "RESTART_FILE",
73          "FichierEXTR" : "EXTR_FILE",
74          "ChoixPlugin" : "CHOIPLUG",
75          "GrandeurEvaluee" : "GRANDEUR",
76          "IncrementTemporel" : "INCRTPS",
77          "IncrementMaxTemperature" : "DTPREC",
78          "ChoixExtractionTransitoires" : "CHOIEXTR",
79          "IncrementMaxTempsAffichage" : "DTARCH",
80          "TraitementGeometrie" : "TYPEGEOM",
81          "RayonInterne" : "RINT",
82          "RayonInterne_mess" : "RINT_MESSAGE",
83          "RayonExterne" : "REXT",
84          "RayonExterne_mess" : "REXT_MESSAGE",
85          "EpaisseurRevetement" : "LREV",
86          "EpaisseurRevetement_mess" : "LREV_MESSAGE",
87          "LigamentExterneMin" : "LIGMIN",
88          "LigamentExterneMin_mess" : "LIGMIN_MESSAGE",
89          "NombreNoeudsMaillage" : "NBNO",
90          "TypeInitial" : "TYPEDEF",
91          "Orientation" : "ORIEDEF",
92          "Position" : "POSDEF",
93          "ProfondeurRadiale" : "PROFDEF",
94          "ProfondeurRadiale_mess" : "PROFDEF_MESSAGE",
95          "ModeCalculLongueur" : "OPTLONG",
96          "Longueur" : "LONGDEF",
97          "Longueur_mess" : "LONGDEF_MESSAGE",
98          "CoefDirecteur" : "PROFSURLONG",
99          "CoefDirecteur_mess" : "PROFSURLONG_MESSAGE",
100          "Constante" : "LONGCONST",
101          "ModeCalculDecalage" : "DECATYP",
102          "DecalageNormalise" : "DECANOR",
103          "DecalageNormalise_mess" : "DECANOR_MESSAGE",
104          "DecalageRadial" : "DECADEF",
105          "DecalageRadial_mess" : "DECADEF_MESSAGE",
106          "Azimut" : "ANGLDEF",
107          "Azimut_mess" : "ANGLDEF_MESSAGE",
108          "Altitude_mess" : "ANGLDEF_MESSAGE",
109          "Altitude" : "ALTIDEF",
110          "Altitude_mess" : "ALTIDEF_MESSAGE",
111          "Pointe" : "POINDEF",
112          "ModeleFluence" : "MODELFLUENCE",
113          "ZoneActiveCoeur_AltitudeSup" : "H1COEUR",
114          "ZoneActiveCoeur_AltitudeInf" : "H2COEUR",
115          "FluenceMax" : "fmax",
116          "KPFrance" : "KPFRANCE",
117          "KPUS" : "KPUS",
118          "Azimut_0deg" : "COEFFLUENCE1",
119          "Azimut_5deg" : "COEFFLUENCE2",
120          "Azimut_10deg" : "COEFFLUENCE3",
121          "Azimut_15deg" : "COEFFLUENCE4",
122          "Azimut_20deg" : "COEFFLUENCE5",
123          "Azimut_25deg" : "COEFFLUENCE6",
124          "Azimut_30deg" : "COEFFLUENCE7",
125          "Azimut_35deg" : "COEFFLUENCE8",
126          "Azimut_40deg" : "COEFFLUENCE9",
127          "Azimut_45deg" : "COEFFLUENCE10",
128          "TypeIrradiation" : "TYPEIRR",
129          "RTNDT" : "RTNDT",
130          "ModeleIrradiation" : "MODELIRR",
131          "TeneurCuivre" : "CU",
132          "TeneurCuivre_mess" : "CU_MESSAGE",
133          "TeneurNickel" : "NI",
134          "TeneurNickel_mess" : "NI_MESSAGE",
135          "TeneurPhosphore" : "P",
136          "TeneurPhosphore_mess" : "P_MESSAGE",
137          "MoyenneRTndt" : "RTimoy",
138          "MoyenneRTndt_mess" : "RTimoy_MESSAGE",
139          "CoefVariationRTndt" : "RTicov",
140          "CoefVariationRTndt_mess" : "RTicov_MESSAGE",
141          "EcartTypeRTndt" : "USectDRT",
142          "EcartTypeRTndt_mess" : "USectDRT_MESSAGE",
143          "NombreEcartTypeRTndt" : "nbectDRTNDT",
144          "NombreEcartTypeRTndt_mess" : "nbectDRTNDT_MESSAGE",
145          "ModeleTenacite" : "MODELKIC",
146          "NombreCaracteristique" : "NBCARAC",
147          "NbEcartType_MoyKIc" : "nbectKIc",
148          "NbEcartType_MoyKIc_mess" : "nbectKIc_MESSAGE",
149          "PalierDuctile_KIc" : "KICPAL",
150          "CoefficientVariation_KIc" : "KICCDV",
151          "Fractile_KIc" : "fractKIc",
152          "Fractile_KIc_mess" : "fractKIc_MESSAGE",
153          "Temperature_KIc100" : "T0WALLIN",
154          "A1" : "A1",
155          "A2" : "A2",
156          "A3" : "A3",
157          "B1" : "B1",
158          "B2" : "B2",
159          "B3" : "B3",
160          "C1" : "C1",
161          "C2" : "C2",
162          "C3" : "C3",
163          "ChoixCorrectionLongueur" : "CHOIXCL",
164          "AttnCorrBeta" : "ATTNCORRBETA",
165          "CorrIrwin" : "CORRIRWIN",
166          "ArretDeFissure" : "ARRETFISSURE",
167          "IncrementTailleFissure" : "INCRDEF",
168          "IncrementTailleFissure_mess" : "INCRDEF_MESSAGE",
169          "NbEcartType_MoyKIa" : "nbectKIa",
170          "PalierDuctile_KIa" : "KIAPAL",
171          "CoefficientVariation_KIa" : "KIACDV",
172          "ChoixCoefficientChargement" : "CHOIXSIGM",
173          "CoefficientDuctile" : "COEFSIGM1",
174          "CoefficientFragile" : "COEFSIGM2",
175          "InstantInitialisation" : "INSTINIT",
176          "ConditionLimiteThermiqueREV" : "KTHREV",
177          "TemperatureDeformationNulleREV" : "TREFREV",
178          "TemperaturePourCoefDilatThermREV" : "TDETREV",
179          "CoefficientPoissonREV" : "NUREV",
180          "ConditionLimiteThermiqueMDB" : "KTHMDB",
181          "TemperatureDeformationNulleMDB" : "TREFMDB",
182          "TemperaturePourCoefDilatThermMDB" : "TDETMDB",
183          "CoefficientPoissonMDB" : "NUMDB",
184          "TypeConditionLimiteThermique" : "TYPCLTH",
185          "Instant_1" : "INSTANT1",
186          "Instant_2" : "INSTANT2",
187          "Instant_3" : "INSTANT3",
188          "DebitAccumule" : "QACCU",
189          "DebitInjectionSecurite" : "QIS",
190          "TempInjectionSecurite" : "TIS",
191          "TempInjectionSecurite_mess" : "TIS_MESSAGE",
192          "DiametreHydraulique" : "DH",
193          "DiametreHydraulique_mess" : "DH_MESSAGE",
194          "SectionEspaceAnnulaire" : "SECTION",
195          "SectionEspaceAnnulaire_mess" : "SECTION_MESSAGE",
196          "HauteurCaracConvectionNaturelle" : "DELTA",
197          "HauteurCaracConvectionNaturelle_mess" : "DELTA_MESSAGE",
198          "CritereConvergenceRelative" : "EPS",
199          "CoefficientsVestale" : "COEFVESTALE",
200          "VolumeMelange_CREARE" : "VMTAB",
201          "TemperatureInitiale_CREARE" : "T0",
202          "TemperatureInitiale_CREARE_mess" : "T0_MESSAGE",
203          "SurfaceEchange_FluideStructure" : "SE",
204          "SurfaceEchange_FluideStructure_mess" : "SE_MESSAGE",
205          "InstantPerteCirculationNaturelle" : "INST_PCN",
206          }
207
208       # Ce dictionnaire liste le nom des valeurs proposées utilisees dans le script
209       self.valeurproposee = {
210          "Aucune impression" : "0",
211          "Temps total" : "1",
212          "Temps intermediaires" : "2",
213          "Facteur de marge KIc/KCP" : "FM_KICSURKCP",
214          "Marge KIc-KI" : "MARGE_KI",
215          "Marge KIc-KCP" : "MARGE_KCP",
216          "Topologie" : "GEOMETRIE",
217          "Maillage" : "MAILLAGE",
218          "Defaut Sous Revetement" : "DSR",
219          "Defaut Decale" : "DECALE",
220          "Defaut Debouchant" : "DEBOUCHANT",
221          "Longitudinale" : "LONGITUD",
222          "Circonferentielle" : "CIRCONF",
223          "Virole" : "VIROLE",
224          "Joint soude" : "JSOUDE",
225          "Valeur" : "VALEUR",
226          "Fonction affine de la profondeur" : "FCTAFFINE",
227          "Valeur normalisee" : "NORMALISE",
228          "A" : "A",
229          "B" : "B",
230          "A et B" : "BOTH",
231          "Exponentiel sans revetement k=9.7 (Reglementaire)" : "Reglementaire",
232          "Exponentiel sans revetement k=12.7 (France)" : "France",
233          "Exponentiel sans revetement k=0. (ValeurImposee)" : "ValeurImposee",
234          "Donnees francaises du palier CPY (SDM)" : "SDM",
235          "Regulatory Guide 1.99 rev 2 (USNRC)" : "USNRC",
236          "Dossier 900 MWe AP9701 rev 2 (REV_2)" : "REV_2",
237          "Lissage du modele ajuste (SDM_Lissage)" : "SDM_Lissage",
238          "Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)" : "GrandeDev",
239          "Grand developpement (GD_Cuve)" : "GD_Cuve",
240          "Exponentiel sans revetement k=9.7 (Reglementaire CUVE1D)" : "Cuve1D",
241          "RTndt de la cuve a l instant de l analyse" : "RTNDT",
242          "Modele d irradiation" : "FLUENCE",
243          "Formule de FIM/FIS Lefebvre modifiee" : "LEFEBnew",
244          "Metal de Base : formule de FIM/FIS Houssin" : "HOUSSIN",
245          "Metal de Base : formule de FIM/FIS Persoz" : "PERSOZ",
246          "Metal de Base : formule de FIM/FIS Lefebvre" : "LEFEBVRE",
247          "Metal de Base : Regulatory Guide 1.00 rev 2" : "USNRCmdb",
248          "Joint Soude : formulation de FIM/FIS Brillaud" : "BRILLAUD",
249          "Joint Soude : Regulatory Guide 1.00 rev 2" : "USNRCsoud",
250          "RCC-M/ASME coefficient=2" : "RCC-M",
251          "RCC-M/ASME coefficient=2 CUVE1D" : "RCC-M_simpl",
252          "RCC-M/ASME coefficient=2.33 (Houssin)" : "Houssin_RC",
253          "RCC-M/ASME avec KI=KIpalier" : "RCC-M_pal",
254          "RCC-M/ASME avec KI~exponentiel" : "RCC-M_exp",
255          "Weibull basee sur la master cuve" : "Wallin",
256          "Weibull basee sur la master cuve (REME)" : "REME",
257          "Weibull n\xb01 (etude ORNL)" : "ORNL",
258          "Weibull n\xb02" : "WEIB2",
259          "Weibull n\xb03" : "WEIB3",
260          "Weibull generalisee" : "WEIB-GEN",
261          "Exponentielle n\xb01 (Frama)" : "Frama",
262          "Exponentielle n\xb02 (LOGWOLF)" : "LOGWOLF",
263          "Quantile" : "QUANTILE",
264          "Ordre" : "ORDRE",
265          "Enthalpie" : "ENTHALPIE",
266          "Chaleur" : "CHALEUR",
267          "Temperature imposee en paroi" : "TEMP_IMPO",
268          "Flux de chaleur impose en paroi" : "FLUX_REP",
269          "Temperature imposee du fluide et coefficient echange" : "ECHANGE",
270          "Debit massique et temperature d injection de securite" : "DEBIT",
271          "Temperature imposee du fluide et debit d injection de securite" : "TEMP_FLU",
272          "Courbe APRP" : "APRP",
273          "Calcul TEMPFLU puis DEBIT" : "TFDEBIT",
274          }
275
276       # Ce dictionnaire liste le commentaire des variables utilisees dans le script
277       self.comment = {
278          "NiveauImpression" : "Niveau d impression des messages a l ecran (=0 : rien, =1 : temps calcul total, =2 : temps intermediaires)",
279          "FichierDataIn"    : "sortie du fichier recapitulatif des donnees d entree {OUI ; NON}",
280          "FichierTempSigma" : "sortie des fichiers temperature et contraintes {OUI ; NON}",
281          "FichierCSV" : "sortie du fichier resultat template_DEFAILLCUVE.CSV {OUI ; NON}",
282          "FichierRESTART" : "sortie du fichier de re-demarrage",
283          "FichierEXTR" : "sortie du fichier d extraction des transitoires",
284          "ChoixPlugin" : "choix d'un repertoire de plug-in",
285          "GrandeurEvaluee" : "choix de la grandeur sous critere evaluee {FM_KICSURKCP ; MARGE_KI ; MARGE_KCP}",
286          "IncrementTemporel" : "increment temporel pour l analyse PROBABILISTE (si DETERMINISTE, fixer a 1)",
287          "IncrementMaxTemperature" : "increment max de temp/noeud/instant (degC)",
288          "ChoixExtractionTransitoires" : "choix d'extraction de transitoires de temp et contraintes",
289          "IncrementMaxTempsAffichage" : "increment max de temps pour affichage (s)",
290          "TraitementGeometrie" : "traitement de la geometrie de la cuve : {GEOMETRIE, MAILLAGE}",
291          "RayonInterne" : "rayon interne (m)",
292          "RayonInterne_mess" : "affichage ecran du rayon interne (m)",
293          "RayonExterne" : "rayon externe (m)",
294          "RayonExterne_mess" : "affichage ecran du rayon externe (m)",
295          "EpaisseurRevetement" : "epaisseur revetement (m)",
296          "EpaisseurRevetement_mess" : "affichage ecran de l epaisseur revetement (m)",
297          "LigamentExterneMin" : "ligament externe minimal avant rupture (% de l'epaisseur de cuve)",
298          "LigamentExterneMin_mess" : "affichage ecran du ligament externe minimal avant rupture (% de l'epaisseur de cuve)",
299          "NombreNoeudsMaillage" : "nbre de noeuds dans l'epaisseur de la cuve",
300          "TypeInitial" : "type initial du defaut : DEBOUCHANT=Defaut Debouchant, DSR=Defaut Sous Revetement, DECALE=Defaut Decale",
301          "Orientation" : "orientation (LONGITUD / CIRCONF)",
302          "Position" : "Position du defaut (VIROLE / JSOUDE)",
303          "ProfondeurRadiale" : "profondeur radiale ou encore hauteur (m)",
304          "ProfondeurRadiale_mess" : "affichage ecran de la profondeur radiale ou encore hauteur (m)",
305          "ModeCalculLongueur" : "option pour definir la longueur du defaut (VALEUR pour une valeur fixe, FCTAFFINE pour une fct affine de la profondeur)",
306          "Longueur" : "longueur (m) pour defaut Sous Revetement",
307          "Longueur_mess" : "affichage ecran de la longueur (m) pour defaut Sous Revetement",
308          "CoefDirecteur" : "pente de la fonction affine l = h/profsurlong + a0",
309          "CoefDirecteur_mess" : "affichage ecran de la pente de la fonction affine l = h/profsurlong + a0",
310          "Constante" : "constante de la fonction affine a0",
311          "ModeCalculDecalage" : "type de decalage : normalise (NORMALISE) ou reel (VALEUR)",
312          "DecalageNormalise" : "decalage radial normalise (valeur comprise entre 0. et 1.) pour defaut Sous Revetement",
313          "DecalageNormalise_mess" : "affichage ecran du decalage radial normalise (valeur comprise entre 0. et 1.) pour defaut Sous Revetement",
314          "DecalageRadial" : "decalage radial reel (m) pour defaut decale",
315          "DecalageRadial_mess" : "affichage ecran du decalage radial reel (m) pour defaut decale",
316          "Azimut" : "coordonnee angulaire (degre)",
317          "Azimut_mess" : "affichage ecran de la coordonnee angulaire (degre)",
318          "Altitude" : "altitude (m) : valeur negative",
319          "Altitude_mess" : "affichage ecran de l altitude (m) : valeur negative",
320          "Pointe" : "choix du(des) point(s) du defaut considere {'A','B','BOTH'} pour DSR et DECALE (pour DEBOUCHANT : automatiquement 'B')",
321          "ModeleFluence" : "modele de fluence : {Reglementaire, France, ValeurImposee, SDM, USNRC, REV_2, SDM_Lissage, GrandeDev, GD_Cuve, Cuve1D}",
322          "ZoneActiveCoeur_AltitudeSup" : "cote superieure de la zone active de coeur (ici pour cuve palier 900Mw)",
323          "ZoneActiveCoeur_AltitudeInf" : "cote inferieure de la zone active de coeur (ici pour cuve palier 900Mw)",
324          "FluenceMax" : "fluence maximale assimilee par la cuve (n/cm2)",
325          "KPFrance" : "parametre exponentiel du modele France",
326          "KPUS" : "parametre exponentiel du modele US",
327          "Azimut_0deg" : "fluence a l'azimut 0 (10^19 n/cm)",
328          "Azimut_5deg" : "fluence a l'azimut 5 (10^19 n/cm)",
329          "Azimut_10deg" : "fluence a l'azimut 10 (10^19 n/cm)",
330          "Azimut_15deg" : "fluence a l'azimut 15 (10^19 n/cm)",
331          "Azimut_20deg" : "fluence a l'azimut 20 (10^19 n/cm)",
332          "Azimut_25deg" : "fluence a l'azimut 25 (10^19 n/cm)",
333          "Azimut_30deg" : "fluence a l'azimut 30 (10^19 n/cm)",
334          "Azimut_35deg" : "fluence a l'azimut 35 (10^19 n/cm)",
335          "Azimut_40deg" : "fluence a l'azimut 40 (10^19 n/cm)",
336          "Azimut_45deg" : "fluence a l'azimut 45 (10^19 n/cm)",
337          "TypeIrradiation" : "type irradiation : {RTNDT, FLUENCE}",
338          "RTNDT" : "RTNDT finale (degC)",
339          "ModeleIrradiation" : "modele d irradiation : LEFEBnew, ou {HOUSSIN, PERSOZ, LEFEBVRE, USNRCmdb} pour virole et {BRILLAUD,USNRCsoud} pour jointsoude",
340          "TeneurCuivre" : "teneur en cuivre (%)",
341          "TeneurCuivre_mess" : "affichage ecran de la teneur en cuivre (%)",
342          "TeneurNickel" : "teneur en nickel (%)",
343          "TeneurNickel_mess" : "affichage ecran de la teneur en nickel (%)",
344          "TeneurPhosphore" : "teneur en phosphore (%)",
345          "TeneurPhosphore_mess" : "affichage ecran de la teneur en phosphore (%)",
346          "MoyenneRTndt" : "moyenne de la RTNDT initiale : virole C1 de cuve Chinon : mdb=>-17.degC et js=>42.degC (HT-56/05/038 : p.52)",
347          "MoyenneRTndt_mess" : "affichage ecran de la moyenne de la RTNDT initiale",
348          "CoefVariationRTndt" : "coef de variation de la RTNDT initiale",
349          "CoefVariationRTndt_mess" : "affichage ecran du coef de variation de la RTNDT initiale",
350          "EcartTypeRTndt" : "pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)",
351          "EcartTypeRTndt_mess" : "affichage ecran, pour modeles USNRCsoud ou USNRCmdb, ecart-type du decalage de RTNDT (°F) (28. pour js et 17. pour mdb)",
352          "NombreEcartTypeRTndt" : "Nbre d ecart-type par rapport a la moyenne de DRTNDT si analyse PROBABILISTE (en DETERMINISTE, fixer a 2.)",
353          "NombreEcartTypeRTndt_mess" : "affichage ecran du nbre d ecart-type par rapport a la moyenne de DRTNDT si analyse PROBABILISTE",
354          "ModeleTenacite" : "modele de tenacite : {RCC-M, RCC-M_pal, RCC-M_exp, RCC-M_simpl, Houssin_RC, Wallin, REME, ORNL, Frama, WEIB3, WEIB2, LOGWOLF, WEIB-GEN}",
355          "NombreCaracteristique" : "Nb caracteristique : ORDRE ou QUANTILE",
356          "NbEcartType_MoyKIc" : "Nbre d ecart-type par rapport a la moyenne de KIc si analyse PROBABILISTE (en DETERMINISTE, fixer a -2.)",
357          "NbEcartType_MoyKIc_mess" : "affichage ecran du nbre d ecart-type par rapport a la moyenne de KIc si analyse PROBABILISTE",
358          "PalierDuctile_KIc" : "palier deterministe de K1c (MPa(m^0.5))",
359          "CoefficientVariation_KIc" : "coef de variation de la loi normale de K1c",
360          "Fractile_KIc" : "valeur caracteristique de KIc exprimee en ordre de fractile (%)",
361          "Fractile_KIc_mess" : "affichage ecran de la valeur caracteristique de KIc exprimee en ordre de fractile (%)",
362          "Temperature_KIc100" : "parametre T0 du modele Wallin (degC)",
363          "A1" : "coef des coefs d une WEIBULL generale",
364          "A2" : "",
365          "A3" : "",
366          "B1" : "",
367          "B2" : "",
368          "B3" : "",
369          "C1" : "",
370          "C2" : "",
371          "C3" : "",
372          "ChoixCorrectionLongueur" : "Activation ou non de la correction de longueur {OUI ; NON}",
373          "AttnCorrBeta" : "Attenuation de la correction plastique : {OUI, NON} ==> uniquement pour DSR ou DECALE",
374          "CorrIrwin" : "Correction plastique IRWIN : {OUI, NON} ==> uniquement pour DEBOUCHANT",
375          "ArretDeFissure" : "prise en compte de l arret de fissure {OUI, NON} (en PROBABILISTE, fixer a NON)",
376          "IncrementTailleFissure" : "increment de la taille de fissure (m)",
377          "IncrementTailleFissure_mess" : "affichage ecran de l increment de la taille de fissure (m)",
378          "NbEcartType_MoyKIa" : "Nbre d ecart-type par rapport a la moyenne de KIa (nb sigma)",
379          "PalierDuctile_KIa" : "palier deterministe de K1a quand modele RCC-M  (MPa(m^0.5))",
380          "CoefficientVariation_KIa" : "coef de variation de la loi normale de K1a",
381          "ChoixCoefficientChargement" : "prise en compte de coefficients sur le chargement (OUI/NON)",
382          "CoefficientDuctile" : "coefficient multiplicateur pour rupture ductile",
383          "CoefficientFragile" : "coefficient multiplicateur pour rupture fragile",
384          "InstantInitialisation" : "instant initial (s)",
385          "ConditionLimiteThermiqueREV" : "Option 'ENTHALPIE' ou 'CHALEUR'",
386          "TemperatureDeformationNulleREV" : "temperature de deformation nulle (degC)",
387          "TemperaturePourCoefDilatThermREV" : "temperature de definition du coefficient de dilatation thermique (degC)",
388          "CoefficientPoissonREV" : "coefficient de Poisson",
389          "ConditionLimiteThermiqueMDB" : "Option 'ENTHALPIE' ou 'CHALEUR'",
390          "TemperatureDeformationNulleMDB" : "temperature de deformation nulle (degC)",
391          "TemperaturePourCoefDilatThermMDB" : "temperature de definition du coefficient de dilatation thermique (degC)",
392          "CoefficientPoissonMDB" : "coefficient de Poisson",
393          "TypeConditionLimiteThermique" : "Type de condition thermique en paroi interne {TEMP_IMPO,FLUX_REP,ECHANGE,DEBIT,TEMP_FLU,APRP}",
394          "Instant_1" : "Borne superieure de l intervalle de temps du 1er palier TACCU",
395          "Instant_2" : "Borne superieure de l intervalle de temps du 2nd palier T1",
396          "Instant_3" : "Borne superieure de l intervalle de temps du 3eme palier TIS",
397          "DebitAccumule" : "Debit accumule (en m3/h)",
398          "DebitInjectionSecurite" : "Debit injection de securite (en m3/h)",
399          "TempInjectionSecurite" : "Temperature injection de securite (en degC)",
400          "TempInjectionSecurite_mess" : "affichage ecran de la temperature injection de securite",
401          "DiametreHydraulique" : "Diametre hydraulique (m)",
402          "DiametreHydraulique_mess" : "affichage ecran du diametre hydraulique (m)",
403          "SectionEspaceAnnulaire" : "Section espace annulaire (m2)",
404          "SectionEspaceAnnulaire_mess" : "affichage ecran de la section espace annulaire (m2)",
405          "HauteurCaracConvectionNaturelle" : "Hauteur caracteristique convection naturelle (m)",
406          "HauteurCaracConvectionNaturelle_mess" : "affichage ecran de la hauteur caracteristique convection naturelle (m)",
407          "CritereConvergenceRelative" : "Critere convergence relative (-)",
408          "CoefficientsVestale" : "Application des coefs de Vestale {OUI;NON}",
409          "VolumeMelange_CREARE" : "Transitoire de volume de melange CREARE (m3)",
410          "TemperatureInitiale_CREARE" : "Temperature initiale CREARE (degC)",
411          "TemperatureInitiale_CREARE_mess" : "affichage ecran de la temperature initiale CREARE (degC)",
412          "SurfaceEchange_FluideStructure" : "Surface d'echange fluide/structure (m2)",
413          "SurfaceEchange_FluideStructure_mess" : "affichage ecran de la surface d'echange fluide/structure (m2)",
414          "InstantPerteCirculationNaturelle" : "Instant de perte de circulation naturelle",
415          }
416
417       # Ce dictionnaire liste la valeur par defaut des variables utilisees dans le script
418       self.default = {
419          "NiveauImpression" : "1",
420          "FichierDataIn" : "NON",
421          "FichierTempSigma" : "NON",
422          "FichierCSV" : "NON",
423          "FichierRESTART" : "NON",
424          "FichierEXTR" : "NON",
425          "ChoixPlugin" : "NON",
426          "GrandeurEvaluee" : "FM_KICSURKCP",
427          "IncrementTemporel" : "1",
428          "IncrementMaxTemperature" : "0.1",
429          "ChoixExtractionTransitoires" : "NON",
430          "IncrementMaxTempsAffichage" : "1000.",
431          "TraitementGeometrie" : "GEOMETRIE",
432          "RayonInterne" : "1.994",
433          "RayonInterne_mess" : "NON",
434          "RayonExterne" : "2.2015",
435          "RayonExterne_mess" : "NON",
436          "EpaisseurRevetement" : "0.0075",
437          "EpaisseurRevetement_mess" : "NON",
438          "LigamentExterneMin" : "0.75",
439          "LigamentExterneMin_mess" : "NON",
440          "NombreNoeudsMaillage" : "300",
441          "TypeInitial" : "DSR",
442          "Position" : "VIROLE",
443          "ProfondeurRadiale" : "0.006",
444          "ProfondeurRadiale_mess" : "NON",
445          "ModeCalculLongueur" : "VALEUR",
446          "Longueur" : "0.060",
447          "Longueur_mess" : "NON",
448          "CoefDirecteur" : "10.",
449          "CoefDirecteur_mess" : "NON",
450          "Constante" : "0.",
451          "ModeCalculDecalage" : "VALEUR",
452          "DecalageNormalise" : "0.1",
453          "DecalageNormalise_mess" : "NON",
454          "DecalageRadial" : "0.",
455          "DecalageRadial_mess" : "NON",
456          "Azimut" : "0.",
457          "Azimut_mess" : "NON",
458          "Altitude" : "-4.",
459          "Altitude_mess" : "NON",
460          "Pointe" : "B",
461          "ModeleFluence" : "Reglementaire",
462          "ZoneActiveCoeur_AltitudeSup" : "-3.536",
463          "ZoneActiveCoeur_AltitudeInf" : "-7.194",
464          "FluenceMax" : "6.5",
465          "KPFrance" : "12.7",
466          "KPUS" : "9.4488",
467          "Azimut_0deg" : "5.8",
468          "Azimut_5deg" : "5.48",
469          "Azimut_10deg" : "4.46",
470          "Azimut_15deg" : "3.41",
471          "Azimut_20deg" : "3.37",
472          "Azimut_25deg" : "3.16",
473          "Azimut_30deg" : "2.74",
474          "Azimut_35deg" : "2.25",
475          "Azimut_40deg" : "1.89",
476          "Azimut_45deg" : "1.78",
477          "TypeIrradiation" : "RTNDT",
478          "RTNDT" : "64.",
479          "ModeleIrradiation" : "HOUSSIN",
480          "TeneurCuivre" : "0.0972",
481          "TeneurCuivre_mess" : "NON",
482          "TeneurNickel" : "0.72",
483          "TeneurNickel_mess" : "NON",
484          "TeneurPhosphore" : "0.00912",
485          "TeneurPhosphore_mess" : "NON",
486          "MoyenneRTndt" : "-12.0",
487          "MoyenneRTndt_mess" : "NON",
488          "CoefVariationRTndt" : "0.1",
489          "CoefVariationRTndt_mess" : "NON",
490          "EcartTypeRTndt" : "-2.",
491          "EcartTypeRTndt_mess" : "NON",
492          "NombreEcartTypeRTndt" : "2.",
493          "NombreEcartTypeRTndt_mess" : "NON",
494          "ModeleTenacite" : "RCC-M",
495          "NombreCaracteristique" : "Quantile",
496          "NbEcartType_MoyKIc" : "-2.",
497          "NbEcartType_MoyKIc_mess" : "NON",
498          "PalierDuctile_KIc" : "195.",
499          "CoefficientVariation_KIc" : "0.15",
500          "Fractile_KIc" : "5.",
501          "Fractile_KIc_mess" : "NON",
502          "Temperature_KIc100" : "-27.",
503          "A1" : "21.263",
504          "A2" : "9.159",
505          "A3" : "0.04057",
506          "B1" : "17.153",
507          "B2" : "55.089",
508          "B3" : "0.0144",
509          "C1" : "4.",
510          "C2" : "0.",
511          "C3" : "0.",
512          "ChoixCorrectionLongueur" : "OUI",
513          "AttnCorrBeta" : "NON",
514          "CorrIrwin" : "NON",
515          "ArretDeFissure" : "NON",
516          "IncrementTailleFissure" : "0.",
517          "IncrementTailleFissure_mess" : "NON",
518          "NbEcartType_MoyKIa" : "0.",
519          "PalierDuctile_KIa" : "0.",
520          "CoefficientVariation_KIa" : "0.",
521          "ChoixCoefficientChargement" : "NON",
522          "CoefficientDuctile" : "1.0",
523          "CoefficientFragile" : "1.0",
524          "InstantInitialisation" : "-1.",
525          "ConditionLimiteThermiqueREV" : "CHALEUR",
526          "TemperatureDeformationNulleREV" : "20.",
527          "TemperaturePourCoefDilatThermREV" : "287.",
528          "CoefficientPoissonREV" : "0.3",
529          "ConditionLimiteThermiqueMDB" : "CHALEUR",
530          "TemperatureDeformationNulleMDB" : "20.",
531          "TemperaturePourCoefDilatThermMDB" : "287.",
532          "CoefficientPoissonMDB" : "0.3",
533          "TypeConditionLimiteThermique" : "TEMP_IMPO",
534          "Instant_1" : "21.",
535          "Instant_2" : "45.",
536          "Instant_3" : "5870.",
537          "DebitAccumule" : "2.3",
538          "DebitInjectionSecurite" : "0.375",
539          "TempInjectionSecurite" : "9.",
540          "TempInjectionSecurite_mess" : "NON",
541          "DiametreHydraulique" : "0.3816",
542          "DiametreHydraulique_mess" : "NON",
543          "SectionEspaceAnnulaire" : "0.21712",
544          "SectionEspaceAnnulaire_mess" : "NON",
545          "HauteurCaracConvectionNaturelle" : "6.",
546          "HauteurCaracConvectionNaturelle_mess" : "NON",
547          "CritereConvergenceRelative" : "0.00001",
548          "CoefficientsVestale" : "NON",
549 #        "VolumeMelange_CREARE" : "14.9",
550          "TemperatureInitiale_CREARE" : "250.",
551          "TemperatureInitiale_CREARE_mess" : "NON",
552          "SurfaceEchange_FluideStructure" : "0.",
553          "SurfaceEchange_FluideStructure_mess" : "NON",
554          "InstantPerteCirculationNaturelle" : "400.",
555          }
556
557       # Ce dictionnaire liste la rubrique d'appartenance des variables utilisees dans le script
558       self.bloc = {
559          "NiveauImpression" : "OPTIONS",
560          "FichierDataIn" : "OPTIONS",
561          "FichierTempSigma" : "OPTIONS",
562          "FichierCSV" : "OPTIONS",
563          "FichierRESTART" : "OPTIONS",
564          "FichierEXTR" : "OPTIONS",
565          "ChoixPlugin" : "OPTIONS",
566          "GrandeurEvaluee" : "OPTIONS",
567          "IncrementTemporel" : "OPTIONS",
568          "IncrementMaxTemperature" : "OPTIONS",
569          "ChoixExtractionTransitoires" : "OPTIONS",
570          "IncrementMaxTempsAffichage" : "OPTIONS",
571          "TraitementGeometrie" : "DONNEES DE LA CUVE",
572          "RayonInterne" : "DONNEES DE LA CUVE",
573          "RayonInterne_mess" : "DONNEES DE LA CUVE",
574          "RayonExterne" : "DONNEES DE LA CUVE",
575          "RayonExterne_mess" : "DONNEES DE LA CUVE",
576          "EpaisseurRevetement" : "DONNEES DE LA CUVE",
577          "EpaisseurRevetement_mess" : "DONNEES DE LA CUVE",
578          "LigamentExterneMin" : "DONNEES DE LA CUVE",
579          "LigamentExterneMin_mess" : "DONNEES DE LA CUVE",
580          "NombreNoeudsMaillage" : "DONNEES DE LA CUVE",
581          "TypeInitial" : "CARACTERISTIQUES DU DEFAUT",
582          "Orientation" : "CARACTERISTIQUES DU DEFAUT",
583          "Position" : "CARACTERISTIQUES DU DEFAUT",
584          "ProfondeurRadiale" : "CARACTERISTIQUES DU DEFAUT",
585          "ProfondeurRadiale_mess" : "CARACTERISTIQUES DU DEFAUT",
586          "ModeCalculLongueur" : "CARACTERISTIQUES DU DEFAUT",
587          "Longueur" : "CARACTERISTIQUES DU DEFAUT",
588          "Longueur_mess" : "CARACTERISTIQUES DU DEFAUT",
589          "CoefDirecteur" : "CARACTERISTIQUES DU DEFAUT",
590          "CoefDirecteur_mess" : "CARACTERISTIQUES DU DEFAUT",
591          "Constante" : "CARACTERISTIQUES DU DEFAUT",
592          "ModeCalculDecalage" : "CARACTERISTIQUES DU DEFAUT",
593          "DecalageNormalise" : "CARACTERISTIQUES DU DEFAUT",
594          "DecalageNormalise_mess" : "CARACTERISTIQUES DU DEFAUT",
595          "DecalageRadial" : "CARACTERISTIQUES DU DEFAUT",
596          "DecalageRadial_mess" : "CARACTERISTIQUES DU DEFAUT",
597          "Azimut" : "CARACTERISTIQUES DU DEFAUT",
598          "Azimut_mess" : "CARACTERISTIQUES DU DEFAUT",
599          "Altitude" : "CARACTERISTIQUES DU DEFAUT",
600          "Altitude_mess" : "CARACTERISTIQUES DU DEFAUT",
601          "Pointe" : "CARACTERISTIQUES DU DEFAUT",
602          "ModeleFluence" : "MODELES",
603          "ZoneActiveCoeur_AltitudeSup" : "MODELES",
604          "ZoneActiveCoeur_AltitudeInf" : "MODELES",
605          "FluenceMax" : "MODELES",
606          "KPFrance" : "MODELES",
607          "KPUS" : "MODELES",
608          "Azimut_0deg" : "MODELES",
609          "Azimut_5deg" : "MODELES",
610          "Azimut_10deg" : "MODELES",
611          "Azimut_15deg" : "MODELES",
612          "Azimut_20deg" : "MODELES",
613          "Azimut_25deg" : "MODELES",
614          "Azimut_30deg" : "MODELES",
615          "Azimut_35deg" : "MODELES",
616          "Azimut_40deg" : "MODELES",
617          "Azimut_45deg" : "MODELES",
618          "TypeIrradiation" : "MODELES",
619          "RTNDT" : "MODELES",
620          "ModeleIrradiation" : "MODELES",
621          "TeneurCuivre" : "MODELES",
622          "TeneurCuivre_mess" : "MODELES",
623          "TeneurNickel" : "MODELES",
624          "TeneurNickel_mess" : "MODELES",
625          "TeneurPhosphore" : "MODELES",
626          "TeneurPhosphore_mess" : "MODELES",
627          "MoyenneRTndt" : "MODELES",
628          "MoyenneRTndt_mess" : "MODELES",
629          "CoefVariationRTndt" : "MODELES",
630          "CoefVariationRTndt_mess" : "MODELES",
631          "EcartTypeRTndt" : "MODELES",
632          "EcartTypeRTndt_mess" : "MODELES",
633          "NombreEcartTypeRTndt" : "MODELES",
634          "NombreEcartTypeRTndt_mess" : "MODELES",
635          "ModeleTenacite" : "MODELES",
636          "NombreCaracteristique" : "MODELES",
637          "NbEcartType_MoyKIc" : "MODELES",
638          "NbEcartType_MoyKIc_mess" : "MODELES",
639          "PalierDuctile_KIc" : "MODELES",
640          "CoefficientVariation_KIc" : "MODELES",
641          "Fractile_KIc" : "MODELES",
642          "Fractile_KIc_mess" : "MODELES",
643          "Temperature_KIc100" : "MODELES",
644          "A1" : "MODELES",
645          "A2" : "MODELES",
646          "A3" : "MODELES",
647          "B1" : "MODELES",
648          "B2" : "MODELES",
649          "B3" : "MODELES",
650          "C1" : "MODELES",
651          "C2" : "MODELES",
652          "C3" : "MODELES",
653          "ChoixCorrectionLongueur" : "MODELES",
654          "AttnCorrBeta" : "MODELES",
655          "CorrIrwin" : "MODELES",
656          "ArretDeFissure" : "MODELES",
657          "IncrementTailleFissure" : "MODELES",
658          "IncrementTailleFissure_mess" : "MODELES",
659          "NbEcartType_MoyKIa" : "MODELES",
660          "PalierDuctile_KIa" : "MODELES",
661          "CoefficientVariation_KIa" : "MODELES",
662          "ChoixCoefficientChargement" : "ETAT INITIAL",
663          "CoefficientDuctile" : "ETAT INITIAL",
664          "CoefficientFragile" : "ETAT INITIAL",
665          "InstantInitialisation" : "ETAT INITIAL",
666          "ConditionLimiteThermiqueREV" : "CARACTERISTIQUES DU REVETEMENT",
667          "TemperatureDeformationNulleREV" : "CARACTERISTIQUES DU REVETEMENT",
668          "TemperaturePourCoefDilatThermREV" : "CARACTERISTIQUES DU REVETEMENT",
669          "CoefficientPoissonREV" : "CARACTERISTIQUES DU REVETEMENT",
670          "ConditionLimiteThermiqueMDB" : "CARACTERISTIQUES DU MDB",
671          "TemperatureDeformationNulleMDB" : "CARACTERISTIQUES DU MDB",
672          "TemperaturePourCoefDilatThermMDB" : "CARACTERISTIQUES DU MDB",
673          "CoefficientPoissonMDB" : "CARACTERISTIQUES DU MDB",
674          "TypeConditionLimiteThermique" : "TRANSITOIRE",
675          "Instant_1" : "TRANSITOIRE",
676          "Instant_2" : "TRANSITOIRE",
677          "Instant_3" : "TRANSITOIRE",
678          "DebitAccumule" : "TRANSITOIRE",
679          "DebitInjectionSecurite" : "TRANSITOIRE",
680          "TempInjectionSecurite" : "TRANSITOIRE",
681          "TempInjectionSecurite_mess" : "TRANSITOIRE",
682          "DiametreHydraulique" : "TRANSITOIRE",
683          "DiametreHydraulique_mess" : "TRANSITOIRE",
684          "SectionEspaceAnnulaire" : "TRANSITOIRE",
685          "SectionEspaceAnnulaire_mess" : "TRANSITOIRE",
686          "HauteurCaracConvectionNaturelle" : "TRANSITOIRE",
687          "HauteurCaracConvectionNaturelle_mess" : "TRANSITOIRE",
688          "CritereConvergenceRelative" : "TRANSITOIRE",
689          "CoefficientsVestale" : "TRANSITOIRE",
690          "VolumeMelange_CREARE" : "TRANSITOIRE",
691          "TemperatureInitiale_CREARE" : "TRANSITOIRE",
692          "TemperatureInitiale_CREARE_mess" : "TRANSITOIRE",
693          "SurfaceEchange_FluideStructure" : "TRANSITOIRE",
694          "SurfaceEchange_FluideStructure_mess" : "TRANSITOIRE",
695          "InstantPerteCirculationNaturelle" : "TRANSITOIRE",
696          }
697
698    def gener(self,obj,format='brut'):
699       self.text=''
700       self.textCuve=''
701       self.texteTFDEBIT=''
702       self.dico_mot={}
703       self.dico_genea={}
704       self.text=PythonGenerator.gener(self,obj,format)
705       return self.text
706
707    def generMCSIMP(self,obj) :
708        self.dico_mot[obj.nom]=obj.valeur
709        clef=""
710        for i in obj.get_genealogie() :
711            clef=clef+"_"+i
712        self.dico_genea[clef]=obj.valeur
713        s=PythonGenerator.generMCSIMP(self,obj)
714        return s
715
716    def writeCuve2DG(self, filename, file2):
717       print "je passe dans writeCuve2DG"
718       self.genereTexteCuve()
719       f = open( filename, 'wb')
720       print self.texteCuve
721       f.write( self.texteCuve )
722       f.close()
723       ftmp = open( "/tmp/data_template", 'wb')
724       ftmp.write( self.texteCuve )
725       ftmp.close()
726
727       self.genereTexteTFDEBIT()
728       f2 = open( file2, 'wb')
729       print self.texteTFDEBIT
730       f2.write( self.texteTFDEBIT )
731       f2.close()
732
733
734    def entete(self):
735       '''
736       Ecrit l'entete du fichier data_template
737       '''
738       texte  = "############################################################################################"+"\n"
739       texte += "#"+"\n"
740       texte += "#                OUTIL D'ANALYSE PROBABILISTE DE LA DUREE DE VIE DES CUVES REP"+"\n"
741       texte += "#                                     ---------------"+"\n"
742       texte += "#                               FICHIER DE MISE EN DONNEES"+"\n"
743       texte += "#"+"\n"
744       texte += "# SI CALCUL DETERMINISTE :"+"\n"
745       texte += "#       - fixer INCRTPS=1, nbectDRTNDT=2., nbectKIc=-2."+"\n"
746       texte += "#       - les calculs ne sont possibles qu'en une seule pointe du defaut (POINDEF<>BOTH)"+"\n"
747       texte += "# SI CALCUL PROBABILISTE :"+"\n"
748       texte += "#       - fixer ARRETFISSURE=NON"+"\n"
749       texte += "#"+"\n"
750       texte += "############################################################################################"+"\n"
751       texte += "#"+"\n"
752       return texte
753
754    def rubrique(self, titre):
755       '''
756       Rubrique 
757       '''
758       texte  = "#"+"\n"
759       texte += "############################################################################################"+"\n"
760       texte += "# " + titre + "\n"
761       texte += "############################################################################################"+"\n"
762       texte += "#"+"\n"
763       return texte
764
765    def sousRubrique(self, soustitre, numtitre):
766       '''
767       Sous-rubrique 
768       '''
769       texte  = "#"+"\n"
770       texte += "# " + numtitre + soustitre + "\n"
771       texte += "#==========================================================================================="+"\n"
772       texte += "#"+"\n"
773       return texte
774
775    def ecritLigne(self, variablelue):
776       '''
777       Ecrit l'affectation d'une valeur a sa variable, suivie d'un commentaire
778       '''
779       texte = "%s = %s   # %s\n" % (self.variable[variablelue], str(self.dico_mot[variablelue]), self.comment[variablelue])
780       return texte
781
782    def affecteValeurDefaut(self, variablelue):
783       '''
784       Affecte une valeur par defaut a une variable, suivie d'un commentaire
785       '''
786       print "Warning ==> Dans la rubrique",self.bloc[variablelue],", valeur par defaut pour ",variablelue," = ",self.default[variablelue]
787       texte = "%s = %s   # %s\n" % (self.variable[variablelue], self.default[variablelue], self.comment[variablelue])
788       return texte
789
790    def affecteValeur(self, variablelue, valeuraffectee):
791       '''
792       Affecte une valeur a une variable, suivie d'un commentaire
793       '''
794       texte = "%s = %s   # %s\n" % (self.variable[variablelue], valeuraffectee, self.comment[variablelue])
795       return texte
796
797    def ecritVariable(self, variablelue):
798       if self.dico_mot.has_key(variablelue):
799          texte = self.ecritLigne(variablelue)
800       else :
801          texte = self.affecteValeurDefaut(variablelue)
802       return texte
803
804    def amontAval(self, amont, aval):
805       if str(self.dico_mot[amont])=='Continu':
806          if str(self.dico_mot[aval])=='Continu':
807             texte = 'CC'+"\n"
808          if str(self.dico_mot[aval])=='Lineaire':
809             texte = 'CL'+"\n"
810          if str(self.dico_mot[aval])=='Exclu':
811             texte = 'CE'+"\n"
812       if str(self.dico_mot[amont])=='Lineaire':
813          if str(self.dico_mot[aval])=='Continu':
814             texte = 'LC'+"\n"
815          if str(self.dico_mot[aval])=='Lineaire':
816             texte = 'LL'+"\n"
817          if str(self.dico_mot[aval])=='Exclu':
818             texte = 'LE'+"\n"
819       if str(self.dico_mot[amont])=='Exclu':
820          if str(self.dico_mot[aval])=='Continu':
821             texte = 'EC'+"\n"
822          if str(self.dico_mot[aval])=='Lineaire':
823             texte = 'EL'+"\n"
824          if str(self.dico_mot[aval])=='Exclu':
825             texte = 'EE'+"\n"
826       return texte
827
828    def genereTexteCuve(self):
829       self.texteCuve  = ""
830       self.texteCuve += self.entete()
831
832       # Rubrique OPTIONS
833       self.texteCuve += self.rubrique('OPTIONS')
834
835       self.texteCuve += self.sousRubrique('Impression a l ecran', '')
836       if self.dico_mot.has_key('NiveauImpression'):
837          self.texteCuve += self.affecteValeur('NiveauImpression', self.valeurproposee[str(self.dico_mot["NiveauImpression"])])
838
839       self.texteCuve += self.sousRubrique('Generation de fichiers', '')
840       self.texteCuve += self.ecritVariable('FichierDataIn')
841       self.texteCuve += self.ecritVariable('FichierTempSigma')
842       self.texteCuve += self.ecritVariable('FichierCSV')
843       self.texteCuve += self.ecritVariable('FichierRESTART')
844       self.texteCuve += self.ecritVariable('FichierEXTR')
845       self.texteCuve += self.ecritVariable('ChoixPlugin')
846
847       self.texteCuve += self.sousRubrique('Grandeur evaluee', '')
848       if self.dico_mot.has_key('GrandeurEvaluee'):
849          self.texteCuve += self.affecteValeur('GrandeurEvaluee', self.valeurproposee[str(self.dico_mot["GrandeurEvaluee"])])
850
851       self.texteCuve += self.sousRubrique('Divers', '')
852       self.texteCuve += self.ecritVariable('IncrementTemporel')
853       self.texteCuve += self.ecritVariable('IncrementMaxTemperature')
854
855       #self.texteCuve += self.ecritVariable('ChoixExtractionTransitoires')
856       if self.dico_mot.has_key('ChoixExtractionTransitoires'):
857          self.texteCuve += self.ecritVariable('ChoixExtractionTransitoires')
858          if str(self.dico_mot["ChoixExtractionTransitoires"])=='OUI':
859             if self.dico_mot.has_key('ListeAbscisses'):
860                self.texteCuve += "# liste des abscisses pour ecriture des transitoires de T et SIG (5 ou moins)"+"\n"
861                self.imprime(1,(self.dico_mot["ListeAbscisses"]))
862                self.texteCuve+="#"+"\n"
863             else :
864                print "Warning ==> Dans la rubrique OPTIONS, fournir ListeAbscisses."
865                self.texteCuve += "# liste des abscisses pour ecriture des transitoires de T et SIG (5 ou moins)"+"\n"
866                self.texteCuve += "  1.994\n"
867                self.texteCuve += "  2.000\n"
868                self.texteCuve+="#"+"\n"
869          else :
870             self.texteCuve+="#"+"\n"
871
872       self.texteCuve += self.ecritVariable('IncrementMaxTempsAffichage')
873       if self.dico_mot.has_key('ListeInstants'):
874          self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n"
875          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
876             self.texteCuve+="#BLOC_TFDEBIT"+"\n"
877          self.imprime(1,(self.dico_mot["ListeInstants"]))
878          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
879             self.texteCuve+="#BLOC_TFDEBIT"+"\n"
880          self.texteCuve+="#"+"\n"
881       else :
882          print "Warning ==> Dans la rubrique OPTIONS, fournir ListeInstants."
883          self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n"
884          self.texteCuve += "  0.\n"
885          self.texteCuve += "  1.\n"
886          self.texteCuve+="#"+"\n"
887
888
889       # Rubrique DONNEES DE LA CUVE
890       self.texteCuve += self.rubrique('DONNEES DE LA CUVE')
891       if self.dico_mot.has_key('TraitementGeometrie'):
892          self.texteCuve += self.affecteValeur('TraitementGeometrie', self.valeurproposee[str(self.dico_mot["TraitementGeometrie"])])
893          if str(self.dico_mot["TraitementGeometrie"])=='Topologie':
894             self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
895             self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
896             self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
897             self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
898             self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
899             self.texteCuve+="#                         NBNO"+"\n"
900             self.texteCuve+="#"+"\n"
901             self.texteCuve += self.ecritVariable('RayonInterne')
902             self.texteCuve += self.ecritVariable('RayonInterne_mess')
903             self.texteCuve += self.ecritVariable('RayonExterne')
904             self.texteCuve += self.ecritVariable('RayonExterne_mess')
905             self.texteCuve += self.ecritVariable('EpaisseurRevetement')
906             self.texteCuve += self.ecritVariable('EpaisseurRevetement_mess')
907             self.texteCuve+="#"+"\n"
908             self.texteCuve += self.ecritVariable('LigamentExterneMin')
909             self.texteCuve += self.ecritVariable('LigamentExterneMin_mess')
910             self.texteCuve+="#"+"\n"
911             self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
912          if str(self.dico_mot["TraitementGeometrie"])=='Maillage':
913             self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
914             self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
915             self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
916             self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
917             self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
918             self.texteCuve+="#                         NBNO"+"\n"
919             self.texteCuve+="#"+"\n"
920             self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
921             self.imprime(1,(self.dico_mot["ListeAbscisses"]))
922       else :
923          self.texteCuve += self.affecteValeurDefaut('TraitementGeometrie')
924          self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
925          self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
926          self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
927          self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
928          self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
929          self.texteCuve+="#                         NBNO"+"\n"
930          self.texteCuve+="#"+"\n"
931          self.texteCuve += self.affecteValeurDefaut('RayonInterne')
932          self.texteCuve += self.affecteValeurDefaut('RayonInterne_mess')
933          self.texteCuve += self.affecteValeurDefaut('RayonExterne')
934          self.texteCuve += self.affecteValeurDefaut('RayonExterne_mess')
935          self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement')
936          self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement_mess')
937          self.texteCuve+="#"+"\n"
938          self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin')
939          self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin_mess')
940          self.texteCuve+="#"+"\n"
941          self.texteCuve += self.affecteValeurDefaut('NombreNoeudsMaillage')
942
943
944       # Rubrique CARACTERISTIQUES DU DEFAUT
945       self.texteCuve += self.rubrique('CARACTERISTIQUES DU DEFAUT')
946
947       if self.dico_mot.has_key('TypeInitial'):
948          self.texteCuve += self.affecteValeur('TypeInitial', self.valeurproposee[str(self.dico_mot["TypeInitial"])])
949       else :
950          self.texteCuve += self.affecteValeurDefaut('TypeInitial')
951
952       self.texteCuve+="# Fournir ORIEDEF, (PROFDEF, PROFDEF_MESSAGE)"+"\n"
953       self.texteCuve+="# - Si DSR, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST)"+"\n"
954       self.texteCuve+="# - Si DECALE, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST), DECATYP, (DECANOR,DECANOR_MESSAGE) ou (DECADEF,DECADEF_MESSAGE)"+"\n"
955       self.texteCuve+="# - Si DEBOUCHANT, fournir IRWIN"+"\n"
956       self.texteCuve+="# Fournir (ANGLDEF, ANGLDEF_MESSAGE), (ALTIDEF, ALTIDEF_MESSAGE)"+"\n"
957       self.texteCuve+="# - Si DSR ou DECALE, fournir POINDEF"+"\n"
958       self.texteCuve+="#"+"\n"
959       self.texteCuve+="# Remarque :"+"\n"
960       self.texteCuve+="# - si DSR ou DECALE, dans la rubrique 'Modele de tenacite', fournir ATTNCORRBETA (ne pas fournir CORRIRWIN)"+"\n"
961       self.texteCuve+="# - si DEBOUCHANT,    dans la rubrique 'Modele de tenacite', fournir CORRIRWIN    (ne pas fournir ATTNCORRBETA)"+"\n"
962
963       self.texteCuve+="#"+"\n"
964
965       if self.dico_mot.has_key('Orientation'):
966          self.texteCuve += self.affecteValeur('Orientation', self.valeurproposee[str(self.dico_mot["Orientation"])])
967       else :
968          self.texteCuve += self.affecteValeurDefaut('Orientation')
969          
970       if self.dico_mot.has_key('Position'):
971          self.texteCuve += self.affecteValeur('Position', self.valeurproposee[str(self.dico_mot["Position"])])
972       else :
973          self.texteCuve += self.affecteValeurDefaut('Position')
974          
975       self.texteCuve+="#"+"\n"
976       self.texteCuve += self.ecritVariable('ProfondeurRadiale')
977       self.texteCuve += self.ecritVariable('ProfondeurRadiale_mess')
978
979       self.texteCuve+="#"+"\n"
980       if self.dico_mot.has_key('TypeInitial'):
981          if str(self.dico_mot["TypeInitial"])!='Defaut Debouchant':
982             if self.dico_mot.has_key('ModeCalculLongueur'):
983                self.texteCuve += self.affecteValeur('ModeCalculLongueur', self.valeurproposee[str(self.dico_mot["ModeCalculLongueur"])])
984                if str(self.dico_mot["ModeCalculLongueur"])=='Valeur':
985                   self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
986                   self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
987                   self.texteCuve += self.ecritVariable('Longueur')
988                   self.texteCuve += self.ecritVariable('Longueur_mess')
989                if str(self.dico_mot["ModeCalculLongueur"])=='Fonction affine de la profondeur':
990                   self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
991                   self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
992                   self.texteCuve += self.ecritVariable('CoefDirecteur')
993                   self.texteCuve += self.ecritVariable('CoefDirecteur_mess')
994                   self.texteCuve += self.ecritVariable('Constante')
995             else :
996                self.texteCuve += self.affecteValeurDefaut('ModeCalculLongueur')
997                self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
998                self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
999                self.texteCuve += self.affecteValeurDefaut('Longueur')
1000                self.texteCuve += self.affecteValeurDefaut('Longueur_mess')
1001
1002       if self.dico_mot.has_key('TypeInitial'):
1003          if str(self.dico_mot["TypeInitial"])=='Defaut Decale':
1004             self.texteCuve+="#"+"\n"
1005             if self.dico_mot.has_key('ModeCalculDecalage'):
1006                self.texteCuve += self.affecteValeur('ModeCalculDecalage', self.valeurproposee[str(self.dico_mot["ModeCalculDecalage"])])
1007                if str(self.dico_mot["ModeCalculDecalage"])=='Valeur normalisee':
1008                   self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
1009                   self.texteCuve+="# - Si VALEUR,    fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
1010                   self.texteCuve += self.ecritVariable('DecalageNormalise')
1011                   self.texteCuve += self.ecritVariable('DecalageNormalise_mess')
1012                if str(self.dico_mot["ModeCalculDecalage"])=='Valeur':
1013                   self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
1014                   self.texteCuve+="# - Si VALEUR,    fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
1015                   self.texteCuve += self.ecritVariable('DecalageRadial')
1016                   self.texteCuve += self.ecritVariable('DecalageRadial_mess')
1017             else :
1018                self.texteCuve += self.affecteValeurDefaut('ModeCalculDecalage')
1019                self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
1020                self.texteCuve+="# - Si VALEUR, fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
1021                self.texteCuve += self.affecteValeurDefaut('DecalageRadial')
1022                self.texteCuve += self.affecteValeurDefaut('DecalageRadial_mess')
1023
1024       self.texteCuve+="#"+"\n"
1025       self.texteCuve += self.ecritVariable('Azimut')
1026       self.texteCuve += self.ecritVariable('Azimut_mess')
1027       self.texteCuve+="#"+"\n"
1028       self.texteCuve += self.ecritVariable('Altitude')
1029       self.texteCuve += self.ecritVariable('Altitude_mess')
1030       self.texteCuve+="#"+"\n"
1031       if self.dico_mot.has_key('Pointe'):
1032          self.texteCuve += self.affecteValeur('Pointe', self.valeurproposee[str(self.dico_mot["Pointe"])])
1033       #else :
1034       #   self.texteCuve += self.affecteValeurDefaut('Pointe')
1035
1036       # Rubrique MODELES FLUENCE, IRRADIATION, TENACITE
1037       self.texteCuve += self.rubrique('MODELES FLUENCE, IRRADIATION, TENACITE')
1038       self.texteCuve += self.sousRubrique('Modele d attenuation de la fluence dans l epaisseur','A.')
1039
1040       if self.dico_mot.has_key('ModeleFluence'):
1041          self.texteCuve += self.affecteValeur('ModeleFluence', self.valeurproposee[str(self.dico_mot["ModeleFluence"])])
1042       else :
1043          self.texteCuve += self.affecteValeurDefaut('ModeleFluence')
1044
1045       self.texteCuve+="# - si France,          fournir KPFRANCE"+"\n"
1046       self.texteCuve+="# - si USNRC,           fournir KPUS"+"\n"
1047       self.texteCuve+="# - si modele GD_Cuve,  fournir COEFFLUENCE1, COEFFLUENCE2, ..., COEFFLUENCE9, COEFFLUENCE10"+"\n"
1048       self.texteCuve+="#"+"\n"
1049
1050       self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeSup')
1051       self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeInf')
1052       self.texteCuve += self.ecritVariable('FluenceMax')
1053       if self.dico_mot.has_key('ModeleFluence'):
1054          if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=12.7 (France)':
1055             self.texteCuve += self.ecritVariable('KPFrance')
1056          if str(self.dico_mot["ModeleFluence"])=='Regulatory Guide 1.99 rev 2 (USNRC)':
1057             self.texteCuve += self.ecritVariable('KPUS')
1058          if str(self.dico_mot["ModeleFluence"])=='Grand developpement (GD_Cuve)':
1059             self.texteCuve += self.ecritVariable('Azimut_0deg')
1060             self.texteCuve += self.ecritVariable('Azimut_5deg')
1061             self.texteCuve += self.ecritVariable('Azimut_10deg')
1062             self.texteCuve += self.ecritVariable('Azimut_15deg')
1063             self.texteCuve += self.ecritVariable('Azimut_20deg')
1064             self.texteCuve += self.ecritVariable('Azimut_25deg')
1065             self.texteCuve += self.ecritVariable('Azimut_30deg')
1066             self.texteCuve += self.ecritVariable('Azimut_35deg')
1067             self.texteCuve += self.ecritVariable('Azimut_40deg')
1068             self.texteCuve += self.ecritVariable('Azimut_45deg')
1069
1070       self.texteCuve += self.sousRubrique('Irradiation','B.')
1071
1072       if self.dico_mot.has_key('TypeIrradiation'):
1073          self.texteCuve += self.affecteValeur('TypeIrradiation', self.valeurproposee[str(self.dico_mot["TypeIrradiation"])])
1074
1075          if str(self.dico_mot["TypeIrradiation"])=='RTndt de la cuve a l instant de l analyse':
1076             self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
1077             self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
1078             self.texteCuve+="#"+"\n"
1079             self.texteCuve += self.ecritVariable('RTNDT')
1080
1081          if str(self.dico_mot["TypeIrradiation"])=='Modele d irradiation':
1082             self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
1083             self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
1084             self.texteCuve+="#"+"\n"
1085             if self.dico_mot.has_key('ModeleIrradiation'):
1086                self.texteCuve += self.affecteValeur('ModeleIrradiation', self.valeurproposee[str(self.dico_mot["ModeleIrradiation"])])
1087             else :
1088               self.texteCuve += self.affecteValeurDefaut('ModeleIrradiation')
1089             self.texteCuve+="# - pour tout modele,                                 fournir (CU, CU_MESSAGE),"+"\n"
1090             self.texteCuve+="#                                                             (NI, NI_MESSAGE),"+"\n"
1091             self.texteCuve+="# - si HOUSSIN, PERSOZ, LEFEBVRE, BRILLAUD, LEFEBnew, fournir (P, P_MESSAGE)"+"\n"
1092             self.texteCuve+="# - pour tout modele,                                 fournir (RTimoy, RTimoy_MESSAGE),"+"\n"
1093             self.texteCuve+="# - si USNRCsoud ou USNRCmdb,                         fournir (RTicov, RTicov_MESSAGE)"+"\n"
1094             self.texteCuve+="#                                                             (USectDRT, USectDRT_MESSAGE)"+"\n"
1095             self.texteCuve+="# - pour tout modele,                                 fournir (nbectDRTNDT, nbectDRTNDT_MESSAGE)"+"\n"
1096             self.texteCuve+="#"+"\n"
1097             self.texteCuve += self.ecritVariable('TeneurCuivre')
1098             self.texteCuve += self.ecritVariable('TeneurCuivre_mess')
1099             self.texteCuve += self.ecritVariable('TeneurNickel')
1100             self.texteCuve += self.ecritVariable('TeneurNickel_mess')
1101             if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Houssin' or str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Persoz' or str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Lefebvre' or str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : formulation de FIM/FIS Brillaud' or str(self.dico_mot["ModeleIrradiation"])=='Formule de FIM/FIS Lefebvre modifiee':
1102                self.texteCuve += self.ecritVariable('TeneurPhosphore')
1103                self.texteCuve += self.ecritVariable('TeneurPhosphore_mess')
1104             self.texteCuve += self.ecritVariable('MoyenneRTndt')
1105             self.texteCuve += self.ecritVariable('MoyenneRTndt_mess')
1106             if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : Regulatory Guide 1.00 rev 2' or str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : Regulatory Guide 1.00 rev 2':
1107                self.texteCuve += self.ecritVariable('CoefVariationRTndt')
1108                self.texteCuve += self.ecritVariable('CoefVariationRTndt_mess')
1109                self.texteCuve += self.ecritVariable('EcartTypeRTndt')
1110                self.texteCuve += self.ecritVariable('EcartTypeRTndt_mess')
1111             self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt')
1112             self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt_mess')
1113       else :
1114          self.texteCuve += self.affecteValeurDefaut('TypeIrradiation')
1115          self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
1116          self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
1117          self.texteCuve+="#"+"\n"
1118          self.texteCuve += self.affecteValeurDefaut('RTNDT')
1119
1120       self.texteCuve += self.sousRubrique('Modele de tenacite','C.')
1121       self.texteCuve+="# tenacite d amorcage"+"\n"
1122
1123       if self.dico_mot.has_key('ModeleTenacite'):
1124          self.texteCuve += self.affecteValeur('ModeleTenacite', self.valeurproposee[str(self.dico_mot["ModeleTenacite"])])
1125       else :
1126          self.texteCuve += self.affecteValeurDefaut('ModeleTenacite')
1127       self.texteCuve+="# - si RCC-M, RCC-M_pal, Houssin_RC, fournir (nbectKIc, nbectKIc_MESSAGE), KICPAL, KICCDV"+"\n"
1128       self.texteCuve+="# - si RCC-M_exp,                    fournir (nbectKIc, nbectKIc_MESSAGE), KICCDV"+"\n"
1129       self.texteCuve+="# - si RCC-M_simpl,                  ne rien fournir"+"\n"
1130       self.texteCuve+="# - si Frama, LOGWOLF,               fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n"
1131       self.texteCuve+="# - si REME, ORNL, WEIB3, WEIB2,     fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC"+"\n"
1132       self.texteCuve+="# - si Wallin,                       fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n"
1133       self.texteCuve+="#                                                     puis T0WALLIN"+"\n"
1134       self.texteCuve+="# - si WEIB-GEN,                     fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n"
1135       self.texteCuve+="#                                                     puis A1, A2, A3, B1, B2, B3, C1, C2, C3"+"\n"
1136       self.texteCuve+="#   loi de Weibull P(K<x) = 1 - exp{-[ (x-a(T)) / b(T) ]^c(T) }"+"\n"
1137       self.texteCuve+="#   avec        a(T) = A1 + A2*exp[A3*(T-RTNDT)]"+"\n"
1138       self.texteCuve+="#               b(T) = B1 + B2*exp[B3*(T-RTNDT)]"+"\n"
1139       self.texteCuve+="#               c(T) = C1 + C2*exp[C3*(T-RTNDT)]"+"\n"
1140       self.texteCuve+="#"+"\n"
1141       self.texteCuve+="# Correction de la longueur"+"\n"
1142       self.texteCuve += self.ecritVariable('ChoixCorrectionLongueur')
1143       self.texteCuve+="#"+"\n"
1144       if self.dico_mot.has_key('ModeleTenacite'):
1145          if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' or str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve (REME)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb01 (etude ORNL)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb03' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb02' or str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee' :
1146             if self.dico_mot.has_key('NombreCaracteristique'):
1147                self.texteCuve += self.affecteValeur('NombreCaracteristique', self.valeurproposee[str(self.dico_mot["NombreCaracteristique"])])
1148             else :
1149                self.texteCuve += self.affecteValeurDefaut('NombreCaracteristique')
1150             self.texteCuve+="# - Si NBCARAC = QUANTILE, fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n"
1151             self.texteCuve+="# - Si NBCARAC = ORDRE,    fournir (fractKIc, fractKIc_MESSAGE)"+"\n"
1152
1153          if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2' or str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME avec KI=KIpalier' or str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2.33 (Houssin)' :
1154             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
1155             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
1156             self.texteCuve += self.ecritVariable('PalierDuctile_KIc')
1157             self.texteCuve += self.ecritVariable('CoefficientVariation_KIc')
1158
1159          if str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb01 (Frama)' or str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb02 (LOGWOLF)' :
1160             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
1161             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
1162
1163          if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve (REME)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb01 (etude ORNL)' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb03' or str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb02' or str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' or str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee':
1164             if str(self.dico_mot["NombreCaracteristique"])=='Quantile' :
1165                self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
1166                self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
1167             if str(self.dico_mot["NombreCaracteristique"])=='Ordre' :
1168                self.texteCuve += self.ecritVariable('Fractile_KIc')
1169                self.texteCuve += self.ecritVariable('Fractile_KIc_mess')
1170
1171             if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' :
1172                self.texteCuve += self.ecritVariable('Temperature_KIc100')
1173
1174             if str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee' :
1175                self.texteCuve += self.ecritVariable('A1')
1176                self.texteCuve += self.ecritVariable('A2')
1177                self.texteCuve += self.ecritVariable('A3')
1178                self.texteCuve += self.ecritVariable('B1')
1179                self.texteCuve += self.ecritVariable('B2')
1180                self.texteCuve += self.ecritVariable('B3')
1181                self.texteCuve += self.ecritVariable('C1')
1182                self.texteCuve += self.ecritVariable('C2')
1183                self.texteCuve += self.ecritVariable('C3')
1184       else :
1185          self.texteCuve += self.affecteValeurDefaut('NbEcartType_MoyKIc')
1186          self.texteCuve += self.affecteValeurDefaut('NbEcartType_MoyKIc_mess')
1187          self.texteCuve += self.affecteValeurDefaut('PalierDuctile_KIc')
1188          self.texteCuve += self.affecteValeurDefaut('CoefficientVariation_KIc')
1189
1190       self.texteCuve+="#"+"\n"
1191       self.texteCuve+="# Correction plastique"+"\n"
1192
1193       #DTV if self.dico_mot.has_key('TypeInitial'):
1194       #DTV    if str(self.dico_mot["TypeInitial"])!='Defaut Debouchant':
1195       if self.dico_mot.has_key('CorrectionPlastique'):
1196          if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique BETA (pour DSR et defaut decale)':
1197             self.texteCuve += self.affecteValeur('AttnCorrBeta','NON')
1198          if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique BETA attenuee (pour DSR et defaut decale)':
1199             self.texteCuve += self.affecteValeur('AttnCorrBeta','OUI')
1200          if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique IRWIN (pour defaut debouchant)':
1201             self.texteCuve += self.affecteValeur('CorrIrwin','OUI')
1202       else :
1203          self.texteCuve += self.affecteValeurDefaut('AttnCorrBeta')
1204
1205       self.texteCuve+="#"+"\n"
1206       self.texteCuve+="# Prise en compte de l'arret de fissure si DETERMINISTE"+"\n"
1207
1208       self.texteCuve += self.ecritVariable('ArretDeFissure')
1209       self.texteCuve+="# - si ARRETFISSURE=OUI, fournir (INCRDEF, INCRDEF_MESSAGE), nbectKIa, KIAPAL, KIACDV"+"\n"
1210       if self.dico_mot.has_key('ArretDeFissure'):
1211          if str(self.dico_mot["ArretDeFissure"])=='OUI':
1212             self.texteCuve+="#"+"\n"
1213             self.texteCuve += self.ecritVariable('IncrementTailleFissure')
1214             self.texteCuve += self.ecritVariable('IncrementTailleFissure_mess')
1215             self.texteCuve+="#"+"\n"
1216             self.texteCuve+="# Parametres pour le calcul de la tenacite a l arret"+"\n"
1217             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIa')
1218             self.texteCuve += self.ecritVariable('PalierDuctile_KIa')
1219             self.texteCuve += self.ecritVariable('CoefficientVariation_KIa')
1220
1221       # Rubrique Etat initial
1222       self.texteCuve += self.rubrique('ETAT INITIAL')
1223
1224       self.texteCuve+="# Profil radial de la temperature initiale dans la cuve"+"\n"
1225       self.texteCuve+="# abscisse (m) / temp initiale dans la cuve"+"\n"
1226       self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1227       if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1228          self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1229       if self.dico_mot.has_key('ProfilRadial_TemperatureInitiale'):
1230          self.imprime(2,(self.dico_mot["ProfilRadial_TemperatureInitiale"]))
1231          self.texteCuve += self.amontAval('Amont_TemperatureInitiale','Aval_TemperatureInitiale')
1232       else :
1233          self.texteCuve+="    1.9940    287."+"\n"
1234          self.texteCuve+="CC"+"\n"
1235       if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1236          self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1237
1238       self.texteCuve+="#"+"\n"
1239       self.texteCuve+="# Profils radiaux des contraintes residuelles dans la cuve"+"\n"
1240       self.texteCuve+="# abscisse (m) / sigma rr / sigma tt / sigma zz"+"\n"
1241       self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1242       if self.dico_mot.has_key('ProfilRadial_ContraintesInitiales'):
1243          self.imprime(4,(self.dico_mot["ProfilRadial_ContraintesInitiales"]))
1244          self.texteCuve += self.amontAval('Amont_ContraintesInitiales','Aval_ContraintesInitiales')
1245       else :
1246          self.texteCuve+="1.994     0. 0.  0."+"\n"
1247          self.texteCuve+="CC"+"\n"
1248
1249       self.texteCuve+="#"+"\n"
1250       self.texteCuve+="# Prise en compte de coefficients sur les contraintes"+"\n"
1251       self.texteCuve += self.ecritVariable('ChoixCoefficientChargement')
1252       if str(self.dico_mot["ChoixCoefficientChargement"])=='OUI':
1253          self.texteCuve += self.ecritVariable('CoefficientDuctile')
1254          self.texteCuve += self.ecritVariable('CoefficientFragile')
1255       else :
1256          self.texteCuve+="#"+"\n"
1257
1258       self.texteCuve+="#"+"\n"
1259       self.texteCuve+="# Instant initial"+"\n"
1260       self.texteCuve += self.ecritVariable('InstantInitialisation')
1261
1262       # Rubrique CARACTERISTIQUES DU REVETEMENT
1263       self.texteCuve += self.rubrique('CARACTERISTIQUES DU REVETEMENT')
1264
1265       if self.dico_mot.has_key('ConditionLimiteThermiqueREV'):
1266          self.texteCuve += self.affecteValeur('ConditionLimiteThermiqueREV', self.valeurproposee[str(self.dico_mot["ConditionLimiteThermiqueREV"])])
1267       else :
1268          self.texteCuve += self.affecteValeurDefaut('ConditionLimiteThermiqueREV')
1269       self.texteCuve+="# - si CHALEUR,   fournir Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1270       self.texteCuve+="# - si ENTHALPIE, fournir Temperature (degC) / enthalpie (J/kg)"+"\n"
1271       self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1272       self.texteCuve+="#"+"\n"
1273       if self.dico_mot.has_key('ChaleurREV_Fct_Temperature'):
1274          self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1275          self.imprime(2,(self.dico_mot["ChaleurREV_Fct_Temperature"]))
1276          self.texteCuve += self.amontAval('Amont_ChaleurREV','Aval_ChaleurREV')
1277       elif self.dico_mot.has_key('EnthalpieREV_Fct_Temperature'):
1278          self.texteCuve+="# Temperature (degC) / enthalpie (J/kg)"+"\n"
1279          self.imprime(2,(self.dico_mot["EnthalpieREV_Fct_Temperature"]))
1280          self.texteCuve += self.amontAval('Amont_EnthalpieREV','Aval_EnthalpieREV')
1281       else :
1282          self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1283          self.texteCuve+="0.    36.03E5 "+"\n"
1284          self.texteCuve+="20.   36.03E5 "+"\n"
1285          self.texteCuve+="200.  41.65E5 "+"\n"
1286          self.texteCuve+="350.  43.47E5 "+"\n"
1287          self.texteCuve+="CC"+"\n"
1288
1289       self.texteCuve+="#"+"\n"
1290       self.texteCuve+="# Temperature (degC) / conductivite thermique (W/m/degC)"+"\n"
1291       if self.dico_mot.has_key('ConductiviteREV_Fct_Temperature'):
1292          self.imprime(2,(self.dico_mot["ConductiviteREV_Fct_Temperature"]))
1293          self.texteCuve += self.amontAval('Amont_ConductiviteREV','Aval_ConductiviteREV')
1294       else :
1295          self.texteCuve+="0.    14.7 "+"\n"
1296          self.texteCuve+="20.   14.7 "+"\n"
1297          self.texteCuve+="200.  17.2 "+"\n"
1298          self.texteCuve+="350.  19.3 "+"\n"
1299          self.texteCuve+="CC"+"\n"
1300
1301       self.texteCuve+="#"+"\n"
1302       self.texteCuve+="# Temperature (degC) / module d'Young (MPa)"+"\n"
1303       if self.dico_mot.has_key('ModuleYoungREV_Fct_Temperature'):
1304          self.imprime(2,(self.dico_mot["ModuleYoungREV_Fct_Temperature"]))
1305          self.texteCuve += self.amontAval('Amont_ModuleYoungREV','Aval_ModuleYoungREV')
1306       else :
1307          self.texteCuve+="0.    198500. "+"\n"
1308          self.texteCuve+="20.   197000. "+"\n"
1309          self.texteCuve+="200.  184000. "+"\n"
1310          self.texteCuve+="350.  172000. "+"\n"
1311          self.texteCuve+="CC"+"\n"
1312
1313       self.texteCuve+="#"+"\n"
1314       self.texteCuve+="# Temperature (degC) / coefficient de dilatation thermique (degC-1)"+"\n"
1315       if self.dico_mot.has_key('CoeffDilatThermREV_Fct_Temperature'):
1316          self.imprime(2,(self.dico_mot["CoeffDilatThermREV_Fct_Temperature"]))
1317          self.texteCuve += self.amontAval('Amont_CoeffDilatThermREV','Aval_CoeffDilatThermREV')
1318       else :
1319          self.texteCuve+="0.    16.40E-6 "+"\n"
1320          self.texteCuve+="20.   16.40E-6 "+"\n"
1321          self.texteCuve+="200.  17.20E-6 "+"\n"
1322          self.texteCuve+="350.  17.77E-6 "+"\n"
1323          self.texteCuve+="CC"+"\n"
1324
1325       self.texteCuve+="#"+"\n"
1326       self.texteCuve+="# Temperature (degC) / limite d'elasticite (MPa)"+"\n"
1327       if self.dico_mot.has_key('LimiteElasticiteREV_Fct_Temperature'):
1328          self.imprime(2,(self.dico_mot["LimiteElasticiteREV_Fct_Temperature"]))
1329          self.texteCuve += self.amontAval('Amont_LimiteElasticiteREV','Aval_LimiteElasticiteREV')
1330       else :
1331          self.texteCuve+="0.    380. "+"\n"
1332          self.texteCuve+="20.   370. "+"\n"
1333          self.texteCuve+="100.  330. "+"\n"
1334          self.texteCuve+="300.  270. "+"\n"
1335          self.texteCuve+="LL"+"\n"
1336
1337       self.texteCuve+="#"+"\n"
1338       self.texteCuve += self.ecritVariable('TemperatureDeformationNulleREV')
1339       self.texteCuve += self.ecritVariable('TemperaturePourCoefDilatThermREV')
1340       self.texteCuve += self.ecritVariable('CoefficientPoissonREV')
1341
1342       # Rubrique CARACTERISTIQUES DU METAL DE BASE
1343       self.texteCuve += self.rubrique('CARACTERISTIQUES DU METAL DE BASE')
1344
1345       if self.dico_mot.has_key('ConditionLimiteThermiqueMDB'):
1346          self.texteCuve += self.affecteValeur('ConditionLimiteThermiqueMDB', self.valeurproposee[str(self.dico_mot["ConditionLimiteThermiqueMDB"])])
1347       else :
1348          self.texteCuve += self.affecteValeurDefaut('ConditionLimiteThermiqueMDB')
1349
1350       self.texteCuve+="# - si CHALEUR,   fournir Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1351       self.texteCuve+="# - si ENTHALPIE, fournir Temperature (degC) / enthalpie (J/kg)"+"\n"
1352       self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1353       self.texteCuve+="#"+"\n"
1354
1355       if self.dico_mot.has_key('ChaleurMDB_Fct_Temperature'):
1356          self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1357          self.imprime(2,(self.dico_mot["ChaleurMDB_Fct_Temperature"]))
1358          self.texteCuve += self.amontAval('Amont_ChaleurMDB','Aval_ChaleurMDB')
1359       elif self.dico_mot.has_key('EnthalpieMDB_Fct_Temperature'):
1360          self.texteCuve+="# Temperature (degC) / enthalpie (J/kg)"+"\n"
1361          self.imprime(2,(self.dico_mot["EnthalpieMDB_Fct_Temperature"]))
1362          self.texteCuve += self.amontAval('Amont_EnthalpieMDB','Aval_EnthalpieMDB')
1363       else :
1364          self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1365          self.texteCuve+="0.    34.88E+05 "+"\n"
1366          self.texteCuve+="20.   34.88E+05 "+"\n"
1367          self.texteCuve+="200.  40.87E+05 "+"\n"
1368          self.texteCuve+="350.  46.02E+05 "+"\n"
1369          self.texteCuve+="CC"+"\n"
1370
1371       self.texteCuve+="#"+"\n"
1372       self.texteCuve+="# Temperature (degC) / conductivite thermique (W/m/degC)"+"\n"
1373       if self.dico_mot.has_key('ConductiviteMDB_Fct_Temperature'):
1374          self.imprime(2,(self.dico_mot["ConductiviteMDB_Fct_Temperature"]))
1375          self.texteCuve += self.amontAval('Amont_ConductiviteMDB','Aval_ConductiviteMDB')
1376       else :
1377          self.texteCuve+="0.    37.7 "+"\n"
1378          self.texteCuve+="20.   37.7 "+"\n"
1379          self.texteCuve+="200.  40.5 "+"\n"
1380          self.texteCuve+="350.  38.7 "+"\n"
1381          self.texteCuve+="CC"+"\n"
1382
1383       self.texteCuve+="#"+"\n"
1384       self.texteCuve+="# Temperature (degC) / module d'Young (MPa)"+"\n"
1385       if self.dico_mot.has_key('ModuleYoungMDB_Fct_Temperature'):
1386          self.imprime(2,(self.dico_mot["ModuleYoungMDB_Fct_Temperature"]))
1387          self.texteCuve += self.amontAval('Aval_ModuleYoungMDB','Aval_ModuleYoungMDB')
1388       else :
1389          self.texteCuve+="0.    205000. "+"\n"
1390          self.texteCuve+="20.   204000. "+"\n"
1391          self.texteCuve+="200.  193000. "+"\n"
1392          self.texteCuve+="350.  180000. "+"\n"
1393          self.texteCuve+="CC"+"\n"
1394
1395       self.texteCuve+="#"+"\n"
1396       self.texteCuve+="# Temperature (degC) / coefficient de dilatation thermique (degC-1)"+"\n"
1397       if self.dico_mot.has_key('CoeffDilatThermMDB_Fct_Temperature'):
1398          self.imprime(2,(self.dico_mot["CoeffDilatThermMDB_Fct_Temperature"]))
1399          self.texteCuve += self.amontAval('Amont_CoeffDilatThermMDB','Aval_CoeffDilatThermMDB')
1400       else :
1401          self.texteCuve+="0.    11.22E-6 "+"\n"
1402          self.texteCuve+="20.   11.22E-6 "+"\n"
1403          self.texteCuve+="200.  12.47E-6 "+"\n"
1404          self.texteCuve+="350.  13.08E-6 "+"\n"
1405          self.texteCuve+="CC"+"\n"
1406
1407       self.texteCuve+="#"+"\n"
1408       self.texteCuve += self.ecritVariable('TemperatureDeformationNulleMDB')
1409       self.texteCuve += self.ecritVariable('TemperaturePourCoefDilatThermMDB')
1410       self.texteCuve += self.ecritVariable('CoefficientPoissonMDB')
1411
1412       # Rubrique CARACTERISTIQUES DU TRANSITOIRE MECANIQUE-THERMOHYDRAULIQUE
1413       self.texteCuve += self.rubrique('CARACTERISTIQUES DU TRANSITOIRE MECANIQUE-THERMOHYDRAULIQUE')
1414       self.texteCuve += self.sousRubrique('Chargement mecanique : transitoire de pression','')
1415
1416       self.texteCuve+="# instant (s) / pression (MPa)"+"\n"
1417       self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1418       if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1419          self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1420       if self.dico_mot.has_key('ProfilTemporel_Pression'):
1421          self.imprime(2,(self.dico_mot["ProfilTemporel_Pression"]))
1422          self.texteCuve += self.amontAval('Amont_Pression','Aval_Pression')
1423       else :
1424          self.texteCuve+="0.    15.5 "+"\n"
1425          self.texteCuve+="20.   0.1 "+"\n"
1426          self.texteCuve+="200.  0.1 "+"\n"
1427          self.texteCuve+="1000. 0.1 "+"\n"
1428          self.texteCuve+="CC"+"\n"
1429       if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1430          self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1431
1432       self.texteCuve += self.sousRubrique('Chargement thermo-hydraulique','')
1433       if self.dico_mot.has_key('TypeConditionLimiteThermique'):
1434          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1435             self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1436          self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', self.valeurproposee[str(self.dico_mot["TypeConditionLimiteThermique"])])
1437          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1438             self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1439       else :
1440          self.texteCuve += self.affecteValeurDefaut('TypeConditionLimiteThermique')
1441
1442       self.texteCuve+="# - si TEMP_IMPO, fournir Instant (s) / Temperature imposee (degC)"+"\n"
1443       self.texteCuve+="# - si FLUX_REP,  fournir Instant (s) / Flux de chaleur impose (W/m2)"+"\n"
1444       self.texteCuve+="# - si ECHANGE,   fournir Instant (s) / Temperature impose (degC)"+"\n"
1445       self.texteCuve+="#                    puis Instant (s) / Coefficient d echange (W/m2/K)"+"\n"
1446       self.texteCuve+="# - si DEBIT,     fournir Instant (s) / Debit massique (kg/s)"+"\n"
1447       self.texteCuve+="#                    puis Instant (s) / Temperature d injection de securite  (degC)"+"\n"
1448       self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
1449       self.texteCuve+="#                    puis Modele CREARE  : "+"\n"
1450       self.texteCuve+="#                        Instants(s) / Volume de melange CREARE (m3)"+"\n"
1451       self.texteCuve+="#                        puis (T0, T0_MESSAGE), (SE, SE_MESSAGE)"+"\n"
1452       self.texteCuve+="# - si TEMP_FLU,  fournir Instant (s) / Temperature du fluide (degC)"+"\n"
1453       self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
1454       self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
1455       self.texteCuve+="# - si TFDEBIT,   fournir INST_PCN et TIS"+"\n"
1456       self.texteCuve+="#                 fournir Instant (s) / Temperature du fluide (degC)"+"\n"
1457       self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
1458       self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
1459       self.texteCuve+="#                    puis Modele CREARE  : "+"\n"
1460       self.texteCuve+="#                        Instants(s) / Volume de melange CREARE (m3)"+"\n"
1461       self.texteCuve+="#                        puis (T0, T0_MESSAGE), (SE, SE_MESSAGE)"+"\n"
1462       self.texteCuve+="# - si APRP,      fournir INSTANT1, INSTANT2, INSTANT3, QACCU, QIS, (TIS, TIS_MESSAGE)"+"\n"
1463       self.texteCuve+="#                    puis Instant (s) / Temperature du fluide (degC) tel que dans l'exemple ci-dessous"+"\n"
1464       self.texteCuve+="#                         0.    286."+"\n"
1465       self.texteCuve+="#                         12.   20.             # 1er palier à T=TACCU"+"\n"
1466       self.texteCuve+="#                         20.   20.             # idem que ci-dessus : T=TACCU"+"\n"
1467       self.texteCuve+="#                         21.   999999.         # 2nd palier à T=T1 : sera remplace par nouvelle valeur calculee par fonction idoine"+"\n"
1468       self.texteCuve+="#                         45.   999999.         # idem que ci-dessus : T=T1"+"\n"
1469       self.texteCuve+="#                         46.   9.              # 3eme palier à T=TIS, temperature d injection de securite : sa valeur est reactualisee avec la donnee de TIS ci-dessous"+"\n"
1470       self.texteCuve+="#                         1870. 9.              # idem que ci-dessus : T=TIS"+"\n"
1471       self.texteCuve+="#                         1871. 80."+"\n"
1472       self.texteCuve+="#                         3871. 80."+"\n"
1473       self.texteCuve+="#                         CC                    # C pour Constant, E pour Exclu, L pour Lineaire"+"\n"
1474       self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
1475       self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
1476       self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1477       self.texteCuve+="#"+"\n"
1478
1479       if self.dico_mot.has_key('TypeConditionLimiteThermique'):
1480
1481          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1482             self.texteCuve+="#"+"\n"
1483             self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1484             self.texteCuve += self.ecritVariable('InstantPerteCirculationNaturelle')
1485             self.texteCuve += self.ecritVariable('TempInjectionSecurite')
1486             self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1487
1488          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
1489             self.texteCuve+="#"+"\n"
1490             self.texteCuve+="# Definition de parametres pour le cas d un transitoire APRP"+"\n"
1491             self.texteCuve += self.ecritVariable('Instant_1')
1492             self.texteCuve += self.ecritVariable('Instant_2')
1493             self.texteCuve += self.ecritVariable('Instant_3')
1494             self.texteCuve += self.ecritVariable('DebitAccumule')
1495             self.texteCuve += self.ecritVariable('DebitInjectionSecurite')
1496             self.texteCuve += self.ecritVariable('TempInjectionSecurite')
1497             self.texteCuve += self.ecritVariable('TempInjectionSecurite_mess')
1498
1499          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee en paroi' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et coefficient echange' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP' :
1500             self.texteCuve+="#"+"\n"
1501             self.texteCuve+="# instant (s) / temperature imposee du fluide (degC)"+"\n"
1502             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1503                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1504             if self.dico_mot.has_key('ProfilTemporel_TemperatureImposeeFluide'):
1505                self.imprime(2,(self.dico_mot["ProfilTemporel_TemperatureImposeeFluide"]))
1506                self.texteCuve += self.amontAval('Amont_TemperatureImposeeFluide','Aval_TemperatureImposeeFluide')
1507             else :
1508                self.texteCuve+="0.    286. "+"\n"
1509                self.texteCuve+="20.   20. "+"\n"
1510                self.texteCuve+="200.  7. "+"\n"
1511                self.texteCuve+="1000. 80. "+"\n"
1512                self.texteCuve+="CC"+"\n"
1513             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1514                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1515
1516          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Flux de chaleur impose en paroi':
1517             self.texteCuve+="#"+"\n"
1518             self.texteCuve+="# instant (s) / flux de chaleur impose (W/m2)"+"\n"
1519             if self.dico_mot.has_key('ProfilTemporel_FluxChaleur'):
1520                self.imprime(2,(self.dico_mot["ProfilTemporel_FluxChaleur"]))
1521                self.texteCuve += self.amontAval('Amont_FluxChaleur','Aval_FluxChaleur')
1522                self.texteCuve+="#"+"\n"
1523             else :
1524                self.texteCuve+="0.    -0. "+"\n"
1525                self.texteCuve+="20.   -366290. "+"\n"
1526                self.texteCuve+="200.  -121076. "+"\n"
1527                self.texteCuve+="1000.  -56372."+"\n"
1528                self.texteCuve+="CC"+"\n"
1529
1530          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
1531             self.texteCuve+="#"+"\n"
1532             self.texteCuve+="# instant (s) / Debit d injection de securite  (kg/s)"+"\n"
1533             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1534                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1535             if self.dico_mot.has_key('ProfilTemporel_DebitInjection'):
1536                self.imprime(2,(self.dico_mot["ProfilTemporel_DebitInjection"]))
1537                self.texteCuve += self.amontAval('Amont_DebitInjection','Aval_DebitInjection')
1538             else :
1539                self.texteCuve+="0.    4590. "+"\n"
1540                self.texteCuve+="20.   4590. "+"\n"
1541                self.texteCuve+="200.  340. "+"\n"
1542                self.texteCuve+="1000. 31.1 "+"\n"
1543                self.texteCuve+="CC"+"\n"
1544             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1545                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1546
1547          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et coefficient echange' :
1548             self.texteCuve+="#"+"\n"
1549             self.texteCuve+="# instant (s) / Coefficient d echange (W/m2/K)"+"\n"
1550             if self.dico_mot.has_key('ProfilTemporel_CoefficientEchange'):
1551                self.imprime(2,(self.dico_mot["ProfilTemporel_CoefficientEchange"]))
1552                self.texteCuve += self.amontAval('Amont_CoefficientEchange','Aval_CoefficientEchange')
1553             else :
1554                self.texteCuve+="0.    138454. "+"\n"
1555                self.texteCuve+="20.   19972. "+"\n"
1556                self.texteCuve+="200.  2668. "+"\n"
1557                self.texteCuve+="1000. 2668. "+"\n"
1558                self.texteCuve+="CC"+"\n"
1559
1560          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' :
1561             self.texteCuve+="#"+"\n"
1562             self.texteCuve+="# instant (s) / Debit massique (kg/s)"+"\n"
1563             if self.dico_mot.has_key('ProfilTemporel_DebitMassique'):
1564                self.imprime(2,(self.dico_mot["ProfilTemporel_DebitMassique"]))
1565                self.texteCuve += self.amontAval('Amont_DebitMassique','Aval_DebitMassique')
1566             else :
1567                self.texteCuve+="0.    18.4 "+"\n"
1568                self.texteCuve+="20.   18.4 "+"\n"
1569                self.texteCuve+="200.  31.1 "+"\n"
1570                self.texteCuve+="1000. 31.1 "+"\n"
1571                self.texteCuve+="CC"+"\n"
1572
1573             self.texteCuve+="#"+"\n"
1574             self.texteCuve+="# instant (s) / Temperature d injection de securite  (degC)"+"\n"
1575             if self.dico_mot.has_key('ProfilTemporel_TemperatureInjection'):
1576                self.imprime(2,(self.dico_mot["ProfilTemporel_TemperatureInjection"]))
1577                self.texteCuve += self.amontAval('Amont_TemperatureInjection','Aval_TemperatureInjection')
1578             else :
1579                self.texteCuve+="0.    7.0 "+"\n"
1580                self.texteCuve+="20.   7.0 "+"\n"
1581                self.texteCuve+="200.  7.0 "+"\n"
1582                self.texteCuve+="1000. 7.0 "+"\n"
1583                self.texteCuve+="CC"+"\n"
1584
1585          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP' :
1586             self.texteCuve+="#"+"\n"
1587             self.texteCuve+="# Transitoire des coefficients d echange : modele VESTALE"+"\n"
1588             self.texteCuve+="#"+"\n"
1589             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1590                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1591             self.texteCuve += self.ecritVariable('DiametreHydraulique')
1592             self.texteCuve += self.ecritVariable('DiametreHydraulique_mess')
1593             self.texteCuve+="#"+"\n"
1594             self.texteCuve += self.ecritVariable('SectionEspaceAnnulaire')
1595             self.texteCuve += self.ecritVariable('SectionEspaceAnnulaire_mess')
1596             self.texteCuve+="#"+"\n"
1597             self.texteCuve += self.ecritVariable('HauteurCaracConvectionNaturelle')
1598             self.texteCuve += self.ecritVariable('HauteurCaracConvectionNaturelle_mess')
1599             self.texteCuve+="#"+"\n"
1600             self.texteCuve += self.ecritVariable('CritereConvergenceRelative')
1601             self.texteCuve += self.ecritVariable('CoefficientsVestale')
1602             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1603                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1604
1605          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' :
1606             self.texteCuve+="#"+"\n"
1607             self.texteCuve+="# Transitoire de temperature fluide locale : modele CREARE"+"\n"
1608             self.texteCuve+="#"+"\n"
1609             #self.texteCuve += self.ecritVariable('VolumeMelange_CREARE')
1610             self.texteCuve+="# instant (s) / Volume de melange CREARE  (m3)"+"\n"
1611             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1612                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1613             if self.dico_mot.has_key('ProfilTemporel_VolumeMelange_CREARE'):
1614                self.imprime(2,(self.dico_mot["ProfilTemporel_VolumeMelange_CREARE"]))
1615                self.texteCuve += self.amontAval('Amont_VolumeMelange_CREARE','Aval_VolumeMelange_CREARE')
1616             else :
1617                self.texteCuve+="0.    14.3 "+"\n"
1618                self.texteCuve+="20.   14.2 "+"\n"
1619                self.texteCuve+="CC"+"\n"
1620             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1621                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1622             else :
1623                self.texteCuve+="#"+"\n"
1624             self.texteCuve += self.ecritVariable('TemperatureInitiale_CREARE')
1625             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1626                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1627             self.texteCuve += self.ecritVariable('TemperatureInitiale_CREARE_mess')
1628             self.texteCuve+="#"+"\n"
1629             self.texteCuve += self.ecritVariable('SurfaceEchange_FluideStructure')
1630             self.texteCuve += self.ecritVariable('SurfaceEchange_FluideStructure_mess')
1631             if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT':
1632                self.texteCuve+="#BLOC_TFDEBIT"+"\n"
1633       else :
1634          self.texteCuve+="#"+"\n"
1635          self.texteCuve+="# instant (s) / temperature imposee du fluide (degC)"+"\n"
1636          self.texteCuve+="0.    286. "+"\n"
1637          self.texteCuve+="20.   20. "+"\n"
1638          self.texteCuve+="200.  7. "+"\n"
1639          self.texteCuve+="1000. 80. "+"\n"
1640          self.texteCuve+="CC"+"\n"
1641       self.texteCuve+="#"+"\n"
1642       self.texteCuve+="############################################################################################"+"\n"
1643
1644
1645    def genereTexteTFDEBIT(self):
1646
1647       self.texteTFDEBIT = ""
1648
1649       if self.dico_mot.has_key('TypeConditionLimiteThermique'):
1650          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Calcul TEMPFLU puis DEBIT' :
1651             self.texteTFDEBIT+="# instant (s) / pression (MPa)"+"\n"
1652             self.texteTFDEBIT+=" "+"\n"
1653             self.imprime2(2,(self.dico_mot["ProfilTemporel_Pression"]))
1654             self.texteTFDEBIT += self.amontAval('Amont_Pression','Aval_Pression')
1655
1656        #     self.texteTFDEBIT+=" "+"\n"
1657        #     self.texteTFDEBIT += self.affecteValeur('TypeConditionLimiteThermique', self.valeurproposee[str(self.dico_mot["TypeConditionLimiteThermique"])])
1658
1659             self.texteTFDEBIT+=" "+"\n"
1660             self.imprime2(2,(self.dico_mot["ProfilTemporel_TemperatureImposeeFluide"]))
1661             self.texteTFDEBIT += self.amontAval('Amont_TemperatureImposeeFluide','Aval_TemperatureImposeeFluide')
1662
1663             self.texteTFDEBIT+=" "+"\n"
1664             self.imprime2(2,(self.dico_mot["ProfilTemporel_DebitInjection"]))
1665             self.texteTFDEBIT += self.amontAval('Amont_DebitInjection','Aval_DebitInjection')
1666
1667             self.texteTFDEBIT+=" "+"\n"
1668             self.texteTFDEBIT += self.ecritVariable('DiametreHydraulique')
1669             self.texteTFDEBIT += self.ecritVariable('DiametreHydraulique_mess')
1670             self.texteTFDEBIT+="#"+"\n"
1671             self.texteTFDEBIT += self.ecritVariable('SectionEspaceAnnulaire')
1672             self.texteTFDEBIT += self.ecritVariable('SectionEspaceAnnulaire_mess')
1673             self.texteTFDEBIT+="#"+"\n"
1674             self.texteTFDEBIT += self.ecritVariable('HauteurCaracConvectionNaturelle')
1675             self.texteTFDEBIT += self.ecritVariable('HauteurCaracConvectionNaturelle_mess')
1676             self.texteTFDEBIT+="#"+"\n"
1677             self.texteTFDEBIT += self.ecritVariable('CritereConvergenceRelative')
1678             self.texteTFDEBIT += self.ecritVariable('CoefficientsVestale')
1679
1680             self.texteTFDEBIT+=" "+"\n"
1681             self.imprime2(2,(self.dico_mot["ProfilTemporel_VolumeMelange_CREARE"]))
1682             self.texteTFDEBIT += self.amontAval('Amont_VolumeMelange_CREARE','Aval_VolumeMelange_CREARE')
1683
1684             self.texteTFDEBIT+=" "+"\n"
1685             self.texteTFDEBIT += self.ecritVariable('SurfaceEchange_FluideStructure')
1686             self.texteTFDEBIT += self.ecritVariable('SurfaceEchange_FluideStructure_mess')
1687             self.texteTFDEBIT += self.ecritVariable('InstantPerteCirculationNaturelle')
1688             self.texteTFDEBIT += self.ecritVariable('TempInjectionSecurite')
1689          else :
1690             self.texteTFDEBIT+="Fichier inutile"+"\n"
1691
1692
1693    def imprime(self,nbdeColonnes,valeur):
1694       self.liste=[]
1695       self.transforme(valeur)
1696       i=0
1697       while i < len(self.liste):
1698           for k in range(nbdeColonnes) :
1699               self.texteCuve+=str(self.liste[i+k]) +"  "
1700           self.texteCuve+="\n"
1701           i=i+k+1
1702                
1703    def imprime2(self,nbdeColonnes,valeur):
1704       self.liste=[]
1705       self.transforme(valeur)
1706       i=0
1707       while i < len(self.liste):
1708           for k in range(nbdeColonnes) :
1709               self.texteTFDEBIT+=str(self.liste[i+k]) +"  "
1710           self.texteTFDEBIT+="\n"
1711           i=i+k+1
1712                
1713
1714    def transforme(self,valeur):
1715       for i in valeur :
1716           if type(i) == tuple :
1717              self.transforme(i)
1718           else :
1719              self.liste.append(i)
1720           
1721
1722
1723