From: Eric Fayolle Date: Thu, 1 Sep 2022 16:36:15 +0000 (+0200) Subject: Menage ds les catalogues X-Git-Tag: merge_uncertainty_odysee_1210~22 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=44cbb5adbb78b4a8e2737a4a3eae12840db6f86b;p=tools%2Feficas.git Menage ds les catalogues --- diff --git a/ReacteurNumerique/cata_PETIT_test1.xml b/ReacteurNumerique/cata_PETIT_test1.xml deleted file mode 100644 index ad006e5c..00000000 --- a/ReacteurNumerique/cata_PETIT_test1.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - A - B - - - C - D - - - diff --git a/ReacteurNumerique/cata_RN_EDG.py b/ReacteurNumerique/cata_RN_EDG.py index a151ae30..8ce7d62b 100644 --- a/ReacteurNumerique/cata_RN_EDG.py +++ b/ReacteurNumerique/cata_RN_EDG.py @@ -859,4 +859,4 @@ Scenario_data = OPER( validators=VerifPostTreatment(), max="**")) -from cata_RN_UQ import * +#from cata_RN_UQ import * diff --git a/ReacteurNumerique/cata_RN_EDG_yp.py b/ReacteurNumerique/cata_RN_EDG_yp.py deleted file mode 100644 index b173c2e6..00000000 --- a/ReacteurNumerique/cata_RN_EDG_yp.py +++ /dev/null @@ -1,878 +0,0 @@ -# -*- coding: utf-8 -*- - -"""Definition of the data model used by the integration bench. - -Warnings --------- -EFICAS will import this file as Python module with the ``__import__`` special -function so, this module must not use relative import. -""" -# pylint: disable=import-error -# pylint: disable=too-few-public-methods - -# TODO: Create a main object that point on the different subobjects and force its name - -# EFICAS -from Accas import OPER, BLOC, FACT, SIMP, ASSD, JDC_CATA, VerifTypeTuple, Matrice -from Accas import Tuple as _Tuple -from Extensions.i18n import tr - -# Warning: The names of these variables are defined by EFICAS -JdC = JDC_CATA(code="RN_EDG") -VERSION_CATALOGUE = "V_0" - -# Define the minimum and the maximum number of elements (reflectors and fuel -# assemblies) on the core's side -NMIN_CORE_FUEL_ELTS = 1 -NMAX_CORE_FUEL_ELTS = 18 - -# Available absorbing material type in the rod clusters -ROD_COMPOSITIONS = ( - "Black", # Full AIC rods - "Grey", # Mix between AIC and steel rods - "B4C", # Full B4C rods -) - -# Available options for the core elements rotation -ASSEMBLY_ROTATIONS = ( - ".", # identity - "R1", # 90° counter-clock - "R2", # 180° - "R3", # 270° counter-clock - "UD", # up-down - "LR", # left-right - "TR", # transpose x/y - "RT", # transpose x/-y -) - -class Tuple(_Tuple): - """Organize the data into a fixed size tuple. - - Warnings - -------- - This class respect the EFICAS conventions. - """ - - def __convert__(self, valeur): - if len(valeur) != self.ntuple: - return None - return valeur - - -class VerifPostTreatment(VerifTypeTuple): - """Validate the data comming from ``Scenario_data.post_processing``. - - Warnings - -------- - This class respect the EFICAS conventions. - """ - # pylint: disable=invalid-name - # pylint: disable=missing-function-docstring - # pylint: disable=no-self-use - - PHYSICS = ("Neutronics", "Thermalhydraulics") - FORMATS = ("MED", "SUM", "MIN", "MAX", "MEAN") - - def __init__(self): - super().__init__(("TXM", "TXM")) - self.cata_info = "" - - def info(self): - return tr(": vérifie les \ntypes dans un tuple") - - def infoErreurListe(self): - return tr("Les types entres ne sont pas permis") - - def default(self, valeur): - return valeur - - def isList(self): - return 1 - - def convertItem(self, valeur): - if len(valeur) != len(self.typeDesTuples): - raise ValueError( - tr("%s devrait être de type %s ") % (valeur, self.typeDesTuples)) - ok = self.verifType(valeur) - if ok == 0: - raise ValueError( - tr("%s devrait être de type %s (%d)") % (valeur, self.typeDesTuples, ok)) - if ok < 0: - raise ValueError( - tr("%s devrait être dans %s ") % (valeur[1], self.FORMATS)) - return valeur - - def verifItem(self, valeur): - try: - if len(valeur) != len(self.typeDesTuples): - return 0 - ok = self.verifType(valeur) - if ok != 1: - return 0 - except: # pylint: disable=bare-except - return 0 - return 1 - - def verifType(self, valeur): # pylint: disable=arguments-differ - ok = 0 - for v in valeur: - if isinstance(v, (bytes, str)): - ok += 1 - if ok == len(self.typeDesTuples): - if valeur[1] in self.FORMATS: - return 1 - return -1 - return 0 - - def verif(self, valeur): - if type(valeur) in (list, tuple): - liste = list(valeur) - for val in liste: - if self.verifItem(val) != 1: - return 0 - return 1 - return 0 - - -class _Assembly(ASSD): - pass - - -class _TechnoData(ASSD): - pass - - -class _RodBank(ASSD): - pass - - -class _ModelData(ASSD): - pass - - -class _ScenarioData(ASSD): - pass - - -Assembly = OPER( - nom="Assembly", - sd_prod=_Assembly, - fr="Description d'un élément du cœur", - ang="Core element description", - assembly_type=SIMP( - fr="Type d'élément cœur (assemblage combustible ou réflecteur", - ang="Type of the core element (fuel assembly or reflector", - statut="o", - typ="TXM", - into=("UOX", "MOX", "REF")), - description=BLOC( - condition="assembly_type != 'REF'", - fr="Description d'un assemblage combustible", - ang="Fuel assembly description", - assembly_width=SIMP( - fr="Pas inter-assemblage dans le cœur", - ang="Fuel assembly pitch in the core", - unite="m", - statut="o", - typ="R"), - fuel_density=SIMP( - fr=("Ratio entre masse volumique nominale et la masse volumique " - "théorique des pastilles combustible"), - ang=("Ratio between the nominal density and the theoretical " - "density of the fuel pellets"), - unite="g/cm3", - statut="o", - typ="R", - defaut=0.95), - radial_description=FACT( - fr="Description radiale de l'assemblage combustible", - ang="Fuel assembly radial description", - statut="o", - clad_outer_radius=SIMP( - fr="Rayon externe de la gaine des crayons combustible", - ang="Clad external radius of the fuel pins", - unite="m", - statut="o", - typ="R"), - guide_tube_outer_radius=SIMP( - fr="Rayon externe des tubes guides", - ang="Clad external radius of the guide tubes", - unite="m", - statut="o", - typ="R"), - fuel_rod_pitch=SIMP( - fr="Pas inter-crayon dans l'assemblage", - ang="Fuel pin pitch in the assembly", - unite="m", - statut="o", - typ="R"), - nfuel_rods=SIMP( - fr="Nombre de crayons combustibles dans l'assemblage", - ang="Number of fuel pins in the assembly", - statut="o", - typ="I")), - axial_description=FACT( - fr="Description axiale de l'assemblage combustible", - ang="Fuel assembly axial description", - statut="o", - active_length_start=SIMP( - fr="Altitude basse de la partie active", - ang="Lower altitude of the active part", - unite="m", - statut="o", - typ="R"), - active_length_end=SIMP( - fr="Altitude haute de la partie active", - ang="Upper altitude of the active part", - unite="m", - statut="o", - typ="R")), - grids=FACT( - fr="Description des grilles", - ang="Grids description", - statut="o", - mixing=FACT( - fr="Description des grilles de mélange", - ang="Mixing grids description", - statut="o", - positions=SIMP( - fr="Altitude basse de la grille", - ang="Grid lower altitude", - unite="m", - statut="f", - typ="R", - max="**"), - size=SIMP( - fr="Hauteur de la grille", - ang="Grid height", - unite="m", - statut="o", - typ="R")), - non_mixing=FACT( - fr="Description des grilles de maintien", - ang="Holding grids description", - statut="o", - positions=SIMP( - fr="Altitude basse de la grille", - ang="Grid lower altitude", - unite="m", - statut="f", - typ="R", - max="**"), - size=SIMP( - fr="Hauteur de la grille", - ang="Grid height", - unite="m", - statut="o", - typ="R"))))) - - -# TODO: Define the names of the possible compositions (Black, Grey, B4C, Hafnium and Pyrex) -RodBank = OPER( - nom="RodBank", - sd_prod=_RodBank, - fr="Description d'un groupe de grappes absorbantes", - ang="Rod bank description", - rod_type=SIMP( - fr="Type de grappes absorbantes", - ang="Type of rod clusters", - statut="o", - typ="TXM", - into=("homogeneous", "heterogeneous")), - description_HOM=BLOC( - condition="rod_type == 'homogeneous'", - fr="Description d'un groupe de grappes absorbantes homogènes axialement", - ang="Axially homogeneous rod bank description", - rod_composition=SIMP( - fr=("Type de matériau absorbant des grappes absorbantes (Types " - "autorisés : {})").format( - ", ".join(ROD_COMPOSITIONS)), - ang=("Absorbing material type of the rod clusters (Authorized " - "types: {})").format( - ", ".join(ROD_COMPOSITIONS)), - statut="o", - typ="TXM", - into=ROD_COMPOSITIONS)), - description_HET=BLOC( - condition="rod_type == 'heterogeneous'", - fr="Description d'un groupe de grappes absorbantes hétérogène axialement", - ang="Axially heterogeneous rod bank description", - bottom_composition=SIMP( - fr=("Type de matériau absorbant dans la partie basse des grappes " - "absorantes (Types autorisés : {})").format( - ", ".join(ROD_COMPOSITIONS)), - ang=("Absorbing material type in the lower part of the rod " - "clusters (Authorized types: {})").format( - ", ".join(ROD_COMPOSITIONS)), - statut="o", - typ="TXM", - into=ROD_COMPOSITIONS), - splitting_heigh=SIMP( - fr=("Altitude de séparation entre la partie haute et la partie " - "basse des grappes absorbantes"), - ang=("Splitting height between the upper part and the lower part " - "of the rod clusters"), - unite="m", - statut="o", - typ="R"), - upper_composition=SIMP( - fr=("Type de matériau absorbant dans la partie haute des grappes " - "absorantes (Types autorisés : {})").format( - ", ".join(ROD_COMPOSITIONS)), - ang=("Absorbing material type in the upper part of the rod " - "clusters (Authorized types: {})").format( - ", ".join(ROD_COMPOSITIONS)), - statut="o", - typ="TXM", - into=ROD_COMPOSITIONS)), - step_height=SIMP( - fr="Hauteur d'un pas", - ang="Step height", - unite="m", - statut="o", - typ="R"), - nsteps=SIMP( - fr="Nombre de pas du groupe de grappes", - ang="Rod bank steps number", - statut="o", - typ="I")) - - -def gen_assembly_maps(): - """Generate all the possible maps (one for each possible core size) for the - data cointained in ``Techno_data.radial_description.assembly_map``.""" - # Build the default axes names - xsym_list = list("ABCDEFGHJKLNPRSTUVWXYZ") - xsym_list.reverse() - ysym_list = ["%02d" % i for i in range(NMIN_CORE_FUEL_ELTS, NMAX_CORE_FUEL_ELTS + 1)] - ysym_list.reverse() - def_xaxis = {} - def_yaxis = {} - for i in range(NMIN_CORE_FUEL_ELTS, NMAX_CORE_FUEL_ELTS + 1): - def_xaxis[i] = ["RW"] + xsym_list[-i:] + ["RE"] - def_yaxis[i] = ["RS"] + ysym_list[-i:] + ["RN"] - - dico = {} - for i in range(NMIN_CORE_FUEL_ELTS, NMAX_CORE_FUEL_ELTS): - dico["assembly_map_%d" % i] = BLOC( - condition="nb_assembly == %d" % i, - fr="Description radiale du cœur", - ang="Core radial description", - xaxis=SIMP( - fr="Nom des repères radiaux du cœur suivant l'axe ouest-est", - ang="Name of core radial marks following the west-east axis", - statut="o", - typ="TXM", - min=i + 2, - max=i + 2, - defaut=def_xaxis[i]), - yaxis=SIMP( - fr="Nom des repères radiaux du cœur suivant l'axe nord-sud", - ang="Name of core radial marks following the north-south axis", - statut="o", - typ="TXM", - min=i + 2, - max=i + 2, - defaut=def_yaxis[i]), - assembly_map=SIMP( - fr=("Répartition radiale des assemblages combustibles et des " - "réflecteurs dans le cœur"), - ang=("Radial repartition of the fuel assemblies and the " - "reflectors in the core"), - statut="o", - typ=Matrice( - nbLigs=i + 2, - nbCols=i + 2, - typElt=_Assembly, - listeHeaders=( - ("RW","S","R","P","N","L","K","J","H","G","F","E","D","C","B","A","RE",), - ("RS","15","14","13","12","11","10","09","08","07","06","05","04","03","02","01","RN",)), # pylint: disable=line-too-long - defaut=(i + 2) * [(i + 2) * ["."]], - coloree=True)), - rotation_map=SIMP( - fr="Rotation des éléments du cœur. Valeur possibles : {}".format( - ", ".join([repr(elt) for elt in ASSEMBLY_ROTATIONS])), - ang="Core elements rotation. Possible values : {}".format( - ", ".join([repr(elt) for elt in ASSEMBLY_ROTATIONS])), - statut="o", - typ=Matrice( - nbLigs=i + 2, - nbCols=i + 2, - typElt="TXM", - typEltInto=ASSEMBLY_ROTATIONS, - coloree=True), - defaut=(i + 2) * [(i + 2) * ["."]]), - rod_map=SIMP( - fr="Répartition radiale des groupes de grappes dans le cœur", - ang="Rod banks radial repartition in the core", - statut="o", - typ=Matrice( - nbLigs=i + 2, - nbCols=i + 2, - valSup=1, - valMin=-1, - typElt="TXM", - listeHeaders=None, - coloree=True), - defaut=(i + 2) * [(i + 2) * ["."]]), - BU_map=SIMP( - fr="Taux de combustion moyen des assemblages combustibles en GW.j/t", - ang="Average burnup of the fuel assemblies in GW.d/t", - statut="o", - typ=Matrice( - nbLigs=i + 2, - nbCols=i + 2, - valSup=90000., - valMin=0., - typElt="R", - listeHeaders=None, - coloree=True), - defaut=(i + 2) * [(i + 2) * ["."]])) - return dico - - -Techno_data = OPER( - nom="Techno_data", - sd_prod=_TechnoData, - fr="Description technologique du cœur", - ang="Core technological description", - assembly_list=SIMP( - fr="Sélection des assemblages combustible", - ang="Fuel assemblies selection", - statut="o", - typ=_Assembly, - min=1, - max="**"), - rodbank_list=SIMP( - fr="Sélection des groupes de grappes", - ang="Rod banks selection", - statut="o", - typ=_RodBank, - min=0, - max="**"), - radial_description=FACT( - fr="Description radiale du cœur", - ang="Radial description of the core", - statut="o", - nb_assembly=SIMP( - fr="Nombre d'éléments combustible sur la tranche du cœur", - ang="Number of fuel elements on one side of the core", - statut="o", - typ="I", - into=list(range(NMIN_CORE_FUEL_ELTS, NMAX_CORE_FUEL_ELTS))), - **(gen_assembly_maps())), - axial_description=FACT( - fr="Description axiale du cœur", - ang="Axial description of the core", - statut="o", - lower_refl_size=SIMP( - fr="Hauteur du réflecteur axial bas", - ang="Height of bottom axial reflector", - unite="m", - statut="o", - typ="R"), - upper_refl_size=SIMP( - fr="Hauteur du réflecteur axial haut", - ang="Height of top axial reflector", - unite="m", - statut="o", - typ="R")), - nominal_power=SIMP( - fr="Puissance thermique nominale du cœur", - ang="Nominal thermal power of the core", - unite="W", - statut="o", - typ="R"), - Fuel_power_fraction=SIMP( - fr="Fraction de la puissance dissipée dans le combustible", - ang="Power fraction dissipated in the fuel", - statut="o", - typ="R", - defaut=0.974), - by_pass=SIMP( - fr="Fraction du débit de bypass cœur", - ang="Bypass core flow fraction", - statut="o", - typ="R", - defaut=0.07), - core_volumic_flowrate=SIMP( - fr="Débit volumique cœur", - ang="Core volume flowrate", - unite="m3/h", - statut="o", - typ="R")) - - -class _AssemblyDKLibFile(ASSD): - """Manage informations about a fuel assembly DKLib file.""" - - -class _ReflectorDKLibFile(ASSD): - """Manage informations about a reflector DKLib file.""" - - -AssemblyDKLibFile = OPER( - nom="AssemblyDKLibFile", - sd_prod=_AssemblyDKLibFile, - fr="Description d'un fichier DKLib assemblage combustible", - ang="Description of a fuel assembly DKLib file", - filename=SIMP( - fr="Nom du fichier DKLib", - ang="DKLib filename", - statut="o", - typ=("Fichier", "DKLib Files (.dklib);;DKZip Files (.dkzip);;All Files ()", "Sauvegarde")), - pattern=SIMP( - fr="Nom du pattern à utiliser dans le fichier DKLib", - ang="Name of the pattern to use in the DKLib file", - statut="o", - typ="TXM"), - rod_bank_names=SIMP( - fr=("Nom de la configuration de grappe dans la DKLib pour chaque type " - "de matériaux absorbants disponibles dans le modèle sous la forme " - "({{{}}}, nom dans la DKLib)").format(", ".join(ROD_COMPOSITIONS)), - ang=("Name of the rod cluster configuration in the DKLib file for any " - "type of absorbing materials available in the model under the form " - "({{{}}}, name in the DKLib)").format(", ".join(ROD_COMPOSITIONS)), - statut="o", - typ=Tuple(2), - # TODO: Check if the first string is ROD_COMPOSITIONS - validators=VerifTypeTuple(("TXM", "TXM")), - max="**")) - - -ReflectorDKLibFile = OPER( - nom="ReflectorDKLibFile", - sd_prod=_ReflectorDKLibFile, - fr="Description d'un fichier DKLib réflecteur", - ang="Description of a reflector DKLib file", - filename=SIMP( - fr="Nom du fichier DKLib", - ang="DKLib filename", - statut="o", - typ=("Fichier", "DKLib Files (.dklib);;DKZip Files (.dkzip);;All Files ()","Sauvegarde")), - radial_pattern=SIMP( - fr="Nom du pattern contenant les données du réflecteur radial", - ang="Name of the pattern containing the radial reflector data", - statut="o", - typ="TXM"), - lower_pattern=SIMP( - fr="Nom du pattern contenant les données du réflecteur axial bas", - ang="Name of the pattern containing the lower reflector data", - statut="o", - typ="TXM"), - upper_pattern=SIMP( - fr="Nom du pattern contenant les données du réflecteur axial haut", - ang="Name of the pattern containing the upper reflector data", - statut="o", - typ="TXM")) - - -# TODO: Split this class in two: neutronic and thermalhydraulic) -# TODO: Or split this class in N classes (one for each code) -Model_data = OPER( - nom="Model_data", - sd_prod=_ModelData, - fr="Description de la modélisation physique", - ang="Physical modeling description", - physics=SIMP( - fr="Sélection de la physique du modèle", - ang="Physic model selection", - statut="o", - typ="TXM", - into=("Neutronics", "Thermalhydraulics")), - scale=SIMP( - fr="Sélection de l'échelle du modèle", - ang="Scale model selection", - statut="o", - typ="TXM", - into=("system", "component", "local")), - b_neutro_compo=BLOC( - condition="physics == 'Neutronics' and scale == 'component'", - fr="Description de la modélisation neutronique à l'échelle du composant", - ang="Neutronic modeling description at the component scale", - code=SIMP( - fr="Sélection du code de neutronique cœur", - ang="Core neutronic code selection", - statut="o", - typ="TXM", - into=("COCAGNE", "APOLLO3")), - cocagne_bloc=BLOC( - condition="code == 'COCAGNE'", - cocagne_options=FACT( - fr="Options de modélisations spécifiques au code COCAGNE.", - ang="COCAGNE specific modeling options", - statut="o", - n_threads=SIMP( - fr="Nombre de threads alloués aux solveurs", - ang="Number of threads allocated to the solvers", - statut="f", - typ="I", - val_min=1), - core_elements_vs_dklib=SIMP( - fr=("Association des éléments du cœur aux bibliothèques neutroniques " - "sous la forme (assemblage combustible, DKLib)"), - ang=("Association between the core elements and the neutronic libraries " - "in the form (fuel assembly, DKLib)"), - statut="o", - typ=Tuple(2), - # TODO: Check if the attribute assembly_type of the - # Assembly object is 'REF' then the type of the - # DKLibFile must be ReflectorDKLibFile and, if not, - # the type of the DKLibFile must be AssemblyDKLibFile - validators=VerifTypeTuple((_Assembly, (_AssemblyDKLibFile, _ReflectorDKLibFile))), - max="**"))), - # TODO: Implement the *4x4* mesh - radial_meshing=FACT( - fr="Maillage radial du cœur", - ang="Core radial meshing", - statut="o", - flux_solver=SIMP( - fr="Type de maillage radial du solveur de flux", - ang="Radial mesh type for the flux solver", - statut="o", - typ="TXM", - into=("subdivision", "pin-by-pin")), - b_flux_subdivision=BLOC( - condition="flux_solver == 'subdivision'", - fr=("Paramètres pour les maillages radiaux de type subdivisé " - "pour le solveur de flux"), - ang=("Parameters for the subdivided radial meshes types for the " - "flux solver"), - flux_subdivision=SIMP( - fr=("Nombre de sous-divisions à appliquer à chaque maille " - "radiale pour le solveur de flux"), - ang=("Subdivision number to apply to all radial meshes for " - "the flux solver"), - statut="o", - typ="I")), - feedback_solver=SIMP( - fr="Type de maillage radial du solveur de contre-réaction", - ang="Radial mesh type for the feedback solver", - statut="o", - typ="TXM", - into=("subdivision", "pin-by-pin")), - b_feedback_subdivision=BLOC( - condition="feedback_solver == 'subdivision'", - fr=("Paramètres pour les maillages radiaux de type subdivisé " - "pour le solveur de contre-réaction"), - ang=("Parameters for the subdivided radial meshes types for the " - "feedback solver"), - feedback_subdivision=SIMP( - fr=("Nombre de sous-divisions à appliquer à chaque maille " - "radiale pour le solveur de contre-réaction"), - ang=("Subdivision number to apply to all radial meshes for " - "the feedback solver"), - statut="o", - typ="I")))), - b_thermo_compo=BLOC( - condition="physics == 'Thermalhydraulics' and scale == 'component'", - fr="Description de la modélisation thermohydraulique à l'échelle du composant", - ang="Thermalhydraulic modeling description at the component scale", - code=SIMP( - fr="Sélection du code de thermohydraulique cœur", - ang="Core thermalhydraulic code selection", - statut="o", - typ="TXM", - into=("THYC", "CATHARE3", "FLICA4")), - thyc_bloc=BLOC( - condition="code == 'THYC'", - thyc_options=FACT( - fr="Options de modélisations spécifiques au code THYC.", - ang="THYC specific modeling options", - statut="o", - n_threads=SIMP( - fr="Nombre de threads alloués aux solveurs", - ang="Number of threads allocated to the solvers", - statut="f", - typ="I", - val_min=1))), - radial_meshing=FACT( - fr="Description du maillage radial thermohydraulique à l'échelle du composant", - ang="Thermalhydraulic radial meshing description at the component scale", - statut="o", - fluid=SIMP( - fr="Méthode de maillage radial", - ang="Radial meshing method", - statut="o", - typ="TXM", - into=("subdivision", "subchannel")), - b_fluid_subdivision=BLOC( - condition="fluid == 'subdivision'", - fr="Données spécifiques au maillage radial par subdivision", - ang="Specific data for the radial meshing by subdivision", - fluid_subdivision=SIMP( - fr="Nombre de mailles radiales dans les assemblages combustibles", - ang="Radial mesh number in the fuel assemblies", - statut="o", - typ="I")), - pellet=SIMP( - fr="Nombre de mailles radiales dans la pastille combustible", - ang="Radial mesh number in the fuel pellet", - statut="o", - typ="I"), - clad=SIMP( - fr="Nombre de mailles radiales dans la gaine des crayons combustibles", - ang="Radial mesh number in the clad of the fuel pins", - statut="o", - typ="I"))), - b_scale_compo=BLOC( - condition="scale == 'component'", - fr="Description de la modélisation à l'échelle du composant", - ang="Modeling description at the component scale", - axial_meshing=FACT( - fr="Maillage axial du cœur", - ang="Core axial meshing", - statut="o", - lower_refl=SIMP( - fr="Nombre de mailles axiales dans le réflecteur bas", - ang="Axial mesh number in the lower reflector", - statut="o", - typ="I"), - fuel=SIMP( - fr="Nombre de mailles axiales dans la partie active de l'assemblage combustible", - ang="Axial mesh number in the active part of the fuel assembly", - statut="o", - typ="I"), - upper_refl=SIMP( - fr="Nombre de mailles axiales dans le réflecteur haut", - ang="Axial mesh number in the upper reflector", - statut="o", - typ="I"))), - b_scale_local=BLOC( - condition="scale == 'local'", - fr="Description de la modélisation à l'échelle du locale", - ang="Modeling description at the local scale", - mesh_file=SIMP( - fr="Nom du fichier décrivant le maillage", - ang="Name of the file describing the mesh", - statut="o", - typ="Fichier"))) - - -Scenario_data = OPER( - nom="Scenario_data", - sd_prod=_ScenarioData, - fr="Description du transitoire", - ang="Transient description", - initial_power=SIMP( - fr="Puissance thermique initiale du cœur", - ang="Initial thermal power of the core", - statut="o", - typ="R", - val_min=0., - defaut=100.), - initial_power_unit=SIMP( - fr="Unité de la puissance thermique initiale du cœur", - ang="Unit of the initial thermal power of the core", - statut="o", - typ="TXM", - into=("% Nominal power", "W"), - defaut="% Nominal power"), - initial_core_inlet_temperature=SIMP( - fr="Température initiale de l'eau à l'entrée du cœur", - ang="Initial water temperature at the inlet of the core", - unite="°C", - statut="o", - typ="R", - val_min=0., - defaut=280.), - initial_boron_concentration=SIMP( - fr="Concentration en bore initiale", - ang="Initial boron concentration", - unite="ppm", - statut="o", - typ="R", - val_min=0., - defaut=1300.), - initial_inlet_pressure=SIMP( - fr="Pression initiale de l'eau à l'entrée du cœur", - ang="Initial water pressure at the inlet of the core", - unite="bar", - statut="o", - typ="R", - val_min=0., - defaut=160.2), - initial_outlet_pressure=SIMP( - fr="Pression initiale de l'eau à la sortie du cœur", - ang="Initial water pressure at the outlet of the core", - unite="bar", - statut="o", - typ="R", - val_min=0., - defaut=157.2), - initial_rod_positions=SIMP( - fr=("Position initiale des groupes de grappes et des grappes dans le " - "cœur sous la forme (type@nom, position) " - "(ex. (Rodbank@RB, 62) pour le groupe de grappe RB positionné à 62 " - "pas extraits et (Rodcluster@H08, 0) pour la grappe H08 " - "complètement insérée)"), - ang=("Initial position of the rod banks and the rod clusters in the " - "core in the form (type@name, position) " - "(e.g. (Rodbank@RB, 62) for the RB rod bank placed at 62 " - "extracted steps and (Rodcluster@H08, 0) for the rod cluster H08 " - "completely inserted)"), - unite="extracted steps", - statut="o", - typ=Tuple(2), # TODO: Use a triplet (type, name, position) instead of a doublet - validators=VerifTypeTuple(("TXM", "I")), - max="**"), - scenario_type=SIMP( - fr="Type de transitoire à modéliser", - ang="Type of transient to model", - statut="o", - typ="TXM", - into=("RIA", )), - b_ria=BLOC( - condition="scenario_type == 'RIA'", - fr="Données du transitoire 'accident de réactivité'", - ang="Data of the 'Reactivity-initiated Accident' transient", - ejected_rod=SIMP( - fr="Nom de la grappe éjectée", - ang="Name of the ejected rod cluster", - statut="o", - typ="TXM"), - rod_position_program=SIMP( - fr="Loi d'éjection à appliquer à la grappe sous la forme (temps, position)", - ang="Ejection law to apply to the ejected rod cluster in the form (time, position)", - unite="s, extracted steps", - statut="o", - typ=Tuple(2), - validators=VerifTypeTuple(("R", "I")), - max="**"), - SCRAM=SIMP( - fr="Activation/désactivation de l'arrêt automatique du réacteur", - ang="Activation/deactivation of automatic reactor shutdown", - statut="o", - typ="TXM", - into=("YES", "NO")), - SCRAM_option=BLOC( - condition="SCRAM == 'YES'", - fr="Options relatives à l'arrêt automatique du réacteur", - ang="Options relative to the automatic reactor shutdown", - SCRAM_power=SIMP( - fr=("Puissance thermique du cœur déclenchant un arrêt " - "automatique du réacteur"), - ang="Core thermal power triggering an automatic reactor shutdown", - unite="MW", - statut="o", - typ="R"), - complete_SCRAM_time=SIMP( - fr="Temps de chute des grappes", - ang="Rod cluster fall time", - unite="s", - statut="o", - typ="R"))), - post_processing=SIMP( - # TODO: Give all the possible parameters depending of the physics - fr=("Données de sortie du calcul sous la forme (paramètre@physique, format). " - "'physique' peut valoir {physics!r} et 'format' peut valoir {formats!r}".format( - physics=VerifPostTreatment.PHYSICS, - formats=VerifPostTreatment.FORMATS)), - ang=("Output computed data in function of time in the form (parameter@physic, format). " - "'physic' can be {physics!r} and 'format' can be {formats!r})".format( - physics=VerifPostTreatment.PHYSICS, - formats=VerifPostTreatment.FORMATS)), - statut="f", - typ=Tuple(2), # TODO: Use a triplet (parameter, physic, format) instead of a doublet - validators=VerifPostTreatment(), - max="**")) diff --git a/ReacteurNumerique/cata_RN_EDG_yp.py b/ReacteurNumerique/cata_RN_EDG_yp.py new file mode 120000 index 00000000..6ff8a8df --- /dev/null +++ b/ReacteurNumerique/cata_RN_EDG_yp.py @@ -0,0 +1 @@ +cata_RN_EDG_yp_v1.py \ No newline at end of file diff --git a/ReacteurNumerique/cata_RN_EDG_yp_test_driver_1.comm b/ReacteurNumerique/cata_RN_EDG_yp_test_driver_1.comm index aa00599f..cf864b5d 100644 --- a/ReacteurNumerique/cata_RN_EDG_yp_test_driver_1.comm +++ b/ReacteurNumerique/cata_RN_EDG_yp_test_driver_1.comm @@ -3,6 +3,7 @@ thermo_model=Model_data(physics='Thermalhydraulics', scale='component', code='THYC', thyc_options=_F(n_threads=23,), + nprocs=2, radial_meshing=_F(fluid='subdivision', fluid_subdivision=1, pellet=8, @@ -11,4 +12,4 @@ thermo_model=Model_data(physics='Thermalhydraulics', fuel=40, upper_refl=1,),); #VERSION_CATALOGUE:V_0:FIN VERSION_CATALOGUE -#CHECKSUM:ea75a6791472ab21137d2c91d59f3362:FIN CHECKSUM \ No newline at end of file +#CHECKSUM:63c60c86f79fba9512ae3bc2f18c7249:FIN CHECKSUM \ No newline at end of file diff --git a/ReacteurNumerique/cata_RN_EDG_yp_test_driver_2.comm b/ReacteurNumerique/cata_RN_EDG_yp_test_driver_2.comm index 3fbfefc0..fc0c4567 100644 --- a/ReacteurNumerique/cata_RN_EDG_yp_test_driver_2.comm +++ b/ReacteurNumerique/cata_RN_EDG_yp_test_driver_2.comm @@ -8,188 +8,85 @@ U1=Assembly(assembly_type='UOX', guide_tube_outer_radius=0.006025, fuel_rod_pitch=0.0126, nfuel_rods=264,), - axial_description=_F(active_length_start=0.21, - active_length_end=4.4772,), - grids=_F(mixing=_F(positions=(0.69216,1.19766,1.70316,2.20866,2.71416,3.20416,3.69416,4.18416,), + axial_description=_F(active_length_start=0.2, + active_length_end=1.5,), + grids=_F(mixing=_F(positions=(1.0807,), size=0.033,), - non_mixing=_F(positions=(0.026,4.2412,), + non_mixing=_F(positions=(0.026,), size=0.033,),),); -UGD=Assembly(assembly_type='UOX', - assembly_width=0.21504, - fuel_density=0.95, - radial_description=_F(clad_outer_radius=0.00475, - guide_tube_outer_radius=0.006025, - fuel_rod_pitch=0.0126, - nfuel_rods=264,), - axial_description=_F(active_length_start=0.21, - active_length_end=4.4772,), - grids=_F(mixing=_F(positions=(0.69216,1.19766,1.70316,2.20866,2.71416,3.20416,3.69416,4.18416,), - size=0.033,), - non_mixing=_F(positions=(0.026,), - size=0.033,),),); +RB=RodBank(rod_type='homogeneous', + rod_composition='Black', + step_height=0.008, + nsteps=162,); -RB=RodBank(rod_type='heterogeneous', - bottom_composition='Black', - splitting_heigh=1.4224, - upper_composition='B4C', - step_height=0.016, - nsteps=260,); - -N1=RodBank(rod_type='heterogeneous', - bottom_composition='Black', - splitting_heigh=1.4224, - upper_composition='B4C', - step_height=0.016, - nsteps=260,); - -N2=RodBank(rod_type='heterogeneous', - bottom_composition='Black', - splitting_heigh=1.4224, - upper_composition='B4C', - step_height=0.016, - nsteps=260,); - -G1=RodBank(rod_type='homogeneous', - rod_composition='Grey', - step_height=0.016, - nsteps=260,); - -G2=RodBank(rod_type='homogeneous', - rod_composition='Grey', - step_height=0.016, - nsteps=260,); - -techno_data=Techno_data(assembly_list=(REF,U1,UGD,), - rodbank_list=(RB,G1,G2,N1,N2,), - radial_description=_F(nb_assembly=15, - xaxis=('RW','S','R','P','N','L','K','J','H','G','F','E','D','C','B','A','RE',), - yaxis= - ('RS','15','14','13','12','11', - '10','09','08','07','06','05','04','03','02','01','RN',), +techno_data=Techno_data(technology='Other', + assembly_list=(REF,U1,), + rodbank_list=(RB,), + radial_description=_F(nb_assembly=6, + xaxis=('RW','F','E','D','C','B','A','RE',), + yaxis=('RS','06','05','04','03','02','01','RN',), assembly_map= ([REF,REF,REF,REF,REF,REF, - REF,REF,REF,REF,REF,REF,REF,REF,REF,REF,REF,],[REF,REF, - REF,REF,REF,U1,U1,U1,U1,U1,U1,U1,REF,REF,REF,REF,REF,], - [REF,REF,REF,UGD,U1,UGD,UGD,U1,U1,U1,UGD,UGD,U1,UGD,REF, - REF,REF,],[REF,REF,UGD,U1,U1,U1,U1,UGD,U1,UGD,U1,U1,U1,U1, - UGD,REF,REF,],[REF,REF,U1,U1,U1,UGD,U1,UGD,U1,UGD,U1,UGD, - U1,U1,U1,REF,REF,],[REF,U1,UGD,U1,UGD,U1,U1,UGD,U1,UGD,U1, - U1,UGD,U1,UGD,U1,REF,],[REF,U1,UGD,U1,U1,U1,UGD,UGD,U1, - UGD,UGD,U1,U1,U1,UGD,U1,REF,],[REF,U1,U1,UGD,UGD,UGD,UGD, - U1,UGD,U1,UGD,UGD,UGD,UGD,U1,U1,REF,],[REF,U1,U1,U1,U1,U1, - U1,UGD,UGD,UGD,U1,U1,U1,U1,U1,U1,REF,],[REF,U1,U1,UGD,UGD, - UGD,UGD,U1,UGD,U1,UGD,UGD,UGD,UGD,U1,U1,REF,],[REF,U1,UGD, - U1,U1,U1,UGD,UGD,U1,UGD,UGD,U1,U1,U1,UGD,U1,REF,],[REF,U1, - UGD,U1,UGD,U1,U1,UGD,U1,UGD,U1,U1,UGD,U1,UGD,U1,REF,], - [REF,REF,U1,U1,U1,UGD,U1,UGD,U1,UGD,U1,UGD,U1,U1,U1,REF, - REF,],[REF,REF,UGD,U1,U1,U1,U1,UGD,U1,UGD,U1,U1,U1,U1,UGD, - REF,REF,],[REF,REF,REF,UGD,U1,UGD,UGD,U1,U1,U1,UGD,UGD,U1, - UGD,REF,REF,REF,],[REF,REF,REF,REF,REF,U1,U1,U1,U1,U1,U1, - U1,REF,REF,REF,REF,REF,],[REF,REF,REF,REF,REF,REF,REF,REF, - REF,REF,REF,REF,REF,REF,REF,REF,REF,],), + REF,REF,],[REF,REF,U1,U1,U1,U1,REF,REF,],[REF,U1,U1,U1,U1, + U1,U1,REF,],[REF,U1,U1,U1,U1,U1,U1,REF,],[REF,U1,U1,U1,U1, + U1,U1,REF,],[REF,U1,U1,U1,U1,U1,U1,REF,],[REF,REF,U1,U1, + U1,U1,REF,REF,],[REF,REF,REF,REF,REF,REF,REF,REF,],), rotation_map= - (['.','.','.','.','.','.', - '.','.','.','.','.','.','.','.','.','.','.'],['.','.','.', - '.','.','.','.','.','.','.','.','.','.','.','.','.','.'], - ['.','.','.','.','.','.','.','.','.','.','.','.','.','.', - '.','.','.'],['.','.','.','.','.','.','.','.','.','.','.', - '.','.','.','.','.','.'],['.','.','.','.','.','.','.','.', - '.','.','.','.','.','.','.','.','.'],['.','.','.','.','.', - '.','.','.','.','.','.','.','.','.','.','.','.'],['.','.', - '.','.','.','.','.','.','.','.','.','.','.','.','.','.', - '.'],['.','.','.','.','.','.','.','.','.','.','.','.','.', - '.','.','.','.'],['.','.','.','.','.','.','.','.','.','.', - '.','.','.','.','.','.','.'],['.','.','.','.','.','.','.', - '.','.','.','.','.','.','.','.','.','.'],['.','.','.','.', - '.','.','.','.','.','.','.','.','.','.','.','.','.'],['.', - '.','.','.','.','.','.','.','.','.','.','.','.','.','.', - '.','.'],['.','.','.','.','.','.','.','.','.','.','.','.', - '.','.','.','.','.'],['.','.','.','.','.','.','.','.','.', - '.','.','.','.','.','.','.','.'],['.','.','.','.','.','.', - '.','.','.','.','.','.','.','.','.','.','.'],['.','.','.', - '.','.','.','.','.','.','.','.','.','.','.','.','.','.'], - ['.','.','.','.','.','.','.','.','.','.','.','.','.','.', - '.','.','.'],), + (['R1','R1','R1','R1', + 'R1','R1','R1','R1'],['R1','R1','.','.','.','.','R1', + 'R1'],['R1','.','.','.','.','.','.','R1'],['R1','.','.', + '.','.','.','.','R1'],['R1','.','.','.','.','.','.','R1'], + ['R1','.','.','.','.','.','.','R1'],['R1','R1','.','.', + '.','.','R1','R1'],['R1','R1','R1','R1','R1','R1','R1', + 'R1'],), rod_map= (['#','#','#','#','#','#','#', - '#','#','#','#','#','#','#','#','#','#'],['#','#','#','#','#','.', - '.','.','.','.','.','.','#','#','#','#','#'],['#','#','#','.','.', - '.','.','.','RB','.','.','.','.','.','#','#','#'],['#','#','.','.', - '.','G2','.','N2','.','N2','.','G2','.','.','.','#','#'],['#','#', - '.','.','N1','.','.','.','G1','.','.','.','N1','.','.','#','#'], - ['#','.','.','G2','.','RB','.','.','.','.','.','RB','.','G2','.', - '.','#'],['#','.','.','.','.','.','.','.','N1','.','.','.','.','.', - '.','.','#'],['#','.','.','N2','.','.','.','.','.','.','.','.','.', - 'N2','.','.','#'],['#','.','RB','.','G1','.','N1','.','RB','.','N1', - '.','G1','.','RB','.','#'],['#','.','.','N2','.','.','.','.','.', - '.','.','.','.','N2','.','.','#'],['#','.','.','.','.','.','.','.', - 'N1','.','.','.','.','.','.','.','#'],['#','.','.','G2','.','RB', - '.','.','.','.','.','RB','.','G2','.','.','#'],['#','#','.','.', - 'N1','.','.','.','G1','.','.','.','N1','.','.','#','#'],['#','#', - '.','.','.','G2','.','N2','.','N2','.','G2','.','.','.','#','#'], - ['#','#','#','.','.','.','.','.','RB','.','.','.','.','.','#','#', - '#'],['#','#','#','#','#','.','.','.','.','.','.','.','#','#','#', - '#','#'],['#','#','#','#','#','#','#','#','#','#','#','#','#','#', - '#','#','#'],), + '#'],['#','#','.','.','.','.','#','#'],['#','.','.','.','RB','.', + '.','#'],['#','.','RB','.','.','.','.','#'],['#','.','.','.','.', + 'RB','.','#'],['#','.','.','RB','.','.','.','#'],['#','#','.','.', + '.','.','#','#'],['#','#','#','#','#','#','#','#'],), BU_map= ([0.0,0.0,0.0,0.0,0.0,0.0,0.0, - 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0, - 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,40.0,0.0,0.0, - 40.0,40.0,20.0,40.0,40.0,0.0,0.0,40.0,0.0,0.0,0.0],[0.0,0.0,40.0,0.0, - 40.0,20.0,40.0,0.0,40.0,0.0,40.0,20.0,40.0,0.0,40.0,0.0,0.0],[0.0,0.0, - 0.0,40.0,20.0,20.0,20.0,40.0,20.0,40.0,20.0,20.0,20.0,40.0,0.0,0.0, - 0.0],[0.0,0.0,0.0,20.0,20.0,20.0,40.0,0.0,40.0,0.0,40.0,20.0,20.0, - 20.0,0.0,0.0,0.0],[0.0,0.0,40.0,40.0,20.0,40.0,20.0,40.0,20.0,40.0, - 20.0,40.0,20.0,40.0,40.0,0.0,0.0],[0.0,0.0,40.0,0.0,40.0,0.0,40.0, - 20.0,20.0,20.0,40.0,0.0,40.0,0.0,40.0,0.0,0.0],[0.0,0.0,20.0,40.0, - 20.0,40.0,20.0,20.0,60.0,20.0,20.0,40.0,20.0,40.0,20.0,0.0,0.0],[0.0, - 0.0,40.0,0.0,40.0,0.0,40.0,20.0,20.0,20.0,40.0,0.0,40.0,0.0,40.0,0.0, - 0.0],[0.0,0.0,40.0,40.0,20.0,40.0,20.0,40.0,20.0,40.0,20.0,40.0,20.0, - 40.0,40.0,0.0,0.0],[0.0,0.0,0.0,20.0,20.0,20.0,40.0,0.0,40.0,0.0,40.0, - 20.0,20.0,20.0,0.0,0.0,0.0],[0.0,0.0,0.0,40.0,20.0,20.0,20.0,40.0, - 20.0,40.0,20.0,20.0,20.0,40.0,0.0,0.0,0.0],[0.0,0.0,40.0,0.0,40.0, - 20.0,40.0,0.0,40.0,0.0,40.0,20.0,40.0,0.0,40.0,0.0,0.0],[0.0,0.0,0.0, - 40.0,0.0,0.0,40.0,40.0,20.0,40.0,40.0,0.0,0.0,40.0,0.0,0.0,0.0],[0.0, - 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0, - 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],),), - axial_description=_F(lower_refl_size=0.21, - upper_refl_size=0.21,), - nominal_power=4000000000.0, + 0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0, + 0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],),), + axial_description=_F(lower_refl_size=0.2, + upper_refl_size=0.2,), + nominal_power=100000000.0, Fuel_power_fraction=0.974, - by_pass=0.07, - core_volumic_flowrate=90940.0,); + by_pass=0.0, + core_volumic_flowrate=13737.2,); AF3R_400=AssemblyDKLibFile(filename='cocagne_data/dklib/AF3R_400.dklib', pattern='PALU_AF3R_17_4.00_0P_0P_100_100__535_306.5_0.7127__500____________________________P13', rod_bank_names=(('Black','black_rods'),('Grey','grey_rods'),('B4C','b4c_rods')),); -AF3R_400_12G_GD80U071=AssemblyDKLibFile(filename='cocagne_data/dklib/AF3R_400_12G_GD80U071.dklib', - pattern=\ - 'PALU_AF3R_17_4.0012G12G_100_100__535_306.5_0.7127__500___________GD__8_U_0.71_____P13', - rod_bank_names=(('Black','black_rods'),('Grey','grey_rods'),('B4C','b4c_rods')),); - -REFL_PWR1300=ReflectorDKLibFile(filename='cocagne_data/dklib/Reflecteur_REP1300.dkzip', - radial_pattern='R', - lower_pattern='lower', - upper_pattern='upper',); +REP1300=ReflectorDKLibFile(filename='cocagne_data/dklib/Reflecteur_REP1300.dkzip', + radial_pattern='R', + lower_pattern='lower', + upper_pattern='upper',); neutro_model=Model_data(physics='Neutronics', scale='component', code='COCAGNE', - cocagne_options=_F(core_elements_vs_dklib=((REF,REFL_PWR1300),(U1,AF3R_400),(UGD,AF3R_400_12G_GD80U071)),), + cocagne_options=_F(n_threads=6, + nprocs=1, + core_elements_vs_dklib=((REF,REP1300),(U1,AF3R_400)),), radial_meshing=_F(flux_solver='subdivision', flux_subdivision=2, feedback_solver='subdivision', feedback_subdivision=1,), - axial_meshing=_F(lower_refl=2, - fuel=42, - upper_refl=2,),); + axial_meshing=_F(lower_refl=1, + fuel=21, + upper_refl=1,),); thermo_model=Model_data(physics='Thermalhydraulics', scale='component', code='THYC', - thyc_options=_F(), + thyc_options=_F(n_threads=6,), + nprocs=2, radial_meshing=_F(fluid='subdivision', fluid_subdivision=1, pellet=8, @@ -198,19 +95,17 @@ thermo_model=Model_data(physics='Thermalhydraulics', fuel=40, upper_refl=1,),); -scenario_data=Scenario_data(initial_power=0.1, +scenario_data=Scenario_data(initial_power=100.0, initial_power_unit='% Nominal power', - initial_core_inlet_temperature=290.0, - initial_boron_concentration=1300.0, + initial_core_inlet_temperature=300.0, + initial_boron_concentration=600.0, initial_inlet_pressure=160.2, - initial_outlet_pressure=157.2, - initial_rod_positions=(('Rodbank@RB',201),('Rodbank@N1',96),('Rodbank@N2',260),('Rodbank@G1',260),('Rodbank@G2',260),('Rodcluster@H08',260)), + initial_outlet_pressure=155.0, + initial_rod_positions=(('Rodbank@RB',162),('Rodcluster@B04',0)), scenario_type='RIA', - ejected_rod='H02', - rod_position_program=((0.0,0),(0.1,260)), - SCRAM='YES', - SCRAM_power=1130.0, - complete_SCRAM_time=1.0, - post_processing=(('Fuel temperature@Thermalhydraulics','MAX'),('Neutronic power@Neutronics','SUM'),('Fuel temperature@Thermalhydraulics','MED'),('Neutronic power@Neutronics','MED')),); + ejected_rod='B04', + rod_position_program=((0.0,0),(0.1,162)), + SCRAM='NO', + post_processing=(('Fuel temperature','Thermalhydraulics','MAX'),('Neutronic power','Neutronics','SUM'),('Fuel temperature','Thermalhydraulics','MED'),('Rodbank@RB','Neutronics','VALUE'),('Rodcluster@B04','Neutronics','VALUE')),); #VERSION_CATALOGUE:V_0:FIN VERSION_CATALOGUE -#CHECKSUM:c06d10ac9fa4f4f20cad8266b6f6455d:FIN CHECKSUM +#CHECKSUM:cd6b2c347ac3ee843b94b8ee510ce4b2:FIN CHECKSUM \ No newline at end of file diff --git a/ReacteurNumerique/cata_RN_UQ.py b/ReacteurNumerique/cata_RN_UQ.py index c6a024b3..6d7a73e3 100644 --- a/ReacteurNumerique/cata_RN_UQ.py +++ b/ReacteurNumerique/cata_RN_UQ.py @@ -7,9 +7,19 @@ if os.path.dirname(repEficas) not in sys.path : sys.path.insert(0,repEficas) import types -from Accas import OPER, BLOC, FACT, SIMP, ASSD, JDC_CATA, Matrice, Tuple, AU_MOINS_UN, A_VALIDATOR, PROC +#from Accas import OPER, BLOC, FACT, SIMP, ASSD, JDC_CATA, Matrice, Tuple, AU_MOINS_UN, A_VALIDATOR, PROC from Noyau.N_VALIDATOR import Valid +# #autonome=1 +# autonome=0 +# if autonome : +# from Accas import * +# #from Accas import OPER, BLOC, FACT, SIMP, ASSD, JDC_CATA, Matrice, Tuple, AU_MOINS_UN, A_VALIDATOR, PROC +# JdC = JDC_CATA(code="UQ"); +# ExpressionIncertitude = creeOperExpressionIncertitude(dictUQ, dicoDesSortiesPossibles); +# else: +from cata_RN_EDG import * + # sert a activer les options d incertitude dans eficas # et a changer le convert en convertUQ avecIncertitude=True @@ -34,10 +44,3 @@ from cata_UQ import creeOperExpressionIncertitude ExpressionIncertitude=creeOperExpressionIncertitude(dictUQ, dicoDesSortiesPossibles, scriptPosttraitement, scriptDeLancement) -#autonome=1 -autonome=0 -if autonome : - from Accas import * - JdC = JDC_CATA(code="UQ"); - ExpressionIncertitude = creeOperExpressionIncertitude(dictUQ, dicoDesSortiesPossibles); - diff --git a/ReacteurNumerique/cata_UQ.py b/ReacteurNumerique/cata_UQ.py index 8823ab78..12d68396 100644 --- a/ReacteurNumerique/cata_UQ.py +++ b/ReacteurNumerique/cata_UQ.py @@ -1355,6 +1355,7 @@ def definitIntoOuput(objExpression, contexte): def changeIntoOuput(objPostPro): mesPostProVal=objPostPro.valeur + print('--------- mesPostProVal ----------- :',mesPostProVal) contexte=objPostPro.etape.parent.g_context # on essaye d assurer la compatibilite du catalogue UQ pour les 2 versions du catalogue RN_EDG if len(mesPostProVal[0]) == 2 : @@ -1369,12 +1370,13 @@ def changeIntoOuput(objPostPro): maDef.addInto(nomAProposer) if len(mesPostProVal[0]) == 3 : for (nomVar,phys,fonct) in mesPostProVal : + if '@' in nomVar : continue # Les noms des grandeurs et les associations à leurs définitions doivent être revues dans une nvlle version du cata_RN.py if fonct == 'MED' : continue nomAProposer= nomVar+'@'+phys+'@'+fonct nomBloc = 'b_physique_' + phys nomBlocVar = ('b_var_'+nomVar).replace( ' ','__') maDef=contexte['ExpressionIncertitude'].entites['Output'].entites['VariableDeSortie'].entites[nomBloc].entites[nomBlocVar].entites['VariablePosttraiteeAssociee'] - + maDef.addInto(nomAProposer) def creeOutput(monDicoVarSortie,scriptPosttraitement): intoVariable=list(monDicoVarSortie.keys()) @@ -1401,8 +1403,8 @@ def creeOutput(monDicoVarSortie,scriptPosttraitement): ang="Postprocessing Script File", statut="o", typ=("FichierNoAbs", "All Files ()"), defaut=scriptPosttraitement) - VariableDeSortie = FACT ( max='**', statut ='o', Physique=Physique, **lesBlocs, FonctionDAggregation=FonctionDAggregation, ScriptPosttraitement=ScriptPosttraitement, Unit=Unit,Format=Format) - output = FACT (max=1, statut ='o', VariableDeSortie=VariableDeSortie) + VariableDeSortie = FACT ( max='**', statut ='o', Physique=Physique, **lesBlocs, FonctionDAggregation=FonctionDAggregation, Unit=Unit,Format=Format) + output = FACT (max=1, statut ='o', VariableDeSortie=VariableDeSortie, ScriptPosttraitement=ScriptPosttraitement) return output def creeOperExpressionIncertitude(monDicoVarDeter, monDicoVarSortie,scriptPosttraitement, scriptDeLancement ): @@ -1495,9 +1497,9 @@ def creeOperExpressionIncertitude(monDicoVarDeter, monDicoVarSortie,scriptPosttr EmpiricalStandardDeviation = SIMP ( statut = "o", typ = 'TXM', into = ( 'yes', 'no' ), defaut = 'yes', fr = "Ecart-type empirique", ang = "Empirical standard deviation",), - EmpiricalQuantile = SIMP ( statut = "o", typ = 'TXM', into = ( 'yes', 'no' ), defaut = 'yes', - fr = "Quantile empirique", - ang = "Empirical quantile",), + EmpiricalQuantile = SIMP ( statut = "o", typ = 'TXM', into = ( 'no', ), defaut = 'no', #into = ( 'yes', 'no' ), + fr = "Quantile empirique (Non encore implémenté)", + ang = "Empirical quantile (Not Yet Implemented)",), BlocEmpiricalQuantileSettings = BLOC ( condition = " EmpiricalQuantile in ( 'yes', ) ", EmpiricalQuantile_Order = SIMP ( statut = "o", typ = 'R', defaut = 0.95, val_min = 0.0, val_max = 1.0, @@ -1515,10 +1517,9 @@ def creeOperExpressionIncertitude(monDicoVarDeter, monDicoVarSortie,scriptPosttr Execution = FACT (max=1, statut ='o', bloc_OT = BLOC (condition = 'UncertaintyTool == "OpenTurns"', ExecutionMode = SIMP ( statut = "o", typ = "TXM", into = ['desktop', 'cluster']), - NbOfProcs = SIMP ( statut = 'o', typ ="I" , defaut = 1, val_min = 1), - NbDeBranches = SIMP ( statut = "o", typ = "I", val_min = 0, fr='nb d evaluations simultanees'), - JobName = SIMP ( statut = 'o', typ ="TXM", defaut='idefix_rn_job'), + NbDeBranches = SIMP ( statut = "o", typ = "I", val_min = 0, fr='nb d evaluations Persalys simultanees'), bloc_OT_local = BLOC (condition = 'ExecutionMode == "desktop"', + JobName = SIMP ( statut = 'o', typ ="TXM", defaut='idefix_rn_job'), ResourceName = SIMP ( statut = 'o', typ ="TXM", defaut ='localhost'), Login = SIMP ( statut = 'o', typ ="TXM", defaut ='C65845'), #TODO # WorkDirectory = SIMP ( statut = 'o', typ='Repertoire' , defaut='/tmp/C65845_workingdir_uncertainty'), #TODO: Login + NonExistent @@ -1529,13 +1530,15 @@ def creeOperExpressionIncertitude(monDicoVarDeter, monDicoVarSortie,scriptPosttr fr="Nom du fichier script de lancement", ang="script File to launch",), ), bloc_OT_cluster = BLOC (condition = 'ExecutionMode == "cluster"', + MultiJobStudy = SIMP ( statut = "o", typ = bool, defaut=False,fr='Si True, un job est soumis pour chaque évaluation de branche'), + NbOfProcs = SIMP ( statut = 'o', typ ="I" , defaut = 1, val_min = 1, fr='Equivaut au nombre de tasks SLURM affectées à chaque job'), + JobName = SIMP ( statut = 'o', typ ="TXM", defaut='idefix_rn_job'), ResourceName = SIMP ( statut = 'o', typ ="TXM", defaut ='gaia'), Login = SIMP( statut = 'o', typ ="TXM", defaut ='C65845'), WorkDirectory = SIMP ( statut = 'o', typ='TXM' , defaut='/scratch/C65845/workingdir/persalys_light'), #TODO: Login # WorkDirectory = SIMP ( statut = 'o', typ='Repertoire' , defaut='/scratch/C65845/workingdir/persalys_light'), #TODO: Login ResultDirectory = SIMP ( statut = 'o', typ='TXM' , defaut='/tmp/idefix_rn_job'), #TODO: JobName # ResultDirectory = SIMP ( statut = 'o', typ='Repertoire' , defaut='/tmp/idefix_rn_job'), #TODO: JobName - MultiJobStudy = SIMP ( statut = "o", typ = bool, defaut=False), Consigne = SIMP(statut="o", homo="information", typ="TXM", defaut="Le chemin d'accès au script de lancement est celui utilisé par les machines du cluster."), ScriptDeLancement=SIMP( statut="o", typ=("FichierNoAbs", "All Files ()"), defaut=scriptDeLancement, diff --git a/ReacteurNumerique/creationAsEficas.py b/ReacteurNumerique/creationAsEficas.py index 23d46247..bd19a14c 100755 --- a/ReacteurNumerique/creationAsEficas.py +++ b/ReacteurNumerique/creationAsEficas.py @@ -4,7 +4,7 @@ import sys #print(sys.argv[:]) -import petitCata_driver as mdm +import cata_MOYEN_driver as mdm import pyxb #THESE CONFIGURATION LINES ARE FOR ADVANCED INTERNAL TEST ONLY, YOU DON'T NEED TO CONFIGURE PYXB LIKE THIS @@ -46,7 +46,9 @@ for o in objPyxbRB : print (o.toDOM(element_name='rb').toprettyxml()) listeArgAss.append(objPyxbRB) dicoArgAss['rod_bank_names']=objPyxbRB -AssemblyFileObjPyx=mdm.T_AssemblyDKLibFile(**dicoArgAss) +print ('dicoArgAss', dicoArgAss) +AssemblyFileObjPyx=mdm.T_AssemblyDKLibFile(**dicoArgAss) #Objet invalide avec un orderedContent hasardeux +#AssemblyFileObjPyx=mdm.T_AssemblyDKLibFile() print ('listeArgAss', listeArgAss) newOrderedContent=[] @@ -57,10 +59,17 @@ for obj in listeArgAss: # pour chaque liste de tuple #dicoArgAss['rod_bank_names']=None badObjPyxb=mdm.T_AssemblyDKLibFile(**dicoArgAss) - for newObj in obj : - print (newObj) + #badObjPyxb=mdm.T_AssemblyDKLibFile(**{}) #Evite le model check + for newObj in obj : #newobj est une rod_bank_names + print ('newObj', newObj) + print ('badObjPyxb ordredcontent', badObjPyxb.orderedContent()) + #print (badObjPyxb.toDOM(element_name='badObjPyxb').toprettyxml()) badObjPyxb.append(newObj) + print ('badObjPyxb ordredcontent', badObjPyxb.orderedContent()) for c in badObjPyxb.orderedContent() : + print ('___________________') + print ('c.value', c.value) + print ('___________________') if hasattr (c,'value') and c.value == newObj : newOrderedContent.append(c) continue continue diff --git a/ReacteurNumerique/creationAsEficasToutPetit.py b/ReacteurNumerique/creationAsEficasToutPetit.py deleted file mode 100755 index 16070b3f..00000000 --- a/ReacteurNumerique/creationAsEficasToutPetit.py +++ /dev/null @@ -1,81 +0,0 @@ -#! /usr/bin/env python3 -# -*- coding:utf-8 -*- -import sys - -#print(sys.argv[:]) - -import toutPetitCata_driver as mdm -import pyxb - -#THESE CONFIGURATION LINES ARE FOR ADVANCED INTERNAL TEST ONLY, YOU DON'T NEED TO CONFIGURE PYXB LIKE THIS -#mdm.pyxb.GlobalValidationConfig._setContentInfluencesGeneration(mdm.pyxb.GlobalValidationConfig.NEVER) -mdm.pyxb.GlobalValidationConfig._setContentInfluencesGeneration(mdm.pyxb.GlobalValidationConfig.ALWAYS) -mdm.pyxb.GlobalValidationConfig._setInvalidElementInContent(mdm.pyxb.GlobalValidationConfig.RAISE_EXCEPTION) -mdm.pyxb.GlobalValidationConfig._setOrphanElementInContent(mdm.pyxb.GlobalValidationConfig.RAISE_EXCEPTION) - -dd = mdm.CreateFromDocument(open('toto.xml').read()) -eltOk=dd.AssemblyDKLibFile[0] -eltFils=dd.AssemblyDKLibFile[0].rod_bank_names -print ('eltOk.orderedContent()', eltOk.orderedContent()) - -elt=pyxb.binding.basis.ElementContent(eltFils, instance=eltOk, tag=pyxb.namespace.ExpandedName(mdm.Namespace, 'rod_bank_names')) -print ('eltContent', elt) -print ('elementDeclaration._ElementDeclaration__key',getattr(eltOk,elt.elementDeclaration._ElementDeclaration__key)) - - -listeArgAss=[] -dicoArgAss={} -#filename=mdm.T_filename('/tmp/oo') -#listeArgAss.append(filename) -#dicoArgAss['filename']=filename -#pattern=mdm.T_filename('hhhh') -#listeArgAss.append(pattern) -#dicoArgAss['pattern']=pattern - -objPyxbRB=[] -listeArg=[] -listeArg.append(mdm.T_rod_bank_names_n1_tuple('A')) -listeArg.append(mdm.T_rod_bank_names_n2_tuple('B')) -objPyxbRB.append(mdm.T_rod_bank_names(*listeArg)) -listeArg=[] -listeArg.append(mdm.T_rod_bank_names_n1_tuple('C')) -listeArg.append(mdm.T_rod_bank_names_n2_tuple('D')) -objPyxbRB.append(mdm.T_rod_bank_names(*listeArg)) -print ('objPyxbRB', objPyxbRB) -for o in objPyxbRB : print (o.toDOM(element_name='rb').toprettyxml()) - -listeArgAss.append(objPyxbRB) -dicoArgAss['rod_bank_names']=objPyxbRB -print ('dicoArgAss', dicoArgAss) -AssemblyFileObjPyx=mdm.T_AssemblyDKLibFile(**dicoArgAss) - -print ('listeArgAss', listeArgAss) -newOrderedContent=[] -for obj in listeArgAss: - print ('-------------------- for', newOrderedContent) - print (obj) - if isinstance(obj, list): - # pour chaque liste de tuple - #dicoArgAss['rod_bank_names']=None - badObjPyxb=mdm.T_AssemblyDKLibFile(**dicoArgAss) - for newObj in obj : - print (newObj) - print ('badObjPyxb ordredcontent', badObjPyxb.orderedContent()) - badObjPyxb.append(newObj) - print ('badObjPyxb ordredcontent', badObjPyxb.orderedContent()) - for c in badObjPyxb.orderedContent() : - print ('___________________') - print ('c.value', c.value) - print ('___________________') - if hasattr (c,'value') and c.value == newObj : print ('ajout de', c); newOrderedContent.append(c) - continue - continue - #newOrderedContent.append(AssemblyFileObjPyx.orderedContent()[list(map(lambda o:id(o.value), AssemblyFileObjPyx.orderedContent())).index(id(obj))] ) - -for i in range(len(newOrderedContent)): - print (newOrderedContent[i]) - try : AssemblyFileObjPyx.orderedContent()[i]=newOrderedContent[i] - except : AssemblyFileObjPyx.orderedContent().append(newOrderedContent[i]) -print ('AssemblyFileObjPyx.orderedContent', AssemblyFileObjPyx.orderedContent()) - -print (AssemblyFileObjPyx.toDOM(element_name='rb').toprettyxml()) diff --git a/ReacteurNumerique/edg_REP1300_FULL.comm b/ReacteurNumerique/edg_REP1300_FULL.comm index 89ed0bcc..97d1b66a 100644 --- a/ReacteurNumerique/edg_REP1300_FULL.comm +++ b/ReacteurNumerique/edg_REP1300_FULL.comm @@ -211,5 +211,4 @@ scenario_data=Scenario_data(initial_power=0.1, SCRAM_power=1130.0, complete_SCRAM_time=1.0, post_processing=(('Fuel temperature@Thermalhydraulics','MAX'),('Neutronic power@Neutronics','SUM'),('Fuel temperature@Thermalhydraulics','MED'),('Neutronic power@Neutronics','MED')),); -#VERSION_CATALOGUE:V_0:FIN VERSION_CATALOGUE -#CHECKSUM:c06d10ac9fa4f4f20cad8266b6f6455d:FIN CHECKSUM \ No newline at end of file + diff --git a/ReacteurNumerique/md.comm b/ReacteurNumerique/md.comm deleted file mode 100644 index 51b13549..00000000 --- a/ReacteurNumerique/md.comm +++ /dev/null @@ -1,12 +0,0 @@ -thermo_model=Model_data(physics='Thermalhydraulics', - scale='component', - code='THYC', - thyc_options=_F(n_threads=23,), - radial_meshing=_F(fluid='subdivision', - fluid_subdivision=1, - pellet=8, - clad=2,), - axial_meshing=_F(lower_refl=1, - fuel=40, - upper_refl=1,),); - diff --git a/ReacteurNumerique/petitCata.xsd b/ReacteurNumerique/petitCata.xsd deleted file mode 100644 index 90ddbff9..00000000 --- a/ReacteurNumerique/petitCata.xsd +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Description of a fuel assembly DKLib file - - - - - diff --git a/ReacteurNumerique/post_csv.py b/ReacteurNumerique/post_csv.py deleted file mode 100644 index 057e6386..00000000 --- a/ReacteurNumerique/post_csv.py +++ /dev/null @@ -1,168 +0,0 @@ -# Exemple de script pour lire la sortie csv du banc -# -# Lecture des valeurs dans le csv et renvoi de la valeur après application de la fonction d'agragation max,min et moy - -#To get the history in python -#print('\n'.join([str(readline.get_history_item(i + 1)) for i in range(readline.get_current_history_length())])) - -def vMax(arrayNx2): - import numpy as np - - return np.apply_along_axis(max, 0, arrayNx2[:,1]).item() - -def vMin(arrayNx2): - import numpy as np - - return np.apply_along_axis(min, 0, arrayNx2[:,1]).item() - -def vMean(arrayNx2): - import numpy as np - import statistics - - return np.apply_along_axis(statistics.mean, 0, arrayNx2[:,1]).item() - -def vSum(arrayNx2): - import numpy as np - - return np.apply_along_axis(sum, 0, arrayNx2[:,1]).item() - -def vInitialTime(arrayNx2): - import numpy as np - - #Dates on first column, Values on second one - timeColumn= arrayNx2[:,0] - # Tmin=np.apply_along_axis(min, 0, timeColumn) - # assert(arrayNx2[0,0]==Tmin) - idxTmin = timeColumn.argmin() - assert(idxTmin==0) - - valTmin= arrayNx2[idxTmin][1].item() - - return valTmin - -def vFinalTime(arrayNx2): - import numpy as np - - #Dates on first column, Values on second one - timeColumn= arrayNx2[:,0] - # Tmax=np.apply_along_axis(max, 0, timeColumn) - # assert(arrayNx2[timeColumn.size,0]==Tmax) - idxTmax = timeColumn.argmax() - idxMax=timeColumn.size-1 - assert(idxTmax==idxMax) - - valTmax= arrayNx2[idxTmax][1].item() - - return valTmax - -def vHalfTime(arrayNx2): - import numpy as np - - #Dates on first column, Values on second one - timeColumn= arrayNx2[:,0] - Tmin=np.apply_along_axis(min, 0, timeColumn) - Tmax=np.apply_along_axis(max, 0, timeColumn) - - Thalf=(Tmax-Tmin)/2+Tmin - idxThalf = (np.abs(timeColumn-Thalf)).argmin() - valThalf= arrayNx2[idxThalf][1].item() - - return valThalf - -def get_result_from_csv(variableName:str, functionList, filename:str=None, delimiter=','): - from csv import reader - import numpy as np - - transientName = 'Transient duration' - - #ex: file_csv = "Fuel temperature@Thermalhydraulics@MAX.csv" - if filename == None: filename = variableName+'.csv' - - with open(filename, "r") as csv_file: - csv_reader = reader(csv_file, delimiter=delimiter) - header = next(csv_reader) - header_transient_name=header[1] - header_variable_name=header[2] - if header_variable_name != variableName: - print(sys.stderr,"The variable name {} differs from the file's header one {}".format(variableName, header_variable_name)) - return -1 #TODO Exception ? - if header_transient_name != transientName: - print(sys.stderr,"The transient duration name {} differs from the file's header one {}".format(transientName, header_transient_name)) - return -1 #TODO Exception ? - - date_value_array=np.loadtxt(file_csv, delimiter = delimiter, skiprows = 1)[:,1:3] - valList=[] - for func in functionList: - valList.append(func(date_value_array)) - return valList - -def get_result_from_csv_v0(variableName:str, function, filename:str=None, delimiter=','): - from csv import reader - - #ex: file_csv = "Fuel temperature@Thermalhydraulics@MAX.csv" - if filename == None: filename = variableName+'.csv' - - with open(filename, "r") as csv_file: - csv_reader = reader(csv_file, delimiter=delimiter) - header = next(csv_reader) - header_variable_name=header[-1] - if header_variable_name != variableName: - print(sys.stderr,"The variable name {} differs from the file's header one {}".format(variableName, header_variable_name)) - return -1 #TODO Exception ? - # print("Header:") - # print(", ".join(header)) - # print("Values:") - # for row in csv_reader: - # print(", ".join(row)) - return function(csv_reader)[-1] - -# import csv - -# #fich_csv = "Execution_APOLLO3/Neutronic power@Neutronics@SUM.csv" -# fich_csv = "Fuel temperature@Thermalhydraulics@MAX.csv" -# file_csv = open(fich_csv) - -# fich_sort = 'point.res' - -# csvReader = csv.reader(file_csv, delimiter=',') -# header = [] -# header = next(csvReader) -# # Pour APOLLO3 ? -# # if len(header) != 2: -# # print("Correction des headers contenant des espaces") -# # tmp = header -# # header = [] -# # header.append(tmp[1]) -# # header.append(tmp[-2] + " " + tmp[-1]) -# print(header) - -# rows = [] -# for row in csvReader: -# ligne = [] -# for elem in row: -# if elem != '': -# ligne.append(float(elem)) -# rows.append(ligne) -# #print(ligne) -# print(rows) - -# # reperage des valeurs min et max -# point_min = rows[0] -# point_max = rows[0] -# for point in rows: -# if point[2] < point_min[2]: -# point_min = point -# if point[2] > point_max[2]: -# point_max = point - -# # impression dans un fichier res de sortie -# print("point min") -# print(point_min) -# print("point max") -# print(point_max) - -# txt = "# time_min min time_max max\n" -# txt += "{0} {1} {2} {3}".format(point_min[0],point_min[1],point_max[0],point_max[1]) - -# file_sort = open(fich_sort,'w') -# file_sort.write(txt) diff --git a/ReacteurNumerique/toto.comm b/ReacteurNumerique/toto.comm deleted file mode 100644 index 561b2c9e..00000000 --- a/ReacteurNumerique/toto.comm +++ /dev/null @@ -1,5 +0,0 @@ -AF3R_400=AssemblyDKLibFile(#filename='cocagne_data/dklib/AF3R_400.dklib', - #pattern='PALU_AF3R_17_4.00_0P_0P_100_100__535_306.5_0.7127__500____________________________P13', - #rod_bank_names=(('Black','black_rods'),('Grey','grey_rods'),('B4C','b4c_rods')),); - rod_bank_names=(('Black','black_rods'),)); - diff --git a/ReacteurNumerique/toutPetit.comm b/ReacteurNumerique/toutPetit.comm deleted file mode 100644 index 00c2fa32..00000000 --- a/ReacteurNumerique/toutPetit.comm +++ /dev/null @@ -1,6 +0,0 @@ - -AF3R_400=AssemblyDKLibFile(#filename='/tmp/oo', - #pattern='aaa', - rod_bank_names=(('Black','black_rods'),),); -#VERSION_CATALOGUE:V_0:FIN VERSION_CATALOGUE -#CHECKSUM:d7e06c28bd7405b0913257d383914c9f:FIN CHECKSUM diff --git a/ReacteurNumerique/toutPetitCata.py b/ReacteurNumerique/toutPetitCata.py deleted file mode 100644 index 29bb6490..00000000 --- a/ReacteurNumerique/toutPetitCata.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- - -"""Definition of the data model used by the integration bench. - -Warnings --------- -EFICAS will import this file as Python module with the ``__import__`` special -function so, this module must not use relative import. -""" -# pylint: disable=import-error -# pylint: disable=too-few-public-methods - -# TODO: Create a main object that point on the different subobjects and force its name - -# EFICAS -from Accas import OPER, BLOC, FACT, SIMP, ASSD, JDC_CATA, VerifTypeTuple, Matrice, Tuple -from Accas import Tuple as _Tuple -from Extensions.i18n import tr - -# Warning: The names of these variables are defined by EFICAS -JdC = JDC_CATA(code="RN_EDG") -VERSION_CATALOGUE = "V_0" - -# Define the minimum and the maximum number of elements (reflectors and fuel -# assemblies) on the core's side -NMIN_CORE_FUEL_ELTS = 1 -NMAX_CORE_FUEL_ELTS = 18 - -# Available absorbing material type in the rod clusters -ROD_COMPOSITIONS = ( - "Black", # Full AIC rods - "Grey", # Mix between AIC and steel rods - "B4C", # Full B4C rods -) - -# Available options for the core elements rotation -ASSEMBLY_ROTATIONS = ( - ".", # identity - "R1", # 90° counter-clock - "R2", # 180° - "R3", # 270° counter-clock - "UD", # up-down - "LR", # left-right - "TR", # transpose x/y - "RT", # transpose x/-y -) - - - -class _AssemblyDKLibFile(ASSD): - """Manage informations about a fuel assembly DKLib file.""" - - - -AssemblyDKLibFile = OPER( - nom="AssemblyDKLibFile", - sd_prod=_AssemblyDKLibFile, - fr="Description d'un fichier DKLib assemblage combustible", - ang="Description of a fuel assembly DKLib file", - #filename=SIMP( - # fr="Nom du fichier DKLib", - # ang="DKLib filename", - # statut="o", - # typ=("Fichier", "DKLib Files (.dklib);;DKZip Files (.dkzip);;All Files ()", "Sauvegarde")), - #pattern=SIMP( - # fr="Nom du pattern à utiliser dans le fichier DKLib", - # ang="Name of the pattern to use in the DKLib file", - # statut="o", - # typ="TXM"), - rod_bank_names=SIMP( - fr=("Nom de la configuration de grappe dans la DKLib pour chaque type " - "de matériaux absorbants disponibles dans le modèle sous la forme " - "({{{}}}, nom dans la DKLib)").format(", ".join(ROD_COMPOSITIONS)), - ang=("Name of the rod cluster configuration in the DKLib file for any " - "type of absorbing materials available in the model under the form " - "({{{}}}, name in the DKLib)").format(", ".join(ROD_COMPOSITIONS)), - statut="o", - typ=Tuple(2), - # TODO: Check if the first string is ROD_COMPOSITIONS - validators=VerifTypeTuple(("TXM", "TXM")), - max="**")) - - diff --git a/ReacteurNumerique/toutPetitCata.xsd b/ReacteurNumerique/toutPetitCata.xsd deleted file mode 100644 index 9c88ba46..00000000 --- a/ReacteurNumerique/toutPetitCata.xsd +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Description of a fuel assembly DKLib file - - - - - \ No newline at end of file