Salome HOME
Merge branch 'master' into V9_merge
[tools/eficas.git] / VirtualPolymer / VP_Cata_V2.py
index ecc96275589117157eb124a98bb45e870ab28a98..6aede499c461a1374379181677a2fa9d19f71e2f 100644 (file)
@@ -7,22 +7,47 @@ import listesDB
 \r
 monDico= { 'Equation_Liste' : ('initiation', 'propagation', 'termination', 'stabilization'),\r
            'Modele_TechnicalUse' : ('cable', 'coating', 'pipes'),\r
+           'Aging_Factor' : { 'predefinedSimulationTime' : ('40years BR top', '40years BR bottom')},\r
+           'Boundary_Conditions' : ('flux_volume','flux_surface','constant_constration','convection_flux'),\r
+           'postTraitement_Typ' : ('chimique','mecanique','physique'),\r
          }\r
 \r
 monModele=listesDB.sModele().monModele\r
+monPost=listesDB.sModele().monPost\r
+\r
+import types\r
+class Tuple:\r
+    def __init__(self,ntuple):\r
+        self.ntuple=ntuple\r
+\r
+    def __convert__(self,valeur):\r
+        if type(valeur) == types.StringType:\r
+            return None\r
+        if len(valeur) != self.ntuple:\r
+            return None\r
+        return valeur\r
+\r
+    def info(self):\r
+        return "Tuple de %s elements" % self.ntuple\r
+\r
 \r
 JdC = JDC_CATA(code='VP',\r
                execmodul=None,\r
                 )\r
 \r
-  \r
+\r
 #---------------------------------\r
 Equation = PROC (nom="Equation",\r
       op=None,\r
 #---------------------------------\r
       Equation_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base") ),\r
+      #b_suite = BLOC(condition = "Equation_DB ==  'My data base' ",\r
       Equation_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show equation database", "Equation creation"),),\r
-      \r
+      #),\r
+      #b_suite_2 = BLOC(condition = "Equation_DB ==  'Approved data base' ",\r
+      #Equation_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show equation database", ),),\r
+      #),\r
+\r
 #     ---------------------------------------------------------------------------\r
        b_type_show = BLOC(condition = " Equation_Type == 'Show equation database'",\r
 #      ---------------------------------------------------------------------------\r
@@ -37,9 +62,10 @@ Equation = PROC (nom="Equation",
          ), # Fin b_reaction_type\r
 \r
          ListeEquation = SIMP(statut='o', typ='TXM',  homo='SansOrdreNiDoublon',siValide=lienDB.afficheValeurEquation),\r
+         #ListeEquation = SIMP(statut='o', typ='TXM',  homo='SansOrdreNiDoublon'),\r
          b_modification = BLOC(condition = " ListeEquation != None ",\r
            modification = SIMP(typ = bool, statut = 'o',defaut = False, fr='toto', ang='toto en anglais', siValide=lienDB.instancieChemicalFormulation),\r
-           \r
+\r
            b_modif = BLOC(condition = "modification == True",\r
             Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste'],),\r
             Aging_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max='**', homo='SansOrdreNiDoublon', into=('All', 'thermo', 'radio'),),\r
@@ -55,8 +81,9 @@ Equation = PROC (nom="Equation",
                   ),# fin ConstanteOptionnelle\r
             Commentaire =  SIMP (statut = 'f', typ = 'TXM', defaut = ' '),\r
 \r
+\r
            ),# fin b_modif\r
-         \r
+\r
          ), # fin b_modification\r
        ), # Fin b_type_show\r
 \r
@@ -65,7 +92,7 @@ Equation = PROC (nom="Equation",
       b_type_creation = BLOC(condition = " Equation_Type == 'Equation creation'",\r
 #         ---------------------------------------------------------------------------\r
          Equation_Modification = FACT ( statut = 'o',\r
\r
+\r
             ChemicalFormulation = SIMP(statut='o', typ='TXM', defaut = 'POOH -> 2P'),\r
 \r
             Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste'],),\r
@@ -102,11 +129,11 @@ Equation = PROC (nom="Equation",
                   ),# fin ConstanteOptionnelle\r
             ), # fin constante\r
             Commentaire =  SIMP (statut = 'f', typ = 'TXM', defaut = ' '),\r
-                  \r
+\r
          ), # Fin Equation_Modification\r
         ),  # fin b_type_creation\r
-                 \r
-      \r
+\r
+\r
 ) # Fin Equation\r
 \r
 #---------------------------------\r
