]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
*** empty log message ***
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 12 Jan 2010 10:15:10 +0000 (10:15 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 12 Jan 2010 10:15:10 +0000 (10:15 +0000)
MAP/Map1_Cata_V1.py [new file with mode: 0644]
MAP/Map_Cata_V0.py [new file with mode: 0644]
MAP/catalogues_Map.ini [new file with mode: 0644]
MAP/configuration_Map.py [new file with mode: 0644]
MAP/prefs_Map.py [new file with mode: 0644]
MAP/properties.py [new file with mode: 0644]
MAP/qtEficas_map.py [new file with mode: 0755]
MAP/style.py [new file with mode: 0644]
MAP/test_module.bhr [new file with mode: 0644]

diff --git a/MAP/Map1_Cata_V1.py b/MAP/Map1_Cata_V1.py
new file mode 100644 (file)
index 0000000..e3b042e
--- /dev/null
@@ -0,0 +1,67 @@
+## -*- 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")),
+)
diff --git a/MAP/Map_Cata_V0.py b/MAP/Map_Cata_V0.py
new file mode 100644 (file)
index 0000000..5036f45
--- /dev/null
@@ -0,0 +1,62 @@
+# -*- 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),)
+);
+
diff --git a/MAP/catalogues_Map.ini b/MAP/catalogues_Map.ini
new file mode 100644 (file)
index 0000000..96c94e3
--- /dev/null
@@ -0,0 +1,13 @@
+# 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'),
+)
+
diff --git a/MAP/configuration_Map.py b/MAP/configuration_Map.py
new file mode 100644 (file)
index 0000000..ff86ca9
--- /dev/null
@@ -0,0 +1,177 @@
+# -*- 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
diff --git a/MAP/prefs_Map.py b/MAP/prefs_Map.py
new file mode 100644 (file)
index 0000000..57b5e22
--- /dev/null
@@ -0,0 +1,50 @@
+# -*- 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
diff --git a/MAP/properties.py b/MAP/properties.py
new file mode 100644 (file)
index 0000000..ce5f1a2
--- /dev/null
@@ -0,0 +1,24 @@
+# -*- 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"
diff --git a/MAP/qtEficas_map.py b/MAP/qtEficas_map.py
new file mode 100755 (executable)
index 0000000..f9cd06e
--- /dev/null
@@ -0,0 +1,37 @@
+#!/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")
diff --git a/MAP/style.py b/MAP/style.py
new file mode 100644 (file)
index 0000000..7da9d53
--- /dev/null
@@ -0,0 +1 @@
+# Necessaire pour compatibilite avec Aster
diff --git a/MAP/test_module.bhr b/MAP/test_module.bhr
new file mode 100644 (file)
index 0000000..0198dcb
--- /dev/null
@@ -0,0 +1,29 @@
+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
+
+