Salome HOME
Modif V6_4_°
[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',config=None):
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 writeDefault(self, fn):
610       filename = fn[:fn.rfind(".")] + '.don'
611       print "je passe dans writeCuve2DG"
612       self.genereTexteCuve()
613       f = open( filename, 'wb')
614       print self.texteCuve
615       f.write( self.texteCuve )
616       f.close()
617       ftmp = open( "/tmp/data_template", 'wb')
618       ftmp.write( self.texteCuve )
619       ftmp.close()
620
621    def entete(self):
622       '''
623       Ecrit l'entete du fichier data_template
624       '''
625       texte  = "############################################################################################"+"\n"
626       texte += "#"+"\n"
627       texte += "#                OUTIL D'ANALYSE PROBABILISTE DE LA DUREE DE VIE DES CUVES REP"+"\n"
628       texte += "#                                     ---------------"+"\n"
629       texte += "#                               FICHIER DE MISE EN DONNEES"+"\n"
630       texte += "#"+"\n"
631       texte += "# SI CALCUL DETERMINISTE :"+"\n"
632       texte += "#       - fixer INCRTPS=1, nbectDRTNDT=2., nbectKIc=-2."+"\n"
633       texte += "#       - les calculs ne sont possibles qu'en une seule pointe du defaut (POINDEF<>BOTH)"+"\n"
634       texte += "# SI CALCUL PROBABILISTE :"+"\n"
635       texte += "#       - fixer ARRETFISSURE=NON"+"\n"
636       texte += "#"+"\n"
637       texte += "############################################################################################"+"\n"
638       texte += "#"+"\n"
639       return texte
640
641    def rubrique(self, titre):
642       '''
643       Rubrique 
644       '''
645       texte  = "#"+"\n"
646       texte += "############################################################################################"+"\n"
647       texte += "# " + titre + "\n"
648       texte += "############################################################################################"+"\n"
649       texte += "#"+"\n"
650       return texte
651
652    def sousRubrique(self, soustitre, numtitre):
653       '''
654       Sous-rubrique 
655       '''
656       texte  = "#"+"\n"
657       texte += "# " + numtitre + soustitre + "\n"
658       texte += "#==========================================================================================="+"\n"
659       texte += "#"+"\n"
660       return texte
661
662    def ecritLigne(self, variablelue):
663       '''
664       Ecrit l'affectation d'une valeur a sa variable, suivie d'un commentaire
665       '''
666       texte = "%s = %s   # %s\n" % (self.variable[variablelue], str(self.dico_mot[variablelue]), self.comment[variablelue])
667       return texte
668
669    def affecteValeurDefaut(self, variablelue):
670       '''
671       Affecte une valeur par defaut a une variable, suivie d'un commentaire
672       '''
673       print "Warning ==> Dans la rubrique",self.bloc[variablelue],", valeur par defaut pour ",variablelue," = ",self.default[variablelue]
674       texte = "%s = %s   # %s\n" % (self.variable[variablelue], self.default[variablelue], self.comment[variablelue])
675       return texte
676
677    def affecteValeur(self, variablelue, valeuraffectee):
678       '''
679       Affecte une valeur a une variable, suivie d'un commentaire
680       '''
681       texte = "%s = %s   # %s\n" % (self.variable[variablelue], valeuraffectee, self.comment[variablelue])
682       return texte
683
684    def ecritVariable(self, variablelue):
685       if self.dico_mot.has_key(variablelue):
686          texte = self.ecritLigne(variablelue)
687       else :
688          texte = self.affecteValeurDefaut(variablelue)
689       return texte
690
691    def amontAval(self, amont, aval):
692       if str(self.dico_mot[amont])=='Continu':
693          if str(self.dico_mot[aval])=='Continu':
694             texte = 'CC'+"\n"
695          if str(self.dico_mot[aval])=='Lineaire':
696             texte = 'CL'+"\n"
697          if str(self.dico_mot[aval])=='Exclu':
698             texte = 'CE'+"\n"
699       if str(self.dico_mot[amont])=='Lineaire':
700          if str(self.dico_mot[aval])=='Continu':
701             texte = 'LC'+"\n"
702          if str(self.dico_mot[aval])=='Lineaire':
703             texte = 'LL'+"\n"
704          if str(self.dico_mot[aval])=='Exclu':
705             texte = 'LE'+"\n"
706       if str(self.dico_mot[amont])=='Exclu':
707          if str(self.dico_mot[aval])=='Continu':
708             texte = 'EC'+"\n"
709          if str(self.dico_mot[aval])=='Lineaire':
710             texte = 'EL'+"\n"
711          if str(self.dico_mot[aval])=='Exclu':
712             texte = 'EE'+"\n"
713       return texte
714
715    def genereTexteCuve(self):
716       self.texteCuve  = ""
717       self.texteCuve += self.entete()
718
719       # Rubrique OPTIONS
720       self.texteCuve += self.rubrique('OPTIONS')
721
722       self.texteCuve += self.sousRubrique('Impression a l ecran', '')
723       if self.dico_mot.has_key('NiveauImpression'):
724          if str(self.dico_mot["NiveauImpression"])=='Aucune impression':
725             self.texteCuve += self.affecteValeur('NiveauImpression', '0')
726          if str(self.dico_mot["NiveauImpression"])=='Temps total':
727             self.texteCuve += self.affecteValeur('NiveauImpression', '1')
728          if str(self.dico_mot["NiveauImpression"])=='Temps intermediaires':
729             self.texteCuve += self.affecteValeur('NiveauImpression', '2')
730
731       self.texteCuve += self.sousRubrique('Generation de fichiers', '')
732       self.texteCuve += self.ecritVariable('FichierDataIn')
733       self.texteCuve += self.ecritVariable('FichierTempSigma')
734       self.texteCuve += self.ecritVariable('FichierCSV')
735       self.texteCuve += self.ecritVariable('FichierCREARE')
736
737       self.texteCuve += self.sousRubrique('Grandeur evaluee', '')
738       if self.dico_mot.has_key('GrandeurEvaluee'):
739          if str(self.dico_mot["GrandeurEvaluee"])=='Facteur de marge KIc/KCP':
740             self.texteCuve += self.affecteValeur('GrandeurEvaluee', 'FM_KICSURKCP')
741          if str(self.dico_mot["GrandeurEvaluee"])=='Marge KIc-KI':
742             self.texteCuve += self.affecteValeur('GrandeurEvaluee', 'MARGE_KI')
743          if str(self.dico_mot["GrandeurEvaluee"])=='Marge KIc-KCP':
744             self.texteCuve += self.affecteValeur('GrandeurEvaluee', 'MARGE_KCP')
745
746       self.texteCuve += self.sousRubrique('Divers', '')
747       self.texteCuve += self.ecritVariable('IncrementTemporel')
748       self.texteCuve += self.ecritVariable('IncrementMaxTemperature')
749       self.texteCuve += self.ecritVariable('IncrementMaxTempsAffichage')
750       if self.dico_mot.has_key('ListeInstants'):
751          self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n"
752          self.imprime(1,(self.dico_mot["ListeInstants"]))
753       else :
754          print "Warning ==> Dans la rubrique OPTIONS, fournir ListeInstants."
755          self.texteCuve += "# liste des instants pour ecriture des resultats (s)"+"\n"
756          self.texteCuve += "  0.\n"
757          self.texteCuve += "  1.\n"
758
759
760       # Rubrique DONNEES DE LA CUVE
761       self.texteCuve += self.rubrique('DONNEES DE LA CUVE')
762       if self.dico_mot.has_key('TraitementGeometrie'):
763          if str(self.dico_mot["TraitementGeometrie"])=='Topologie':
764             self.texteCuve += self.affecteValeur('TraitementGeometrie', 'GEOMETRIE')
765             self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
766             self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
767             self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
768             self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
769             self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
770             self.texteCuve+="#                         NBNO"+"\n"
771             self.texteCuve+="#"+"\n"
772             self.texteCuve += self.ecritVariable('RayonInterne')
773             self.texteCuve += self.ecritVariable('RayonInterne_mess')
774             self.texteCuve += self.ecritVariable('RayonExterne')
775             self.texteCuve += self.ecritVariable('RayonExterne_mess')
776             self.texteCuve += self.ecritVariable('EpaisseurRevetement')
777             self.texteCuve += self.ecritVariable('EpaisseurRevetement_mess')
778             self.texteCuve+="#"+"\n"
779             self.texteCuve += self.ecritVariable('LigamentExterneMin')
780             self.texteCuve += self.ecritVariable('LigamentExterneMin_mess')
781             self.texteCuve+="#"+"\n"
782             self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
783          if str(self.dico_mot["TraitementGeometrie"])=='Maillage':
784             self.texteCuve += self.affecteValeur('TraitementGeometrie', 'MAILLAGE')
785             self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
786             self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
787             self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
788             self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
789             self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
790             self.texteCuve+="#                         NBNO"+"\n"
791             self.texteCuve+="#"+"\n"
792             self.texteCuve += self.ecritVariable('NombreNoeudsMaillage')
793             self.imprime(1,(self.dico_mot["ListeAbscisses"]))
794       else :
795          self.texteCuve += self.affecteValeurDefaut('TraitementGeometrie')
796          self.texteCuve+="# - si MAILLAGE, fournir NBNO et liste des abscisses (m)"+"\n"
797          self.texteCuve+="# - si GEOMETRIE, fournir (RINT, RINT_MESSAGE),"+"\n"
798          self.texteCuve+="#                         (REXT, REXT_MESSAGE),"+"\n"
799          self.texteCuve+="#                         (LREV, LREV_MESSAGE),"+"\n"
800          self.texteCuve+="#                         (LIGMIN, LIGMIN_MESSAGE),"+"\n"
801          self.texteCuve+="#                         NBNO"+"\n"
802          self.texteCuve+="#"+"\n"
803          self.texteCuve += self.affecteValeurDefaut('RayonInterne')
804          self.texteCuve += self.affecteValeurDefaut('RayonInterne_mess')
805          self.texteCuve += self.affecteValeurDefaut('RayonExterne')
806          self.texteCuve += self.affecteValeurDefaut('RayonExterne_mess')
807          self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement')
808          self.texteCuve += self.affecteValeurDefaut('EpaisseurRevetement_mess')
809          self.texteCuve+="#"+"\n"
810          self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin')
811          self.texteCuve += self.affecteValeurDefaut('LigamentExterneMin_mess')
812          self.texteCuve+="#"+"\n"
813          self.texteCuve += self.affecteValeurDefaut('NombreNoeudsMaillage')
814
815
816       # Rubrique CARACTERISTIQUES DU DEFAUT
817       self.texteCuve += self.rubrique('CARACTERISTIQUES DU DEFAUT')
818
819       if self.dico_mot.has_key('TypeInitial'):
820          if str(self.dico_mot["TypeInitial"])=='Defaut Sous Revetement':
821             self.texteCuve += self.affecteValeur('TypeInitial', 'DSR')
822          if str(self.dico_mot["TypeInitial"])=='Defaut Decale':
823             self.texteCuve += self.affecteValeur('TypeInitial', 'DECALE')
824          if str(self.dico_mot["TypeInitial"])=='Defaut Debouchant':
825             self.texteCuve += self.affecteValeur('TypeInitial', 'DEBOUCHANT')
826       else :
827          self.texteCuve += self.affecteValeurDefaut('TypeInitial')
828
829       self.texteCuve+="# Fournir ORIEDEF, (PROFDEF, PROFDEF_MESSAGE)"+"\n"
830       self.texteCuve+="# - Si DSR, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST)"+"\n"
831       self.texteCuve+="# - Si DECALE, fournir OPTLONG, (LONGDEF,LONGDEF_MESSAGE) ou (PROFSURLONG,PROFSURLONG_MESSAGE,LONGCONST), DECATYP, (DECANOR,DECANOR_MESSAGE) ou (DECADEF,DECADEF_MESSAGE)"+"\n"
832       self.texteCuve+="# - Si DEBOUCHANT, fournir IRWIN"+"\n"
833       self.texteCuve+="# Fournir (ANGLDEF, ANGLDEF_MESSAGE), (ALTIDEF, ALTIDEF_MESSAGE)"+"\n"
834       self.texteCuve+="# - Si DSR ou DECALE, fournir POINDEF"+"\n"
835       self.texteCuve+="#"+"\n"
836       self.texteCuve+="# Remarque :"+"\n"
837       self.texteCuve+="# - si DSR ou DECALE, dans la rubrique 'Modele de tenacite', fournir ATTNCORRBETA (ne pas fournir CORRIRWIN)"+"\n"
838       self.texteCuve+="# - si DEBOUCHANT,    dans la rubrique 'Modele de tenacite', fournir CORRIRWIN    (ne pas fournir ATTNCORRBETA)"+"\n"
839
840       self.texteCuve+="#"+"\n"
841
842       if self.dico_mot.has_key('Orientation'):
843          if str(self.dico_mot["Orientation"])=='Longitudinale':
844             self.texteCuve += self.affecteValeur('Orientation', 'LONGITUD')
845          if str(self.dico_mot["Orientation"])=='Circonferentielle':
846             self.texteCuve += self.affecteValeur('Orientation', 'CIRCONF')
847       else :
848          self.texteCuve += self.affecteValeurDefaut('Orientation')
849          
850       self.texteCuve+="#"+"\n"
851       self.texteCuve += self.ecritVariable('ProfondeurRadiale')
852       self.texteCuve += self.ecritVariable('ProfondeurRadiale_mess')
853
854       self.texteCuve+="#"+"\n"
855       if self.dico_mot.has_key('ModeCalculLongueur'):
856          if str(self.dico_mot["ModeCalculLongueur"])=='Valeur':
857             self.texteCuve += self.affecteValeur('ModeCalculLongueur', 'VALEUR')
858             self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
859             self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
860             self.texteCuve += self.ecritVariable('Longueur')
861             self.texteCuve += self.ecritVariable('Longueur_mess')
862          if str(self.dico_mot["ModeCalculLongueur"])=='Fonction affine de la profondeur':
863             self.texteCuve += self.affecteValeur('ModeCalculLongueur', 'FCTAFFINE')
864             self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
865             self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
866             self.texteCuve += self.ecritVariable('CoefDirecteur')
867             self.texteCuve += self.ecritVariable('CoefDirecteur_mess')
868             self.texteCuve += self.ecritVariable('Constante')
869       else :
870          self.texteCuve += self.affecteValeurDefaut('ModeCalculLongueur')
871          self.texteCuve+="# - Si VALEUR,    fournir (LONGDEF, LONGDEF_MESSAGE)"+"\n"
872          self.texteCuve+="# - Si FCTAFFINE, fournir (PROFSURLONG, PROFSURLONG_MESSAGE) et LONGCONST : LONGDEF=PROFDEF/PROFSURLONG + LONGCONST"+"\n"
873          self.texteCuve += self.affecteValeurDefaut('Longueur')
874          self.texteCuve += self.affecteValeurDefaut('Longueur_mess')
875
876       if self.dico_mot.has_key('TypeInitial'):
877          if str(self.dico_mot["TypeInitial"])!='Defaut Sous Revetement':
878             self.texteCuve+="#"+"\n"
879             if self.dico_mot.has_key('ModeCalculDecalage'):
880                if str(self.dico_mot["ModeCalculDecalage"])=='Valeur normalisee':
881                   self.texteCuve += self.affecteValeur('ModeCalculDecalage', 'NORMALISE')
882                   self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
883                   self.texteCuve+="# - Si VALEUR,    fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
884                   self.texteCuve += self.ecritVariable('DecalageNormalise')
885                   self.texteCuve += self.ecritVariable('DecalageNormalise_mess')
886                if str(self.dico_mot["ModeCalculDecalage"])=='Valeur':
887                   self.texteCuve += self.affecteValeur('ModeCalculDecalage', 'VALEUR')
888                   self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
889                   self.texteCuve+="# - Si VALEUR,    fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
890                   self.texteCuve += self.ecritVariable('DecalageRadial')
891                   self.texteCuve += self.ecritVariable('DecalageRadial_mess')
892             else :
893                self.texteCuve += self.affecteValeurDefaut('ModeCalculDecalage')
894                self.texteCuve+="# - Si NORMALISE, fournir (DECANOR, DECANOR_MESSAGE)"+"\n"
895                self.texteCuve+="# - Si VALEUR, fournir (DECADEF, DECADEF_MESSAGE)"+"\n"
896                self.texteCuve += self.affecteValeurDefaut('DecalageRadial')
897                self.texteCuve += self.affecteValeurDefaut('DecalageRadial_mess')
898
899       self.texteCuve+="#"+"\n"
900       self.texteCuve += self.ecritVariable('Azimut')
901       self.texteCuve += self.ecritVariable('Azimut_mess')
902       self.texteCuve+="#"+"\n"
903       self.texteCuve += self.ecritVariable('Altitude')
904       self.texteCuve += self.ecritVariable('Altitude_mess')
905       self.texteCuve+="#"+"\n"
906       if self.dico_mot.has_key('Pointe'):
907          if str(self.dico_mot["Pointe"])=='A':
908             self.texteCuve += self.affecteValeur('Pointe', 'A')
909          if str(self.dico_mot["Pointe"])=='B':
910             self.texteCuve += self.affecteValeur('Pointe', 'B')
911          if str(self.dico_mot["Pointe"])=='A et B':
912             self.texteCuve += self.affecteValeur('Pointe', 'BOTH')
913       else :
914          self.texteCuve += self.affecteValeurDefaut('Pointe')
915
916       # Rubrique MODELES FLUENCE, IRRADIATION, TENACITE
917       self.texteCuve += self.rubrique('MODELES FLUENCE, IRRADIATION, TENACITE')
918       self.texteCuve += self.sousRubrique('Modele d attenuation de la fluence dans l epaisseur','A.')
919
920       if self.dico_mot.has_key('ModeleFluence'):
921          if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=9.7 (Reglementaire)':
922             self.texteCuve += self.affecteValeur('ModeleFluence', 'Reglementaire')
923          if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=12.7 (France)':
924             self.texteCuve += self.affecteValeur('ModeleFluence', 'France')
925          if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=0. (ValeurImposee)':
926             self.texteCuve += self.affecteValeur('ModeleFluence', 'ValeurImposee')
927          if str(self.dico_mot["ModeleFluence"])=='Donnees francaises du palier CPY (SDM)':
928             self.texteCuve += self.affecteValeur('ModeleFluence', 'SDM')
929          if str(self.dico_mot["ModeleFluence"])=='Regulatory Guide 1.99 rev 2 (USNRC)':
930             self.texteCuve += self.affecteValeur('ModeleFluence', 'USNRC')
931          if str(self.dico_mot["ModeleFluence"])=='Dossier 900 MWe AP9701 rev 2 (REV_2)':
932             self.texteCuve += self.affecteValeur('ModeleFluence', 'REV_2')
933          if str(self.dico_mot["ModeleFluence"])=='Lissage du modele ajuste (SDM_Lissage)':
934             self.texteCuve += self.affecteValeur('ModeleFluence', 'SDM_Lissage')
935          if str(self.dico_mot["ModeleFluence"])=='Donnees francaises du palier CPY ajustees par secteur angulaire (GrandeDev)':
936             self.texteCuve += self.affecteValeur('ModeleFluence', 'GrandeDev')
937          if str(self.dico_mot["ModeleFluence"])=='Grand developpement (GD_Cuve)':
938             self.texteCuve += self.affecteValeur('ModeleFluence', 'GD_Cuve')
939          if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=9.7 (Reglementaire CUVE1D)':
940             self.texteCuve += self.affecteValeur('ModeleFluence', 'Cuve1D')
941       else :
942          self.texteCuve += self.affecteValeurDefaut('ModeleFluence')
943
944       self.texteCuve+="# - si France,          fournir KPFRANCE"+"\n"
945       self.texteCuve+="# - si USNRC,           fournir KPUS"+"\n"
946       self.texteCuve+="# - si modele GD_Cuve,  fournir COEFFLUENCE1, COEFFLUENCE2, ..., COEFFLUENCE9, COEFFLUENCE10"+"\n"
947       self.texteCuve+="#"+"\n"
948
949       self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeSup')
950       self.texteCuve += self.ecritVariable('ZoneActiveCoeur_AltitudeInf')
951       self.texteCuve += self.ecritVariable('FluenceMax')
952       if self.dico_mot.has_key('ModeleFluence'):
953          if str(self.dico_mot["ModeleFluence"])=='Exponentiel sans revetement k=12.7 (France)':
954             self.texteCuve += self.ecritVariable('KPFrance')
955          if str(self.dico_mot["ModeleFluence"])=='Regulatory Guide 1.99 rev 2 (USNRC)':
956             self.texteCuve += self.ecritVariable('KPUS')
957          if str(self.dico_mot["ModeleFluence"])=='Grand developpement (GD_Cuve)':
958             self.texteCuve += self.ecritVariable('Azimut_0deg')
959             self.texteCuve += self.ecritVariable('Azimut_5deg')
960             self.texteCuve += self.ecritVariable('Azimut_10deg')
961             self.texteCuve += self.ecritVariable('Azimut_15deg')
962             self.texteCuve += self.ecritVariable('Azimut_20deg')
963             self.texteCuve += self.ecritVariable('Azimut_25deg')
964             self.texteCuve += self.ecritVariable('Azimut_30deg')
965             self.texteCuve += self.ecritVariable('Azimut_35deg')
966             self.texteCuve += self.ecritVariable('Azimut_40deg')
967             self.texteCuve += self.ecritVariable('Azimut_45deg')
968
969       self.texteCuve += self.sousRubrique('Irradiation','B.')
970
971       if self.dico_mot.has_key('TypeIrradiation'):
972
973          if str(self.dico_mot["TypeIrradiation"])=='RTndt de la cuve a l instant de l analyse':
974             self.texteCuve += self.affecteValeur('TypeIrradiation', 'RTNDT')
975             self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
976             self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
977             self.texteCuve+="#"+"\n"
978             self.texteCuve += self.ecritVariable('RTNDT')
979
980          if str(self.dico_mot["TypeIrradiation"])=='Modele d irradiation':
981             self.texteCuve += self.affecteValeur('TypeIrradiation', 'FLUENCE')
982             self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
983             self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
984             self.texteCuve+="#"+"\n"
985             if self.dico_mot.has_key('ModeleIrradiation'):
986                if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Houssin':
987                   self.texteCuve += self.affecteValeur('ModeleIrradiation', 'HOUSSIN')
988                if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Persoz':
989                   self.texteCuve += self.affecteValeur('ModeleIrradiation', 'PERSOZ')
990                if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : formule de FIM/FIS Lefebvre':
991                   self.texteCuve += self.affecteValeur('ModeleIrradiation', 'LEFEBVRE')
992                if str(self.dico_mot["ModeleIrradiation"])=='Metal de Base : Regulatory Guide 1.00 rev 2':
993                   self.texteCuve += self.affecteValeur('ModeleIrradiation', 'USNRCmdb')
994                if str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : formulation de FIM/FIS Brillaud':
995                   self.texteCuve += self.affecteValeur('ModeleIrradiation', 'BRILLAUD')
996                if str(self.dico_mot["ModeleIrradiation"])=='Joint Soude : Regulatory Guide 1.00 rev 2':
997                   self.texteCuve += self.affecteValeur('ModeleIrradiation', 'USNRCsoud')
998             else :
999               self.texteCuve += self.affecteValeurDefaut('ModeleIrradiation')
1000             self.texteCuve+="# - pour tout modele,                       fournir (CU, CU_MESSAGE),"+"\n"
1001             self.texteCuve+="#                                                   (NI, NI_MESSAGE),"+"\n"
1002             self.texteCuve+="# - si HOUSSIN, PERSOZ, LEFEBVRE, BRILLAUD, fournir (P, P_MESSAGE)"+"\n"
1003             self.texteCuve+="# - pour tout modele,                       fournir (RTimoy, RTimoy_MESSAGE),"+"\n"
1004             self.texteCuve+="# - si USNRCsoud ou USNRCmdb,               fournir (RTicov, RTicov_MESSAGE)"+"\n"
1005             self.texteCuve+="#                                                   (USectDRT, USectDRT_MESSAGE)"+"\n"
1006             self.texteCuve+="# - pour tout modele,                       fournir (nbectDRTNDT, nbectDRTNDT_MESSAGE)"+"\n"
1007             self.texteCuve+="#"+"\n"
1008             self.texteCuve += self.ecritVariable('TeneurCuivre')
1009             self.texteCuve += self.ecritVariable('TeneurCuivre_mess')
1010             self.texteCuve += self.ecritVariable('TeneurNickel')
1011             self.texteCuve += self.ecritVariable('TeneurNickel_mess')
1012             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':
1013                self.texteCuve += self.ecritVariable('TeneurPhosphore')
1014                self.texteCuve += self.ecritVariable('TeneurPhosphore_mess')
1015             self.texteCuve += self.ecritVariable('MoyenneRTndt')
1016             self.texteCuve += self.ecritVariable('MoyenneRTndt_mess')
1017             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':
1018                self.texteCuve += self.ecritVariable('CoefVariationRTndt')
1019                self.texteCuve += self.ecritVariable('CoefVariationRTndt_mess')
1020                self.texteCuve += self.ecritVariable('EcartTypeRTndt')
1021                self.texteCuve += self.ecritVariable('EcartTypeRTndt_mess')
1022             self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt')
1023             self.texteCuve += self.ecritVariable('NombreEcartTypeRTndt_mess')
1024       else :
1025          self.texteCuve += self.affecteValeurDefaut('TypeIrradiation')
1026          self.texteCuve+="# - si RTNDT, fournir RTNDT"+"\n"
1027          self.texteCuve+="# - si FLUENCE, fournir MODELIRR, et autres parametres selon MODELIRR (voir ci-dessous)"+"\n"
1028          self.texteCuve+="#"+"\n"
1029          self.texteCuve += self.affecteValeurDefaut('RTNDT')
1030
1031       self.texteCuve += self.sousRubrique('Modele de tenacite','C.')
1032       self.texteCuve+="# tenacite d amorcage"+"\n"
1033
1034       if self.dico_mot.has_key('ModeleTenacite'):
1035          if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2':
1036             self.texteCuve += self.affecteValeur('ModeleTenacite', 'RCC-M')
1037          if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2 CUVE1D':
1038             self.texteCuve += self.affecteValeur('ModeleTenacite', 'RCC-M_simpl')
1039          if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME coefficient=2.33 (Houssin)':
1040             self.texteCuve += self.affecteValeur('ModeleTenacite', 'Houssin_RC')
1041          if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME avec KI=KIpalier':
1042             self.texteCuve += self.affecteValeur('ModeleTenacite', 'RCC-M_pal')
1043          if str(self.dico_mot["ModeleTenacite"])=='RCC-M/ASME avec KI~exponentiel':
1044             self.texteCuve += self.affecteValeur('ModeleTenacite', 'RCC-M_exp')
1045          if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve':
1046             self.texteCuve += self.affecteValeur('ModeleTenacite', 'Wallin')
1047          if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve (REME)':
1048             self.texteCuve += self.affecteValeur('ModeleTenacite', 'REME')
1049          if str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb01 (etude ORNL)':
1050             self.texteCuve += self.affecteValeur('ModeleTenacite', 'ORNL')
1051          if str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb02':
1052             self.texteCuve += self.affecteValeur('ModeleTenacite', 'WEIB2')
1053          if str(self.dico_mot["ModeleTenacite"])=='Weibull n\xb03':
1054             self.texteCuve += self.affecteValeur('ModeleTenacite', 'WEIB3')
1055          if str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee':
1056             self.texteCuve += self.affecteValeur('ModeleTenacite', 'WEIB-GEN')
1057          if str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb01 (Frama)':
1058             self.texteCuve += self.affecteValeur('ModeleTenacite', 'Frama')
1059          if str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb02 (LOGWOLF)':
1060             self.texteCuve += self.affecteValeur('ModeleTenacite', 'LOGWOLF')
1061       else :
1062          self.texteCuve += self.affecteValeurDefaut('ModeleTenacite')
1063       self.texteCuve+="# - si RCC-M, RCC-M_pal, Houssin_RC, fournir (nbectKIc, nbectKIc_MESSAGE), KICPAL, KICCDV"+"\n"
1064       self.texteCuve+="# - si RCC-M_exp,                    fournir (nbectKIc, nbectKIc_MESSAGE), KICCDV"+"\n"
1065       self.texteCuve+="# - si RCC-M_simpl,                  ne rien fournir"+"\n"
1066       self.texteCuve+="# - si Frama, LOGWOLF,               fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n"
1067       self.texteCuve+="# - si REME, ORNL, WEIB3, WEIB2,     fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC"+"\n"
1068       self.texteCuve+="# - si Wallin,                       fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n"
1069       self.texteCuve+="#                                                     puis T0WALLIN"+"\n"
1070       self.texteCuve+="# - si WEIB-GEN,                     fournir NBCARAC, puis (nbectKIc, nbectKIc_MESSAGE) ou (fractKIc, fractKIc_MESSAGE) selon valeur de NBCARAC,"+"\n"
1071       self.texteCuve+="#                                                     puis A1, A2, A3, B1, B2, B3, C1, C2, C3"+"\n"
1072       self.texteCuve+="#   loi de Weibull P(K<x) = 1 - exp{-[ (x-a(T)) / b(T) ]^c(T) }"+"\n"
1073       self.texteCuve+="#   avec        a(T) = A1 + A2*exp[A3*(T-RTNDT)]"+"\n"
1074       self.texteCuve+="#               b(T) = B1 + B2*exp[B3*(T-RTNDT)]"+"\n"
1075       self.texteCuve+="#               c(T) = C1 + C2*exp[C3*(T-RTNDT)]"+"\n"
1076       self.texteCuve+="#"+"\n"
1077       if self.dico_mot.has_key('ModeleTenacite'):
1078          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' :
1079             self.texteCuve += self.ecritVariable('NBRE_CARACTERISTIQUE')
1080             self.texteCuve+="# - Si CARAC = QUANTILE, fournir (nbectKIc, nbectKIc_MESSAGE)"+"\n"
1081             self.texteCuve+="# - Si CARAC = ORDRE,    fournir (fractKIc, fractKIc_MESSAGE)"+"\n"
1082
1083          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)' :
1084             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
1085             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
1086             self.texteCuve += self.ecritVariable('PalierDuctile_KIc')
1087             self.texteCuve += self.ecritVariable('CoefficientVariation_KIc')
1088
1089          if str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb01 (Frama)' or str(self.dico_mot["ModeleTenacite"])=='Exponentielle n\xb02 (LOGWOLF)' :
1090             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
1091             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
1092
1093          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':
1094             if str(self.dico_mot["NBRE_CARACTERISTIQUE"])=='QUANTILE' :
1095                self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc')
1096                self.texteCuve += self.ecritVariable('NbEcartType_MoyKIc_mess')
1097             if str(self.dico_mot["NBRE_CARACTERISTIQUE"])=='ORDRE' :
1098                self.texteCuve += self.ecritVariable('Fractile_KIc')
1099                self.texteCuve += self.ecritVariable('Fractile_KIc_mess')
1100
1101             if str(self.dico_mot["ModeleTenacite"])=='Weibull basee sur la master cuve' :
1102                self.texteCuve += self.ecritVariable('Temperature_KIc100')
1103
1104             if str(self.dico_mot["ModeleTenacite"])=='Weibull generalisee' :
1105                self.texteCuve += self.ecritVariable('A1')
1106                self.texteCuve += self.ecritVariable('A2')
1107                self.texteCuve += self.ecritVariable('A3')
1108                self.texteCuve += self.ecritVariable('B1')
1109                self.texteCuve += self.ecritVariable('B2')
1110                self.texteCuve += self.ecritVariable('B3')
1111                self.texteCuve += self.ecritVariable('C1')
1112                self.texteCuve += self.ecritVariable('C2')
1113                self.texteCuve += self.ecritVariable('C3')
1114       else :
1115          self.texteCuve += self.affecteValeurDefaut('NbEcartType_MoyKIc')
1116          self.texteCuve += self.affecteValeurDefaut('NbEcartType_MoyKIc_mess')
1117          self.texteCuve += self.affecteValeurDefaut('PalierDuctile_KIc')
1118          self.texteCuve += self.affecteValeurDefaut('CoefficientVariation_KIc')
1119
1120       self.texteCuve+="#"+"\n"
1121       self.texteCuve+="# Correction plastique"+"\n"
1122
1123       if self.dico_mot.has_key('CorrectionPlastique'):
1124          if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique BETA (pour DSR et defaut decale)':
1125             self.texteCuve += self.affecteValeur('AttnCorrBeta','NON')
1126          if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique BETA attenuee (pour DSR et defaut decale)':
1127             self.texteCuve += self.affecteValeur('AttnCorrBeta','OUI')
1128          if str(self.dico_mot["CorrectionPlastique"])=='Correction plastique IRWIN (pour defaut debouchant)':
1129             self.texteCuve += self.affecteValeur('CorrIrwin','OUI')
1130       else :
1131          self.texteCuve += self.affecteValeurDefaut('AttnCorrBeta')
1132
1133       self.texteCuve+="#"+"\n"
1134       self.texteCuve+="# Prise en compte de l'arret de fissure si DETERMINISTE"+"\n"
1135
1136       self.texteCuve += self.ecritVariable('ArretDeFissure')
1137       self.texteCuve+="# - si ARRETFISSURE=OUI, fournir (INCRDEF, INCRDEF_MESSAGE), nbectKIa, KIAPAL, KIACDV"+"\n"
1138       if self.dico_mot.has_key('ArretDeFissure'):
1139          if str(self.dico_mot["ArretDeFissure"])=='OUI':
1140             self.texteCuve+="#"+"\n"
1141             self.texteCuve += self.ecritVariable('IncrementTailleFissure')
1142             self.texteCuve += self.ecritVariable('IncrementTailleFissure_mess')
1143             self.texteCuve+="#"+"\n"
1144             self.texteCuve+="# Parametres pour le calcul de la tenacite a l arret"+"\n"
1145             self.texteCuve += self.ecritVariable('NbEcartType_MoyKIa')
1146             self.texteCuve += self.ecritVariable('PalierDuctile_KIa')
1147             self.texteCuve += self.ecritVariable('CoefficientVariation_KIa')
1148
1149       # Rubrique Etat initial
1150       self.texteCuve += self.rubrique('ETAT INITIAL')
1151
1152       self.texteCuve+="# Profil radial de la temperature initiale dans la cuve"+"\n"
1153       self.texteCuve+="# abscisse (m) / temp initiale dans la cuve"+"\n"
1154       self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1155       if self.dico_mot.has_key('ProfilRadial_TemperatureInitiale'):
1156          self.imprime(2,(self.dico_mot["ProfilRadial_TemperatureInitiale"]))
1157          self.texteCuve += self.amontAval('Amont_TemperatureInitiale','Aval_TemperatureInitiale')
1158       else :
1159          self.texteCuve+="    1.9940    287."+"\n"
1160          self.texteCuve+="CC"+"\n"
1161
1162       self.texteCuve+="#"+"\n"
1163       self.texteCuve+="# Profils radiaux des contraintes residuelles dans la cuve"+"\n"
1164       self.texteCuve+="# abscisse (m) / sigma rr / sigma tt / sigma zz"+"\n"
1165       self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1166       if self.dico_mot.has_key('ProfilRadial_ContraintesInitiales'):
1167          self.imprime(4,(self.dico_mot["ProfilRadial_ContraintesInitiales"]))
1168          self.texteCuve += self.amontAval('Amont_ContraintesInitiales','Aval_ContraintesInitiales')
1169       else :
1170          self.texteCuve+="1.994     0. 0.  0."+"\n"
1171          self.texteCuve+="CC"+"\n"
1172
1173       self.texteCuve+="#"+"\n"
1174       self.texteCuve+="# Instant initial"+"\n"
1175       self.texteCuve += self.ecritVariable('InstantInitialisation')
1176
1177       # Rubrique CARACTERISTIQUES DU REVETEMENT
1178       self.texteCuve += self.rubrique('CARACTERISTIQUES DU REVETEMENT')
1179
1180       self.texteCuve += self.ecritVariable('ConditionLimiteThermiqueREV')
1181       self.texteCuve+="# - si CHALEUR,   fournir Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1182       self.texteCuve+="# - si ENTHALPIE, fournir Temperature (degC) / enthalpie (J/kg)"+"\n"
1183       self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1184       self.texteCuve+="#"+"\n"
1185       if self.dico_mot.has_key('ChaleurREV_Fct_Temperature'):
1186          self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1187          self.imprime(2,(self.dico_mot["ChaleurREV_Fct_Temperature"]))
1188          self.texteCuve += self.amontAval('Amont_ChaleurREV','Aval_ChaleurREV')
1189       elif self.dico_mot.has_key('EnthalpieREV_Fct_Temperature'):
1190          self.texteCuve+="# Temperature (degC) / enthalpie (J/kg)"+"\n"
1191          self.imprime(2,(self.dico_mot["EnthalpieREV_Fct_Temperature"]))
1192          self.texteCuve += self.amontAval('Amont_EnthalpieREV','Aval_EnthalpieREV')
1193       else :
1194          self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1195          self.texteCuve+="0.    36.03E5 "+"\n"
1196          self.texteCuve+="20.   36.03E5 "+"\n"
1197          self.texteCuve+="200.  41.65E5 "+"\n"
1198          self.texteCuve+="350.  43.47E5 "+"\n"
1199          self.texteCuve+="CC"+"\n"
1200
1201       self.texteCuve+="#"+"\n"
1202       self.texteCuve+="# Temperature (degC) / conductivite thermique (W/m/degC)"+"\n"
1203       if self.dico_mot.has_key('ConductiviteREV_Fct_Temperature'):
1204          self.imprime(2,(self.dico_mot["ConductiviteREV_Fct_Temperature"]))
1205          self.texteCuve += self.amontAval('Amont_ConductiviteREV','Aval_ConductiviteREV')
1206       else :
1207          self.texteCuve+="0.    14.7 "+"\n"
1208          self.texteCuve+="20.   14.7 "+"\n"
1209          self.texteCuve+="200.  17.2 "+"\n"
1210          self.texteCuve+="350.  19.3 "+"\n"
1211          self.texteCuve+="CC"+"\n"
1212
1213       self.texteCuve+="#"+"\n"
1214       self.texteCuve+="# Temperature (degC) / module d'Young (MPa)"+"\n"
1215       if self.dico_mot.has_key('ModuleYoungREV_Fct_Temperature'):
1216          self.imprime(2,(self.dico_mot["ModuleYoungREV_Fct_Temperature"]))
1217          self.texteCuve += self.amontAval('Amont_ModuleYoungREV','Aval_ModuleYoungREV')
1218       else :
1219          self.texteCuve+="0.    198500. "+"\n"
1220          self.texteCuve+="20.   197000. "+"\n"
1221          self.texteCuve+="200.  184000. "+"\n"
1222          self.texteCuve+="350.  172000. "+"\n"
1223          self.texteCuve+="CC"+"\n"
1224
1225       self.texteCuve+="#"+"\n"
1226       self.texteCuve+="# Temperature (degC) / coefficient de dilatation thermique (degC-1)"+"\n"
1227       if self.dico_mot.has_key('CoeffDilatThermREV_Fct_Temperature'):
1228          self.imprime(2,(self.dico_mot["CoeffDilatThermREV_Fct_Temperature"]))
1229          self.texteCuve += self.amontAval('Amont_CoeffDilatThermREV','Aval_CoeffDilatThermREV')
1230       else :
1231          self.texteCuve+="0.    16.40E-6 "+"\n"
1232          self.texteCuve+="20.   16.40E-6 "+"\n"
1233          self.texteCuve+="200.  17.20E-6 "+"\n"
1234          self.texteCuve+="350.  17.77E-6 "+"\n"
1235          self.texteCuve+="CC"+"\n"
1236
1237       self.texteCuve+="#"+"\n"
1238       self.texteCuve+="# Temperature (degC) / limite d'elasticite (MPa)"+"\n"
1239       if self.dico_mot.has_key('LimiteElasticiteREV_Fct_Temperature'):
1240          self.imprime(2,(self.dico_mot["LimiteElasticiteREV_Fct_Temperature"]))
1241          self.texteCuve += self.amontAval('Amont_LimiteElasticiteREV','Aval_LimiteElasticiteREV')
1242       else :
1243          self.texteCuve+="0.    380. "+"\n"
1244          self.texteCuve+="20.   370. "+"\n"
1245          self.texteCuve+="100.  330. "+"\n"
1246          self.texteCuve+="300.  270. "+"\n"
1247          self.texteCuve+="LL"+"\n"
1248
1249       self.texteCuve+="#"+"\n"
1250       self.texteCuve += self.ecritVariable('TemperatureDeformationNulleREV')
1251       self.texteCuve += self.ecritVariable('TemperaturePourCoefDilatThermREV')
1252       self.texteCuve += self.ecritVariable('CoefficientPoissonREV')
1253
1254       # Rubrique CARACTERISTIQUES DU METAL DE BASE
1255       self.texteCuve += self.rubrique('CARACTERISTIQUES DU METAL DE BASE')
1256
1257       self.texteCuve += self.ecritVariable('ConditionLimiteThermiqueMDB')
1258
1259       self.texteCuve+="# - si CHALEUR,   fournir Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1260       self.texteCuve+="# - si ENTHALPIE, fournir Temperature (degC) / enthalpie (J/kg)"+"\n"
1261       self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1262       self.texteCuve+="#"+"\n"
1263
1264       if self.dico_mot.has_key('ChaleurMDB_Fct_Temperature'):
1265          self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1266          self.imprime(2,(self.dico_mot["ChaleurMDB_Fct_Temperature"]))
1267          self.texteCuve += self.amontAval('Amont_ChaleurMDB','Aval_ChaleurMDB')
1268       elif self.dico_mot.has_key('EnthalpieMDB_Fct_Temperature'):
1269          self.texteCuve+="# Temperature (degC) / enthalpie (J/kg)"+"\n"
1270          self.imprime(2,(self.dico_mot["EnthalpieMDB_Fct_Temperature"]))
1271          self.texteCuve += self.amontAval('Amont_EnthalpieMDB','Aval_EnthalpieMDB')
1272       else :
1273          self.texteCuve+="# Temperature (degC) / chaleur volumique (J/kg/K)"+"\n"
1274          self.texteCuve+="0.    34.88E+05 "+"\n"
1275          self.texteCuve+="20.   34.88E+05 "+"\n"
1276          self.texteCuve+="200.  40.87E+05 "+"\n"
1277          self.texteCuve+="350.  46.02E+05 "+"\n"
1278          self.texteCuve+="CC"+"\n"
1279
1280       self.texteCuve+="#"+"\n"
1281       self.texteCuve+="# Temperature (degC) / conductivite thermique (W/m/degC)"+"\n"
1282       if self.dico_mot.has_key('ConductiviteMDB_Fct_Temperature'):
1283          self.imprime(2,(self.dico_mot["ConductiviteMDB_Fct_Temperature"]))
1284          self.texteCuve += self.amontAval('Amont_ConductiviteMDB','Aval_ConductiviteMDB')
1285       else :
1286          self.texteCuve+="0.    37.7 "+"\n"
1287          self.texteCuve+="20.   37.7 "+"\n"
1288          self.texteCuve+="200.  40.5 "+"\n"
1289          self.texteCuve+="350.  38.7 "+"\n"
1290          self.texteCuve+="CC"+"\n"
1291
1292       self.texteCuve+="#"+"\n"
1293       self.texteCuve+="# Temperature (degC) / module d'Young (MPa)"+"\n"
1294       if self.dico_mot.has_key('ModuleYoungMDB_Fct_Temperature'):
1295          self.imprime(2,(self.dico_mot["ModuleYoungMDB_Fct_Temperature"]))
1296          self.texteCuve += self.amontAval('Aval_ModuleYoungMDB','Aval_ModuleYoungMDB')
1297       else :
1298          self.texteCuve+="0.    205000. "+"\n"
1299          self.texteCuve+="20.   204000. "+"\n"
1300          self.texteCuve+="200.  193000. "+"\n"
1301          self.texteCuve+="350.  180000. "+"\n"
1302          self.texteCuve+="CC"+"\n"
1303
1304       self.texteCuve+="#"+"\n"
1305       self.texteCuve+="# Temperature (degC) / coefficient de dilatation thermique (degC-1)"+"\n"
1306       if self.dico_mot.has_key('CoeffDilatThermMDB_Fct_Temperature'):
1307          self.imprime(2,(self.dico_mot["CoeffDilatThermMDB_Fct_Temperature"]))
1308          self.texteCuve += self.amontAval('Amont_CoeffDilatThermMDB','Aval_CoeffDilatThermMDB')
1309       else :
1310          self.texteCuve+="0.    11.22E-6 "+"\n"
1311          self.texteCuve+="20.   11.22E-6 "+"\n"
1312          self.texteCuve+="200.  12.47E-6 "+"\n"
1313          self.texteCuve+="350.  13.08E-6 "+"\n"
1314          self.texteCuve+="CC"+"\n"
1315
1316       self.texteCuve+="#"+"\n"
1317       self.texteCuve += self.ecritVariable('TemperatureDeformationNulleMDB')
1318       self.texteCuve += self.ecritVariable('TemperaturePourCoefDilatThermMDB')
1319       self.texteCuve += self.ecritVariable('CoefficientPoissonMDB')
1320
1321       # Rubrique CARACTERISTIQUES DU TRANSITOIRE MECANIQUE-THERMOHYDRAULIQUE
1322       self.texteCuve += self.rubrique('CARACTERISTIQUES DU TRANSITOIRE MECANIQUE-THERMOHYDRAULIQUE')
1323       self.texteCuve += self.sousRubrique('Chargement mecanique : transitoire de pression','')
1324
1325       self.texteCuve+="# instant (s) / pression (MPa)"+"\n"
1326       self.texteCuve+="# Prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1327       if self.dico_mot.has_key('ProfilTemporel_Pression'):
1328          self.imprime(2,(self.dico_mot["ProfilTemporel_Pression"]))
1329          self.texteCuve += self.amontAval('Amont_Pression','Aval_Pression')
1330       else :
1331          self.texteCuve+="0.    15.5 "+"\n"
1332          self.texteCuve+="20.   0.1 "+"\n"
1333          self.texteCuve+="200.  0.1 "+"\n"
1334          self.texteCuve+="1000. 0.1 "+"\n"
1335          self.texteCuve+="CC"+"\n"
1336
1337       self.texteCuve += self.sousRubrique('Chargement thermo-hydraulique','')
1338       if self.dico_mot.has_key('TypeConditionLimiteThermique'):
1339          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee en paroi':
1340             self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', 'TEMP_IMPO')
1341          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Flux de chaleur impose en paroi':
1342             self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', 'FLUX_REP')
1343          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et coefficient echange':
1344             self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', 'ECHANGE')
1345          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite':
1346             self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', 'DEBIT')
1347          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite':
1348             self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', 'TEMP_FLU')
1349          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
1350             self.texteCuve += self.affecteValeur('TypeConditionLimiteThermique', 'APRP')
1351       else :
1352          self.texteCuve += self.affecteValeurDefaut('TypeConditionLimiteThermique')
1353
1354       self.texteCuve+="# - si TEMP_IMPO, fournir Instant (s) / Temperature imposee (degC)"+"\n"
1355       self.texteCuve+="# - si FLUX_REP,  fournir Instant (s) / Flux de chaleur impose (W/m2)"+"\n"
1356       self.texteCuve+="# - si ECHANGE,   fournir Instant (s) / Temperature impose (degC)"+"\n"
1357       self.texteCuve+="#                    puis Instant (s) / Coefficient d echange (W/m2/K)"+"\n"
1358       self.texteCuve+="# - si DEBIT,     fournir Instant (s) / Debit massique (kg/s)"+"\n"
1359       self.texteCuve+="#                    puis Instant (s) / Temperature d injection de securite  (degC)"+"\n"
1360       self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
1361       self.texteCuve+="#                    puis Modele CREARE  : (VM, VM_MESSAGE), (T0, T0_MESSAGE), (SE, SE_MESSAGE)"+"\n"
1362       self.texteCuve+="# - si TEMP_FLU,  fournir Instant (s) / Temperature du fluide (degC)"+"\n"
1363       self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
1364       self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
1365       self.texteCuve+="# - si APRP,      fournir INSTANT1, INSTANT2, QACCU, QIS"+"\n"
1366       self.texteCuve+="#                    puis TIS_MESSAGE"+"\n"
1367       self.texteCuve+="#                    puis Instant (s) / Temperature du fluide (degC) tel que dans l'exemple ci-dessous"+"\n"
1368       self.texteCuve+="#                         0.    286."+"\n"
1369       self.texteCuve+="#                         12.   20.             # 1er palier à T=TACCU"+"\n"
1370       self.texteCuve+="#                         20.   20.             # idem que ci-dessus"+"\n"
1371       self.texteCuve+="#                         21.   18.             # 2nd palier à T=T1 : sera remplace par nouvelle valeur calculee par fonction idoine"+"\n"
1372       self.texteCuve+="#                         45.   18.             # idem que ci-dessus"+"\n"
1373       if self.dico_mot.has_key('TypeConditionLimiteThermique'):
1374          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
1375             self.texteCuve+="#                         46.   9999999999.     # 3eme palier à T=Tis, temperature d injection de securite"+"\n"
1376          else :
1377             self.texteCuve+="#                         46.   %INLET-TIS%     # 3eme palier à T=Tis, temperature d injection de securite"+"\n"
1378       else :
1379          self.texteCuve+="#                         46.   %INLET-TIS%     # 3eme palier à T=Tis, temperature d injection de securite"+"\n"
1380       self.texteCuve+="#                         1870. 9999999999.     # idem que ci-dessus"+"\n"
1381       self.texteCuve+="#                         1871. 80."+"\n"
1382       self.texteCuve+="#                         3871. 80."+"\n"
1383       self.texteCuve+="#                    puis Instant (s) / Debit d injection de securite  (kg/s)"+"\n"
1384       self.texteCuve+="#                    puis Modele VESTALE : (DH, DH_MESSAGE), (SECTION, SECTION_MESSAGE), (DELTA, DELTA_MESSAGE), EPS, COEFVESTALE"+"\n"
1385       self.texteCuve+="# Finir chacune des listes par la prolongation aux frontieres amont et aval: C = constant / E = exclu / L = lineaire"+"\n"
1386       self.texteCuve+="#"+"\n"
1387
1388       if self.dico_mot.has_key('TypeConditionLimiteThermique'):
1389
1390          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
1391             self.texteCuve+="#"+"\n"
1392             self.texteCuve+="# Definition de parametres pour le cas d un transitoire APRP"+"\n"
1393             self.texteCuve += self.ecritVariable('Instant_1')
1394             self.texteCuve += self.ecritVariable('Instant_2')
1395             self.texteCuve += self.ecritVariable('DebitAccumule')
1396             self.texteCuve += self.ecritVariable('DebitInjectionSecurite')
1397             self.texteCuve += self.ecritVariable('TempInjectionSecurite_mess')
1398
1399          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' :
1400             self.texteCuve+="#"+"\n"
1401             self.texteCuve+="# instant (s) / temperature imposee du fluide (degC)"+"\n"
1402             if self.dico_mot.has_key('ProfilTemporel_TemperatureImposeeFluide'):
1403                self.imprime(2,(self.dico_mot["ProfilTemporel_TemperatureImposeeFluide"]))
1404                self.texteCuve += self.amontAval('Amont_TemperatureImposeeFluide','Aval_TemperatureImposeeFluide')
1405             else :
1406                self.texteCuve+="0.    286. "+"\n"
1407                self.texteCuve+="20.   20. "+"\n"
1408                self.texteCuve+="200.  7. "+"\n"
1409                self.texteCuve+="1000. 80. "+"\n"
1410                self.texteCuve+="CC"+"\n"
1411
1412          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Flux de chaleur impose en paroi':
1413             self.texteCuve+="#"+"\n"
1414             self.texteCuve+="# instant (s) / flux de chaleur impose (W/m2)"+"\n"
1415             if self.dico_mot.has_key('ProfilTemporel_FluxChaleur'):
1416                self.imprime(2,(self.dico_mot["ProfilTemporel_FluxChaleur"]))
1417                self.texteCuve += self.amontAval('Amont_FluxChaleur','Aval_FluxChaleur')
1418                self.texteCuve+="#"+"\n"
1419             else :
1420                self.texteCuve+="0.    -0. "+"\n"
1421                self.texteCuve+="20.   -366290. "+"\n"
1422                self.texteCuve+="200.  -121076. "+"\n"
1423                self.texteCuve+="1000.  -56372."+"\n"
1424                self.texteCuve+="CC"+"\n"
1425
1426          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et debit d injection de securite' or str(self.dico_mot["TypeConditionLimiteThermique"])=='Courbe APRP':
1427             self.texteCuve+="#"+"\n"
1428             self.texteCuve+="# instant (s) / Debit d injection de securite  (kg/s)"+"\n"
1429             if self.dico_mot.has_key('ProfilTemporel_DebitInjection'):
1430                self.imprime(2,(self.dico_mot["ProfilTemporel_DebitInjection"]))
1431                self.texteCuve += self.amontAval('Amont_DebitInjection','Aval_DebitInjection')
1432             else :
1433                self.texteCuve+="0.    4590. "+"\n"
1434                self.texteCuve+="20.   4590. "+"\n"
1435                self.texteCuve+="200.  340. "+"\n"
1436                self.texteCuve+="1000. 31.1 "+"\n"
1437                self.texteCuve+="CC"+"\n"
1438
1439          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Temperature imposee du fluide et coefficient echange' :
1440             self.texteCuve+="#"+"\n"
1441             self.texteCuve+="# instant (s) / Coefficient d echange (W/m2/K)"+"\n"
1442             if self.dico_mot.has_key('ProfilTemporel_CoefficientEchange'):
1443                self.imprime(2,(self.dico_mot["ProfilTemporel_CoefficientEchange"]))
1444                self.texteCuve += self.amontAval('Amont_CoefficientEchange','Aval_CoefficientEchange')
1445             else :
1446                self.texteCuve+="0.    138454. "+"\n"
1447                self.texteCuve+="20.   19972. "+"\n"
1448                self.texteCuve+="200.  2668. "+"\n"
1449                self.texteCuve+="1000. 2668. "+"\n"
1450                self.texteCuve+="CC"+"\n"
1451
1452          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite' :
1453             self.texteCuve+="#"+"\n"
1454             self.texteCuve+="# instant (s) / Debit massique (kg/s)"+"\n"
1455             if self.dico_mot.has_key('ProfilTemporel_DebitMassique'):
1456                self.imprime(2,(self.dico_mot["ProfilTemporel_DebitMassique"]))
1457                self.texteCuve += self.amontAval('Amont_DebitMassique','Aval_DebitMassique')
1458             else :
1459                self.texteCuve+="0.    18.4 "+"\n"
1460                self.texteCuve+="20.   18.4 "+"\n"
1461                self.texteCuve+="200.  31.1 "+"\n"
1462                self.texteCuve+="1000. 31.1 "+"\n"
1463                self.texteCuve+="CC"+"\n"
1464
1465             self.texteCuve+="#"+"\n"
1466             self.texteCuve+="# instant (s) / Temperature d injection de securite  (degC)"+"\n"
1467             if self.dico_mot.has_key('ProfilTemporel_TemperatureInjection'):
1468                self.imprime(2,(self.dico_mot["ProfilTemporel_TemperatureInjection"]))
1469                self.texteCuve += self.amontAval('Amont_TemperatureInjection','Aval_TemperatureInjection')
1470             else :
1471                self.texteCuve+="0.    7.0 "+"\n"
1472                self.texteCuve+="20.   7.0 "+"\n"
1473                self.texteCuve+="200.  7.0 "+"\n"
1474                self.texteCuve+="1000. 7.0 "+"\n"
1475                self.texteCuve+="CC"+"\n"
1476
1477          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' :
1478             self.texteCuve+="#"+"\n"
1479             self.texteCuve+="# Transitoire des coefficients d echange : modele VESTALE"+"\n"
1480             self.texteCuve+="#"+"\n"
1481             self.texteCuve += self.ecritVariable('DiametreHydraulique')
1482             self.texteCuve += self.ecritVariable('DiametreHydraulique_mess')
1483             self.texteCuve+="#"+"\n"
1484             self.texteCuve += self.ecritVariable('SectionEspaceAnnulaire')
1485             self.texteCuve += self.ecritVariable('SectionEspaceAnnulaire_mess')
1486             self.texteCuve+="#"+"\n"
1487             self.texteCuve += self.ecritVariable('HauteurCaracConvectionNaturelle')
1488             self.texteCuve += self.ecritVariable('HauteurCaracConvectionNaturelle_mess')
1489             self.texteCuve+="#"+"\n"
1490             self.texteCuve += self.ecritVariable('CritereConvergenceRelative')
1491             self.texteCuve += self.ecritVariable('CoefficientsVestale')
1492          if str(self.dico_mot["TypeConditionLimiteThermique"])=='Debit massique et temperature d injection de securite':
1493             self.texteCuve+="#"+"\n"
1494             self.texteCuve+="# Transitoire de temperature fluide locale : modele CREARE"+"\n"
1495             self.texteCuve+="#"+"\n"
1496             self.texteCuve += self.ecritVariable('VolumeMelange_CREARE')
1497             self.texteCuve += self.ecritVariable('VolumeMelange_CREARE_mess')
1498             self.texteCuve+="#"+"\n"
1499             self.texteCuve += self.ecritVariable('TemperatureInitiale_CREARE')
1500             self.texteCuve += self.ecritVariable('TemperatureInitiale_CREARE_mess')
1501             self.texteCuve+="#"+"\n"
1502             self.texteCuve += self.ecritVariable('SurfaceEchange_FluideStructure')
1503             self.texteCuve += self.ecritVariable('SurfaceEchange_FluideStructure_mess')
1504       else :
1505          self.texteCuve+="#"+"\n"
1506          self.texteCuve+="# instant (s) / temperature imposee du fluide (degC)"+"\n"
1507          self.texteCuve+="0.    286. "+"\n"
1508          self.texteCuve+="20.   20. "+"\n"
1509          self.texteCuve+="200.  7. "+"\n"
1510          self.texteCuve+="1000. 80. "+"\n"
1511          self.texteCuve+="CC"+"\n"
1512       self.texteCuve+="#"+"\n"
1513       self.texteCuve+="############################################################################################"+"\n"
1514
1515
1516    def imprime(self,nbdeColonnes,valeur):
1517       self.liste=[]
1518       self.transforme(valeur)
1519       i=0
1520       while i < len(self.liste):
1521           for k in range(nbdeColonnes) :
1522               self.texteCuve+=str(self.liste[i+k]) +"  "
1523           self.texteCuve+="\n"
1524           i=i+k+1
1525                
1526
1527    def transforme(self,valeur):
1528       for i in valeur :
1529           if type(i) == tuple :
1530              self.transforme(i)
1531           else :
1532              self.liste.append(i)
1533           
1534
1535
1536