@@ -117,43 +144,160 @@ Modele = PROC (nom="Modele",
 #     ---------------------------------------------------------------------------\r
       b_type_creation = BLOC(condition = " Modele_Type == 'Modele creation'",\r
 #         ---------------------------------------------------------------------------\r
-        technicalUse= SIMP(statut= 'o',typ= 'TXM',into=monDico['Modele_TechnicalUse'],defaut=monModele.technical_use ),\r
-        modeleName=SIMP(statut='o',typ='TXM',defaut=monModele.nom,),\r
-        material=SIMP(statut='o',typ='TXM',defaut=monModele.materiaux[0],),\r
-        stabilizer = SIMP(typ = bool, statut = 'o',defaut = monModele.stabilise),\r
-        model_developed_by_for_EDF = SIMP(typ = bool, statut = 'o',defaut = monModele.dvt_EDF[0]),\r
-        documentation=SIMP(statut='o',typ='TXM',defaut=monModele.reference,),\r
-        \r
+        ID=FACT(statut='o',\r
+          technicalUse= SIMP(statut= 'o',typ= 'TXM',into=monDico['Modele_TechnicalUse'],defaut=monModele.technical_use ),\r
+          modeleName=SIMP(statut='o',typ='TXM',defaut=monModele.nom,),\r
+          material=SIMP(statut='o',typ='TXM',defaut=monModele.materiaux[0],),\r
+          agingType=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon', into=('All', 'thermo', 'radio'), defaut=monModele.type_vieil),\r
+          stabilizer = SIMP(typ = bool, statut = 'o',defaut = monModele.stabilise),\r
+          material_thickness = SIMP(typ = 'TXM', statut = 'o',defaut = monModele.thickness, into = ['thin','thick']),\r
+          # il faudrait que position=global_jdc fonctionne\r
+          model_developed_by_for_EDF = SIMP(typ = bool, statut = 'o',defaut = monModele.dvt_EDF[0]),\r
+          documentation=SIMP(statut='o',typ='TXM',defaut=monModele.reference,),\r
+\r
+       ), # fin ID\r
        # ajouter la liste des equations et le remove (il faut garder ceux qu on a enlever)\r
-      \r
+\r
+      Chemical_Equation = FACT( statut='o',\r
+       Initial_Equation_List=SIMP(statut='o',typ='TXM',max="**",homo='SansOrdreNiDoublon',into=[],defaut=[], siValide=lienDB.recupereModeleEquation),\r
 \r
        AjoutEquation=SIMP(statut= 'o',typ= bool, defaut=False, siValide=lienDB.recupereModeleEquation),\r
        b_ajout_equation = BLOC(condition = " AjoutEquation == True",\r
-          listeEquation_initiation=SIMP(statut='o', typ='TXM',homo='SansOrdreNiDoublon', max='**', min=0, defaut=[] ),\r
-          listeEquation_propagation=SIMP(statut='o', typ='TXM',homo='SansOrdreNiDoublon', max='**', min=0, defaut=[] ),\r
-          listeEquation_termination=SIMP(statut='o', typ='TXM',homo='SansOrdreNiDoublon', max='**', min=0, defaut=[] ),\r
-          listeEquation_stabilization=SIMP(statut='o',typ='TXM', homo='SansOrdreNiDoublon', max='**', min=0, defaut=[] ),\r
+          listeEquation_initiation=SIMP(statut='o', typ='TXM',homo='SansOrdreNiDoublon', max='**', min=0, defaut=[],siValide=lienDB.ajoutDUneEquation ),\r
+          listeEquation_propagation=SIMP(statut='o', typ='TXM',homo='SansOrdreNiDoublon', max='**', min=0, defaut=[],siValide=lienDB.ajoutDUneEquation ),\r
+          listeEquation_termination=SIMP(statut='o', typ='TXM',homo='SansOrdreNiDoublon', max='**', min=0, defaut=[],siValide=lienDB.ajoutDUneEquation ),\r
+          listeEquation_stabilization=SIMP(statut='o',typ='TXM', homo='SansOrdreNiDoublon', max='**', min=0, defaut=[],siValide=lienDB.ajoutDUneEquation ),\r
        ),# fin b_ajout_equation\r
-       \r
+\r
+      ), # fin Equation\r
         # coefficients monModele.coef = liste de dictionnaire mais il faut prendre que le 0\r
         # on enleve ceux qui commence par D, S et B(casse imprtante)\r
         # la clef est le coef, puis les valeurs\r
 \r
-        Aging_Type=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon', into=('All', 'thermo', 'radio'), defaut=monModele.type_vieil),\r
-        Diffusion = SIMP(typ = bool, statut = 'o',defaut = monModele.diffusion,siValide = lienDB.prepareDiffusion),\r
+\r
+      #b_material_thickness =  BLOC(condition = "material_thickness == 'thick'",\r
+      # si position=global fonctionne\r
+        Transport = FACT( statut = 'o',\r
+        #Diffusion = SIMP(typ = bool, statut = 'o',defaut = monModele.diffusion,siValide = lienDB.prepareDiffusion),\r
+        Diffusion = SIMP(typ = bool, statut = 'o',defaut = False ,siValide = lienDB.prepareDiffusion),\r
 \r
         b_diffusion = BLOC(condition = " Diffusion == True",\r
-         #coefficients monModele.coef = liste de dictionnaire mais il faut prendre que le 0\r
-        # on met ceux qui commence par D, S et pas les B ni les aitres( casse imprtante)\r
-           listeProduitPourLaDiffusion=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = monModele.param_ini.keys(),siValide=lienDB.ajouteDiffusion), \r
-       ),  # fin b_diffusion\r
\r
-       ),  # fin b_type_creation\r
+           listeProduitPourLaDiffusion=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = [],siValide=lienDB.ajouteDiffusion),\r
+          ),  # fin b_diffusion\r
+\r
+        Evaporation = SIMP(typ = bool, statut = 'o',defaut = False ,siValide = lienDB.prepareDiffusion),\r
+        b_evaporation = BLOC(condition = " Evaporation == True",\r
+           listeProduitPourLEvaporation=SIMP(statut='o', typ='TXM', max='**', min=1,homo='SansOrdreNiDoublon', into = [],siValide=lienDB.ajouteEvaporation),\r
+         ),  # fin b_evaporation\r
+\r
+\r
+         ),  # fin TRANSPORT\r
+       #),  # fin b_material_thickness\r
+\r
+      Coefficients = FACT( statut = 'o',\r
+        Coef_k2  = SIMP (statut ='o', typ='R'),\r
+        Coef_ku1 = SIMP (statut ='o', typ=Tuple(2),validators = VerifTypeTuple(('R','R')),),\r
+      ),\r
+      Parametres_Initiaux = FACT( statut = 'o',\r
+        Param_POOH=SIMP (statut ='o', typ='R'),\r
+        # La liste est la meme que le INTO des listeProduitsPourlaDiffusion\r
+        # la valeur par defaut si elle existe est contenue dans modele.param_ini['POOH']\r
+      ),\r
 \r
 \r
        #AjoutEquation=Fact(statut='f',\r
        #     Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste'],siValide=lienDB.recupereModeleEquation),\r
        #), # fin AjoutEquation\r
