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