]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
MAJ PocRN
authorEric Fayolle <eric.fayolle@edf.fr>
Wed, 28 Apr 2021 10:18:11 +0000 (12:18 +0200)
committerEric Fayolle <eric.fayolle@edf.fr>
Wed, 28 Apr 2021 10:18:11 +0000 (12:18 +0200)
Poc/cataPoc.py [deleted file]
Poc/cataPoc.xsd [deleted file]
Poc/cataPocRN.py
Poc/cataPoc_driver.py [deleted file]
Poc/edg32.comm [new file with mode: 0644]
Poc/edg32.comm.ref [new file with mode: 0644]
Poc/pocEssai.comm [deleted file]
Poc/pocEssai.xml [deleted file]
Poc/raw/cataPoc_driver.py [deleted file]
Poc/readExemple.py

diff --git a/Poc/cataPoc.py b/Poc/cataPoc.py
deleted file mode 100644 (file)
index ad05d26..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2008-2018 EDF R&D
-#
-# This file is part of SALOME ADAO module
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-import os, re
-import Accas
-from Accas import *
-monFichier=os.path.abspath(__file__)
-
-JdC = JDC_CATA (
-    code='Essai'
-    )
-VERSION_CATALOGUE='V_0'
-
-step_unit_input = ["inserted_steps", "extracted_steps", ]
-
-
-RodsWorthSetting = PROC ( nom = 'RodsWorthSetting',
-        fr = "Définition des options d'un calcul de poids de grappe",
-        version = SIMP (statut='o', typ = 'TXM', defaut ="1.0.0"),
-        virtual_groups = FACT( max='**', statut='o',
-                group_name = SIMP(statut='o', typ='TXM'),
-                value_def  = SIMP(statut='o', typ ='TXM',max='**' ),
-        ),
-        xenon_feedback = SIMP (statut='o',  typ ='TXM', 
-            into=["locked", "equilibrium", ]),
-        cb = SIMP (statut='o',  typ ='TXM', 
-            fr="Traitement de la CB pour les calculs d'efficacité",
-            into=["upstream_state", "critical", "critical_from_previous_state"]),
-    
-        states = SIMP(statut='o', typ = 'TXM', max='**',
-                   fr="Choix des états d'entrée du calcul"),
-       calcul_type = SIMP (statut='o',  typ ='TXM', 
-                fr="Choix du type de calcul de poids de grappe à réaliser",
-               into = [ "differential_worth", "combination", "integral_worth", ]),
-
-        BIntegral_O=BLOC ( condition = 'calcul_type == "integral_worth"',
-            Integral_O=SIMP(statut='o', typ= 'TXM', defaut = 'pas compris'),
-            ),
-       Integral = FACT(
-       #classe IntegralSituationsSetting
-            fr= "Définition de configurations intégrales de poids de grappes",
-            step_unit = SIMP (statut='o',  typ='TXM' , into = step_unit_input,
-                      fr="Unité retenue pour les insertions de grappes"),
-            config = FACT( max='**', statut='o',
-                key_config = SIMP(statut='o', typ='TXM'),
-                value_def  = SIMP(statut='o', typ ='R', val_min=0, ),
-                fr="Definition des configurations de grappes",
-             ),
-        ),
-        
-)
-
-
diff --git a/Poc/cataPoc.xsd b/Poc/cataPoc.xsd
deleted file mode 100644 (file)
index e07e4c8..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-xmlns="http://chercheurs.edf.com/logiciels/Essai"
-xmlns:Essai="http://chercheurs.edf.com/logiciels/Essai"
-targetNamespace="http://chercheurs.edf.com/logiciels/Essai"
-elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
-       <xs:simpleType name="T_version">
-               <xs:restriction base="xs:string">
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_group_name">
-               <xs:restriction base="xs:string">
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_value_def">
-               <xs:restriction>
-                       <xs:simpleType>
-                               <xs:list>
-                                       <xs:simpleType>
-                                               <xs:restriction base="xs:string">
-                                               </xs:restriction>
-                                       </xs:simpleType>
-                               </xs:list>
-                        </xs:simpleType>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_xenon_feedback">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="locked"/>
-                       <xs:enumeration value="equilibrium"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_cb">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="upstream_state"/>
-                       <xs:enumeration value="critical"/>
-                       <xs:enumeration value="critical_from_previous_state"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_states">
-               <xs:restriction>
-                       <xs:simpleType>
-                               <xs:list>
-                                       <xs:simpleType>
-                                               <xs:restriction base="xs:string">
-                                               </xs:restriction>
-                                       </xs:simpleType>
-                               </xs:list>
-                        </xs:simpleType>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_calcul_type">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="differential_worth"/>
-                       <xs:enumeration value="combination"/>
-                       <xs:enumeration value="integral_worth"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_Integral_O">
-               <xs:restriction base="xs:string">
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_step_unit">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="inserted_steps"/>
-                       <xs:enumeration value="extracted_steps"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_key_config">
-               <xs:restriction base="xs:string">
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:simpleType name="T_value_def_1">
-               <xs:restriction base="xs:float">
-                       <xs:minInclusive value = "0"/>
-               </xs:restriction>
-       </xs:simpleType>
-       <xs:complexType name="T_virtual_groups" >
-               <xs:sequence>
-                       <xs:element name="group_name" type="Essai:T_group_name" minOccurs="1" maxOccurs="1"/>
-                       <xs:element name="value_def" type="Essai:T_value_def" minOccurs="1" maxOccurs="1"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:group name="T_BIntegral_O">   
-               <xs:sequence>
-                       <xs:element name="Integral_O" type="Essai:T_Integral_O" minOccurs="1" maxOccurs="1" default="pas compris"/>
-               </xs:sequence>
-       </xs:group>
-       <xs:complexType name="T_config" >
-               <xs:sequence>
-                       <xs:element name="key_config" type="Essai:T_key_config" minOccurs="1" maxOccurs="1"/>
-                       <xs:element name="value_def" type="Essai:T_value_def_1" minOccurs="1" maxOccurs="1"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="T_Integral" >
-               <xs:sequence>
-                       <xs:element name="step_unit" type="Essai:T_step_unit" minOccurs="1" maxOccurs="1"/>
-                       <xs:element name="config" type="Essai:T_config" minOccurs="0" maxOccurs="unbounded"/>
-               </xs:sequence>
-       </xs:complexType>
-       <xs:complexType name="T_RodsWorthSetting" >
-        <xs:complexContent>
-         <xs:extension base="T_step_Essai">
-               <xs:sequence>
-                       <xs:element name="version" type="Essai:T_version" minOccurs="1" maxOccurs="1" default="1.0.0"/>
-                       <xs:element name="virtual_groups" type="Essai:T_virtual_groups" minOccurs="0" maxOccurs="unbounded"/>
-                       <xs:element name="xenon_feedback" type="Essai:T_xenon_feedback" minOccurs="1" maxOccurs="1"/>
-                       <xs:element name="cb" type="Essai:T_cb" minOccurs="1" maxOccurs="1"/>
-                       <xs:element name="states" type="Essai:T_states" minOccurs="1" maxOccurs="1"/>
-                       <xs:element name="calcul_type" type="Essai:T_calcul_type" minOccurs="1" maxOccurs="1"/>
-                       <xs:group ref="Essai:T_BIntegral_O"  minOccurs="0" maxOccurs="1"/>
-                       <xs:element name="Integral" type="Essai:T_Integral" minOccurs="0" maxOccurs="1"/>
-               </xs:sequence>
-         </xs:extension>
-        </xs:complexContent>
-       </xs:complexType>
-       <xs:element name="RodsWorthSetting" type="Essai:T_RodsWorthSetting" substitutionGroup="step_Essai"/>
-       <xs:complexType name="T_step_Essai" abstract="true"/>
-       <xs:element name="step_Essai" type="Essai:T_step_Essai"/>
-       <xs:element name="Essai" type="Essai:T_Essai"/>
-               <xs:complexType name="T_Essai">
-                 <xs:choice minOccurs="0" maxOccurs="unbounded">
-                       <xs:element ref="step_Essai" minOccurs="0" maxOccurs="1"/>
-                 </xs:choice>
-               </xs:complexType>
-       <xs:simpleType name="PNEFdico_Essai">
-               <xs:annotation>
-               <xs:documentation>{'T_value_def': {'_value_def_config_Integral_RodsWorthSetting': 'T_value_def_1'}}
-               </xs:documentation>
-               </xs:annotation>
-       <xs:restriction base="xs:string"></xs:restriction>
-       </xs:simpleType>
-</xs:schema>
index 4b739b5772eb10de7d6a6d6a42f6ac237fb0e7a6..36c5d6f221969f4160019b15680f041fca8e408d 100644 (file)
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-import os, re
-import Accas
-from Accas import *
-monFichier=os.path.abspath(__file__)
+import os
+from Accas import OPER, BLOC, FACT, SIMP, ASSD, JDC_CATA, VerifTypeTuple
+from Extensions.i18n import tr
+import types
+monFichier = os.path.abspath(__file__)
 