+      ), # fin Creation\r
+#     ---------------------------------------------------------------------------\r
+      b_type_modification = BLOC(condition = " Modele_Type == 'Show modele database'",\r
+#         ---------------------------------------------------------------------------\r
+          technicalUse= SIMP(statut= 'o',typ= 'TXM',into=monDico['Modele_TechnicalUse'],siValide=lienDB.creeListeMateriauxSelonModele),\r
+          b_technicalUse = BLOC (condition = 'technicalUse != None and technicalUse != ""',\r
+            material= SIMP (statut ='o', typ='TXM',siValide=lienDB.creeListeModelesPossibles),\r
+            modele= SIMP (statut ='o', typ='TXM',siValide=lienDB.choisitModele),\r
+            b_modele = BLOC (condition = 'modele != None and modele != ""',\r
+              action = SIMP (statut ='o', typ='TXM',into = ['display','use','modify'], siValide=lienDB.choisitActionModele),\r
+#     ---------------------------------------------------------------------------\r
+           b_type_modify = BLOC(condition = " action == 'modify'",\r
+#         ---------------------------------------------------------------------------\r
+          ID=FACT(statut='o',\r
+          modeleName=SIMP(statut='o',typ='TXM'),\r
+          technicalUse= SIMP(statut= 'o',typ= 'TXM', into=monDico['Modele_TechnicalUse'] ),\r
+          material=SIMP(statut='o',typ='TXM'),\r
+          agingType=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon', into=('All', 'thermo', 'radio')),\r
+          stabilizer = SIMP(typ = bool, statut = 'o',),\r
+          material_thickness = SIMP(typ = 'TXM', statut = 'o', into = ['thin','thick']),\r
+          # il faudrait que position=global_jdc fonctionne\r
+          model_developed_by_for_EDF = SIMP(typ = bool, statut = 'o',),\r
+          documentation=SIMP(statut='o',typ='TXM',),\r
+\r
+\r
+# il faut recopier toute la suite en changeant eventuellement le nom du modele\r
+# il faut cocher toutes les equations par defaut\r
+\r
+              ), # fin ID\r
+             ), # fin b_type_modify\r
+#     ---------------------------------------------------------------------------\r
+           b_type_use = BLOC(condition = " action == 'use'",\r
+#         ---------------------------------------------------------------------------\r
+             simulationName=SIMP(statut='o',typ='TXM'),\r
+             outputFolder = SIMP(statut="o", typ="Repertoire",siValide=lienDB.creeCoefAModifier),\r
+            ), # fin b_type_use\r
+#     ---------------------------------------------------------------------------\r
+           b_type_use2 = BLOC(condition = " action == 'use'",\r
+#         ---------------------------------------------------------------------------\r
+            Aging_Factor = FACT(statut='o',\r
+                predefinedSimulationTime = SIMP(statut='o',typ='TXM',into=monDico['Aging_Factor']['predefinedSimulationTime'],siValide=lienDB.remplirAgingFactor),\r
+                simulationTime=SIMP(statut='o',typ='R',),\r
+                numberOfNodes=SIMP(statut='o',typ='I',val_min=3,siValide=lienDB.creeInitialParameter),\r
+                sampleThickness=SIMP(statut='o',typ='R',),\r
+                #debitOfDose=SIMP(statut='o',typ='R',),\r
+                temperature=SIMP(statut='o',typ='R',),\r
+                oxygenPressure=SIMP(statut='o',typ='R',),\r
+                polymerConcentration=SIMP(statut='o',typ='R',),\r
+                ),\r
+            Initial_Parameter = FACT(statut='o',\r
+                max='**',\r
+                ),\r
+            Boundary_Conditions_Param = FACT(statut='o',\r
+                diffusionSpecies=SIMP(statut='o',typ='TXM',defaut='O2', into=['O2',]),\r
+                nodeNumber = SIMP(statut='o',typ='I',defaut=1, into=[1]), # tjours1\r
+                Boundary_Conditions_O2_1 = SIMP(statut='o',typ='TXM',into=monDico['Boundary_Conditions']),\r
+                BC_Value_Espece_1=SIMP(statut='o',typ='R'),\r
+                nodeNumber_Espece_4 = SIMP(statut='o',typ='I',defaut=4, into=[4]), # numberOfNodes+1\r
+                Boundary_Conditions_Espece_4 = SIMP(statut='o',typ='TXM',into=monDico['Boundary_Conditions']),\r
+                BC_Value_Espece_4=SIMP(statut='o',typ='R'),\r
+                ),\r
+\r
+            ), # fin b_type_use2\r
+          ), # fin b_modele\r
+        ), # fin b_technicalUse\r
+      ), # fin modification\r
 \r
       Commentaire =  SIMP (statut = 'f', typ = 'TXM'),\r
 ) # Fin Modele\r
