]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
pour sauvegarde en raison du bruit sur mon disque
authorpascale.noyret <pascale.noyret@edf.fr>
Tue, 26 Feb 2019 17:18:23 +0000 (18:18 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Tue, 26 Feb 2019 17:18:23 +0000 (18:18 +0100)
JP/cata_JP.py [new file with mode: 0755]
JP/prefs.py [new file with mode: 0644]
JP/prefs_JP.py [new file with mode: 0644]
JP/qtEficasJP.py [new file with mode: 0755]
VirtualPolymer/VP_Cata_Calculation.py [new file with mode: 0644]
VirtualPolymer/VP_Cata_Database.py [new file with mode: 0644]
VirtualPolymer/lienDB.py
VirtualPolymer/prefs_VP.py

diff --git a/JP/cata_JP.py b/JP/cata_JP.py
new file mode 100755 (executable)
index 0000000..b301d37
--- /dev/null
@@ -0,0 +1,299 @@
+#  coding: utf-8 -*-
+#
+#  Copyright (C) 2012-2013 EDF
+#
+#  This file is part of SALOME HYDRO module.
+#
+#  SALOME HYDRO module is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  SALOME HYDRO module 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 General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+import types
+from Accas import *
+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
+
+
+
+dico_Modeles_Numeriques = {
+   'DPD' : { 'hybride': ('hybride_microscopic', 'hybride_macroscopic SPDP'),
+             'standalone' : ('DPD'),
+           }
+}
+def description_manuelle_particule_DEM():
+   return FACT(statut ='o', max= "**",
+      Position          =  SIMP(statut='o', typ='R', max=3, min =3),
+      Vitesse           =  SIMP(statut='o', typ='R', max=3, min =3),
+      Vitesse_Rotation  =  SIMP(statut='o', typ='R', max=3, min =3 ),
+           )
+
+def description_manuelle_particule_cinetique():
+   return FACT(statut ='o', max= "**",
+      Position =  SIMP(statut='o', typ='R', max=3, min =3),
+      Vitesse  =  SIMP(statut='o', typ='R', max=3, min =3),
+           )
+
+def description_manuelle_particule_cinetique_etendue():
+   return FACT(statut ='o', max= "**",
+      Position      =  SIMP(statut='o', typ='R', max=3, min =3),
+      Vitesse       =  SIMP(statut='o', typ='R', max=3, min =3),
+      Temperature   =  SIMP(statut='f', typ='R', ),
+      Diffusivite   =  SIMP(statut='f', typ='R'),
+      Concentration =  SIMP(statut='f', typ='R'),
+)
+
+def bloc_description_particule_fichier ():
+    return BLOC ( condition = 'type_description_particule == "fichier"',
+           fichier_particules= SIMP(statut='o', typ = ('Fichier','All Files (*)'),),
+           format_fichier = SIMP (statut='o', typ = 'TXM', into = ['txt', 'a definir avec Eric']),
+      ) 
+
+def bloc_description_particule_manuelle (fonction_type_de_description) :
+    return BLOC ( condition = 'type_description_particule == "manuelle"',
+        Nombre_D_Especes = SIMP(statut = 'o', typ = 'I', defaut =1,),
+        Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = " definir autant d espece que le  nombre d especes"),
+        Espece = FACT ( statut='o', max = "**",
+            Particule = apply(fonction_type_de_description),
+             ), # fin  fact Espece
+      )  # end b_manuelle
+
+def bloc_description_particule_tableau (nbReels, labels):
+      return BLOC ( condition = 'type_description_particule == "tableau"',
+        Nombre_D_Especes = SIMP(statut = 'o', typ = 'I', defaut =1,),
+        Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = " definir autant d espece que le  nombre d especes"),
+        Espece = FACT ( statut='o', max = "**",
+             Particules = SIMP( fenetreIhm='Tableau', homo = labels,
+                                statut='o', min=2, max='**',
+                                typ = Tuple(nbReels),
+                                validators=VerifTypeTuple(("'R',"*nbReels),),) # end Particule
+             ), # fin  fact Espece
+      )  # end b_tableau
+
+dict_Composant = { "Cas Silvia" : ['Particule'],
+                   "Ecoulement_diphasique_disperse" : ['Particule', 'Fluide','Solide','Plasma','Particule']
+                 }
+JdC = JDC_CATA()
+
+
+Etude = PROC (nom = 'Etude',
+   Titre =  SIMP(statut='o', typ = 'TXM'),
+
+   Domaine_Geometrique= FACT( statut='o',
+   Forme =  SIMP(statut='o', typ = 'TXM',into = ['Forme Simplifiee', 'CAO']),
+   b_Forme = BLOC( condition = 'Forme == "Forme Simplifiee"',
+          Boite = SIMP(statut='o', typ = 'TXM',into = ['Cube', 'Sphere']),  
+             ),
+   ),
+
+   Systeme_Global= FACT(  statut='o',
+     Type_De_Systeme =  SIMP(statut='o', typ = 'TXM',into = ['Ecoulement_diphasique_disperse', 'Cas Silvia']),
+
+     # PN pour XSD
+     #b_Type_Silvia = BLOC( condition = 'Type_Definition == "Cas Silvia"',
+     #     Composant = SIMP( statut='o', typ = 'TXM',into = ['Particule', 'Fluide'], max='**'),  
+     #),
+     #b_Type_Ecoulement = BLOC( condition = 'Type_Definition == "Ecoulement_diphasique_disperse"',
+          Composant = SIMP(statut='o', typ = 'TXM',into = ['Particule', 'Fluide','Solide','Plasma','Particule'], max="**"),  
+     #),
+
+     Niveau_De_Description = FACT ( min=1, max= 2, statut='o', 
+       Niveau_De_Description_Generale = SIMP( statut ='o', typ = 'TXM',into = ['Microscopique','Mesoscopique', 'Macroscopique']),
+
+       b_Mesoscopique                 = BLOC( condition = "Niveau_De_Description_Generale == 'Mesoscopique'",
+          Description_Physique = FACT( statut = 'o',
+             Nombre_D_Especes  = SIMP( statut = 'o', typ = 'I', defaut =1, position ='global_jdc'),
+             Espece = FACT( statut='o', max = "**",
+                Nom_De_L_Espece     = SIMP( statut='o', typ = 'TXM'),
+                Masse_Molaire       = SIMP( statut='o', typ='R',),
+                Proportion_En_Nbre_Ou_Masse = SIMP(statut='f', typ='R',),  
+                b_Electostatique    = BLOC( condition = "electrostatics == True",
+                   Charge = SIMP( statut = 'o', typ =  'R')
+                ) # fin b_electorsatique
+             ), # fin Espece   
+
+          Electrostatics  = SIMP( statut='o', typ=bool, defaut=False, position ='global'),
+          b_Electrostatics= BLOC( condition = 'electrostatics == True',
+             Definition_Electrostatic = FACT ( statut ='o',
+                Type_Interaction         = SIMP ( statut ='o', typ = 'TXM', into = ['champ moyen', 'interparticulaire']),
+                b_Interparticulaire      = BLOC( condition = 'type_interaction == "interparticulaire"',
+                   Interactions_Par_Particule =  FACT( statut='o', min = 1,  max = "**", #  min=n, max=n(n+1)/2
+                      Nom_Des_Especes = SIMP ( statut ='o', typ = 'TXM', min=2, max=2),
+                   ), # fin Interactions_par_particule
+                ), # fin b_interparticulaire
+             ), # fin definition_electrostatic
+          ), # fin b_Electrostatics
+
+          InterActions_Interparticulaires = FACT( statut='o', min = 1,  max = "**", # n  n(n+1)/2
+             Nom_Des_Especes = SIMP ( statut ='o', typ = 'TXM', min=2, max=2),
+          ), # InterActions_interparticulaires
+
+
+          Physique_Statistique_Equilibre   =  SIMP( statut='o', typ=bool, defaut=False, position ='global'),
+          b_Physique_Statistique_Equilibre =  BLOC( condition = "Physique_statistique_equilibre == True",
+             Distribution = SIMP(statut='o', typ='TXM', defaut='nvt', into=['nvt','nve']),
+             b_Nvt = BLOC ( condition = "distribution == 'nvt'",
+                Target_Temperature = SIMP( statut='o', typ='R')
+             ), # fin b_nvt
+             b_nve = BLOC ( condition = "distribution == 'nve'",
+                Target_Energie = SIMP( statut='o', typ='R')
+             ), # fin b_nve
+          ), # b_Physique_statstique_equilibre
+         ), # Description_Physique
+     
+         Type_De_Description = FACT( min=1, max =2, statut='o', 
+             Type_Description = SIMP( statut ='o', typ = 'TXM',into = ['Description_par_Particule', 'Description_par_Champ'], defaut = 'Description_par_Particule'),
+             b_Particule = BLOC( condition = 'Type_De_Description == "Description_par_Particule"',
+                Modele_De_Particule = FACT ( statut='o', max ='**',
+                   Type_D_Entite = SIMP(statut='o', typ = 'TXM',into =['Coarse', 'Atom'], defaut='Coarse'),
+                   Vecteur_Etat_Cinetique = SIMP( fenetreIhm='Tableau', homo = ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz',),
+                                statut='o', min=2, max='**',
+                                typ = Tuple(6),
+                                validators=VerifTypeTuple(('R','R','R','R','R','R'),),), # end Particule
+
+                ), # Modele_De_Particule
+                Modele_Numerique = FACT ( statut='o', 
+                   Modele_Numerique = SIMP (statut = 'o', typ = 'TXM', into = ['MD', 'DPD'], defaut ='DPD'), 
+                   b_DPD = BLOC(condition = 'Modele_Numerique == "DPD"' ,
+                      Structure_Loi_evolution = SIMP (statut = 'o', typ = 'TXM', into = ['Equations de Langevin']),
+              # a faire en fonction et projection des types fonctions en XSD a reflechir
+                      Species_Pair_Parameters = FACT(statut='o', max="**",
+                      #Consigne = SIMP(statut ="o", homo="information", typ="TXM", defaut = "renvoie a InterActions_interparticulaires "),
+                         Pair_Interaction = SIMP(statut ='o', max=2, typ = 'TXM'),
+                         # lennard_jones si MD et groot_warren DPD
+                         Species_Pair_Parameters_Potential_Type   = SIMP( statut='o', typ='TXM',into=['groot_warren','lennard_jones']),
+                         b_Parameters_Potential_Type_Groot_Warren = BLOC( condition= "species_pair_parameters_potential_type == 'groot_warren'",
+                            Groot_Warren_Repulsion = SIMP( statut='o',typ='R',defaut=25.0,val_min=0),
+                            Groot_Warren_Cutoff    = SIMP( statut='o',typ='R',defaut=1.0,val_min=0),
+                         ), # b_parameters_potential_type_groot_warren
+                        Drag_Coefficient  = SIMP( statut='o', typ='R'),
+                        Drag_Force_Cutoff = SIMP( statut='o', typ='R', val_min=0, ),
+                      ), # species_pair_parameters
+
+                   ), # b_DPD
+                ), # Modele_Numerique
+             ), # b_Particule
+          
+         ), # Type_De_Description
+        ), # bloc b_Mesoscopique 
+     ), # Niveau_De_Description
+   
+              #electrostatics_is_on = SIMP(statut='o', typ=bool, defaut=False)
+#   Temps_Physique_Simule 
+    ), # fin Systeme_Global
+
+) #  Etude
+
+#   # Systeme physique : met en oeuvre 1 ou plusieurs des 4 entites  ELectron
+#   #  Atome Coarse CVE (en check) but de l etude
+#   # plasma, solid, fluid , particule
+#   # met en oeuvre des composants principaux puis a quel niveau 
+#   # sous systeme physique elementaire pour composant principal
+#   # 
+#   Niveau_De_Description =  SIMP(statut='o', max= '**',typ ='TXM', into = ['Microscopic','Mesoscopic', 'Macroscopic',], homo= 'SansOrdreNiDoublon',position='global')  ,
+#   Type_De_Description =  SIMP( statut='o',  max= '**',homo ='SansOrdreNiDoublon',typ ='TXM', into = ['Modele Particulaire','Particulaire Stochastique','Automate sur reseau','Lagrangien Stochastique'],position='global') ,
+#   Modele_numeric =  SIMP( statut='o',  max= '**',homo ='SansOrdreNiDoublon',typ ='TXM', into = ['MD','DPD', 'DEM', 'CFD','LBM'],position='global') ,
+#   # selon les types de description on aura un modele de description de particules =
+#   # vecteur d etat ( approche cinetique et approche cinetique etendue ( electromagnetisme ou charge ...)) (independant du nb d espece)
+#   # on peut avoir des vecteurs d etat differents pour chacune des especes mais un vecteur d etat seulement par espece (differentes especes )
+#   # 
+#   #
+#   # en ddp la loi de comportement est donnée
+#   # DPD - > approche cinetique
+#   #       on choisit la structure de loi d evolution = langevin
+#   #       expression de la force conservative = loi de comportement (p33) _ MR (0 ou n)
+#   #       pour la m loi d evolution avec parametres fixes standalone
+#   #       pour la m loi d evolution avec parametres sont donnes par  1 ou +sieurs calculs (surtout en CFD pour +sieurs calcul pour chaque niveau) (hybride)
+#   #       on pourrait ne pas avoir de loi de comportement mais des parametres de la loi d evolution
+#   #       fermeture des contraintes : q faire sur une quantite numerique
+#   #   il y a des familles de structure de loi d evolution en fonction du couple ( modele de description et du modele numerique )   
+#   # DPD :  1 structure de loi d evolution : 3 termes
+#   # 1 et 1 seule structure de loi d evolution par modele numerique (inverse pas vrai : si langevin par forcement DPD)
+#   #Entite =  SIMP(statut='o',  max= '**',homo ='SansOrdreNiDoublon',typ ='TXM', into = ['element','atomic', 'grain', 'CVE (cont volume)'],position='global'), 
+#   #method_numeric = SIMP(statut='o', typ ='TXM', into = ['DPD ', 'SDPD']),
+#   type_de_methode=  SIMP(statut='o', typ ='TXM', into = ['stand_alone', 'hybride']) 
+#   # MD  = molecular dynamics (= microscopic)
+#   # CFD = computational fluid dynamics (= macroscopic) 
+#   # DPD = Dissipative Particule dynamics (= meso)  
+#   # DEM = Discrete Element Method 
+#   # ----------------------------------------------
+#   #b_DEM = BLOC (condition = 'Type_Etude == "DEM"',
+#   # ----------------------------------------------
+#   #   type_description_particule =  SIMP(statut = 'o', typ ='TXM', into =['fichier', 'tableau', 'manuelle'],position = 'global'),
+#   #   b_fichier = bloc_description_particule_fichier(),
+#   #   b_tableau = bloc_description_particule_tableau (9, ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz','Rx','Ry','Rz')),
+#   #   b_manuelle = bloc_description_particule_manuelle(description_manuelle_particule_DEM),
+#   # ), # fin b_DEM
+#
+#   # ------------------------------------------------
+##    b_CFD = BLOC (condition = 'Type_Etude == "CFD"',
+##   # -----------------------------------------------
+##     Ecoulement = SIMP(statut='o', typ ='TXM', into = ['Laminaire','Turbulent']),
+##     FLuid = FACT( statut = 'o', 
+##          Masse_Volumique          =  SIMP(statut='o', typ='R', ),
+##          Viscosite_cinetique      =  SIMP(statut='o', typ='R', ),
+##          Diffusivite_thermique    =  SIMP(statut='f', typ='R', ),
+##          Diffusivite_des_especes  =  SIMP(statut='f', typ='R', max = '**'),
+##           ),
+##     
+##     #Particule = FACT( statut = 'o', max="**",
+##     #  Description_Cinetique =   Description_manuelle_Particule_Cinetique_etendue(),
+##     #  ),
+##     # type_description_particule =  SIMP(statut = 'o', typ ='TXM', into =['fichier', 'tableau', 'manuelle'],position = 'global'),
+##     # b_fichier = bloc_description_particule_fichier(),
+##      #b_tableau = bloc_description_particule_tableau (9, ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz','Rx','Ry','Rz')),
+##    ),  # fin b_CFD
+##
+##    b_MD = BLOC (condition = 'Type_Etude == "MD"',
+##     type_description_particule =  SIMP(statut = 'o', typ ='TXM', into =['fichier', 'tableau', 'manuelle'],position = 'global'),
+##     b_fichier = bloc_description_particule_fichier(),
+##     b_tableau = bloc_description_particule_tableau (6, ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz')),
+##     b_manuelle = bloc_description_particule_manuelle(description_manuelle_particule_cinetique),
+##
+##     Materiel_Relation = FACT( statut ='f',
+##         Entree_Possible= SIMP(statut='o', typ ='TXM', into = ['calcul', 'fichier']),
+##          b_fichier =   BLOC (condition = "Entree_Possible == 'fichier'",
+##             fichier_MR= SIMP(statut='o', typ= ('Fichier','All Files (*)')),
+##                            ),
+##          ),
+##    ), # fin b_MD
+##  # ---------------------------------------------
+##  b_DPD = BLOC (condition = 'Type_Etude == "DPD"',
+##  # ---------------------------------------------
+##   type_description_particule =  SIMP(statut = 'o', typ ='TXM', into =['fichier', 'tableau', 'manuelle'],position = 'global'),
+##   b_fichier = bloc_description_particule_fichier(),
+##   b_tableau = bloc_description_particule_tableau (6, ('Ux','Uy', 'Uz,', 'Vx','Vy', 'Vz')),
+##   b_manuelle = bloc_description_particule_manuelle(description_manuelle_particule_cinetique),
+##   Thermostat =  SIMP(statut='o', typ='R', ),
+##     ),
+##)
+###       ),
+###       ),
+#)
+###  #Fluid = SIMP(statut='o', typ ='TXM', into ='Laminaire', 'Trubulent'])
+###  #     Temperature =  SIMP(statut='f', typ='R', ),
+###  #     Concentration =  SIMP(statut='f', typ='R'),
+###  #     Diffusivite =  SIMP(statut='f', typ='R'),
+###  #     Frottement =  SIMP(statut='f', typ='R'),
+###  #     Concentration =  SIMP(statut='f', typ='R'),
+###    #),
+###
+###
diff --git a/JP/prefs.py b/JP/prefs.py
new file mode 100644 (file)
index 0000000..389a6df
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (C) 2007-2012   EDF R&D
+#
+# 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
+#
+code="JP" 
+import sys, os
+if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
+   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
diff --git a/JP/prefs_JP.py b/JP/prefs_JP.py
new file mode 100644 (file)
index 0000000..030a42a
--- /dev/null
@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+#            maConfiguration MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os,sys
+# repIni sert a localiser le fichier editeur.ini
+# Obligatoire
+repIni=os.path.dirname(os.path.abspath(__file__))
+INSTALLDIR=os.path.join(repIni,'..')
+sys.path[:0]=[INSTALLDIR]
+
+
+# lang indique la langue utilisee pour les chaines d'aide : fr ou ang
+lang='fr'
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+encoding='iso-8859-1'
+
+#
+#typeDeCata='XML'
+catalogues=(
+   ('JP','V2017',os.path.join(repIni,'cata_JP.py'),'python','python'),
+)
+#nombreDeBoutonParLigne=4
+#simpleClic=True
+#closeFrameRechercheCommande=True
+#boutonDsMenuBar=False
+#closeArbre=True
+#afficheListesPliees=False
+#afficheCommandesPliees = False
+#enleverActionStructures = True
+#enleverParametres = True
+#enleverSupprimer = True
+#ajoutExecution = True
+#translatorFichier = os.path.join(repIni,'Meteo')
+#withXSD=True
+dumpXSD=True
+#afficheIhm=False
diff --git a/JP/qtEficasJP.py b/JP/qtEficasJP.py
new file mode 100755 (executable)
index 0000000..38a990b
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2013   EDF R&D
+#
+# 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
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Meteo 
+"""
+# Modules Python
+# Modules Eficas
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+import sys
+import os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.lanceEficas(code=prefs.code)
diff --git a/VirtualPolymer/VP_Cata_Calculation.py b/VirtualPolymer/VP_Cata_Calculation.py
new file mode 100644 (file)
index 0000000..1dbe4ff
--- /dev/null
@@ -0,0 +1,87 @@
+# -*- coding: utf-8 -*-
+import os, sys
+import types
+from Accas import *
+
+MAP_DIRECTORY=os.getenv('MAP_DIRECTORY')
+if MAP_DIRECTORY == None  : print ('sourcer l environnement Map SVP'); exit()
+sys.path.append(MAP_DIRECTORY)
+sys.path.append(os.path.join(MAP_DIRECTORY,'lib/python2.7/site-packages/mapy/virtual_polymer_common'))
+sys.path.append(os.path.join(MAP_DIRECTORY,'lib/python2.7/site-packages'))
+
+
+from for_eficace import filtre_calculation_mechanistic
+from for_eficace import filtre_calculation_analitic
+from for_eficace import filtre_data_model
+#print filtre_calculation_analitic
+
+database = os.path.join(MAP_DIRECTORY,'share/map/tests/components/c_pre_polymer_data_management/local/')
+#database="/home/A96028/MAPVp/my_map_installdir/share/map/tests/components/c_pre_polymer_data_management/local/"
+dicoInfoGenerales= {
+           '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'),
+         }
+
+
+dicoTechnicalUse= {}
+for technicalUse in dicoInfoGenerales['Modele_TechnicalUse'] :
+    dicoTechnicalUse[technicalUse] = filtre_calculation_mechanistic(database, technicalUse)
+print (dicoTechnicalUse)
+
+
+# --------------------------- blocPourCalculationForMechanisticSelonModeleTechnicalUse ------------
+
+
+def calculAnalyticalEquations(dicoEquation,modelName):
+    dicoArgs={}
+    print (dicoEquation)
+    dicoArgs['AFAIRE_pour_'+str(modelName)] =  SIMP(statut='o',typ='TXM')
+    return FACT(statut = 'o',**dicoArgs)
+
+def calculChemicalKinetics(dicoEquation,modelName):
+    dicoArgs={}
+    dicoArgs['SimulationName']= SIMP(statut='o',typ='TXM')
+    dicoArgs['Time']          = SIMP(statut='o',typ='R',)
+    dicoArgs['Temperature']   = SIMP(statut='o',typ='R',)
+    dicoArgs['DebitOfDose']   = SIMP(statut='o',typ='R',defaut = dicoEquation['debit_of_dose'])
+    dicoArgs['Thickness']     = SIMP(statut='o',typ='R',)
+    dicoArgs['Dicretization'] = SIMP(statut='o',typ='R',)
+    for (k,v) in dicoEquation['initial_parameter'].items():
+        dicoArgs[k]= SIMP(statut='o',typ='R', defaut=v)
+    return FACT(statut='o',**dicoArgs)
+    
+
+
+def blocPourCalculationForMechanisticSelonModeleTechnicalUse(technicalUse):
+    print ('traitement ', technicalUse)
+    dicoArgs={}
+    condition = "TechnicalUse == '" + technicalUse + "'"
+    ModelName = SIMP(statut='o',typ='TXM', into = dicoTechnicalUse[technicalUse].keys(),)
+    for k in dicoTechnicalUse[technicalUse].keys() :
+       dicoBloc = {}
+       dicoBloc['condition' ] = "ModelName == '" + k + "'"
+       dicoBloc['AnalyticalEquation'+str(k)] = calculAnalyticalEquations(dicoTechnicalUse[technicalUse][k],k)
+       dicoBloc['ChemicalKinetics'] = calculChemicalKinetics(dicoTechnicalUse[technicalUse][k],k)
+       if dicoBloc != None : dicoArgs['b_ModelName_' + k] =  BLOC(**dicoBloc)
+    return BLOC(condition=condition, ModelName = ModelName,**dicoArgs)
+
+
+
+JdC = JDC_CATA ( code='VP',
+          execmodul=None,
+         ) 
+
+
+# ----------------------------------------------
+Calculation_for_Mechanistic =  PROC (nom="Calculation_for_Mechanistic", op=None, 
+# ----------------------------------------------
+     TechnicalUse= SIMP(statut= 'o',typ= 'TXM',into=dicoInfoGenerales['Modele_TechnicalUse']),
+     b_cable   =  blocPourCalculationForMechanisticSelonModeleTechnicalUse('cable'),
+     b_pipes   =  blocPourCalculationForMechanisticSelonModeleTechnicalUse('pipes'),
+     b_coating =  blocPourCalculationForMechanisticSelonModeleTechnicalUse('coating'),
+
+)
+
diff --git a/VirtualPolymer/VP_Cata_Database.py b/VirtualPolymer/VP_Cata_Database.py
new file mode 100644 (file)
index 0000000..d233a48
--- /dev/null
@@ -0,0 +1,293 @@
+# -*- 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)
+       
+
+
+
+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),
+                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') ),
+      ),
+)
index ab2eb206db88f53af9491083cd61539a5d22eb27..e5ba42f14a203a5ecf4e8244db5781f2c11e547c 100644 (file)
 import types\r
 import sys,os\r
 \r
-import listesDB\r
 \r
+dicoAgingFactor={ '40years BR top' : {'temperature' : 50, 'simulationTime' : 350640}}\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
+def entoure(func):\r
+    def wrapper(*args, **kwargs):\r
+        if hasattr(monMC,'dsMaFunct') and monMC.dsMaFunct== True : return\r
+        monMC.dsMaFunct = True\r
+        retour =func(*args, **kwargs)\r
+        monMC.dsMaFunct = False\r
+        return retour\r
+    return wrapper\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
+# Dans Calculation\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,monMC)\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)\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)\r
-    print ('fin de prepareDiffusion', monMC.nom)\r
-    monMC.dsMaFunct=False\r
-    editor.dsMaFunct = False\r
-\r
-def prepareDiffusionSansMC(editor,monMC):\r
-    #lInitialBadCoche=editor.getValeur('Modele', 'Initial_Equation_List',('b_type_creation','Chemical_Equation'),)\r
-    monMCNom = monMC.nom \r
-    monEtape = monMC.getEtape()\r
-    lInitialBadCoche=editor.getValeurDsEtape(monEtape, 'ForDiffusion',('b_type_mechanistic','Model_Mechanistic','b_diffusion'),)\r
-    if lInitialBadCoche == None : lInitialBadCoche=[]\r
-    lInitialCoche=[]\r
-    for equ in lInitialBadCoche: lInitialCoche.append(equ.split('\t')[0])\r
-    print (lInitialCoche)\r
-    print ('kkkkkkkkkkkkhhhhhhhhhhhhhhhhhhhhhhhhhhh')\r
-\r
-    #PropagationCoche =editor.getValeur('Modele', 'listeEquation_propagation',('b_type_creation','Chemical_Equation',))\r
-    #TerminationCoche=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
-    for liste in (lInitialCoche,):\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
-    print (maClasseDelistesDB.listeParametresInitiaux)\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
+@entoure\r
+def remplitMasterModel(monMC):\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
+#    from Test import Dico2\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
+    print (editor) \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,monMC)\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)\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)\r
+#    print ('fin de prepareDiffusion', monMC.nom)\r
+#    monMC.dsMaFunct=False\r
+#    editor.dsMaFunct = False\r
+#\r
+#def prepareDiffusionSansMC(editor,monMC):\r
+#    #lInitialBadCoche=editor.getValeur('Modele', 'Initial_Equation_List',('b_type_creation','Chemical_Equation'),)\r
+#    monMCNom = monMC.nom \r
+#    monEtape = monMC.getEtape()\r
+#    lInitialBadCoche=editor.getValeurDsEtape(monEtape, 'ForDiffusion',('b_type_mechanistic','Model_Mechanistic','b_diffusion'),)\r
+#    if lInitialBadCoche == None : lInitialBadCoche=[]\r
+#    lInitialCoche=[]\r
+#    for equ in lInitialBadCoche: lInitialCoche.append(equ.split('\t')[0])\r
+#    print (lInitialCoche)\r
+#    print ('kkkkkkkkkkkkhhhhhhhhhhhhhhhhhhhhhhhhhhh')\r
+#\r
+#    #PropagationCoche =editor.getValeur('Modele', 'listeEquation_propagation',('b_type_creation','Chemical_Equation',))\r
+#    #TerminationCoche=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
+#    for liste in (lInitialCoche,):\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
+#    print (maClasseDelistesDB.listeParametresInitiaux)\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
index 11eb2f9a4b7233d49f32af41c5264a0e90b3e833..869fc104c5bb8730b152f0124ee460aa192f814d 100644 (file)
@@ -35,7 +35,9 @@ encoding='iso-8859-1'
 
 #
 catalogues=(
-   ('VP','V1',os.path.join(repIni,'VP_Cata_simplifie.py'),'python','python'),
+#   ('VPCalcul','V1',os.path.join(repIni,'VP_Cata_simplifie.py'),'python','python'),
+   ('VPCalcul','VCalcul',os.path.join(repIni,'VP_Cata_Calculation.py'),'MAPVp','python'),
+   ('VPDabase','VDatabase',os.path.join(repIni,'VP_Cata_Database.py'),'python','python'),
 )
 nombreDeBoutonParLigne=2
 closeFrameRechercheCommande = True