-JdC = JDC_CATA (
+JdC = JDC_CATA(
     code='Essai'
-    )
-VERSION_CATALOGUE='V_0'
+)
+VERSION_CATALOGUE = 'V_0'
+
+
+NMIN_ASSEMBLY = 1
+NMAX_ASSEMBLY = 18
+
+
+class Tuple:
+    def __init__(self, ntuple):
+        self.ntuple = ntuple
+
+    def __convert__(self, valeur):
+        if len(valeur) != self.ntuple:
+            return None
+        return valeur
+
+    def info(self):
+        return "Tuple de %s elements" % self.ntuple
 
 
 class Matrice:
-  def __init__(self,nbLigs=None,nbCols=None,methodeCalculTaille=None,formatSortie="ligne",valSup=None,valMin=None,structure=None,typElt='R',typEltInto=None, listeHeaders=None):
-      self.nbLigs=nbLigs
-      self.nbCols=nbCols
-      self.methodeCalculTaille=methodeCalculTaille
-      self.formatSortie=formatSortie
-      self.valSup=valSup
-      self.valMin=valMin
-      self.structure=structure
-      self.typElt=typElt
-      self.listeHeaders=listeHeaders
-      self.typEltInto=typEltInto
-
-  def __convert__(self,valeur):
-    # Attention ne verifie pas grand chose
-    if type(valeur) != types.ListType :
-      return None
-    return valeur
-
-  def info(self):
-      return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
-
-      __repr__=info
-      __str__=info
-
-
-
-Techno_Data = PROC( nom = 'Techno_Data',
-    Radial_Description = FACT (statut ='o',
-        assembly_width = SIMP (statut='o', typ = 'R'),
-        assembly_map = SIMP ( statut = "o",
-            typ = Matrice(nbLigs=8,
-                          nbCols=8,
-                          valSup=1,
-                          valMin=-1,
-                          typElt='TXM',
-                          typEltInto=('U1','R1'),
-                          listeHeaders=None),
-          defaut=(['U1','U1','U1','U1','U1','U1','U1','U1'],
-                 ['U1','U1','U1','U1','U1','U1','U1','U1'],
-                 ['U1','U1','U1','U1','U1','U1','U1','U1'],
-                 ['U1','U1','U1','U1','U1','U1','U1','U1'],
-                 ['U1','U1','U1','U1','U1','U1','U1','U1'],
-                 ['U1','U1','U1','U1','U1','U1','U1','U1'],
-                 ['U1','U1','U1','U1','U1','U1','U1','U1'],
-                 ['U1','U1','U1','U1','U1','U1','U1','U1'])
-                          ),
-
-    ), # Radial_Description
-        #road_map = SIMP ( statut = "o",
-        #    typ = Matrice(nbLigs=8,
-        #                  nbCols=8,
-        #                  valSup=1,
-        #                  valMin=-1,
-        #                  ),),
-        
-    Rod_Description = FACT (statut ='o',
-        RB=FACT( statut ='o',
-           step_height =  SIMP (statut='o', typ = 'R'),
-           nsteps = SIMP (statut='o', typ = 'I',),
-         ),
-    ), # Rod_Description
-   Axial_Description = FACT(statut ='o',
-       lower_refl_size =  SIMP (statut='o', typ = 'R'),
-       fuel_size =  SIMP (statut='o', typ = 'R'),
-       upper_ref =  SIMP (statut='o', typ = 'R'),
-    ),
-   Grids = FACT (statut ='o',
-       mixing = FACT(statut ='o',
-         positions =  SIMP (statut='o', typ = 'R'),
-         size =  SIMP (statut='o', typ = 'R'),
-       ),
-       non_mixing = FACT( statut ='o',
-         positions =  SIMP (statut='o', typ = 'R'),
-         size =  SIMP (statut='o', typ = 'R'),
-       ),
-    ),
-    Nominal_Power =  SIMP (statut='o', typ = 'R'),
-    
-    
-) # Techno data
+    def __init__(self, nbLigs=None, nbCols=None,
+                 methodeCalculTaille=None, formatSortie="ligne",
+                 valSup=None, valMin=None, structure=None, typElt='R',
+                 typEltInto=None, listeHeaders=None):
+        self.nbLigs = nbLigs
+        self.nbCols = nbCols
+        self.methodeCalculTaille = methodeCalculTaille
+        self.formatSortie = formatSortie
+        self.valSup = valSup
+        self.valMin = valMin
+        self.structure = structure
+        self.typElt = typElt
+        self.listeHeaders = listeHeaders
+        self.typEltInto = typEltInto
+
+    def __convert__(self, valeur):
+        # Attention ne verifie pas grand chose
+        if not isinstance(valeur, types.ListType):
+            return None
+        return valeur
+
+    def info(self):
+        return "Matrice %s x %s" % (self.nbLigs, self.nbCols)
+
+    __repr__ = info
+    __str__ = info
+
+
+class VerifPostTreatment(VerifTypeTuple):
+
+    def __init__(self):
+        super(VerifPostTreatment, self).__init__(('TXM', 'TXM'))
+        self.cata_info = ""
+        self.physValeurs = ('Neutronics', 'Thermalhydraulics')
+        self.typeValeurs = ('MED', 'SUM', 'MIN', 'MAX', 'MEAN')
+
+    def info(self):
+        return tr(": verifie 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 etre de type  %s ") % (valeur, self.typeDesTuples))
+        ok = self.verifType(valeur)
+        if ok == 0:
+            raise ValueError(
+                tr("%s devrait etre de type  %s (%d)") % (valeur, self.typeDesTuples, ok))
+        if ok < 0:
+            raise ValueError(
+                tr("%s devrait etre dans %s ") % (valeur[1], self.typeValeurs))
+        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:
+            return 0
+        return 1
+
+    def verifType(self, valeur):
+        ok = 0
+        for v in valeur:
+            if type(v) == bytes or type(v) == str:
+                ok += 1
+        if ok == len(self.typeDesTuples):
+            if valeur[1] in self.typeValeurs:  # and valeur[1] in self.physValeurs:
+                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 myAssembly(ASSD):
+    pass
+
+
+class myTechnoData(ASSD):
+    pass
+
+
+class myRodBank(ASSD):
+    pass
+
+
+class myModelData(ASSD):
+    pass
+
+
+class myScenarioData(ASSD):
+    pass
+
+
+Assembly = OPER(nom='Assembly', sd_prod=myAssembly,
+                assembly_name=SIMP(statut='o', typ='TXM'),
+                assembly_type=SIMP(statut='o', typ='TXM', into=("UOX", "MOX", "REF")),
+                description=BLOC(condition='assembly_type != "REF"',
+                                 assembly_width=SIMP(statut='o', typ='R'),
+                                 radial_description=FACT(statut='o',
+                                                         clad_outer_radius=SIMP(statut='o', typ='R'),
+                                                         guide_tube_outer_radius=SIMP(statut='o', typ='R'),
+                                                         fuel_rod_pitch=SIMP(statut='o', typ='R'),
+                                                         nfuel_rods=SIMP(statut='o', typ='I')),
+                                 axial_description=FACT(statut='o',
+                                                        active_length_start=SIMP(statut='o', typ='R'),
+                                                        active_length_end=SIMP(statut='o', typ='R')),
+                                 grids=FACT(statut='o',
+                                            mixing=FACT(statut='o',
+                                                        positions=SIMP(
+                                                            statut='f', typ='R', max="**"),
+                                                        size=SIMP(statut='o', typ='R')),
+                                            non_mixing=FACT(statut='o',
+                                                            positions=SIMP(
+                                                                statut='f', typ='R', max='**'),
+                                                            size=SIMP(statut='o', typ='R')),
+                                            )
+                                 )
+                )
+
+
+RodBank = OPER(nom="RodBank", sd_prod=myRodBank,
+               rodbank_name=SIMP(statut='o', typ='TXM'),
+               step_height=SIMP(statut='o', typ='R'),
+               nsteps=SIMP(statut='o', typ='I'))
+
+
+def add_lr_refl(ass_list):
+    return ["RW"] + ass_list + ["RE"]
+
+
+def add_tb_refl(ass_list):
+    return ["RS"] + ass_list + ["RN"]
+
+
+def generate_ass_map(nass_list):
+    xsym_list = [a for a in 'ABCDEFGHJKLNPRSTUVWXYZ']
+    xsym_list.reverse()
+    ysym_list = ["%02d" % i for i in range(NMIN_ASSEMBLY, NMAX_ASSEMBLY+1)]
+    ysym_list.reverse()
+    def_xaxis = {}
+    def_yaxis = {}
+    for n in range(NMIN_ASSEMBLY, NMAX_ASSEMBLY+1):
+        def_xaxis[n] = add_lr_refl(xsym_list[-n:])
+        def_yaxis[n] = add_tb_refl(ysym_list[-n:])
+
+    dico = {}
+#    for n in nass_list:
+    for n in (6,):
+        dico['assembly_map_%d' % n] = BLOC(condition="nb_assembly==%d" % n,
+                                           xaxis=SIMP(statut='o',
+                                                      typ='TXM',
+                                                      min=n+2, max=n+2,
+                                                      defaut=def_xaxis[n]),
+                                           yaxis=SIMP(statut='o',
+                                                      typ='TXM',
+                                                      min=n+2, max=n+2,
+                                                      defaut=def_yaxis[n]),
+                                           assembly_map=SIMP(statut="o",
+                                                             typ=Matrice(nbLigs=n+2,
+                                                                         nbCols=n+2,
+                                                                         valSup=1,
+                                                                         valMin=-1,
+                                                                         typElt='TXM',  # ici c'est le nom de l'assemblage
+                                                                         listeHeaders=None),
+                                                             defaut=(n+2)*[(n+2)*['.']]),
+                                           rod_map=SIMP(statut="o",
+                                                        typ=Matrice(nbLigs=n+2,
+                                                                    nbCols=n+2,
+                                                                    valSup=1,
+                                                                    valMin=-1,
+                                                                    typElt='TXM',  # ici c'est le nom de l'assemblage
+                                                                    listeHeaders=None),
+                                                        defaut=(n+2)*[(n+2)*['.']]))
+
+    return dico
+
+
+Techno_data = OPER(nom='Techno_data', sd_prod=myTechnoData,
+                   assembly_list=SIMP(statut='o', typ=myAssembly, min=1, max="**"),  # à resorber quand on mettra dans la Matrice
+                   rodbank_list=SIMP(statut='o', typ=myRodBank, min=0, max="**"),  # idem
+                   radial_description=FACT(statut='o',
+                                           nb_assembly=SIMP(statut='o', typ='I', into=list(range(NMIN_ASSEMBLY, NMAX_ASSEMBLY))),
+                                           **(generate_ass_map(range(NMIN_ASSEMBLY, NMAX_ASSEMBLY)))
+                                           ),  # Radial_Description
+                   axial_description=FACT(statut='o',
+                                          lower_refl_size=SIMP(statut='o', typ='R'),
+                                          upper_refl_size=SIMP(statut='o', typ='R'),
+                                          ),
+                   nominal_power=SIMP(statut='o', typ='R'),
+                   fuel_power_fraction=SIMP(statut='o', typ='R'),
+                   )  # Techno data
+
+Model_data = OPER(nom='Model_data', sd_prod=myModelData,
+                  physics=SIMP(statut='o', typ='TXM', into=(
+                      'Neutronics', 'Thermalhydraulics')),
+                  scale=SIMP(statut='o', typ='TXM', into=(
+                      'system', 'component', 'local')),
+                  b_neutro_compo=BLOC(condition='physics=="Neutronics" and scale=="component"',
+                                      codeNeutro=SIMP(statut='o', typ='TXM', into=('COCAGNE', 'APOLLO3')),
+                                      radial_meshingNeutro=FACT(statut='o',
+                                                          flux_solver=SIMP(statut='o', typ='TXM', into=('subdivision', 'pin-by-pin')),
+                                                          b_flux_subdivision=BLOC(condition='flux_solver=="subdivision"',
+                                                                                  flux_subdivision=SIMP(statut='o', typ='I')),
+                                                          feedback_solver=SIMP(statut='o', typ='TXM', into=('subdivision', 'pin-by-pin')),
+                                                          b_feedback_subdivision=BLOC(condition='feedback_solver=="subdivision"',
+                                                                                      feedback_subdivision=SIMP(statut='o', typ='I')))),
+                  b_thermo_compo=BLOC(condition='physics=="Thermalhydraulics" and scale=="component"',
+                                      code=SIMP(statut='o', typ='TXM', into=('THYC', 'CATHARE3', 'FLICA4')),
+                                      radial_meshing=FACT(statut='o',
+                                                          fluid=SIMP(statut='o', typ='TXM', into=('subdivision', 'subchannel')),
+                                                          b_fluid_subdivision=BLOC(condition='fluid=="subdivision"',
+                                                                                   fluid_subdivision=SIMP(statut='o', typ='I')),
+                                                          pellet=SIMP(statut='o', typ='I'),
+                                                          clad=SIMP(statut='o', typ='I'))),
+                  b_scale_compo=BLOC(condition='scale=="component"',
+                                     axial_meshing=FACT(statut='o',
+                                                        lower_refl=SIMP(statut='o', typ='I'),
+                                                        fuel=SIMP(statut='o', typ='I'),
+                                                        upper_refl=SIMP(statut='o', typ='I'))),
+                  b_scale_local=BLOC(condition='scale=="local"',
+                                     mesh_file=SIMP(statut='o', typ='Fichier')),
+                  )
 
 
+Scenario_data = OPER(nom='Scenario_data', sd_prod=myScenarioData,
+                     initial_power=SIMP(statut='o', typ='R', val_min=0.,
+                                        defaut=100.),
+                     initial_power_unit=SIMP(statut='o', typ='TXM',
+                                             into=('% Nominal power', 'W'),
+                                             defaut='% Nominal power'),
+                     initial_rod_positions=SIMP(statut='o',
+                                                typ=Tuple(2),
+                                                validators=VerifTypeTuple(['TXM', 'I']),
+                                                ang="Type@label, position (e.g. RodBank@RB, 0)",
+                                                max='**'),
+                     scenario_type=SIMP(statut='o',
+                                        typ='TXM',
+                                        into=['RIA']),
+                     b_ria=BLOC(condition='scenario_type=="RIA"',
+                                ejected_rod=SIMP(statut='o',
+                                                 typ='TXM'),
+                                rod_position_program=SIMP(statut='o',
+                                                          typ=Tuple(2),
+                                                          validators=VerifTypeTuple(['R', 'I']),
+                                                          max='**'),
+                                ),
+                     post_processing=SIMP(statut='f',
+                                          typ=Tuple(2),
+                                          validators=VerifPostTreatment(),
+                                          max='**'),
+                     )
diff --git a/Poc/cataPoc_driver.py b/Poc/cataPoc_driver.py
deleted file mode 100644 (file)
index 1506109..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# -*- coding: utf-8 -*-
-from raw.cataPoc_driver import *
diff --git a/Poc/edg32.comm b/Poc/edg32.comm
new file mode 100644 (file)
index 0000000..211d5b0
--- /dev/null
@@ -0,0 +1,78 @@
+
+REF=Assembly(assembly_name='REF',
+             assembly_type='REF',);
+
+U1=Assembly(assembly_name='U1',
+            assembly_type='UOX',
+            assembly_width=0.21504,
+            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.2,
+                                 active_length_end=1.5,),
+            grids=_F(mixing=_F(positions=(1.0807,),
+                               size=0.033,),
+                     non_mixing=_F(positions=(0.026,),
+                                   size=0.033,),),);
+
+RB=RodBank(rodbank_name='RB',
+           step_height=0.008,
+           nsteps=162,);
+
+techno_data=Techno_data(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','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'],),
+                                              rod_map=
+                                              (['#','#','#','#','#','#','#',
+                                                        '#'],['#','#','.','.','.','.','#','#'],['#','.','.','.','RB','.',
+                                                        '.','#'],['#','.','RB','.','.','.','.','#'],['#','.','.','.','.',
+                                                        'RB','.','#'],['#','.','.','RB','.','.','.','#'],['#','#','.','.',
+                                                        '.','.','#','#'],['#','#','#','#','#','#','#','#'],),),
+                        axial_description=_F(lower_refl_size=0.2,
+                                             upper_refl_size=0.2,),
+                        nominal_power=100000000.0,
+                        fuel_power_fraction=0.974,);
+
+neutro_model=Model_data(physics='Neutronics',
+                        scale='component',
+                        codeNeutro='COCAGNE',
+                        radial_meshingNeutro=_F(flux_solver='subdivision',
+                                                flux_subdivision=2,
+                                                feedback_solver='subdivision',
+                                                feedback_subdivision=1,),
+                        axial_meshing=_F(lower_refl=1,
+                                         fuel=21,
+                                         upper_refl=1,),);
+
+thermo_model=Model_data(physics='Thermalhydraulics',
+                        scale='component',
+                        code='THYC',
+                        radial_meshing=_F(fluid='subdivision',
+                                          fluid_subdivision=1,
+                                          pellet=8,
+                                          clad=2,),
+                        axial_meshing=_F(lower_refl=1,
+                                         fuel=40,
+                                         upper_refl=1,),);
+
+scenario_data=Scenario_data(initial_power=100.0,
+                            initial_power_unit='% Nominal power',
+                            initial_rod_positions=(('Rodbank@RB',162),('Rodcluster@B04',0)),
+                            scenario_type='RIA',
+                            ejected_rod='B04',
+                            rod_position_program=((0.0,0),(0.1,162)),
+                            post_processing=(('Fuel temperature@Thermalhydraulics','MAX'),('Neutronic power@Neutronics','SUM'),('Fuel temperature@Thermalhydraulics','MED')),);
+#VERSION_CATALOGUE:V_0:FIN VERSION_CATALOGUE
+#CHECKSUM:7826a282bd2c99da86490d6dee3e0fd7  -:FIN CHECKSUM
\ No newline at end of file
diff --git a/Poc/edg32.comm.ref b/Poc/edg32.comm.ref
new file mode 100644 (file)
index 0000000..7d9a605
--- /dev/null
@@ -0,0 +1,78 @@
+
+REF=Assembly(assembly_name='REF',
+             assembly_type='REF',);
+
+U1=Assembly(assembly_name='U1',
+            assembly_type='UOX',
+            assembly_width=0.21504,
+            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.2,
+                                 active_length_end=1.5,),
+            grids=_F(mixing=_F(positions=(1.0807,),
+                               size=0.033,),
+                     non_mixing=_F(positions=(0.026,),
+                                   size=0.033,),),);
+
+RB=RodBank(rodbank_name='RB',
+           step_height=0.008,
+           nsteps=162,);
+
+techno_data=Techno_data(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','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'],),
+                                              rod_map=
+                                              (['#','#','#','#','#','#','#',
+                                                        '#'],['#','#','.','.','.','.','#','#'],['#','.','.','.','RB','.',
+                                                        '.','#'],['#','.','RB','.','.','.','.','#'],['#','.','.','.','.',
+                                                        'RB','.','#'],['#','.','.','RB','.','.','.','#'],['#','#','.','.',
+                                                        '.','.','#','#'],['#','#','#','#','#','#','#','#'],),),
+                        axial_description=_F(lower_refl_size=0.2,
+                                             upper_refl_size=0.2,),
+                        nominal_power=100000000.0,
+                        fuel_power_fraction=0.974,);
+
+neutro_model=Model_data(physics='Neutronics',
+                        scale='component',
+                        code='COCAGNE',
+                        radial_meshing=_F(flux_solver='subdivision',
+                                          flux_subdivision=2,
+                                          feedback_solver='subdivision',
+                                          feedback_subdivision=1,),
+                        axial_meshing=_F(lower_refl=1,
+                                         fuel=21,
+                                         upper_refl=1,),);
+
+thermo_model=Model_data(physics='Thermalhydraulics',
+                        scale='component',
+                        code='THYC',
+                        radial_meshing=_F(fluid='subdivision',
+                                          fluid_subdivision=1,
+                                          pellet=8,
+                                          clad=2,),
+                        axial_meshing=_F(lower_refl=1,
+                                         fuel=40,
+                                         upper_refl=1,),);
+
+scenario_data=Scenario_data(initial_power=100.0,
+                            initial_power_unit='% Nominal power',
+                            initial_rod_positions=(('Rodbank@RB',162),('Rodcluster@B04',0)),
+                            scenario_type='RIA',
+                            ejected_rod='B04',
+                            rod_position_program=((0.0,0),(0.1,162)),
+                            post_processing=(('Fuel temperature@Thermalhydraulics','MAX'),('Neutronic power@Neutronics','SUM'),('Fuel temperature@Thermalhydraulics','MED')),);
+#VERSION_CATALOGUE:V_0:FIN VERSION_CATALOGUE
+#CHECKSUM:5a186f50f4816d725e42d0b050a11764  -:FIN CHECKSUM
\ No newline at end of file
diff --git a/Poc/pocEssai.comm b/Poc/pocEssai.comm
deleted file mode 100644 (file)
index 8d51bf9..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-RodsWorthSetting(version='1.0.0',
-                 virtual_groups=_F(group_name='monG1',
-                                   value_def=('1','2','3',),),
-                 xenon_feedback='locked',
-                 cb='upstream_state',
-                 states=('s1','s2',),
-                 calcul_type='integral_worth',
-                 Integral_O='pas compris',
-                 Integral=_F(step_unit='inserted_steps',
-                             config=_F(key_config='k1',
-                                       value_def=1.0,),),);
-#VERSION_CATALOGUE:V_0:FIN VERSION_CATALOGUE
-#CHECKSUM:7b6880e43794d8314400196519227b02  -:FIN CHECKSUM
\ No newline at end of file
diff --git a/Poc/pocEssai.xml b/Poc/pocEssai.xml
deleted file mode 100644 (file)
index 4952391..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" ?>
-<ns1:Essai xmlns:ns1="http://chercheurs.edf.com/logiciels/Essai" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-       <ns1:RodsWorthSetting xsi:type="ns1:T_RodsWorthSetting">
-               <ns1:version>1.0.0</ns1:version>
-               <ns1:virtual_groups>
-                       <ns1:group_name>monG1</ns1:group_name>
-                       <ns1:value_def>1 2 3</ns1:value_def>
-               </ns1:virtual_groups>
-               <ns1:xenon_feedback>locked</ns1:xenon_feedback>
-               <ns1:cb>upstream_state</ns1:cb>
-               <ns1:states>s1 s2</ns1:states>
-               <ns1:calcul_type>integral_worth</ns1:calcul_type>
-               <ns1:Integral_O>pas compris</ns1:Integral_O>
-               <ns1:Integral>
-                       <ns1:step_unit>inserted_steps</ns1:step_unit>
-                       <ns1:config>
-                               <ns1:key_config>k1</ns1:key_config>
-                               <ns1:value_def>1.0</ns1:value_def>
-                       </ns1:config>
-               </ns1:Integral>
-       </ns1:RodsWorthSetting>
-</ns1:Essai>
diff --git a/Poc/raw/cataPoc_driver.py b/Poc/raw/cataPoc_driver.py
deleted file mode 100644 (file)
index 2af3ae8..0000000
+++ /dev/null
@@ -1,789 +0,0 @@
-# ./raw/cataPoc_driver.py
-# -*- coding: utf-8 -*-
-# PyXB bindings for NM:9c3bd166183fcfc95687f415bcc4a066eb33ac79
-# Generated 2020-11-18 10:41:40.865410 by PyXB version 1.2.5 using Python 3.4.2.final.0
-# Namespace http://chercheurs.edf.com/logiciels/Essai
-
-from __future__ import unicode_literals
-import pyxb
-import pyxb.binding
-import pyxb.binding.saxer
-import io
-import pyxb.utils.utility
-import pyxb.utils.domutils
-import sys
-import pyxb.utils.six as _six
-# Unique identifier for bindings created at the same time
-_GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:42cf5b5e-2982-11eb-b63e-cc3d82d871d8')
-
-# Version of PyXB used to generate the bindings
-_PyXBVersion = '1.2.5'
-# Generated bindings are not compatible across PyXB versions
-if pyxb.__version__ != _PyXBVersion:
-    raise pyxb.PyXBVersionError(_PyXBVersion)
-
-# A holder for module-level binding classes so we can access them from
-# inside class definitions where property names may conflict.
-_module_typeBindings = pyxb.utils.utility.Object()
-
-# Import bindings for namespaces imported into schema
-import pyxb.binding.datatypes
-
-# NOTE: All namespace declarations are reserved within the binding
-Namespace = pyxb.namespace.NamespaceForURI('http://chercheurs.edf.com/logiciels/Essai', create_if_missing=True)
-Namespace.configureCategories(['typeBinding', 'elementBinding'])
-
-def CreateFromDocument (xml_text, default_namespace=None, location_base=None):
-    """Parse the given XML and use the document element to create a
-    Python instance.
-
-    @param xml_text An XML document.  This should be data (Python 2
-    str or Python 3 bytes), or a text (Python 2 unicode or Python 3
-    str) in the L{pyxb._InputEncoding} encoding.
-
-    @keyword default_namespace The L{pyxb.Namespace} instance to use as the
-    default namespace where there is no default namespace in scope.
-    If unspecified or C{None}, the namespace of the module containing
-    this function will be used.
-
-    @keyword location_base: An object to be recorded as the base of all
-    L{pyxb.utils.utility.Location} instances associated with events and
-    objects handled by the parser.  You might pass the URI from which
-    the document was obtained.
-    """
-
-    if pyxb.XMLStyle_saxer != pyxb._XMLStyle:
-        dom = pyxb.utils.domutils.StringToDOM(xml_text)
-        return CreateFromDOM(dom.documentElement, default_namespace=default_namespace)
-    if default_namespace is None:
-        default_namespace = Namespace.fallbackNamespace()
-    saxer = pyxb.binding.saxer.make_parser(fallback_namespace=default_namespace, location_base=location_base)
-    handler = saxer.getContentHandler()
-    xmld = xml_text
-    if isinstance(xmld, _six.text_type):
-        xmld = xmld.encode(pyxb._InputEncoding)
-    saxer.parse(io.BytesIO(xmld))
-    instance = handler.rootObject()
-    return instance
-
-def CreateFromDOM (node, default_namespace=None):
-    """Create a Python instance from the given DOM node.
-    The node tag must correspond to an element declaration in this module.
-
-    @deprecated: Forcing use of DOM interface is unnecessary; use L{CreateFromDocument}."""
-    if default_namespace is None:
-        default_namespace = Namespace.fallbackNamespace()
-    return pyxb.binding.basis.element.AnyCreateFromDOM(node, default_namespace)
-
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_version
-class T_version (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_version')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 7, 1)
-    _Documentation = None
-T_version._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', 'T_version', T_version)
-_module_typeBindings.T_version = T_version
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_group_name
-class T_group_name (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_group_name')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 11, 1)
-    _Documentation = None
-T_group_name._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', 'T_group_name', T_group_name)
-_module_typeBindings.T_group_name = T_group_name
-
-# Atomic simple type: [anonymous]
-class STD_ANON (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = None
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 19, 5)
-    _Documentation = None
-STD_ANON._InitializeFacetMap()
-_module_typeBindings.STD_ANON = STD_ANON
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_xenon_feedback
-class T_xenon_feedback (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_xenon_feedback')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 27, 1)
-    _Documentation = None
-T_xenon_feedback._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_xenon_feedback, enum_prefix=None)
-T_xenon_feedback.locked = T_xenon_feedback._CF_enumeration.addEnumeration(unicode_value='locked', tag='locked')
-T_xenon_feedback.equilibrium = T_xenon_feedback._CF_enumeration.addEnumeration(unicode_value='equilibrium', tag='equilibrium')
-T_xenon_feedback._InitializeFacetMap(T_xenon_feedback._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', 'T_xenon_feedback', T_xenon_feedback)
-_module_typeBindings.T_xenon_feedback = T_xenon_feedback
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_cb
-class T_cb (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_cb')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 33, 1)
-    _Documentation = None
-T_cb._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_cb, enum_prefix=None)
-T_cb.upstream_state = T_cb._CF_enumeration.addEnumeration(unicode_value='upstream_state', tag='upstream_state')
-T_cb.critical = T_cb._CF_enumeration.addEnumeration(unicode_value='critical', tag='critical')
-T_cb.critical_from_previous_state = T_cb._CF_enumeration.addEnumeration(unicode_value='critical_from_previous_state', tag='critical_from_previous_state')
-T_cb._InitializeFacetMap(T_cb._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', 'T_cb', T_cb)
-_module_typeBindings.T_cb = T_cb
-
-# Atomic simple type: [anonymous]
-class STD_ANON_ (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = None
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 44, 5)
-    _Documentation = None
-STD_ANON_._InitializeFacetMap()
-_module_typeBindings.STD_ANON_ = STD_ANON_
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_calcul_type
-class T_calcul_type (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_calcul_type')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 52, 1)
-    _Documentation = None
-T_calcul_type._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_calcul_type, enum_prefix=None)
-T_calcul_type.differential_worth = T_calcul_type._CF_enumeration.addEnumeration(unicode_value='differential_worth', tag='differential_worth')
-T_calcul_type.combination = T_calcul_type._CF_enumeration.addEnumeration(unicode_value='combination', tag='combination')
-T_calcul_type.integral_worth = T_calcul_type._CF_enumeration.addEnumeration(unicode_value='integral_worth', tag='integral_worth')
-T_calcul_type._InitializeFacetMap(T_calcul_type._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', 'T_calcul_type', T_calcul_type)
-_module_typeBindings.T_calcul_type = T_calcul_type
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_Integral_O
-class T_Integral_O (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_Integral_O')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 59, 1)
-    _Documentation = None
-T_Integral_O._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', 'T_Integral_O', T_Integral_O)
-_module_typeBindings.T_Integral_O = T_Integral_O
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_step_unit
-class T_step_unit (pyxb.binding.datatypes.string, pyxb.binding.basis.enumeration_mixin):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_step_unit')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 63, 1)
-    _Documentation = None
-T_step_unit._CF_enumeration = pyxb.binding.facets.CF_enumeration(value_datatype=T_step_unit, enum_prefix=None)
-T_step_unit.inserted_steps = T_step_unit._CF_enumeration.addEnumeration(unicode_value='inserted_steps', tag='inserted_steps')
-T_step_unit.extracted_steps = T_step_unit._CF_enumeration.addEnumeration(unicode_value='extracted_steps', tag='extracted_steps')
-T_step_unit._InitializeFacetMap(T_step_unit._CF_enumeration)
-Namespace.addCategoryObject('typeBinding', 'T_step_unit', T_step_unit)
-_module_typeBindings.T_step_unit = T_step_unit
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_key_config
-class T_key_config (pyxb.binding.datatypes.string):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_key_config')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 69, 1)
-    _Documentation = None
-T_key_config._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', 'T_key_config', T_key_config)
-_module_typeBindings.T_key_config = T_key_config
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}T_value_def_1
-class T_value_def_1 (pyxb.binding.datatypes.float):
-
-    """An atomic simple type."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_value_def_1')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 73, 1)
-    _Documentation = None
-T_value_def_1._CF_minInclusive = pyxb.binding.facets.CF_minInclusive(value_datatype=T_value_def_1, value=pyxb.binding.datatypes.float(0.0))
-T_value_def_1._InitializeFacetMap(T_value_def_1._CF_minInclusive)
-Namespace.addCategoryObject('typeBinding', 'T_value_def_1', T_value_def_1)
-_module_typeBindings.T_value_def_1 = T_value_def_1
-
-# Atomic simple type: {http://chercheurs.edf.com/logiciels/Essai}PNEFdico_Essai
-class PNEFdico_Essai (pyxb.binding.datatypes.string):
-
-    """{'T_value_def': {'_value_def_config_Integral_RodsWorthSetting': 'T_value_def_1'}}
-               """
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'PNEFdico_Essai')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 126, 1)
-    _Documentation = "{'T_value_def': {'_value_def_config_Integral_RodsWorthSetting': 'T_value_def_1'}}\n\t\t"
-PNEFdico_Essai._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', 'PNEFdico_Essai', PNEFdico_Essai)
-_module_typeBindings.PNEFdico_Essai = PNEFdico_Essai
-
-# List simple type: [anonymous]
-# superclasses pyxb.binding.datatypes.anySimpleType
-class STD_ANON_2 (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of STD_ANON."""
-
-    _ExpandedName = None
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 17, 3)
-    _Documentation = None
-
-    _ItemType = STD_ANON
-STD_ANON_2._InitializeFacetMap()
-_module_typeBindings.STD_ANON_2 = STD_ANON_2
-
-# List simple type: [anonymous]
-# superclasses pyxb.binding.datatypes.anySimpleType
-class STD_ANON_3 (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of STD_ANON_."""
-
-    _ExpandedName = None
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 42, 3)
-    _Documentation = None
-
-    _ItemType = STD_ANON_
-STD_ANON_3._InitializeFacetMap()
-_module_typeBindings.STD_ANON_3 = STD_ANON_3
-
-# List simple type: {http://chercheurs.edf.com/logiciels/Essai}T_value_def
-# superclasses STD_ANON_2
-class T_value_def (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of STD_ANON."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_value_def')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 15, 1)
-    _Documentation = None
-
-    _ItemType = STD_ANON
-T_value_def._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', 'T_value_def', T_value_def)
-_module_typeBindings.T_value_def = T_value_def
-
-# List simple type: {http://chercheurs.edf.com/logiciels/Essai}T_states
-# superclasses STD_ANON_3
-class T_states (pyxb.binding.basis.STD_list):
-
-    """Simple type that is a list of STD_ANON_."""
-
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_states')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 40, 1)
-    _Documentation = None
-
-    _ItemType = STD_ANON_
-T_states._InitializeFacetMap()
-Namespace.addCategoryObject('typeBinding', 'T_states', T_states)
-_module_typeBindings.T_states = T_states
-
-# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_virtual_groups with content type ELEMENT_ONLY
-class T_virtual_groups (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_virtual_groups with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_virtual_groups')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 78, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}group_name uses Python identifier group_name
-    __group_name = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'group_name'), 'group_name', '__httpchercheurs_edf_comlogicielsEssai_T_virtual_groups_httpchercheurs_edf_comlogicielsEssaigroup_name', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 80, 3), )
-
-    
-    group_name = property(__group_name.value, __group_name.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}value_def uses Python identifier value_def
-    __value_def = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'value_def'), 'value_def', '__httpchercheurs_edf_comlogicielsEssai_T_virtual_groups_httpchercheurs_edf_comlogicielsEssaivalue_def', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 81, 3), )
-
-    
-    value_def = property(__value_def.value, __value_def.set, None, None)
-
-    _ElementMap.update({
-        __group_name.name() : __group_name,
-        __value_def.name() : __value_def
-    })
-    _AttributeMap.update({
-        
-    })
-_module_typeBindings.T_virtual_groups = T_virtual_groups
-Namespace.addCategoryObject('typeBinding', 'T_virtual_groups', T_virtual_groups)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_config with content type ELEMENT_ONLY
-class T_config (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_config with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_config')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 89, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}key_config uses Python identifier key_config
-    __key_config = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'key_config'), 'key_config', '__httpchercheurs_edf_comlogicielsEssai_T_config_httpchercheurs_edf_comlogicielsEssaikey_config', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 91, 3), )
-
-    
-    key_config = property(__key_config.value, __key_config.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}value_def uses Python identifier value_def
-    __value_def = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'value_def'), 'value_def', '__httpchercheurs_edf_comlogicielsEssai_T_config_httpchercheurs_edf_comlogicielsEssaivalue_def', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 92, 3), )
-
-    
-    value_def = property(__value_def.value, __value_def.set, None, None)
-
-    _ElementMap.update({
-        __key_config.name() : __key_config,
-        __value_def.name() : __value_def
-    })
-    _AttributeMap.update({
-        
-    })
-_module_typeBindings.T_config = T_config
-Namespace.addCategoryObject('typeBinding', 'T_config', T_config)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Integral with content type ELEMENT_ONLY
-class T_Integral (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Integral with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_Integral')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 95, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}step_unit uses Python identifier step_unit
-    __step_unit = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'step_unit'), 'step_unit', '__httpchercheurs_edf_comlogicielsEssai_T_Integral_httpchercheurs_edf_comlogicielsEssaistep_unit', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 97, 3), )
-
-    
-    step_unit = property(__step_unit.value, __step_unit.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}config uses Python identifier config
-    __config = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'config'), 'config', '__httpchercheurs_edf_comlogicielsEssai_T_Integral_httpchercheurs_edf_comlogicielsEssaiconfig', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 98, 3), )
-
-    
-    config = property(__config.value, __config.set, None, None)
-
-    _ElementMap.update({
-        __step_unit.name() : __step_unit,
-        __config.name() : __config
-    })
-    _AttributeMap.update({
-        
-    })
-_module_typeBindings.T_Integral = T_Integral
-Namespace.addCategoryObject('typeBinding', 'T_Integral', T_Integral)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_step_Essai with content type EMPTY
-class T_step_Essai (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_step_Essai with content type EMPTY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_EMPTY
-    _Abstract = True
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_step_Essai')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 118, 1)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    _ElementMap.update({
-        
-    })
-    _AttributeMap.update({
-        
-    })
-_module_typeBindings.T_step_Essai = T_step_Essai
-Namespace.addCategoryObject('typeBinding', 'T_step_Essai', T_step_Essai)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Essai with content type ELEMENT_ONLY
-class T_Essai (pyxb.binding.basis.complexTypeDefinition):
-    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_Essai with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_Essai')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 121, 2)
-    _ElementMap = {}
-    _AttributeMap = {}
-    # Base type is pyxb.binding.datatypes.anyType
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}step_Essai uses Python identifier step_Essai
-    __step_Essai = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), 'step_Essai', '__httpchercheurs_edf_comlogicielsEssai_T_Essai_httpchercheurs_edf_comlogicielsEssaistep_Essai', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 119, 1), )
-
-    
-    step_Essai = property(__step_Essai.value, __step_Essai.set, None, None)
-
-    _ElementMap.update({
-        __step_Essai.name() : __step_Essai
-    })
-    _AttributeMap.update({
-        
-    })
-_module_typeBindings.T_Essai = T_Essai
-Namespace.addCategoryObject('typeBinding', 'T_Essai', T_Essai)
-
-
-# Complex type {http://chercheurs.edf.com/logiciels/Essai}T_RodsWorthSetting with content type ELEMENT_ONLY
-class T_RodsWorthSetting (T_step_Essai):
-    """Complex type {http://chercheurs.edf.com/logiciels/Essai}T_RodsWorthSetting with content type ELEMENT_ONLY"""
-    _TypeDefinition = None
-    _ContentTypeTag = pyxb.binding.basis.complexTypeDefinition._CT_ELEMENT_ONLY
-    _Abstract = False
-    _ExpandedName = pyxb.namespace.ExpandedName(Namespace, 'T_RodsWorthSetting')
-    _XSDLocation = pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 101, 1)
-    _ElementMap = T_step_Essai._ElementMap.copy()
-    _AttributeMap = T_step_Essai._AttributeMap.copy()
-    # Base type is T_step_Essai
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}Integral_O uses Python identifier Integral_O
-    __Integral_O = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Integral_O'), 'Integral_O', '__httpchercheurs_edf_comlogicielsEssai_T_RodsWorthSetting_httpchercheurs_edf_comlogicielsEssaiIntegral_O', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 86, 3), )
-
-    
-    Integral_O = property(__Integral_O.value, __Integral_O.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}version uses Python identifier version
-    __version = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'version'), 'version', '__httpchercheurs_edf_comlogicielsEssai_T_RodsWorthSetting_httpchercheurs_edf_comlogicielsEssaiversion', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 105, 3), )
-
-    
-    version = property(__version.value, __version.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}virtual_groups uses Python identifier virtual_groups
-    __virtual_groups = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'virtual_groups'), 'virtual_groups', '__httpchercheurs_edf_comlogicielsEssai_T_RodsWorthSetting_httpchercheurs_edf_comlogicielsEssaivirtual_groups', True, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 106, 3), )
-
-    
-    virtual_groups = property(__virtual_groups.value, __virtual_groups.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}xenon_feedback uses Python identifier xenon_feedback
-    __xenon_feedback = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'xenon_feedback'), 'xenon_feedback', '__httpchercheurs_edf_comlogicielsEssai_T_RodsWorthSetting_httpchercheurs_edf_comlogicielsEssaixenon_feedback', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 107, 3), )
-
-    
-    xenon_feedback = property(__xenon_feedback.value, __xenon_feedback.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}cb uses Python identifier cb
-    __cb = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'cb'), 'cb', '__httpchercheurs_edf_comlogicielsEssai_T_RodsWorthSetting_httpchercheurs_edf_comlogicielsEssaicb', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 108, 3), )
-
-    
-    cb = property(__cb.value, __cb.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}states uses Python identifier states
-    __states = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'states'), 'states', '__httpchercheurs_edf_comlogicielsEssai_T_RodsWorthSetting_httpchercheurs_edf_comlogicielsEssaistates', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 109, 3), )
-
-    
-    states = property(__states.value, __states.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}calcul_type uses Python identifier calcul_type
-    __calcul_type = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'calcul_type'), 'calcul_type', '__httpchercheurs_edf_comlogicielsEssai_T_RodsWorthSetting_httpchercheurs_edf_comlogicielsEssaicalcul_type', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 110, 3), )
-
-    
-    calcul_type = property(__calcul_type.value, __calcul_type.set, None, None)
-
-    
-    # Element {http://chercheurs.edf.com/logiciels/Essai}Integral uses Python identifier Integral
-    __Integral = pyxb.binding.content.ElementDeclaration(pyxb.namespace.ExpandedName(Namespace, 'Integral'), 'Integral', '__httpchercheurs_edf_comlogicielsEssai_T_RodsWorthSetting_httpchercheurs_edf_comlogicielsEssaiIntegral', False, pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 112, 3), )
-
-    
-    Integral = property(__Integral.value, __Integral.set, None, None)
-
-    _ElementMap.update({
-        __Integral_O.name() : __Integral_O,
-        __version.name() : __version,
-        __virtual_groups.name() : __virtual_groups,
-        __xenon_feedback.name() : __xenon_feedback,
-        __cb.name() : __cb,
-        __states.name() : __states,
-        __calcul_type.name() : __calcul_type,
-        __Integral.name() : __Integral
-    })
-    _AttributeMap.update({
-        
-    })
-_module_typeBindings.T_RodsWorthSetting = T_RodsWorthSetting
-Namespace.addCategoryObject('typeBinding', 'T_RodsWorthSetting', T_RodsWorthSetting)
-
-
-step_Essai = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), T_step_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 119, 1))
-Namespace.addCategoryObject('elementBinding', step_Essai.name().localName(), step_Essai)
-
-Essai = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'Essai'), T_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 120, 1))
-Namespace.addCategoryObject('elementBinding', Essai.name().localName(), Essai)
-
-RodsWorthSetting = pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'RodsWorthSetting'), T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 117, 1))
-Namespace.addCategoryObject('elementBinding', RodsWorthSetting.name().localName(), RodsWorthSetting)
-
-
-
-T_virtual_groups._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'group_name'), T_group_name, scope=T_virtual_groups, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 80, 3)))
-
-T_virtual_groups._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'value_def'), T_value_def, scope=T_virtual_groups, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 81, 3)))
-
-def _BuildAutomaton ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton
-    del _BuildAutomaton
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_virtual_groups._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'group_name')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 80, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_virtual_groups._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'value_def')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 81, 3))
-    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    st_1._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_virtual_groups._Automaton = _BuildAutomaton()
-
-
-
-
-T_config._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'key_config'), T_key_config, scope=T_config, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 91, 3)))
-
-T_config._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'value_def'), T_value_def_1, scope=T_config, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 92, 3)))
-
-def _BuildAutomaton_ ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_
-    del _BuildAutomaton_
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_config._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'key_config')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 91, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_config._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'value_def')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 92, 3))
-    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    st_1._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_config._Automaton = _BuildAutomaton_()
-
-
-
-
-T_Integral._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_unit'), T_step_unit, scope=T_Integral, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 97, 3)))
-
-T_Integral._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'config'), T_config, scope=T_Integral, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 98, 3)))
-
-def _BuildAutomaton_2 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_2
-    del _BuildAutomaton_2
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 98, 3))
-    counters.add(cc_0)
-    states = []
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_Integral._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'step_unit')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 97, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_0, False))
-    symbol = pyxb.binding.content.ElementUse(T_Integral._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'config')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 98, 3))
-    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    st_1._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_Integral._Automaton = _BuildAutomaton_2()
-
-
-
-
-T_Essai._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'step_Essai'), T_step_Essai, scope=T_Essai, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 119, 1)))
-
-def _BuildAutomaton_3 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_3
-    del _BuildAutomaton_3
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 122, 4))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 123, 3))
-    counters.add(cc_1)
-    states = []
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_0, False))
-    final_update.add(fac.UpdateInstruction(cc_1, False))
-    symbol = pyxb.binding.content.ElementUse(T_Essai._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'step_Essai')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 123, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    transitions = []
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_0, True),
-        fac.UpdateInstruction(cc_1, False) ]))
-    transitions.append(fac.Transition(st_0, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    st_0._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, True, containing_state=None)
-T_Essai._Automaton = _BuildAutomaton_3()
-
-
-
-
-T_RodsWorthSetting._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'Integral_O'), T_Integral_O, scope=T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 86, 3), unicode_default='pas compris'))
-
-T_RodsWorthSetting._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'version'), T_version, scope=T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 105, 3), unicode_default='1.0.0'))
-
-T_RodsWorthSetting._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'virtual_groups'), T_virtual_groups, scope=T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 106, 3)))
-
-T_RodsWorthSetting._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'xenon_feedback'), T_xenon_feedback, scope=T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 107, 3)))
-
-T_RodsWorthSetting._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'cb'), T_cb, scope=T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 108, 3)))
-
-T_RodsWorthSetting._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'states'), T_states, scope=T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 109, 3)))
-
-T_RodsWorthSetting._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'calcul_type'), T_calcul_type, scope=T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 110, 3)))
-
-T_RodsWorthSetting._AddElement(pyxb.binding.basis.element(pyxb.namespace.ExpandedName(Namespace, 'Integral'), T_Integral, scope=T_RodsWorthSetting, location=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 112, 3)))
-
-def _BuildAutomaton_4 ():
-    # Remove this helper function from the namespace after it is invoked
-    global _BuildAutomaton_4
-    del _BuildAutomaton_4
-    import pyxb.utils.fac as fac
-
-    counters = set()
-    cc_0 = fac.CounterCondition(min=0, max=None, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 106, 3))
-    counters.add(cc_0)
-    cc_1 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 111, 3))
-    counters.add(cc_1)
-    cc_2 = fac.CounterCondition(min=0, max=1, metadata=pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 112, 3))
-    counters.add(cc_2)
-    states = []
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_RodsWorthSetting._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'version')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 105, 3))
-    st_0 = fac.State(symbol, is_initial=True, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_0)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_RodsWorthSetting._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'virtual_groups')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 106, 3))
-    st_1 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_1)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_RodsWorthSetting._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'xenon_feedback')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 107, 3))
-    st_2 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_2)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_RodsWorthSetting._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'cb')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 108, 3))
-    st_3 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_3)
-    final_update = None
-    symbol = pyxb.binding.content.ElementUse(T_RodsWorthSetting._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'states')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 109, 3))
-    st_4 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_4)
-    final_update = set()
-    symbol = pyxb.binding.content.ElementUse(T_RodsWorthSetting._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'calcul_type')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 110, 3))
-    st_5 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_5)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_1, False))
-    symbol = pyxb.binding.content.ElementUse(T_RodsWorthSetting._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'Integral_O')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 86, 3))
-    st_6 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_6)
-    final_update = set()
-    final_update.add(fac.UpdateInstruction(cc_2, False))
-    symbol = pyxb.binding.content.ElementUse(T_RodsWorthSetting._UseForTag(pyxb.namespace.ExpandedName(Namespace, 'Integral')), pyxb.utils.utility.Location('/home/A96028/QT5GitEficasTravail/eficas/Poc/cataPoc.xsd', 112, 3))
-    st_7 = fac.State(symbol, is_initial=False, final_update=final_update, is_unordered_catenation=False)
-    states.append(st_7)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-         ]))
-    transitions.append(fac.Transition(st_2, [
-         ]))
-    st_0._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_1, [
-        fac.UpdateInstruction(cc_0, True) ]))
-    transitions.append(fac.Transition(st_2, [
-        fac.UpdateInstruction(cc_0, False) ]))
-    st_1._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_3, [
-         ]))
-    st_2._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_4, [
-         ]))
-    st_3._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_5, [
-         ]))
-    st_4._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_6, [
-         ]))
-    transitions.append(fac.Transition(st_7, [
-         ]))
-    st_5._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_6, [
-        fac.UpdateInstruction(cc_1, True) ]))
-    transitions.append(fac.Transition(st_7, [
-        fac.UpdateInstruction(cc_1, False) ]))
-    st_6._set_transitionSet(transitions)
-    transitions = []
-    transitions.append(fac.Transition(st_7, [
-        fac.UpdateInstruction(cc_2, True) ]))
-    st_7._set_transitionSet(transitions)
-    return fac.Automaton(states, counters, False, containing_state=None)
-T_RodsWorthSetting._Automaton = _BuildAutomaton_4()
-
-
-RodsWorthSetting._setSubstitutionGroup(step_Essai)
index c28e2147621543328920cd6e8af35198140e26e5..2f78a0df0825d592c886d581e1a8a57aafc2dda8 100644 (file)
@@ -1,12 +1,62 @@
-from cataPoc_driver import *
+from cataPocRN_driver import *
+import cataPocRN_driver as m 
 
 pyxb.GlobalValidationConfig._setContentInfluencesGeneration(pyxb.GlobalValidationConfig.ALWAYS)
 pyxb.GlobalValidationConfig._setInvalidElementInContent(pyxb.GlobalValidationConfig.RAISE_EXCEPTION)
 pyxb.GlobalValidationConfig._setOrphanElementInContent(pyxb.GlobalValidationConfig.RAISE_EXCEPTION)
 
