--- /dev/null
+## -*- coding: utf-8 -*-
+#
+## --------------------------------------------------
+## debut entete
+## --------------------------------------------------
+#
+from Accas import *
+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
+
+ __repr__=info
+ __str__=info
+
+#
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'MAP',
+ execmodul = None,
+ regles=(AU_MOINS_UN('PYGMEE',),AU_MOINS_UN('BENHUR',), AVANT ('PYGMEE' , 'BENHUR'),),
+ )# Fin JDC_CATA
+#
+
+PYGMEE= PROC(nom="PYGMEE",op=None,
+ fr='definition de la morphologie',
+
+# NBPHASES=SIMP(statut='o',typ='I',defaut=1,into=(1,2)),
+ FUSEAU1=FACT(fr="entree de lecfus", statut='o',
+ FORME=SIMP(statut = "o", typ='TXM', defaut="fichier", into=("manuel","fichier")),
+
+ b_forme=BLOC( condition = "FORME == 'fichier'",
+ FORMAT = SIMP(statut = "o", typ='TXM', defaut="croissant", into=("croissant","decroissant")),
+ FICHIER = SIMP ( statut = "o", typ = "Fichier", defaut="/local00/bin/MAP/modules/test_module/pygmee_v1/fuseau_1.txt"),
+ ),
+
+ b_manuel=BLOC( condition = "FORME == 'manuel'",
+ LFUSEAU = SIMP ( statut = "o", typ=Tuple(2),validators=VerifTypeTuple(('R','R')), max="**",) ,),),
+
+
+ TAILLE=SIMP(statut = "o",fr="taille du VER", typ='R', defaut=50.),
+ DISTANCE=SIMP(statut = "o",fr="distance de replusions", typ='R', defaut=0.1),
+ LANCEMENT=SIMP(statut = "o",fr="lancement de PYGMEE", typ='TXM', defaut="oui", into=("oui","non")),
+)
+
+BENHUR= PROC(nom="BENHUR",op=None,
+ fr='definition du maillage',
+
+ FINESSE=SIMP(statut = "o",fr="nombre d\'elements par cote", typ='I', into=(10,12), defaut=10),
+ LANCEMENT=SIMP(statut = "o",fr="lancement de BENHUR", typ='TXM', defaut="oui", into=("oui","non")),
+)
+
+ASTER= PROC(nom="ASTER",op=None,
+ fr='definition du calcul',
+
+ CONDUCTIVITE_M=SIMP(statut = "o",fr="conductivite de la matrice", typ='R', defaut=1.0 , val_min =0.),
+ CONDUCTIVITE_I=SIMP(statut = "o",fr="conductivite des inclusions", typ='R', defaut=1.0, val_min =0.),
+ LANCEMENT=SIMP(statut = "o",fr="lancement de Code_Aster", typ='TXM', defaut="non", into=("oui","non")),
+)
--- /dev/null
+# -*- coding: utf-8 -*-
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+import Accas
+from Accas import *
+
+class loi ( ASSD ) : pass
+class variable ( ASSD ) : pass
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'PERFECT',
+ execmodul = None,
+ regles = ( AU_MOINS_UN ( 'RPV' , 'INTERNALS'), ),
+ ) # Fin JDC_CATA
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+
+#================================
+# 1. Definition des LOIS
+#================================
+
+# Nota : les variables de type OPER doivent etre en majuscules !
+# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type)
+RPV = PROC(nom = "RPV",
+ op = 68,
+ fr = "end-products RPV-2 and ToughnessModule",
+ regles = ( AU_MOINS_UN ( 'RPV2' , 'ToughnessModule'), ),
+ RPV2 = FACT(statut='f',
+ regles = ( AU_MOINS_UN ( 'IRRAD' , 'CONVOLVE', 'LONG_TERM','HARD'), ),
+ IRRAD = FACT( statut='f',
+ neutron_spectrum = SIMP(statut='f',typ='R', max='**'),
+ fcc_crystal = FACT(statut='o',
+ nu = SIMP(statut='o',typ='R',defaut=0.3),
+ mu = SIMP(statut='o',typ='R',defaut=70),),
+ operating_conditions = FACT(statut = 'o',
+ relative_time_increments = SIMP(statut='o',typ='R', max='**'),
+ time_irrad = SIMP(statut='o',typ='R',defaut=1e+07,),
+ temp_irrad = SIMP(statut='o',typ='R',defaut=573,),
+ flux_cut_off_energy = SIMP (statut='o',typ='R',defaut=1),)
+ ),
+ CONVOLVE = FACT(statut='f',
+ UNITE_RESU = SIMP(statut='f',typ='I',defaut=32),
+ UNITE_RESU2 = SIMP(statut='f',typ='I',defaut=32),
+ ))
+);
+
+INTERNALS = PROC ( nom = "INTERNALS",
+ op = 68,
+ fr = "end-products INTERN-1",
+ # regles = ( AU_MOINS_UN ( 'RPV2' , 'ToughnessModule'), ),
+ INTERN1 = FACT(statut='f',
+ UNITE_RESU_FORC = SIMP(statut='f',typ='I',defaut=33),
+ UNITE_RESU_IMPE = SIMP(statut='f',typ='I',defaut=32),)
+);
+
--- /dev/null
+# Choix des catalogues
+import os
+#rep_cata=os.path.dirname(os.path.abspath(__file__))
+rep_cata=os.getcwd()
+
+catalogues = (
+# (code,version,catalogue,formatIn)
+ #('Map','V0',os.path.join(rep_cata,'Map_Cata_V0.py'),'map'),
+ #('Map','V0',os.path.join(rep_cata,'Map1_Cata_V0.py'),'map'),
+ ('Map','V1',os.path.join(rep_cata,'Map1_Cata_V1.py'),'map'),
+ ('Map2','V0',os.path.join(rep_cata,'Map2_Cata_V0.py'),'map'),
+)
+
--- /dev/null
+# -*- coding: utf-8 -*-\r
+# CONFIGURATION MANAGEMENT OF EDF VERSION\r
+# ======================================================================\r
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG\r
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
+# (AT YOUR OPTION) ANY LATER VERSION.\r
+#\r
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
+#\r
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
+#\r
+#\r
+# ======================================================================\r
+"""\r
+ Ce module sert pour charger les paramètres de configuration d'EFICAS\r
+"""\r
+# Modules Python\r
+import os, sys, string, types, re\r
+import traceback\r
+from PyQt4.QtGui import *\r
+from utils import read_file\r
+\r
+# Modules Eficas\r
+from Editeur import utils\r
+\r
+class CONFIG:\r
+\r
+ #-----------------------------------\r
+ def __init__(self,appli,repIni):\r
+ #-----------------------------------\r
+\r
+ # Classe de base permettant de lire, afficher\r
+ # et sauvegarder les fichiers utilisateurs \r
+ # On a deux directories : la directory generale (Repertoire d instal + Nom du code\r
+ # Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper\r
+ # et la directorie de l utilisateur \r
+ # HOME/.Eficas_Openturns\r
+ # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement \r
+ # par celui de l utilisateur\r
+ # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite\r
+ # dans le fichier general sinon\r
+ self.appli = appli \r
+ self.code = appli.code\r
+ self.salome = appli.salome\r
+ self.repIni = repIni\r
+ \r
+ if self.appli: \r
+ self.parent=appli.top\r
+ self.appli.mode_nouv_commande='initial'\r
+ else: self.parent=None\r
+\r
+\r
+ # Valeurs par defaut\r
+ self.rep_user = os.path.join(os.environ['HOME'],'.Eficas_Map')\r
+ if not os.path.isdir(self.rep_user) : os.mkdir(self.rep_user)\r
+ self.initialdir = self.rep_user\r
+ self.path_doc = self.rep_user\r
+ self.savedir = self.rep_user\r
+ self.exec_acrobat = self.rep_user\r
+ \r
+ self.labels_user=('exec_acrobat', 'catalogues','savedir','path_doc','map_path','PATH_PYGMEE','PATH_BENHUR')\r
+ self.labels_eficas=("map_path","rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata","initialdir","savedir","catalogues",'PATH_PYGMEE','PATH_BENHUR')\r
+\r
+ #Lecture des fichiers utilisateurs\r
+ self.lecture_fichier_ini_standard()\r
+ self.lecture_fichier_ini_utilisateur()\r
+ self.lecture_catalogues()\r
+\r
+ #--------------------------------------\r
+ def lecture_fichier_ini_standard(self):\r
+ #--------------------------------------\r
+ # Verifie l'existence du fichier "standard"\r
+ # appelle la lecture de ce fichier\r
+ import prefs\r
+ name='prefs_'+prefs.code\r
+ prefsCode=__import__(name)\r
+ self.prefsUser=name+".py"\r
+ for k in self.labels_eficas :\r
+ try :\r
+ valeur=getattr(prefsCode,k)\r
+ setattr(self,k,valeur)\r
+ except :\r
+ pass\r
+ if hasattr(self,'map_path') :\r
+ oldPath=self.map_path\r
+ \r
+\r
+ #--------------------------------------\r
+ def lecture_fichier_ini_utilisateur(self):\r
+ #--------------------------------------\r
+ # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent\r
+ self.fic_ini_utilisateur = os.path.join(self.rep_user,self.prefsUser)\r
+ if not os.path.isfile(self.fic_ini_utilisateur): return\r
+\r
+ txt = utils.read_file(self.fic_ini_utilisateur)\r
+ from styles import style\r
+ d=locals()\r
+ try:\r
+ exec txt in d\r
+ except :\r
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])\r
+ QMessageBox.critical( None, "Import du fichier de Configuration", \r
+ "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur )\r
+ sys.exit(0)\r
+ for k in self.labels_user :\r
+ try :\r
+ setattr(self,k,d[k])\r
+ except :\r
+ pass\r
+\r
+ if hasattr(self,'map_path') :\r
+ if hasattr(self,'oldPath'):\r
+ if self.map_path != self.oldPath:\r
+ sys.path.remove(self.oldPath)\r
+ sys.path[:0]=[self.map_path]\r
+ else :\r
+ sys.path[:0]=[self.map_path]\r
+\r
+\r
+ #--------------------------------------\r
+ def lecture_catalogues(self):\r
+ #--------------------------------------\r
+ rep_mat=" " # Compatibilite Aster\r
+ if hasattr(self,"catalogues") :\r
+ return\r
+ \r
+ fic_ini = os.path.join(self.repIni,"catalogues_Map.ini")\r
+ if not os.path.isfile(fic_ini) :\r
+ QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues", \r
+ "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" )\r
+ sys.exit(0)\r
+\r
+ txt = utils.read_file(fic_ini)\r
+ d=locals()\r
+ try:\r
+ exec txt in d\r
+ self.catalogues=d["catalogues"]\r
+ except :\r
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])\r
+ QMessageBox.critical( None, "Import du fichier de Configuration", \r
+ "Erreur à la lecture du fichier de configuration " + fic_ini )\r
+ sys.exit(0)\r
+\r
+\r
+\r
+ #--------------------------------------\r
+ def save_params(self):\r
+ #--------------------------------------\r
+ # sauvegarde\r
+ # les nouveaux paramètres dans le fichier de configuration utilisateur\r
+ #\r
+ texte=""\r
+ for clef in self.labels_user :\r
+ if hasattr(self,clef):\r
+ valeur=getattr(self,clef)\r
+ texte= texte + clef+" = " + repr(valeur) +"\n"\r
+ f=open(self.fic_ini_utilisateur,'w+')\r
+ print self.fic_ini_utilisateur\r
+ f.write(texte) \r
+ f.close()\r
+#\r
+\r
+\r
+def make_config(appli,rep):\r
+ return CONFIG(appli,rep)\r
+\r
+def make_config_style(appli,rep):\r
+ return None\r
+\r
+\r
--- /dev/null
+# -*- coding: utf-8 -*-\r
+# CONFIGURATION MANAGEMENT OF EDF VERSION\r
+# ======================================================================\r
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG\r
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY\r
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY\r
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR\r
+# (AT YOUR OPTION) ANY LATER VERSION.\r
+#\r
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT\r
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF\r
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU\r
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.\r
+#\r
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE\r
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,\r
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.\r
+#\r
+#\r
+# ======================================================================\r
+\r
+import os, sys\r
+# Les variables pouvant positionnees sont :\r
+print "import des prefs de MAP"\r
+\r
+# REPINI sert à localiser le fichier \r
+# initialdir sert comme directory initial des QFileDialog\r
+# positionnee a repin au debut mise a jour dans configuration\r
+REPINI=os.path.dirname(os.path.abspath(__file__))\r
+initialdir=REPINI \r
+\r
+# INSTALLDIR sert à localiser l'installation d'Eficas\r
+INSTALLDIR=os.path.join(REPINI,'..')\r
+PATH_PYGMEE="/local00/bin/MAP/modules/test_module/pygmee_v1"\r
+PATH_BENHUR="/local00/bin/MAP/modules/test_module/benhur"\r
+\r
+\r
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')\r
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang\r
+lang='fr'\r
+encoding='iso-8859-1'\r
+\r
+# Acces a la documentation\r
+rep_cata = INSTALLDIR\r
+path_doc = os.path.join(rep_cata,'Doc')\r
+exec_acrobat = "/usr/bin/xpdf"\r
+savedir = os.environ['HOME']\r
+\r
+\r
+sys.path[:0]=[INSTALLDIR]\r
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001 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.
+# ======================================================================
+# IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+# DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "7.1.0"
+date = "23/04/2003"
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# CONFIGURATION 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.
+#
+#
+# ======================================================================
+
+"""
+ Ce module sert à lancer EFICAS configuré pour Perfect
+"""
+# Modules Python
+
+# Modules Eficas
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+import sys
+from InterfaceQT4 import eficas_go
+#permet de choisir le module
+#eficas_go.lance_eficas(code=prefs.code,choix="oui")
+eficas_go.lance_eficas(code=prefs.code,choix="non")
--- /dev/null
+# Necessaire pour compatibilite avec Aster
--- /dev/null
+OPTIONS
+3D BENHUR SCALE
+I - Morphologie (MESSALA)
+1) dimension du VER cubique [m] (entree)
+50.0
+2) fraction volumique seuil écrétant le fuseau (entree)
+.11
+3) fichier decrivant le fuseau granulaire descendant (entree)
+-
+4) fichier decrivant la position et la taille des boules (sortie)
+/local00/bin/MAP/modules/test_module/pygmee_v1/benhur_input.txt
+5) fichier CAO de la morphologie (sortie)
+-
+6) facteur de correction de fraction volumique (entree)
+1.0
+
+II - Maillage (BENHUR)
+1) fichier entree décrivant le maillage support (entree)
+/local00/bin/MAP/modules/test_module/benhur/regular_mesh_3D_10.msh
+2) fichier sortie du maillage (sortie)
+test_module_10.msh
+3) fichier commentaire sur les statistiques décrivant le maillage (sortie)
+test_module_10.log
+4) fichier BMP décrivant une coupe binarisée du VER (sortie)
+test_module_10.bmp
+5) fichier TXT donnant la level set du contour aux noeuds (sortie)
+test_module_10_levelset.txt
+
+