From: ilct <> Date: Wed, 3 Oct 2012 13:23:55 +0000 (+0000) Subject: il : sources associees à groupe de mailles X-Git-Tag: LOGILAB~62 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=a855386fdcc8630ae3e1eea2aaf9896ebc7e7607;p=tools%2Feficas.git il : sources associees à groupe de mailles --- diff --git a/generator/generator_CARMEL3D.py b/generator/generator_CARMEL3D.py index 4732ddc1..6cd74672 100644 --- a/generator/generator_CARMEL3D.py +++ b/generator/generator_CARMEL3D.py @@ -93,6 +93,7 @@ class CARMEL3DGenerator(PythonGenerator): # Les extensions de fichier permis? extensions=('.comm',) +#---------------------------------------------------------------------------------------- def gener(self,obj,format='brut',config=None): self.initDico() @@ -109,6 +110,9 @@ class CARMEL3DGenerator(PythonGenerator): # constitution du bloc MATERIALS du fichier PHYS self.generBLOC_MATERIALS() + # constitution du bloc SOURCES du fichier PHYS + self.generBLOC_SOURCES() + # print "texte carmel3d :\n",self.texteCarmel3D # print "dictName : ",self.dictName # print "dictMaterConductor : ",self.dictMaterConductor @@ -117,8 +121,11 @@ class CARMEL3DGenerator(PythonGenerator): return self.text +#---------------------------------------------------------------------------------------- +# initialisations +#---------------------------------------------------------------------------------------- + def initDico(self) : - # initialisations self.texteCarmel3D="" self.dicoEtapeCourant=None @@ -132,44 +139,15 @@ class CARMEL3DGenerator(PythonGenerator): self.dictMaterEmAnIso={} self.dictMaterNilmat={} self.dictMaterZinsulator={} + self.dictSourceStInd={} + self.dictSourceEport={} + self.dictSourceHport={} - def generBLOC_MATERIALS(self) : - ''' - Prepare une partie du contenu du fichier de parametres (PHYS) pour le code Carmel3D - (bloc MATERIALS) - le bloc MATERIALS existe toujours ! - ''' - #print "cle dico materconductor : " , self.dictMaterConductor.keys() - #print "cle dico materdielectric : " , self.dictMaterNocond.keys() - - # constitution du bloc MATERIALS du fichier PHYS - self.texteCarmel3D+="[MATERIALS\n" +#---------------------------------------------------------------------------------------- +# ecriture +#---------------------------------------------------------------------------------------- - # constitution du bloc CONDUCTOR du fichier PHYS si existe - if self.dictMaterConductor != {} : self.creaBLOC_CONDUCTOR() - - # constitution du bloc NOCOND du fichier PHYS si exixte - if self.dictMaterNocond != {} : self.creaBLOC_NOCOND() - - # constitution du bloc ZSURFACIC du fichier PHYS si exixte - if self.dictMaterZsurfacic != {} : self.creaBLOC_ZSURFACIC() - - # constitution du bloc EM_ISOTROPIC_FILES du fichier PHYS si exixte - if self.dictMaterEmIso != {} : self.creaBLOC_EMISO() - - # constitution du bloc EM_ANISOTROPIC_FILES du fichier PHYS si exixte - if self.dictMaterEmAnIso != {} : self.creaBLOC_EMANISO() - - # constitution du bloc NILMAT du fichier PHYS si exixte - if self.dictMaterNilmat != {} : self.creaBLOC_NILMAT() - - # constitution du bloc ZINSULATOR du fichier PHYS si exixte - if self.dictMaterZinsulator != {} : self.creaBLOC_ZINSULATOR() - - # fin du bloc MATERIALS du fichier PHYS - self.texteCarmel3D+="]\n" - def writeDefault(self,fn) : ''' Ecrit le fichier de parametres (PHYS) pour le code Carmel3D @@ -180,98 +158,9 @@ class CARMEL3DGenerator(PythonGenerator): f.write( self.texteCarmel3D) f.close() - - def creaBLOC_CONDUCTOR(self) : - # constitution du bloc CONDUCTOR du fichier PHYS - - for cle in self.dictMaterConductor.keys(): - self.texteCarmel3D+=" [CONDUCTOR\n" - if cle not in self.dictName.keys(): - print "Attention : groupe de maille non defini pour materiau : ",cle - print "fichier phys incomplet " - self.texteCarmel3D+=str(self.dictName["grm_def"]) - else : - self.texteCarmel3D+=str(self.dictName[cle]) - for chaine in self.dictMaterConductor[cle] : - self.texteCarmel3D+=chaine - - self.texteCarmel3D+=" ]\n" - - - def creaBLOC_NOCOND(self) : - # constitution du bloc NOCOND du fichier PHYS - - for cle in self.dictMaterNocond.keys(): - self.texteCarmel3D+=" [NOCOND\n" - if cle not in self.dictName.keys(): - print "Attention : groupe de maille non defini pour materiau : ",cle - print "fichier phys incomplet " - self.texteCarmel3D+=str(self.dictName["grm_def"]) - else : - self.texteCarmel3D+=str(self.dictName[cle]) - for chaine in self.dictMaterNocond[cle] : - self.texteCarmel3D+=chaine - self.texteCarmel3D+=" ]\n" - - - def creaBLOC_ZSURFACIC(self) : - # constitution du bloc ZSURFACIC du fichier PHYS - - for cle in self.dictMaterZsurfacic.keys(): - self.texteCarmel3D+=" [ZSURFACIC\n" - if cle not in self.dictName.keys(): - print "Attention : groupe de maille non defini pour materiau : ",cle - print "fichier phys incomplet " - self.texteCarmel3D+=str(self.dictName["grm_def"]) - else : - self.texteCarmel3D+=str(self.dictName[cle]) - for chaine in self.dictMaterZsurfacic[cle] : - self.texteCarmel3D+=chaine - self.texteCarmel3D+=" ]\n" - - def creaBLOC_EMISO(self) : - # constitution du bloc EMISO du fichier PHYS - - for cle in self.dictMaterEmIso.keys(): - self.texteCarmel3D+=" [EM_ISOTROPIC_FILES\n" - for chaine in self.dictMaterEmIso[cle] : - self.texteCarmel3D+=chaine - self.texteCarmel3D+=" ]\n" - - def creaBLOC_EMANISO(self) : - # constitution du bloc EMANISO du fichier PHYS - - for cle in self.dictMaterEmAnIso.keys(): - self.texteCarmel3D+=" [EM_ANISOTROPIC_FILES\n" - for chaine in self.dictMaterEmAnIso[cle] : - self.texteCarmel3D+=chaine - self.texteCarmel3D+=" ]\n" - - def creaBLOC_ZINSULATOR(self) : - # constitution du bloc ZINSULATOR du fichier PHYS - - for cle in self.dictMaterZinsulator.keys(): - self.texteCarmel3D+=" [ZINSULATOR\n" - if cle not in self.dictName.keys(): - print "Attention : groupe de maille non defini pour materiau : ",cle - print "fichier phys incomplet " - self.texteCarmel3D+=str(self.dictName["grm_def"]) - else : - self.texteCarmel3D+=str(self.dictName[cle]) - self.texteCarmel3D+=" ]\n" - - def creaBLOC_NILMAT(self) : - # constitution du bloc NILMAT du fichier PHYS - - for cle in self.dictMaterNilmat.keys(): - self.texteCarmel3D+=" [NILMAT\n" - if cle not in self.dictName.keys(): - print "Attention : groupe de maille non defini pour materiau : ",cle - print "fichier phys incomplet " - self.texteCarmel3D+=str(self.dictName["grm_def"]) - else : - self.texteCarmel3D+=str(self.dictName[cle]) - self.texteCarmel3D+=" ]\n" +#---------------------------------------------------------------------------------------- +# analyse de chaque noeud de l'arbre +#---------------------------------------------------------------------------------------- def generMCSIMP(self,obj) : """ @@ -285,6 +174,7 @@ class CARMEL3DGenerator(PythonGenerator): return s +#---------------------------------------------------------------------------------------- def generMCFACT(self,obj) : """ recuperation de l objet MCFACT @@ -299,8 +189,9 @@ class CARMEL3DGenerator(PythonGenerator): return s +#---------------------------------------------------------------------------------------- def generPROC_ETAPE(self,obj): - # analyse des PROC du catalogue ( SOURCES et VERSION ) + # analyse des PROC du catalogue ( VERSION ) dico={} self.dicoEtapeCourant=dico @@ -308,14 +199,13 @@ class CARMEL3DGenerator(PythonGenerator): s=PythonGenerator.generPROC_ETAPE(self,obj) obj.valeur=self.dicoEtapeCourant - print "PROC_ETAPE", obj.nom, " ", obj.valeur - - if obj.nom=="SOURCES" : self.generBLOC_SOURCES(obj) + # print "PROC_ETAPE", obj.nom, " ", obj.valeur s=PythonGenerator.generPROC_ETAPE(self,obj) return s +#---------------------------------------------------------------------------------------- def generETAPE(self,obj): # analyse des OPER du catalogue dico={} @@ -324,44 +214,26 @@ class CARMEL3DGenerator(PythonGenerator): s=PythonGenerator.generETAPE(self,obj) obj.valeur=self.dicoEtapeCourant - print "ETAPE", obj.nom, " ", obj.valeur + # print "ETAPE", obj.nom, " ", obj.valeur if obj.nom=="MESH_GROUPE" : self.generMESHGROUPE(obj) if obj.nom=="MATERIALS" : self.generMATERIALS(obj) + if obj.nom=="SOURCES" : self.generSOURCES(obj) s=PythonGenerator.generETAPE(self,obj) return s - def generBLOC_VERSION(self,obj) : - # constitution du bloc VERSION du fichier PHYS - # creation d une entite VERSION ; elle sera du type PROC car decrit ainsi - # dans le du catalogue - version=obj.addentite('VERSION',pos=None) - self.generPROC_ETAPE(obj.etapes[0]) - self.texteCarmel3D+="["+obj.etapes[0].nom+"\n" - for cle in obj.etapes[0].valeur : - self.texteCarmel3D+=" "+cle+" "+str(obj.etapes[0].valeur[cle])+"\n" - self.texteCarmel3D+="]\n" - # destruction de l entite creee - obj.suppentite(version) - - def generBLOC_SOURCES(self,obj): - # constitution du bloc SOURCES du fichier PHYS - - self.texteCarmel3D+="["+obj.nom+"\n" - for keyN1 in obj.valeur : - self.texteCarmel3D+=" ["+keyN1+"\n" - for keyN2 in obj.valeur[keyN1]: - self.texteCarmel3D+=" "+keyN2+" "+str(obj.valeur[keyN1][keyN2])+"\n" - self.texteCarmel3D+=" ]"+"\n" - self.texteCarmel3D+="]"+"\n" - +#---------------------------------------------------------------------------------------- +#---------------------------------------------------------------------------------------- def generMESHGROUPE(self,obj): # preparation de la ligne NAME referencant le groupe de mailles - # associe le groupe de mailles au materiau utilisateur + # associe le groupe de mailles au materiau ou a la source utilisateur try : - texteName=" NAME "+obj.get_sdname()+"\n" - self.dictName[obj.valeur['MON_MATER'].nom]=texteName + texteName=" NAME "+obj.get_sdname()+"\n" + for cle in obj.valeur : + # print "cle : ", cle + self.dictName[obj.valeur[cle].nom]=texteName + # print "dans gener_mesh dictName : ",self.dictName except: pass @@ -382,7 +254,6 @@ class CARMEL3DGenerator(PythonGenerator): except: pass - def generMATERIALSCONDUCTOR(self,obj): # preparation du sous bloc CONDUCTOR texte="" @@ -474,7 +345,6 @@ class CARMEL3DGenerator(PythonGenerator): texte+=" ]"+"\n" #print "texte = ", texte self.dictMaterNocond[obj.get_sdname()]=[texte,] - def generMATERIALSZSURFACIC(self,obj): # preparation du sous bloc ZSURFACIC @@ -503,26 +373,6 @@ class CARMEL3DGenerator(PythonGenerator): texte+=" ]"+"\n" self.dictMaterZsurfacic[obj.get_sdname()]=[texte,] - - def formateCOMPLEX(self,nbC): - # prise en compte des differentes formes de description d un nombre complexe - # 3 formats possibles : 2 listes (anciennement tuples?) et 1 nombre complexe - print "formatage " - print "type : ", type(nbC), "pour ", nbC - nbformate ="" - if isinstance(nbC,(tuple,list)) : - if nbC[0] == "'RI'" : - nbformate = "COMPLEX " + str(nbC[1])+" "+str(nbC[2]) - - if nbC[0] == "'MP'" : - nbformate = "POLAR " + str(nbC[1])+" "+str(nbC[2]) - - else : - nbformate = "COMPLEX " + str(nbC.real)+" "+str(nbC.imag) - - print "nbformate : ", nbformate - return nbformate - def generMATERIALSEMISO(self,obj): # preparation du sous bloc EMISO @@ -536,7 +386,6 @@ class CARMEL3DGenerator(PythonGenerator): # else : self.dictMaterEmIso[obj.get_sdname()]=[texte,] - def generMATERIALSEMANISO(self,obj): # preparation du sous bloc EMANISO texte="" @@ -558,3 +407,280 @@ class CARMEL3DGenerator(PythonGenerator): # preparation du sous bloc ZINSULATOR texte="" self.dictMaterZinsulator[obj.get_sdname()]=[texte,] + +#------------------------------------------------------------------- + + def generSOURCES(self,obj): + # preparation du bloc SOURCES du fichier PHYS + # print "gener sources obj valeur = ", obj.valeur + texte="" + try : + source=obj.valeur['TYPE_SOURCE'] + if source=="STRANDED_INDUCTOR" : self.generSOURCES_ST_IND(obj) + if source=="HPORT" : self.generSOURCES_H_PORT(obj) + if source=="EPORT" : self.generSOURCES_E_PORT(obj) + except: + pass + + def generSOURCES_ST_IND(self,obj): + # preparation du sous bloc STRANDED INDUCTOR + texte="" + try : + texte+=" NTURNS "+ str(obj.valeur['NTURNS']) + "\n" + texte+=" CURJ POLAR " + str(obj.valeur['CURJ']) +" " +str(obj.valeur['POLAR'])+"\n" + self.dictSourceStInd[obj.get_sdname()]=[texte,] + # print texte + except: + pass + + def generSOURCES_H_PORT(self,obj): + # preparation du sous bloc HPORT + texte="" + try : + texte+=" TYPE "+ str(obj.valeur['TYPE']) + "\n" + texte+=" AMP POLAR " + str(obj.valeur['AMP']) +" " +str(obj.valeur['POLAR'])+"\n" + self.dictSourceHport[obj.get_sdname()]=[texte,] + # print texte + except: + pass + + def generSOURCES_E_PORT(self,obj): + # preparation du sous bloc EPORT + texte="" + try : + texte+=" TYPE "+ str(obj.valeur['TYPE']) + "\n" + texte+=" AMP POLAR " + str(obj.valeur['AMP']) +" " +str(obj.valeur['POLAR'])+"\n" + self.dictSourceEport[obj.get_sdname()]=[texte,] + # print texte + except: + pass + +#--------------------------------------------------------------------------------------- +# traitement fichier PHYS +#--------------------------------------------------------------------------------------- + + def generBLOC_VERSION(self,obj) : + # constitution du bloc VERSION du fichier PHYS + # creation d une entite VERSION ; elle sera du type PROC car decrit ainsi + # dans le du catalogue + version=obj.addentite('VERSION',pos=None) + self.generPROC_ETAPE(obj.etapes[0]) + self.texteCarmel3D+="["+obj.etapes[0].nom+"\n" + for cle in obj.etapes[0].valeur : + self.texteCarmel3D+=" "+cle+" "+str(obj.etapes[0].valeur[cle])+"\n" + self.texteCarmel3D+="]\n" + # destruction de l entite creee + obj.suppentite(version) + +#---------------------------------------------------------------------------------------- + def generBLOC_MATERIALS(self) : + ''' + Prepare une partie du contenu du fichier de parametres (PHYS) pour le code Carmel3D + (bloc MATERIALS) + le bloc MATERIALS existe toujours ! + ''' + #print "cle dico materconductor : " , self.dictMaterConductor.keys() + #print "cle dico materdielectric : " , self.dictMaterNocond.keys() + + # constitution du bloc MATERIALS du fichier PHYS + self.texteCarmel3D+="[MATERIALS\n" + + # constitution du bloc CONDUCTOR du fichier PHYS si existe + if self.dictMaterConductor != {} : self.creaBLOC_CONDUCTOR() + + # constitution du bloc NOCOND du fichier PHYS si exixte + if self.dictMaterNocond != {} : self.creaBLOC_NOCOND() + + # constitution du bloc ZSURFACIC du fichier PHYS si exixte + if self.dictMaterZsurfacic != {} : self.creaBLOC_ZSURFACIC() + + # constitution du bloc EM_ISOTROPIC_FILES du fichier PHYS si exixte + if self.dictMaterEmIso != {} : self.creaBLOC_EMISO() + + # constitution du bloc EM_ANISOTROPIC_FILES du fichier PHYS si exixte + if self.dictMaterEmAnIso != {} : self.creaBLOC_EMANISO() + + # constitution du bloc NILMAT du fichier PHYS si exixte + if self.dictMaterNilmat != {} : self.creaBLOC_NILMAT() + + # constitution du bloc ZINSULATOR du fichier PHYS si exixte + if self.dictMaterZinsulator != {} : self.creaBLOC_ZINSULATOR() + + # fin du bloc MATERIALS du fichier PHYS + self.texteCarmel3D+="]\n" + + + def creaBLOC_CONDUCTOR(self) : + # constitution du bloc CONDUCTOR du fichier PHYS + + for cle in self.dictMaterConductor.keys(): + self.texteCarmel3D+=" [CONDUCTOR\n" + if cle not in self.dictName.keys(): + print "Attention : groupe de maille non defini pour materiau : ",cle + print "fichier phys incomplet " + self.texteCarmel3D+=str(self.dictName["grm_def"]) + else : + self.texteCarmel3D+=str(self.dictName[cle]) + for chaine in self.dictMaterConductor[cle] : + self.texteCarmel3D+=chaine + + self.texteCarmel3D+=" ]\n" + + + def creaBLOC_NOCOND(self) : + # constitution du bloc NOCOND du fichier PHYS + + for cle in self.dictMaterNocond.keys(): + self.texteCarmel3D+=" [NOCOND\n" + if cle not in self.dictName.keys(): + print "Attention : groupe de maille non defini pour materiau : ",cle + print "fichier phys incomplet " + self.texteCarmel3D+=str(self.dictName["grm_def"]) + else : + self.texteCarmel3D+=str(self.dictName[cle]) + for chaine in self.dictMaterNocond[cle] : + self.texteCarmel3D+=chaine + self.texteCarmel3D+=" ]\n" + + + def creaBLOC_ZSURFACIC(self) : + # constitution du bloc ZSURFACIC du fichier PHYS + + for cle in self.dictMaterZsurfacic.keys(): + self.texteCarmel3D+=" [ZSURFACIC\n" + if cle not in self.dictName.keys(): + print "Attention : groupe de maille non defini pour materiau : ",cle + print "fichier phys incomplet " + self.texteCarmel3D+=str(self.dictName["grm_def"]) + else : + self.texteCarmel3D+=str(self.dictName[cle]) + for chaine in self.dictMaterZsurfacic[cle] : + self.texteCarmel3D+=chaine + self.texteCarmel3D+=" ]\n" + + def creaBLOC_EMISO(self) : + # constitution du bloc EMISO du fichier PHYS + + for cle in self.dictMaterEmIso.keys(): + self.texteCarmel3D+=" [EM_ISOTROPIC_FILES\n" + for chaine in self.dictMaterEmIso[cle] : + self.texteCarmel3D+=chaine + self.texteCarmel3D+=" ]\n" + + def creaBLOC_EMANISO(self) : + # constitution du bloc EMANISO du fichier PHYS + + for cle in self.dictMaterEmAnIso.keys(): + self.texteCarmel3D+=" [EM_ANISOTROPIC_FILES\n" + for chaine in self.dictMaterEmAnIso[cle] : + self.texteCarmel3D+=chaine + self.texteCarmel3D+=" ]\n" + + def creaBLOC_ZINSULATOR(self) : + # constitution du bloc ZINSULATOR du fichier PHYS + + for cle in self.dictMaterZinsulator.keys(): + self.texteCarmel3D+=" [ZINSULATOR\n" + if cle not in self.dictName.keys(): + print "Attention : groupe de maille non defini pour materiau : ",cle + print "fichier phys incomplet " + self.texteCarmel3D+=str(self.dictName["grm_def"]) + else : + self.texteCarmel3D+=str(self.dictName[cle]) + self.texteCarmel3D+=" ]\n" + + def creaBLOC_NILMAT(self) : + # constitution du bloc NILMAT du fichier PHYS + + for cle in self.dictMaterNilmat.keys(): + self.texteCarmel3D+=" [NILMAT\n" + if cle not in self.dictName.keys(): + print "Attention : groupe de maille non defini pour materiau : ",cle + print "fichier phys incomplet " + self.texteCarmel3D+=str(self.dictName["grm_def"]) + else : + self.texteCarmel3D+=str(self.dictName[cle]) + self.texteCarmel3D+=" ]\n" + +#---------------------------------------------------------------------------------------- + def generBLOC_SOURCES(self): + + # constitution du bloc SOURCES du fichier PHYS + self.texteCarmel3D+="[SOURCES\n" + + if self.dictSourceStInd != {} : self.creaBLOC_ST_IND() + + if self.dictSourceEport != {} : self.creaBLOC_EPORT() + + if self.dictSourceHport != {} : self.creaBLOC_HPORT() + + # fin du bloc SOURCES du fichier PHYS + self.texteCarmel3D+="]\n" + + + def creaBLOC_ST_IND(self) : + # constitution du bloc STRANDED INDUCTOR du fichier PHYS + + for cle in self.dictSourceStInd.keys(): + self.texteCarmel3D+=" [STRANDED INDUCTOR\n" + if cle not in self.dictName.keys(): + print "Attention : groupe de maille non defini pour source : ",cle + print "fichier phys incomplet " + self.texteCarmel3D+=str(self.dictName["grm_def"]) + else : + self.texteCarmel3D+=str(self.dictName[cle]) + for chaine in self.dictSourceStInd[cle] : + self.texteCarmel3D+=chaine + self.texteCarmel3D+=" ]\n" + + def creaBLOC_EPORT(self) : + # constitution du bloc EPORT du fichier PHYS + + for cle in self.dictSourceEport.keys(): + self.texteCarmel3D+=" [EPORT\n" + if cle not in self.dictName.keys(): + print "Attention : groupe de maille non defini pour source : ",cle + print "fichier phys incomplet " + self.texteCarmel3D+=str(self.dictName["grm_def"]) + else : + self.texteCarmel3D+=str(self.dictName[cle]) + for chaine in self.dictSourceEport[cle] : + self.texteCarmel3D+=chaine + self.texteCarmel3D+=" ]\n" + + def creaBLOC_HPORT(self) : + # constitution du bloc HPORT du fichier PHYS + + for cle in self.dictSourceHport.keys(): + self.texteCarmel3D+=" [HPORT\n" + if cle not in self.dictName.keys(): + print "Attention : groupe de maille non defini pour source : ",cle + print "fichier phys incomplet " + self.texteCarmel3D+=str(self.dictName["grm_def"]) + else : + self.texteCarmel3D+=str(self.dictName[cle]) + for chaine in self.dictSourceHport[cle] : + self.texteCarmel3D+=chaine + self.texteCarmel3D+=" ]\n" + +#---------------------------------------------------------------------------- + + def formateCOMPLEX(self,nbC): + # prise en compte des differentes formes de description d un nombre complexe + # 3 formats possibles : 2 listes (anciennement tuples?) et 1 nombre complexe + # print "formatage " + # print "type : ", type(nbC), "pour ", nbC + nbformate ="" + if isinstance(nbC,(tuple,list)) : + if nbC[0] == "'RI'" : + nbformate = "COMPLEX " + str(nbC[1])+" "+str(nbC[2]) + + if nbC[0] == "'MP'" : + nbformate = "POLAR " + str(nbC[1])+" "+str(nbC[2]) + + else : + nbformate = "COMPLEX " + str(nbC.real)+" "+str(nbC.imag) + + # print "nbformate : ", nbformate + return nbformate +