-# coding: utf-8\r
-import types\r
-from Accas import *\r
-\r
-import lienDB\r
-import listesDB\r
-\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
-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
- #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
- Equation_Liste=SIMP(statut= 'o',typ= 'TXM', into=('reaction_type','aging_type')),\r
-\r
- b_reaction_type = BLOC(condition = " Equation_Liste == 'reaction_type'",\r
- Equation_reaction=SIMP(statut= 'o',typ= 'TXM', into=monDico['Equation_Liste'],siValide=lienDB.recupereDicoEquation),\r
- ), # Fin b_reaction_type\r
-\r
- b_aging_type = BLOC(condition = " Equation_Liste == 'aging_type'",\r
- Equation_reaction=SIMP(statut= 'o',typ= 'TXM', into=('All', 'thermo', 'radio'),siValide=lienDB.recupereDicoEquation),\r
- ), # 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
- 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
- ChemicalFormulation = SIMP(statut='o', typ='TXM', defaut = 'POOH -> 2P'),\r
-\r
- OptionnelConstituant = FACT ( statut = 'f',max = '**',\r
- Constituant = SIMP (statut = 'o', typ = 'TXM'),\r
- Differential_Equation = SIMP(statut= 'o',typ= 'TXM'),\r
- ), # fin Const_Equa\r
- OptionnelleConstante = FACT (statut = 'f', max = '**',\r
- ConstanteName= SIMP (statut = 'o', typ = 'TXM',),\r
- ConstanteType = SIMP(statut= 'o',typ= 'TXM', min=1,into=('Arrhenius type','non Arrhenius type'),defaut='Arrhenius type'),\r
- ),# fin ConstanteOptionnelle\r
- Commentaire = SIMP (statut = 'f', typ = 'TXM', defaut = ' '),\r
-\r
-\r
- ),# fin b_modif\r
- \r
- ), # fin b_modification\r
- ), # Fin b_type_show\r
-\r
-\r
-# ---------------------------------------------------------------------------\r
- b_type_creation = BLOC(condition = " Equation_Type == 'Equation creation'",\r
-# ---------------------------------------------------------------------------\r
- Equation_Modification = FACT ( statut = 'o',\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
- Aging_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max='**', homo='SansOrdreNiDoublon', into=('All', 'thermo', 'radio'),),\r
-\r
- Constituants = FACT ( statut = 'o',\r
- ConstituantPOOH = SIMP (statut = 'f', typ = 'TXM', into = ('POOH',)),\r
- b_pooh = BLOC(condition = " ConstituantPOOH == 'POOH'" ,\r
- Differential_Equation_POOH = SIMP(statut= 'o',typ= 'TXM', defaut = '-ku1*POOH'),\r
- ), # Fin b_pooh\r
- #ConstituantP = SIMP (statut = 'f', typ = 'TXM', into = ('P',)),\r
- #b_p = BLOC(condition = " ConstituantP == 'P'" ,\r
- # Differential_Equation_P = SIMP(statut= 'o',typ= 'TXM', defaut = '2*ku1*POOH'),\r
- #), # Fin b_p\r
- ConstituantP = FACT ( statut = 'f',\r
- ConstituantP = SIMP (statut = 'f', typ = 'TXM', into = ('P',)),\r
- Differential_Equation_P = SIMP(statut= 'o',typ= 'TXM', defaut = '2*ku1*POOH'),\r
- ), # Fin ConstituantP\r
-\r
- OptionnelConstituant = FACT ( statut = 'f',max = '**',\r
- Constituant = SIMP (statut = 'o', typ = 'TXM'),\r
- Differential_Equation = SIMP(statut= 'o',typ= 'TXM'),\r
- ), # fin Const_Equa\r
- ),# Fin Constituants\r
-\r
- Constante = FACT ( statut = 'o',\r
- Constanteku1 = SIMP (statut = 'f', typ = 'TXM', into = ('ku1',), defaut= 'ku1'),\r
- b_cku1 = BLOC(condition = "Constanteku1 == 'ku1'" ,\r
- ConstanteType = SIMP(statut= 'o',typ= 'TXM', into=('Arrhenius type','non Arrhenius type'),defaut='Arrhenius type'),\r
- ),\r
- OptionnelleConstante = FACT (statut = 'f', max = '**',\r
- ConstanteName= SIMP (statut = 'o', typ = 'TXM',),\r
- ConstanteType = SIMP(statut= 'o',typ= 'TXM', min=1,into=('Arrhenius type','non Arrhenius type'),defaut='Arrhenius type'),\r
- ),# fin ConstanteOptionnelle\r
- ), # fin constante\r
- Commentaire = SIMP (statut = 'f', typ = 'TXM', defaut = ' '),\r
- \r
- ), # Fin Equation_Modification\r
- ), # fin b_type_creation\r
- \r
- \r
-) # Fin Equation\r
-\r
-#---------------------------------\r
-Modele = PROC (nom="Modele",\r
- op=None,\r
- Modele_DB=SIMP(statut= 'o',typ= 'TXM', into=("Approved data base", "My data base"),siValide=lienDB.recupereDicoModele ),\r
- Modele_Type = SIMP(statut= 'o',typ= 'TXM', into=("Show modele database", "Modele creation"),siValide=lienDB.creeListeEquation),\r
-# ---------------------------------------------------------------------------\r
- b_type_creation = BLOC(condition = " Modele_Type == 'Modele creation'",\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
- 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=[],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
- ), # 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
- \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
- 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
+# -*- coding: utf-8 -*-
+import types
+from Accas import *
+
+import lienDB
+
+monDico= { 'Equation_Liste' : ('initiation', 'propagation', 'termination', 'stabilization'),
+ 'Modele_TechnicalUse' : ('cable', 'coating', 'pipes'),
+ 'Aging_Factor' : { 'predefinedSimulationTime' : ('40years BR top', '40years BR bottom')},
+ 'Boundary_Conditions' : ('flux_volume','flux_surface','constant_constration','convection_flux'),
+ 'posttraitement_Typ' : ('chimique','mecanique','physique'),
+ }
+
+from mapy.virtual_polymer_common import class_data
+monMechanisticModel=class_data.Modele()
+monMechanisticEquation=class_data.Equation()
+if monMechanisticEquation.comment == "" : monMechanisticEquation.comment = ' '
+
+def chercheConstituant(laClasse):
+ lesArgs={}
+ lesArgs['statut']='o'
+ for constituant in laClasse.constituants :
+ monIndex=laClasse.constituants.index(constituant)
+ valdefaut=laClasse.equation[monIndex]
+ monSimp=SIMP(statut = 'o', typ = bool, defaut=True)
+ lesArgs[constituant]=monSimp
+
+ lesArgsBloc={}
+ nomEquation = ' differentiel_'+constituant
+ monSimp2 = SIMP(statut= 'o',typ= 'TXM', defaut = valdefaut)
+ laCondition= constituant+' == True'
+ lesArgsBloc['condition']=laCondition
+ lesArgsBloc[nomEquation]=monSimp2
+ nomBloc = 'b_'+constituant
+ leBloc = BLOC(**lesArgsBloc)
+ lesArgs[nomBloc]=BLOC(**lesArgsBloc)
+ return FACT(**lesArgs)
+
+def chercheConstantes(laClasse):
+ lesArgs={}
+ lesArgs['statut']='o'
+ for constante in laClasse.const_cine_nom :
+ monSimp=SIMP(statut = 'o', typ = bool, defaut=True)
+ lesArgs[constante]=monSimp
+ return FACT(**lesArgs)
+
+
+import types
+class Tuple:
+ def __init__(self,ntuple):
+ self.ntuple=ntuple
+
+ def __convert__(self,valeur):
+ if type(valeur) == types.StringType:
+ return None
+ if len(valeur) != self.ntuple:
+ return None
+ return valeur
+
+ def info(self):
+ return "Tuple de %s elements" % self.ntuple
+
+
+JdC = JDC_CATA(code='VP',
+ execmodul=None,
+ )
+
+# ------------------------------------------
+Database = PROC (nom="Database", op=None,
+# ------------------------------------------
+ Database_Type = SIMP(statut= 'o',typ= 'TXM', into=("Local database", "Standard database"),),
+ Model_Type = SIMP(statut= 'o',typ= 'TXM', into=("master model", "analytic model" ,"mechanistic model") ),
+
+
+# ------------------------------------------------------------------------
+ b_Model_Mechanistic = BLOC(condition = "Model_Type == 'mechanistic model'",
+# ------------------------------------------------------------------------
+ Type_chgt = SIMP (statut= 'o',typ= 'TXM',into=('modify equation', 'create equation', 'modify model', 'create model'),),
+
+ b_creation_equation = BLOC (condition = 'Type_chgt == "create equation"',
+ # toutes les valeurs sont par defaut class_data.Equation
+ # generer le catalogue avec un fact
+ # Aging_Type type_vieil,
+ Creation = FACT ( statut = 'o',
+ ChemicalFormulation = SIMP(statut='o', typ='TXM', defaut = monMechanisticEquation.representation ),
+ Aging_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max=1, into=('All', 'thermo', 'radio'), defaut = monMechanisticEquation.type_vieil[0]),
+ Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max=1, into=monDico['Equation_Liste'], defaut = monMechanisticEquation.type_react),
+ Constituants = chercheConstituant(monMechanisticEquation),
+ New = SIMP (statut = 'o', typ = bool, defaut=False),
+ b_new = BLOC(condition = " New == True" ,
+ Constituant = FACT ( statut = 'o', min=1, max='**',
+ Name = SIMP(statut= 'o',typ= 'TXM'),
+ Differential_Equation = SIMP(statut= 'o',typ= 'TXM'),
+ ),
+ ), # b new
+
+ Constantes = chercheConstantes(monMechanisticEquation),
+ New_Cst = SIMP (statut = 'o', typ = bool, defaut=False),
+ b_new_cst = BLOC(condition = " New_Cst == True" ,
+ Constante = FACT ( statut = 'o', min=1, max='**',
+ Name = SIMP (statut = 'o', typ = 'TXM'),
+ ), # fin constante
+ ), #fin b_new
+
+ Arrhenius = SIMP (statut = 'o', typ = bool, defaut=monMechanisticEquation.arrhenius),
+ Comment = SIMP(statut= 'o',typ= 'TXM', defaut = monMechanisticEquation.comment),
+ ), # fin creation mechanistic model
+ ), # fin b_create_equation
+
+ b_modify_equation = BLOC (condition = 'Type_chgt == "modify equation"',
+# les valeurs par defaut seront lues dans la base de données
+ Filtre = FACT (statut='o',
+ Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste'], siValide=lienDB.remplitMechanisticModifyEquationListeEquation),
+# Filtre getMechanisticEquation(Reaction_Type)
+# diictionnaire key : nom de l equation / valeur classe instancies liste de nom d'equation
+ Equation_List=SIMP(statut= 'o',typ= 'TXM', siValide=lienDB.remplitModificationEquation),
+ ),
+ # lorsque le choix est fait on peut recuperer les valeurs par defaut
+
+ #ChemicalFormulation = SIMP(statut='o', typ='TXM', defaut = 'POOH -> 2P'),
+ Modification = FACT (statut='o',
+ ChemicalFormulation = SIMP(statut='o', typ='TXM', ), # classe.representation
+ Reaction_Type=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Equation_Liste']), # classe.type_react
+ Aging_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max=1, into=('All', 'thermo', 'radio'),), # classe.type_vieil
+
+ Constituants = FACT ( statut = 'o', # classe.constituants --> liste de nom. les equations sont dans le meme ordre self.equation
+ POOH = SIMP (statut = 'o', typ = bool, defaut=False),
+ b_pooh = BLOC(condition = " POOH == True" ,
+ Differential_Equation_POOH = SIMP(statut= 'o',typ= 'TXM', defaut = '-ku1*POOH'),
+ ), # Fin b_pooh
+ PO = SIMP (statut = 'o', typ = bool, defaut=False),
+ b_po = BLOC(condition = " PO == True" ,
+ Differential_Equation_PO = SIMP(statut= 'o',typ= 'TXM', defaut = '-ku1*POOH'),
+ ), # Fin b_po
+ New = SIMP (statut = 'o', typ = bool, defaut=False),
+ b_new = BLOC(condition = " New == True" ,
+ Constituant = FACT ( statut = 'o', min=1, max='**',
+ Name = SIMP (statut = 'o', typ = 'TXM'),
+ Differential_Equation = SIMP(statut= 'o',typ= 'TXM'),
+ ), # Fin Constituant
+ ), # Fin b_new
+ ),# Fin Constituants
+
+ Constantes = FACT ( statut = 'o', # self.const_cine_nom
+ KU1 = SIMP (statut = 'o', typ = bool, defaut=False),
+ New = SIMP (statut = 'o', typ = bool, defaut=False),
+ b_new = BLOC(condition = " New == True" ,
+ Constante = FACT ( statut = 'o', min=1, max='**',
+ Name = SIMP (statut = 'o', typ = 'TXM'),
+ ), # fin constante
+ ), #fin b_new
+ ), # fin constantes
+ Arrhenius = SIMP (statut = 'o', typ = bool, ), # classe.arrhenius[0]
+ Comment = SIMP(statut= 'o',typ= 'TXM',), # classe.comment
+ ), # fin modification
+ ), # fin b_modify_equation
+
+
+ b_create_model = BLOC (condition = 'Type_chgt == "create model"',
+# Filtre getMechanisticTechnicalUse(Filtre_TechnicalUse)
+# dictionnaire key : nom du modele / valeur classe instancies liste de nom modele
+# la classe par defaut getDefaultMechanistic
+# renvoie un obj instancie
+ # toutes les valeurs sont par defaut class_data.Equation
+ # generer le catalogue avec un fact
+ Creation = FACT (statut='o',
+ ID=FACT (statut='o',
+ Name =SIMP(statut='o',typ='TXM'), # obj.nom
+ Material=SIMP(statut='o',typ='TXM',),# obj.materiaux[0]
+ TechnicalUse = SIMP(statut= 'o',typ= 'TXM',into=monDico['Modele_TechnicalUse']),#defaut=obj.technical_use
+ Reference=SIMP(statut='o',typ='TXM',), # defaut=monModele.reference, momModele = obj par la suite
+ Model_Developed_For_EDF = SIMP(typ = bool, statut = 'o'), #defaut = monModele.dvt_EDF[0]
+ Aging_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max=1, into=('all', 'thermo', 'radio'),), # defaut = monModele.type_vieil
+# attention c est une liste --> a reflechir
+ Stabilizer = SIMP(typ = bool, statut = 'o'), #,defaut = monModele.stabilise
+ material_thickness = SIMP(typ = 'TXM', statut = 'o', into = ['thin','thick']), # monModele.thickness
+ Diffusion = SIMP(typ = bool, statut = 'o'),# defaut = monModele.diffusion ,siValide = lienDB.prepareDiffusion
+ Evaporation = SIMP(typ = bool, statut = 'o'), # defaut monModele.evaporation
+ Comment = SIMP(statut= 'o',typ= 'TXM',), # classe.comment
+ ), #fin id
+ Equations = FACT (statut = 'o',
+# remplir avec getEquation sur modele
+# dictionnaire avec comme clef 'base' puis initiation ...
+ Liste=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon',into =['POOH -> 2P [k]' , 'A [K5,Y5]', 'B', 'C']),
+# quand coche je recupere le nom entre crochet + split sur , attention sans blanc
+# et on cree le SIMP apres pour recuperer la valeur
+ K5=SIMP (statut = 'o', typ = 'R' ),
+ New = SIMP (statut = 'o', typ = bool, defaut=False),
+#
+ b_new = BLOC(condition = " New == True" ,
+ Add=FACT(statut = 'o',max='**',
+ Filtre = SIMP(statut= 'o',typ= 'TXM',into=monDico['Equation_Liste']),
+ Equations=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon',into =['POOH -> 2P' , 'A', 'B', 'C'])
+ )
+ ), # b new
+ ) # fin equations
+ ), #fin creation
+ ), # fin create model
+
+ b_modify_model = BLOC (condition = 'Type_chgt == "modify model"',
+# Filtre getMechanisticTechnicalUse(Filtre_TechnicalUse)
+# dictionnaire key : nom du modele / valeur classe instancies liste de nom modele
+# la classe par defaut getDefaultMechanistic
+# renvoie un obj instancie
+ Filtre = FACT (statut='o',
+ TechnicalUse=SIMP(statut= 'o',typ= 'TXM', min=1,into=monDico['Modele_TechnicalUse'],),
+# si valide
+ ModeleName=SIMP(statut='o',typ='TXM',into=['A','B']), # a choisir dans la liste des clefs
+ ),
+ Modification = FACT (statut='o',
+ ID=FACT (statut='o',
+ Name =SIMP(statut='o',typ='TXM'), # obj.nom
+ Material=SIMP(statut='o',typ='TXM',),# obj.materiaux[0]
+ TechnicalUse = SIMP(statut= 'o',typ= 'TXM',into=monDico['Modele_TechnicalUse']),#defaut=obj.technical_use
+ Reference=SIMP(statut='o',typ='TXM',), # defaut=monModele.reference, momModele = obj par la suite
+ Model_Developed_For_EDF = SIMP(typ = bool, statut = 'o'), #defaut = monModele.dvt_EDF[0]
+ Aging_Type=SIMP(statut= 'o',typ= 'TXM', min=1,max=1, into=('all', 'thermo', 'radio'),), # defaut = monModele.type_vieil
+# attention c est une liste --> a reflechir
+ Stabilizer = SIMP(typ = bool, statut = 'o'), #,defaut = monModele.stabilise
+ material_thickness = SIMP(typ = 'TXM', statut = 'o', into = ['thin','thick']), # monModele.thickness
+ Diffusion = SIMP(typ = bool, statut = 'o'),# defaut = monModele.diffusion ,siValide = lienDB.prepareDiffusion
+ Evaporation = SIMP(typ = bool, statut = 'o'), # defaut monModele.evaporation
+ Comment = SIMP(statut= 'o',typ= 'TXM',), # classe.comment
+ ), #fin id
+ Equations = FACT (statut = 'o',
+# remplir avec getEquation sur modele
+# dictionnaire avec comme clef 'base' puis initiation ...
+ Liste=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon',into =['POOH -> 2P [k]' , 'A [K5,Y5]', 'B', 'C']),
+# quand coche je recupere le nom entre crochet + split sur , attention sans blanc
+# et on cree le SIMP apres pour recuperer la valeur
+ K5=SIMP (statut = 'o', typ = 'R' ),
+ New = SIMP (statut = 'o', typ = bool, defaut=False),
+#
+ b_new = BLOC(condition = " New == True" ,
+ Add=FACT(statut = 'o',max='**',
+ Filtre = SIMP(statut= 'o',typ= 'TXM',into=monDico['Equation_Liste']),
+ Equations=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon',into =['POOH -> 2P' , 'A', 'B', 'C'])
+ )
+ ), # b new
+ ) # fin equations
+ ), #fin modification
+ ), # fin modify model
+
+ ), # Fin mechanistic
+# ------------------------------------------------------------------------
+ b_Model_Analytic = BLOC(condition = "Model_Type == 'analytic model'",
+ Type_chgt = SIMP (statut= 'o',typ= 'TXM',into=('modify equation', 'create equation', 'modify model', 'create model') ),
+
+ b_creation_equation = BLOC (condition = 'Type_chgt == "create equation"',
+ Creation = FACT(statut = 'o',
+ Name=SIMP(statut= 'o',typ= 'TXM',), # defaut o.nom
+ Equation_Type = SIMP(statut= 'o',typ= 'TXM',into=monDico['posttraitement_Typ']), # defaut o.type_equa
+ PostProcessing = SIMP (statut = 'o', typ = bool,),# o.post_processing
+ Calculation_Result = SIMP(statut= 'o',typ= 'TXM'), # defaut o.calculation_result
+# dans o.parameters on a une liste
+ Parameters=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon',into =['A', 'Ea', 'C']),
+ New = SIMP (statut = 'o', typ = bool, defaut=False),
+ b_new = BLOC(condition = " New == True" ,
+ Param = FACT(statut = 'o', max='**',
+ Name=SIMP(statut= 'o',typ= 'TXM',),
+ ), #param
+ ), # b_new
+ Equation = SIMP(statut= 'o',typ= 'TXM'), # defaut o.equation
+ Universal_Constants=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon',into =['A', 'B', 'C']),
+ Results_Unit = SIMP(statut= 'o',typ= 'TXM'), # defaut o.results_unit
+ Integrate = SIMP (statut = 'o', typ = bool),# defaut o.integrate
+ Comment = SIMP(statut= 'o',typ= 'TXM'), # defaut o.comment
+ ),# Fact creation
+ ), #bloc b_creation_equation
+
+ b_modification_equation = BLOC (condition = 'Type_chgt == "modify equation"',
+ Filtre = FACT(statut = 'o',
+ Equation_Type = SIMP(statut= 'o',typ= 'TXM',into=monDico['posttraitement_Typ']), # defaut o.type_equa
+ Equation_Choice = SIMP(statut= 'o',typ= 'TXM',into=['A','B','C']),
+ ),
+ Modification = FACT(statut = 'o',
+ Name=SIMP(statut= 'o',typ= 'TXM',), # defaut o.nom
+ Equation_Type = SIMP(statut= 'o',typ= 'TXM',into=monDico['posttraitement_Typ']), # defaut o.type_equa
+ PostProcessing = SIMP (statut = 'o', typ = bool,),# o.post_processing
+ Calculation_Result = SIMP(statut= 'o',typ= 'TXM'), # defaut o.calculation_result
+# dans o.parameters on a une liste
+ Parameters=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon',into =['A', 'Ea', 'C']),
+ New = SIMP (statut = 'o', typ = bool, defaut=False),
+ b_new = BLOC(condition = " New == True" ,
+ Param = FACT(statut = 'o', max='**',
+ Name=SIMP(statut= 'o',typ= 'TXM',),
+ ), #param
+ ), # b_new
+ Equation = SIMP(statut= 'o',typ= 'TXM'), # defaut o.equation
+ Universal_Constants=SIMP(statut= 'o',typ='TXM', min=1,max='**', homo='SansOrdreNiDoublon',into =['A', 'B', 'C']),
+ Results_Unit = SIMP(statut= 'o',typ= 'TXM'), # defaut o.results_unit
+ Integrate = SIMP (statut = 'o', typ = bool),# defaut o.integrate
+ Comment = SIMP(statut= 'o',typ= 'TXM'), # defaut o.comment
+ ),# Fact Modification
+
+ ), #bloc b_modification_equation
+ ), # Fin model analytic
+# ------------------------------------------------------------------------
+# ---------------------------------------------------------------------------
+
+ b_model_master=BLOC(condition = 'Model_Type == "master model"',
+ Type_chgt = SIMP (statut= 'o',typ= 'TXM',into=('modify model', 'create model') ),
+ ),
+)
+
+
+# ----------------------------------------------
+Calculation = PROC (nom="Calculation", op=None,
+# ----------------------------------------------
+ Database=SIMP(statut= 'o',typ= 'TXM', into=("local database", "standard database") ),
+ Model=SIMP(statut= 'o',typ= 'TXM', into=("master model", "analytic model" ,"mechanistic model"),),
+ #b_Model_Name = BLOC(condition = 'Model in ("master model","mechanistic model")',
+ #b_Model_Name_1 = BLOC(condition = 'Model == "master model"',
+ # pose un pb si 2 blocs sont generes ???
+ # TechnicalUse= SIMP(statut= 'o',typ= 'TXM',into=monDico['Modele_TechnicalUse'],),#defaut=monModele.technical_use ,
+ # ModeleName=SIMP(statut='o',typ='TXM',),#defaut=monModele.nom,,
+# filtre_calculation_mechanistic - > 3 dictionnaires
+# la clef du 1er niveau est le modele qui remplit SimulationName
+ #),
+
+
+# MASTER MODEL
+ b_simulation_modele = BLOC(condition = 'Model == "master model"',
+ TechnicalUse= SIMP(statut= 'o',typ= 'TXM',into=monDico['Modele_TechnicalUse'],),#defaut=monModele.technical_use ,
+ ModeleName=SIMP(statut='o',typ='TXM',),#defaut=monModele.nom,,
+ Analytical_Equations = FACT(statut= 'o', max='**',
+ Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = "Equation A"),
+ Clef1=SIMP(statut='o',typ='R'),
+ Clef2=SIMP(statut='o',typ='R'),
+ ),
+ ChemicalKinetics = FACT ( statut = 'o',
+ SimulationName=SIMP(statut='o',typ='TXM'),
+ OutputFolder = SIMP(statut="o", typ="Repertoire"),
+ Time=SIMP(statut='o',typ='R',),
+ Temperature=SIMP(statut='o',typ='R',),
+ DebitOfDose=SIMP(statut='o',typ='R',),
+ Thickness=SIMP(statut='o',typ='R',),
+ Dicretization= SIMP(statut='o',typ='R',),
+# remplir les equations
+ InitialValue = SIMP(statut ='o', typ=Tuple(2),validators = VerifTypeTuple(('TXM','R')),max='**'),
+
+ Boundary_Conditions = FACT(statut='o',
+ Product=FACT(statut='o', max='**',
+# a remplir avec le filtre une liste des boundary
+# -----------------------------------
+ Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = "Diffusion Product"),
+ Node_0 = FACT (statut='o',
+ Boundary_Condition_Type = SIMP(statut='o',typ='TXM',into=monDico['Boundary_Conditions']),
+ Value=SIMP(statut='o',typ='R',defaut=0),
+ ),
+ Node_N = FACT (statut='o',
+ Boundary_Condition_Type = SIMP(statut='o',typ='TXM',into=monDico['Boundary_Conditions']),
+ Value=SIMP(statut='o',typ='R',defaut=0),
+ ),
+ ),
+ ),
+ ),# fin ChemicalKinetics
+ Analytical_Equations_PostTreatment = FACT(statut= 'o', max='**',
+ Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = "Equation A"),
+ InitialValue = SIMP(statut ='o', typ=Tuple(2),validators = VerifTypeTuple(('TXM','R')),max='**'),
+ Clef1=SIMP(statut='o',typ='R'),
+ Clef2=SIMP(statut='o',typ='R'),
+ ),
+ ), # fin bloc b_simulation_modele
+
+
+
+# MECHANISTIC MODEL
+# filtre_calculation_mechanistic - > 3 dictionnaires
+# la clef du 1er niveau est le modele qui remplit SimulationName
+#
+ b_mechanistic = BLOC(condition = 'Model == "mechanistic model"',
+ TechnicalUse= SIMP(statut= 'o',typ= 'TXM',into=monDico['Modele_TechnicalUse'], siValide=lienDB.remplitMechanisticModeleName),#defaut=monModele.technical_use ,
+ ModeleName=SIMP(statut='o',typ='TXM', siValide = lienDB.remplitChimicalKineticsMechanistic),#defaut=monModele.nom,,
+ ChimicalKinetics = FACT ( statut = 'o',
+ SimulationName=SIMP(statut='o',typ='TXM'),
+ OutputFolder = SIMP(statut="o", typ="Repertoire"),
+ Time=SIMP(statut='o',typ='R',),
+ Temperature=SIMP(statut='o',typ='R',),
+# si dans le dictionnaire debit_of_dose = True je rentre la ligne suivante
+ DebitOfDose=SIMP(statut='f',typ='R',),
+ Thickness=SIMP(statut='o',typ='R',),
+ Dicretization= SIMP(statut='o',typ='R',),
+# initial_parameter pour remplir cela
+ InitialValue = SIMP(statut ='o', typ=Tuple(2),validators = VerifTypeTuple(('TXM','R')),max='**'),
+ ),
+
+# si la liste est vide pas de Boundary_Conditions_Param sinon on cree les products
+ Boundary_Conditions_Param = FACT(statut='f',
+ Product=FACT(statut='o', max='**',
+# a remplir avec le filtre une liste des boundary qui sont contenues dans diffusion du dico de remplitChimicalKinetics
+# -----------------------------------
+ Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = "Diffusion Product"),
+ Node_0 = FACT (statut='o',
+ Boundary_Condition_Type = SIMP(statut='o',typ='TXM',into=monDico['Boundary_Conditions']),
+ Value=SIMP(statut='o',typ='R',defaut=0),
+ ),
+ Node_N = FACT (statut='o',
+ Boundary_Condition_Type = SIMP(statut='o',typ='TXM',into=monDico['Boundary_Conditions']),
+ Value=SIMP(statut='o',typ='R',defaut=0),
+ ),
+ ),
+ ),
+ ), # fin bloc b_simulation_modele
+
+# ANALYTIC MODEL
+ b_analytic_model = BLOC(condition = 'Model == "analytic model"',
+ Equation_Ty = SIMP(statut= 'o',typ= 'TXM',into=monDico['posttraitement_Typ'],siValide=lienDB.remplitAnalyticModeleName),
+ ModeleName=SIMP(statut='o',typ='TXM', siValide=lienDB.remplitChimicalKineticsAnalytic,),
+ ChimicalKinetics = FACT ( statut = 'o',
+ SimulationName=SIMP(statut='o',typ='TXM'),
+ OutputFolder = SIMP(statut="o", typ="Repertoire"),
+# remplir les equations
+# dictionnaire cief de filtre_calculation_analitic avec clef = clef1, clef2... et valeur = coef[cle1]
+ Coefficients = SIMP(statut ='o', typ=Tuple(2),validators = VerifTypeTuple(('TXM','R')),max='**'),
+ ),
+ ), # fin bloc b_analytic_model
+
+)
-# coding: utf-8\r
-\r
-import types\r
-import sys,os\r
-\r
-import listesDB\r
-\r
-\r
-maClasseDelistesDB = listesDB.classeListesDB()\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
- __repr__=info\r
- __str__=info\r
-\r
-\r
-dicoAgingFactor={ '40years BR top' : {'temperature' : 50, 'simulationTime' : 350640}}\r
-\r
-# --------------------------------------\r
-# Fonctions appellees depuis le catalogue\r
-# --------------------------------------\r
- \r
-# --------------------------------------\r
-# Dans Equation\r
-# --------------------------------------\r
-\r
-def recupereDicoEquation(monMC):\r
- # Equation_reaction (ds 2 blocs)\r
- # ou dans Equation b_type_show b_reaction_type\r
- # ou dans Equation b_type_show b_aging_type\r
-\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- editor=monMC.jdc.editor\r
- monMC.dsMaFunct = True\r
-\r
- valeurDB=editor.getValeur('Equation','Equation_DB',())\r
- maClasseDelistesDB.metAJour(valeurDB)\r
- listEquation=maClasseDelistesDB.getListEquation()\r
-\r
- valeurEquationListe=editor.getValeur('Equation','Equation_Liste',('b_type_show',))\r
- valeurAgingType=editor.getValeur('Equation','Equation_reaction',('b_type_show','b_reaction_type',))\r
- if valeurAgingType == None :\r
- valeurAgingType=editor.getValeur('Equation','Equation_reaction',('b_type_show','b_aging_type',))\r
- if valeurAgingType == None : monMC.dsMaFunct = False; return\r
-\r
- listeEquationPourIhm = []\r
- listeReprEquationPourIhm = []\r
- dicoListAffiche = {}\r
- \r
- for equation in listEquation :\r
- if valeurEquationListe == 'aging_type' :\r
- if equation.type_vieil == valeurAgingType : \r
- listeEquationPourIhm.append(equation)\r
- listeReprEquationPourIhm.append(equation.representation)\r
- dicoListAffiche[equation.representation]=equation\r
- else:\r
- if equation.type_react == valeurAgingType : \r
- listeEquationPourIhm.append(equation)\r
- listeReprEquationPourIhm.append(equation.representation)\r
- dicoListAffiche[equation.representation]=equation\r
- maClasseDelistesDB.dicoListAffiche = dicoListAffiche\r
-\r
- change=editor.changeIntoDefMC('Equation', ('b_type_show','ListeEquation'), listeReprEquationPourIhm )\r
- if change :\r
- editor.reCalculeValiditeMCApresChgtInto('Equation', 'listeEquation', ('b_type_show',)) \r
- if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
- monMC.dsMaFunct = False\r
-\r
-def afficheValeurEquation(monMC):\r
- # Equation b_modification modification\r
- print (monMC)\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- valeur=monMC.valeur\r
- if valeur == None : return\r
- maClasseDelistesDB.valeurEquationChoisie=str(valeur)\r
- monEquation=maClasseDelistesDB.dicoListAffiche[str(valeur)]\r
-\r
- aAfficher=str(monEquation)\r
- editor=monMC.jdc.editor\r
- editor._viewText(aAfficher, "Id",largeur=80,hauteur=300)\r
- \r
- monMC.dsMaFunct = False\r
- \r
-\r
-def instancieChemicalFormulation(monMC):\r
- print ('instancieChemicalFormulation pour ', monMC.nom)\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- if monMC.valeur == False : return\r
-\r
- editor=monMC.jdc.editor\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
- editor.dsMaFunct = True\r
-\r
- for e in monMC.jdc.etapes:\r
- if e.nom == 'Equation' :break\r
- print ('ds instancie')\r
- v=maClasseDelistesDB.valeurEquationChoisie\r
- monEquation=maClasseDelistesDB.dicoListAffiche[v]\r
- type_react=monEquation.type_react\r
- type_vieil=monEquation.type_vieil\r
-\r
- editor.changeIntoMCandSet('Equation', ('b_type_show','b_modification','b_modif','ChemicalFormulation'),( v,),v )\r
- print ("je passe la")\r
- change=editor.changeDefautDefMC('Equation', ('b_type_show','b_modification','b_modif','Reaction_Type'),type_react )\r
- change=editor.changeDefautDefMC('Equation', ('b_type_show','b_modification','b_modif','Aging_Type'), type_vieil )\r
-\r
- for index,valeurConstituant in enumerate(monEquation.constituants):\r
- valeurEquation=monEquation.equation[index] \r
- \r
- #PNPNPN --> decider des noms SVP ave un nom python\r
- monMcl1=('Constituant','TXM',{'statut':'o','defaut':valeurConstituant})\r
- monMcl2=('Differential_Equation','TXM',{'statut':'o','defaut':valeurEquation})\r
- listeMC=(monMcl1,monMcl2)\r
- editor.ajoutDefinitionMCFact ('Equation',('b_type_show','b_modification','b_modif',),valeurConstituant,listeMC,statut='f')\r
- #editor.ajoutMCFact (e,('b_type_show','b_modification','b_modif',),valeurConstituant)\r
- print (index,valeurConstituant,valeurEquation)\r
-\r
- #OptionnelConstituant = FACT ( statut = 'f',max = '**',\r
- # Constituant = SIMP (statut = 'o', typ = 'TXM'),\r
- # Differential_Equation = SIMP(statut= 'o',typ= 'TXM'),\r
-\r
- for index,valeurConstituant in enumerate(monEquation.const_cine_nom):\r
- valeurArrhe=monEquation.arrhenius[index] \r
- if valeurArrhe : valeurConstanteType='Arrhenius type'\r
- else : valeurConstanteType='non Arrhenius type'\r
- monMcl1=('ConstanteName','TXM',{'statut':'o','defaut':valeurConstituant})\r
- monMcl2=('ConstanteType','TXM',{'statut':'o','defaut':valeurConstanteType,'into': ('Arrhenius type','non Arrhenius type') })\r
- listeMC=(monMcl1,monMcl2)\r
- editor.ajoutDefinitionMCFact ('Equation',('b_type_show','b_modification','b_modif',),valeurConstituant,listeMC,statut='f')\r
- #editor.ajoutMC(e,MCFils,mesValeurs,('b_type_creation','b_diffusion',))\r
-\r
-\r
- change=editor.changeDefautDefMC('Equation', ('b_type_show','b_modification','b_modif','Commentaire'),monEquation.comment )\r
- print (monEquation.comment )\r
- if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
-\r
- monMC.dsMaFunct = False\r
- editor.dsMaFunct = False\r
- \r
-\r
-\r
-\r
-def recupereDicoModele(monMC):\r
- if monMC.valeur == None: return\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- monMC.dsMaFunct = True\r
- print ('je passe dans recupereDicoModele')\r
-\r
- editor=monMC.jdc.editor\r
- valeurDB=editor.getValeur('Modele','Modele_DB',())\r
- maClasseDelistesDB.metAJour(valeurDB)\r
-\r
- print ('fin recupereDicoModele')\r
- monMC.dsMaFunct = False\r
-\r
-\r
-def creeListeEquation(monMC):\r
- if monMC.valeur == None: return\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- editor=monMC.jdc.editor\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
- editor.dsMaFunct = True\r
- print ('debut de creeListeEquation')\r
-\r
- listeEquationsAAfficher=[]\r
- listeConstantesAAfficher=[]\r
- listeInitialEquations=[]\r
-\r
- listEquation=maClasseDelistesDB.getListEquation()\r
- for index,equation in enumerate( listEquation):\r
- if index in monModele.equa:\r
- listeEquationsAAfficher.append(equation.representation)\r
- listeConstantesAAfficher.append(equation.const_cine_nom)\r
- t=equation.representation+'\t\t\t\t '+str(equation.const_cine_nom)\r
- listeInitialEquations.append(t)\r
-\r
- change=editor.changeIntoDefMC('Modele', ('b_type_creation','Chemical_Equation','Initial_Equation_List'),listeInitialEquations )\r
- maClasseDelistesDB.listeEquationsAAfficher = listeEquationsAAfficher\r
- maClasseDelistesDB.listeConstantesAAfficher = listeConstantesAAfficher\r
- monMC.dsMaFunct = False\r
- print ('fin de creeListeEquation')\r
-\r
- editor.dsMaFunct = False\r
-\r
- # listeEquation_stabilization=SIMP(statut='o', homo='SansOrdreNiDoublon', max='**', min=0 ),\r
-\r
-def recupereModeleEquation(monMC):\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- if monMC.valeur==False : return\r
- editor=monMC.jdc.editor\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
- editor.dsMaFunct = True\r
- print ('je suis dans recupereModeleEquation')\r
-\r
- editor.dsMaFunct = True\r
- dicoListeEquationAAfficher={}\r
-\r
- from VP_Cata_V2 import monDico\r
- listEquation=maClasseDelistesDB.getListEquation()\r
- for valeurReactionType in monDico['Equation_Liste']:\r
- dicoListeEquationAAfficher[valeurReactionType] = [] \r
- for index,equation in enumerate( listEquation):\r
- if equation.type_react==valeurReactionType : \r
- dicoListeEquationAAfficher[valeurReactionType].append(equation.representation)\r
- maClasseDelistesDB.dictParametresInitiaux[equation.representation]=equation\r
- #print (dicoListeEquationAAfficher)\r
- #print('maClasseDelistesDB.dictParametresInitiaux', maClasseDelistesDB.dictParametresInitiaux)\r
- prepareDiffusionSansMC(editor,monMC.nom)\r
- \r
- change=editor.changeIntoDefMC('Modele', ('b_type_creation','Chemical_Equation','b_ajout_equation','listeEquation_initiation'),dicoListeEquationAAfficher['initiation'])\r
- change=editor.changeIntoDefMC('Modele', ('b_type_creation','Chemical_Equation','b_ajout_equation','listeEquation_propagation'),dicoListeEquationAAfficher['propagation'] )\r
- change=editor.changeIntoDefMC('Modele', ('b_type_creation','Chemical_Equation','b_ajout_equation','listeEquation_termination'),dicoListeEquationAAfficher['termination'] )\r
- change=editor.changeIntoDefMC('Modele', ('b_type_creation','Chemical_Equation','b_ajout_equation','listeEquation_stabilization'),dicoListeEquationAAfficher['stabilization'] )\r
- if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
-\r
- print ('fin recupereModeleEquation')\r
- monMC.dsMaFunct = False\r
- editor.dsMaFunct = False\r
-\r
-def ajoutDUneEquation(monMC):\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- if monMC.valeur==False : return\r
- editor=monMC.jdc.editor\r
- prepareDiffusionSansMC(editor,monMC.nom)\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
- editor.dsMaFunct = False\r
- monMC.dsMaFunct = False\r
-\r
-def prepareDiffusion(monMC):\r
- if monMC.valeur==False : return\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- monMC.dsMaFunct=True\r
- editor=monMC.jdc.editor\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
- editor.dsMaFunct = True\r
- print ('je suis dans prepareDiffusion', monMC.nom)\r
- prepareDiffusionSansMC(editor,monMC.nom)\r
- print ('fin de prepareDiffusion', monMC.nom)\r
- monMC.dsMaFunct=False\r
- editor.dsMaFunct = False\r
-\r
-def prepareDiffusionSansMC(editor,monMCNom):\r
- lInitialBadCoche=editor.getValeur('Modele', 'Initial_Equation_List',('b_type_creation','Chemical_Equation'),)\r
- lInitialCoche=[]\r
- for equ in lInitialBadCoche: lInitialCoche.append(equ.split('\t')[0])\r
- lInititiationCoche=editor.getValeur('Modele','listeEquation_initiation', ('b_type_creation','Chemical_Equation',))\r
- lPropagationCoche =editor.getValeur('Modele', 'listeEquation_propagation',('b_type_creation','Chemical_Equation',))\r
- lTerminationCoche=editor.getValeur('Modele','listeEquation_termination', ('b_type_creation','Chemical_Equation',))\r
- lStabilizationCoche=editor.getValeur('Modele','listeEquation_stabilization', ('b_type_creation','Chemical_Equation',))\r
-\r
- print (lInitialCoche,lInititiationCoche,lPropagationCoche,lTerminationCoche,lStabilizationCoche)\r
- for liste in (lInitialCoche,lInititiationCoche,lPropagationCoche,lTerminationCoche,lStabilizationCoche):\r
- # Il est possible qu'une liste soit vide lors de l initialisation\r
- if liste == None : continue \r
- for equation in liste :\r
- print (equation)\r
- for const in maClasseDelistesDB.dictParametresInitiaux[equation].constituants :\r
- if const not in maClasseDelistesDB.listeParametresInitiaux : maClasseDelistesDB.listeParametresInitiaux.append(const)\r
- #for coef in maClasseDelistesDB.dictParametresInitiaux[equation].const_cine_nom :\r
- # if coef not in maClasseDelistesDB.listeCoefInitiaux : maClasseDelistesDB.listeCoefInitiaux.append(coef)\r
- for num,coef in enumerate(maClasseDelistesDB.dictParametresInitiaux[equation].const_cine_nom ):\r
- maClasseDelistesDB.dicoCoefAffichageArr[coef]=maClasseDelistesDB.dictParametresInitiaux[equation].arrhenius[num]\r
- if coef not in maClasseDelistesDB.listeCoefInitiaux : maClasseDelistesDB.listeCoefInitiaux.append(coef)\r
-\r
- #print('maClasseDelistesDB.dictParametresInitiaux', maClasseDelistesDB.dictParametresInitiaux)\r
- if monMCNom == 'Diffusion' :\r
- change=editor.changeIntoDefMC('Modele', ('b_type_creation','Transport','b_diffusion','listeProduitPourLaDiffusion'), maClasseDelistesDB.listeParametresInitiaux )\r
- if monMCNom == 'Evaporation' :\r
- change=editor.changeIntoDefMC('Modele', ('b_type_creation','Transport','b_evaporation','listeProduitPourLEvaporation'), maClasseDelistesDB.listeParametresInitiaux )\r
-\r
- if monMCNom in ('Evaporation','Diffusion') :\r
- for c in list(monModele.coef[0].keys()) :\r
- if c[0]=='D':\r
- clef=c[1:]\r
- if clef in maClasseDelistesDB.listeParametresInitiaux :\r
- maClasseDelistesDB.listeCoefD.append(clef)\r
- maClasseDelistesDB.listeCoefInitiaux.append('D'+clef)\r
- maClasseDelistesDB.listeCoefInitiaux.append('S'+clef)\r
- else :\r
- maClasseDelistesDB.listeCoefASupprimer.append('S'+clef)\r
- maClasseDelistesDB.listeCoefASupprimer.append('D'+clef)\r
- if c[0]=='B':\r
- clef=c[1:]\r
- if clef in maClasseDelistesDB.listeParametresInitiaux :\r
- maClasseDelistesDB.listeCoefB.append(clef)\r
- maClasseDelistesDB.listeCoefInitiaux.append(c)\r
- else :\r
- maClasseDelistesDB.listeCoefASupprimer.append(c)\r
- print ('aClasseDelistesDB.listeCoefB',maClasseDelistesDB.listeCoefB)\r
- print ('aClasseDelistesDB.listeCoefB',maClasseDelistesDB.listeCoefD)\r
- print ('maClasseDelistesDB.listeCoefInitiaux',maClasseDelistesDB.listeCoefInitiaux)\r
- print ('maClasseDelistesDB.listeCoefASupprimer',maClasseDelistesDB.listeCoefASupprimer)\r
- print ('maClasseDelistesDB.listeParametresInitiaux',maClasseDelistesDB.listeParametresInitiaux)\r
- # au lieu des print il faut mettre a jour le MC Fact Coefficients avec ,maClasseDelistesDB.listeCoefInitiaux et le MC FACT\r
- # Paraetres_initiaux avec maClasseDelistesDB.listeParametresInitiaux\r
- # TO DO TO DO PNPN\r
- # si on arrive avex\r
- # if monMC.nom = Diffusion \r
- if monMCNom == 'Diffusion' :\r
- editor.setValeur('Modele','listeProduitPourLaDiffusion' ,maClasseDelistesDB.listeCoefD, ('b_type_creation','Transport','b_diffusion',))\r
- #editor.changeValeur(....,'listeProduitPourLaDiffusion',maClasseDelistesDB.listeCoefD')\r
- # if monMCNom == 'Evaporation' :\r
- #editor.changeValeur(....,'listeProduitPourLaDiffusion',maClasseDelistesDB.listeCoefB')\r
-\r
-\r
-\r
-def ajouteEvaporation(monMC):\r
- print ('je suis dans ajouteDiffusion')\r
- if monMC.valeur == None : return\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- editor=monMC.jdc.editor\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
-\r
- monMC.dsMaFunct=True\r
- for v in monMC.valeur :\r
- clef='B'+v\r
- if clef not in maClasseDelistesDB.listeCoefInitiaux :\r
- maClasseDelistesDB.listeCoefInitiaux.append(clef)\r
-\r
- print ('sortie de ajouteDiffusion' , maClasseDelistesDB.listeCoefInitiaux)\r
- monMC.dsMaFunct=False\r
- editor.dsMaFunct = False\r
-\r
-def ajouteDiffusion(monMC):\r
- print ('je suis dans ajouteDiffusion')\r
- if monMC.valeur == None : return\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- editor=monMC.jdc.editor\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
-\r
- monMC.dsMaFunct=True\r
- for v in monMC.valeur :\r
- clef='D'+v\r
- if clef not in maClasseDelistesDB.listeCoefInitiaux :\r
- maClasseDelistesDB.listeCoefInitiaux.append(clef)\r
- maClasseDelistesDB.listeCoefInitiaux.append('S'+v)\r
- maClasseDelistesDB.dicoCoefAffichageArr[clef] = True\r
- maClasseDelistesDB.dicoCoefAffichageArr['S'+v] = False\r
- #maClasseDelistesDB.dicoCoefAffichageArr['B'+v] = True\r
- \r
- # on affiche dans l interface un mot clef avec clef comme nom et \r
- # 2 reels si ce commence par D soit iniitialise a 0 si pas de valeur\r
- # soit avec comme deifaut nomCoef in monModele.coef[0].keys()\r
- print ('sortie de ajouteDiffusion' , maClasseDelistesDB.listeCoefInitiaux)\r
-\r
- for nomCoef in maClasseDelistesDB.listeCoefInitiaux:\r
- #A jout Ds Coef d'un MC \r
- nomMC='Coef_'+nomCoef \r
- if maClasseDelistesDB.dicoCoefAffichageArr[nomCoef] == True:\r
- print ('2 r'), \r
- if nomCoef in monModele.coef[0].keys() :\r
- print (monModele.coef[0][nomCoef])\r
- else :\r
- print ((0,0))\r
- else :\r
- print ('1 r') \r
- if nomCoef in monModele.coef[0].keys() :\r
- print (monModele.coef[0][nomCoef])\r
- else :\r
- print (0)\r
-\r
- print ('______________________')\r
- #for v in monMC.valeur :\r
- # print (v)\r
- # mesValeurs=editor.dicoCoefS[v]\r
- # MCFils='S'+v\r
- # for e in monMC.jdc.etapes:\r
- # if e.nom == 'Modele' :break\r
- # editor.ajoutDefinitionMC(e,('b_type_creation','b_diffusion'),MCFils,typ='TXM',statut='o' )\r
- # editor.ajoutMC(e,MCFils,mesValeurs,('b_type_creation','b_diffusion',))\r
- # print ('______')\r
- #if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
- monMC.dsMaFunct=False\r
- editor.dsMaFunct = False\r
-\r
-\r
-# --------------------------------------------------------------------------------------------\r
-# pour les modeles en modification ou en utilisation\r
-# --------------------------------------------------------------------------------------------\r
-def creeListeMateriauxSelonModele(monMC):\r
- if monMC.valeur == None : return\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- editor=monMC.jdc.editor\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
-\r
- valeurDB=editor.getValeur('Modele','Modele_DB',())\r
- maClasseDelistesDB.metAJour(valeurDB)\r
- listModele=maClasseDelistesDB.getListModele()\r
- listModeleFiltre=[]\r
- listMateriauxFiltre=[]\r
- for modele in listModele :\r
- if modele.technical_use == monMC.valeur :\r
- maClasseDelistesDB.dicoModeleFiltre[modele.nom]=modele\r
- listModeleFiltre.append(modele.nom)\r
- if type(modele.materiaux) not in (list, tuple): modeleATraiter= modele.materiaux\r
- else : modeleATraiter= modele.materiaux[0]\r
- if modeleATraiter not in listMateriauxFiltre :\r
- listMateriauxFiltre.append(modeleATraiter)\r
- maClasseDelistesDB.dicoMateriauxFiltre[modeleATraiter]=[modele.nom,]\r
- else :\r
- maClasseDelistesDB.dicoMateriauxFiltre[modeleATraiter].append(modele.nom)\r
- \r
- \r
-\r
- change=editor.changeIntoDefMC('Modele', ('b_type_modification','b_technicalUse','material'),listMateriauxFiltre )\r
-\r
- monMC.dsMaFunct=False\r
- editor.dsMaFunct = False\r
-\r
-def creeListeModelesPossibles(monMC):\r
- if monMC.valeur == None : return\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- editor=monMC.jdc.editor\r
- if hasattr(editor,'dsMaFunct') and editor.dsMaFunct== True : return\r
- change=editor.changeIntoDefMC('Modele', ('b_type_modification','b_technicalUse','modele'),maClasseDelistesDB.dicoMateriauxFiltre[monMC.valeur] )\r
-\r
- monMC.dsMaFunct=False\r
- editor.dsMaFunct = False\r
-\r
-def choisitModele(monMC):\r
- # Equation b_modification modification\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- valeur=monMC.valeur\r
- if valeur == None : return\r
- modele=maClasseDelistesDB.dicoModeleFiltre[monMC.valeur]\r
- maClasseDelistesDB.monModele=modele\r
- monMC.dsMaFunct = False\r
-\r
-def choisitActionModele(monMC):\r
- if monMC.valeur == 'display' : afficheModele(monMC)\r
- if monMC.valeur == 'modify' : changeValeurDefautModele(monMC)\r
-\r
-def afficheModele(monMC):\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- valeur=monMC.valeur\r
- aAfficher=str(maClasseDelistesDB.monModele)\r
- editor=monMC.jdc.editor\r
- editor._viewText(aAfficher, "Id",largeur=700,hauteur=500)\r
- \r
- monMC.dsMaFunct = False\r
- \r
-def changeValeurDefautModele(monMC):\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- monMC.dsMaFunct = True\r
- editor=monMC.jdc.editor\r
- change=editor.changeIntoMCandSet('Modele', ('b_type_modification','b_technicalUse','b_modele','b_type_modify','ID','modeleName'),(maClasseDelistesDB.monModele.nom,),maClasseDelistesDB.monModele.nom, )\r
- editor.setValeur('Modele','technicalUse',maClasseDelistesDB.monModele.technical_use, ('b_type_modification','b_technicalUse','b_modele','b_type_modify','ID'))\r
-\r
- editor.setValeur('Modele','material',maClasseDelistesDB.monModele.materiaux, ('b_type_modification','b_technicalUse','b_modele','b_type_modify','ID'))\r
- editor.setValeur('Modele','agingType',maClasseDelistesDB.monModele.type_vieil, ('b_type_modification','b_technicalUse','b_modele','b_type_modify','ID'))\r
-\r
- if maClasseDelistesDB.monModele.stabilise == 'True' : monBool = True\r
- else : monBool = False\r
- editor.setValeur('Modele','stabilizer',monBool, ('b_type_modification','b_technicalUse','b_modele','b_type_modify','ID'))\r
- editor.setValeur('Modele','material_thickness',maClasseDelistesDB.monModele.thickness, ('b_type_modification','b_technicalUse','b_modele','b_type_modify','ID'))\r
-\r
- if maClasseDelistesDB.monModele.dvt_EDF == 'True' : monBool = True\r
- else : monBool = False\r
- editor.setValeur('Modele','model_developed_by_for_EDF',monBool, ('b_type_modification','b_technicalUse','b_modele','b_type_modify','ID'))\r
- editor.setValeur('Modele','documentation',maClasseDelistesDB.monModele.reference, ('b_type_modification','b_technicalUse','b_modele','b_type_modify','ID'))\r
- if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
- monMC.dsMaFunct = False\r
-\r
-\r
-\r
-def creeCoefAModifier(monMC):\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- if monMC.valeur == None : return\r
- monMC.dsMaFunct = True\r
- editor=monMC.jdc.editor\r
- dicoArr={}\r
- dicoNonArr={}\r
- for coef in maClasseDelistesDB.monModele.coef[0] :\r
- if len (maClasseDelistesDB.monModele.coef[0][coef]) == 1 :\r
- dicoNonArr[coef]=maClasseDelistesDB.monModele.coef[0][coef][0]\r
- else :\r
- dicoArr[coef]=maClasseDelistesDB.monModele.coef[0][coef]\r
- if coef[0] == 'D' : maClasseDelistesDB.listeDiffusion.append(coef[1:])\r
- print (dicoNonArr)\r
- print (dicoArr)\r
- if 'ri' in dicoNonArr :\r
- print ('ajoutDefinitionMC debitOfDose')\r
- editor.ajoutDefinitionMC('Modele', ('b_type_modification','b_technicalUse','b_modele','b_type_use2','Aging_Factor'), 'debitOfDose',typ='R',statut='o' )\r
-\r
- for coef in dicoNonArr :\r
- print (coef)\r
- # attention, notation scientifique\r
- editor.ajoutDefinitionMC('Modele',('b_type_modification','b_technicalUse','b_modele','b_type_use',),coef, 'R', statut='o',defaut=dicoNonArr[coef])\r
- # a faire marcher\r
- # pour les Arr il faut un tuple(2)\r
- \r
- # il fait creer un fact Boundary_Conditions_Param pour chacque espece de listeDiffusion\r
- \r
- if editor.fenetreCentraleAffichee : editor.fenetreCentraleAffichee.node.affichePanneau()\r
-\r
- monMC.dsMaFunct = False\r
-\r
-\r
-def remplirAgingFactor(monMC):\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- if monMC.valeur == None : return\r
- monMC.dsMaFunct = True\r
- editor=monMC.jdc.editor\r
- if monMC.valeur in dicoAgingFactor:\r
- print (monMC.valeur, 'trouve')\r
- for MC in dicoAgingFactor[monMC.valeur]:\r
- print (MC)\r
- print (dicoAgingFactor[monMC.valeur][MC]),\r
- editor.setValeur('Modele',MC,dicoAgingFactor[monMC.valeur][MC],('b_type_modification','b_technicalUse','b_modele','b_type_use2','Aging_Factor'))\r
- monMC.dsMaFunct = False\r
-\r
-\r
-def creeInitialParameter(monMC):\r
- print ('je passe dans creeInitialParameter')\r
- if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
- if monMC.valeur == None : return\r
- monMC.dsMaFunct = True\r
- editor=monMC.jdc.editor\r
- for coef in maClasseDelistesDB.monModele.param_ini:\r
- editor.ajoutDefinitionMC('Modele',('b_type_modification','b_technicalUse','b_modele','b_type_use2','Initial_Parameter'),coef, 'R', statut='o',defaut=maClasseDelistesDB.monModele.param_ini[coef][0])\r
- monMC.dsMaFunct = False\r
- # creer nbdenode = monMC.valeur Initial_Parameter\r
+import logging
+import types
+import os
+
+from mapy.virtual_polymer_common import class_data, pckdb
+from mapy.virtual_polymer_common import for_eficace
+#database='/home/A96028/MAPVp/my_map_installdir/share/map/tests/components/c_pre_polymer_data_management/local/'
+database='/home/A96028/MAPVp/my_map_installdir/share/map/tests/components/c_pre_polymer_kinetics_study/local/'
+
+
+# --------------------------------------
+class sModele :
+# --------------------------------------
+
+ _instance = None
+
+ def __new__(cls, *args, **kwargs):
+ if not cls._instance:
+ cls._instance = super(sModele, cls).__new__(
+ cls, *args, **kwargs)
+
+ return cls._instance
+
+ def __init__ (self):
+ self.dicoTU = {}
+ self.dicoTUForCreation = {}
+ self.valeurTUEnCours = None
+ self.valeurModeleNameEnCours = None
+ self.dicoAnalytic = None
+ self.valeurEquationEnCours = None
+ self.valeurTUEnCoursForCreation = None
+
+monModele=sModele()
+
+
+# --------------------------------------
+# decorateur
+# --------------------------------------
+def entoure(func):
+ def wrapper( monMC):
+ if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return
+ editor=monMC.jdc.editor
+ monMC.dsMaFunct = True
+ retour =func(monMC,editor)
+ monMC.dsMaFunct = False
+ return wrapper
+
+# --------------------------------------
+# MECHANISTIC
+# --------------------------------------
+
+# __________________ Creation ___________________
+@entoure
+def remplitChimicalKineticsMechanistic(monMC, editor) :
+ print ('in remplitChimicalKinetics')
+ etape=monMC.getEtape()
+ valeurModeleName=monMC.valeur
+ monModele.valeurModeleNameEnCours=valeurModeleName
+ dico=monModele.dicoTU[monModele.valeurTUEnCours][valeurModeleName]
+ if 'debit_of_dose' in dico :
+ change = editor.ajoutMCinMCFactUnique(etape,'DebitOfDose', None ,('b_mechanistic','ChimicalKinetics'))
+ if 'initial_parameter' in dico :
+ valeurs=[]
+ for k in dico['initial_parameter'].keys():
+ # on prend la 1ere valeur
+ valeurs.append((k,dico['initial_parameter'][k][0]))
+ change = editor.ajoutMCinMCFactUnique(etape,'InitialValue', valeurs ,('b_mechanistic','ChimicalKinetics'))
+ #dico['diffusion']=('O2','POOH')
+ # PNPN a developper
+ if 'diffusion' in dico and dico['diffusion'] != [] :
+ change = editor.ajoutMCFact(etape,'Boundary_Conditions_Param', ('b_mechanistic',))
+ #for produit in dico['diffusion'] :
+ # il faut ajouter les produits en tant que FACT et y mettre le nom
+
+
+@entoure
+def remplitMechanisticModeleName(monMC, editor) :
+ print ('in remplitMechanisticModeleName')
+ etape=monMC.getEtape()
+ valeurTU=monMC.valeur
+ dico = for_eficace.filtre_calculation_mechanistic(database, valeurTU)
+ monModele.dicoTU[valeurTU]=dico
+ monModele.valeurTUEnCours=valeurTU
+
+ listeModeleName=list(dico.keys())
+ change = editor.changeIntoDefMC(etape,('b_mechanistic','ModeleName'),listeModeleName)
+
+
+
+# __________________ Modification ___________________
+
+@entoure
+def remplitMechanisticModifyEquationListeEquation(monMC, editor):
+ print ('in remplitMechanisticModifyEquationListeEquation')
+ etape=monMC.getEtape()
+ valeurTU=monMC.valeur
+ print (valeurTU)
+ dico = for_eficace.filtre_calculation_mechanistic(database, valeurTU)
+ print (' --------------------')
+ print (database)
+ print (valeurTU)
+ print (dico)
+ print (' --------------------')
+ monModele.dicoTUForCreation[valeurTU]=dico
+ monModele.valeurTUEnCoursForCreation=valeurTU
+
+ listeEquation=list(dico.keys())
+ print (listeEquation)
+ change = editor.changeIntoDefMC(etape,('b_mechanistic','b_modify_equation','Filtre','Equation_List'),listeEquation)
+ print (change)
+
+
+@entoure
+def remplitModificationEquation(monMC, editor) :
+ print ('in remplitMechanisticModify')
+
+# --------------------------------------
+# ANALYTIC
+# --------------------------------------
+
+@entoure
+def remplitAnalyticModeleName(monMC,editor) :
+ print ('in prepareAnalytic')
+ etape=monMC.getEtape()
+ equationTy=monMC.valeur
+ dico = for_eficace.filtre_calculation_analitic(database, equationTy)
+ monModele.dicoAnalytic=dico
+ monModele.valeurEquationEnCours=equationTy
+
+ listeModeleName=list(dico.keys())
+ change = editor.changeIntoDefMC(etape,('b_analytic_model','ModeleName'),listeModeleName)
+
+@entoure
+def remplitChimicalKineticsAnalytic(monMC, editor) :
+ print ('in remplitChimicalKineticsAnalytic')
+ etape=monMC.getEtape()
+ valeurModeleName=monMC.valeur
+ monModele.valeurModeleNameEnCours=valeurModeleName
+ dico=monModele.dicoAnalytic[valeurModeleName]
+ if 'coef' in dico :
+ valeurs=[]
+ for k in dico['coef'].keys():
+ valeurs.append((k,float(dico['coef'][k])))
+ change = editor.ajoutMCinMCFactUnique(etape,'Coefficients', valeurs ,('b_analytic_model','ChimicalKinetics'))
+ #dico['diffusion']=('O2','POOH')
+
+
+
+#def filtre_calculation_mechanistic (dbdescription, technical_use):
+#def filtre_calculation_analitic (dbdescription, technical_use):
+#def filtre_data_model (dbdescription, physical,technical_use):
+#def analytic_equation_creaction():
+#
+if __name__=='__main__':
+ print ('in lienDB')