class vcut(ASSD):
pass
+class zs(ASSD):
+ pass
+
+
+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
+
+ __repr__=info
+ __str__=info
+
JdC = JDC_CATA (code = 'monCode',
execmodul = None,
)
# ======================================================================
-# ======================================================================
-#INCLUDE = MACRO ( nom = "INCLUDE", op = None,
-#DONNEES_GENE=MACRO(nom='DONNEES_GENE',op=None,
-# UIinfo = { "groupes" : ( "iii", ) },
-# sd_prod = opsCarmelCND.INCLUDE,
-# fichier_ini = 1,
-
-# mesh_file_name=SIMP(typ=('Fichier', 'All Files (*.med)'),fr= "No comment",ang= "No comment",statut= "o",),
-#)
-
-
-SOURCE=OPER(nom='SOURCE',op=None,sd_prod=source,UIinfo = { "groupes" : ( "toto", ) },
- NomDomaine=SIMP(statut='o',typ='TXM',defaut="default"),
- VecteurDirecteur=SIMP(statut='o',typ='R',min=3,max=3),
- Centre=SIMP(statut='o',typ='R',min=3,max=3),
- SectionDomaine=SIMP(statut='o',typ='R',),
- Amplitude=SIMP(statut='o',typ='R',),
+
+
+SOURCE=OPER(nom='SOURCE',op=None,sd_prod=source,UIinfo = { "groupes" : ( "CACHE", ) },
+ EnveloppeConnexeInducteur=SIMP(statut='o',typ='TXM',defaut="default"),
+ VecteurDirecteur=SIMP(statut='o',typ=Tuple(3),defaut=(0,0,1),validators=VerifTypeTuple(('R','R','R'))),
+ Centre=SIMP(statut='o',typ=Tuple(2),validators=VerifTypeTuple(('R','R')),defaut=(1,2)),
+ SectionBobine=SIMP(statut='o',typ='R',fr='en m2',ang='en m2'),
+ Amplitude=SIMP(statut='o',typ='R',fr='en A',ang='en A'),
NbdeTours=SIMP(statut='o',typ='I',val_min=1),
)
-CONDUCTEUR=OPER(nom='CONDUCTEUR',op=None,sd_prod=conducteur,UIinfo = { "groupes" : ( "toto", ) },
- Conductivite=SIMP(statut='o',typ='R',),
- Permeabilite=SIMP(statut='o',typ='R',),
+CONDUCTEUR=OPER(nom='CONDUCTEUR',op=None,sd_prod=conducteur,UIinfo = { "groupes" : ( "CACHE", ) },
+ Conductivite=SIMP(statut='o',typ='R',fr='en S/m',ang='en S/m'),
+ PermeabiliteRelative=SIMP(statut='o',typ='R',),
)
-NOCOND=OPER(nom='NOCOND',op=None,sd_prod=nocond,UIinfo = { "groupes" : ( "toto", ) },
- Permeabilite=SIMP(statut='o',typ='R',),
+NOCOND=OPER(nom='NOCOND',op=None,sd_prod=nocond,UIinfo = { "groupes" : ( "CACHE", ) },
+ PermeabiliteRelative=SIMP(statut='o',typ='R',),
)
#
-VCUT=OPER(nom='VCUT',op=None,sd_prod=vcut,UIinfo = { "groupes" : ( "toto", ) },
- Orientation=SIMP(statut='o',typ='TXM',into=("Oppose","Meme sens")),
+VCUT=OPER(nom='VCUT',op=None,sd_prod=vcut,UIinfo = { "groupes" : ( "CACHE", ) },
+ Orientation=SIMP(statut='o',typ='TXM',into=("Oppose","Meme sens"),defaut="Oppose"),
+)
+ZS=OPER(nom='ZS',op=None,sd_prod=zs,UIinfo = { "groupes" : ( "CACHE", ) },
+ Conductivite=SIMP(statut='o',typ='R',),
+ Permeabilite=SIMP(statut='o',typ='R',),
)
-PARAMETRES=PROC(nom='PARAMETRES',op=None, UIinfo = { "groupes" : ( "toto", ) },
- RepCarmel=SIMP(typ='Repertoire',fr= "Repertoire Carmel",ang= "Carmel Directory",statut= "o",defaut="/projets/projets.002/carmel3d.001/frequentiel/V_240_test/Compil"),
+PARAMETRES=PROC(nom='PARAMETRES',op=None, UIinfo = { "groupes" : ( "CACHE", ) },
+ RepCarmel=SIMP(typ='Repertoire',fr= "Repertoire Carmel",ang= "Carmel Directory",statut= "o",defaut="/projets/projets.002/carmel3d.001/frequentiel/V_240/Compil"),
TypedeFormule=SIMP(statut='o',typ='TXM',into=("TOMEGA","APHI")),
- Frequence_en_Hz=SIMP(statut='o',typ='I',fr="frequence en hz",ang="frequence en hz"),
+ Frequence=SIMP(statut='o',typ='I',fr="en Hz",ang="en Hz"),
Nb_Max_Iterations=SIMP(statut='o',typ='I',val_min=1,val_max=10000,defaut=10000),
Erreur_Max=SIMP(statut='o',typ='R',defaut=1E-9),
)
# print "gro = %s\n"%(gro[j*MED_LNAME_SIZE:j*MED_LNAME_SIZE+MED_LNAME_SIZE])
groupSplit=gro[j*MED_LNAME_SIZE:j*MED_LNAME_SIZE+MED_LNAME_SIZE]
groupeName="".join(groupSplit).split("\x00")[0]
+ groupeName=groupeName.replace(' ','')
if groupeName[0:7]=="CENTRE_" : dicoNumFam[groupeName]=numfam
if groupeName not in listeGroupes : listeGroupes.append(groupeName)
+ print dicoNumFam
+ #print listeGroupes
+
# /* Lecture des Numeros de Familles */
nnoe, chgt, trsf = MEDmeshnEntity(fid,maa,MED_NO_DT,MED_NO_IT, MED_NODE,MED_NONE,MED_COORDINATE,MED_NO_CMODE)
i=0
while i < nufano.size():
if nufano[i]==famille :
- dicoNumNode[groupe]=i
+ dicoNumNode[groupe]=i+1
break
i=i+1
print dicoNumNode
dicoCoord={}
-# for groupe in dicoNumNode.keys() :
-# for groupe in (1,) :
-# flt=MEDINT(1)
-# flt[0]=2
-# print flt
-# coo1=MEDFLOAT(4)
-# filter=med_filter()
-# print "kk"
-# err=MEDfilterEntityCr( fid, nnoe, 1, sdim, MED_ALL_CONSTITUENT, MED_FULL_INTERLACE, MED_COMPACT_PFLMODE, MED_NO_PROFILE,1 , flt, filter)
-# print err
-# print "kk"
-# MEDmeshNodeCoordinateAdvancedRd(fid, maa, MED_NO_DT, MED_NO_IT, filter, coo1)
-# print "kk"
-# MEDfilterClose(filter)
-# print "kk"
-# print coo1
- dicoCoord['CENTRE_saxBas']=(0,0,28.5e-3)
- dicoCoord['CENTRE_saxHaut']=(0,0,31.5e-3)
+ for groupe in dicoNumNode.keys() :
+ flt=MEDINT(1)
+ flt[0]=dicoNumNode[groupe]
+ coo1=MEDFLOAT(3)
+ filter=med_filter()
+ err=MEDfilterEntityCr( fid, nnoe, 1, sdim, MED_ALL_CONSTITUENT, MED_FULL_INTERLACE, MED_COMPACT_PFLMODE, MED_NO_PROFILE,1 , flt, filter)
+ MEDmeshNodeCoordinateAdvancedRd(fid, maa, MED_NO_DT, MED_NO_IT, filter, coo1)
+ MEDfilterClose(filter)
+ dicoCoord[groupe]=coo1
+# dicoCoord['CENTRE_saxBas']=(0,0,28.5e-3)
+# dicoCoord['CENTRE_saxHaut']=(0,0,31.5e-3)
MEDfileClose(fid)
return ("",listeGroupes,maa,dicoCoord)
if __name__ == "__main__":
filename="/home/A96028/Carmel/Pascale/Domaine_Bidouille.med"
+ #filename="/home/A96028/Carmel/nouveauMed/Domaine.med"
print getGroupes(filename)