+jdd = CreateFromDocument(open('edg32.xml').read())
+print (jdd.toDOM().toprettyxml())
 
-jdd = CreateFromDocument(open('toto.xml').read())
-#print (jdd.toDOM().toprettyxml())
-print ('voici la valeur de xenon_feedback', jdd.step_Essai[0].xenon_feedback, '\n') 
+techno=jdd.step_Essai[3]
+techno.assembly_list
+techno.rodbank_list
+techno.radial_description.nb_assembly
+techno.radial_description.xaxis
+techno.radial_description.yaxis
+techno.radial_description.assembly_map.line[:]
+techno.radial_description.assembly_map.line[0]
+techno.radial_description.assembly_map.line[1]
+techno.radial_description.assembly_map.line[1][3]
+print(techno.toDOM().toprettyxml())
 
+monAssembly1=T_Assembly('REF','REF')
+#Sans élément racine, il faut spécifier un element_name
+print(monAssembly1.toDOM(element_name='essai').toprettyxml())
+#Génère une erreur attendue :
+monAssembly1=T_Assembly('REF','REFP')
+
+#Avec l'élément racine, plus besoin de spécifier un element_name
+m.Essai(monAssembly1).toxml()
+print(m.Essai(monAssembly1).toDOM().toprettyxml())
+
+l1=m.T_assembly_map_line(('REF','REF','REF','REF','REF','REF','REF','REF'))
+l2=m.T_assembly_map_line(('REF','REF','REF','REF','REF','REF','REF','REF'))
+l3=m.T_assembly_map_line(('REF','REF','REF','REF','REF','REF','REF','REF'))
+l4=m.T_assembly_map_line(('REF','REF','REF','REF','REF','REF','REF','REF'))
+l5=m.T_assembly_map_line(('REF','REF','REF','REF','REF','REF','REF','REF'))
+l6=m.T_assembly_map_line(('REF','REF','REF','REF','REF','REF','REF','REF'))
+l7=m.T_assembly_map_line(('REF','REF','REF','REF','REF','REF','REF','REF'))
+l8=m.T_assembly_map_line(('REF','REF','REF','REF','REF','REF','REF','REF'))
+ma=m.T_assembly_map(l1,l2,l3,l4,l5,l6,l7)
+print (ma.toDOM(element_name='Essai'))
+ma.validateBinding()
+
+ma=m.T_assembly_map(l1,l2,l3,l4,l5,l6,l7,l8)
+print (ma.toDOM(element_name='Essai'))
+
+ll1=m.T_rod_map_line(['#','#','#','#','#','#','#','#'])
+ll2=ll1
+ll3=ll1
+ll4=ll1
+ll5=ll1
+ll6=ll1
+ll7=ll1
+ll8=ll1
+ro=m.T_rod_map(ll1,ll2,ll3,ll4,ll5,ll6,ll7,ll8)
+print (ro.toDOM(element_name='essai2').toprettyxml())
+
+nb=m.T_nb_assembly(6)
+xa=m.T_xaxis(('RW', 'F', 'E', 'D', 'C', 'B', 'A', 'RE'))
+ya=m.T_yaxis(['RS', '06', '05', '04', '03', '02', '01', 'RN'])