+#---------------------------------\r
+PostTraitement = PROC (nom="PostTraitement",\r
+      op=None,\r
+      postTraitement_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base") ),\r
+      postTraitement_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show post-traitement database", "post-traitement creation"),),\r
+#     ---------------------------------------------------------------------------\r
+      b_post_creation = BLOC(condition = " postTraitement_Type == 'post-traitement creation'",\r
+        postTraitement_Name=SIMP(statut= 'o',typ= 'TXM',defaut=monPost.nom,),\r
+        generic=SIMP(statut= 'o',typ= bool,defaut=monPost.general,),\r
+        postTraitement_Typ = SIMP(statut= 'o',typ= 'TXM', into=monDico['postTraitement_Typ'],homo='SansOrdreNiDoublon',max='**',defaut=monPost.type_post),\r
+        calculation= FACT(statut='o',\r
+        # il faut un fact horizontal\r
+        calculation_results=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.calculation_results,defaut=monPost.calculation_results),\r
+        results_units=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.results_units,defaut=monPost.results_units),\r
+        #integrate=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.results_units,defaut=monPost.results_units),\r
+        prerequisite=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.prerequisite,defaut=monPost.prerequisite),\r
+\r
+        ),\r
+        constituant=SIMP(statut= 'o',typ= 'TXM', min=0,max='**', intoSug=monPost.constituants,defaut=monPost.constituants)\r
+\r
+      )# fin b_post_creation\r
+#         ---------------------------------------------------------------------------\r
+#---------------------------------\r
+) #PostTraitement\r