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