Salome HOME
CCAR: Modification principale : ajout de la possibilité d'afficher les noms de
[tools/eficas.git] / Descartes / cata_descartes_new.py
1 # debut entete
2
3 import Accas
4 from Accas import *
5 #
6
7 JdC = JDC_CATA(code='DESCARTES',
8                execmodul=None,
9                niveaux=(NIVEAU(nom='Isotopes',label='Donnees des Isotopes ou molecules et Bibliotheques associees'),
10                         NIVEAU(nom='ChaineFiliationIsotopique',label='Chaines de filiation isotopique'),
11                         NIVEAU(nom='MaillagesEnergie',label='Maillages en energie'),
12                         NIVEAU(nom='DonneesNucleaires',label='Bibliotheques de donnees nucleaires et Fichiers'),
13                         NIVEAU(nom='Materiaux',label='Materiaux'),
14                         NIVEAU(nom='ElementsGeometriques',label='Elements geometriques elementaires'),
15                         NIVEAU(nom='Geometries',label='Geometries globales'),
16                         NIVEAU(nom='MaillagesSpatiaux',label='Maillages en espace'),
17                         NIVEAU(nom='ElementsTechnologiquesAssemblages',label='Elements technologiques des assemblages combustibles'),
18                         NIVEAU(nom='ElementsTechnologiquesReacteur',label='Elements technologiques des reacteurs'),
19                         NIVEAU(nom='AssemblagesReels',label='Assemblages combustibles reels'),
20                         NIVEAU(nom='ConditionsLimites',label='Conditions aux limites'),
21                         NIVEAU(nom='ParametresCalcul',label='Parametres des calculs'),
22                         NIVEAU(nom='SectionsEfficaces',label ='Bibliotheques de sections efficaces'),
23                         NIVEAU(nom='OptionsCodesCalcul',label='Options des codes de calcul'),
24                         NIVEAU(nom='ConfigurationInformatique',label='Choix des ressources informatiques'),
25                         NIVEAU(nom='DonneesDesAccidents',label ='Donnees des etudes d_accidents'),
26                         NIVEAU(nom='DonneesPilotage',label ='Donnees de pilotage du reacteur'),
27                         NIVEAU(nom='DonneesEtude',label ='Donnees des cas de l etude'),
28                         NIVEAU(nom='Operateurs',label ='Definition des operateurs de calcul'),
29                         NIVEAU(nom='Resultats',label ='Resultats des calculs'),
30                         NIVEAU(nom='ResultatsExperimentaux',label ='Resultats issus de mesures experimentales'),
31                         NIVEAU(nom='ResultatsAccidents',label ='Resultats issus de la simulation des accidents'),
32                         NIVEAU(nom='EtudeGenerale',label ="Cas d'etude et resultats")
33                        )
34               )
35
36 import string
37 #import lcm
38
39 class TObjet(ASSD):
40   def __init__(self,**args):
41     apply(ASSD.__init__,(self,),args)
42     name=string.ljust(self.__class__.__name__[:12],12)
43
44   def __getitem__(self,attrname):
45     return self.etape[attrname]
46
47   def db(self):
48     if hasattr(self,'_dbsun'):return self._dbsun
49     else:
50       self._dbsun={'t':1}
51       return self._dbsun
52
53   def putdb(self,o):
54     self._dbsun=o
55
56 #
57 # Definition des types d'objet qui seront produits par les commandes
58 # Il suffit de declarer une classe qui derive de la classe mere TObjet
59 # qui derive elle meme de la classe ASSD utilisee dans EFICAS
60 #
61 #     Isotopes
62 class Isotope                           (TObjet):pass
63 #     ChaineFiliationIsotopique
64 class ChaineFiliation                   (TObjet):pass
65 #     MaillagesEnergie
66 class BornesEnergie                     (TObjet):pass
67 #     DonneesNucleaires
68 class FichierBibliothequeIsotopes       (TObjet):pass
69 #     Materiaux
70 class Materiau                          (TObjet):pass
71 #     MaillagesSpatiaux
72 class Maillage1D                        (TObjet):pass
73 #     ElementsGeometriques
74 class Point                             (TObjet):pass
75 class Vecteur                           (TObjet):pass
76 class Droite                            (TObjet):pass
77 class Segment                           (TObjet):pass
78 class ArcCercle                         (TObjet):pass
79 class SecteurDisque                     (TObjet):pass
80 class Conique                           (TObjet):pass
81 class Triangle                          (TObjet):pass
82 class Rectangle                         (TObjet):pass
83 class Carre                             (TObjet):pass
84 class Hexagone                          (TObjet):pass
85 class Polygone                          (TObjet):pass
86 class Sphere                            (TObjet):pass
87 class BoiteRectangulaire                (TObjet):pass
88 class BoiteGenerale                     (TObjet):pass
89 class CylindreX                         (TObjet):pass
90 class CylindreY                         (TObjet):pass
91 class CylindreZ                         (TObjet):pass
92 class Cylindre                          (TObjet):pass
93 class Cone                              (TObjet):pass
94 class PrismeHexagonal                   (TObjet):pass
95 class Tore                              (TObjet):pass
96 class Plan                              (TObjet):pass
97 class PlanX                             (TObjet):pass
98 class PlanY                             (TObjet):pass
99 class PlanZ                             (TObjet):pass
100 class Polyedre                          (TObjet):pass
101 class Quadrique                         (TObjet):pass
102 class Orientation                       (TObjet):pass
103 class FormePositionnee                  (TObjet):pass
104 #     Geometries
105 class Cellule                           (TObjet):pass
106 class Cluster                           (TObjet):pass
107 class GeometrieSurfacique               (TObjet):pass
108 class GeometrieCombinatoire             (TObjet):pass
109 class Reseau                            (TObjet):pass
110 class DecompositionDomaines             (TObjet):pass
111 #     ElementsTechnologiquesAssemblages
112 class GrilleAssemblage                          (TObjet):pass
113 class PartieInferieureAssemblageCombustible     (TObjet):pass
114 class PartieSuperieureAssemblageCombustible     (TObjet):pass
115 class AssemblageType                            (TObjet):pass
116 class ElementBarre                              (TObjet):pass
117 class ElementsGrappeCommande                    (TObjet):pass
118 class ElementsAbsorbantsFixes                   (TObjet):pass
119 class GrappeBouchonAssemblage                   (TObjet):pass
120 #     AssemblagesReels
121 class AssemblageCombustibleReel         (TObjet):pass
122 class ReparationAssemblage              (TObjet):pass
123 class PenaliteAssemblage                (TObjet):pass
124 #class SystemeUnitesMesure              (TObjet):pass
125 #     ConditionsLimites
126 class Vide                              (TObjet):pass
127 class ReflexionIsotrope                 (TObjet):pass
128 class ReflexionSpeculaire               (TObjet):pass
129 class Albedo                            (TObjet):pass
130 class Translation                       (TObjet):pass
131 class Rotation                          (TObjet):pass
132 class SpecialeConditionLimite           (TObjet):pass
133 class GeneraleConditionLimite           (TObjet):pass
134 #     ElementsTechnologiquesReacteur
135 class CorrespondanceReperePositionReseau(TObjet):pass
136 class PositionAssemblageCombustible     (TObjet):pass
137 class PositionInstrumentationInterne    (TObjet):pass
138 class ImplantationGrappesCommande       (TObjet):pass
139 class StructuresInternesReacteur        (TObjet):pass
140 class PompePrimaire                     (TObjet):pass
141 class Pressuriseur                      (TObjet):pass
142 class GenerateurVapeur                  (TObjet):pass
143 class CaracteristiquesPalier            (TObjet):pass
144 class SiteNucleaire                     (TObjet):pass
145 #     ParametresCalcul
146 class EspaceVariations                  (TObjet):pass
147 class DonneesIrradiation                (TObjet):pass
148 class ConditionsFonctionnementMoyennes  (TObjet):pass
149 class ConditionsTransitoire             (TObjet):pass
150 class PositionAxialeGrappesCommande     (TObjet):pass
151 class ParametresCalculGestion           (TObjet):pass
152 #     SectionsEfficaces
153 class Macrolib                          (TObjet):pass
154 class SectionsReflecteur                (TObjet):pass
155 #     OptionsCodesCalcul
156 class OptionsAutoprotection             (TObjet):pass
157 class OptionsCodes                      (TObjet):pass
158 class OptionsCodeReseau                 (TObjet):pass
159 class OptionsCodeCoeurStatique          (TObjet):pass
160 class OptionsCodeCoeurCinetique         (TObjet):pass
161 class OptionsThermiqueThermohydraulique (TObjet):pass
162 class OptionsContreReactionsCoeur       (TObjet):pass
163 #     ConfigurationInformatique
164 class RessourcesInformatiques           (TObjet):pass
165 #     DonneesDesAccidents
166 class AccidentDilution                  (TObjet):pass
167 class AccidentRTV                       (TObjet):pass
168 class AccidentChuteGrappe               (TObjet):pass
169 class AccidentEjection                  (TObjet):pass
170 class CriteresSurete                    (TObjet):pass
171 class DonneesAccidents                  (TObjet):pass
172 #     DonneesPilotage
173 class ProlongationCampagne              (TObjet):pass
174 class DonneesPilotageGeneral            (TObjet):pass
175 class CalibrageGroupes                  (TObjet):pass
176 #     DonneesEtude
177 class DatesClesCampagne                 (TObjet):pass
178 class DonneesCasEtude                   (TObjet):pass
179 class DonneesAjustement                 (TObjet):pass
180 #     Resultats
181 class ResultatsGlobauxCoeur             (TObjet):pass
182 class ResultatFlux                      (TObjet):pass
183 class ResultatPuissances                (TObjet):pass
184 class ResultatIrradiations              (TObjet):pass
185 class ResultatActivites                 (TObjet):pass
186 class ResultatRadial                    (TObjet):pass
187 class ResultatAxial                     (TObjet):pass
188 class ResultatsCalculGestion            (TObjet):pass
189 class ResultatsEtude                    (TObjet):pass
190 #     ResultatsAccidents
191 class AccidentDilutionResultat          (TObjet):pass
192 class AccidentChuteGrappeResultat       (TObjet):pass
193 class AccidentEjectionResultat          (TObjet):pass
194 class AccidentsResultats                (TObjet):pass
195 #     ResultatsExperimentaux
196 class ActivitesExperimentales           (TObjet):pass
197 #     EtudeGenerale
198 class DictionnaireCasEtude              (TObjet):pass
199 # fin entete
200 # ----------------------------------------------------------------------------------------------------------------------------------
201 #  Classe ISOTOPE : Classe de definition d'un isotope ou d'une molecule
202 #                   Caracteristiques elementaires des isotopes ou molecules et liens avec les bibliotheques de donnees nucleaires
203 #                   Ces caracteristiques elementaires ne devraient pas apparaître dans ce type d'objet, mais etre recuperees directement
204 #                   dans la bibliotheque de donnees de base. La structure des APOLLIB n'etant pas simple d'acces, la solution
205 #                   adoptee permet de mettre a disposition ces informations de maniere simple. A revoir ulterieurement
206 #                   apres redefinition du contenu d'une bibliotheque de base.
207 #                   La decomposition en éléments chimiques simples est utile pour les calculs de type TRIPOLI, les données nucléaires
208 #                   étant définies parfois pour chaque élément et non pour la molécule (cas de l'eau par exemple)
209 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
210 ISOTOPE = OPER (nom="ISOTOPE", sd_prod=Isotope, op=0, niveau = 'Isotopes',
211   fr  = "Definition d'un isotope ou d'une molecule et de ses bibliotheques",
212   ang = "Isotope or Molecule definition and data libraries",
213   Symbole                = SIMP (typ='TXM',statut='o',fr="Symbole de l'isotope ou de la molecule"),
214   MasseAtomique          = SIMP (typ='R',  statut='o',fr="Masse atomique en uma"),
215   NombreDeCharge         = SIMP (typ='I',  statut='o',fr="Nombre de charge atomique Z"),
216   NombreDeMasse          = SIMP (typ='I',  statut='o',fr="Nombre de masse atomique A"),
217   Type                   = SIMP (typ='TXM',statut='f',into=('Standard','Detecteur','Structure','Poison'),fr="Type de l'isotope"),
218   NomsBibliotheque       = NUPL (max = '**', statut = 'o',fr="Association Procedure Bibliotheque et Nom isotope dans le Fichier",
219                                  elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"),
220                                               SIMP (typ='TXM',fr="Identifiant de l'isotope dans la bibliotheque"))),
221   NomsBiblioAutoprotegee = NUPL (max = '**', statut = 'f',
222                                  elements = ( SIMP (typ='TXM',fr="Identificateur Procedure Bibliotheque"),
223                                               SIMP (typ='TXM',fr="Identifiant Bibliotheque autoprotegee de l'isotope"))),
224   ComposantsElementaires = SIMP (typ=Isotope, max = '**', statut = 'f',
225                                  fr="Liste des elements chimiques composant la molecule")
226  ) ;
227 # ----------------------------------------------------------------------------------------------------------------------------------
228 #  Classe BORNES_ENERGIE : Classe de definition des limites en energie d'un maillage multigroupe
229 #                          Objets utilises pour la définition du maillage des bibliothèques de base
230 #                          ou des macro-groupes d'énergie de condensation des sections efficaces sur le flux détaillé
231 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
232 BORNES_ENERGIE = OPER (nom="BORNES_ENERGIE", sd_prod=BornesEnergie, op=0, niveau = 'MaillagesEnergie',
233     fr  = "Definition d'une discretisation de l'espace energetique",
234     ang = "Definition of an energy discretisation",
235     NbMacrogroupes     = SIMP (statut='o',typ='I',          fr="Nombre de macrogroupes du maillage energetique"),
236     BornesEnergetiques = SIMP (statut='o',typ='R',max='**',fr="Bornes en energie (MeV) du maillage energetique"),
237  ) ; # Fin BORNES_ENERGIE
238 # ----------------------------------------------------------------------------------------------------------------------------------
239 #  Classe MAILLAGE_1D : Classe de definition d'un maillage spatial 1D : 4 possiblilites de definition :
240 #  1 et 2) Equidistant et Equivolumique : Largeur totale a fournir
241 #       3) Liste des dimensions des mailles
242 #       4) Abscisse initiale et couples (Nb sous-pas, Abscisse suivante)
243 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
244 MAILLAGE_1D = OPER (nom="MAILLAGE_1D", sd_prod=Maillage1D, op=0, niveau = 'MaillagesSpatiaux',
245     fr  = "Definition d'une discretisation d'un espace 1D",
246     ang = "Definition of a 1D spatial discretisation",
247     ModeDefinition  = SIMP (typ='TXM',statut='o',defaut='LargeurMaille',into=('Equidistant','Equivolumique','LargeurMaille','SousMaille'),
248                             fr="Mode de definition du maillage"),
249     NbMailles       = SIMP (typ='I',statut='o',fr="Nombre de mailles de discretisation"),
250     BlocEqui        = BLOC (condition = "ModeDefinition=='Equidistant' or ModeDefinition=='Equivolumique'",
251                             DimensionTotale = SIMP (typ='R',statut='o',fr="Largeur totale du maillage en cm")
252                             ),
253     BlocMailles     = BLOC (condition = "ModeDefinition=='LargeurMaille'",
254                             LargeursMailles = SIMP (typ='R',max='**',statut='o',fr="Largeurs des mailles en cm")
255                              ),
256     BlocSousMailles = BLOC (condition = "ModeDefinition=='SousMaille'",
257                             SousMailles = SIMP (typ=('I','R'),max='**',statut='o',fr="Abscisse initiale et couples (Nb sous-pas, Abscisse suivante)")
258                             )
259     ) ; # Fin MAILLAGE_1D
260 # -----------------------------------------------------------------------------------------------------------------------------------
261 #  Classe FICHIER_BIBLIOTHEQUE_ISOTOPES : Classe de definition des fichiers des bibliotheques des donnees nucleaires d'isotopes ou de molecules
262 #                                         Noms et formats des fichiers d'isotopes suivant le systeme d'exploitation
263 #                                         Dans le cas de TRIPOLI 4, on fournit le nom du dictionnaire ou se trouve la description des
264 #                                         isotopes disponibles pour le code et le chemin d'accès aux fichiers de sections de ces isotopes
265 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
266 FICHIER_BIBLIOTHEQUE_ISOTOPES = OPER (nom="FICHIER_BIBLIOTHEQUE_ISOTOPES", sd_prod=FichierBibliothequeIsotopes, op=0, niveau = 'DonneesNucleaires',
267   fr  = "Definition d'une bibliotheque de donnees nucleaires des isotopes",
268   ang = "Definition of a nuclear data isotope library",
269   Description = SIMP (typ='TXM',statut='o',fr="Identificateur Bibliotheque ou Dictionnaire"),
270   Fichiers    = FACT (max='**', statut='o',fr="Donnee des fichiers associes a la bibliotheque et du maillage energetique",
271                       SystemeExploitation  = SIMP (typ='TXM',statut='o',fr="Systeme d'exploitation du reseau informatique"),
272                       NomFichier           = SIMP (typ='TXM',statut='o',fr="Nom du fichier de la bibliotheque de donnees de base"),
273                       FormatFichier        = SIMP (typ='TXM',statut='o',fr="Format du fichier"),
274                       BornesEnergetiques   = SIMP (typ=BornesEnergie,statut='o',fr="Bornes en MeV du maillage en energie")
275                      )
276   ) ; # Fin FICHIER_BIBLIOTHEQUE_ISOTOPES
277 # -----------------------------------------------------------------------------------------------------------------------------------
278 #  Classe CHAINE_FILIATION : Classe de definition des filiations isotopiques dues aux transmutations
279 #                            sous irradiation neutronique.
280 #                            Description textuelle sous format (APOLLO2, SUNSET ou DARWIN)
281 #                            ou description particuliere des filiations.
282 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
283 CHAINE_FILIATION = OPER (nom="CHAINE_FILIATION", op=0, sd_prod=ChaineFiliation, niveau = 'ChaineFiliationIsotopique',
284   fr              = "Definition d'une chaine de filiation isotopique sous irradiation",
285   ang             = "Definition of a depletion chain",
286   NombreIsotopes  = SIMP (typ='I'  ,statut='o',fr="Nombre d'isotopes decrits dans la chaine"),
287   ChaineAPOLLO2   = SIMP (typ='TXM',statut='f',fr="Description de la chaine sous format APOLLO2"),
288   ChaineSUNSET    = SIMP (typ='TXM',statut='f',fr="Description de la chaine sous format SUNSET"),
289   ChaineDARWIN    = SIMP (typ='TXM',statut='f',fr="Nom du fichier contenant la description DARWIN de la chaine"),
290   ListeIsotopes   = FACT (max = '**',statut = 'f',
291                           Isotope = SIMP (typ=Isotope,fr="Nom de l'isotope",statut='o'),
292                           Peres   = FACT (max = '**',statut = 'o',
293                                           IsotopePere        = SIMP (statut='o',typ=Isotope,fr="Nom de l'isotope pere"),
294                                           TypeReaction       = SIMP (statut='o',typ='TXM'  ,fr="Type de reaction nucleaire",
295                                                                      into=('nGamma','n2n','n3n','n4n','np','nalpha')),
296                                           RapportBranchement = SIMP (statut='o',typ='R'    ,fr="Rapport de branchement",defaut=1.)
297                                          )
298                          )
299  ) ; # Fin CHAINE_FILIATION
300 # regles = (UN_PARMI ('ChaineAPOLLO2','ChaineSUNSET','ChaineDARWIN','ListeIsotopes'),),
301 # -----------------------------------------------------------------------------------------------------------------------------------
302 #  Classe MATERIAU : Classe de définition d'un matériau à partir de mélange d'isotopes ou de matériaux.
303 #                    Définition alternative par donnée des enrichissements (Possibilités limitées aux combustibles UO2, MOX, Gd)
304 #                    Caractéristiques fournies a 20 C.
305 #                    Proprietes thermiques et thermomécaniques éventuelles
306 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
307 MATERIAU = OPER(nom="MATERIAU", op=0, sd_prod=Materiau, niveau = 'Materiaux',
308   fr  = "Definition d'un materiau",
309   ang = "Definition of a mixture",
310   TypeDefinition       = SIMP (typ='TXM',statut='o',defaut="Isotopique",into=("Isotopique","Enrichissement")),
311   TypeMateriau         = SIMP (statut = 'o', typ = 'TXM',     
312                                into   = ('Combustible','Absorbant','Melange','ModerateurInterne','ModerateurExterne','Detecteur',
313                                          'Grille','Gaine','Tube','Poison','PoisonConsommable','AbsorbantIntegre',
314                                          'CoucheCorrosion','Solide','Liquide','Gaz','MateriauVide'),
315                                defaut = 'Combustible'),
316   BlocIsotopique       = BLOC (condition = "TypeDefinition=='Isotopique'",
317                                MethodeMelange = SIMP (statut   = 'o',typ='TXM',into=('Isotopique','Massique','Concentration'),defaut='Massique'),
318                                Constituants   = NUPL (statut   = 'o', max = '**',
319                                                       fr       = "Couples (Isotope ou Materiau) et (Pourcentage ou Concentration)",
320                                                       elements = (SIMP (typ=(Isotope,Materiau),fr="Isotope ou Materiau constituant"),
321                                                                   SIMP (typ='R',fr="Pourcentage % ou Concentration 10E24 de l'isotope ou du materiau"))
322                                                       )
323                                ),
324   BlocEnrichissement   = BLOC (condition = "TypeDefinition=='Enrichissement'",
325         Type                 = SIMP (typ='TXM',into=('UO2','MOX','UO2Gadolinium','MOXGadolinium'),statut='o',defaut='UO2',fr="Type de combustible"),
326         U235Enrichissement   = SIMP (typ='R',defaut=3.7,statut='o',val_min=0.,val_max=100.,
327                                      fr="Enrichissement % en U235 du combustible"),
328         TeneurU234Naturel    = SIMP (typ='R',defaut=110.,statut='f',fr="Teneur (ppm) en U234 de l'uranium naturel"),
329         DonneesGado          = BLOC (condition = "Type=='UO2Gadolinium' or Type=='MOXGadolinium'",
330                                      EnrichissementGado   = SIMP (typ=('R','TXM'),defaut=8.,statut='o',fr="Enrichissement % en Gd2O3 du combustible")),
331         DonneesMOX           = BLOC (condition = "Type=='MOX' or Type=='MOXGadolinium'",
332                                      PuEnrichissement     = SIMP (typ=('R','TXM'),defaut=5.3,statut='o',val_min=0.,val_max=100.,
333                                                                   fr="Enrichissement % en plutonium du combustible"),
334                                      VecteurPu            = FACT (statut='o',fr="Definition du vecteur isotopique du plutonium",
335                                                                   Pu238PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu238"),
336                                                                   Pu239PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu239"),
337                                                                   Pu240PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu240"),
338                                                                   Pu241PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu241"),
339                                                                   Pu242PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Pu242"),
340                                                                   Am241PourcentageMassique = SIMP (typ='R',statut='o',fr="Pourcentage Massique en Am241"),
341                                                                  ),
342                                      DateReference        = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de reference du combustible"),
343                                      DateDivergence       = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de divergence du reacteur ou ce combustible est charge"),
344                                      VieillissementJours  = SIMP (typ='R',defaut = 0.,statut = 'f',
345                                                                   fr = "Nbre de jours de vieillissement du combustible, calculable si on donne DateDivergence")
346                                      )
347                               ),
348   TauxEvidement        = SIMP (statut='f',typ='R',fr="Taux % d'evidement du materiau"),
349   TauxPorosite         = SIMP (statut='f',typ='R',fr="Taux % de porosite du materiau"),
350   Temperature          = SIMP (statut='f',typ='R',fr="Temperature en Celsius du materiau"),
351   PlenumGaz            = SIMP (statut='f',typ=(Isotope,Materiau),defaut='HE4',fr="Gaz de remplissage des evidements du materiau solide et dans le plenum"),
352 # PlenumGaz            = SIMP (statut='f',typ=(Isotope,Materiau),fr="Gaz de remplissage des evidements du materiau solide et dans le plenum"),
353   PressionPlenumGaz    = SIMP (statut='f',typ='R',defaut=32.,fr="Pression en bars du gaz de remplissage des evidements et dans le plenum"),
354   Chaine               = SIMP (statut='f',typ=ChaineFiliation,defaut='ChaineSaturee',fr="Chaine de filiation isotopique associee au materiau"),
355   TauxImpuretes        = SIMP (statut='f',typ='R',fr="Taux % d'impuretes"),
356   ChaleurSpecifiquePressionCte  = SIMP (statut='f',typ='R',fr="Chaleur Specifique a Pression Constante J/(kg.C)"),
357   ConductiviteThermique = SIMP (statut='f',typ='R',fr="Conductivite Thermique W/(cm.C)"),
358   MateriauGazBloc       = BLOC (condition = "TypeMateriau=='Gaz'",
359                                 GazLongueurExtrapolation = SIMP (statut='f',typ='R',fr="Longueur Extrapolation en cm"),
360                                 GazPression              = SIMP (statut='f',typ='R',fr="Pression du gaz en bars")
361                                ),
362   MateriauLiquideBloc   = BLOC (condition = "TypeMateriau in ('Liquide','ModerateurInterne','ModerateurExterne')",
363                                 RoLiquide             = SIMP (statut='f',typ='R',fr="Masse volumique theorique du liquide g/cm3"),
364                                 PressionLiquide       = SIMP (statut='f',typ='R',fr="Pression du liquide en bars"),
365                                 EbullitionTemperature = SIMP (statut='f',typ='R',fr="Temperature Ebullition en Celsius"),
366                                 EbullitionPression    = SIMP (statut='f',typ='R',fr="Pression Ebullition en bars")
367                                ),
368   MateriauSolideBloc    = BLOC (condition = "TypeMateriau not in ('Liquide','ModerateurInterne','ModerateurExterne','Gaz','MateriauVide')",
369                                 RoSolide           = SIMP (statut='f',typ='R',fr="Masse volumique theorique du materiau g/cm3"),
370                                 DilatationLineaire = SIMP (statut='f',typ='R',fr="Coefficient de dilatation thermique lineaire cm/C du materiau"),
371                                 LimiteElastique    = SIMP (statut='f',typ='R',fr="Limite Elastique en Pa"),
372                                 Fluence            = SIMP (statut='f',typ='R',fr="Fluence subie par le materiau en n/cm2"),
373                                 Emissivite         = SIMP (statut='f',typ='R',fr="Valeur d'emissivite"),
374                                 ModuleYoung        = SIMP (statut='f',typ='R',fr="Module d'Young en Pa"),
375                                 CoefficientPoisson = SIMP (statut='f',typ='R',fr="Coefficient de Poisson"),
376                                 RugositeSurface    = SIMP (statut='f',typ='R',fr="Rugosite de Surface en cm")
377                                )
378  ) ; # Fin MATERIAU
379 # ==================================================================================================================================
380 #                                    Definition des Classes elementaires pour la geometrie
381 # ==================================================================================================================================
382 #  Classe POINT : Classe de definition d'un point de l'espace
383 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
384 POINT = OPER (nom="POINT", op=0, sd_prod=Point, niveau = 'ElementsGeometriques',
385   fr  = "Definition d'un point de l'espace",
386   ang = "Definition of a point in space",
387   Coordonnees = SIMP (typ='R',min=2,max=3,statut='o',fr="Coordonnees du point dans l'espace")
388  ) ;# Fin POINT
389 # -----------------------------------------------------------------------------------------------------------------------------------
390 #  Classe VECTEUR : Classe de definition d'un vecteur dans l'espace
391 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
392 VECTEUR = OPER (nom="VECTEUR", op=0, sd_prod=Vecteur, niveau = 'ElementsGeometriques',
393   fr  = "Definition d'un vecteur dans l'espace",
394   ang = "Definition of a vector in space",
395   regles = (UN_PARMI ('Composantes','Points'),),
396   Composantes = SIMP (typ='R'  ,min=2,max=3,statut='f',fr="Composantes du vecteur en 2D ou 3D"),
397   Points      = SIMP (typ=Point,min=2,max=2,statut='f',fr="Vecteur defini par deux points")
398  ) ; # Fin VECTEUR
399 # -----------------------------------------------------------------------------------------------------------------------------------
400 #  Classe DROITE : Classe de definition d'une droite
401 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
402 DROITE = OPER (nom="DROITE", op=0, sd_prod=Droite, niveau = 'ElementsGeometriques',
403   fr  = "Definition d'une droite par 2 POINTs, 1 POINT et 1 VECTEUR, ou Equation ax + by + cz + d = 0",
404   ang = "Definition of a straight line by 2 POINTs or through an Equation ax + by + cz + d = 0",
405   regles   = (UN_PARMI ('Points','Equation','VecteurOrigine'),),
406   Points   = SIMP (typ=Point,min=2,max=2,statut='f',fr="Deux points de definition de la droite"),
407   Equation = SIMP (typ='R'  ,min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation d'une droite"),
408   VecteurOrigine = FACT (statut='f',
409                          Vecteur  = SIMP (typ=Vecteur,statut='o',fr="Donnee du vecteur directeur de la droite"),
410                          Origine  = SIMP (typ=Point  ,statut='o',fr="Donnee d'un point de passage de la droite"))
411  ) ; # Fin DROITE
412 # -----------------------------------------------------------------------------------------------------------------------------------
413 #  Classe SEGMENT : Classe de definition d'un segment (Idem DROITE + Longueur et Origine)
414 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
415 SEGMENT = OPER (nom="SEGMENT", op=0, sd_prod=Segment, niveau = 'ElementsGeometriques',
416   fr  = "Definition d'un segment 2 Points ou Origine + ((Longueur + Equation ax + by + d = 0) ou vecteur)",
417   ang = "Definition of a segment ax + by + cz + d = 0",
418   regles   = (UN_PARMI ('Points','Equation','Vecteur'),),
419   Points   = SIMP (typ=Point,min=2,max=2,statut='f',fr="Deux points de definition du segment"),
420   Equation = FACT (statut='f',fr="Donnee du segment par son equation, sa longueur et son origine",
421                    Coefficients = SIMP (typ='R'  ,min=2,max=4,statut='o',fr="Coefficients successifs abcd de l'equation de la droite"),
422                    Longueur     = SIMP (typ='R',              statut='o',fr="Longueur du segment en cm"),
423                    Origine      = SIMP (typ=Point,            statut='o',fr="Donnee de l'origine du segment")
424                    ),
425   Vecteur  = FACT (statut='f',fr="Donnee du segment par un vecteur, sa longueur et son origine",
426                    Vecteur      = SIMP (typ=Vecteur,min=2,max=4,statut='o',fr="Coefficients successifs abcd de l'equation de la droite"),
427                    Longueur     = SIMP (typ='R',                statut='o',fr="Longueur du segment en cm"),
428                    Origine      = SIMP (typ=Point,              statut='o',fr="Donnee de l'origine du segment")
429                    )
430  ) ; # Fin SEGMENT
431 # -----------------------------------------------------------------------------------------------------------------------------------
432 #  Classe ARC_CERCLE : Classe de definition d'un arc de cercle
433 #                      Angles donnes en degres
434 #                      Dans le cas 2D on peut positionner l'arc de cercle en donnant l'angle du debut de l'arc par rapport a l'axe Ox
435 #                      Dans le cas 3D on donne en plus la hauteur et l'axe directeur de l'arc
436 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
437 ARC_CERCLE = OPER (nom="ARC_CERCLE", op=0, sd_prod=ArcCercle, niveau = 'ElementsGeometriques',
438   fr  = "Definition d'un arc de cercle",
439   ang = "Definition of a circular arc",
440   Type       = SIMP (typ='TXM'  ,statut='o',defaut='2D',into=('2D','3D'), fr="Type d'arc 2D ou 3D"),
441   Rayon      = SIMP (typ='R'    ,statut='o',                              fr="Rayon de l'arc de cercle en cm"),
442   Angles     = SIMP (typ='R'    ,statut='f',max=2,defaut=(360.,0.),       fr="Angles en degres de l'arc : Total et Debut"),
443   VecteurAxe = SIMP (typ=Vecteur,statut='f',                              fr="Vecteur directeur de l'axe de l'arc")
444  ) ; # Fin ARC_CERCLE
445 # -----------------------------------------------------------------------------------------------------------------------------------
446 #  Classe SECTEUR_DISQUE : Classe de definition d'un disque ou d'un secteur d'une couronne circulaire
447 #                          Angle du secteur donne en degres (360° par defaut)
448 #                          Dans le cas 2D on peut positionner le secteur en donnant l'angle du debut de secteur par rapport a l'axe Ox
449 #                          Dans le cas 3D on donne en plus la hauteur et l'axe directeur du secteur
450 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
451 SECTEUR_DISQUE = OPER (nom="SECTEUR_DISQUE", op=0, sd_prod=SecteurDisque, niveau = 'ElementsGeometriques',
452   fr  = "Definition d'un disque ou d'un secteur d'une couronne",
453   ang = "Definition of a circular sector",
454   Type       = SIMP (typ='TXM'  ,statut='o',into=('2D','3D'),defaut='2D',fr="Type de secteur 2D ou 3D"),
455   Rayons     = SIMP (typ='R'    ,statut='o',min=2,max=2,                 fr="Rayons interne et externe de la couronne en cm"),
456   Angles     = SIMP (typ='R'    ,statut='f',max=2,defaut=(360.,0.),      fr="Angles en degres du secteur"),
457   Hauteur    = SIMP (typ='R'    ,statut='f',defaut=0.,                   fr="Hauteur du secteur en cm"),
458   VecteurAxe = SIMP (typ=Vecteur,statut='f',defaut=0.,                   fr="Vecteur directeur de l'axe du secteur")
459  ) ;  # Fin SECTEUR_DISQUE
460 # -----------------------------------------------------------------------------------------------------------------------------------
461 #  Classe CONIQUE : Classe de definition d'une conique 2D
462 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
463 CONIQUE = OPER (nom="CONIQUE", op=0, sd_prod=Conique, niveau = 'ElementsGeometriques',
464   fr  = "Definition d'une conique 2D ax2+by2+cxy+dx+ey+f=0",
465   ang = "Definition of a 2D quadratic curve ax2+by2+cxy+dx+ey+f=0",
466   Equation = SIMP (typ='R',min=2,max=6,statut='o',fr="Coefficients successifs abcdef de l'equation d'une conique")\r
467   ) ; # Fin CONIQUE
468 # -----------------------------------------------------------------------------------------------------------------------------------
469 #  Classe TRIANGLE : Classe de definition d'un triangle
470 #                    Angles donnes en degres par rapport a l'axe Ox horizontal
471 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
472 TRIANGLE = OPER (nom="TRIANGLE", op=0, sd_prod=Triangle, niveau = 'ElementsGeometriques',
473   fr  = "Definition d'un triangle",
474   ang = "Definition of a triangle",
475   regles = (UN_PARMI ('Points','AngleCotes'),),
476   Points     = SIMP (typ=Point,min=3,max=3,statut='f',fr="Donnee des 3 sommets du triangle"),
477   AngleCotes = SIMP (typ='R'  ,min=3,max=3,statut='f',fr="Donnee d'un Angle en degres et Longueurs de deux cotes en cm")
478  ) ;  # Fin TRIANGLE
479 # -----------------------------------------------------------------------------------------------------------------------------------
480 #  Classe RECTANGLE : Classe de definition d'un rectangle
481 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
482 RECTANGLE = OPER (nom="RECTANGLE", op=0, sd_prod=Rectangle, niveau = 'ElementsGeometriques',
483   fr  = "Definition d'un rectangle",
484   ang = "Definition of a rectangle",
485   regles = (UN_PARMI ('Points','Cotes'),),
486   Points = SIMP (typ=Point,min=3,max=3,statut='f',fr="Definition du rectangle par trois points"),
487   LongueursCotes  = SIMP (typ='R'  ,min=2,max=2,statut='f',fr="Donnee de la longueur de deux cotes en cm")
488    ) ; # Fin RECTANGLE
489 # -----------------------------------------------------------------------------------------------------------------------------------
490 #  Classe CARRE : Classe de definition d'un carre
491 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
492 CARRE = OPER (nom="CARRE", op=0, sd_prod=Carre, niveau = 'ElementsGeometriques',
493   fr  = "Definition d'un carre",
494   ang = "Definition of a square",
495   regles = (UN_PARMI ('Points','Cote'),),
496   Points = SIMP (typ=Point,min=2,max=2, statut='f',fr="Definition du carre par deux points"),
497   LongueurCote   = SIMP (typ='R',       statut='f',fr="Donnee de la longueur du cote du carre en cm")
498  ) ;  # Fin CARRE
499 # -----------------------------------------------------------------------------------------------------------------------------------
500 #  Classe HEXAGONE : Classe de definition d'un hexagone
501 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
502 HEXAGONE = OPER (nom="HEXAGONE", op=0, sd_prod=Hexagone, niveau = 'ElementsGeometriques',
503   fr  = "Definition d'un hexagone",
504   ang = "Definition of an hexagon",
505   Rayon = SIMP (typ='R',statut='f',fr="Rayon du cercle inscrit dans l'hexagone en cm")
506  ) ;  # Fin HEXAGONE
507 # -----------------------------------------------------------------------------------------------------------------------------------
508 #  Classe POLYGONE : Classe de definition d'un polygone
509 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
510 POLYGONE = OPER (nom="POLYGONE", op=0, sd_prod=Polygone, niveau = 'ElementsGeometriques',
511   fr  = "Definition d'un polygone",
512   ang = "Definition of a polygon",
513   Points = SIMP (typ=Point,max='**',statut='f',fr="Definition d'un polygone par tous ses points")
514  ) ;   # Fin POLYGONE
515 # ==================================================================================================================================
516 #            Definition des Classes pour une geometrie 3D : Elements geometriques combinatoires ou surfaciques
517 # L'utilisation de certaines classes de combinatoire en surfacique consiste a simplement specifier la position de l'objet
518 # ou a eliminer certaines surfaces limites de la classe
519 # Pour une sphere : donnee du centre de la sphere
520 # Pour un cylindre : Pas de donnee de la hauteur, mais donnee d'un point de l'axe du cylindre
521 # ==================================================================================================================================
522 # -----------------------------------------------------------------------------------------------------------------------------------
523 #  Classe SPHERE : Classe de definition d'une sphere (ou d'une sphere sectorisee ou decoupee en rondelles)
524 #                  Des portions de la sphere peuvent etre selectionnees en donnant leurs cotes limites sur un axe de la sphere
525 #                  (origine de l'axe au centre de la sphere, donc cotes comprises entre -R, +R si R est le rayon de la sphere)
526 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
527 SPHERE = OPER (nom="SPHERE", op=0, sd_prod=Sphere, niveau = 'ElementsGeometriques',
528   fr  = "Definition d'une forme spherique",
529   ang = "Definition of a spherical form",
530   Rayon           = SIMP (typ='R',statut='o',fr="Rayon de la sphere en cm"),
531   Secteur         = SIMP (typ='R',statut='f',fr="Angle du secteur de la sphere en degre"),
532   TranchesAxiales = NUPL (max = '**', statut = 'f', fr = "Limites des tranches axiales de la sphere sectorisee",
533                           elements = (  SIMP (typ='R',statut = 'o', fr="Cote depart de la tranche"),
534                                         SIMP (typ='R',statut = 'o', fr="Cote finale de la tranche")))
535  ) ;  # Fin SPHERE
536 # -----------------------------------------------------------------------------------------------------------------------------------
537 #  Classe BOITE_RECTANGULAIRE : Classe de definition d'une forme parallelepipedique de cotes paralleles aux axes de reference
538 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
539 BOITE_RECTANGULAIRE = OPER (nom="BOITE_RECTANGULAIRE", op=0, sd_prod=BoiteRectangulaire, niveau = 'ElementsGeometriques',
540   fr  = "Definition d'une d'une forme parallelepipedique rectangulaire",
541   ang = "Definition of a rectangular box form",
542   Cotes = SIMP (typ='R',min=3,max=3,statut='o',fr="Longueurs des Cotes de la boite rectangulaire en cm")
543  ) ;  # Fin BOITE_RECTANGULAIRE
544 # -----------------------------------------------------------------------------------------------------------------------------------
545 #  Classe BOITE_GENERALE : Classe de definition d'une forme parallelepipedique quelconque
546 #        Le plan de base de la boite doit etre le plan xOy. On donne donc uniquement les 2 vecteurs **normaux**
547 #        aux 2 autres plans, et les 3 longueurs des aretes principales.
548 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
549 BOITE_GENERALE = OPER (nom="BOITE_GENERALE", op=0, sd_prod=BoiteGenerale, niveau = 'ElementsGeometriques',
550   fr  = "Definition d'une forme parallelepipedique quelconque",
551   ang = "Definition of a general box form",
552   VecteursDirecteurs = SIMP (typ=Vecteur,min=2,max=2,statut='o',fr="Vecteurs normaux aux faces non horizontales de la boite"),
553   Cotes              = SIMP (typ='R'    ,min=3,max=3,statut='o',fr="Longueurs des Cotes de la boite en cm")
554  ) ;  # Fin BOITE_GENERALE
555 # -----------------------------------------------------------------------------------------------------------------------------------
556 #  Classe CYLINDRE_X : Classe de definition d'une forme cylindrique d'axe parallele a Ox
557 #         Pour tous les cylindres, la donnee de deux rayons transforme le cylindre circulaire en cylindre elliptique
558 #         La donnee d'un angle limite le cylindre a ce secteur
559 #         Pour un secteur d'un cylindre elliptique, il est necessaire de donner en plus l'angle de depart du secteur
560 #         par rapport a l'axe majeur de l'ellipse
561 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
562 CYLINDRE_X = OPER (nom="CYLINDRE_X", op=0, sd_prod=CylindreX, niveau = 'ElementsGeometriques',
563   fr  = "Definition d'une forme cylindrique d'axe parallele a Ox",
564   ang = "Definition of a right cylinder form // Ox",
565   Rayons  = SIMP (typ='R', max=2, statut='o', fr="Rayons mineur et majeur du cylindre X en cm"),
566   Hauteur = SIMP (typ='R',        statut='f', fr="Hauteur du cylindre X en cm"),
567   Angles  = SIMP (typ='R', max=2, statut='f', fr="Angles du secteur du cylindre X en degres")
568  ) ;  # Fin CYLINDRE_X
569 # -----------------------------------------------------------------------------------------------------------------------------------
570 #  Classe CYLINDRE_Y : Classe de definition d'une forme cylindrique d'axe parallele a Oy
571 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
572 CYLINDRE_Y = OPER (nom="CYLINDRE_Y", op=0, sd_prod=CylindreY, niveau = 'ElementsGeometriques',
573   fr  = "Definition d'une forme cylindrique d'axe parallele a Oy",
574   ang = "Definition of a right cylinder form // Oy",
575   Rayons  = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre Y en cm"),
576   Hauteur = SIMP (statut='f',typ='R',      fr="Hauteur du cylindre Y en cm"),
577   Angles  = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre Y en degres")
578  ) ;  # Fin CYLINDRE_Y
579 # -----------------------------------------------------------------------------------------------------------------------------------
580 #  Classe CYLINDRE_Z : Classe de definition d'une forme cylindrique d'axe parallele a Oz
581 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
582 CYLINDRE_Z = OPER (nom="CYLINDRE_Z", op=0, sd_prod=CylindreZ, niveau = 'ElementsGeometriques',
583   fr  = "Definition d'une forme cylindrique d'axe parallele a Oz",
584   ang = "Definition of a right cylinder form // Oz",
585   Rayons  = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre Z en cm"),
586   Hauteur = SIMP (statut='f',typ='R',      fr="Hauteur du cylindre Z en cm"),
587   Angles  = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre Z en degres")
588  ) ;  # Fin CYLINDRE_Z
589 # -----------------------------------------------------------------------------------------------------------------------------------
590 #  Classe CYLINDRE : Classe de definition d'une forme cylindrique quelconque
591 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
592 CYLINDRE = OPER (nom="CYLINDRE", op=0, sd_prod=Cylindre, niveau = 'ElementsGeometriques',
593   fr  = "Definition d'une forme cylindrique quelconque",
594   ang = "Definition of a general cylinder form",
595   Rayons     = SIMP (statut='o',typ='R',max=2,fr="Rayons mineur et majeur du cylindre en cm"),
596   VecteurAxe = SIMP (statut='o',typ=Vecteur,  fr="Vecteur directeur de l'axe du cylindre"),
597   Hauteur    = SIMP (statut='f',typ='R',      fr="Hauteur du cylindre en cm"),
598   Angles     = SIMP (statut='f',typ='R',max=2,fr="Angles du secteur du cylindre en degres")
599  ) ;  # Fin CYLINDRE
600 # -----------------------------------------------------------------------------------------------------------------------------------
601 #  Classe CONE : Classe de definition d'un forme conique
602 #           Une portion de cone peut etre definie en donnant les cotes axiales (origine de l'axe du cone au sommet du cone) de
603 #           la zone retenue
604 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
605 CONE = OPER (nom="CONE", op=0, sd_prod=Cone, niveau = 'ElementsGeometriques',
606   fr  = "Definition d'une forme conique",
607   ang = "Definition of a conic form",
608   DemiAngleSommet = SIMP (statut='o',typ='R',            fr="Demi-angle au sommet en degres"),
609   LimitesAxiales  = SIMP (statut='f',typ='R',min=2,max=2,fr="Limites axiales du cone"),
610   VecteurAxe      = SIMP (statut='o',typ=Vecteur,        fr="Vecteur directeur de l'axe du cone")
611  ) ;  # Fin CONE
612 # -----------------------------------------------------------------------------------------------------------------------------------
613 #  Classe PRISME_HEXAGONAL : Classe de definition d'une forme de prisme hexagonal 3D
614 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
615 PRISME_HEXAGONAL = OPER (nom="PRISME_HEXAGONAL",op=0,sd_prod=PrismeHexagonal,
616                            niveau = 'ElementsGeometriques',
617   fr  = "Definition d'une forme de prisme hexagonal 3D",
618   ang = "Definition of a 3D hexagonal form",
619   Rayon      = SIMP (statut='o',typ='R',    fr="Rayon du cercle circonscrit (=cote de l'hexagone) en cm"),
620   Hauteur    = SIMP (statut='f',typ='R',    fr="Hauteur de l'hexagone en cm"),
621   VecteurAxe = SIMP (statut='o',typ=Vecteur,fr="Vecteur directeur de l'axe de l'hexagone")
622  ) ;  # Fin PRISME_HEXAGONAL
623 # -----------------------------------------------------------------------------------------------------------------------------------
624 #  Classe TORE : Classe de definition d'une forme toroidale
625 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
626 TORE = OPER (nom="TORE",op=0,sd_prod=Tore,
627                niveau = 'ElementsGeometriques',
628   fr  = "Definition d'une forme toroidale",
629   ang = "Definition of a toroidal form",
630   Rayons = SIMP (typ='R',min=2,max=2,statut='o',
631                  fr="Rayons du tore : 1/2 distance a l'axe et rayon de la section du tore en cm")
632  ) ;  # Fin TORE
633 # ==================================================================================================================================
634 #               Definition des Classes pour une geometrie 3D : Elements geometriques surfaciques
635 # ==================================================================================================================================
636 # ----------------------------------------------------------------------------------------------------------------------------------
637 #  Classe PLAN : Classe de definition d'un plan
638 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
639 PLAN = OPER (nom="PLAN", op=0, sd_prod=Plan, niveau = 'ElementsGeometriques',
640   fr  = "Definition d'un plan ax + by + cz + d = 0",
641   ang = "Definition of a plane surface ax + by + cz + d = 0",
642   regles = (UN_PARMI ('Points','Equation'),),
643   Points   = SIMP (typ=Point,min=3,max=3,statut='f',fr="Donnee de 3 points non alignes"),
644   Equation = SIMP (typ='R'  ,min=2,max=4,statut='f',fr="Coefficients successifs abcd de l'equation du plan")
645  ) ;  # Fin PLAN
646 # ----------------------------------------------------------------------------------------------------------------------------------
647 #  Classe PLAN_X : Classe de definition d'un plan perpendiculaire a l'axe Ox
648 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
649 PLAN_X = OPER (nom="PLAN_X", op=0, sd_prod=PlanX, niveau = 'ElementsGeometriques',
650   fr  = "Definition d'un plan perpendiculaire a Ox",
651   ang = "Definition of a plane surface perpendicular to Ox",
652   Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OyOz")
653  ) ;  # Fin PLAN_X
654 # ----------------------------------------------------------------------------------------------------------------------------------
655 #  Classe PLAN_Y : Classe de definition d'un plan perpendiculaire a l'axe Oy
656 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
657 PLAN_Y = OPER (nom="PLAN_Y", op=0, sd_prod=PlanY, niveau = 'ElementsGeometriques',
658   fr  = "Definition d'un plan perpendiculaire a Oy",
659   ang = "Definition of a plane surface perpendicular to Oy",
660   Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OxOz")
661  ) ;  # Fin PLAN_Y
662 # ----------------------------------------------------------------------------------------------------------------------------------
663 #  Classe PLAN_Z : Classe de definition d'un plan perpendiculaire a l'axe Oz
664 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
665 PLAN_Z = OPER (nom="PLAN_Z", op=0, sd_prod=PlanZ, niveau = 'ElementsGeometriques',
666   fr  = "Definition d'un plan perpendiculaire a Oz",
667   ang = "Definition of a plane surface perpendicular to Oz",
668   Cote = SIMP (typ='R',statut='o',fr="Cote du plan // OxOy")
669  ) ;  # Fin PLAN_Z
670 # -----------------------------------------------------------------------------------------------------------------------------------
671 #  Classe POLYEDRE : Classe de definition d'une forme polyhedrique 3D quelconque (N faces, N > 4)
672 #                    Definition surfacique : Donnee des N plans et du choix du cote positif ou negatif
673 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
674 POLYEDRE = OPER (nom="POLYEDRE", op=0, sd_prod=Polyedre, niveau = 'ElementsGeometriques',
675   fr  = "Definition d'une forme polyhedrique 3D quelconque ",
676   ang = "Definition of a 3D polyhedron form with N > 4 plane faces",
677   Plans = NUPL (min = 5, max = '**', statut = 'o', fr = "Surfaces planes limites du polyedre",
678       elements = (SIMP (typ=(Plan,PlanX,PlanY,PlanZ)   ,fr="Plans limites du polyedre"),
679                   SIMP (typ='TXM',into=('Plus','Moins'),fr="Choix du cote positif ou negatif de l'espace")))
680   ) ;  # Fin POLYEDRE
681 # ----------------------------------------------------------------------------------------------------------------------------------
682 #  Classe QUADRIQUE : Classe de definition d'une quadrique 3D
683 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
684 QUADRIQUE = OPER (nom="QUADRIQUE", op=0, sd_prod=Quadrique, niveau = 'ElementsGeometriques',
685   fr  = "Definition d'une quadrique 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0",
686   ang = "Definition of a quadratic curve 3D ax2+by2+cz2+dxy+eyz+fxz+gx+hy+iz+j=0",
687   Equation = SIMP (typ='R',min=2,max=10,statut='o',fr="Coefficients successifs abcdefghij de l'equation d'une quadrique")
688  ) ;  # Fin QUADRIQUE
689 # -----------------------------------------------------------------------------------------------------------------------------------
690 #   Classe CELLULE : Classe de definition d'une cellule (ensemble elementaire  de regions annulaires et sectorisees)
691 #   Apres la hauteur de la cellule, entree des donnees par listes successives pour l'ensemble des couronnes de la
692 #   cellule, la zone externe etant decrite a part dans l'attribut FormeTechnologique :
693 #   - Liste des materiaux
694 #   - Liste des rayons des couronnes correspondantes
695 #   - Liste des sous-couronnes : - Numero de couronne a discretiser (Numero 1 a partir du centre),
696 #                                - Nombre de sous-couronnes,
697 #                                - Mot-cle Equivolumique si decoupage en sections transverses egales,
698 #                                - Rayons des couronnes intermediaires ou proportions volumiques si mot-cle Proportions indique anterieurement.
699 #   - Liste des sectorisations : - Nom de couronne a sectoriser ,
700 #                                - Nombre de secteurs,
701 #                                - Mot-cle Equivolumique si decoupage en secteurs egaux et positionnement du premier
702 #                                  secteur par rapport a l'axe x, et pas de changement de composition du secteur,
703 #                                - Mot-cle alternatif Angle si on veut modifier ou positionner les secteurs dans la
704 #                                  couronne : on donne alors des triplets de donnees pour chaque secteur :
705 #                                - nom du materiau composant le le secteur,
706 #                                - position trigonometrique en degres du debut du secteur
707 #                                - et angle en degres du secteur.
708 #     Le trace des secteurs sont definis en partant du centre de la couronne.
709 #     Pour la sectorisation de la forme externe, deux cas se presentent :
710 #     - soit pas de couronnes internes : les secteurs se tracent alors en partant du centre de la forme externe,
711 #     - dans le cas contraire, les secteurs partent du centre des couronnes.
712 #     Les secteurs peuvent ne pas couvrir l'ensemble de la couronne.
713 #   - Pour la zone peripherique, on doit definir les cotes de la cellule (cas cartesien), son materiau, sa
714 #     discretisation, et le decentrage du centre des couronnes par rapport au centre de ce contour peripherique
715 #     (Coordonnees x,y du centre des couronnes / au centre du contour)
716 #   - Pour le moment, limitation a 2D, sauf la donnee optionnelle des positions axiales des couronnes
717 #   - Une cellule peut etre definie a partir d'une cellule d'un autre assemblage antérieurement calcule
718 #   - Cette classe sert aussi a definir des microstructures (double heterogeneite) a inclure dans des regions
719 #     d'autres cellules d'ou les attributs relatifs aux microstructures (une microstructure étant une petite cellule
720 #     cylindrique ou spherique a disseminer dans des regions particulieres d'une cellule de taille plus importante
721 #     dans des proportions fixees par l'attribut ProportionsMicroStructures
722 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
723 CELLULE = OPER (nom="CELLULE", op=0, sd_prod=Cellule, niveau = 'Geometries',
724   fr  = "Definition d'une cellule elementaire",
725   ang = "Definition of a basic cell",
726   regles = (UN_PARMI ('Couronnes', 'CelluleIrradiee'),),
727   Type = SIMP (typ='TXM',defaut='Combustible',
728                into=( 'Combustible','BarreGrise','BarreNoire','BarreAcier','BarreAic','BarreB4c',
729                       'Detecteur','Trou','TubeGuide','Postiche','Pyrex','ExPyrex','Gadolinium',
730                       'CellType1','CellType2','CellType3'),statut='o'),
731   HauteurTotale  = SIMP (typ='R',defaut=1.,statut='o',fr="Hauteur totale de la cellule"),
732   Cluster        = SIMP (typ=Cluster,statut='f',fr="Cluster a integrer dans la cellule de base en cm"),
733   TypeGeometrie  = SIMP (typ='TXM',defaut='Cylindrique',statut='o',into=('Cylindrique','Spherique'),fr="Type de geometrie de la cellule"),
734   Couronnes      = FACT (statut='f',fr="Definition des couronnes cylindriques physiques de materiaux",
735         NomsSymboliques = SIMP (typ='TXM',    max='**',statut='o',fr="Liste des noms arbitraires des couronnes"),
736         Materiaux       = SIMP (typ=Materiau, max='**',statut='o',fr="Liste des materiaux des couronnes"),
737         Temperatures    = SIMP (typ='R',      max='**',statut='f',fr="Liste des temperatures des couronnes en Celsius"),
738         PressionGaz     = SIMP (typ='R',               statut='f',fr="Valeur de pression de gaz (en bars)"),
739         Rayons          = SIMP (typ='R',      max='**',statut='o',fr="Liste des rayons des couronnes en cm"),
740         RayonsMineurs   = SIMP (typ='R',      max='**',statut='f',fr="Liste des rayons mineurs des couronnes elliptiques en cm"),
741         Hauteurs        = SIMP (typ='R',      max='**',statut='f',fr="Liste des hauteurs des couronnes en cm"),
742         AxialPositions  = SIMP (typ='R',     max='**',statut='f',
743                                 fr="Positions axiales de la base des couronnes en cm / au zero de la hauteur maximum")
744                          ),
745   MicroStructures  = FACT (max = '**', statut = 'f',fr="Chargement de la double heterogeneite dans chaque couronne",
746         NomCouronne     = SIMP (typ='TXM',statut='o',fr="Nom symbolique de la couronne ou inserer des microstructures"),
747         MicroStructures = SIMP (typ=Cellule,max='**',statut='o',fr="Liste des microstructures dans la couronne"),
748         ProportionsMicroStructures = SIMP (typ='R',max='**',statut='o',fr="Proportions des microstructures dans la couronne")
749                          ),
750   SousCouronnes  = FACT (max = '**', statut = 'f',fr="Discretisation des couronnes de la cellule",
751         NomCouronne        = SIMP (typ='TXM',statut='o',fr="Nom symbolique de la couronne"),
752         NbSousCouronnes    = SIMP (typ='I'  ,statut='o',fr="Nombre de sous-couronnes de discretisation"),
753         TypeDiscretisation = SIMP (typ='TXM',defaut='Equivolumique',statut='o',into=('Equivolumique','Proportions','Equidistant')),
754         BlocProportions    = BLOC (condition = "TypeDiscretisation=='Proportions'",
755                              ProportionsVolumiques = SIMP (typ='R',statut='o',max='**',fr="Proportions volumiques des sous-couronnes")),
756         ProfilTemperature  = SIMP (typ='R',max='**',statut='f',fr="Profil de temperature")
757                          ),
758   Homogeneisation = FACT (max = '**', statut = 'f', fr="Homogeneisation de couronnes de la cellule",
759         NomCouronne    = SIMP (typ='TXM'          , fr="Nom arbitraire de la couronne homogeneisee"),
760         ListeCouronnes = SIMP (typ='TXM',max='**' , fr="Liste des noms des couronnes jointives a homogeneiser")
761                           ),
762   Secteurs     = FACT (max = '**', statut = 'f', fr="Sectorisation des couronnes de la cellule",
763         NomCouronne       = SIMP (typ='TXM',statut='o',fr="Nom de la couronne ou de la forme externe a sectoriser"),
764         NbSecteurs        = SIMP (typ='I'  ,statut='o',fr="Nombre de secteurs de la couronne"),
765         TypeSectorisation = SIMP (typ='TXM',statut='o',defaut='Coins',into=('Equivolumique','Angle','Coins','MilieuxCotes')),
766         AngleDepart       = SIMP (typ='R'  ,statut='o',defaut=0.,fr="Angle en degres de depart des secteurs (Origine 0 sur l'axe Ox)"),
767         Sectorisation     = FACT (statut       = 'f',
768                                   Materiaux    = SIMP (typ=Materiau,       max='**',statut='f',fr="Materiau des secteurs"),
769                                   Temperatures = SIMP (typ=('R','I','TXM'),max='**',statut='f',fr="Temperature des secteurs en Celsius"),
770                                   Angles       = SIMP (typ='R',            max='**',statut='f',fr="Angles en degres des secteurs")
771                                                 )
772                        ),
773   FormeExterne = FACT (statut='f',fr="Definition de la region externe au systeme cylindrique interne",
774         NomSymbolique = SIMP (typ='TXM',statut='f',fr="Nom arbitraire de la zone externe"),
775         Type          = SIMP (typ    = (ArcCercle,Carre,Rectangle,Hexagone,Triangle,Polygone),
776                               statut = 'f',  # la donnee est facultative si la cellule est inserree dans un reseau
777                               fr     = "Forme geometrique exterieure"),
778         Materiau      = SIMP (typ=(Materiau,Cellule),fr="Materiau de la forme externe"),
779         MicroStructures = SIMP (typ=Cellule,max='**',statut='f',fr="Microstructures de la region externe"),
780         ProportionsMicroStructures = SIMP (typ='R',max='**',statut='f',
781                                            fr="Proportions des microstructures dans la region externe"),
782         Temperature   = SIMP (typ='R',fr="Temperature en Celsius du materiau de la forme externe"),
783         PressionGaz   = SIMP (typ='R',statut='f',fr="Valeur de pression de gaz (en bars)"),
784         Decentrement  = SIMP (typ    = 'R',
785                               min    = 2,
786                               max    = 3,
787 #                             defaut = (0.,0.,0.),
788                               statut = 'f',
789                               fr     = "Coordonnees xyz du centre des couronnes / barycentre du contour") ),
790   CelluleIrradiee = FACT (statut='f',fr="Utilisation d'une cellule irradiee d'un assemblage existant",
791         AssemblageOrigine  = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o',
792                                    fr="Assemblage d'origine de la cellule a extraire"),
793         IrradiationMoyenne = SIMP (typ='R',statut='o',fr="Irradiation moyenne MWj/t de l'assemblage d'origine"),
794         Position           = SIMP (typ='I', min=2, max=2, statut='o',
795                                    fr="Coordonnees entieres ix,jy du crayon a extraire de l'assemblage") )
796  ) ;  # Fin CELLULE
797 # -----------------------------------------------------------------------------------------------------------------------------------
798 #  Classe CLUSTER : Classe de definition d'un cluster de cellules
799 #                   Un cluster est defini comme une superposition centree de cadrans telephoniques (a l'ancienne mode), chaque
800 #                   cadran ayant des trous de tailles differentes, l'ensemble devant etre dispose ensuite dans une cellule de forme
801 #                   quelconque.
802 #                   Donnees de Positionnement des couronnes de canaux, chaque canal etant une CELLULE predefinie,
803 #                   Pour chaque type de cellule, on donne :
804 #                   - le nombre de cellules a positionner (de maniere uniformement repartie sur le cercle)
805 #                   - le rayon du cercle sur lequel on les positionne
806 #                   - l'angle / Ox du centre de la premiere cellule (en degres)
807 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
808 CLUSTER = OPER (nom="CLUSTER", op=0, sd_prod=Cluster, niveau = 'Geometries',
809   fr  = "Definition d'un cluster de cellules cylindriques",
810   ang = "Definition of a cylindrical cell cluster",
811   Hauteur          = SIMP (typ='R',defaut=1.,statut='f',fr="Hauteur du cluster"),
812   Couronnes        = FACT (statut='o',fr="Definition des couronnes de cellules",min=1,
813       Cellules   = SIMP (typ=Cellule,max='**',statut='o',fr="Liste des types de cellules sur chaque cercle"),
814       NbCellules = SIMP (typ='I'    ,max='**',statut='o',fr="Liste des nombres de cellules de chaque type sur chaque cercle"),
815       Rayons     = SIMP (typ='R'    ,max='**',statut='o',fr="Liste des rayons des cercles correspondants en cm"),
816       Angles     = SIMP (typ='R'    ,max='**',statut='o',fr="Liste des angles de positionnement / Ox de la premiere cellule de chaque type"))
817  ) ;  # Fin CLUSTER
818 # -----------------------------------------------------------------------------------------------------------------------------------
819 #  Classe ORIENTATION :         Classe de definition d'une orientation angulaire dans un plan 2D apres symetrie eventuelle / Ox
820 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
821 ORIENTATION = OPER (nom="ORIENTATION", op=0, sd_prod=Orientation, niveau = 'ElementsGeometriques',
822   fr  = "Definition d'une orientation d'un reseau ou d'une cellule",
823   ang = "Definition of a cell or lattice orientation",
824   Symetrie       = SIMP (typ=(Plan,PlanX,PlanY,PlanZ),statut='f',
825                          fr="Indication d'une operation de symetrie / Plan, avant rotation"),
826   AngleRotation  = SIMP (typ='R'    ,statut='f',fr="Angle de rotation en degres",defaut=0.),
827   CentreRotation = SIMP (typ=Point  ,statut='f',fr="Centre de rotation"),
828   AxeRotation    = SIMP (typ=Vecteur,statut='f',fr="Vecteur de l'axe de rotation")
829  ) ;  # Fin ORIENTATION
830 # -----------------------------------------------------------------------------------------------------------------------------------
831 #  Classe FORME_POSITIONNEE :   Classe de definition d'une forme geometrique positionnee
832 #                               La position est definie a l'aide du centre de la forme geometrique,
833 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
834 FORME_POSITIONNEE = OPER (nom="FORME_POSITIONNEE", op=0, sd_prod=FormePositionnee, niveau = 'ElementsGeometriques',
835   fr  = "Definition d'une forme positionnee",
836   ang = "Definition of a shape and its position",
837   Forme = SIMP (
838       typ    = (Sphere,BoiteRectangulaire,BoiteGenerale,CylindreX,CylindreY,CylindreZ,Cylindre,SecteurDisque,Cone,
839                 Carre,Rectangle,Triangle,Hexagone,Polygone,PrismeHexagonal,Tore,Polyedre,Cellule,Cluster),
840       statut = 'o',
841       fr     = "Forme geometrique de base a positionner"),
842   PositionCentre   = SIMP (typ=Point      ,statut='o',fr="Coordonnees du centre de la forme geometrique"),
843   OrientationForme = SIMP (typ=Orientation,statut='f',fr="Orientation de la forme")
844  ) ;  # Fin FORME_POSITIONNEE
845 # -----------------------------------------------------------------------------------------------------------------------------------
846 #  Classe GEOMETRIE_SURFACIQUE : Classe de definition d'une geometrie surfacique
847 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
848 GEOMETRIE_SURFACIQUE = OPER (nom="GEOMETRIE_SURFACIQUE", op=0, sd_prod=GeometrieSurfacique, niveau = 'Geometries',
849   fr  = "Definition d'une geometrie surfacique",
850   ang = "Definition of a surfacic geometry",
851   MateriauRemplissage = SIMP (typ=Materiau,statut='o',fr="Materiau de remplissage de la geometrie surfacique"),
852   Surfaces      = NUPL (
853       max      = '**',
854       statut   = 'o',
855       fr       = "Serie de couples (Surface,Plus ou Moins) definissant les surfaces limites de la geometrie",
856       elements = (
857           SIMP (typ=(PlanX,PlanY,PlanZ,Plan,CylindreX,CylindreY,CylindreZ,Cylindre,Sphere,Cone,Conique,Quadrique)),
858           SIMP (typ='TXM',into=('Plus','Moins'))))
859  ) ;  # Fin GEOMETRIE_SURFACIQUE
860 # -----------------------------------------------------------------------------------------------------------------------------------
861 #  Classe GEOMETRIE_COMBINATOIRE : Classe de definition d'une geometrie combinatoire
862 #                                  Ecrasement : Constitution par ecrasements successifs (dans l'ordre des donnees) de la
863 #                                               Geometrie Initiale, la frontiere externe etant celle de la geometrie initiale
864 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
865 GEOMETRIE_COMBINATOIRE = OPER (nom="GEOMETRIE_COMBINATOIRE", op=0, sd_prod=GeometrieCombinatoire, niveau = 'Geometries',
866   fr  = "Definition d'une geometrie combinatoire",
867   ang = "Definition of a combinatorial geometry",
868   GeometriePremierPlan  = SIMP (typ=FormePositionnee,statut='o',fr="Geometrie se trouvant au premier plan"),
869   GeometrieEcrasee      = SIMP (typ=FormePositionnee,max='**',statut='f',
870                                 fr="Geometries ecrasées et surchargées par la GeometriePremierPlan"),
871   GeometrieUnion        = SIMP (typ=FormePositionnee,max='**',statut='f',
872                                 fr="Geometries a reunir a la GeometriePremierPlan en gardant les interfaces, les intersections etant des volumes particuliers"),
873   GeometrieReunion      = SIMP (typ=FormePositionnee,max='**',statut='f',
874                                 fr="Geometries a reunir a la GeometriePremierPlan pour former un volume unique"),
875   GeometrieIntersection = SIMP (typ=FormePositionnee,max='**',statut='f',
876                                 fr="Geometries a intersecter avec la GeometriePremierPlan")
877  ) ;   # Fin GEOMETRIE_COMBINATOIRE
878 # -----------------------------------------------------------------------------------------------------------------------------------
879 #  Classe CORRESPONDANCE_REPERE_POSITION_RESEAU :
880 #  Classe de definition des reperes alphanumeriques des cases d'un reseau
881 #  Reperes (bataille navale ou autre) et Coordonnees cartesiennes entieres des cases dans un systeme i,j du reseau
882 #  Origine des coordonnees en bas a gauche d'un systeme en xy
883 #  Ceci n'a d'interet que pour l'utilisateur ou pour se conformer aux reperes industriels habituels dans le cas des REP
884 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
885 CORRESPONDANCE_REPERE_POSITION_RESEAU = OPER (nom="CORRESPONDANCE_REPERE_POSITION_RESEAU",op=0,sd_prod=CorrespondanceReperePositionReseau,
886                                               niveau = 'Geometries',
887   fr  = "Correspondance entre reperes alphanumeriques et cases d'un reseau",
888   ang = "Alphanumeric identificators and lattice coordinates",
889   Positions = NUPL (max='**',statut='o',
890                     elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire d'une case du reseau"),
891                               SIMP (typ='I'  ,fr="Premiere Coordonnee entiere dans le systeme i,j du reseau"),
892                               SIMP (typ='I'  ,fr="Seconde Coordonnee entiere dans le systeme i,j du reseau")))
893  ) ;  # Fin CORRESPONDANCE_REPERE_POSITION_RESEAU
894 # -----------------------------------------------------------------------------------------------------------------------------------
895 # Classe RESEAU :
896 #   Classe de definition d'un reseau de juxtapositions de cellules ou de reseaux
897 #   Assemblage de cellules ou de reseaux dans une grille rectangulaire ou hexagonale
898 #   Les positions des cellules et des reseaux dans le nouveau reseau sont a fournir sur les mailles
899 #   du reseau sans tenir compte des symetries,
900 #   Le reseau peut etre charge :
901 #     - de maniere uniforme : un seul type de CELLULE ou de RESEAU
902 #     - de maniere complete : a chaque maille doit etre affecte un reseau ou une cellule et optionnellement son
903 #       orientation, l'ordre des donnees dans le plan radial etant celui obtenu en partant de l'element le plus
904 #       bas a gauche, et dans le sens axial ensuite (eventuellement si 3D)
905 #     - de maniere partielle : liste des cellules et reseaux charges et leur position xyz dans le nouveau reseau
906 #       et orientations correspondantes de ces cellules et reseaux
907 #   Des reperes alphanumeriques arbitraires peuvent etre associes a chaque maille du reseau, ce qui permet
908 #   si necessaire de manipuler ces elements du reseau par l'intermediaire de ces symboles (exemple des
909 #   reperes bataille navale des assemblages dans le reseau d'un coeur REP).
910 #   Le reseau peut etre entoure de zones peripheriques homogenes ou heterogenes.
911 #     - Le cas Homogene peut s'appliquer aux reseaux hexagonaux ou cartesiens ;
912 #     - Dans le cas Heterogene, la reflexion s'est uniquement portee sur la situation cartesienne et particulierement en donnant la
913 #       la possibilite de decrire un assemblage bouillant (avec croix de contrôle et instrumentation)
914 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
915 RESEAU = OPER (nom="RESEAU", op=0, sd_prod=Reseau, niveau = 'Geometries',
916   fr  = "Definition d'un reseau compose de juxtapositions de cellules, de reseaux ou d'assemblages",
917   ang = "Definition of a lattice",
918   Identificateur          = SIMP (typ='TXM',statut='o',fr="Identificateur arbitraire du reseau"),
919   ReseauReference         = SIMP (typ='TXM',statut='f',fr="Identificateur du reseau de reference dans le cas d'une composition de reseaux de reseau"),
920   DifferenciationCellules = SIMP (typ='I',defaut=0,statut='f',fr="Nombre de couches de cellules a differencier autour du reseau de reference"),
921   TypeGeometrie           = SIMP (typ='TXM',into=('cartesienne','hexagonale'),defaut='cartesienne',statut='f'),
922   NbMaillesX              = SIMP (typ='I',defaut=17,statut='o',fr="Nbre de mailles sur le premier axe du reseau"),
923   NbMaillesY              = SIMP (typ='I',defaut=17,statut='f',fr="Nbre de mailles sur le second axe du reseau"),
924   NbMaillesZ              = SIMP (typ='I',defaut=1 ,statut='f',fr="Nbre de mailles sur l'axe vertical du reseau"),
925   PasReseau               = SIMP (typ='R',defaut=1.26 ,statut='f',max=2,fr="Pas du reseau en X et Y (en cm)"),
926   MateriauRemplissage     = SIMP (typ=Materiau,defaut='ModExt',statut='f',fr="Materiau de remplissage du reseau"),
927   TypeDefinition          = SIMP (typ='TXM',statut='f',defaut="Complet",into=("Uniforme","Complet","Partiel"),fr="Mode de chargement du reseau"),
928   ReseauUniforme          = BLOC (condition = "TypeDefinition=='Uniforme'",fr="Chargement uniforme du reseau",
929        ElementGeomU       = SIMP (typ=(Cellule,Reseau,Cluster,GeometrieCombinatoire,AssemblageCombustibleReel,AssemblageType),statut='o',
930                                   fr = "Remplissage uniforme du nouveau reseau par un element particulier"),
931        OrientationU       = SIMP (typ=Orientation,fr="Orientation de l'element geometrique de base",statut='f')),
932   ReseauComplet           = BLOC (condition = "TypeDefinition=='Complet'",fr="Chargement complet du reseau",
933         ElementsGeomC     = NUPL (max='**', statut='o',
934                                   fr="Liste des couples (ElementGeometrique,SigleTextuel) les sigles textuels servant ensuite au chargement complet du reseau",
935                 elements  =(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType),
936                                   fr="Element geometrique a associer au sigle"),
937                             SIMP (typ='TXM',fr="Sigle alphanumerique associe a l'element geometrique"))),
938         ChargementC       = SIMP (typ='TXM',statut='o',max='**',
939                                   fr="Affectation des sigles aux cases geometriques du reseau"),
940         RegroupementC     = SIMP (typ='I',statut='f',max='**',
941                                   fr="Numeros des cellules de calcul en approximation multicellule dans chaque case du reseau"),
942         OrientationC      = SIMP (typ=Orientation,max='**',statut='f',fr="Orientation des elements geometriques dans les cases du reseau"),
943         ReperesC          = SIMP (typ='TXM',max='**',statut='f',fr="Reperes arbitraires des cases geometriques"),
944                                 ),
945   ReseauPartiel           = BLOC (condition = "TypeDefinition=='Partiel'",fr="Chargement partiel du reseau",
946         ChargementP       = FACT (max='**',fr="Chargement partiel du reseau",
947                 regles = (UN_PARMI ('ElementsPositionnesP', 'ElementsReperesP'),),
948                 ElementsPositionnesP = NUPL (max='**', statut='f',fr="Donnee des Positions des elements geometriques dans le systeme des coordonnees du reseau",
949                         elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType),
950                                         fr="Element geometrique a positionner"),
951                                   SIMP (typ='I',min=2,max=2,fr="Coordonnees i j de l'element geometrique dans le reseau"))),
952                 ElementsReperesP    = NUPL (max='**', statut='f',fr="Donnee des reperes positionnels des elements geometriques",
953                         elements=(SIMP (typ=(Cellule, Reseau, GeometrieCombinatoire, GeometrieSurfacique, AssemblageCombustibleReel,AssemblageType),
954                                         fr="Element geometrique a positionner"),
955                                   SIMP (typ='TXM',fr="Repere alphanumerique de l'element geometrique"))),
956                 CorrespondanceReperePositions = SIMP (typ=CorrespondanceReperePositionReseau,
957                                                       statut='f',
958                                                       fr="Correspondance entre Repere alphanumerique et coordonnees dans le reseau"),
959                 OrientationP = SIMP (typ=Orientation,max='**',statut='f',fr="Orientation des elements geometriques du chargement partiel"),
960                              )),
961   ZonesPeripheriquesHomogenes      = FACT (statut='f',fr="Zones homogenes peripheriques au reseau",
962         Epaisseurs      = SIMP (typ='R'     ,max='**',statut='o',fr="Liste des epaisseurs (cm) des couches peripheriques"),
963         Materiaux       = SIMP (typ=Materiau,max='**',statut='f',fr="Liste des materiaux des couches peripheriques"),
964         MateriauExterne = SIMP (typ=Materiau         ,statut='f',fr="Materiau de remplissage de la zone externe du reseau hexagonal")),
965   ZonesPeripheriquesHeterogenes  = FACT (max='**',statut='f',fr="Zones heterogenes peripheriques au reseau",
966         DimensionsExternes = SIMP (typ='R',min=2,max=2, statut='o',
967                                    fr=" Dimensions (cm) externes X et Y zone peripherique comprise"),
968         Decentrement = SIMP (typ='R',min=2,max=2,       statut='f',
969                              fr=" Coordonnees (cm) X et Y du centre de la zone peripherique / au centre du réseau"),
970         MateriauRemplissage = SIMP (typ=Materiau,       statut='f',
971                                     fr="Materiau de remplissage de la zone"),
972         Boitier = FACT (statut='f',fr="Definition d'un boitier",
973                 Epaisseur = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) du boitier dans sa partie lineaire"),
974                 LongueurPartieLineaire  = SIMP (typ='R',statut='o',fr= "Longueur (cm) de la partie lineaire du boitier"),
975                 RayonExterneCoinBoitier = SIMP (typ='R',statut='o',fr= "Rayon externe (cm) du coin arrondi du boitier"),
976                 MateriauExterne = SIMP (typ=Materiau,statut='f',fr="Materiau de remplissage de la zone externe au boitier"),
977                 PositionBoitier = SIMP (typ='TXM',statut='o',defaut='Exterieure',into=('Exterieure','Interieure'),
978                                         fr="Position du boitier dans la zone")),
979         CroixControle = FACT (statut='f',fr="Definition d'une croix de controle",
980                 Epaisseur = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) des branches de la croix de controle"),
981                 EpaisseurEnveloppe = SIMP (typ='R',statut='o',fr= "Epaisseur (cm) de l'enveloppe de la croix de controle"),
982                 DemiLongueurCroixCentrale = SIMP (typ='R',statut='o',
983                                                   fr= "Demi-longueur (cm) de la partie homogene au centre de la croix de controle"),
984                 NombreBarres   = SIMP (typ='I',statut='o',fr= "Nombre de barres dans une aile de la croix de controle"),
985                 CellulesBarres = SIMP (typ=Cellule,max='**',statut='o',
986                                        fr= "Liste des cellules correspondant aux barres de la croix de contrôle, en partant du centre de la croix"),
987                 MateriauCroix = SIMP (typ=Materiau,statut='o',fr="Materiau de la croix de controle"),
988                 BranchesCroix = SIMP (typ='TXM',statut='o',defaut='NordOuest',into=('NordOuest','NordEst','SudOuest','SudEst'),
989                                       fr="Choix des deux branches de la croix de contrôle decrites"),
990                 PositionCroix = SIMP (typ='TXM',statut='o',defaut='AxeExterieure',into=('AxeExterieure','Exterieure','Interieure'),
991                                       fr="Position de la croix dans la zone")),
992         Instrumentation = FACT (statut='f',fr="Definition de l'instrumentation",
993                 Cellule  = SIMP (typ=Cellule,statut='o',fr= "Cellule decrivant la geometrie de l'instrumentation"),
994                 Position = SIMP (typ='TXM',statut='o',defaut='SudEst',into=('NordOuest','NordEst','SudOuest','SudEst'),
995                                  fr="Choix du coin ou sera centree la cellule"))
996                                 )
997  ) ;  # Fin RESEAU
998 # -----------------------------------------------------------------------------------------------------------------------------------
999 #  Classe DECOMPOSITION_DOMAINES : Classe de definition de domaines de calcul
1000 #                                  Pour le moment, on ne considere qu'une partition en 2D d'un reseau
1001 #                                  (a completer ulterieurement pour une geometrie generale)
1002 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1003 DECOMPOSITION_DOMAINES = OPER (nom="DECOMPOSITION_DOMAINES", op=0, sd_prod=DecompositionDomaines, niveau = 'Geometries',
1004   fr  = "Decomposition en domaines d'un reseau",
1005   ang = "Domain decomposition of a lattice",
1006   NbDomainesOx          = SIMP (statut='o', typ='I',            fr="Nombre de domaines sur l'axe Ox"),
1007   NbDomainesOy          = SIMP (statut='o', typ='I',            fr="Nombre de domaines sur l'axe Oy"),
1008   OxRepartitionDomaines = SIMP (statut='o', typ='I', max='**',  fr="Nombre de mailles du reseau pour chaque domaine de l'axe Ox"),
1009   OyRepartitionDomaines = SIMP (statut='o', typ='I', max='**',  fr="Nombre de mailles du reseau pour chaque domaine de l'axe Oy")
1010  ) ;  # Fin DECOMPOSITION_DOMAINES
1011 # -----------------------------------------------------------------------------------------------------------------------------------
1012 #  Classe GRILLE_ASSEMBLAGE : Classe de definition des grilles composant le squelette des assemblages combustibles
1013 #                             Caracteristiques  technologiques (dimension, materiaux de composition) et positionnement simplifie
1014 #                             des materiaux dans les canaux de l'assemblage pour dilution homogene a 2D dans le milieu peripherique.
1015 #                               - Materiaux fournis sous forme de couples (nom de materiau et masse en g)
1016 #                               - Repartition decrite en donnant pour une liste de materiaux (faisant partie des materiaux
1017 #                                 precedemment indiques) la liste des types de cellules (precedee du mot-cle TypeCellule) et des
1018 #                                 types de materiaux (precedes du mot-cle TypeMateriau) devant etre modifies par la presence des
1019 #                                 grilles
1020 #                                                    < liste de MATERIAU >,
1021 #                                       TypeCellule  < liste de types de cellule >,
1022 #                                       TypeMateriau < liste de types de materiau >
1023 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1024 GRILLE_ASSEMBLAGE = OPER (nom="GRILLE_ASSEMBLAGE", op=0, sd_prod=GrilleAssemblage, niveau = 'ElementsTechnologiquesAssemblages',
1025   fr  = "Definition d'une grille d'assemblage",
1026   ang = "Definition of an elementary assembly grid",
1027   TypeGrille     = SIMP (typ='TXM',defaut='GrilleMelange',statut='f',fr="Type de grille de structure assemblage"),
1028   Hauteur        = SIMP (typ='R',defaut=3.3,statut='f',fr="Hauteur de la grille de structure assemblage en cm"),
1029   Largeur        = SIMP (typ='R',defaut=21.338,statut='f',fr="Largeur de la grille de structure assemblage en cm"),
1030   MateriauxMasse = NUPL (max = '**', statut = 'o',
1031                          elements = (SIMP (typ=Materiau),SIMP (typ='R')),
1032                          fr       = "Serie de couples (Materiau,masse en g) de composition de la grille"),
1033   Repartition    = FACT (max = '**', statut = 'o',fr="Repartition des materiaux par type de cellule ou par type de materiau",\r
1034                          regles = (AU_MOINS_UN ('TypeCellule', 'TypeMateriau'),),
1035                          MateriauGrille = SIMP (typ=Materiau,fr="Nom du materiau a repartir",statut='o'),
1036                          TypeCellule    = SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de cellule ou est reparti le materiau"),
1037                          TypeMateriau   = SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de materiaux  ou est reparti le materiau") ),
1038   CoefficientsThermohydrauliques = FACT (statut = 'f',fr="Donnees de thermohydraulique",
1039       CoeffPerteCharge  = SIMP (typ='R',statut='f',
1040                                 fr="Coefficient Cn de perte de charge au sens monodimensionnel de la singularite"),
1041       CoeffRedressement = SIMP (typ='R',statut='f',val_min=0,
1042                                 fr="Coefficient R de redressement de l'ecoulement au passage de la singularite"),
1043       CoeffCkg          = SIMP (typ='R',statut='f',
1044                                 fr="Coefficient lie au type de grille et de geometrie")),
1045   Ailettes = FACT (statut = 'f',fr="Donnees des ailettes de melange",
1046       PerteChargeSansAilettes       = SIMP (typ='R',statut='f',fr="Coefficient Cn de perte de charge monodimensionnel sans ailettes"),
1047       PerteChargeAvecAilettes       = SIMP (typ='R',statut='f',fr="Coefficient Cn de perte de charge avec ailettes"),
1048       CoeffRedressementSansAilettes = SIMP (typ='R',statut='f',val_min=0,
1049                                             fr="Coefficient R de redressement de l'ecoulement sans ailettes"),
1050       CoeffCkg                      = SIMP (typ='R',statut='f',fr="Coefficient lie au type de grille et de geometrie"),
1051       AngleOrientation              = SIMP (typ='R',statut='f',fr="Angle d'orientation des ailettes"),
1052       Repartition                   = SIMP (typ='TXM',max='**',into=('Rien','Droite','Gauche','Haut','Bas'),statut='f',
1053         fr="Positionnement des ailettes dans chaque quart de sous-canal (soit 4 donnees par sous-canal)"))
1054  ) ;  # Fin GRILLE_ASSEMBLAGE
1055 # -----------------------------------------------------------------------------------------------------------------------------------
1056 #  Classe PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE  :   Classe de definition de l'embout inferieur d'un assemblage combustible REP
1057 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1058 PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieInferieureAssemblageCombustible,
1059                                                  niveau = 'ElementsTechnologiquesAssemblages',
1060   fr  = "Definition de la partie inferieure d'un assemblage combustible REP",
1061   ang = "Definition of the bottom part of a PWR fuel assembly",
1062   MateriauEmbout                            = SIMP (typ=Materiau,statut='f',fr="Materiau de l'embout inferieur",defaut='ACIER'),
1063   MasseBouchonInferieurCrayonCombustible    = SIMP (typ='R'     ,statut='o',fr="Masse (g) du bouchon inferieur du crayon combustible"),
1064   HauteurBouchonInferieurCrayonCombustible  = SIMP (typ='R'     ,statut='o',fr="Hauteur (cm) du bouchon inferieur du crayon combustible"),
1065   MateriauBouchonInferieurCrayonCombustible = SIMP (typ=Materiau,statut='f',fr="Materiau du bouchon inferieur du crayon combustible",defaut='ZIRCALOY'),
1066   MasseEmbout                               = SIMP (typ='R'     ,statut='o',fr="Masse (g) de l'embout inferieur"),
1067   EpaisseurPlaqueAdaptatrice                = SIMP (typ='R'     ,statut='o',fr="Epaisseur (cm) de la plaque adaptatrice de l'embout inferieur en cm"),
1068   LargeurPlaqueAdaptatrice                  = SIMP (typ='R'     ,statut='o',fr="Largeur (cm) de la plaque adaptatrice de l'embout inferieur"),
1069   TrousPlaqueAdaptatrice                    = NUPL (fr="Dimensions des trous de la plaque adaptatrice",
1070       max      = '**',
1071       statut   = 'o',
1072       elements = ( SIMP (typ='I'  ,statut='o',fr="Nombre de trous de taille definie ci-apres"),
1073                    SIMP (typ='TXM',statut='o',into=('Rayon','Cotes'),fr="Choix de la forme des trous, elliptique ou rectangulaire"),
1074                    SIMP (typ='R'  ,statut='o',min=2,max=2,fr="Rayons ou cotes (cm) des trous"),
1075                    SIMP (typ='TXM',statut='o',defaut='Hauteur',into=('Hauteur','Epaisseur'),fr="Mot-cle au choix"),
1076                    SIMP (typ='R'  ,statut='o',fr="Hauteur  (cm) des trous dans la plaque adaptatrice"))),
1077   JeuBouchonCombustiblePlaque = SIMP (typ='R',      statut='o',fr="Hauteur (cm) du jeu entre bouchon combustible et plaque adaptatrice"),
1078   HauteurPied                 = SIMP (typ='R',      statut='o',fr="Hauteur (cm) du pied de l'embout inferieur"),
1079   CapuchonRint                = SIMP (typ='R',      statut='f',fr="Rayon interne (cm) du capuchon"),
1080   CapuchonRext                = SIMP (typ='R',      statut='f',fr="Rayon externe (cm) du capuchon"),
1081   HauteurVisEpaulee           = SIMP (typ='R',      statut='f',fr="Hauteur des vis epaulees des tubes guides en cm"),
1082   MasseVisEpaulee             = SIMP (typ='R',      statut='f',fr="Masse totale des vis epaulees des tubes guides en g"),
1083   RintVisEpaulee              = SIMP (typ='R',      statut='f',fr="Rayon interne (cm) d'une vis epaulee"),
1084   RextVisEpaulee              = SIMP (typ='R',      statut='f',fr="Rayon externe (cm) d'une vis epaulee"),
1085   MasseFiltre                 = SIMP (typ='R',      statut='f',fr="Masse (g) du filtre anti-debris"),
1086   MateriauFiltre              = SIMP (typ=Materiau, statut='f',fr="Materiau du filtre anti-debris", defaut='INCONEL'),
1087   HauteurCale                 = SIMP (typ='R',      statut='f',fr="Hauteur (cm) de la cale dans le crayon combustible"),
1088   MateriauCale                = SIMP (typ=Materiau, statut='f',fr="Materiau de la cale dans le crayon combustible",defaut='ACIER'),
1089   RayonPionCentrage           = SIMP (typ='R',      statut='f',fr="Rayon externe des pions de centrage de la plaque inferieure coeur en cm"),
1090   HauteurPionCentrage         = SIMP (typ='R',      statut='f',fr="Hauteur des pions de centrage de la plaque inferieure coeur en cm"),
1091   HauteurOgivePionCentrage    = SIMP (typ='R',      statut='f',fr="Hauteur de l'ogive des pions de centrage de la plaque inferieure coeur en cm"),
1092   MateriauPionCentrage        = SIMP (typ=Materiau, statut='f',fr="Materiau des pions de centrage de la plaque inferieure coeur",defaut='ACIER'),
1093   BouchonTubGHauteur          = SIMP (typ='R',      statut='f',fr="Hauteur des bouchons des tubes guides en cm"),
1094   BouchonTubGMateriau         = SIMP (typ=Materiau, statut='f',fr="Materiau des bouchons des tubes guides",defaut='ACIER')
1095   ) ;  # Fin PARTIE_INFERIEURE_ASSEMBLAGE_COMBUSTIBLE
1096 # -----------------------------------------------------------------------------------------------------------------------------------
1097 #  Classe PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE :    Classe de definition de l'embout superieur d'un assemblage combustible REP
1098 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1099 PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PartieSuperieureAssemblageCombustible,
1100                                                    niveau = 'ElementsTechnologiquesAssemblages',
1101   fr  = "Definition de la partie superieure d'un assemblage combustible REP",
1102   ang = "Definition of the top part of a PWR fuel assembly",
1103   MateriauEmbout                             = SIMP (typ=Materiau, statut='f',fr="Materiau  de l'embout superieur",defaut='ACIER'),
1104   MasseBouchonSuperieurCrayonCombustible     = SIMP (typ='R',      statut='o',fr="Masse du bouchon superieur du crayon combustible en g"),
1105   HauteurBouchonSuperieurCrayonCombustible   = SIMP (typ='R',      statut='o',fr="Hauteur du bouchon superieur du crayon combustible en cm"),
1106   MateriauBouchonSuperieurCrayonCombustible  = SIMP (typ=Materiau, statut='f',fr="Materiau du bouchon superieur du crayon combustible",defaut='ZIRCALOY'),
1107   RessortCrayonCombustible                   = SIMP (typ='R',      statut='o',fr="Masse du ressort du crayon combustible en g"),
1108   ForceRessortCrayonCombustible              = SIMP (typ='R',      statut='f',fr="Force du ressort du crayon combustible en N"),
1109   HauteurChambreExpansion                    = SIMP (typ='R',      statut='o',fr="Hauteur de la chambre d'expansion en cm"),
1110   MasseEmbout                                = SIMP (typ='R',      statut='o',fr="Masse de l'embout superieur en g"),
1111   HauteurEmbout                              = SIMP (typ='R',      statut='o',fr="Hauteur de l'embout superieur en cm"),
1112   MasseRessortsEmbout                        = SIMP (typ='R',      statut='o',fr="Masse des ressorts de l'embout superieur en g"),
1113   MateriauRessortsEmbout                     = SIMP (typ=Materiau, statut='f',fr="Materiau des ressorts de l'embout superieur", defaut='INCONEL'),
1114   EpaisseurPlaqueAdaptatrice                 = SIMP (typ='R',      statut='o',fr="Epaisseur de la plaque adaptatrice en cm"),
1115   LargeurPlaqueAdaptatrice                   = SIMP (typ='R',      statut='o',fr="Largeur de la plaque adaptatrice en cm"),
1116   TrousPlaqueAdaptatrice                     = NUPL (fr="Dimensions des trous de la plaque adaptatrice",
1117       max      = '**',
1118       statut   = 'o',
1119       elements = (      SIMP (typ='I',                                  fr="Nombre de trous d'un type donne"),
1120                         SIMP (typ='TXM',into=('Rayon','Cotes'),         fr="Mot indiquant la donnee des rayons ou cotes des trous"),
1121                         SIMP (typ='R'  ,min=2,max=2,                    fr="Rayons mineur et majeur ou Cotes du trou en cm"),
1122                         SIMP (typ='TXM',into=('Hauteur','Epaisseur'),   fr="Mot cle introduisant la hauteur des trous"),
1123                         SIMP (typ='R',                                  fr="Hauteur du trou en cm"))),
1124   JeuBouchonCombustiblePlaque = SIMP (typ='R',      statut='o',fr="Hauteur du jeu entre Bouchon combustible et Plaque adaptatrice en cm"),
1125   EpaisseurJupe               = SIMP (typ='R',      statut='o',fr="Epaisseur de la jupe de l'embout superieur en cm"),
1126   HauteurJupe                 = SIMP (typ='R',      statut='f',fr="Hauteur de la jupe de l'embout superieur en cm"),
1127   RayonPionCentrage           = SIMP (typ='R',      statut='f',fr="Rayon des pions de centrage superieurs en cm"),
1128   HauteurPionCentrage         = SIMP (typ='R',      statut='f',fr="Hauteur des pions de centrage superieurs en cm"),
1129   HauteurOgivePionCentrage    = SIMP (typ='R',      statut='f',fr="Hauteur de l'ogive des pions de centrage superieurs en cm"),
1130   MateriauPionCentrage        = SIMP (typ=Materiau, statut='f',fr="Materiau des pions de centrage superieurs",defaut='ACIER'),
1131   RayonInterneManchon         = SIMP (typ='R',      statut='f',fr="Rayon interne des manchons des tubes guides en cm"),
1132   RayonExterneManchon         = SIMP (typ='R',      statut='f',fr="Rayon externe des manchons des tubes guides en cm"),
1133   HauteurManchon              = SIMP (typ='R',      statut='f',fr="Hauteur des manchons des tubes guides en cm"),
1134   MasseManchon                = SIMP (typ='R',      statut='f',fr="Masse d'un manchon des tubes guides en g")
1135  ) ;  # Fin PARTIE_SUPERIEURE_ASSEMBLAGE_COMBUSTIBLE
1136 # -----------------------------------------------------------------------------------------------------------------------------------
1137 #  Classe ASSEMBLAGE_TYPE : Classe de definition d'un type d'assemblage (ensemble de crayons ou de reseaux quelconques)
1138 #                           Rajout des structures grilles et embouts (dans le cas des REP)
1139 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1140 ASSEMBLAGE_TYPE = OPER (nom="ASSEMBLAGE_TYPE",op=0,sd_prod=AssemblageType,
1141                           niveau = 'ElementsTechnologiquesAssemblages',
1142   fr  = "Definition d'un assemblage type et des elements associes eventuels",
1143   ang = "Definition of an assembly type and its associated elements",
1144   Geometrie         = SIMP (typ=(Cellule,Reseau,GeometrieCombinatoire),statut='o',max='**',
1145                             fr="Liste des geometries composant l'assemblage"),
1146   GrillesStructure  = NUPL (max = '**', statut = 'f',fr="Positions axiales des grilles",
1147                             elements = ( SIMP (typ=GrilleAssemblage,fr="Type de grille"),
1148                                          SIMP (typ='R',max='**',
1149                                                fr="Positions axiales des milieux des grilles (en cm) / a la limite inferieure du pied de l'assemblage"))),
1150   PartieInferieure  = SIMP (typ=PartieInferieureAssemblageCombustible,statut='f',fr="Type d'embout inferieur"),
1151   PartieSuperieure  = SIMP (typ=PartieSuperieureAssemblageCombustible,statut='f',fr="Type d'embout superieur"),
1152   ElementsAssocies  = SIMP (typ=(ElementsGrappeCommande,ElementsAbsorbantsFixes,GrappeBouchonAssemblage),max='**',statut='f',fr="Liste des elements technologiques associes")
1153  ) ;  # Fin ASSEMBLAGE_TYPE
1154 # ----------------------------------------------------------------------------------------------------------------------------------
1155 #  Classe ELEMENT_BARRE :        Classe de définition d'une barre element d'un assemblage
1156 #                         Definition des barres des grappes de commande (barre et gaine, et composants axiaux)
1157 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1158 ELEMENT_BARRE = OPER (nom="ELEMENT_BARRE", op=0, sd_prod=ElementBarre, niveau = 'ElementsTechnologiquesAssemblages',
1159   fr  = "Definition d'une barre element d'un assemblage",
1160   ang = "Definition of an assembly rod element",
1161   MateriauInferieur    = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau composant la partie inferieure de la barre"),
1162   MateriauSuperieur    = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau composant la partie superieure de la barre"),
1163   HauteurBarre         = SIMP (typ='R'                     ,statut='o',fr="Hauteur (cm) de la barre"),
1164   HauteurInferieure    = SIMP (typ='R'                     ,statut='f',fr="Hauteur (cm) de la partie inferieure de la barre"),
1165   HauteurSuperieure    = SIMP (typ='R'                     ,statut='f',fr="Hauteur (cm) de la partie superieure de la barre"),
1166   RintPartieInferieure = SIMP (typ='R'     ,defaut=0.      ,statut='f',fr="Rayon Interne (cm) de la partie inferieure de la barre"),
1167   RintPartieSuperieure = SIMP (typ='R'     ,defaut=0.      ,statut='f',fr="Rayon Interne (cm) de la partie superieure de la barre"),
1168   RextPartieInferieure = SIMP (typ='R'                     ,statut='o',fr="Rayon Externe (cm) de la partie inferieure de la barre"),
1169   RextPartieSuperieure = SIMP (typ='R'                     ,statut='f',fr="Rayon Externe (cm) de la partie superieure de la barre"),
1170   MasseRessort         = SIMP (typ='R'                     ,statut='o',fr="Masse (g) du ressort de la barre"),
1171   MateriauRessort      = SIMP (typ=Materiau                ,statut='o',fr="Materiau du ressort de la barre"),
1172   HauteurRessort       = SIMP (typ='R'                     ,statut='o',fr="Hauteur (cm) du ressort de la barre"),
1173   BouchonInfHauteur    = SIMP (typ='R'     ,defaut=0.      ,statut='f',fr="Hauteur (cm) du bouchon inferieur de la barre"),
1174   BouchonSupHauteur    = SIMP (typ='R'     ,defaut=0.      ,statut='f',fr="Hauteur (cm) du bouchon superieur de la barre"),
1175   BouchonInfRayon      = SIMP (typ='R'     ,defaut=0.      ,statut='f',fr="Rayon externe (cm) du bouchon inferieur de la barre"),
1176   BouchonSupRayon      = SIMP (typ='R'     ,defaut=0.      ,statut='f',fr="Rayon externe (cm) du bouchon superieur de la barre"),
1177   MateriauGaine        = SIMP (typ=Materiau,defaut='ACIER' ,statut='o',fr="Materiau de la gaine externe de la barre"),
1178   RayonInterneGaine    = SIMP (typ='R'     ,defaut=0.      ,statut='f',fr="Rayon Interne (cm) de la gaine externe de la barre"),
1179   RayonExterneGaine    = SIMP (typ='R'     ,defaut=0.      ,statut='f',fr="Rayon Externe (cm) de la gaine externe de la barre")
1180  ) ;  # Fin ELEMENT_BARRE
1181 #----------------------------------------------------------------------------------------------------------------------------------
1182 #  Classe ELEMENTS_GRAPPE_COMMANDE : Classe de définition des éléments des grappes de commande
1183 #                                    Association avec les différents types de barres absorbantes
1184 #                                    Description simplifiée de l'araignée et du bouchon des barres
1185 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1186 ELEMENTS_GRAPPE_COMMANDE = OPER (nom="ELEMENTS_GRAPPE_COMMANDE",op=0,sd_prod=ElementsGrappeCommande,niveau = 'ElementsTechnologiquesAssemblages',
1187   fr  = "Définition des éléments des grappes de commande",
1188   ang = "Definition of control rod cluster components",
1189   ElementsBarre        = SIMP (typ= ElementBarre, max='**',statut='o',fr="Liste des barres absorbantes associees"),
1190   HauteurPasInsertion  = SIMP (typ='R',defaut=1.5875      ,statut='o',fr="Hauteur (cm) d'un pas d'insertion des grappes"),
1191   CourseTotalePossible = SIMP (typ='R',defaut=361.8       ,statut='o',fr="Course totale possible (cm) d'insertion d'une grappe"),
1192   CoteInferieureGrappe = SIMP (typ='R',defaut=8.5705      ,statut='o',fr="Cote inferieure (cm) d'une grappe / zone active ?"),
1193   VitesseDeplacement   = SIMP (typ='R',defaut=72.         ,statut='o',fr="Vitesse de deplacement d'une grappe en pas/mn"),
1194   NbPasInsertion       = SIMP (typ='I',defaut=225         ,statut='o',fr="Nombre maximum de pas d'insertion "),
1195   Araignee16Phauteur   = SIMP (typ='R',defaut=0.          ,statut='o',fr="Hauteur (cm) d'une des 16 petites tiges d'accrochage des barres"),
1196   Araignee4Mhauteur    = SIMP (typ='R',defaut=0.          ,statut='o',fr="Hauteur (cm) d'une des 4 tiges moyennes d'accrochage des barres"),
1197   Araignee4Ghauteur    = SIMP (typ='R',defaut=0.          ,statut='o',fr="Hauteur (cm) d'une des 4  grandes tiges d'accrochage des barres"),
1198   HauteurPommeau       = SIMP (typ='R',defaut=0.          ,statut='o',fr="Hauteur (cm) du pommeau d'accrochage de la grappe"),
1199   RayonPommeau         = SIMP (typ='R',defaut=0.          ,statut='o',fr="Rayon (cm) du pommeau d'accrochage de la grappe")
1200  ) ;  # Fin ELEMENTS_GRAPPE_COMMANDE
1201 # -----------------------------------------------------------------------------------------------------------------------------------
1202 #  Classe ELEMENTS_ABSORBANTS_FIXES :   Classe de definition des elements des grappes d'absorbants fixes
1203 #                                       Description des pyrex uniquement pour le moment
1204 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1205 ELEMENTS_ABSORBANTS_FIXES = OPER (nom="ELEMENTS_ABSORBANTS_FIXES",op=0,sd_prod=ElementsAbsorbantsFixes,
1206                           niveau = 'ElementsTechnologiquesAssemblages',
1207   fr  = "Definition des elements des grappes d'absorbants fixes",
1208   ang = "Definition of non movable absorber control rod cluster elements",
1209 # Limitation a 12 caracteres
1210 # HBouchInfPyrex        = SIMP (typ='R',statut='f'),
1211 # RBouchInfPyrex        = SIMP (typ='R',statut='f'),
1212 # HZoneVidePyrex        = SIMP (typ='R',statut='f'),
1213 # HBouchSupPyrex        = SIMP (typ='R',statut='f'),
1214 # RBouchSupPyrex        = SIMP (typ='R',statut='f'),
1215 # MatBouchonPyrex       = SIMP (typ=Materiau, statut='f')
1216   BIPyrexHauteur        = SIMP (typ='R',      statut='o',fr="Hauteur en cm du bouchon inferieur du crayon pyrex"),
1217   BIPyrexRayon          = SIMP (typ='R',      statut='o',fr="Rayon en cm du bouchon inferieur du crayon pyrex"),
1218   PyrexZoneVideHauteur  = SIMP (typ='R',      statut='o',fr="Hauteur en cm de la zone vide dans le crayon pyrex"),
1219   BSPyrexHauteur        = SIMP (typ='R',      statut='o',fr="Hauteur en cm du bouchon superieur du crayon pyrex"),
1220   BSPyrexRayon          = SIMP (typ='R',      statut='o',fr="Rayon en cm du bouchon superieur du crayon pyrex"),
1221   PyrexMateriauBouchon  = SIMP (typ=Materiau, statut='o',fr="Materiau du bouchon du crayon pyrex")
1222  ) ;  # Fin ELEMENTS_ABSORBANTS_FIXES
1223 # -----------------------------------------------------------------------------------------------------------------------------------
1224 #  Classe GRAPPE_BOUCHON_ASSEMBLAGE : Classe de definition d'une grappe bouchon REP
1225 #  Rappel : Les grappes bouchons se trouvent dans le cas des REP inseres dans la partie embout superieur de tous les assemblages
1226 #           ne comportant pas de grappe d'absorbant.
1227 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1228 GRAPPE_BOUCHON_ASSEMBLAGE = OPER (nom="GRAPPE_BOUCHON_ASSEMBLAGE",op=0,sd_prod=GrappeBouchonAssemblage,
1229                           niveau = 'ElementsTechnologiquesAssemblages',
1230   fr  = "Definition d'une grappe bouchon d'assemblage combustible",
1231   ang = "Definition d'une grappe bouchon d'assemblage combustible",
1232   HauteurPartieBasseBouchon           = SIMP (typ='R'     ,statut='o',fr="Hauteur en cm de la partie basse du bouchon"),
1233   RayonPartieBasseBouchon             = SIMP (typ='R'     ,statut='o',fr="Rayon en cm de la partie basse du bouchon"),
1234   Hauteur1PartieIntermediaire1Bouchon = SIMP (typ='R'     ,statut='o',fr="Hauteur en cm de la 1ere partie intermédiaire du bouchon"),
1235   Rayon1PartieIntermediaire1Bouchon   = SIMP (typ='R'     ,statut='o',fr="Rayon en cm de la 1ere partie intermédiaire du bouchon"),
1236   Hauteur2PartieIntermediaire2Bouchon = SIMP (typ='R'     ,statut='o',fr="Hauteur en cm de la 2eme partie intermédiaire du bouchon"),
1237   Rayon2PartieIntermediaire2Bouchon   = SIMP (typ='R'     ,statut='o',fr="Rayon en cm de la 2eme partie intermédiaire du bouchon"),
1238   RegionSousPlaqueHauteurBouchon      = SIMP (typ='R'     ,statut='o',fr="Hauteur en cm de la region sous plaque"),
1239   RegionSurPlaqueHauteurBouchon       = SIMP (typ='R'     ,statut='o',fr="Hauteur en cm de la region au-dessus de la plaque"),
1240   Rayon3BouchonRegionPlaque           = SIMP (typ='R'     ,statut='o',fr="Rayon en cm du bouchon au niveau de la plaque"),
1241   HauteurSupport                      = SIMP (typ='R'     ,statut='o',fr="Hauteur en cm du support des bouchons"),
1242   MasseGrappe                         = SIMP (typ='R'     ,statut='o',fr="Masse en g de la grappe bouchon"),
1243   Materiau                            = SIMP (typ=Materiau,statut='o',fr="Materiau de la grappe bouchon",defaut='ACIER')
1244  ) ;  # Fin GRAPPE_BOUCHON_ASSEMBLAGE
1245 # -----------------------------------------------------------------------------------------------------------------------------------
1246 #  Classe ELEMENTS_ASSEMBLAGE : Classe de définition des éléments associes a l'assemblage combustible REP
1247 #
1248 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1249 #ELEMENTS_ASSEMBLAGE = OPER (nom="ELEMENTS_ASSEMBLAGE",op=0,sd_prod=ElementsAssemblage,
1250 #
1251 #  fr  = "Definition des elements associes a l'assemblage",
1252 #  ang = "Definition of the fuel assembly associated elements",
1253 #  GrappeBouchon         = SIMP (typ=GrappeBouchonAssemblage,statut='o'),
1254 #  CrayonsAbsorbants     = SIMP (typ=ElementsAbsorbants,statut='o'),
1255 #  GrappesCommande       = SIMP (typ=ElementsGrappeCommande,statut='o')
1256 # ) ;
1257 # ----------------------------------------------------------------------------------------------------------------------------------
1258 #  Classes CONDITION_LIMITE elementaires :      Classes de definition de Conditions limites elementaires
1259 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1260 VIDE = OPER (nom="VIDE",op=0,sd_prod=Vide,   niveau = 'ConditionsLimites',
1261              fr  = "Condition aux limites de vide",
1262              ang = "Void boundary condition" ) ;
1263 REFLEXION_ISOTROPE = OPER (nom="REFLEXION_ISOTROPE",op=0,sd_prod=ReflexionIsotrope, niveau = 'ConditionsLimites',
1264                            fr  = "Condition aux limites de reflexion isotrope",
1265                            ang = "Isotropic Reflexion boundary condition" ) ;
1266 REFLEXION_SPECULAIRE = OPER (nom="REFLEXION_SPECULAIRE",op=0,sd_prod=ReflexionSpeculaire, niveau = 'ConditionsLimites',
1267                              fr  = "Condition aux limites de reflexion speculaire",
1268                              ang = "Specular Reflexion boundary condition" ) ;
1269 ALBEDO  = OPER (nom="ALBEDO",op=0,sd_prod=Albedo,   niveau = 'ConditionsLimites',
1270                 fr  = "Condition aux limites d'albedo",
1271                 ang = "Albedo boundary condition",
1272                 albedo = SIMP (typ='R',statut='o',max='**',fr="Valeurs des albedos") ) ;
1273 TRANSLATION = OPER (nom="TRANSLATION",op=0,sd_prod=Translation, niveau = 'ConditionsLimites',
1274                     fr  = "Condition aux limites de translation",
1275                     ang = "Translation boundary condition",
1276                     Vecteur = SIMP (typ=Vecteur,statut='o',fr="Axe de translation") ) ;
1277 ROTATION = OPER (nom="ROTATION",op=0,sd_prod=Rotation,   niveau = 'ConditionsLimites',
1278                  fr  = "Condition aux limites de rotation",
1279                  ang = "Rotational boundary condition",
1280                  Centre  = SIMP (typ=Point  ,statut='o',fr="Centre de la rotation"),
1281                  Vecteur = SIMP (typ=Vecteur,statut='o',fr="Axe de rotation"),
1282                  Angle   = SIMP (typ='R'    ,statut='o',fr="Angle de rotation",defaut=90.) ) ;
1283 # ----------------------------------------------------------------------------------------------------------------------------------
1284 #  Classe CONDITION_LIMITE_SPECIALE :   Classe de definition de Conditions limites sur les surfaces elementaires de la geometrie
1285 #                                       modifiant la CL generale
1286 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1287 CONDITION_LIMITE_SPECIALE = OPER (nom="CONDITION_LIMITE_SPECIALE",op=0,sd_prod=SpecialeConditionLimite,
1288                                     niveau = 'ConditionsLimites',
1289   fr  = "Condition limite particuliere qui sera plaquee sur la geometrie",
1290   ang = "Special boundary condition added to the geometry",
1291   Type = SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation),statut='o',
1292                fr="Type de condition limite a appliquer aux surfaces listees"),
1293   ZonesApplication = SIMP (typ=(Segment,ArcCercle,Conique),max='**',statut='o',
1294                            fr="Liste des segments ou surfaces sur lesquels porte la condition limite")
1295  ) ;  # Fin CONDITION_LIMITE_SPECIALE
1296 # ----------------------------------------------------------------------------------------------------------------------------------
1297 #  Classe CONDITION_LIMITE_GENERALE : Classe de definition des conditions limites de l'objet geometrique complet
1298 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1299 CONDITION_LIMITE_GENERALE = OPER (nom="CONDITION_LIMITE_GENERALE",op=0,sd_prod=GeneraleConditionLimite,
1300                                     niveau = 'ConditionsLimites',
1301   fr  = "Condition limite a la surface externe de la geometrie complete",
1302   ang = "Boundary condition for the complete geometry",
1303   ZoneCalculee              = NUPL (statut='f',min=2,max=2,fr="Droites ou plans delimitant la zone de calcul",
1304                                     elements = (SIMP (typ=(Droite,Plan)), SIMP (typ='TXM',into=('Plus','Moins')))),
1305   ParDefautCondition        = SIMP (typ=(Vide, ReflexionIsotrope, ReflexionSpeculaire, Albedo),
1306                                     defaut=ReflexionIsotrope,
1307                                     statut='f',
1308                                     fr="Condition limite par defaut"),
1309   ParticulieresConditions   = NUPL (fr       = "Conditions particulieres modifiant localement la condition limite par defaut",
1310                                     statut   = 'f', max = '**',
1311                                     elements = (SIMP (typ='TXM',into=('X-','X+','Y-','Y+','Z-','Z+','R+','X','Y','Z')),
1312                                                 SIMP (typ=(Vide,ReflexionIsotrope,ReflexionSpeculaire, Albedo, Translation, Rotation)))),
1313   SupplementairesConditions = SIMP (typ    = SpecialeConditionLimite,
1314                                     statut = 'f', max = '**',
1315                                     fr     = "Conditions limites non exprimables avec les donnees precedentes")
1316  ) ;  # Fin CONDITION_LIMITE_GENERALE
1317 # -----------------------------------------------------------------------------------------------------------------------------------
1318 #  Classe POSITION_ASSEMBLAGE_COMBUSTIBLE : Classe de definition de la position des assemblages combustibles dans un REP
1319 #                                           Reperes (bataille navale ou autre) et
1320 #                                           Coordonnees cartesiennes entieres des assemblages combustibles pour un type de palier
1321 #                                           Origine des coordonnees en bas a gauche d'un systeme en xy
1322 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1323 POSITION_ASSEMBLAGE_COMBUSTIBLE = OPER (nom="POSITION_ASSEMBLAGE_COMBUSTIBLE",op=0,sd_prod=PositionAssemblageCombustible,
1324         niveau = 'ElementsTechnologiquesReacteur',
1325   fr  = "Position des assemblages combustibles",
1326   ang = "Position of fuel assemblies",
1327   NbAssemblagesCombustibles = SIMP (typ='I',statut='o',defaut=157,fr="Nombre d'assemblages combustibles positionnes"),
1328   regles = (UN_PARMI('PositionReseau', 'Positions'),),
1329   PositionReseau = SIMP (typ=CorrespondanceReperePositionReseau,statut="f",fr="Objet donnant la correspondance entre Repere et Coordonnees entieres des assemblages"),
1330   Positions      = NUPL (max='**',statut='f',
1331                          elements=(SIMP (typ='TXM',fr="Repere alphanumerique arbitraire de l'assemblage"),
1332                                    SIMP (typ='I'  ,fr="Premiere Coordonnee entiere de l'assemblage"),
1333                                    SIMP (typ='I'  ,fr="Seconde  Coordonnee entiere de l'assemblage")))
1334  ) ;  # Fin POSITION_ASSEMBLAGE_COMBUSTIBLE
1335 # -----------------------------------------------------------------------------------------------------------------------------------
1336 #  Classe POSITION_INSTRUMENTATION_INTERNE : Classe de definition de la position des assemblages instrumentes dans le c\9cur d'un REP
1337 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1338 POSITION_INSTRUMENTATION_INTERNE = OPER (nom="POSITION_INSTRUMENTATION_INTERNE",op=0,sd_prod=PositionInstrumentationInterne,
1339         niveau = 'ElementsTechnologiquesReacteur',
1340   fr  = "Definition de la position des assemblages instrumentes",
1341   ang = "Definition of neutron flux detector position",
1342 # TypePalier                = SIMP (typ='TXM',max='**',statut='o'),
1343   NbAssemblagesInstrumentes = SIMP (typ='I',statut='o',fr="Nombre d'assemblages instrumentes"),
1344   Positions                 = NUPL (
1345       max      = '**',
1346       statut   = 'o',
1347       elements = (SIMP (typ='TXM',fr= "Type d'instrumentation (CFM, Collectron, ou Autre)"),
1348                   SIMP (typ='I',min=2,max=2,fr= "Coordonnees entieres de l'assemblage instrumente dans le reseau")))
1349  ) ;  # Fin POSITION_INSTRUMENTATION_INTERNE
1350 # -----------------------------------------------------------------------------------------------------------------------------------
1351 #  Classe IMPLANTATION_GRAPPES_COMMANDE : Classe de definition de l'implantation des grappes de commande pour un type de schema de grappe (REP)
1352 #                                         Donnees de la position (coordonnees entieres en xy), du type de grappe et du groupe d'appartenance
1353 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1354 IMPLANTATION_GRAPPES_COMMANDE = OPER (nom="IMPLANTATION_GRAPPES_COMMANDE", op=0, sd_prod=ImplantationGrappesCommande,
1355         niveau = 'ElementsTechnologiquesReacteur',
1356   fr  = "Position radiale des grappes de commande pour un schema d'implantation particulier",
1357   ang = "Control rod cluster radial positions and types",
1358   TypeSchema      = SIMP (typ='TXM',statut='o',fr="Identificateur arbitraire du type de schema"),
1359   NbTotalGrappes  = SIMP (typ='I'  ,statut='o',fr="Nombre total de grappes du schema"),
1360   PositionsEtType = NUPL (max='**' ,statut='o',
1361                           elements=(SIMP (typ='TXM',statut='o',fr="Nom du groupe de grappes"),
1362                                     SIMP (typ='I'  ,statut='o',fr="Nombre de grappes du groupe"),
1363                                     SIMP (typ='TXM',statut='o',fr="Type de grappes (exemple : '8B', '12B', '24B')"),
1364                                     SIMP (typ='I'  ,statut='o',max='**',fr="Coordonnees entieres des grappes dans le reseau coeur")))
1365  ) ;  # Fin IMPLANTATION_GRAPPES_COMMANDE
1366 # -----------------------------------------------------------------------------------------------------------------------------------
1367 #  Classe STRUCTURES_INTERNES_REACTEUR : Classe de definition des structures internes d'un coeur de REP
1368 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1369 STRUCTURES_INTERNES_REACTEUR = OPER (nom="STRUCTURES_INTERNES_REACTEUR", op=0, sd_prod=StructuresInternesReacteur,
1370         niveau = 'ElementsTechnologiquesReacteur',
1371   fr  = "Definition des structures internes d'un c\9cur REP",
1372   ang = "Definition of a PWR core internal structures",
1373   PlaqueInferieureCoeur   = FACT (
1374       Epaisseur = SIMP (typ='R',statut='o',fr="Epaisseur de la plaque inferieure du coeur en cm"),
1375       Materiau  = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la plaque inferieure du coeur"),
1376       Trous     = NUPL (
1377           max      = '**',
1378           elements = (
1379               SIMP (typ='I',                               fr="Nombre de trous dont on donne les dimensions"),
1380               SIMP (typ='TXM',into=('Rayon','Cotes'),      fr="Mot-cle indiquant si on donne le rayon ou les cotes"),
1381               SIMP (typ='R',min=2,max=2,                   fr="Rayons ou cotes des trous en cm"),
1382               SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"),
1383               SIMP (typ='R',                               fr="Hauteur du trou en cm")))),
1384   PlaqueSuperieureCoeur   = FACT (
1385       Epaisseur = SIMP (typ='R',                               fr="Epaisseur de la plaque superieure du coeur en cm"),
1386       Materiau  = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau  de la plaque superieure du coeur"),
1387       Trous     = NUPL (
1388           max      = '**',
1389           elements = (
1390               SIMP (typ='I',                               fr="Nombre de trous dont on donne les dimensions"),
1391               SIMP (typ='TXM',into=('Rayon','Cotes'),      fr="Mot-cle indiquant si on donne le rayon ou les cotes"),
1392               SIMP (typ='R',min=2,max=2,                   fr="Rayons ou cotes des trous en cm"),
1393               SIMP (typ='TXM',into=('Hauteur','Epaisseur'),fr="Mot-cle indiquant l'entree de la hauteur du trou"),
1394               SIMP (typ='R',                               fr="Hauteur du trou en cm")))),
1395   CloisonnementCoeur      = FACT (
1396       Epaisseur             = SIMP (typ='R',                                fr="Epaisseur du cloisonnement du coeur"),
1397       Materiau              = SIMP (typ=Materiau,statut='f',defaut='ACIER', fr="Materiau  du cloisonnement du coeur"),
1398       DimensionsInterieures = NUPL (
1399           max      = '**',
1400           elements = (
1401               SIMP (typ='I',                                      fr="Nombre d'assemblages dans la rangee"),
1402               SIMP (typ='TXM',into=('Assemblages','Assemblies'),  fr="Mot-cle suivant le nombre d'assemblages"),
1403               SIMP (typ='TXM',into=('Largeur','Cote'),            fr="Mot-cle precedant la largeur interieure du cloisonnement"),
1404               SIMP (typ='R',                                      fr="Largeur interieure du cloisonnement en cm"),
1405               SIMP (typ='TXM',into=('NbJeuCloisonGrille','NbJeu'),fr="Mot-cle precedant le nombre de jeux CloisonGrille"),
1406               SIMP (typ='I',                                      fr="Nombre de jeux CloisonGrille"))),
1407       TrousDepressurisation = NUPL (elements=(SIMP (typ='I',      fr="Nombre de trous de depressurisation"),
1408                                               SIMP (typ='TXM',into=('Rayon','Radius'),fr="Mot-cle precedant la valeur du rayon des trous"),
1409                                               SIMP (typ='R',fr="Rayon des trous de depressurisation en cm"))),
1410       TemperatureMoyenne    = SIMP (typ='R',fr="Temperature Moyenne du cloisonnement en Celsius")),
1411   RenfortsInternes        = FACT (statut='f',
1412       Nombre                      = SIMP (typ='I',max='**',statut='o',fr="Liste des nombres de chaque type de renfort interne"),
1413       Epaisseur                   = SIMP (typ='R',max='**',statut='o',fr="Nombre de renforts internes pour chaque type de renfort"),
1414       Materiau                    = SIMP (typ=Materiau,max='**',statut='f',defaut='ACIER',fr="Materiau de chaque type de renfort"),
1415       NbTrousDepressurisation     = SIMP (typ='I',max='**',statut='o',fr="Nombre de trous dans chaque type de renfort"),
1416       RayonsTrousDepressurisation = SIMP (typ='R',max='**',statut='o',fr="Rayons des trous dans chaque type de renfort en cm"),
1417       TemperatureMoyenne          = SIMP (typ='R',statut='f',fr="Temperature moyenne des renforts internes en Celsius")),
1418   EnveloppeVirole        = FACT (statut='f',
1419       RayonInterne       = SIMP (typ='R',statut='o',fr="Rayon interne de l'enveloppe du coeur en cm"),
1420       RayonExterne       = SIMP (typ='R',statut='o',fr="Rayon externe de l'enveloppe du coeur en cm"),
1421       Materiau           = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de l'enveloppe du coeur"),
1422       TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne de l'enveloppe du coeur en Celsius")),
1423   Boucliers              = FACT (statut='f',
1424       RayonInterne       = SIMP (typ='R',statut='o',fr="Rayon interne des boucliers thermiques du coeur en cm"),
1425       RayonExterne       = SIMP (typ='R',statut='o',fr="Rayon externe des boucliers thermiques du coeur en cm"),
1426       Materiau           = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau des boucliers thermiques du coeur"),
1427       Secteurs           = NUPL (max='**',statut='f',elements=(
1428                                  SIMP (typ='R',statut='o',fr="Angle en degres du debut du secteur du bouclier / axe Ox"),
1429                                  SIMP (typ='R',statut='o',fr="Angle en degres du secteur du bouclier"))),
1430       TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne en Celsius des boucliers du coeur")),
1431   Cuve                   = FACT (statut='f',
1432       RayonInterne       = SIMP (typ='R',statut='o',fr="Rayon interne de la cuve en cm"),
1433       RayonExterne       = SIMP (typ='R',statut='o',fr="Rayon externe de la cuve en cm"),
1434       Materiau           = SIMP (typ=Materiau,statut='f',defaut='ACIER',fr="Materiau de la cuve"),
1435       TemperatureMoyenne = SIMP (typ='R',statut='f',fr="Temperature moyenne en Celsius de la cuve"))
1436  ) ; # Fin STRUCTURES_INTERNES_REACTEUR
1437 # -----------------------------------------------------------------------------------------------------------------------------------
1438 #  Classe PRESSURISEUR : Classe de definition d'un pressuriseur REP (Valeurs par defaut pour un CP2 900)
1439 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1440 PRESSURISEUR = OPER (nom="PRESSURISEUR", op=0, sd_prod=Pressuriseur, niveau = 'ElementsTechnologiquesReacteur',
1441   fr  = "Donnees d'un pressuriseur REP",
1442   ang = "Definition of a PWR pressurizor",
1443   TmNominale            = SIMP (typ='R',statut='o',defaut=345.0  ,fr="Temperature nominale en Celsius dans le pressuriseur"),
1444   Volume                = SIMP (typ='R',statut='o',defaut=39.865 ,fr="Volume total du pressuriseur en m3"),
1445   VolumeHaut            = SIMP (typ='R',statut='o',defaut=37.196 ,fr="Volume d'eau au niveau haut du pressuriseur en m3"),
1446   VolumeBas             = SIMP (typ='R',statut='o',defaut=2.597  ,fr="Volume d'eau au niveau bas du pressuriseur en m3"),
1447   DiametreExterne       = SIMP (typ='R',statut='o',defaut=235.   ,fr="Diametre externe du pressuriseur en cm"),
1448   Hauteur               = SIMP (typ='R',statut='o',defaut=1280.  ,fr="Hauteur du pressuriseur en cm"),
1449   Pression              = SIMP (typ='R',statut='o',defaut=172.37 ,fr="Pression de calcul du pressuriseur en bars"),
1450   CapaciteChaufferette  = SIMP (typ='R',statut='o',defaut=1440.  ,fr="Capacite des chaufferettes du pressuriseur en kW"),
1451   NbChaufferettes       = SIMP (typ='I',statut='o',defaut=60     ,fr="Nombre de chaufferettes du pressuriseur"),
1452   MasseAVide            = SIMP (typ='R',statut='o',defaut=78.    ,fr="Masse a vide du pressuriseur en tonnes"),
1453   MasseEnService        = SIMP (typ='R',statut='o',defaut=95.    ,fr="Masse du pressuriseur en service normal en tonnes"),
1454   PressionDecharge      = SIMP (typ='R',statut='o',defaut=162.   ,fr="Pression d'ouverture de la decharge du pressuriseur en bars"),
1455   PressionSoupape       = SIMP (typ='R',statut='o',defaut=171.5  ,fr="Pression de tarage des soupapes de surete du pressuriseur en bars"),
1456   VolumeDecharge        = SIMP (typ='R',statut='o',defaut=37.    ,fr="Volume total du reservoir de decharge du pressuriseur en m3"),
1457   VolumeliquideDecharge = SIMP (typ='R',statut='o',defaut=25.5   ,fr="Volume de liquide du reservoir de decharge du pressuriseur en fct normal en m3")
1458  ) ;  # Fin PRESSURISEUR
1459 # -----------------------------------------------------------------------------------------------------------------------------------
1460 #  Classe GENERATEUR_VAPEUR : Classe de definition d'un generateur de vapeur REP (Valeurs par defaut pour un CP2 900) 
1461 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1462 GENERATEUR_VAPEUR = OPER (nom="GENERATEUR_VAPEUR", op=0, sd_prod=GenerateurVapeur, niveau = 'ElementsTechnologiquesReacteur',
1463   fr  = "Donnees d'un generateur de vapeur REP",
1464   ang = "Definition of a PWR Steam Generator",
1465   HauteurTotale         = SIMP (typ='R',statut='o',defaut=2064.8 ,fr="Hauteur totale d'un GV en cm"),
1466   DiametreMaximum       = SIMP (typ='R',statut='o',defaut=446.8  ,fr="Diametre maximum d'un GV en cm"),
1467   DiametreMinimum       = SIMP (typ='R',statut='o',defaut=343.4  ,fr="Diametre minimum d'un GV en cm"),
1468   NbTubes               = SIMP (typ='I',statut='o',defaut=3330   ,fr="Nombre de tubes d'un GV"),
1469   TubeDiametre          = SIMP (typ='R',statut='o',defaut=2.222  ,fr="Diametre des tubes d'un GV en cm"),
1470   TubeEpaisseur         = SIMP (typ='R',statut='o',defaut=0.127  ,fr="Epaisseur des tubes d'un GV en cm"),
1471   PasReseau             = SIMP (typ='R',statut='o',defaut=3.254  ,fr="Pas du reseau des tubes d'un GV en cm"),
1472   LongueurTube          = SIMP (typ='R',statut='o',defaut=963.7  ,fr="Longueur droite des tubes d'un GV en cm"),
1473   SurfaceEchange        = SIMP (typ='R',statut='o',defaut=4700.  ,fr="Surface d'échange d'un GV en m2"),
1474   PlaqueEpaisseur       = SIMP (typ='R',statut='o',defaut=53.4   ,fr="Epaisseur de la plaque tubulaire d'un GV en cm"),
1475   PlaqueDiametre        = SIMP (typ='R',statut='o',defaut=345.4  ,fr="Diametre de la plaque tubulaire d'un GV en cm"),
1476   NbEntretoises         = SIMP (typ='I',statut='o',defaut=8           ,fr="Nombre de plaques entretoises d'un GV"),
1477   MasseAVide            = SIMP (typ='R',statut='o',defaut=300.   ,fr="Masse a vide d'un GV en tonnes"),
1478   MasseFctNormal        = SIMP (typ='R',statut='o',defaut=364.   ,fr="Masse en fonctionnement normal d'un GV en tonnes"),
1479   MasseFaisceau         = SIMP (typ='R',statut='o',defaut=51.5   ,fr="Masse du faisceau tubulaire d'un GV en tonnes"),
1480   ViroleSupEpaisseur    = SIMP (typ='R',statut='o',defaut=9.4    ,fr="Epaisseur de la virole superieure d'un GV en cm"),
1481   ViroleInfEpaisseur    = SIMP (typ='R',statut='o',max=3,defaut=(8.4,7.4),fr="Epaisseur(s) de la virole inferieure d'un GV en cm"),
1482   MateriauEntretroises  = SIMP (typ=Materiau,statut='o',defaut='ACIER'  ,fr="Materiau des plaques entretoises d'un GV"),
1483   MateriauTube          = SIMP (typ=Materiau,statut='o',defaut='INCONEL',fr="Materiau des tubes du faisceau d'un GV"),
1484   GeomReseau            = SIMP (typ='TXM',statut='o',defaut='Carre',into=('Carre','Triangulaire'),
1485                                 fr="Type de geometrie du reseau des tubes d'un GV")
1486  ) ;  # Fin GENERATEUR_VAPEUR
1487 # -----------------------------------------------------------------------------------------------------------------------------------
1488 #  Classe POMPE_PRIMAIRE : Classe de definition d'une pompe primaire REP (Valeurs par defaut pour un CP2 900)
1489 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1490 POMPE_PRIMAIRE = OPER (nom="POMPE_PRIMAIRE", op=0, sd_prod=PompePrimaire, niveau = 'ElementsTechnologiquesReacteur',
1491   fr  = "Donnees d'une pompe primaire REP",
1492   ang = "Definition of a PWR primary pomp",
1493   Type                = SIMP (typ='TXM',statut='o', defaut='93-D7'      ,fr="Type de pompe"),
1494   TensionNominale     = SIMP (typ='R'  ,statut='o', defaut=6600.        ,fr="Tension nominale en Volts d'une pompe primaire"),
1495   VitesseRotation     = SIMP (typ='I'  ,statut='o', defaut=1485         ,fr="Vitesse de rotation tours/mn ? d'une pompe primaire"),
1496   DebitConception     = SIMP (typ='R'  ,statut='o', defaut=21250.       ,fr="Debit de conception m3/h d'une pompe primaire"),
1497   HauteurManometrique = SIMP (typ='R'  ,statut='o', defaut=90.7         ,fr="Hauteur manometrique ds pompes en mCE"),
1498   PuissanceFroid      = SIMP (typ='R'  ,statut='o', defaut=6600.        ,fr="Puissance absorbee a froid sur l'arbre de la pompe en kW"),
1499   PuissanceChaud      = SIMP (typ='R'  ,statut='o', defaut=5000.        ,fr="Puissance absorbee a chaud sur l'arbre de la pompe en kW"),
1500   PuissanceNominale   = SIMP (typ='R'  ,statut='o', defaut=5300.        ,fr="Puissance absorbee nominale par moteur en kW"),
1501   TensionMinimale     = SIMP (typ='R'  ,statut='o', defaut=0.75         ,fr="Tension minimale de démarrage en fraction de la tension nominale"),
1502   Masse               = SIMP (typ='R'  ,statut='o', defaut=93.9         ,fr="Masse d'une pompe primaire en tonnes avec huile et eau"),
1503   HauteurTotale       = SIMP (typ='R'  ,statut='o', defaut=8.1          ,fr="Hauteur totale d'une pompe primaire en cm"),
1504   Inertie             = SIMP (typ='R'  ,statut='o', defaut=3730.        ,fr="Inertie des pieces tournantes en kg.m2"),
1505   DebitInjection      = SIMP (typ='R'  ,statut='o', defaut=1800.        ,fr="Debit d'injection aux joints en l/h")
1506  ) ;  # Fin POMPE_PRIMAIRE
1507 # -----------------------------------------------------------------------------------------------------------------------------------
1508 #  Classe CARACTERISTIQUES_PALIER : Classe de definition des donnees generales d'un type de palier de reacteur
1509 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1510 CARACTERISTIQUES_PALIER = OPER (nom="CARACTERISTIQUES_PALIER",op=0,sd_prod=CaracteristiquesPalier,
1511         niveau = 'ElementsTechnologiquesReacteur',
1512   fr  = "Donnees generales pour un type de palier de reacteur",
1513   ang = "General data for a particular type of nuclear reactor",
1514   TypePalier                     = SIMP (typ='TXM',statut='o',fr="Identificateur du type de palier"),
1515   PositionCombustible            = SIMP (typ=PositionAssemblageCombustible ,statut='o',
1516                                          fr="Objet definissant la position des assemblages dans le coeur"),
1517   PositionDetecteur              = SIMP (typ=PositionInstrumentationInterne,statut='o',
1518                                          fr="Objet definissant la position des assemblages instrumentes"),
1519   StructuresInternes             = SIMP (typ=StructuresInternesReacteur    ,statut='o',
1520                                          fr="Objet definissant les structures internes du reacteur"),
1521   Pressuriseur                   = SIMP (typ=Pressuriseur                  ,statut='f',
1522                                          fr="Objet contenant les caracteristiques du pressuriseur du reacteur"),
1523   Generateur                     = SIMP (typ=GenerateurVapeur              ,statut='f',
1524                                          fr="Objet contenant les caracteristiques des GV du reacteur"),
1525   Pompes                         = SIMP (typ=PompePrimaire                 ,statut='f',
1526                                          fr="Objet contenant les caracteristiques des pompes primaires du reacteur"),
1527   CoeurPElectriqueNominle        = SIMP (typ='R',statut='o',defaut= 900.,
1528                                          fr="Puissance electrique nominale de coeur en MW"),
1529   CoeurPThermiqueNominale        = SIMP (typ='R',statut='o',defaut=2775.,
1530                                          fr="Puissance thermique nominale de coeur en MWth"),
1531   ChaudierePThermiqueNominale    = SIMP (typ='R',statut='o',defaut=2785.,
1532                                          fr="Puissance thermique nominale de la chaudiere MWth"),
1533   ChaudierePmaxThermique         = SIMP (typ='R',statut='o',defaut=2905.,
1534                                          fr="Puissance thermique maximum de la chaudiere MWth"),
1535   NbBouclesPrimaires             = SIMP (typ='I',statut='o',defaut=3,
1536                                          fr="Nombre de boucles primaires"),
1537   ProportionDebitCoeurCuve       = SIMP (typ='R',statut='o',defaut=0.97,
1538                                          fr="Rapport du debit coeur / debit cuve"),
1539   PressionNominalePrimaire       = SIMP (typ='R',statut='o',defaut=155.,
1540                                          fr="Pression nominale du circuit primaire en bars"),
1541   PerteChargeCoeurNominale       = SIMP (typ='R',statut='o',defaut=1.24,
1542                                          fr="Perte de charge nominale dans le coeur en bars"),
1543   PerteChargeCuveNominale        = SIMP (typ='R',statut='o',defaut=2.34,
1544                                          fr="Perte de charge nominale dans la cuve en bars"),
1545   TmNomSortieCuveEntreeGV        = SIMP (typ='R',statut='o',defaut=323.2,
1546                                          fr="Temperature nominale sortie Cuve / Entree GV en Celsius"),
1547   TmNomSortieGVEntreePPrimaire   = SIMP (typ='R',statut='o',defaut=285.8,
1548                                          fr="Temperature nominale sortie GV / Entree Pompe primaire en Celsius"),
1549   TmNomSortiePPrimaireEntreeCuve = SIMP (typ='R',statut='o',defaut=286.,
1550                                          fr="Temperature nominale sortie Pompe primaire / Entree Cuve en Celsius"),
1551   TmEntreeCoeurPnulle            = SIMP (typ='R',statut='o',defaut=286.0,
1552                                          fr="Temperature en Celsius du moderateur a puissance nulle a l'entree du coeur"),
1553   TmEntreeCoeurPnom              = SIMP (typ='R',statut='o',defaut=286.4,
1554                                          fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"),
1555   TmSortieCoeurPnom              = SIMP (typ='R',statut='o',defaut=324.7,
1556                                          fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"),
1557   TmMoyenneCoeurPnom             = SIMP (typ='R',statut='o',defaut=305.3,
1558                                          fr="Temperature moyenne en Celsius du moderateur dans le coeur actif"),
1559   TmMoyenneCuvePnom              = SIMP (typ='R',statut='o',defaut=305.0,
1560                                          fr="Temperature moyenne en Celsius du moderateur dans la cuve"),
1561   TmMoyenneReflecteurPnom        = SIMP (typ='R',statut='o',defaut=296.0,
1562                                          fr="Temperature moyenne en Celsius du reflecteur radial"),
1563   TcMoyennePnom                  = SIMP (typ='R',statut='o',defaut=600.0,
1564                                          fr="Temperature moyenne en Celsius du combustible dans le coeur"),
1565   TcCentrePnom                   = SIMP (typ='R',statut='o',defaut=1830.,
1566                                          fr="Temperature au centre Pastille en Celsius en fct nominal"),
1567   SectionEcoulementCoeur         = SIMP (typ='R',statut='o',defaut=3.86,
1568                                          fr="Section d'ecoulement du moderateur dans le coeur en m2"),
1569   SurfaceEchangeCoeur            = SIMP (typ='R',statut='o',defaut=4520.,
1570                                          fr="Surface d'échange dans le coeur en m2"),
1571   VolumeEauCuve                  = SIMP (typ='R',statut='o',defaut=105.8,
1572                                          fr="Volume d'eau primaire m3 dans la cuve (coeur et internes en place)"),
1573   VolumeEauPrimaire              = SIMP (typ='R',statut='o',defaut=215.,
1574                                          fr="Volume total d'eau primaire m3)"),
1575   VolumeBallonRCV                = SIMP (typ='R',statut='o',defaut=7.,
1576                                          fr="Volume du ballon RCV m3)"),
1577   DebitThermohConception         = SIMP (typ='R',statut='o',defaut=63325.,
1578                                          fr="Debit thermohydraulique de conception dans la cuve en m3/h"),
1579   DebitMecaniqueConception       = SIMP (typ='R',statut='o',defaut=70920.,
1580                                          fr="Debit mecanique de conception dans la cuve en m3/h"),
1581   BypassConception               = SIMP (typ='R',statut='o',defaut=7.,
1582                                          fr="Pourcentage de debit Conception dans le contournement du coeur en %"),
1583   BypassSpin                     = SIMP (typ='R',statut='o',defaut=4.5,
1584                                          fr="Pourcentage de debit dans le contournement du coeur en % utilise dans le SPIN"),
1585   DebitBestEstimateBoucle        = SIMP (typ='R',statut='o',defaut=21075.,
1586                                          fr="Debit best-estimate par boucle en m3/h"),
1587   DebitMassiqueNominal           = SIMP (typ='R',statut='o',defaut=47675.,
1588                                          fr="Debit massique nominal best-estimate dans la cuve en t/h"),
1589   DebitEffMassiqueNominal        = SIMP (typ='R',statut='o',defaut=45530.,
1590                                          fr="Debit massique effectif du coeur en t/h"),
1591   FluxMoyenChaleurCoeur          = SIMP (typ='R',statut='o',defaut=60.,
1592                                          fr="Flux de chaleur moyen dans le coeur W/cm2"),
1593   FluxMaxChaleurCoeur            = SIMP (typ='R',statut='o',defaut=128.,
1594                                          fr="Flux de chaleur maximal dans le coeur W/cm2"),
1595   PlinMoyen                      = SIMP (typ='R',statut='o',defaut=178.,
1596                                          fr="Puissance lineique Moyenne en W/cm"),
1597   PlinMax                        = SIMP (typ='R',statut='o',defaut=382.,
1598                                          fr="Puissance lineique Maximum en W/cm"),
1599   FacteurFQN                     = SIMP (typ='R',statut='o',defaut=2.69,
1600                                          fr="Facteur de point chaud de conception FQN"),
1601   FacteurFDH                     = SIMP (typ='R',statut='o',defaut=1.55,
1602                                          fr="Facteur total d'élévation d'enthalpie FDH de conception"),
1603   RECMinimalNominal              = SIMP (typ='R',statut='o',defaut=1.78,
1604                                          fr="REC minimal en fonctionnement nominal"),
1605   VitesseMoyenneModerCoeur       = SIMP (typ='R',statut='o',defaut=4.72,
1606                                          fr="Vitesse moyenne dans le coeur en m/s"),
1607   VitesseMassiqueModerCoeur      = SIMP (typ='R',statut='o',defaut=328.,
1608                                          fr="Vitesse massique moyenne dans le coeur en g/s.cm2"),
1609   VitesseRechaufRefroid          = SIMP (typ='R',statut='o',defaut=28.,
1610                                          fr="Vitesse normale maximale de rechauffage ou de refroidissementnormal en Celsius/h"),
1611   VitesseMaxRechaufRefroid       = SIMP (typ='R',statut='o',defaut=56.,
1612                                          fr="Vitesse maximale de rechauffage ou de refroidissementnormal en Celsius/h")
1613  ) ;  # Fin CARACTERISTIQUES_PALIER
1614 # -----------------------------------------------------------------------------------------------------------------------------------
1615 #  Classe SITE_NUCLEAIRE_EDF : Classe de definition d'un site nucleaire EDF (Tranches, paliers et numero EPN)
1616 #  Le numero EPN correspond au code de la tranche, cette donnee figure dans le fichier ASN transmis par la Division Combustible
1617 #  decrivant chaque recharge combustible (et identifie donc la tranche a laquelle elle est destinee)
1618 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1619 SITE_NUCLEAIRE = OPER (nom="SITE_NUCLEAIRE", op=0, sd_prod=SiteNucleaire, niveau = 'ElementsTechnologiquesReacteur',
1620   fr  = "Definition d'un site nucleaire EDF et de ses tranches",
1621   ang = "Definition of a nuclear power plant site",
1622   NomSite  = SIMP (typ='TXM',statut='o',fr="Nom du site nucleaire",defaut='TRICASTIN'),
1623   Tranches = NUPL (max='**',elements=(  SIMP (typ='I'  ,statut='o',fr="Numero de la tranche nucleaire"),
1624                                         SIMP (typ='TXM',statut='o',fr="Trigramme de la tranche nucleaire"),
1625                                         SIMP (typ=CaracteristiquesPalier,statut='o',fr="Type de palier"),
1626                                         SIMP (typ='I'  ,statut='o',fr="Numero EPN de la tranche")))
1627  ) ;   # Fin SITE_NUCLEAIRE
1628 # -----------------------------------------------------------------------------------------------------------------------------------
1629 #  Classe ESPACE_VARIATIONS :   Classe de definition de l'espace des parametres variables et sa discretisation.
1630 #                               De manière generale, un parametre peut valoriser un attribut quelconque de plusieurs objets. L'association
1631 #                               Parametre-Attributs se fait par l'attribut ObjetsVariations de la classe definie ci-dessous
1632 #                               de maniere purement textuelle sous la forme 'NomObjet.NomAttribut(.NomSousAttribut)[Index]'.
1633 #                               L'attribut variable peut etre un objet, auquel cas les valeurs de variation sont les noms textuels
1634 #                               des objets a remplacer successivement dans chaque calcul elementaire.
1635 #                               Il n'y a pas de verification de coherence au niveau de la saisie des donnees mais immediatement apres
1636 #                               lors de l'interpretation de l'ensemble de l'objet DonneesCasEtude .
1637 #                               Definition de la methode de balayage de cet espace (Suite d'options complementaires) :
1638 #                               1) ParametresIndependants :     Calculs independants en donnant successivement a chacun
1639 #                                                               des parametres leurs valeurs individuelles
1640 #                               2) CoinsDomaine :               Rajout des calculs aux limites extremes du domaine
1641 #                               3) BordsDomaine :               Rajout des calculs aux bords du domaine
1642 #                               4) Grilles2D :                  Rajout des calculs sur les grilles 2D
1643 #                                                               passant par un point de reference
1644 #                               5) CasParticuliers :            Rajout de points specifiques de calcul
1645 #                               6) EspaceComplet :              Balayage complet du domaine des parametres
1646 #                               Par defaut, le cas de reference est le premier cas defini soit dans CasParticuliers si les cas sont fournis
1647 #                               de cette façon, soit par les premieres valeurs rentrees pour chacun des paramètres,
1648 #                               sauf entree explicite de l'attribut CasReference
1649 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1650 ESPACE_VARIATIONS = OPER (nom="ESPACE_VARIATIONS", op=0, sd_prod=EspaceVariations, niveau = 'ParametresCalcul',
1651   fr  = "Definition de l'espace des parametres et de leurs variations",
1652   ang = "Definition of feedback or variable parameters",
1653   regles = (AU_MOINS_UN ('Variations', 'CasParticuliers'),),
1654   Variations       = NUPL (max='**',statut='f',
1655                            elements=( SIMP (typ='TXM',statut='o',fr="Nom arbitraire du parametre a faire varier"),
1656                                       SIMP (typ=('R','I','TXM'),max='**',statut='o',fr="Valeurs discretes de variation du parametre"))),
1657   ObjetsVariations = NUPL (max='**',statut='o',fr="Association Parametre et attributs des objets du modele de donnees",
1658                            elements=( SIMP (typ='TXM',statut='o',fr="Nom arbitraire du parametre a faire varier"),
1659                                       SIMP (typ='TXM',max='**',statut='o',fr="Objets, attributs et index associes au parametre"))),
1660   MethodeBalayage = SIMP (
1661       typ    = 'TXM',
1662       max    = '**',
1663       defaut = 'ParametresIndependants',
1664       into   = ('ParametresIndependants','CoinsDomaine','BordsDomaine','Grilles2D','CasParticuliers','EspaceComplet'),
1665       statut = 'o'),
1666   TypeVariation   = SIMP (typ='TXM',defaut='Absolu',into=('Relatif','Absolu'),statut='o'),
1667   CasParticuliers = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour les cas particuliers",
1668                           elements=(SIMP (typ='TXM',fr="Nom arbitraire du parametre a faire varier"),
1669                                     SIMP (typ=('I','R','TXM'),fr="Valeur du parametre"))),
1670   CasReference    = NUPL (max='**',statut='f',fr="Liste des couples (Parametre, Valeur du parametre) pour le cas de reference",
1671                           elements=(SIMP (typ='TXM',fr="Nom arbitraire du parametre a faire varier"),
1672                                     SIMP (typ=('I','R','TXM'),fr="Valeur du parametre")))
1673  ) ;   # Fin ESPACE_VARIATIONS
1674 # -----------------------------------------------------------------------------------------------------------------------------------
1675 #  Classe DONNEES_IRRADIATION : Classe de definition des valeurs d'irradiation intervenant dans les phases de calcul ou d'edition
1676 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1677 DONNEES_IRRADIATION = OPER (nom="DONNEES_IRRADIATION",op=0,sd_prod=DonneesIrradiation,
1678         niveau = 'ParametresCalcul',
1679   fr  = "Definition des donnees d'irradiation",
1680   ang = "Definition of burnup values",
1681   regles = (AU_MOINS_UN ('Irradiations', 'Refroidissement','InsertionGrappeX'),),
1682   Unite           = SIMP (typ='TXM',defaut='MWj/t',into=('MWj/t','Jours'),statut='o',fr="Unite pour les irradiations"),
1683   Minimum         = SIMP (typ='R',defaut=0.,statut='f',fr="Irradiation du debut de calcul"),
1684   Maximum         = SIMP (typ='R',defaut=100000.,statut='f',fr="Irradiation maximum des calculs"),
1685   Irradiations    = SIMP (typ='R',max='**',defaut=0.,statut='f',fr="Liste previsionnelle des irradiations"),
1686   Refroidissement = FACT (statut='f',fr="Definition de la periode de refroidissement",
1687                           Instants = SIMP (typ='R',max='**',fr="Irradiations MWj/t de debut de refroidissement du combustible"),
1688                           Duree    = SIMP (typ=('R','I'),max='**',fr="Nombre de jours de refroidissement correspondant aux instants de refroidissement")
1689                          ),
1690   InsertionGrappeX     = FACT (statut='f',fr="Simulation d'une insertion de grappe dans un assemblage seul (Mode X)",
1691         TypeGrappe            = SIMP (typ='TXM',     statut='o',fr="Type de grappe inseree"),
1692         IrradiationInsertion  = SIMP (typ=('R','I'), statut='o',max='**',fr="Irradiations MWj/t de debut d'insertion de la grappe"),
1693         IrradiationExtraction = SIMP (typ=('R','I'), statut='o',max='**',fr="Irradiations MWj/t d'extraction de la grappe"),
1694         CoteAxiale            = SIMP (typ='R',       statut='f',fr="Cote axiale (cm) de la limite inferieure de la grappe aux instants d'insertion")
1695                                 )
1696  ) ;  # Fin DONNEES_IRRADIATION
1697 # -----------------------------------------------------------------------------------------------------------------------------------
1698 #  Classe CONDITIONS_FONCTIONNEMENT_MOYENNES : Classe de definition des conditions de fonctionnement Reacteur pour une campagne donnee
1699 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1700 CONDITIONS_FONCTIONNEMENT_MOYENNES = OPER (nom="CONDITIONS_FONCTIONNEMENT_MOYENNES",op=0,sd_prod=ConditionsFonctionnementMoyennes,
1701         niveau = 'ParametresCalcul',
1702   fr  = "Definition des conditions de fonctionnement moyennes pour une campagne donnee",
1703   ang = "Definition of a campaign operating conditions ",
1704   IdentificateurCampagne       = SIMP (typ='TXM',statut='f',fr="Identificateur de la campagne"),
1705   DescriptifFonctionnement     = SIMP (typ='TXM',statut='f',fr="Descriptif textuel arbitraire du mode de fonctionnement"),
1706   regles = (UN_PARMI ('PuissanceThermiqueCoeur', 'PuissanceRelativeCoeur'),),
1707   PuissanceThermiqueCoeur      = SIMP (typ='R',statut='o',defaut=2775.,fr="Puissance thermique du reacteur en MWth"),
1708   PuissanceRelativeCoeur       = SIMP (typ='R',statut='o',defaut=100. ,fr="Puissance relative du reacteur en %"),
1709   FluxSurfaciquePn             = SIMP (typ='R',statut='o',defaut=59.74 ,fr="Flux a la surface du crayon en W/cm2"),
1710   PressionEntreePrimaire       = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression du moderateur en bars a l'entree du coeur actif"),
1711   PressionSortiePrimaire       = SIMP (typ='R',statut='o',defaut=155.1,fr="Pression moyenne du moderateur en bars en sortie du coeur actif"),
1712   TitreMoyenBore               = SIMP (typ='R',statut='o',defaut= 500.,fr="Titre moyen en ppm en bore dans le moderateur"),
1713 #
1714   TmEntreePnulle               = SIMP (typ='R',statut='o',defaut=286.0,fr="Temperature en Celsius du moderateur a puissance nulle a l'entree du coeur"),
1715   TmEntreePnom                 = SIMP (typ='R',statut='o',defaut=286.4,fr="Temperature en Celsius du moderateur a puissance nominale a l'entree du coeur"),
1716   DeltaTmEntreeSortiePnom      = SIMP (typ='R',statut='o',defaut= 39.0,fr="Ecart en Celsius de temperature entre entree et sortie du coeur a puissance nominale"),
1717   TmMoyenneCoeurPnom           = SIMP (typ='R',statut='o',defaut=305.3,fr="Temperature moyenne en Celsius du moderateur dans le coeur actif"),
1718   TmMoyenneCuvePnom            = SIMP (typ='R',statut='f',defaut=305.0,fr="Temperature moyenne en Celsius du moderateur dans la cuve"),
1719   TmMoyenneReflecteurPnom      = SIMP (typ='R',statut='f',defaut=296.0,fr="Temperature moyenne en Celsius du reflecteur radial"),
1720   TcMoyennePnom                = SIMP (typ='R',statut='f',defaut=600.0,fr="Temperature moyenne en Celsius du combustible dans le coeur"),
1721 #
1722   PositionGrappeHaute          = SIMP (typ='I',statut='f',defaut=225  ,fr="Position haute des grappes, en nombre de pas extraits"),
1723   DebitMesureParBoucle         = FACT (statut='f',max='**',fr="Debit primaire mesure sur chaque boucle en m3/h",
1724                                        DateEssai = SIMP (typ='I',min=3,max=3,fr="Date J M A de l'essai"),
1725                                        Debits    = SIMP (typ='R',min=3,max=4,fr="Valeurs des debits primaire par boucle en m3/h")
1726                                        ),
1727   NbTubesGVBouches             = SIMP (typ='I',statut='f',min=3,max=4,fr="Nombre de tubes bouches pour chaque GV")
1728  ) ; # Fin CONDITIONS_FONCTIONNEMENT_MOYENNES
1729 # -----------------------------------------------------------------------------------------------------------------------------------
1730 #  Classe CONDITIONS_TRANSITOIRE : Classe de definition des conditions de fonctionnement Reacteur pour une campagne donnee en transitoire
1731 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1732 CONDITIONS_TRANSITOIRE = OPER (nom="CONDITIONS_TRANSITOIRE", op=0, sd_prod=ConditionsTransitoire, niveau = 'ParametresCalcul',
1733   fr  = "Definition des conditions de fonctionnement en transitoire pour une campagne donnee",
1734   ang = "Definition of a campaign dynamic operating conditions ",
1735   IdentificateurCampagne          = SIMP (typ='TXM',max='**',statut='f',fr="Identificateur de la campagne"),
1736   NeutroniqueDiscretisation       = SIMP (typ='R',max='**',statut='f',fr="Liste des pas de temps successifs pour le calcul neutronique (en s)"),
1737   ThermohydrauliqueDiscretisation = SIMP (typ='R',statut='f',fr="Liste des pas de temps successifs pour le calcul thermohydraulique (en s)"),
1738   DureeTransitoire                = SIMP (typ='R',statut='o',fr="Duree totale en s du transitoire a simuler"),
1739   PuissanceThermiqueRelative      = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Puissance thermique relative du reacteur en %)"),
1740   PressionPrimaireEntree          = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Pression du moderateur en bars a l'entree du coeur actif)"),
1741   TitreBore                       = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Titre en bore dans le moderateur (en ppm))"),
1742   DebitPrimaire                   = SIMP (typ='R',max='**',statut='f',fr="Couples (Instant en s, Debit primaire dans le coeur en m3/h)")
1743 # PositionsGrappes                = SIMP (typ=PositionAxialeGrappesCommande,statut='f')
1744 # PositionsGrappes                = FACT (max='**',statut='f',
1745 #                                         RepereGrappeouGroupe = SIMP (typ='TXM',fr="Repere du groupe de grappes ou de la grappe"),
1746 #                                         Positions            = SIMP (typ='R',max='**',
1747 #                                                                      fr="Couples (Instant en s, Position dans le coeur en nombre de pas extraits)"))
1748  ) ;  # Fin CONDITIONS_TRANSITOIRE
1749 # -----------------------------------------------------------------------------------------------------------------------------------
1750 #  Classe POSITION_AXIALE_GRAPPES_COMMANDE : Classe de definition des positions axiales des grappes de commande
1751 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1752 POSITION_AXIALE_GRAPPES_COMMANDE = OPER (nom="POSITION_AXIALE_GRAPPES_COMMANDE",op=0,sd_prod=PositionAxialeGrappesCommande,
1753         niveau = 'ParametresCalcul',
1754   fr  = "Positions axiales des grappes de commande pour une campagne donnee ou pour un transitoire",
1755   ang = "Control rod cluster axial positions for a campaign or for a static or dynamic calculation",
1756   TypeDonnee    = SIMP (typ='TXM',statut='o',defaut='Statique',into=('Statique','Cinetique','Campagne'),
1757                         fr="Indication de dependance ou non d'un parametre Temps ou Irradiation"),
1758   UnitePosition = SIMP (typ='TXM',statut='o',defaut='PasExtrait',into=('PasExtrait', 'cm', 'Recouvrement')),
1759   BlocStatique  = BLOC (condition = "TypeDonnee=='Statique'",
1760                         PositionStatique = NUPL (max='**',statut='o',elements =(
1761                                           SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"),
1762                                           SIMP (typ=('R','I'),fr="Position axiale"))
1763                                           )
1764                        ),
1765   BlocCinetique  = BLOC (condition = "TypeDonnee=='Cinetique'",
1766                          PositionCinetique = FACT (max='**',statut='o',
1767                                            NomGrappeouGroupe = SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"),
1768                                            CotesAxiales      = SIMP (typ=('R','I'),max='**',
1769                                                                      fr="Liste des Couples (Instant en s, Position axiale)")
1770                                            )
1771                         ),
1772   BlocCampagne  = BLOC (condition = "TypeDonnee=='Campagne'",
1773                         PositionCampagne = FACT (max='**',statut='o',
1774                                           NomGrappeouGroupe = SIMP (typ='TXM',fr="Nom du groupe de grappes ou de la grappe"),
1775                                           CotesAxiales      = SIMP (typ=('R','I'),max='**',
1776                                                                     fr="Liste des Couples (Irradiation MWj/t, Position axiale)")
1777                                           )
1778                         )
1779   ) ;  # Fin POSITION_AXIALE_GRAPPES_COMMANDE
1780 # -----------------------------------------------------------------------------------------------------------------------------------
1781 #  Classe DATES_CLES_CAMPAGNE : Classe de definition des dates cles d'une campagne et de sa longueur
1782 #  Definition des attributs :
1783 #  LongueurNaturelleExperimentaleMWj_t : Irradiation moyenne coeur depuis le debut de la campagne jusqu'au moment du passage en
1784 #                                        prolongation de campagne (valeur experimentale transmise par le site). En cas d'anticipation,
1785 #                                        c'est la valeur recalee qui y est stockee.
1786 #  LongueurNaturelleRecaleeMWj_t : Longueur naturelle previsionnelle estimee en cours de campagne (par le suivi du bore,
1787 #                                  a chaque carte de flux)
1788 #  LongueurNaturelleTheoriqueMWj_t : Longueur naturelle estimee par le code de coeur
1789 #  LongueurAnticipationJepp : Longueur d'anticipation de campagne en Jours Equivalents Pleine Puissance
1790 #  LongueurProlongationJepp : Longueur de prolongation de campagne en Jours Equivalents Pleine Puissance
1791 #  LongueurTotaleExperimentaleMWj_t : Longueur totale de la campagne en MWj/t (Donnee transmise par le site)
1792 #  TypePlanChargement : Type de plan pour la fluence cuve : Determine par les irradiations des assemblages places sur les axes medians
1793 #                       et sur les diagonales
1794 #                       - 3 Assemblages neufs aux bouts des deux axes : Plan Standard
1795 #                       - 3 Assemblages (Irradie, Neuf, Irradie) ou (Neuf, Irradie, Neuf) sur les axes : Fluence reduite (REP 900 ou N4)
1796 #                       - 2 assemblages irradies aux bouts des diagonales : Fluence reduite (REP 1300)
1797 #                       - 3 Assemblages irradies aux bouts des deux axes : Fluence Faible (REP 900 ou N4)
1798 #                       - 3 Assemblages irradies aux bouts des deux axes et
1799 #                         2 assemblages irradies aux bouts des diagonales : Faible Fluence Generalisee
1800 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1801 DATES_CLES_CAMPAGNE = OPER (nom="DATES_CLES_CAMPAGNE", op=0, sd_prod=DatesClesCampagne, niveau = 'DonneesEtude',
1802   fr  = "Definition des dates cles d'une campagne et de ses longueurs caracteristiques",
1803   ang = "Definition of the campaign dates and lengths",
1804   IdentificateurCampagne         = SIMP (typ='TXM',statut='o',defaut='CZ101',fr="Identificateur de la campagne"),
1805   TypePlanChargement             = SIMP (typ='TXM',statut='f',defaut='FluenceFaible',
1806                                          into=('Standard','FluenceReduite','FluenceFaible','FaibleFluenceGeneralisee')),
1807   DateDDC                        = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de debut de campagne"),
1808   regles                                = (ENSEMBLE ('DatePnom','IrradiationDatePnom'),
1809                                    ENSEMBLE ('DateCouplage','IrradiationDateCouplage'),
1810                                    ENSEMBLE ('DatePassageEnProlongation','LongueurNaturelleExperimentale'),),
1811   DatePnom                       = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A d'atteinte de la puissance nominale"),
1812   IrradDatePnom                  = SIMP (typ='R',            statut='f',fr="Irradiation de la campagne a la date d'atteinte de la puissance nominale"),
1813   DateCouplage                   = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de couplage au reseau"),
1814   IrradDateCouplage              = SIMP (typ='R',            statut='f',fr="Irradiation de la campagne atteinte a la date de couplage au reseau"),
1815   DateFDC                        = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de fin de campagne reelle"),
1816   LNatTheorique                  = SIMP (typ='R',            statut='f',fr="Longueur naturelle theorique calculee de la campagne en MWj/t"),
1817   LNatRecalee                    = SIMP (typ='R',            statut='f',fr="Longueur naturelle recalee calculee de la campagne en MWj/t"),
1818   DatePassageEnProlongation      = SIMP (typ='I',min=3,max=3,statut='o',fr="Date J M A de passage en prolongation de campagne"),
1819   LnatExperimentale              = SIMP (typ='R',            statut='f',fr="Longueur naturelle mesuree de la campagne en MWj/t"),
1820   LongueurAnticipationJepp       = SIMP (typ='R',            statut='f',fr="Nombre de JEPP d'anticipation"),
1821   LongueurProlongationJepp       = SIMP (typ='R',            statut='f',fr="Nombre de JEPP de prolongation"),
1822   LongueurTotaleExperimentale    = SIMP (typ='R',            statut='f',fr="Longueur totale de la campagne en MWj/t")
1823  ) ;  # Fin DATES_CLES_CAMPAGNE
1824 # -----------------------------------------------------------------------------------------------------------------------------------
1825 #  Classe OPTIONS_AUTOPROTECTION : Classe de definition des donnees d'autoprotection du code de reseau
1826 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1827 OPTIONS_AUTOPROTECTION = OPER (nom="OPTIONS_AUTOPROTECTION",op=0,sd_prod=OptionsAutoprotection,
1828         niveau = 'OptionsCodesCalcul',
1829   fr  = "Definition des donnees d'autoprotection des resonances",
1830   ang = "Definition of resonance self shielding data",
1831   TypeCombustible          = SIMP (typ='TXM',max='**',statut='o',
1832                              fr="Type de combustible auquel s'appliquent ces options d'autoprotection"),
1833   MethodeAutoprotection    = SIMP (typ='TXM',into=('SanchezCoste','SousGroupes'),defaut='SanchezCoste',statut='f'),
1834   EnergieSupAutoprotection = SIMP (typ='R',defaut=55.5952,statut='f',
1835                                    fr="Energie superieure eV du premier groupe d'autoprotection, gpe 38 dans le cas a 99 groupes"),
1836   IsotopesAutoproteges  = NUPL (
1837       max       = '**',
1838       elements  = (SIMP (typ=Isotope,statut='o',fr="Nom de l'isotope a autoproteger"),
1839                    SIMP (typ='TXM',into=('Moyenne','Detaillee','Couronne'),statut='o'),
1840                    SIMP (typ='TXM',into=('Materiaux','Cellules'),statut='f',
1841                          fr="Choix d'autoprotection sur les materiaux ou les cellules"),
1842                    SIMP (typ='TXM',max='**',statut='f',fr="Liste des types de materiaux ou de cellules concernes"))),
1843   Irradiations  = SIMP (typ='R',max='**',statut='f',fr="Irradiations ou se font les calculs d'autoprotection"),
1844   PoisonIrradiations  = SIMP (typ='R',max='**',statut='f',
1845                         fr="Irradiations ou se font les calculs d'autoprotection des poisons integres au combustible")
1846   ) ;   # Fin OPTIONS_AUTOPROTECTION
1847 # -----------------------------------------------------------------------------------------------------------------------------------
1848 #  Classe OPTIONS_CODE_RESEAU : Classe de definition des options du code de reseau
1849 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1850 OPTIONS_CODE_RESEAU = OPER (nom="OPTIONS_CODE_RESEAU", op=0, sd_prod=OptionsCodeReseau, niveau = 'OptionsCodesCalcul',
1851   fr  = "Definition des options des codes de calcul de reseau",
1852   ang = "Definition of lattice code options",
1853   MethodeCalcul             = SIMP (typ='TXM',defaut='Multicellule',statut='o',
1854                                     into=('Multicellule','Pij','Caracteristiques','Monte-Carlo/TRIPOLI','Monte-Carlo/MCNP'),
1855                                     fr="Methode de calcul"),
1856   ProcedureBibliothequeBase = SIMP (typ='TXM',defaut='CEA93_G99_V5',statut='o',
1857                                     into=('CEA93_G99_V0','CEA93_G99_V2','CEA93_G99_V3','CEA93_G99_V4',
1858                                           'CEA93_G99_V5','CEA93_G99_V6','CEA93_G172_V4'),
1859                                     fr="Nom de la procedure Bibliotheque"),
1860   CorrectionTransport       = SIMP (typ='TXM',defaut='APOLLO',statut='o',into=('APOLLO','WIMS','Non'),
1861                                     fr="Demande ou non de correction de transport (de type APOLLO ou WIMS)"),
1862   TypeBibliothequeBase      = SIMP (typ='TXM',defaut='APOLLIB_2',statut='o',
1863                                     into=('APOLLIB_1','APOLLIB_2','DRAGON','NJOY_89','NJOY_91','WIMS_D4','WIMS_AECL'),
1864                                     fr="Format de la bibliotheque de donnees nucleaires multigroupes"),
1865   TableProbabilites         = SIMP (typ='TXM',defaut='CALENDF',statut='o',into=('CALENDF','SUBG','Non'),
1866                                     fr="Calcul des tables de probabilites mathematiques CALENDF ou physiques SUBG"),
1867   RegionPeripheriqueCellule = SIMP(typ='R',defaut=0.,statut='o',
1868                                     fr="Proportion de Volume de la zone peripherique des cellules cylindrisees"),
1869   OptionMulticellule        = SIMP (typ='TXM',defaut='ROTH',statut='o',into=('ROTH','MULTICELLULE'),
1870                                     fr="Option du calcul multicellule"),
1871   OptionPij                 = SIMP (typ='TXM',defaut='&UP0 &ROTH',statut='o',into=('&UP0 &ROTH','&UP0 &HETE','&UP1 &HETE'),
1872                                     fr="Option du calcul des Pij"),
1873   ParametresIntegration     = SIMP (typ='TXM',defaut='MAIL_INT 7 7 7 7',statut='f',
1874                                     fr="Donnees du maillage d'integration en heterogene"),
1875   ProportionNoyauxParDefaut = SIMP (typ='R',defaut=1.E-12,statut='o',
1876                                     fr="Valeur initiale des concentrations des noyaux lourds non definis"),
1877   OptionLaplacienB2         = SIMP (typ='TXM',defaut='CRITIQUE',statut='o',into=('CRITIQUE','NUL','IMPOSE'),
1878                                     fr="Option du calcul des fuites homogenes"),
1879   LaplacienB2               = SIMP (typ='R',defaut=0.,statut='o',fr="Valeur initiale du laplacien du calcul des fuites"),
1880   OrdreAnisotropie          = SIMP (typ='I',defaut=1 ,statut='o',fr="Ordre d'anisotropie des sections de transfert"),
1881   Autoprotection            = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
1882                                     fr="Calcul d'autoprotection ou non"),
1883   BlocAutoprotection  = BLOC (condition = "Autoprotection=='Oui'",
1884         DonneesAutoprotection     = SIMP (typ=OptionsAutoprotection,statut='f',max='**',
1885                                     fr="Nom des objets decrivant les isotopes a autoproteger et les options associees"),
1886         RecalculAutoprotection    = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
1887                                     fr="Demande ou non de recalcul de l'autoprotection")),
1888   Equivalence               = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'),
1889                                     fr="Demande ou non de calcul d'equivalence"),
1890   NbGroupesEquivalence      = SIMP (typ='I',max='**',defaut=(2,6,16),statut='o',
1891                                     fr="Liste des nombres de groupes des calculs d'equivalence"),
1892   EditionSaphyb             = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'),
1893                                     fr="Demande d'edition des bibliotheques de type Saphyb"),
1894   EditionAssemblage         = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
1895                                     fr="Demande d'edition des sections efficaces homogeneisees sur l'ensemble du domaine"),
1896   EditionCellule            = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
1897                                     fr="Demande d'edition des sections efficaces homogeneisees par cellule"),
1898   EditionFluxDetaille       = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
1899                                     fr="Demande d'edition des flux moyens sur l'ensemble du domaine sur la maillage multigroupe detaille"),
1900   EditionMilieu             = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),
1901                                     fr="Demande d'edition des compositions isotopiques detaillees sur tous les milieux de calcul"),
1902   EditionTrimaran           = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'),
1903                                     fr="Demande d'edition des sections efficaces pour TRIPOLI multigroupe"),
1904   SpectreNeutrons           = SIMP (typ='TXM',defaut='Prompt',statut='o',into=('Prompt','Retarde'),
1905                                     fr="Type de spectre de neutrons pour le calcul de transport"),
1906   ListeIsotopesEdites       = SIMP (typ='TXM',statut='f',max='**',fr="Liste des initiales des symboles des isotopes a editer"),
1907   FichierBickley            = SIMP (typ='TXM',statut='f',fr="Nom du fichier des fonctions Bickley"),
1908   EditionIsotopeHomogene    = SIMP (typ='TXM',defaut='Non',statut='o',into=('Oui','Non'),
1909                                     fr="Demande d'edition de constitution d'isotopes homogeneises sous forme APOLLIB"),
1910   BlocHomoge  = BLOC (condition = "EditionIsotopeHomogene=='Oui'",
1911         RepertoireHomoge          = SIMP (typ='TXM',statut='f',
1912                                     fr="Nom du repertoire du fichier des isotopes homogenes sous forme APOLLIB"),
1913         FichierHomoge             = SIMP (typ='TXM',statut='f',fr="Nom du fichier des isotopes homogenes sous forme APOLLIB")),
1914   Executable                = NUPL (statut   = 'f', elements = (
1915                                     SIMP (typ='TXM',fr="Systeme d'exploitation"),
1916                                     SIMP (typ='TXM',fr="Nom du fichier executable"))),
1917   ProceduresApollo2         = FACT (statut='f',
1918                                     OptionsListing  = SIMP (typ='TXM',statut='f',fr="Commandes Gibiane des options d'edition listing"),
1919                                     Evolution       = SIMP (typ='TXM',statut='f',fr="Procedure d'evolution"),
1920                                     Reprise         = SIMP (typ='TXM',statut='f',fr="Procedure de reprise"),
1921                                     Equivalence     = SIMP (typ='TXM',statut='f',fr="Procedure d'equivalence"),
1922                                     EditionCellule  = SIMP (typ='TXM',statut='f',fr="Procedure d'edition par cellule"),
1923                                     EditionHomoge   = SIMP (typ='TXM',statut='f',fr="Procedure d'edition des isotopes Homoge")
1924                                     ),
1925   ProceduresSunset          = FACT (statut='f',
1926                                     Evolution       = SIMP (typ='TXM',statut='f',fr="Procedure d'evolution"),
1927                                     Reprise         = SIMP (typ='TXM',statut='f',fr="Procedure de reprise")
1928                                     )
1929   ) ;  # Fin OPTIONS_CODE_RESEAU
1930 # -----------------------------------------------------------------------------------------------------------------------------------
1931 #  Classe OPTIONS_CODE_COEUR_STATIQUE : Classe de definition des options du code de coeur en statique
1932 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1933 OPTIONS_CODE_COEUR_STATIQUE = OPER (nom="OPTIONS_CODE_COEUR_STATIQUE", op=0, sd_prod=OptionsCodeCoeurStatique, niveau = 'OptionsCodesCalcul',
1934   fr  = "Definition des options des codes de calcul de coeur en statique",
1935   ang = "Definition of core code static options",
1936   DeltaReactivite = SIMP (typ='TXM',statut='o',defaut='DeltaRo',into=('DeltaRo','LogKeff'),
1937                           fr="Methode de calcul de variation de reactivite entre deux etats"),
1938   OxMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe x d'un assemblage"),
1939   OyMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe y d'un assemblage"),
1940   OzMaillageFlux = SIMP (typ=Maillage1D,statut='o',fr="Maillage du calcul de flux suivant l'axe z d'un assemblage"),
1941   ReactiviteVisee           = SIMP (typ='R',defaut=  0.,statut='o',fr="Valeur en pcm de la reactivite visee en calcul critique"),
1942   EfficaciteBoreEstimee     = SIMP (typ='R',defaut= -6.,statut='o',fr="Valeur estimee en pcm/ppm de l'efficacite du bore"),
1943   TitreBoreInitiale         = SIMP (typ='R',defaut=600.,statut='o',fr="Valeur estimee en ppm du titre en bore du moderateur"),
1944   Factorisation             = SIMP (typ='TXM',defaut='Non',statut='o',into=('Coeur2D','Assemblage','Non'),
1945                                     fr="Option ou non de factorisation par le flux fin Coeur ou Assemblage"),
1946   AxialTypeReflecteurs      = SIMP (typ='TXM',defaut='Equivalent',statut='o',into=('Equivalent','Homogeneise')),
1947   RadialTypeReflecteurs     = SIMP (typ='TXM',defaut='Equivalent',statut='o',into=('Equivalent','Homogeneise')),
1948   ReflAxiauxEquivalents     = BLOC (condition = "TypeReflecteursAxiaux=='Equivalent'",
1949                                     ReflecteurInferieur = SIMP (typ=SectionsReflecteur,statut='o'),
1950                                     MaillageInferieur   = SIMP (typ=Maillage1D,statut='o'),
1951                                     ReflecteurSuperieur = SIMP (typ=SectionsReflecteur,statut='o'),
1952                                     MaillageSuperieur   = SIMP (typ=Maillage1D,statut='o')
1953                                     ),
1954   ReflAxiauxHomogeneises = BLOC (condition = "TypeReflecteursAxiaux=='Homogeneise'",
1955                                  AxialAbscisses = SIMP (typ='R'     ,statut='o',max='**'),
1956                                  AxialMateriaux = SIMP (typ=Materiau,statut='o',max='**')
1957                                  ),
1958   ReflRadialEquivalent    = BLOC (condition = "TypeReflecteurRadial=='Equivalent'",
1959                                   ReflecteurRadial = SIMP (typ=SectionsReflecteur,statut='o'),
1960                                   Epaisseur        = SIMP (typ='R'     ,statut='o')
1961                                   ),
1962   ReflRadialHomogeneise   = BLOC (condition = "TypeReflecteurRadial=='Homogeneise'",
1963                                   RadialAbscisses = SIMP (typ='R'     ,statut='o',max='**'),
1964                                   RadialMateriaux = SIMP (typ=Materiau,statut='o',max='**')
1965                                   ),
1966   ApproximationMigration    = SIMP (typ='TXM',defaut='SPn',statut='o',into=('SPn','Sn','Diffusion')),
1967   BlocSPn = BLOC (condition = "ApproximationTransport=='SPn'",
1968                         SPnOrdreApproximation = SIMP (typ='I'  ,defaut=1,statut='o',fr="Ordre n impair de la methode SPn"),
1969                         SPnElementFini        = SIMP (typ='TXM',defaut='RTN0',statut='o',into=('RTN0','RTN1'),fr="Type d'element fini"),
1970                         SPnMaxIterDiffusion   = SIMP (typ='I'  ,defaut=1,into=(1,2,3,4,5),statut='o',
1971                                                       fr="Nombre maximal d'iterations de diffusion")
1972                        ),
1973   BlocSn = BLOC (condition = "ApproximationTransport=='Sn'",
1974                         SnOrdreApproximation = SIMP (typ='I'  ,defaut=4,statut='o',fr="Ordre n pair de la methode Sn"),
1975                         SnElementFini        = SIMP (typ='TXM',defaut='RTN',statut='o',into=('RTN','BDM'),fr="Type d'element fini"),
1976                         SnAcceleration       = SIMP (typ='TXM',defaut='Oui',statut='o',into=('Oui','Non'),fr="Acceleration par la diffusion"),
1977                         SnMaxIterDiffusion   = SIMP (typ='I'  ,defaut=20,statut='o',fr="Nombre maximal d'iterations de calcul de diffusion")
1978                        ),
1979   BlocDiff = BLOC (condition = "ApproximationTransport=='Diffusion'",
1980                         MaxIterFlux     = SIMP (typ='I',defaut= 5       ,statut='o',fr="Maximum d'iterations du calcul de flux"),
1981                         MaxIterKeff     = SIMP (typ='I',defaut=50       ,statut='o',fr="Maximum d'iterations du calcul de keff"),
1982                         PrecPuissance   = SIMP (typ='R',defaut=0.005    ,statut='o',fr="Precision sur la puissance"),
1983                         PrecKeff        = SIMP (typ='R',defaut=0.0001   ,statut='o',fr="Precision sur keff")
1984                        ),
1985   PrecisionValeurPropre       = SIMP (typ='R',defaut=1.E-5,statut='o',fr="Precision sur la valeur propre"),
1986   PrecisionFlux               = SIMP (typ='R',defaut=1.E-3,statut='o',fr="Precision sur le flux"),
1987   PrecisionMultigroupe        = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision de la resolution multigroupe"),
1988   PrecisionIterTermeDiffusion = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision des iterations sur le terme de diffusion"),
1989   MaxIterEnergie              = SIMP (typ='I',defaut=1,statut='o',
1990                                       fr="Nombre maximal d'iterations pour la resolution Gauss Seidel en energie"),
1991   MaxIterTermeDiffusion       = SIMP (typ='I',defaut=1,statut='o',fr="Nombre maximal d'iterations sur le terme de diffusion"),
1992   MaxIterDecompositionDomaine = SIMP (typ='I',defaut=1,statut='o',fr="Nombre d'iterations de decomposition de domaine"),
1993   MaxIterKeffAvantCR          = SIMP (typ='I',defaut=1,statut='o',fr="Nombre de calculs de keff avant appel aux contre-reactions")
1994   ) ;  # Fin OPTIONS_CODE_COEUR_STATIQUE
1995 # -----------------------------------------------------------------------------------------------------------------------------------
1996 #  Classe OPTIONS_CODE_COEUR_CINETIQUE : Classe de definition des options du code de coeur en cinetique
1997 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1998 OPTIONS_CODE_COEUR_CINETIQUE = OPER (nom="OPTIONS_CODE_COEUR_CINETIQUE", op=0, sd_prod=OptionsCodeCoeurCinetique, niveau = 'OptionsCodesCalcul',
1999   fr  = "Definition des options des codes de calcul de coeur en cinetique",
2000   ang = "Definition of core code kinetic options",
2001   NombrePrecurseurs              = SIMP (typ='I',defaut=6,statut='o',fr="Nombre de groupes de precurseurs"),
2002   GestionAutomatiquePasCinetique = SIMP (typ='TXM',defaut='Oui',into=('Oui','Non'),statut='o',
2003                                          fr="Gestion automatique du pas de temps du calcul cinetique"),
2004   BlocSansGestionPas             = BLOC (condition = "GestionAutomatiquePasCinetique=='Non'",
2005                                          DefinitionPasDeTemps = SIMP (typ='R',max='**',statut='o',
2006                                          fr="Liste de couples (pas de temps, limite superieure de validite du pas de temps)"),
2007                                                ),
2008   PrecisionIterationFluxPrecurseurs    = SIMP (typ='R',defaut=1.E-6,statut='o',fr="Precision sur les iterations Flux Precurseurs"),
2009   PrecisionParametreGestionAutomatique = SIMP (typ='R',defaut=0.0008,statut='o',fr="Precision sur les iterations Flux Precurseurs"),
2010   MaxIterationsFluxPrecurseurs         = SIMP (typ='I',defaut=50,statut='o',fr="Nombre maximal d'iterations Flux Precurseurs"),
2011   ThetaSchemaCinetique                 = SIMP (typ='R',defaut=0.5,statut='o',fr="Valeur du parametre theta du schema cinetique")
2012   ) ;  # Fin OPTIONS_CODE_COEUR_CINETIQUE
2013 # -----------------------------------------------------------------------------------------------------------------------------------
2014 #  Classe OPTIONS_THERMIQUE_THERMOHYDRAULIQUE : Classe de definition des options du code de coeur en cinetique
2015 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2016 OPTIONS_THERMIQUE_THERMOHYDRAULIQUE = OPER (nom="OPTIONS_THERMIQUE_THERMOHYDRAULIQUE", op=0, sd_prod=OptionsThermiqueThermohydraulique, niveau = 'OptionsCodesCalcul',
2017   fr  = "Definition des options des modules de calcul de coeur thermique et thermohydraulique simplifiees",
2018   ang = "Definition of thermohydraulic and thermic module options",
2019   HGaineFluide                        = SIMP (typ='TXM',defaut='DITTUS_BOELTER',into=('FLICA','DITTUS_BOELTER'),statut='o',
2020                                               fr="Option du Coefficient d'echange gaine-fluide (flux < au flux critique)"),
2021   HGaineFluideEbullition              = SIMP (typ='TXM',defaut='BST',into=('BST','TONG'),statut='o',
2022                                               fr="Option du Coefficient d'echange gaine-fluide (Ebullition en film)"),
2023   OptionHGapConstantTransitoire       = SIMP (typ='TXM',defaut='Non',into=('Non','Oui'),statut='o',
2024                                                                      fr="Option de constance du coefficient d'echange JeuPastilleGaine"),
2025   OptionHGap                          = SIMP (typ='TXM',defaut='HGAP_88',into=('EJECTION','TUO2','PLIN_BU','FIXE','HGAP_88'),statut='o',
2026                                               fr="Option de calcul du Coefficient d'echange du jeu pastille-gaine"),
2027   BlocHgapTuo2                        = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='TUO2'",
2028                                               Tuo2Initiale = SIMP (typ='R',statut='o',
2029                                                                    fr="Temperature initiale combustible pour le calcul du coefficient d'echange") ),
2030   BlocHgapFixe                        = BLOC (condition = "CoefficientEchangeJeuPastilleGaine=='FIXE'",
2031                                               Hgap = SIMP (typ='R',statut='o',defaut=5850.,fr="Valeur imposée du coefficient d'echange") ),
2032   ConductiviteCombustible             = SIMP (typ='TXM',defaut='HGAP_88',into=('STORA','WESTINGHOUSE','HGAP_88','COMETHE'),statut='o',
2033                                                        fr="Option du Coefficient de conductivite du combustible"),
2034   CapaciteCalorifiqueCombustible      = SIMP (typ='TXM',defaut='UO2_FRAMATOME',into=('UO2_BATES','UO2_FRAMATOME','UO2_THYC'),statut='o',
2035                                                        fr="Option du Coefficient de conductivite du combustible"),
2036   MateriauGaine                       = SIMP (typ='TXM',defaut='ZIRCALOY_CYRANO',into=('ZIRCALOY_CYRANO', 'ZIRCALOY_THYC', 'INCOLOY_800',
2037                                                                'CHROMESCO_3', 'INOX_16', 'INOX_321', 'INOX_347', 'INOX_347_OXYDE',
2038                                                                'INCONEL_600', 'NICKEL_75', 'PLATINE'),statut='o',
2039                                               fr="Materiau de la gaine pour le calcul du roCp de la gaine et de sa conductivite"),
2040   FluxCritique                        = SIMP (typ='R',defaut=180.E4,statut='o',fr="Valeur du flux critique en W/m2"),
2041   FractionPuissanceCombustible        = SIMP (typ='R',defaut=0.974,statut='o',fr="Fraction de la puissance degagee dans le combustible"),
2042   Creusement                          = SIMP (typ='TXM',defaut='Uniforme',statut='o',
2043                                               into=('Uniforme','Runnals','Framatome','Twinkle','Mox','EDF','Specifique')),
2044   BlocCreusement                      = BLOC (condition = "Creusement=='Specifique'",
2045                                               RayonsCreusement = SIMP (typ='R',statut='o',fr="Rayons de definition du creusement de puissance (nz)"),
2046                                               IrradiationsCreusement = SIMP (typ='R',statut='o',fr="Irradiations de definition du creusement de puissance (nbu)"),
2047                                               EnrichissementsCreusement = SIMP (typ='R',statut='o',fr="Enrichissements de definition du creusement de puissance (nen)"),
2048                                               PuissancesUO2 = SIMP (typ='R',max='**',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille UO2"),
2049                                               PuissancesMOX = SIMP (typ='R',statut='f',fr="Valeurs des creusements de puissance P(nz,nbu,nen) dans une pastille MOX") ),
2050   PastilleDiscretisation              = SIMP (typ='I',defaut=4,statut='o',fr="Nombre de points de discretisation radiale de la pastille combustible"),
2051   GaineDiscretisation                 = SIMP (typ='I',defaut=2,statut='o',
2052                                               fr="Nombre de points de discretisation radiale de la gaine de la pastille combustible"),
2053   ThermiquePrecision                  = SIMP (typ='R',defaut=0.1,statut='o',fr="Precision en Celsius du calcul thermique radiale du crayon"),
2054   ThermohydrauliquePrecision          = SIMP (typ='R',defaut=0.01,statut='o',
2055                                               fr="Precision en Celsius du calcul thermohydraulique de la temperature du moderateur"),
2056   MaxIterThermique                    = SIMP (typ='I',defaut=100,statut='o',
2057                                               fr="Nombre maximum d'iterations du calcul de thermique"),
2058   MaxIterThermohydraulique            = SIMP (typ='I',defaut=100,statut='o',
2059                                               fr="Nombre maximum d'iterations du calcul de thermohydraulique"),
2060   MethodeIntegrationThermohydraulique = SIMP (typ='TXM',defaut='Gauss',statut='o',into=('Gauss','NonGauss'),
2061                                               fr="Methode d'integration thermohydraulique"),
2062   PerteDeCharge                       = SIMP (typ='TXM',defaut='Non',statut='o',into=('Non','Oui'),
2063                                               fr="Prise en compte ou non de la perte de charge axiale"),
2064   TableEau                            = SIMP (typ='TXM',defaut='Thetis',statut='o',into=('Thetis','Interne'),
2065                                               fr="Calcul des caracteristiques du moderateur par THETIS ou par des tables internes")
2066  ) ;  # Fin OPTIONS_THERMIQUE_THERMOHYDRAULIQUE
2067 # -----------------------------------------------------------------------------------------------------------------------------------
2068 #  Classe OPTIONS_CONTRE_REACTIONS_COEUR : Classe de definition des options du code de coeur en cinetique
2069 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2070 OPTIONS_CONTRE_REACTIONS_COEUR = OPER (nom="OPTIONS_CONTRE_REACTIONS_COEUR", op=0, sd_prod=OptionsContreReactionsCoeur, niveau = 'OptionsCodesCalcul',
2071   fr  = "Definition des options des modules de calcul de contre-reactions coeur",
2072   ang = "Definition of feedback module options",
2073   Iter2dCRN            = SIMP (typ='I',defaut=30,statut='o',fr="Nombre maximal d'iterations de contre-reactions en 2D, si 0 pas de CRN"),
2074   Iter3dCRN            = SIMP (typ='I',defaut=15,statut='o',fr="Nombre maximal d'iterations de contre-reactions en 3D, si 0 pas de CRN"),
2075   CoeffAttenuation     = SIMP (typ='R',defaut=0.8,statut='o',fr="Coefficient d'attenuation des contre-reactions"),
2076   PrecisionPuissance   = SIMP (typ='R',defaut=1.E-4,statut='o',fr="Precision sur la puissance a la fin des iterations de contre-reactions"),
2077   PrecisionKeff        = SIMP (typ='R',defaut=1.E-5,statut='o',fr="Precision sur keff a la fin des iterations de contre-reactions"),
2078   MethodeCalculSection = SIMP (typ='TXM',defaut='TabulationLineaire',into=('Spline1D','SplinenD','TabulationLineaire'),statut='o',
2079                                fr="Methode d'interpolation des sections efficaces avec Contre-reactions"),
2080   FigerCRN             = SIMP (typ='TXM',statut='f',max='**',fr="Liste des parametres de contre-reactions a figer")
2081  ) ;  # Fin OPTIONS_CONTRE_REACTIONS_COEUR
2082 # -----------------------------------------------------------------------------------------------------------------------------------
2083 #  Classe OPTIONS_CODES : Classe de definition des options generales et du type de calcul demande
2084 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2085 OPTIONS_CODES = OPER (nom="OPTIONS_CODES", op=0, sd_prod=OptionsCodes, niveau = 'OptionsCodesCalcul',
2086   fr  = "Definition des options des codes de calcul",
2087   ang = "Definition of calculation code options",
2088   regles = (AU_MOINS_UN('OptionsReseau', 'OptionsStatiqueCoeur', 'OptionsCinetiqueCoeur','OptionsThermo', 'OptionsCRNCoeur'),),
2089   OptionsReseau         = SIMP (typ=OptionsCodeReseau                ,statut='f', fr="Options du code de reseau"),
2090   OptionsStatiqueCoeur  = SIMP (typ=OptionsCodeCoeurStatique         ,statut='f', fr="Options du code de coeur en statique"),
2091   OptionsCinetiqueCoeur = SIMP (typ=OptionsCodeCoeurCinetique        ,statut='f', fr="Options du code de coeur en cinetique"),
2092   OptionsThermo         = SIMP (typ=OptionsThermiqueThermohydraulique,statut='f', fr="Options des modules de thermique et thermohydraulique simplifiées)"),
2093   OptionsCRNCoeur       = SIMP (typ=OptionsContreReactionsCoeur      ,statut='f', fr="Prise en compte des contre-reactions ou non")
2094  ) ;  # Fin OPTIONS_CODES
2095 # ----------------------------------------------------------------------------------------------------------------------------------
2096 #  Classe RESSOURCES_INFORMATIQUES : Classe de definition des ressources de calcul informatiques
2097 #                                    Cette classe est liee aux possibilites du gestionnaire du traitement par lots et pour le moment
2098 #                                    les attributs affiches sont dependants de LSF :
2099 #                                       si on donne un type   de serveur       : bsub -R "type=USPARC" monjob
2100 #                                       si on donne un modele de serveur       : bsub -R "model=HPK640" monjob
2101 #                                       si on donne un type   de ressource     : bsub -R "Solaris" monjob
2102 #                                       si on donne des machines particulieres : bsub -m " Nommachine1 NomMachine2 " monjob
2103 #                                    Dans le cas des machines particulieres, il est necessaire de fournir aussi le systeme d'exploitation
2104 #                                    associe (ceci pour distinguer les fichiers necessaires en entree, leurs noms devant contenir
2105 #                                    le nom du systeme d'exploitation (les fichiers etant differents a priori suivant l'OS utilise
2106 #                                    et de format non portable)
2107 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2108 RESSOURCES_INFORMATIQUES = OPER (nom="RESSOURCES_INFORMATIQUES",sd_prod=RessourcesInformatiques,op=0,niveau = 'ConfigurationInformatique',
2109   fr     = "Definition des systemes d'exploitation et des calculateurs de l'etude",
2110   ang    = "Software operating system and computers used",
2111   regles = (UN_PARMI('TypesServeursCibles', 'ModelesServeursCibles','OSCible','CalculateursCibles'),),
2112   TypesServeursCibles   = SIMP (typ='TXM',statut='f',max='**',defaut='USPARC' ,into=('SPARC', 'USPARC', 'PWR2', 'HPPA20', 'ALPHA'),
2113                                 fr="Liste des types de serveurs cibles pour la soumission des calculs"),
2114   ModelesServeursCibles = SIMP (typ='TXM',statut='f',max='**',defaut='U2200'  ,into=('SS1000E','U2200','IBM3BT','HPK460','DEC5400','U1140'),
2115                                 fr="Liste des modeles de serveurs cibles pour la soumission des calculs"),
2116   OSCible               = SIMP (typ='TXM',statut='f',         defaut='solaris',into=('solaris','aix','usparc','alpha','hpux'),
2117                                 fr="Type de ressource cible pour la soumission des calculs"),
2118   CalculateursCibles    = NUPL (statut='f',max='**',fr="Liste des noms des calculateurs cibles pour la soumission des calculs",
2119                                 elements = (SIMP (typ='TXM',statut='o',fr="Nom du calculateur cible"),
2120                                             SIMP (typ='TXM',statut='o',fr="Systeme d'exploitation de la machine cible",
2121                                                   defaut='solaris',into=('solaris','aix','usparc','alpha','hpux')))
2122                                 )
2123  ) ;  # Fin RESSOURCES_INFORMATIQUES
2124 # -----------------------------------------------------------------------------------------------------------------------------------
2125 #  Classe DONNEES_CAS_ETUDE :     Classe de definition des caracteristiques globales d'un cas de l'etude
2126 #                                       Definition de la centrale (site, numero de tranche) et numero de campagne d'irradiation
2127 #                                       Ces caracteristiques  d'environnement de l'etude doivent permettre de recuperer l'ensemble
2128 #                                       des parametres de fonctionnement nominales du reacteur sujet de l'etude (creation de
2129 #                                       bibliotheques ou calcul de coeur)
2130 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2131 DONNEES_CAS_ETUDE = OPER (nom="DONNEES_CAS_ETUDE", op=0, sd_prod=DonneesCasEtude, niveau = 'DonneesEtude',
2132   fr  = "Definition de la centrale sujet du cas de l'etude et des options globales du cas",
2133   ang = "Definition of the power plant and of the global options of the calculation case",
2134   TypeCode               = SIMP (typ='TXM',defaut='Reseau',into=('Reseau','Coeur'),statut='o'),
2135   SiteNucleaire          = SIMP (typ=SiteNucleaire,defaut='TRICASTIN',statut='o'),
2136   BlocCoeur              = BLOC (condition = "TypeCode=='Coeur'",
2137                            NumeroTranche          = SIMP (typ='I',defaut=1,statut='o',fr="Numero de la tranche nucleaire"),
2138                            NumeroCampagne         = SIMP (typ='I',defaut=1,statut='o',fr="Numero de la campagne d'irradiation"),
2139                            IdentificateurCampagne = SIMP (typ='TXM',defaut='TN101',statut='o',fr="Identificateur de la campagne"),
2140                            DatesCampagne          = SIMP (typ=DatesClesCampagne,statut='f',fr="Dates cles de la campagne"),
2141                            TypeGestion            = SIMP (typ    = 'TXM',
2142                                                           defaut = '370Q',
2143                                                           statut = 'f', fr="Type de gestion du combustible",
2144                                                           into   = ('310Q','310T','325T','325Q','340Q','345AL',
2145                                                                     '370Q','370T','400T','HMOX','MOXNT','TMOX')),
2146                            TypeSchemaGrappe       = SIMP (typ    = 'TXM',
2147                                                           defaut = '900CPYUO2',
2148                                                           statut = 'f',fr="Type de schema d'implantation des grappes",
2149                                                           into   = ('900CP0','900CPYUO2INITIAL','900CPYUO2',
2150                                                                     '900CPYUO2AL','900CPYMOX','1300','N4')),
2151                            TypeEvaluationSurete  = SIMP (typ='TXM',defaut='900STD',statut='f',fr="Type d'evaluation de surete",
2152                                                          into=('900STD','900GARANCE','1300STD','1300GEMMES','N4STD')),
2153                            ModePilotage          = SIMP (typ='TXM',defaut='G',statut='f',into=('A','G','X'),fr="Mode de pilotage de la tranche"),
2154                            ImplantationGrappe    = SIMP (typ=ImplantationGrappesCommande,statut='f',fr="Schema d'implantation des grappes de commande dans le coeur"),
2155                            PositionAxialeGrappes = SIMP (typ=PositionAxialeGrappesCommande,statut='f',fr="Positions axiales des grappes de commande"),
2156                            PlanChargement        = SIMP (typ=Reseau,statut='o',fr="Plan de chargement du reseau coeur"),
2157                            Penalites             = SIMP (typ=PenaliteAssemblage,statut='f',max='**',fr="Liste des objets PenalitesAssemblage"),
2158                            ActivitesMesurees     = SIMP (typ=ActivitesExperimentales,statut='f',fr="Carte d'activite experimentale"),
2159 #                          OptionsStatique       = SIMP (typ=OptionsCodeCoeurStatique,statut='f'),
2160 #                          OptionsCinetique      = SIMP (typ=OptionsCodeCoeurCinetique,statut='f'),
2161                            CodeCalculC           = SIMP (typ='TXM',defaut='CodeSn',statut='o',fr="Type de code de coeur a utiliser")),
2162   BlocReseau            = BLOC (condition = "TypeCode=='Reseau'",
2163                            Assemblage            = SIMP (typ=(AssemblageType,ReparationAssemblage),statut='o',fr="Objet Assemblage a reparer et a calculer"),
2164 #                          Options               = SIMP (typ=OptionsCodeReseau,statut='f'),
2165                            CodeCalculR           = SIMP (typ='TXM',defaut='SUNSET',statut='o',fr="Code de reseau a utiliser")),
2166   Domaines              = SIMP (typ=DecompositionDomaines            ,statut='f',fr="Objet definissant la decomposition de domaines"),
2167   ConditionsMoyennes    = SIMP (typ=ConditionsFonctionnementMoyennes ,statut='f',fr="Objet definissant les conditions de fonctionnement moyennes"),
2168   Transitoire           = SIMP (typ=ConditionsTransitoire            ,statut='f',fr="Objet contenant les conditions du transtoire"),
2169   Variations            = SIMP (typ=EspaceVariations                 ,statut='f',fr="Objet definissant l'espace de variations des parametres d'une etude parametrique"),
2170   Irradiations          = SIMP (typ=DonneesIrradiation               ,statut='f',fr="Objet definissant les irradiations du calcul"),
2171   Gestion               = SIMP (typ=ParametresCalculGestion               ,statut='f',fr="Parametres du calcul de gestion"),
2172   Ajustement            = SIMP (typ=DonneesAjustement                ,statut='f',fr="Parametres d'ajustement du calcul"),
2173   Accidents             = SIMP (typ=DonneesAccidents                 ,statut='f',fr="Donnees des calculs d'accidents"),
2174   Pilotage              = SIMP (typ=DonneesPilotageGeneral           ,statut='f',fr="Donnees generales de pilotage du reacteur"),
2175   Calibrage             = SIMP (typ=CalibrageGroupes                 ,statut='f',fr="Donnees de calibrage des groupes de commande du reacteur"),
2176   Stretch               = SIMP (typ=ProlongationCampagne             ,statut='f',fr="Objet definissant la prolongation de campagne"),
2177   Bibliotheques         = SIMP (typ=FichierBibliothequeIsotopes      ,statut='f',fr="Fichiers des bibliotheques de donnees de base"),
2178   Ressources            = SIMP (typ=RessourcesInformatiques               ,statut='f',fr="Objet definissant les ressources informatiques a utiliser"),
2179   ConditionLimite       = SIMP (typ=GeneraleConditionLimite               ,statut='o',fr="Objet definissant les conditions limites"),
2180   Options               = SIMP (typ=OptionsCodes                     ,statut='o',fr="Options des codes impliques dans le calcul"),
2181   TypeCalcul            = SIMP (typ='TXM',max='**',defaut='Evolution',statut='o',
2182                                 into=('Evolution','EvolutionMicroscopique','EvolutionRefroidissement','Reprise','Statique','Cinetique',
2183                                       'BoreImpose','BoreCritique')      ,fr="Type de calcul demande")
2184  ) ;  # Fin DONNEES_CAS_ETUDE
2185 class resultat(TObjet): pass
2186 class resultat2(resultat): pass
2187 CALCUL=OPER(nom="CALCUL",op=10,sd_prod=resultat,
2188             niveau = 'Operateurs',
2189             materiau=SIMP(typ=Materiau),
2190             PRESSION=SIMP(defaut=10000.,typ="R")
2191             );
2192 CALCUL2=OPER(nom="CALCUL2",op=11,sd_prod=resultat2,
2193              niveau = 'Operateurs',
2194              donnee=SIMP(typ=resultat),
2195              materiau=SIMP(typ=Materiau),
2196             );
2197 # ----------------------------------------------------------------------------------------------------------------------------------
2198 #  Classe SECTIONS_REFLECTEUR : Classe de definition des sections efficaces multigroupes des reflecteurs
2199 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2200 SECTIONS_REFLECTEUR = OPER (nom="SECTIONS_REFLECTEUR",sd_prod=SectionsReflecteur,op=0,niveau = 'SectionsEfficaces',
2201   fr  = "Definition des sections efficaces equivalentes d'un reflecteur",
2202   ang = "Equivalent reflector cross sections",
2203   NbGroupesEnergie      = SIMP (typ='I'  ,statut='o',defaut=2,fr="Nombre de groupes d'energie"),
2204   LimitesEnergie        = SIMP (typ='R'  ,statut='o',defaut=(0.,0.0625,1.E7),max='**',fr="Limites des groupes d'energie"),
2205   DeltaLethargie        = SIMP (typ='R'  ,statut='o',max='**',fr="Largeur en lethargie des groupes d'energie"),
2206   Sections = FACT (min=1, max='**', statut='o',      
2207                    TypeSection  = SIMP (typ='TXM',fr="Type de section efficace",statut='o',
2208                                         into=( 'Totale','CorrectionTransport',
2209                                                'Absorption','Capture','N2N',
2210                                                'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes',
2211                                                'SectionDiffusionTotale','Transfert')),
2212                    Valeurs = SIMP (typ='R',min=1,max='**',statut='o',
2213                                    fr="Valeurs des sections efficaces pour le reflecteur")
2214                    )
2215   ) ;  # Fin SECTIONS_REFLECTEUR
2216 # ----------------------------------------------------------------------------------------------------------------------------------
2217 #  Classe MACROLIB : Classe de definition des sections efficaces multigroupes
2218 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2219 MACROLIB = OPER (nom="MACROLIB",sd_prod=Macrolib,op=0,niveau = 'SectionsEfficaces',
2220   fr  = "Definition d'une macrolib",
2221   ang = "Macrolib Definition",
2222   Signature            = SIMP (typ='TXM',statut='o',defaut="MACROLIB",fr="Signature de l'objet MACROLIB"),
2223   NbMateriaux          = SIMP (typ='I'  ,statut='o',defaut=1,fr="Nombre de materiaux"),
2224   NomsMateriaux        = SIMP (typ='TXM',statut='o',max='**',fr="Noms des materiaux"),
2225   OrdreAnisotropieMax  = SIMP (typ='I'  ,statut='o',defaut=1,fr="Ordre d'anisotropie"),
2226   MaxIsotopesFissiles  = SIMP (typ='I'  ,statut='o',fr="Nombre maximum d'isotopes fissiles"),
2227   NbTypesSections      = SIMP (typ='I'  ,statut='o',fr="Nombre de sections efficaces definies"),
2228   CorrectionTransport  = SIMP (typ='TXM',statut='o',defaut='Non',into=('Oui','Non'),fr="Indication de Correction de transport"),
2229   NbGroupesPrecurseurs = SIMP (typ='I'  ,statut='o',defaut=6,fr="Nombre de groupes de precurseurs de neutrons retardes"),
2230   NbGroupesEnergie     = SIMP (typ='I'  ,statut='o',defaut=2,fr="Nombre de groupes d'energie"),
2231   LimitesEnergie       = SIMP (typ='R'  ,statut='o',defaut=(0.,0.0625,1.E7),max='**',fr="Limites des groupes d'energie"),
2232   DeltaLethargie       = SIMP (typ='R'  ,statut='o',max='**',fr="Largeur en lethargie des groupes d'energie"),
2233   ListeSections        = SIMP (typ='TXM',statut='o',max='**',fr="Liste des sections efficaces decrites dans la Macrolib",
2234                                into=('Totale','CorrectionTransport','Spectre','Vitesse',
2235                                      'Production','Fission','Energie','Absorption','Capture','N2N',
2236                                      'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes',
2237                                      'CoefficientEquivalence','ProductionRetardee','SpectreRetarde',
2238                                      'SectionDiffusionTotale','Transfert')),
2239   ModeEntreeSections   = SIMP (typ='TXM',statut='o',defaut='ParGroupe',into=('ParGroupe','ParMilieu'),
2240                                fr="Choix du mode d'entree des sections par groupe ou par milieu"),
2241   SectionsParGroupe    = BLOC (condition = "ModeEntreeSections=='ParGroupe'",
2242              SectionsG = FACT (min=1, max='**', statut='o',
2243                 TypeSectionG = SIMP (typ='TXM',fr="Type de section efficace",statut='o',
2244                              into=('Totale','CorrectionTransport','Spectre','Vitesse',
2245                                    'Production','Fission','Energie','Absorption','Capture','N2N',
2246                                    'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes',
2247                                    'CoefficientEquivalence','ProductionRetardee','SpectreRetarde',
2248                                    'SectionDiffusionTotale','Transfert')),
2249                 Groupes = BLOC (condition = "TypeSection=='Transfert'",
2250                         NumerosGroupes = SIMP (typ='I',min=2,max=2,statut='o',
2251                                                fr="Numeros des groupes de depart et d'arrivee")),
2252                 Groupe = BLOC (condition = "TypeSection!='Transfert'",
2253                         NumeroGroupe = SIMP (typ='I',statut='o',fr="Numero de groupe d'energie")),
2254                 BlocAnisotropie = BLOC (condition = "TypeSection=='Transfert' or TypeSection== 'SectionDiffusionTotale'",
2255                         OrdreAnisotropie = SIMP (typ='I',statut='o',defaut=1,
2256                                                  fr="Ordre d'anisotropie de la section de transfert")),
2257                 Valeurs = SIMP (typ='R',min=1,max='**',statut='o',
2258                                 fr="Valeurs des sections efficaces pour tous les materiaux")
2259         )
2260    ),
2261   SectionsParMateriau     = BLOC (condition = "ModeEntreeSections=='ParMateriau'",
2262         Materiau  = SIMP (typ='TXM',statut='o',fr="Nom du materiau dont on valorise les sections efficaces"),
2263         SectionsM = FACT (min=1, max='**', statut='o',fr="Entree des valeurs de chaque type de section efficace",     
2264                 TypeSectionM  = SIMP (typ='TXM',fr="Type de section efficace definie",statut='o',
2265                                      into=('Totale','CorrectionTransport','Spectre','Vitesse',
2266                                            'Production','Fission','Energie','Absorption','Capture','N2N',
2267                                            'CoefficientDiffusionHomogene','CoefficientsDiffusionOrientes',
2268                                            'CoefficientEquivalence','ProductionRetardee','SpectreRetarde',
2269                                            'SectionDiffusionTotale','Transfert')),
2270                 BlocPasTransfert = BLOC (condition = "TypeSection not in ('Transfert','SectionDiffusionTotale')",
2271                                          ValeursS = SIMP (typ='R',min=1,max='**',statut='o',
2272                                                           fr="Valeurs des sections efficaces pour tous les groupes")),
2273                 BlocDiffusion = BLOC (condition = "TypeSection=='SectionDiffusionTotale'",
2274                         OrdreAnisotropieD = SIMP (typ='I',statut='o',defaut=1,
2275                                                  fr="Ordre d'anisotropie de la section de diffusion totale"),
2276                         ValeursD = SIMP (typ='R',min=1,max='**',statut='o',
2277                                          fr="Valeurs des sections de diffusion totale pour tous les groupes")),
2278                 BlocTransfert = BLOC (condition = "TypeSection=='Transfert'",
2279                         OrdreAnisotropieT = SIMP (typ='I',statut='o',defaut=1,
2280                                                  fr="Ordre d'anisotropie de la section de transfert"),
2281                         ValeursT = NUPL (min=1,max='**',statut='o',
2282                                         elements=(SIMP (typ='I',min=2,max=2,fr="Groupes de depart et d'arrivee"),
2283                                                   SIMP (typ='R',fr="Valeur de la section de transfert")))
2284                  )
2285          )
2286    )
2287  ) ;  # Fin MACROLIB
2288 # -----------------------------------------------------------------------------------------------------------------------------------
2289 #  Classe ASSEMBLAGE_COMBUSTIBLE_REEL : Classe de definition d'un assemblage combustible reel charge ou decharge d'un coeur REP
2290 #  DefautFabrication     : Champ texte indicateur precisant si l'assemblage appartient a un lot de fabrication
2291 #                          ayant un defaut impactant les resultats neutroniques
2292 #  CleControle           : Donnee fournie par la Division Combustible (Fichier ASN) et calculee a partir du nom de l'assemblage
2293 #  IdentificateurInitial : En cas de remplacement de la structure de l'assemblage, ce dernier  change de nom
2294 #                         (donnee transmise par le site)
2295 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2296 ASSEMBLAGE_COMBUSTIBLE_REEL = OPER (nom="ASSEMBLAGE_COMBUSTIBLE_REEL",op=0,sd_prod=AssemblageCombustibleReel,
2297                                         niveau = 'AssemblagesReels',
2298   fr  = "Definition d'un assemblage combustible a charger, charge en reacteur, ou decharge en coeur, en piscine ou pour retraitement",
2299   ang = "Definition of a core loaded fuel assembly",
2300   regles        = (ENSEMBLE('Identificateur','CampagneResquelettage'),
2301                    ENSEMBLE('ProgrammeExperimental','NatureElementExperimental'),),
2302   IdentInitial                = SIMP (typ='TXM',statut='o',fr="Code d'identification initial de l'assemblage combustible en cas de resquelettage"),
2303   Identificateur              = SIMP (typ='TXM',statut='f',fr="Code d'identification de l'assemblage combustible apres resquelettage"),
2304   CampagneResquelettage       = SIMP (typ='I',statut='f',fr="Numero de la campagne de rechargement de l'assemblage resquelette"),
2305   Constructeur                = SIMP (typ='TXM',statut='o',into=('FRAMATOME','SIEMENS','ABB','ENUSA','WESTINGHOUSE','CEA','KWU','EXXON','ANF'),
2306                                       fr="Constructeur de l'assemblage combustible"),
2307   TypeTechnologique           = SIMP (typ='TXM',defaut='AFA2GE',statut='o',
2308                                       into=('ABB-97','AB-DEMOS','AB-LFA','AEF-XL',
2309                                             'AFA','AFA-XL','AFA-XL-N4','AFA2G','AFA2GE','AFA2GL','AFA2GLE','AFA3G','AA3GL','AGI','AGI-XL',
2310                                             'AKA','ALIX','BM','CEA','DEMONSTRATIONS','ENUSA-LFA','HTP','KWU','X1'),
2311                                       fr="Type technologique de l'assemblage"),
2312   TypeAssemblage              = SIMP (typ=AssemblageType,statut='o',fr="Type de l'assemblage"),
2313   CleControle                 = SIMP (typ='TXM',statut='o',fr="Cle de controle de l'assemblage"),
2314   Engagement                  = SIMP (typ='TXM',statut='o',fr="Engagement de l'assemblage"),
2315   NumeroLot                   = SIMP (typ='I',  statut='o',fr="Numero du lot de combustible"),
2316   TypeCombustibleDuLot        = SIMP (typ='TXM',statut='f',fr="Type combustible et nom du lot (exemple 'MOX FMO1')"),
2317   U235EnrichissementTheorique = SIMP (typ='R',  statut='o',fr="Enrichissement theorique en U235 du combustible en %"),
2318   PuEnrichissementTheorique   = SIMP (typ='R',  statut='o',fr="Enrichissement theorique en Pu du combustible en %",defaut=0.),
2319   MasseTheoriqueNL            = SIMP (typ='R',  statut='o',fr="Masse theorique en g des noyaux lourds  Z > 89 de l'assemblage"),
2320   MasseInitialeNL             = SIMP (typ='R',  statut='o',fr="Masse initiale reelle en g des noyaux lourds de l'assemblage a la date de reference"),
2321   U232MasseInitiale           = SIMP (typ='R',  statut='o',fr="Masse initiale reelle en g d'uranium 232",defaut=0.),
2322   U234MasseInitiale           = SIMP (typ='R',  statut='o',fr="Masse initiale reelle en g d'uranium 234",defaut=0.),
2323   U235MasseInitiale           = SIMP (typ='R',  statut='o',fr="Masse initiale reelle en g d'uranium 235",defaut=0.),
2324   U236MasseInitiale           = SIMP (typ='R',  statut='o',fr="Masse initiale reelle en g d'uranium 236",defaut=0.),
2325   U238MasseInitiale           = SIMP (typ='R',  statut='o',fr="Masse initiale reelle en g d'uranium 238",defaut=0.),
2326   BlocPu                      = BLOC (condition = "EnrichissementTheoriquePu > 0.",
2327                                 DateReference      = SIMP (typ='I',min=3,max=3,statut='o',fr="Date de reference Jour, Mois, An du lot MOX"),
2328                                 DatePrevDivergence = SIMP (typ='I',min=3,max=3,statut='o',
2329                                                                      fr="Date de divergence previsionnelle de la tranche chargee de cet assemblage MOX"),
2330                                 DateDivergence     = SIMP (typ='I',min=3,max=3,statut='o',
2331                                                             fr="Date de divergence reelle de la tranche chargee de cet assemblage MOX"),
2332                                 U235EquivEnrichissement = SIMP (typ='R',statut='f',defaut=3.25,fr="Enrichissement en U235 equivalent"),
2333                                 Pu239MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 239 a la date de reference"),
2334                                 Pu240MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 240 a la date de reference"),
2335                                 Pu241MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 241 a la date de reference"),
2336                                 Pu24MasseInitiale2 = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g de plutonium 242 a la date de reference"),
2337                                 Am241MasseInitiale = SIMP (typ='R',statut='o',fr="Masse reelle initiale en g  d'americium 241 a la date de reference")
2338                                       ),
2339   AbsorbantFixe               = SIMP (typ='TXM',statut='f',fr="Texte caracteristique des absorbants fixes inseres dans l'assemblage"),
2340   DefautFabrication           = SIMP (typ='TXM',statut='f',fr="Libelle du defaut de fabrication"),
2341   ProgrammeExperimental       = SIMP (typ='TXM',statut='f',fr="Nom du programme experimental s'il s'agit d'un assemblage experimental"),
2342   NatureElementExperimental   = SIMP (typ='TXM',statut='f',into=('Combustible','Grille','Structure'),fr="Nature de l'element experimental"),
2343   LocalisationAssemblage      = SIMP (typ='TXM',statut='f',into=('BR Coeur','BK Piscine','HAGUE'),fr="Localisation de l'assemblage"),
2344   SituationAdministrative     = SIMP (typ='TXM',statut='f',into=('SansParticularite','EnReservePourGestionFuture','EnAttenteReparationExamen',
2345                                                                  'aDispositionDAC','AccordCogema','IndisponibleSurSite'),
2346                                       fr="Situation administrative de l'assemblage"),
2347   EtatGCN                     = SIMP (typ='TXM',statut='f',into=('Evacuable 0','En attente 1','Rechargeable 2','PourAccordCogema 3'),
2348                                       fr="Etat de l'assemblage au sens GCN"),
2349   ContraintesPhysiques        = NUPL ( max      = '**',
2350                                        statut   = 'f',
2351                                        elements = ( SIMP (typ='TXM',statut='o',fr="Texte precisant la contrainte",
2352                                                              into=('NonRechargeable','NonSain','aExaminer','aReparer',
2353                                                                    'Repare','aSubiExtraction','aPenaliser','NonInstrumentable','NonGrappable','Resquelette')),
2354                                                     SIMP (typ='TXM',statut='o',fr="Premiere Campagne concernee")
2355                                                    )
2356                                      ),
2357   ContraintesNbCycles        = NUPL (max = '**', statut = 'f',
2358                                      fr       = "Liste des contraintes en nombre de cycles",
2359                                      elements = ( SIMP (typ='TXM',statut='o',fr="Texte precisant la contrainte",
2360                                                         into=('NombreDeCyclesSuccessifsImperatif','NombreMaximumDeCycles')),
2361                                                   SIMP (typ='I',statut='o',fr="Nombre de cycles")
2362                                                  )
2363                                     ),
2364   Campagnes                  = NUPL (max = '**', statut = 'o',
2365                                      fr       = "Liste des campagnes d'irradiation subies par l'assemblage et etats correspondants",
2366                                      elements = ( SIMP (typ='TXM',fr="Identificateur de la campagne"),
2367                                                   SIMP (typ='TXM',fr="Etat de l'assemblage")
2368                                                  )
2369                                      ),
2370   BibliothequesNeutroniques = NUPL (statut='f',elements=(SIMP (typ='TXM',
2371                                                                fr="Identificateur de non presence d'absorbants (TBH) ou d'insertion (24B, 12B, 8B, 12P, 12P0P, etc)"),
2372                                                          SIMP (typ='TXM',fr="Nom du fichier de la bibliotheque neutronique associee"))
2373                                     ),
2374   TypeDescriptionCalcul = SIMP (typ='TXM',statut='f',defaut='HomogeneAssemblage',into=('HomogeneAssemblage','ParCrayon')),
2375   OxMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe x de l'assemblage"),
2376   OyMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe y de l'assemblage"),
2377   OzMaillageIrradiation = SIMP (typ=Maillage1D,statut='f',fr="Maillage suivant l'axe z de l'assemblage, Origine en bas de la zone active"),
2378   IrradiationHomogene   = FACT (max='**',statut='f',fr="Taux d'irradiation pseudo-experimentale de l'assemblage",
2379                                 TempsIrradiation   = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s"),
2380                                 IrradiationMoyenne = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"),
2381                                 IrradiationCycle   = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage lors du cycle en cours"),
2382                                 Irradiations       = SIMP (typ='R', max='**', statut='o', fr="Irradiations des mailles (MWj/t) (en partant du bas et a gauche et par plan)")
2383                                 ),
2384   IrradiationCrayon     = FACT (max='**',statut='f',fr="Taux d'irradiation pseudo-experimentale des crayons de l'assemblage",
2385                                 TempsIrradiation   = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s  de l'assemblage"),
2386                                 IrradiationMoyenne = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"),
2387                                 Irradiations       = SIMP (typ='R', max='**', statut='o', fr="Irradiations des crayons (MWj/t) (en partant du bas et a gauche et par plan)")
2388                                 ),
2389   FluenceHomogene       = FACT (max='**',statut='f',
2390                                 TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s de l'assemblage"),
2391                                 FluenceMoyenne   = SIMP (typ='R', statut='o', fr="Fluence moyenne n/kb de l'assemblage"),
2392                                 Fluences         = SIMP (typ='R', max='**', statut='o', fr="Fluences des mailles (n/kb) (en partant du bas et a gauche et par plan)")
2393                                 ),
2394   FluenceCrayon = FACT (max='**',statut='f',
2395                                 TempsIrradiation = SIMP (typ='R', statut='o', fr="Temps d'irradiation en s de l'assemblage"),
2396                                 FluenceMoyenne   = SIMP (typ='R', statut='o', fr="Fluence moyenne n/kb de l'assemblage"),
2397                                 Fluences         = SIMP (typ='R', max='**', statut='o', fr="Fluences des crayons (n/kb) (en partant du bas et a gauche et par plan)")
2398                                 ),
2399   CompositionHomogene   = FACT (max='**',statut='f',
2400                                 TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2401                                 IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"),
2402                                 FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb de l'assemblage"),
2403                                 Isotopes           = SIMP (typ='TXM', statut='o', max='**',fr="Liste des noms des isotopes"),
2404                                 Concentrations     = SIMP (typ='R'  , statut='o', max='**',
2405                                                            fr="Concentrations des isotopes pour chaque maille radiale et pour chaque plan axial")
2406                                 ),
2407   CompositionCrayon     = FACT (max='**',statut='f',
2408                                 TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s de l'assemblage"),
2409                                 IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t de l'assemblage"),
2410                                 FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2411                                 Isotopes           = SIMP (typ='TXM', statut='o', max='**',fr="Liste des noms des isotopes"),
2412                                 Concentrations     = SIMP (typ='R'  , statut='o', max='**',
2413                                                            fr="Concentrations des isotopes pour chaque crayon et pour chaque plan axial (du bas vers le haut)")
2414                                 )
2415   ) ;  # Fin ASSEMBLAGE_COMBUSTIBLE_REEL
2416 # -----------------------------------------------------------------------------------------------------------------------------------
2417 #  Classe REPARATION_ASSEMBLAGE : Classe de definition des donnees de reparation d'un assemblage
2418 #                                 Donnee de l'assemblage a reparer et des crayons de remplacement
2419 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2420 REPARATION_ASSEMBLAGE = OPER (nom="REPARATION_ASSEMBLAGE", op=0, sd_prod=ReparationAssemblage, niveau = 'AssemblagesReels',
2421   fr  = "Donnee de reparation ou de restauration d'un assemblage",
2422   ang = "Data for an assembly repair",
2423   AssemblageInitial  = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o',fr="Type de l'assemblage a reparer"),
2424   IrradiationMoyenne = SIMP (typ='R',statut='o',fr="Taux d'irradiation moyenne MWj/t de l'assemblage a reparer"),
2425   CrayonRemplacement = FACT (max='**',statut='o',
2426                              Position            = SIMP (typ='I', min=2, max=2, statut='o', fr="Coordonnees x,y du crayon a remplacer dans l'assemblage"),
2427                              CelluleRemplacement = SIMP (typ=Cellule, statut='o', fr="Cellule de remplacement")
2428                              )
2429    ) ; # Fin REPARATION_ASSEMBLAGE
2430 # -----------------------------------------------------------------------------------------------------------------------------------
2431 #  Classe PENALITE_ASSEMBLAGE : Classe de definition des penalites a appliquer aux puissances des crayons d'un assemblage
2432 #  Trois possibilites : 1) de maniere uniforme
2433 #                       2) a quelques crayons
2434 #                       3) a l'ensemble des crayons et en fonction du taux d'irradiation de l'assemblage
2435 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2436 PENALITE_ASSEMBLAGE = OPER (nom="PENALITE_ASSEMBLAGE", op=0, sd_prod=PenaliteAssemblage, niveau = 'AssemblagesReels',
2437   fr  = "Penalites dues a la reparation ou a la restauration d'un assemblage",
2438   ang = "Penalties applied to a repaired assembly",
2439   Assemblage = SIMP (typ=(AssemblageType,AssemblageCombustibleReel),statut='o',fr="Type de l'assemblage concerne par les penalites"),
2440   regles = (UN_PARMI('UniformeDeltaP', 'CrayonDeltaP','CarteDeltaP'),),
2441   UniformeDeltaP = SIMP (typ='R', statut='f', fr="Penalite en % a appliquer de maniere uniforme sur l'assemblage"),
2442   CrayonDeltaP = FACT (statut='f',fr="Liste des penalites pour une liste particuliere de crayons d'un assemblage",
2443                  Crayons = SIMP (typ='I', statut='o', max='**', fr="Numeros des crayons de l'assemblage"),
2444                  DeltaP  = SIMP (typ='R', statut='o', max='**', fr="Penalites en % a appliquer aux crayons listes")),
2445   CarteDeltaP  = FACT (max='**',statut='f',fr="Penalites pour l'ensemble des crayons de l'assemblage",
2446                  BuMoyen = SIMP (typ='R', statut='o',fr="Taux d'irradiation MWj/t de l'assemblage a reparer"),
2447                  DeltaP  = SIMP (typ='R', statut='o', max='**', fr="Pourcentage de variation de puissance par crayon en %"))
2448 ) ; # Fin PENALITE_ASSEMBLAGE
2449 # -----------------------------------------------------------------------------------------------------------------------------------
2450 #  Classe RESULTATS_GLOBAUX_COEUR : Classe de stockage des resultats globaux du coeur
2451 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2452 RESULTATS_GLOBAUX_COEUR = OPER (nom="RESULTATS_GLOBAUX_COEUR", op=0, sd_prod=ResultatsGlobauxCoeur, niveau = 'Resultats',
2453   fr  = "Resultats globaux du calcul de coeur",
2454   ang = "Global Core Calculation Results",
2455   ResultatsCoeur = FACT (max='**',statut='o',fr="Resultats globaux du calcul de coeur calcules a un instant et pour une configuration donnee",
2456         Configuration       = SIMP (typ='TXM', statut='o', max='**', fr="Configuration du coeur : Liste des groupes ou grappes inseres"),
2457         PasInsertion        = SIMP (typ='I'  , statut='o', max='**', fr="Niveau d'insertion des groupes ou grappes inseres en nombre de pas extraits"),
2458         IndiceConvergence   = SIMP (typ='I'  , statut='o', fr="Indice de convergence du calcul"),
2459         TempsIrradiation    = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2460         IrradiationMoyenne  = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2461         FluenceMoyenne      = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2462         NiveauPuissance     = SIMP (typ='R'  , statut='o', fr="Niveau de puissance du calcul en %"),
2463         TypeDeCalcul        = SIMP (typ='TXM', statut='o', fr="Type de calcul de coeur Critique ou non"),
2464         ParametreCritique   = SIMP (typ='TXM', statut='o', fr="Parametre critique du calcul de coeur"),
2465         TitreBore           = SIMP (typ='R'  , statut='o', fr="Titre en bore soluble du calcul de coeur en ppm"),
2466         EfficaciteBore      = SIMP (typ='R'  , statut='o', fr="Efficacite differentielle du bore soluble pcm/ppm"),
2467         Reactivite          = SIMP (typ='R'  , statut='o', fr="Reactivite du calcul en pcm"),
2468         B2AxialRapide       = SIMP (typ='R'  , statut='o', fr="Laplacien axial rapide en cm-2"),
2469         B2AxialThermique    = SIMP (typ='R'  , statut='o', fr="Laplacien axial thermique en cm-2"),
2470         XeAntireactivite    = SIMP (typ='R'  , statut='o', fr="Antireactivite du xenon en pcm"),
2471         FxyAssemblage       = SIMP (typ='R'  , statut='o', fr="Fxy Assemblage"),
2472         DopplerCoefficient  = SIMP (typ='R'  , statut='o', fr="Coefficient Doppler en pcm/C"),
2473         CTModerateur        = SIMP (typ='R'  , statut='o', fr="Coefficient Temperature moderateur en pcm/C"),
2474         DopplerPuissance    = SIMP (typ='R'  , statut='o', fr="Coefficient Puissance Doppler seul en pcm/%P"),
2475         CoeffPuissance      = SIMP (typ='R'  , statut='o', fr="Coefficient Puissance en pcm/%P"),
2476         EfficDiffGrappes    = SIMP (typ='R'  , statut='f', max='**',
2477                                     fr="Efficacites differentielles des grappes inserees, Couples de valeurs (Insertion,Efficacite differentielle)"),
2478         Bite                = SIMP (typ='R'  , statut='f', fr="Position du bite en cours d'evolution, en nombre de pas extraits"),
2479         RMBM                = SIMP (typ='R'  , statut='f', fr="Position Milieu de la bande de manoeuvre du groupe R, en nombre de pas extraits"),
2480         FxyCrayon           = SIMP (typ='R'  , statut='f', fr="Fxy Crayon (apres factorisation eventuelle)"),
2481         AssemblageChaud     = SIMP (typ='R'  , statut='f', fr="Assemblage portant le crayon chaud"),
2482         LotAssemblageChaud  = SIMP (typ='I'  , statut='f', fr="Lot de l'assemblage portant le crayon chaud"),
2483         NumeroCrayonChaud   = SIMP (typ='I'  , statut='f', fr="Numero du crayon chaud dans l'assemblage chaud"),
2484         TmEntreeCoeur       = SIMP (typ='R'  , statut='o', fr="Temperature entree coeur en Celsius"),
2485         TmMoyenneCuve       = SIMP (typ='R'  , statut='o', fr="Temperature moyenne cuve en Celsius"),
2486         PressionEntreeCoeur = SIMP (typ='R'  , statut='o', fr="Pression entree coeur en bars"),
2487         PressionSortieCoeur = SIMP (typ='R'  , statut='o', fr="Pression sortie coeur en bars"),
2488         AOCoeur             = SIMP (typ='R'  , statut='o', fr="Axial Offset Coeur en %"),
2489         DeltaICoeur         = SIMP (typ='R'  , statut='o', fr="Desequilibre Axial Coeur"),
2490         AOXenon             = SIMP (typ='R'  , statut='o', fr="Axial Offset Xenon Coeur en %"),
2491         AOIode              = SIMP (typ='R'  , statut='o', fr="Axial Offset Iode Coeur en %"),
2492         FzCoeur             = SIMP (typ='R'  , statut='o', fr="Fz Coeur"),
2493         FDH                 = SIMP (typ='R'  , statut='o', fr="Facteur d'elevation d'enthalpie Coeur"),
2494         FQ                  = SIMP (typ='R'  , statut='o', fr="Facteur de point chaud Coeur Fq"),
2495         FQCote              = SIMP (typ='R'  , statut='o', fr="Cote du Facteur de point chaud Coeur Fq"),
2496         FQAssemblage        = SIMP (typ='R'  , statut='o', fr="Repere de l'assemblage portant le facteur de point chaud Fq"),
2497         FQCrayon            = SIMP (typ='R'  , statut='o', fr="Numero de crayon de l'assemblage portant le facteur de point chaud Fq"),
2498         FQLot               = SIMP (typ='R'  , statut='o', fr="Numero de lot de l'assemblage portant le facteur de point chaud Fq"),
2499         TiltRadial4         = SIMP (typ='R'  , statut='o', fr="Desequilibre radial par quart de coeur NE, NO, SO, SE", min=4,max=4),
2500         TiltRadial8         = SIMP (typ='R'  , statut='o',
2501                                     fr="Desequilibre radial par huitieme de coeur, Origine en Ox et sens trigonometrique", min=8,max=8),
2502         BetaTotal           = SIMP (typ='R'  , statut='f', fr="Contribution des neutrons retardes Beta total Coeur"),
2503         BetaEffTotal        = SIMP (typ='R'  , statut='f', fr="Contribution des neutrons retardes Beta effectif total Coeur"),
2504         ImportanceTotale    = SIMP (typ='R'  , statut='f', fr="Importance totale Coeur"),
2505         TempsViePrompt      = SIMP (typ='R'  , statut='f', fr="Temps de vie effectif des neutrons prompts"),
2506         ProductionU5        = SIMP (typ='R'  , statut='f', fr="Contribution U235 a la production totale nuSf"),
2507         ProductionU8        = SIMP (typ='R'  , statut='f', fr="Contribution U238 a la production totale nuSf"),
2508         ProductionPu        = SIMP (typ='R'  , statut='f', fr="Contribution Pu9+Pu0+Pu1+Pu2 a la production totale nuSf"),
2509         Lambdai             = SIMP (typ='R'  , statut='f', fr="Constantes de decroissance moyennes des 6 groupes de precurseurs", min=6,max=6),
2510         Betai               = SIMP (typ='R'  , statut='f', fr="Contribution des neutrons retardes Beta i des 6 groupes de precurseurs", min=6,max=6),
2511         BetaiEff            = SIMP (typ='R'  , statut='f', fr="Contribution des neutrons retardes Beta i effectif des 6 groupes de precurseurs", min=6,max=6),
2512         RoNordheim          = FACT (statut='f', fr="Reactivite en fct du temps de doublement par la relation de Nordheim",
2513                                   Temps = SIMP (typ='R', statut='o', max='**', fr="Liste des temps de doublement en s"),
2514                                   Ro    = SIMP (typ='R', statut='o', max='**', fr="Liste des reactivites correspondantes en pcm"))
2515   )
2516 ) ;  # Fin RESULTATS_GLOBAUX_COEUR
2517 # -----------------------------------------------------------------------------------------------------------------------------------
2518 #  Classe RESULTAT_FLUX : Classe de stockage des resultats de flux et des courants (a revoir pour ces derniers)
2519 #  L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement)
2520 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2521 RESULTAT_FLUX = OPER (nom="RESULTAT_FLUX", op=0, sd_prod=ResultatFlux, niveau = 'Resultats',
2522   fr  = "Distributions de flux moyens et de courants",
2523   ang = "Average Flux and current distributions",
2524   NbAssemblages = SIMP (typ='I'  , statut='o', fr="Nombre d'assemblages edites"),
2525   OzNbValeurs   = SIMP (typ='I'  , statut='o', fr="Nombre de mailles axiales par assemblage"),
2526   OzMaillage    = SIMP (typ=Maillage1D  , statut='o', fr="Maillage axial d'edition"),
2527   NbGroupes     = SIMP (typ='I'  , statut='o', fr="Nombre de groupes d'energie"),
2528   NbFluxBord    = SIMP (typ='I'  , statut='o', fr="Nombre de flux au bord par assemblage et par groupe d'energie"),
2529   NbCourant     = SIMP (typ='I'  , statut='o', fr="Nombre de courants par assemblage et par groupe d'energie"),
2530   Flux = FACT (max='**',statut='o',fr="Flux calcules a un instant et pour une configuration donnee",
2531         Configuration      = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
2532         TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2533         IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2534         FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2535         Valeurs            = SIMP (typ='R'  , statut='o', max='**',
2536                                    fr="Flux moyens par assemblage (en partant du bas a gauche) et par groupe")
2537                ),
2538   FluxBord = FACT (max='**',statut='f',fr="Flux moyens au bord des assemblages calcules a un instant et pour une configuration donnee",
2539         Configuration      = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
2540         TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2541         IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2542         FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2543         Valeurs            = SIMP (typ='R'  , statut='o', max='**',
2544                                    fr="Flux moyens au bord par assemblage (en partant du bas a gauche) et par groupe")
2545                   ),
2546   Courant = FACT (max='**',statut='f',fr="Courants calcules a un instant et pour une configuration donnee",
2547         Configuration      = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
2548         TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2549         IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2550         FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2551         Valeurs            = SIMP (typ='R'  , statut='o', max='**',
2552                                    fr="Courants detailles par assemblage (en partant du bas a gauche) et par groupe")
2553                   )
2554   ) ;  # Fin RESULTAT_FLUX
2555 # -----------------------------------------------------------------------------------------------------------------------------------
2556 #  Classe RESULTAT_PUISSANCES : Classe de stockage des resultats de puissance
2557 #  L'edition se fait sur les mailles actives du reseau associe a l'etude (PlanChargement)
2558 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2559 RESULTAT_PUISSANCES = OPER (nom="RESULTAT_PUISSANCES", op=0, sd_prod=ResultatPuissances, niveau = 'Resultats',
2560   fr  = "Distribution de puissance",
2561   ang = "Power distributions",
2562   NbAssemblages  = SIMP (typ='I'  , statut='o', fr="Nombre d'assemblages edites"),
2563   OzNbValeurs    = SIMP (typ='I'  , statut='o', fr="Nombre de mailles axiales par assemblage"),
2564   OzMaillage     = SIMP (typ=Maillage1D  , statut='o', fr="Maillage axial d'edition"),
2565   Puissances               = FACT (max='**',statut='o',fr="Puissances calculees a un instant et pour une configuration donnee",
2566         Configuration      = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
2567         TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2568         IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2569         FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2570         Valeurs            = SIMP (typ='R'  , statut='o', max='**',
2571                                    fr="Puissances (en partant du bas a gauche) par assemblage")
2572   )
2573 ) ;  # Fin RESULTAT_PUISSANCES
2574 # -----------------------------------------------------------------------------------------------------------------------------------
2575 #  Classe RESULTAT_RADIAL : Classe de stockage des resultats integres sur une zone axiale particuliere (par defaut, toute la zone active)
2576 #  L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement)
2577 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2578 RESULTAT_RADIAL = OPER (nom="RESULTAT_RADIAL", op=0, sd_prod=ResultatRadial, niveau = 'Resultats',
2579   fr  = "Distribution radiale 2D apres integration axiale d'un type de resultat",
2580   ang = "Radial Result Distribution",
2581   TypeResultat  = SIMP (typ='TXM', statut='o', into=('Puissance','Flux','Activite','Irradiation','IrradiationGradient4','Importance',
2582                                                      'FDHmax','FDHcrayon','TauxReaction','TauxReactionParGroupe','SectionEfficace',
2583                                                      'SectionEfficaceParGroupe','Kinf','AntireactiviteXenon','AntireactiviteIode',
2584                                                      'AOPuissance','Tc','TcMax','Tm','TmMax','RoModerateur','Tgaine'),
2585                                                       fr="Type de resultat"),
2586 # BlocGroupe    = BLOC (condition = "TypeResultat in ['Flux','TauxReactionParGroupe','SectionEfficaceParGroupe']",
2587         NumeroGroupe       = SIMP (typ='I'  , statut='o', max=2, fr="Numeros de groupe d'energie associes"),
2588 # ),
2589 # BlocSection   = BLOC (condition = "TypeResultat in ['SectionEfficaceParGroupe','TauxReactionParGroupe','SectionEfficace','TauxReaction']",
2590         TypeSection        = SIMP (typ='TXM'  , statut='o', fr="Type de section concerne"),
2591 # ),
2592   CotesAxiales  = SIMP (typ='R', statut='f', min=2,max=2, fr="Cotes axiales de la zone moyennee"),
2593   Radial = FACT (max='**',statut='o',fr="Distribution radiale 2D calculee a un instant et pour une configuration donnee",
2594         Configuration      = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
2595         TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2596         IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2597         FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2598         Valeurs            = SIMP (typ=('R','I'), statut='o', max='**',
2599                                    fr="Valeurs (en partant du bas a gauche) par assemblage")
2600   )
2601 ) ;  # Fin RESULTAT_RADIAL
2602 # -----------------------------------------------------------------------------------------------------------------------------------
2603 #  Classe RESULTAT_AXIAL : Classe de stockage des resultats moyennes axialement sur l'ensemble du reseau combustible
2604 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2605 RESULTAT_AXIAL = OPER (nom="RESULTAT_AXIAL", op=0, sd_prod=ResultatAxial, niveau = 'Resultats',
2606   fr  = "Distribution axiale moyenne coeur",
2607   ang = "Average Core Axial Distribution",
2608   OzNbValeurs   = SIMP (typ='I', statut='o', fr="Nombre de mailles axiales"),
2609   OzMaillage    = SIMP (typ=Maillage1D, statut='o', fr="Maillage axial d'edition"),
2610   TypeResultat  = SIMP (typ='TXM', statut='o', into=('Puissance','Flux','Xenon','Iode','Courant','Fxy(z)','Q(z)'), fr="Type de resultat"),
2611   BlocGroupe    = BLOC (condition = "TypeResultat in ('Flux','Courant')",
2612         NumeroGroupe       = SIMP (typ='I'  , statut='o', fr="Numero de groupe d'energie")),
2613   Axial = FACT (max='**',statut='o',fr="Distribution axiale a un instant et pour une configuration donnee",
2614         Configuration      = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
2615         TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2616         IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2617         FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2618         Valeurs            = SIMP (typ='R'  , statut='o', max='**',
2619                                    fr="Distribution axiale moyenne (en partant du bas)")
2620                                 )
2621   ) ;  # Fin RESULTAT_AXIAL
2622 # -----------------------------------------------------------------------------------------------------------------------------------
2623 #  Classe RESULTAT_IRRADIATIONS : Classe de stockage des resultats de taux d'irradiation
2624 #  L'edition se fait sur les mailles du reseau associe a l'etude (PlanChargement)
2625 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2626 RESULTAT_IRRADIATIONS = OPER (nom="RESULTAT_IRRADIATIONS", op=0, sd_prod=ResultatIrradiations, niveau = 'Resultats',
2627   fr  = "Distribution de taux d'irradiation",
2628   ang = "Burnup distributions",
2629   NbAssemblages  = SIMP (typ='I', statut='o', fr="Nombre d'assemblages"),
2630   OzNbValeurs    = SIMP (typ='I', statut='o', fr="Nombre de valeurs d'irradiation par assemblage"),
2631   OzMaillage     = SIMP (typ=Maillage1D, statut='o', fr="Maillage axial d'edition des irradiations"),
2632   Gradient       = SIMP (typ='I', statut='o', defaut=4, fr="Nombre de valeurs d'irradiation par assemblage"),
2633   Irradiation              = FACT (max='**',statut='o',fr="Irradiations calculees a un instant et pour une configuration donnee",
2634         Configuration      = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
2635         TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2636         IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2637         FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2638         Valeurs            = SIMP (typ='R'  , statut='o', max='**',
2639                                    fr="Irradiations (en partant du bas a gauche) par assemblage")
2640   )
2641 ) ;  # Fin RESULTAT_IRRADIATIONS
2642 # -----------------------------------------------------------------------------------------------------------------------------------
2643 #  Classe RESULTAT_ACTIVITES : Classe de stockage des resultats d'activite au centre des assemblages instrumentes
2644 #  L'edition se fait sur une liste particuliere d'assemblages du reseau associe a l'etude (PlanChargement)
2645 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2646 RESULTAT_ACTIVITES = OPER (nom="RESULTAT_ACTIVITES", op=0, sd_prod=ResultatActivites, niveau = 'Resultats',
2647   fr  = "Distributions d'activite des detecteurs",
2648   ang = "Detector Activity distributions",
2649   NbAssemblages      = SIMP (typ='I'        , statut='o', fr="Nombre d'assemblages dont on fournit l'activite calculee"),
2650   ReperesAssemblages = SIMP (typ='TXM'      , statut='o', fr="Reperes des assemblages dont on fournit l'activite", max='**'),
2651   OzNbValeurs        = SIMP (typ='I'        , statut='o', fr="Nombre de valeurs d'activite par assemblage"),
2652   OzMaillage         = SIMP (typ=Maillage1D , statut='o', fr="Maillage axial d'edition des activites"),
2653   CarteActivite            = FACT (max='**' , statut='o',fr="Activites calculees a un instant et pour une configuration donnee",
2654         Configuration      = SIMP (typ='TXM', statut='o', fr="Configuration du coeur ou de l'assemblage"),
2655         TempsIrradiation   = SIMP (typ='R'  , statut='o', fr="Temps d'irradiation en s"),
2656         IrradiationMoyenne = SIMP (typ='R'  , statut='o', fr="Irradiation moyenne MWj/t"),
2657         FluenceMoyenne     = SIMP (typ='R'  , statut='o', fr="Fluence moyenne n/kb"),
2658         Valeurs            = SIMP (typ='R'  , statut='o', max='**',
2659                                    fr="Activites par assemblage (en partant du bas) dans l'ordre de la liste fournie des assemblages")
2660   )
2661 ) ;  # Fin RESULTAT_ACTIVITES
2662 # -----------------------------------------------------------------------------------------------------------------------------------
2663 #  Classe ACTIVITES_EXPERIMENTALES : Classe de stockage des cartes d'activite mesuree au centre des assemblages instrumentes
2664 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2665 ACTIVITES_EXPERIMENTALES = OPER (nom="ACTIVITES_EXPERIMENTALES", op=0, sd_prod=ActivitesExperimentales, niveau = 'ResultatsExperimentaux',
2666   fr  = "Distributions experimentales d'activite mesuree dans les detecteurs mobiles",
2667   ang = "Measured Detector Activity distributions",
2668   CaracteristiquesCarte       = FACT (statut='o',fr="Caracteristiques de la carte d'Activite mesurees",
2669         Site                  = SIMP (typ=SiteNucleaire, statut='o', fr="Site nucleaire de realisation de la carte de flux"),
2670         Tranche               = SIMP (typ='I', statut='o', fr="Numero de la tranche nucleaire"),
2671         Campagne              = SIMP (typ='I', statut='o', fr="Numero de la campagne d'irradiation"),
2672         IrradiationMoyenne    = SIMP (typ='R', statut='o', fr="Irradiation moyenne MWj/t au debut de la carte"),
2673         TitreBoreSoluble      = SIMP (typ='I', statut='o', fr="Titre en ppm en bore soluble du moderateur"),
2674         EnergieProduite       = SIMP (typ='R', statut='o', fr="Energie produite en MWh"),
2675         NumeroCarte           = SIMP (typ='I', statut='o', fr="Numero de la carte de flux"),
2676         ValiditeCarte         = SIMP (typ='TXM', statut='o', into=('Oui','Non'),fr="Validite ou non de la carte de flux"),
2677         DateHeureCarte        = SIMP (typ='I', min=5, max=5, statut='o', fr="Date (Jour Mois An) et heure (Heure Minute)de realisation de la carte de flux"),
2678         PuissanceElectrique   = SIMP (typ='R', statut='o', fr="Puissance electrique MW au debut de la carte de flux"),
2679         PuissanceRelative     = SIMP (typ='R', statut='o', fr="Puissance relative % au debut de la carte de flux"),
2680         ModePilotage          = SIMP (typ='TXM', statut='o', fr="Mode de pilotage du reacteur"),
2681         GroupesInseres        = SIMP (typ='TXM', statut='f', fr="Groupes inseres dans le coeur"),
2682         PositionsGroupes      = SIMP (typ='I'  , statut='f', fr="Positions des groupes inseres dans le coeur en nb de pas extraits"),
2683         NbPointsAxiaux        = SIMP (typ='I'  , statut='o', fr="Nombre de points mesures par trace axiale"),
2684         NbPasses              = SIMP (typ='I'  , statut='o', fr="Nombre de passes de mesures"),
2685         NbTracesAxiales       = SIMP (typ='I'  , statut='o', fr="Nombre de traces axiales d'activite mesuree"),
2686         NbThermocouples       = SIMP (typ='I'  , statut='o', fr="Nombre de thermocouples"),
2687         ReperesThermocouples  = SIMP (typ='TXM', statut='f', max='**', fr="Reperes des thermocouples dans le coeur"),
2688         NumerosThermocouples  = SIMP (typ='I'  , statut='f', max='**', fr="Numeros des thermocouples dans le coeur")
2689                                 ),
2690   ActivitesAxiales = FACT (statut='o',max='**',fr="Trace axiale d'activite mesuree",
2691         RepereAssemblage   = SIMP (typ='TXM', statut='o', fr="Repere de l'assemblage instrumente"),
2692         HeureDeMesure      = SIMP (typ='I', min=5, max=5, statut='o', fr="Date (Jour Mois An) et heure (Heure Minute)de realisation de la carte de flux"),
2693         NumeroDetecteur    = SIMP (typ='I', statut='o', fr="Numero du detecteur de mesure"),
2694         NumeroFourreau     = SIMP (typ='I', statut='o', fr="Numero de fourreau de mesure"),
2695         NumeroPasse        = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"),
2696         PuissanceThermique = SIMP (typ='R', statut='o', fr="Puissance thermique MWth au moment de la passe"),
2697         ValeursActivites   = SIMP (typ='R', statut='o', max='**',
2698                                                         fr="Trace d'activite dans l'assemblage (en partant du bas)"),
2699                           ),
2700   ChambresExternes = FACT (statut='f',max='**',fr="Courants mesures dans les chambres externes",
2701         NumeroPasse = SIMP (typ='I', statut='o',            fr="Numero de la passe de mesure"),
2702         Courants    = SIMP (typ='R', statut='o', max= '**', fr="Valeurs des courants mesures")
2703                           ),
2704   Thermohydraulique = FACT (statut='f',max='**',fr="Temperatures et pressions mesurees dans les boucles primaires",
2705         NumeroPasse       = SIMP (typ='I', statut='o',               fr="Numero de la passe de mesure"),
2706         TemperatureEntree = SIMP (typ='R', statut='o', min=3,max= 4, fr="Valeurs des temperatures mesurees en entree des boucles"),
2707         TemperatureSortie = SIMP (typ='R', statut='o', min=3,max= 4, fr="Valeurs des temperatures mesurees en sortie des boucles"),
2708         DeltaTemperature  = SIMP (typ='R', statut='o', min=3,max= 4, fr="Ecarts de temperature mesurees sur les boucles"),
2709         IndiceFctBoucles  = SIMP (typ='I', statut='o', min=3,max= 4, fr="Indices de fonctionnement des boucles")
2710                           ),
2711   Thermocouples = FACT (statut='f',max='**',fr="Temperatures mesurees par les thermocouples",
2712         NumeroPasse = SIMP (typ='I', statut='o', fr="Numero de la passe de mesure"),
2713         Temperature = SIMP (typ='R', statut='o', max= '**', fr="Temperatures mesurees par les thermocouples")
2714                        )
2715   ) ; # Fin ACTIVITES_EXPERIMENTALES
2716 # -----------------------------------------------------------------------------------------------------------------------------------
2717 #   Classe RESULTATS_ETUDE : Classe de definition des resultats d'une etude
2718 #                               Regroupement des resultats d'une etude en fonction des donnees
2719 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2720 RESULTATS_ETUDE = OPER (nom="RESULTATS_ETUDE", op=0, sd_prod=ResultatsEtude, niveau = 'Resultats',
2721   fr  = "Resultats de tous les cas d'une etude",
2722   ang = "Cases and associated Results",
2723   Resultats = FACT (statut='o',max='**',
2724         Donnees          = SIMP (typ=DonneesCasEtude       ,statut='o',fr="Objet DonneesGeneralesEtude auquel sont associes les objets resultats "),
2725         Sections         = SIMP (typ=Macrolib              ,statut='f',max='**',fr="Liste des Objets Sections issus du calcul"),
2726         Flux             = SIMP (typ=ResultatFlux          ,statut='f',max='**',fr="Liste des Objets Flux issus du calcul"),
2727         Puissances       = SIMP (typ=ResultatPuissances    ,statut='f',max='**',fr="Liste des Objets Puissances"),
2728         Activites        = SIMP (typ=ResultatActivites     ,statut='f',max='**',fr="Liste des Objets Activites"),
2729         Irradiations     = SIMP (typ=ResultatIrradiations  ,statut='f',max='**',fr="Liste des Objets Irradiations"),
2730         ResultatsGlobaux = SIMP (typ=ResultatsGlobauxCoeur ,statut='f',max='**',fr="Liste des Objets contenant les resultats globaux"),
2731         ResultatsAxiaux  = SIMP (typ=ResultatAxial         ,statut='f',max='**',fr="Liste des Objets contenant les resultats axiaux"),
2732         ResultatsRadiaux = SIMP (typ=ResultatRadial        ,statut='f',max='**',fr="Liste des Objets contenant les resultats radiaux"),
2733         Accidents        = SIMP (typ=AccidentsResultats,statut='f',         fr="Resultats des calculs d'accidents"),
2734         Gestion          = SIMP (typ=ResultatsCalculGestion,statut='f',max='**',fr="Liste des Objets contenant les resultats de calcul de gestion")
2735    )
2736  ) ;  # Fin RESULTATS_ETUDE
2737 # -----------------------------------------------------------------------------------------------------------------------------------
2738 #  Classe DICTIONNAIRE_CAS_ETUDE : Classe de definition de l'ensemble des resultats d'une etude
2739 #                                  Regroupement des resultats d'une etude en fonction des donnees
2740 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2741 DICTIONNAIRE_CAS_ETUDE = OPER (nom="DICTIONNAIRE_CAS_ETUDE", op=0, sd_prod=DictionnaireCasEtude, niveau = 'EtudeGenerale',
2742   fr  = "Dictionnaire des resultats de tous les cas d'une etude",
2743   ang = "Cases and associated Results dictionary",
2744   AssociationDonneesResultats = FACT (statut='o',max='**',
2745         Donnees   = SIMP (typ=DonneesCasEtude,statut='o',fr="Objet DonneesGeneralesEtude auquel sont associes les objets resultats"),
2746         Resultats = SIMP (typ=ResultatsEtude,statut='o',max='**',fr="Liste des Objets regroupement des resultats")
2747    )
2748  ) ;    # Fin DICTIONNAIRE_CAS_ETUDE
2749 # -----------------------------------------------------------------------------------------------------------------------------------
2750 #  Classe PROLONGATION_CAMPAGNE : Classe de definition des donnees de prolongation de campagne
2751 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2752 PROLONGATION_CAMPAGNE = OPER (nom="PROLONGATION_CAMPAGNE", op=0, sd_prod=ProlongationCampagne, niveau = 'DonneesPilotage',
2753   fr  = "Donnees de la prolongation de campagne ",
2754   ang = "Stretch out Data",
2755   NbPas              = SIMP (typ='I',statut='o',fr="Nombre d'instants (en JEPP) descriptifs de la prolongation de campagne"),
2756   Jepp               = SIMP (typ='R',statut='o',max='**',fr="Instants descriptifs de la prolongation de campagne, en JEPP"),
2757   Puissance          = SIMP (typ='R',statut='o',max='**',fr="Niveaux de puissance % correspondant aux Jepp de la prolongation de campagne"),
2758   Temperature        = SIMP (typ='R',statut='o',max='**',fr="Temperatures Moderateur (Celsius) correspondant aux Jepp de la prolongation de campagne"),
2759   PositionRegulation = SIMP (typ='R',statut='o',defaut=221.,fr="Position du groupe de regulation en nombre de pas extraits")
2760  ) ;  # Fin PROLONGATION_CAMPAGNE
2761 # -----------------------------------------------------------------------------------------------------------------------------------
2762 #  Classe DONNEES_PILOTAGE_GENERAL : Classe de definition des donnees de pilotage general du reacteur
2763 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2764 DONNEES_PILOTAGE_GENERAL = OPER (nom="DONNEES_PILOTAGE_GENERAL", op=0, sd_prod=DonneesPilotageGeneral, niveau = 'DonneesPilotage',
2765   fr  = "Donnees generales de pilotage du reacteur ",
2766   ang = "General Reactor Control Data",
2767   RegulationGroupe      = SIMP (typ='TXM',statut='o',defaut='R' ,fr="Nom symbolique du groupe de regulation"),
2768   PnomDdcLimitInsR      = SIMP (typ='R'  ,statut='o',defaut=180.,fr="Limite d'insertion R a Pnom DDC en nombre de pas extraits"),
2769   PnomFdcLimitInsR      = SIMP (typ='R'  ,statut='o',defaut=180.,fr="Limite d'insertion R a Pnom FDC en nombre de pas extraits"),
2770   PnulDdcLimitInsR      = SIMP (typ='R'  ,statut='o',defaut=195.,fr="Limite d'insertion R a Pnul DDC en nombre de pas extraits"),
2771   PnulFdcLimitInsR      = SIMP (typ='R'  ,statut='o',defaut=195.,fr="Limite d'insertion R a Pnul FDC en nombre de pas extraits"),
2772   PuissanceGroupes      = SIMP (typ='TXM',statut='o',max='**',defaut=('G1','G2','N1','N2'),fr="Liste ordonnee des noms symboliques des groupes de compensation de puissance"),
2773   Recouvrement          = SIMP (typ='I'  ,statut='o',max='**',defaut=(100,90,90),
2774                                 fr="Liste ordonnee des valeurs de recouvrement des groupes de compensation de puissance, en nombre de pas d'insertion"),
2775   BiteDefinition        = SIMP (typ='R'  ,statut='o',defaut=-2.5, 
2776                                 fr="Efficacite differentielle minimale de la regulation donnant la definition du bite, en pcm/pas"),
2777   BiteFDCPosition       = SIMP (typ='I'  ,statut='o',defaut=225.,       fr="Position imposee du bite en FDC, en nombre de pas extraits"),
2778   BiteLimiteBasse       = SIMP (typ='I'  ,statut='o',defaut=207.,       fr="Position limite basse du bite, en nombre de pas extraits"),
2779   GrappeExtraite        = SIMP (typ='R'  ,statut='o',defaut=225.,       fr="Position Grappe extraite en nombre de pas extraits"),
2780   GrappeInseree         = SIMP (typ='R'  ,statut='o',defaut=5.,         fr="Position Grappe inseree en nombre de pas extraits"),
2781   PositionR1ereDiverg   = SIMP (typ='R'  ,statut='o',defaut=170.,       fr="Position du groupe de Regulation R a la 1ere divergence"),
2782   BandeManoeuvre        = SIMP (typ='R'  ,statut='o',defaut=24.,        fr="Largeur de la bande de manoeuvre du groupe de Regulation R"),
2783   ConfigModeA           = SIMP (typ='TXM',statut='o',defaut=('D','CD','BCD','ABCD'),max='**', fr="Configuration des groupes en mode A"),
2784   ConfigModeG           = SIMP (typ='TXM',statut='o',defaut=('G1','G1G2','G1G2N1','G1G2N1N2','R','RG1','RG1G2','RG1G2N1','RG1G2N1N2'),
2785                                 max='**', fr="Configuration des groupes en mode G"),
2786   LimiteDomaineFct      = SIMP (typ='I',statut='o',defaut=0.05,fr="Limite du domaine de fonctionnement"),
2787   NbPtsSpin             = SIMP (typ='I',statut='o',defaut=31,fr="Nombre de points SPIN"),
2788   SeuilDnbrs            = FACT (statut='o',fr="Seuil DNBRS",
2789                                 PtsSpin = SIMP (typ='I',max='**',statut='o',fr="Liste des points Spin"),
2790                                 Seuils  = SIMP (typ='R',max='**',statut='o',fr="Liste des seuils DNBRS")),
2791   CritereDNBRL          = SIMP (typ='R',statut='o',                 fr="Critere sur le REC"),
2792   AlarmeBasDnbr         = SIMP (typ='R',statut='o',defaut=2.03,     fr="Alarme Bas DNBR"),
2793   CsteCalibrage         = SIMP (typ='R',statut='o',defaut=-0.492,   fr="Constante A de calibrage des grappes SPIN"),
2794   DebitCalibrage        = SIMP (typ='R',statut='o',defaut=99507.,   fr="Debit QCAL de calibrage de la puissance SPIN, m3/h"),
2795   ConfigEpsilon         = SIMP (typ='TXM',statut='o',defaut=('TBH','R','RG1','RG1G2','RG1G2N1','G1G2N1','G1G2','G1'),
2796                                 max='**', fr="Configurations pour le calcul des epsilon(z)"),
2797   IrradEpsilon          = SIMP (typ='R',statut='o',defaut=(150.,20000.),max='**',fr="Irradiations MWj/t du calcul des epsilon(z)")
2798   ) ;  # Fin DONNEES_PILOTAGE_GENERAL
2799 # -----------------------------------------------------------------------------------------------------------------------------------
2800 #  Classe DONNEES_AJUSTEMENT : Classe de definition des donnees d'ajustement des parametres de calcul
2801 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2802 DONNEES_AJUSTEMENT = OPER (nom="DONNEES_AJUSTEMENT", op=0, sd_prod=DonneesAjustement, niveau = 'DonneesEtude',
2803   fr  = "Donnees generales d'ajustement",
2804   ang = "Adjustment Data",
2805   PnomReactivite = SIMP (typ='R',statut='o',defaut=0.,fr="Facteur additif correctif de la reactivite du coeur a Pnom, en pcm"),
2806   PnulReactivite = SIMP (typ='R',statut='o',defaut=0.,fr="Facteur additif correctif de la reactivite du coeur a Pnul, en pcm"),
2807   SectionsBore   = SIMP (typ='R',statut='o',defaut=1.,fr="Facteur multiplicatif correctif des sections du bore soluble du moderateur"),
2808   AlphaIsotherme = SIMP (typ='R',statut='o',defaut=3.,fr="Facteur additif correctif du coefficient de temperature isotherme en pcm/C"),
2809   Grappes        = NUPL (max = '**', statut = 'f',
2810                          fr = "Liste des ajustements associes aux types de grappes de controle",
2811                          elements = (SIMP (typ='TXM',statut='o',fr="Type de grappe 0P 24B 8B 12B etc."),
2812                                      SIMP (typ='R'  ,statut='o',max='**',
2813                                            fr="Coefficients multiplicatifs des sections d'absorption pour tous les groupes d'energie"))),
2814   Configurations = NUPL (max = '**', statut = 'f',
2815                          fr = "Liste des ajustements associes aux configurations de groupes de grappes de controle",
2816                          elements = (SIMP (typ='TXM',statut='o',fr="Nom de la configuration"),
2817                                      SIMP (typ='R'  ,statut='o',max='**',
2818                                            fr="Coefficient multiplicatif de l'efficacites de la configuration"))),
2819   Samarium       = NUPL (max = '**', statut = 'f',
2820                          fr = "Liste des couples (Irradiation, Correction Reactivite due au samarium)",
2821                          elements = (SIMP (typ='R',statut='o',fr="Taux d'irradiation en MWj/t"),
2822                                      SIMP (typ='R',statut='o',fr="Correction de reactivite en pcm au taux d'irradiation precedent")))
2823  ) ;  # Fin DONNEES_AJUSTEMENT
2824 # -----------------------------------------------------------------------------------------------------------------------------------
2825 #  Classe ACCIDENT_DILUTION : Classe de definition des donnees du calcul d'accident de dilution
2826 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2827 ACCIDENT_DILUTION = OPER (nom="ACCIDENT_DILUTION", op=0, sd_prod=AccidentDilution, niveau = 'DonneesDesAccidents',
2828   fr  = "Donnees de la simulation de l'accident de dilution",
2829   ang = "Data for dilution accident simulation",
2830   ConfigArretChaud            = SIMP (typ='TXM',statut='o',defaut=('R','G1','G2','N1','N2'),max='**',
2831                                       fr="Liste des groupes de grappes de la configuration a l'arret a chaud"),
2832   ConfigArretFroid            = SIMP (typ='TXM',statut='o',defaut=('G1','G2','N1','N2'),max='**',
2833                                       fr="Liste des groupes de grappes de la configuration a l'arret a froid"),
2834   ConfigFroidDepassement      = SIMP (typ='TXM',statut='o',defaut=('G1','N1','N2'),max='**',
2835                                       fr="Liste des groupes de la configuration a l'arret a froid en cas de depassement du delai"),
2836   ConfigChaudDepassement      = SIMP (typ='TXM',statut='o',defaut=('R','G1','N1','N2'),max='**',
2837                                       fr="Liste des groupes de la configuration a l'arret a chaud en cas de depassement du delai"),
2838   IrradDepassement            = SIMP (typ='TXM',statut='o',max='**',    fr="Liste des irradiations de calcul en cas de depassement du delai"),
2839   SousCriticiteArret          = SIMP (typ='R',statut='o', defaut=1000., fr="Sous-criticite a l'arret en pcm"),
2840   CbDilutionCorrection        = SIMP (typ='R',statut='o', defaut=100. , fr="Correction du titre en bore de dilution, en ppm"),
2841   EfficaciteGrappesCorrection = SIMP (typ='R',statut='o', defaut=10.  , fr="Correction de l'efficacite des grappes en %"),
2842   DefautPuissanceCorrection   = SIMP (typ='R',statut='o', defaut=10.  , fr="Correction du defaut de puissance en %"),
2843   DecalageGroupes             = SIMP (typ='R',statut='o', defaut=10.  , fr="Decalage des groupes, en nombre de pas extraits"),
2844   PerteEfficacite             = SIMP (typ='R',statut='o', defaut=1.   , fr="Perte d'efficacite par pas des groupes, en pcm/pas"),
2845   PmaxChaud                   = SIMP (typ='R',statut='o', defaut=35.  , fr="Puissance relative maximum en dilution a chaud, en %"),
2846   DebitChaud                  = SIMP (typ='R',statut='o', defaut=31.  , fr="Debit de dilution a chaud en m3/h"),
2847   DebitFroid                  = SIMP (typ='R',statut='o', defaut=31.  , fr="Debit de dilution a froid en m3/h"),
2848   DebitDilution               = SIMP (typ='R',statut='o', defaut=60.  , fr="Debit de dilution en puissance en m3/h"),
2849   RoEauRCV                    = SIMP (typ='R',statut='o', defaut=1.   , fr="Masse volumique de l'eau du ballon RCV en g/cm3"),
2850   CRNFroid                    = SIMP (typ='R',statut='o', defaut=250. , fr="Effet des CRN en dilution a froid en pcm"),
2851   TiltFroidMn                 = SIMP (typ='R',statut='o', defaut=-2.  , fr="Provision sur le delai operateur due au tilt radial en accident a froid, en mn"),
2852   TiltChaudMn                 = SIMP (typ='R',statut='o', defaut=-2.  , fr="Provision sur le delai operateur due au tilt radial en accident a chaud, en mn"),
2853   TiltFroidPpm                = SIMP (typ='R',statut='o', defaut=5.,
2854                                       fr="Majoration de la teneur en bore a la criticite due au tilt radial en accident a froid, en ppm"),
2855   TiltChaudPpm                = SIMP (typ='R',statut='o', defaut=22.,
2856                                       fr="Majoration de la teneur en bore a la criticite due au tilt radial en accident a chaud, en ppm"),
2857   TiltPnDdc                   = SIMP (typ='R',statut='o', defaut=53., fr="Provision due au tilt radial en accident a Pn DDDC, en pcm"),
2858   DelaiOperateur              = SIMP (typ='R',statut='o', defaut=15., fr="Delai d'intervention en accident a froid ou a chaud en mn"),
2859   DelaiRechargement           = SIMP (typ='R',statut='o', defaut=20., fr="Delai d'intervention en accident au rechargement en mn")
2860  ) ;  # Fin ACCIDENT_DILUTION
2861 # -----------------------------------------------------------------------------------------------------------------------------------
2862 #  Classe ACCIDENT_DILUTION_RESULTAT : Classe de definition des resultats du calcul d'accident de dilution
2863 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2864 ACCIDENT_DILUTION_RESULTAT = OPER (nom="ACCIDENT_DILUTION_RESULTAT", op=0, sd_prod=AccidentDilutionResultat, niveau = 'ResultatsAccidents',
2865   fr  = "Resultats de la simulation de l'accident de dilution",
2866   ang = "Results from dilution accident simulation",
2867   EtatArret               = SIMP (typ='TXM',statut='o', fr="Etat d'arret",into=('Chaud','Froid','Rechargement')),
2868   BlocRechargement        = BLOC (condition = "EtatArret=='Rechargement'",
2869         Keff              = SIMP (typ='R'  ,statut='o', fr="Keff au rechargement"),
2870         Ebore             = SIMP (typ='R'  ,statut='o', fr="Efficacite du bore au rechargement pcm/ppm")),
2871   BlocArret               = BLOC (condition = "EtatArret!='Rechargement'",
2872         Configuration     = SIMP (typ='TXM',statut='o', fr="Configuration a l'arret"),
2873         Irradiation       = SIMP (typ='R'  ,statut='o', fr="Irradiation de calcul MWj/t"),
2874         CbArret           = SIMP (typ='R'  ,statut='o', fr="Titre en bore a l'arret en ppm"),
2875         Eb                = SIMP (typ='R'  ,statut='o', fr="Efficacite du bore a l'arret en pcm/ppm"),
2876         CbArretUrgence    = SIMP (typ='R'  ,statut='o', fr="Titre en bore a l'arret d'urgence en ppm"),
2877         CbCriticite       = SIMP (typ='R'  ,statut='o', fr="Titre en bore a l'instant de criticite en ppm"),
2878         EfficaciteAU      = SIMP (typ='R'  ,statut='o', fr="Efficacite de l'arret d'urgence en pcm"),
2879         DelaiIntervention = SIMP (typ='R'  ,statut='o', fr="Delai d'intervention en mn"),
2880         InstantCriticite  = SIMP (typ='R'  ,statut='f', fr="Instant de criticite en mn"),
2881         IrradiationMin    = SIMP (typ='R'  ,statut='f', fr="Irradiation minimum MWj/t ou le delai d'intervention est suffisant"))
2882  ) ;  # Fin ACCIDENT_DILUTION_RESULTAT
2883 # -----------------------------------------------------------------------------------------------------------------------------------
2884 #  Classe ACCIDENT_RTV : Classe de definition des donnees du calcul d'accident de RTV
2885 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2886 ACCIDENT_RTV = OPER (nom="ACCIDENT_RTV", op=0, sd_prod=AccidentRTV, niveau = 'DonneesDesAccidents',
2887   fr  = "Donnees de la simulation de l'accident de RTV",
2888   ang = "Data for Steam Line Break accident simulation",
2889   CodeCalcul            = SIMP (typ='TXM' ,statut='o', defaut='COBRA',into=('COBRA','THYC','FLICA'),fr="Debit primaire en m3/h"),
2890   DebitPrimaire         = SIMP (typ='R'   ,statut='o', defaut=70500.     ,fr="Debit primaire en m3/h"),
2891   DebitContournement    = SIMP (typ='R'   ,statut='o', defaut=4.5        ,fr="Debit de contournement en % du debit primaire"),
2892   PressionPrimaire      = SIMP (typ='R'   ,statut='o', defaut=57.5       ,fr="Pression primaire en bars"),
2893   TmMoyenne             = SIMP (typ='R'   ,statut='o', defaut=239.8      ,fr="Temperature moyenne moderateur en Celsius"),
2894   TmPnul                = SIMP (typ='R'   ,statut='o', defaut=286.       ,fr="Temperature moderateur a Pnul en Celsius"),
2895   TmPnom                = SIMP (typ='R'   ,statut='o', defaut=287.8      ,fr="Temperature moderateur a Pnom en Celsius"),
2896   BorePpm               = SIMP (typ='R'   ,statut='o', defaut=21.9       ,fr="Titre en bore du moderateur en ppm"),
2897   NiveauPuissance       = SIMP (typ='R'   ,statut='o', defaut=14.1       ,fr="Puissance relative en %"),
2898   GrappeCoincee         = SIMP (typ='TXM' ,statut='o', defaut='F14'      ,fr="Repere de la grappe coincee lors de l'accident"),
2899   GrappesCorrespondance = SIMP (typ='TXM' ,statut='o', max='**'          ,fr="Correspondance entre grappes coincees lors de l'accident"),
2900   AnglesBouclesFroides  = SIMP (typ='R'   ,statut='o', defaut=(0., 120., 240.),max=4,fr="Positions angulaires des boucles froides"),
2901   TmBoucles             = SIMP (typ='R'   ,statut='o', defaut=(216.8,250.8,250.8),max=4,fr="Temperatures des boucles"),
2902   TmCanaux              = SIMP (typ='R'   ,statut='o', max='**',fr="Temperatures moyennes d'entree des canaux COBRA"),
2903   TmAssemblages         = SIMP (typ='R'   ,statut='o', max='**',fr="Temperatures moyennes a l'entree des assemblages du coeur"),
2904   OrientationBoucles    = NUPL (max='**'  ,statut='o',fr="Orientation des boucles suivant la grappe coincee",
2905                elements = (SIMP (typ='TXM',statut='o', fr="Repere de la grappe"),
2906                            SIMP (typ='R'  ,statut='o', fr="Orientation des boucles suivant la grappe coincee, en degres")))
2907  ) ;  # Fin ACCIDENT_RTV
2908 # -----------------------------------------------------------------------------------------------------------------------------------
2909 #  Classe ACCIDENT_CHUTE_GRAPPE : Classe de definition des donnees du calcul d'accident de chute de grappe(s)
2910 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2911 ACCIDENT_CHUTE_GRAPPE = OPER (nom="ACCIDENT_CHUTE_GRAPPE", op=0, sd_prod=AccidentChuteGrappe, niveau = 'DonneesDesAccidents',
2912   fr  = "Donnees de la simulation de l'accident de chute de grappes",
2913   ang = "Data for rod insertion accident simulation",
2914   RecMinimum         = SIMP (typ='R',statut='o',defaut=1.225,fr="REC minimum"),
2915   RoPenalite         = SIMP (typ='R',statut='f',defaut=10.,fr="Penalite en % a appliquer aux variations de reactivite"),
2916   RoPenaliteSupp     = NUPL (statut='f',fr="Penalite supplementaire suivant la grappe chutee",elements = (
2917                              SIMP (typ='TXM',statut='o',fr="Repere de la grappe"),
2918                              SIMP (typ='R'  ,statut='o',fr="Penalite supplementaire en %"))),
2919   DroiteDetection    = SIMP (typ='R',statut='o',min=4,max=4,defaut=(0.92, 50., 1.11, 250.),
2920                              fr="Droite de detection de la chute de grappe dans le plan (Tilt,DeltaRo)(2 points a definir tilt1,deltaro1 et tilt2,deltaro2)"),
2921   CoeffDesalignement = SIMP (typ='R',statut='o',min=8,max=8,defaut=(1.010,1.040,1.040,1.040,1.110,1.040,1.110,1.000),
2922                              fr="Coefficients de desalignements K1 KP1 K2 KP2 K3 K4 K5 E"),
2923   DeltaDnbrThermo    = SIMP (typ='R',statut='o',min=2,max=2,defaut=(5.7, 0.),
2924                              fr="Variation du REC due aux effets thermohydrauliques, pour les chutes d'1 grappe et de 2 grappes"),
2925   DeltaDnbrMax       = SIMP (typ='R',statut='o',min=2,max=2,defaut=(39., 74.),
2926                              fr="Variation maximum du REC, pour les chutes d'1 grappe et de 2 grappes"),
2927   RecEnveloppe       = SIMP (typ='R',statut='o',defaut=(1., 2., 1.5), min=3, max=3,
2928                              fr="Definition du domaine REC pour la determination de l'enveloppe de la flyspeck : RecMin RecMax Pente"),
2929   FxyIncertitude     = SIMP (typ='R',statut='o',defaut=(0.,1.03,150.,1.03,2000.,1.061), max='**',
2930                              fr="Incertitude sur Fxy en fonction de l'irradiation (Couples (MWj/t, Facteur))")
2931  ) ;  # Fin ACCIDENT_CHUTE_GRAPPE
2932 # -----------------------------------------------------------------------------------------------------------------------------------
2933 #  Classe ACCIDENT_CHUTE_GRAPPE_RESULTAT : Classe de definition des resultats du calcul d'accident de chute de grappe(s)
2934 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2935 ACCIDENT_CHUTE_GRAPPE_RESULTAT = OPER (nom="ACCIDENT_CHUTE_GRAPPE_RESULTAT", op=0, sd_prod=AccidentChuteGrappeResultat, niveau='ResultatsAccidents',
2936   fr  = "Resultats de la simulation de l'accident de chute de grappes",
2937   ang = "Rod insertion accident simulation Results",
2938   Irradiation       = SIMP (typ='R'  ,statut='o', fr="Irradiation de calcul MWj/t"),
2939   Chute             = FACT (max='**' ,statut='f', fr="Resultats de la chute d'1 ou 2 grappes",
2940     Grappes         = SIMP (typ='TXM', statut='o', max=2, fr="Reperes des grappes chutees"),
2941     DeltaRo         = SIMP (typ='R',statut='o', fr="Antireactivite introduite par la chute des grappes, en pcm"),
2942     DeltaRoPen      = SIMP (typ='R',statut='o', fr="Antireactivite penalisee introduite par la chute des grappes, en pcm"),
2943     Keff            = SIMP (typ='R',statut='o', fr="Keff apres chute des grappes"),
2944     KeffPen         = SIMP (typ='R',statut='o', fr="Keff penalise apres la chute des grappes"),
2945     DeltaFxy        = SIMP (typ='R',statut='o', fr="Rapport Fxy/FxyTBH"),
2946     Tilt2emeMinimum = SIMP (typ='R',statut='o', fr="Valeur du 2eme tilt minimum")),
2947   ChuteMax          = FACT (statut='f',fr="Valeurs maximales atteintes pour les chutes d'1 ou 2 grappes",
2948     FDH             = SIMP (typ='R'  ,statut='o', fr="Facteur d'elevation d'enthalpie"),
2949     DeltaRo         = SIMP (typ='R'  ,statut='o', fr="Antireactivite introduite par la chute des grappes, en pcm"),
2950     DeltaRoPen      = SIMP (typ='R'  ,statut='o', fr="Antireactivite penalisee introduite par la chute des grappes, en pcm"),
2951     Keff            = SIMP (typ='R'  ,statut='o', fr="Keff apres chute des grappes"),
2952     KeffPen         = SIMP (typ='R'  ,statut='o', fr="Keff penalise apres la chute des grappes"),
2953     DeltaFxy        = SIMP (typ='R'  ,statut='o', fr="Rapport Fxy/FxyTBH"),
2954     PositionDeltaRo = SIMP (typ='TXM',statut='o', max=2,fr="Grappes associees a l'antireactivite max"),
2955     PositionFxy     = SIMP (typ='TXM',statut='o', max=2,fr="Grappes associees au Fxy/FxyTBH max"))
2956  ) ;  # Fin ACCIDENT_CHUTE_GRAPPE_RESULTAT
2957 # -----------------------------------------------------------------------------------------------------------------------------------
2958 #  Classe ACCIDENT_EJECTION : Classe de definition des donnees du calcul d'accident d'ejection d'une grappe
2959 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2960 ACCIDENT_EJECTION = OPER (nom="ACCIDENT_EJECTION", op=0, sd_prod=AccidentEjection, niveau = 'DonneesDesAccidents',
2961   fr  = "Donnees de la simulation de l'accident d'ejection d'une grappe",
2962   ang = "Data for rod ejection accident simulation",
2963   Recouvrement     = SIMP (typ='R', statut='o', defaut=100., fr="Recouvrement en ejection Mode A, en nombre de pas"),
2964   DeltaRoPenalite  = SIMP (typ='R', statut='o', defaut=1.10, fr="Facteur multiplicatif general des efficacites des grappes ejectees"),
2965   FqPenalite       = SIMP (typ='R', statut='o', defaut=1.12, fr="Facteur multiplicatif general des Fq"),
2966   DeltaRoPenGrappe = FACT (statut='f', fr="Corrections specifiques aux grappes ejectees : Couples RepereGrappe,PenaliteDeltaro",
2967         Grappes    = SIMP (typ='TXM', statut='f', max='**', fr="Liste des grappes ejectees"),
2968         Penalites  = SIMP (typ='R'  , statut='f', max='**', fr="Corrections des DeltaRo specifiques aux grappes ejectees")),
2969   FqPenGrappe      = FACT (statut='f', fr="Corrections specifiques aux grappes ejectees : Couples RepereGrappe,PenaliteFq",
2970         Grappes    = SIMP (typ='TXM', statut='f', max='**', fr="Liste des grappes ejectees"),
2971         Penalites  = SIMP (typ='R'  , statut='f', max='**', fr="Corrections des Fq specifiques aux grappes ejectees"))
2972  ) ;  # Fin ACCIDENT_EJECTION
2973 # -----------------------------------------------------------------------------------------------------------------------------------
2974 #  Classe ACCIDENT_EJECTION_RESULTAT : Classe de definition des donnees du calcul d'accident d'ejection d'une grappe
2975 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2976 ACCIDENT_EJECTION_RESULTAT = OPER (nom="ACCIDENT_EJECTION_RESULTAT", op=0, sd_prod=AccidentEjectionResultat, niveau = 'ResultatsAccidents',
2977   fr  = "Resultats de la simulation de l'accident d'ejection d'une grappe",
2978   ang = "Rod ejection accident simulation Results",
2979   Ejection      = FACT (statut='o', max='**', fr="Resultats du calcul d'ejection d'une grappe",
2980         Irradiation     = SIMP (typ='R'  , statut='o', fr="Irradiation MWj/t du calcul d'ejection"),
2981         Puissance       = SIMP (typ='R'  , statut='o', fr="Niveau de du calcul d'ejection"),
2982         Configuration   = SIMP (typ='TXM', statut='o', max='**',fr="Configuration d'ejection (liste des groupes inseres)"),
2983         Grappe          = SIMP (typ='TXM', statut='o', fr="Repere de la grappe ejectee"),
2984         Fxy             = SIMP (typ='R'  , statut='o', fr="Fxy dans la configuration d'ejection"),
2985         Efficacite      = SIMP (typ='R'  , statut='o', fr="Efficacite de la grappe ejectee"),
2986         Dollar          = SIMP (typ='R'  , statut='o', fr="Rapport DeltaRoEjectee/BetaTot"),
2987         Fq              = SIMP (typ='R'  , statut='o', fr="Facteur de point chaud Fq"))
2988  ) ;  # Fin ACCIDENT_EJECTION_RESULTAT
2989 # -----------------------------------------------------------------------------------------------------------------------------------
2990 #  Classe CRITERES_SURETE : Classe de definition des criteres de surete et des valeurs limites des parametres cles des accidents
2991 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2992 CRITERES_SURETE = OPER (nom="CRITERES_SURETE", op=0, sd_prod=CriteresSurete, niveau = 'DonneesDesAccidents',
2993   fr  = "Criteres et valeurs limites des parametres cles de surete",
2994   ang = "Safety Criteria and Accident Key Parameter Values",
2995   FDHConception = SIMP (typ='R',statut='o',defaut=1.55 ,fr="Facteur d'elevation d'enthalpie de conception"),
2996   RECMinimal    = SIMP (typ='R',statut='o',defaut=1.225,fr="Valeur minimale du REC"),
2997   FxyLimite     = FACT (statut='o',fr="Liste des configurations de groupes et Fxy limites associes",
2998                   Configurations  = SIMP (typ='TXM',max='**',statut='o',fr="Liste des configurations de groupes"),
2999                   Fxy             = SIMP (typ='R'  ,max='**',statut='o',fr="Valeurs limites de Fxy pour toutes les configurations"))
3000  ) ;  # Fin CRITERES_SURETE
3001 # -----------------------------------------------------------------------------------------------------------------------------------
3002 #  Classe DONNEES_ACCIDENTS : Agregation des donnees de tous les accidents et des criteres de surete
3003 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3004 DONNEES_ACCIDENTS = OPER (nom="DONNEES_ACCIDENTS", op=0, sd_prod=DonneesAccidents, niveau = 'DonneesDesAccidents',
3005   fr  = "Package des classes des donnees de simulation de tous les accidents",
3006   ang = "All Accident Simulation Data",
3007   regles = (AU_MOINS_UN('Dilution', 'RTV', 'ChuteGrappe','Ejection', 'CriteresSurete'),),
3008   Dilution       = SIMP (typ=AccidentDilution    ,statut='f', fr="Donnees de l'accident de dilution"),
3009   RTV            = SIMP (typ=AccidentRTV         ,statut='f', fr="Donnees de l'accident de RTV"),
3010   ChuteGrappe    = SIMP (typ=AccidentChuteGrappe ,statut='f', fr="Donnees de l'accident de chute de grappe"),
3011   Ejection       = SIMP (typ=AccidentEjection    ,statut='f', fr="Donnees de l'accident d'ejection"),
3012   CriteresSurete = SIMP (typ=CriteresSurete      ,statut='f', fr="Criteres de surete")
3013  ) ;  # Fin DONNEES_ACCIDENTS
3014 # -----------------------------------------------------------------------------------------------------------------------------------
3015 #  Classe ACCIDENTS_RESULTATS : Classe de definition des options generales et du type de calcul demande
3016 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3017 ACCIDENTS_RESULTATS = OPER (nom="ACCIDENTS_RESULTATS", op=0, sd_prod=AccidentsResultats, niveau = 'ResultatsAccidents',
3018   fr  = "Package des classes des resultats de simulation de tous les accidents",
3019   ang = "All Accident Simulation Results",
3020 # regles = (AU_MOINS_UN('Dilution', 'RTV', 'ChuteGrappe','Ejection'),),
3021   Dilution     = SIMP (typ=AccidentDilutionResultat    ,statut='f', fr="Resultats de la simulation de l'accident de dilution"),
3022 # RTV          = SIMP (typ=AccidentRTVResultat         ,statut='f', fr="Resultats de la simulation de l'accident de RTV"),
3023   ChuteGrappe  = SIMP (typ=AccidentChuteGrappeResultat ,statut='f', fr="Resultats de la simulation de l'accident de chute de grappe"),
3024   Ejection     = SIMP (typ=AccidentEjectionResultat    ,statut='f', fr="Resultats de la simulation de l'accident d'ejection")
3025  ) ;  # Fin ACCIDENTS_RESULTATS
3026 # -----------------------------------------------------------------------------------------------------------------------------------
3027 #  Classe PARAMETRES_CALCUL_GESTION : Classe de definition de parametres de calcul de gestion du coeur
3028 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3029 PARAMETRES_CALCUL_GESTION = OPER (nom="PARAMETRES_CALCUL_GESTION", op=0, sd_prod=ParametresCalculGestion, niveau = 'ParametresCalcul',
3030   fr  = "Parametres divers pour le calcul de gestion du coeur",
3031   ang = "Core Management Calculation Parameters",
3032   DecalageGroupes   = SIMP (typ='R',statut='o',defaut=0.,fr="Valeur du decalage (en nombre de pas) des groupes a chaque campagne"),
3033   ErreurMaxLnat     = SIMP (typ='R',statut='o',defaut=5.,fr="Erreur maximale (MWj/t) du calcul de la longueur naturelle de campagne"),
3034   ErreurBite        = SIMP (typ='R',statut='o',defaut=5.,fr="Erreur maximale (en nombre de pas) du calcul de la position du bite en evolution"),
3035   LnatCbDdc         = SIMP (typ='R',statut='o',defaut=(7500., 758., 12060., 1300.), min=4, max=4,
3036                             fr="Loi lineaire Lnat fonction de CbDDC : 2 points a fournir (MWj/t, Cb)"),
3037   TiltBuMax         = SIMP (typ='R',statut='o',defaut=5.,fr="Pourcentage max de desequilibre radial admissible pour les calculs 1/4 coeur"),
3038   CalculMarge       = FACT (statut='o',fr="Parametres du calcul de la marge d'antireactivite",
3039                     MajorationDefP  = SIMP (typ='R' ,statut='o',defaut= 10.,fr="Majoration % du defaut de puissance"),
3040                     Redistribution  = SIMP (typ='R' ,statut='o',defaut=950.,fr="Effet de redistribution en pcm"),
3041                     EffetVide       = SIMP (typ='R' ,statut='o',defaut= 50.,fr="Effet de vide en pcm"),
3042                     MinorationEFG   = SIMP (typ='R' ,statut='o',defaut= 10.,fr="Minoration de l'efficacite des grappes en %"),
3043                     Regulation      = SIMP (typ='R' ,statut='o',defaut=500.,fr="Antireactivite de la regulation en pcm"),
3044                     UsureGrappes    = SIMP (typ='R' ,statut='o',defaut=100.,fr="Effet de l'usure des grappes en pcm"),
3045                     Calibrage       = SIMP (typ='R' ,statut='o',defaut=280.,fr="Incertitude de calibrage en pcm")),
3046   SousCriticiteDdc = SIMP (typ='R',statut='o',defaut=1000.,fr="Sous-criticite initiale en etat d'arret, en pcm"),
3047   SousCriticiteFdc = SIMP (typ='R',statut='o',defaut=1770.,fr="Sous-criticite minimale en etat d'arret FDC bore nul, en  pcm"),
3048   CritereArChaud   = SIMP (typ='R',statut='o',defaut= 690.,fr="Cb (ppm) de changement de critere sur la sous-criticite minimale en etat d'arret (Ex: 1000 a 1770 pcm)"),
3049   MajorCbArret     = SIMP (typ='R',statut='o',defaut= 100.,fr="Majoration (en ppm) des titres en bore en etat d'arret")
3050  ) ;  # Fin PARAMETRES_CALCUL_GESTION
3051 # -----------------------------------------------------------------------------------------------------------------------------------
3052 #  Classe RESULTATS_CALCUL_GESTION : Classe de stockage des resultats de calcul de gestion
3053 # -----------------------------------------------------------------------------------------------------------------------------------
3054 RESULTATS_CALCUL_GESTION = OPER (nom="RESULTATS_CALCUL_GESTION", op=0, sd_prod=ResultatsCalculGestion, niveau = 'Resultats',
3055   fr  = "Resultats divers des calculs de gestion du coeur",
3056   ang = "Core Management Calculation Results",
3057   Cb1ereDivergence = SIMP (typ='R',statut='f',defaut=0.,fr="Titre en bore a la premiere divergence, en ppm"),
3058   CTMNegatif = FACT (statut='f',
3059     Cbore = SIMP (typ='R',statut='o',fr="Titre en bore (ppm) garantissant un CTM negatif en DDC Pnul"),
3060     Irrad = SIMP (typ='R',statut='o',fr="Irradiation MWj/t au-dela de laquelle le CTM est negatif a Pnul"),
3061     Pmax  = SIMP (typ='R',statut='o',defaut=100.,fr="Niveau % de puissance limite garantissant un CTM negatif en DDC"),
3062     CTMP  = SIMP (typ='R',statut='o',max='**',fr="CTM pcm/C en fonction du niveau de puissance en DDC (Serie de couples Pr, CTM)"),
3063     Position = SIMP (typ='R',statut='o',max='**',
3064               fr="Chevauchement des groupes conduisant a un CTM nul suivant la puissance (Couples Pr, Chevauchement)"))
3065  ) ;  # Fin RESULTATS_CALCUL_GESTION
3066 # -----------------------------------------------------------------------------------------------------------------------------------
3067 #  Classe CALIBRAGE_GROUPES : Classe de stockage des positions de calibrage des groupes gris
3068 # -----------------------------------------------------------------------------------------------------------------------------------
3069 CALIBRAGE_GROUPES = OPER (nom="CALIBRAGE_GROUPES", op=0, sd_prod=CalibrageGroupes, niveau = 'DonneesPilotage',
3070   fr  = "Positions de calibrage des groupes gris et coefficients isothermes associes",
3071   ang = "Grey Control Rod Cluster Positions Versus Power Level and Isothermal Coefficients",
3072   PasPuissance    = SIMP (typ='R', statut='o', defaut=5.,
3073                           fr="Pas en puissance (%) pour la donnee des positions de calibrage"),
3074   Calibrage       = FACT (statut='o',max='**',
3075      Irradiation  = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"),
3076      Positions    = SIMP (typ='I',statut='o',max='**',fr="Positions de calibrage pour tous les niveaux de puissance")),
3077   AlphaIso        = FACT (statut='o',max='**',
3078      Irradiation  = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"),
3079      Coefficients = SIMP (typ='R',statut='o',max='**',fr="Coefficients isothermes pour tous les niveaux de puissance pcm/C")),
3080   Chevauchement   = FACT (statut='o',max='**',
3081      Irradiation  = SIMP (typ='R',statut='o', fr="Irradiation MWj/t"),
3082      Pas          = SIMP (typ='I',statut='o',max='**',fr="Pas de chevauchement des groupes pour tous les niveaux de puissance")),
3083   PnulDDCPosition = SIMP (typ='I',statut='o',max='**',fr="Positions de groupes gris dans les conditions d'essai de demarrage")
3084  ) ;  # Fin CALIBRAGE_GROUPES