Salome HOME
BOUNDARY... dans Telemac2D
[tools/eficas.git] / generator / generator_CARMELCND.py
index f7d5e9ce683e66e30080a01d4cf41f4b925dd01f..ab6e28b96dbaa339355ca20156fff90d7e85aab4 100755 (executable)
@@ -27,7 +27,7 @@ from generator_python import PythonGenerator
 import Accas
 
 debutTextePhys ="[VERSION\n  NUM      1\n  FILETYPE PHYS\n]\n"
-debutTextePhys+="[MATERIALS\n   [CONDUCTOR\n"
+debutTextePhys+="[MATERIALS\n"
 texteConductor ="      [CONDUCTIVITY\n         LAW LINEAR\n"
 texteConductor+="         HOMOGENEOUS TRUE\n"
 texteConductor+="         ISOTROPIC  TRUE\n"
@@ -45,6 +45,17 @@ debutTexteParam ="[VERSION\n   NUM     1\n   FILETYPE PARAM\n]\n"
 debutTexteParam+="[PROBLEM\n   NAME HARMONIC\n]\n"
 debutTexteParam+="[CAR_FILES\n   NAME "
 
+debutTexteZs0 ="   [ZSURFACIC\n      NAME "
+debutTexteZs ="\n      [CONDUCTIVITY\n"
+debutTexteZs+="         LAW LINEAR\n"
+debutTexteZs+="         HOMOGENEOUS TRUE\n"
+debutTexteZs+="         ISOTROPIC TRUE\n"
+debutTexteZs+="         VALUE COMPLEX  "
+texteZs2     ="  0.0000000000000000E+00\n      ]\n"
+texteZs2    +="      [PERMEABILITY\n         LAW LINEAR\n"
+texteZs2    +="         HOMOGENEOUS TRUE\n"
+texteZs2    +="         ISOTROPIC TRUE\n         VALUE COMPLEX  "
+finTexteZs   ="  0.0000000000000000E+00\n      ]\n   ]\n"
 
 def entryPoint():
    """
@@ -92,32 +103,39 @@ class CARMELCNDGenerator(PythonGenerator):
 # ecriture
 #----------------------------------------------------------------------------------------
 
-   def writeDefault(self,fn) :
+   def writeDefault(self,file) :
+#file ne sert pas
 
        self.texteIngendof=""
        self.texteParam=debutTexteParam
        self.chercheFichier()
        self.traiteSourceVCut()
-       fileIngendof = fn[:fn.rfind(".")] + '.ingendof'
+
+       fn=self.fnBase
+       fileIngendofDeb = fn[:fn.rfind(".")] + '.ingendof'
+       fileIngendof = os.path.join(self.sauveDirectory,fileIngendofDeb)
        f = open( str(fileIngendof), 'wb')
        f.write( self.texteIngendof )
        f.close()
 
        self.textePhys=debutTextePhys
        self.traiteMateriaux()
-       filePhys = fn[:fn.rfind(".")] + '.phys'
+       filePhysDeb = fn[:fn.rfind(".")] + '.phys'
+       filePhys = os.path.join(self.sauveDirectory,filePhysDeb)
        f = open( str(filePhys), 'wb')
        f.write( self.textePhys )
        f.close()
 
-       fileParam = fn[:fn.rfind(".")] + '.param'
+       fileParamDeb = fn[:fn.rfind(".")] + '.param'
+       fileParam = os.path.join(self.sauveDirectory,fileParamDeb)
        self.traiteParam()
        f = open( str(fileParam), 'wb')
        f.write( self.texteParam )
        f.close()
        
-       self.texteCMD="[ \n    GLOBAL \n] \n[ \nVISU \nDomaine \nMED \nELEMENT \n] "
-       fileCMD = fn[:fn.rfind(".")] + '.cmd'
+       self.texteCMD="[ \n    GLOBAL \n] \n[ \nVISU \n"+self.fnBase.split(".med")[0]+"\nMED \nELEMENT \n] "
+       fileCMDDeb = fn[:fn.rfind(".")] + '.cmd'
+       fileCMD =os.path.join(self.sauveDirectory,fileCMDDeb)
        f = open( str(fileCMD), 'wb')
        f.write( self.texteCMD )
        f.close()
@@ -125,13 +143,15 @@ class CARMELCNDGenerator(PythonGenerator):
        nomBaseFichier=os.path.basename(fileParam).split(".med")[0]
        
        self.texteInfcarmel=nomBaseFichier
-       fileInfcarmel = fn[:fn.rfind(".")] + '.infcarmel'
+       fileInfcarmelDeb = fn[:fn.rfind(".")] + '.infcarmel'
+       fileInfcarmel=os.path.join(self.sauveDirectory,fileInfcarmelDeb)
        f = open( str(fileInfcarmel), 'wb')
        f.write( self.texteInfcarmel )
        f.close()
        
        self.texteInpostpro=nomBaseFichier+"\n"+nomBaseFichier.split(".param")[0]+'.xmat\n'+nomBaseFichier.split(".param")[0]+'.cmd'
-       fileInpostpro = fn[:fn.rfind(".")] + '.inpostprocess'
+       fileInpostproDeb = fn[:fn.rfind(".")] + '.inpostprocess'
+       fileInpostpro = os.path.join(self.sauveDirectory,fileInpostproDeb)
        f = open( str(fileInpostpro), 'wb')
        f.write( self.texteInpostpro )
        f.close()
@@ -149,22 +169,25 @@ class CARMELCNDGenerator(PythonGenerator):
                   debut=e.valeur[17:]
                   liste=debut.split(" - ")
                   nomFichier=liste[0]
-                  print 'nom=',nomFichier
-                  print 'e.va=',e.valeur.split(" ")[-1]
-                  print 'liste=',liste
+                  #print 'nom=',nomFichier
+                  #print 'e.va=',e.valeur.split(" ")[-1]
+                  #print 'liste=',liste
                   nomDomaine=e.valeur.split(" ")[-1]
                   break
+       self.sauveDirectory=os.path.dirname(nomFichier)
+       self.fnBase=os.path.basename(nomFichier)
        self.texteIngendof =os.path.basename(nomFichier)+"\n"
        self.texteParam += os.path.basename(nomFichier).split(".med")[0]+".car\n]\n"
        self.texteParam +="[PHYS_FILES\n   NAME "+os.path.basename(nomFichier).split(".med")[0]+".phys\n]\n"
 
 #----------------------------------------------------------------------------------------
-#  analyse du dictionnaire  pour trouver les sources et les VCut
+#  analyse du dictionnaire  pour trouver les sources et les VCut et les ZS
 #----------------------------------------------------------------------------------------
 
    def traiteSourceVCut(self) :
        listeSource=[]
        listeVCut=[]
+       self.listeZS=[]
        self.texteSourcePhys="[SOURCES\n"
        for k in self.dictMCVal.keys():
            if k.find ("______SOURCE__") > -1 :
@@ -173,10 +196,13 @@ class CARMELCNDGenerator(PythonGenerator):
            if k.find ("______VCUT__") > -1 :
               noms=k.split("_____")
               if noms[0] not in listeVCut : listeVCut.append(noms[0])
+           if k.find ("______ZS") > -1 :
+              noms=k.split("_____")
+              if noms[0] not in self.listeZS : self.listeZS.append(noms[0])
        listeSource.sort()
        for source in listeSource:
            debutKey=source+"______SOURCE__"
-           texteSource=self.dictMCVal[debutKey+"NomDomaine"]+"\n"
+           texteSource=self.dictMCVal[debutKey+"EnveloppeConnexeInducteur"]+"\n"
            texteSource+="2\n"
            for val in self.dictMCVal[debutKey+"VecteurDirecteur"] :
                texteSource+=str(val)+" "
@@ -184,7 +210,7 @@ class CARMELCNDGenerator(PythonGenerator):
            for val in self.dictMCVal[debutKey+"Centre"] :
                texteSource+=str(val)+" "
            texteSource+="\n"
-           texteSource+=str(self.dictMCVal[debutKey+"SectionDomaine"])+"\n"
+           texteSource+=str(self.dictMCVal[debutKey+"SectionBobine"])+"\n"
            self.texteIngendof+=texteSource
            self.texteSourcePhys+="   [STRANDED_INDUCTOR\n"
            self.texteSourcePhys+="      NAME "+source+"\n"
@@ -201,6 +227,7 @@ class CARMELCNDGenerator(PythonGenerator):
        if self.dictMCVal["__PARAMETRES__TypedeFormule"]=="APHI" :self.texteIngendof+="1\n"
        else : self.texteIngendof+="2\n"
        
+
         
 #----------------------------------------------------------------------------------------
    def traiteMateriaux(self) :
@@ -216,13 +243,14 @@ class CARMELCNDGenerator(PythonGenerator):
               if noms[0] not in listeNoCond : listeNoCond.append(noms[0])
    
        for c in listeCond:
+           self.textePhys +="   [CONDUCTOR\n"
            self.textePhys +="      NAME "+c+"\n"
            self.textePhys +=texteConductor
            self.textePhys+="         VALUE COMPLEX "
            self.textePhys+=str(self.dictMCVal[c+"______CONDUCTEUR__Conductivite"])
            self.textePhys+=texteConducto2 
            self.textePhys+="         VALUE COMPLEX "
-           self.textePhys+=str(self.dictMCVal[c+"______CONDUCTEUR__Permeabilite"])
+           self.textePhys+=str(self.dictMCVal[c+"______CONDUCTEUR__PermeabiliteRelative"])
            self.textePhys+="  0.0000000000000000E+00\n      ]\n   ]\n"
 
        for c in listeNoCond:
@@ -230,9 +258,17 @@ class CARMELCNDGenerator(PythonGenerator):
            self.textePhys +="      NAME "+c+"\n"
            self.textePhys += texteNoCond
            self.textePhys+="         VALUE COMPLEX "
-           self.textePhys+=str(self.dictMCVal[c+"______NOCOND__Permeabilite"])
+           self.textePhys+=str(self.dictMCVal[c+"______NOCOND__PermeabiliteRelative"])
            self.textePhys+="  0.0000000000000000E+00\n      ]\n   ]\n"
 
+       for zs in self.listeZS:
+          self.textePhys+=debutTexteZs0+zs
+          self.textePhys+=debutTexteZs
+          self.textePhys+=str(self.dictMCVal[zs+"______ZS__Conductivite"])
+          self.textePhys+=texteZs2
+          self.textePhys+=str(self.dictMCVal[zs+"______ZS__PermeabiliteRelative"])
+          self.textePhys+=finTexteZs
+
        self.textePhys+="]\n"
        self.textePhys+=self.texteSourcePhys
 
@@ -240,7 +276,7 @@ class CARMELCNDGenerator(PythonGenerator):
 #  Creation du fichier Param
 #----------------------------------------------------------------------------------------
    def traiteParam(self):
-       self.texteParam +="[FREQUENCY\n   SINGLE  "+str(self.dictMCVal["__PARAMETRES__Frequence_en_Hz"])+"\n]\n"
+       self.texteParam +="[FREQUENCY\n   SINGLE  "+str(self.dictMCVal["__PARAMETRES__Frequence"])+"\n]\n"
        self.texteParam +="[SOLVER\n   NAME BICGCR\n"
        self.texteParam +="   [ITERATIVE_PARAM\n"
        self.texteParam +="      NITERMAX  "+str(self.dictMCVal["__PARAMETRES__Nb_Max_Iterations"])+"\n"