# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2015 CEA/DEN, EDF R&D
+# Copyright (C) 2007-2016 CEA/DEN, EDF R&D
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
pos+=nbNodes*3*4 ; fd.seek(pos)#np.array(0,dtype='float%i'%(typeOfCoo)).nbytes
typ=fd.read(80).strip() ; pos=fd.tell()
zeK=""
- for k in self.dictMCTyp2.keys():
+ for k in self.dictMCTyp2:
if k in typ:
zeK=k
break
typ=fd.read(80).strip() ; pos=fd.tell()
mcmeshes2=[]
while pos!=end and typ!="part":
+ if typ[0]=='\0': pos+=1; continue
mctyp=self.dictMCTyp2[typ]
nbCellsOfType=np.memmap(fd,dtype='int32',mode='r',offset=int(pos),shape=(1,)).tolist()[0]
pos+=4
elt=fd.read(80) ; elt=elt.strip() ; typ=elt[:] ; pos+=80
pass
pass
- coo=mcmeshes2[0].getCoords() ; name=mcmeshes2[0].getName()
- for itmesh in mcmeshes2: itmesh.setCoords(coo)
- m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(mcmeshes2) ; m.setName(name)
- mcmeshes.append(m)
+ if mcmeshes2:
+ coo=mcmeshes2[0].getCoords() ; name=mcmeshes2[0].getName()
+ for itmesh in mcmeshes2: itmesh.setCoords(coo)
+ m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(mcmeshes2) ; m.setName(name)
+ mcmeshes.append(m)
pass
return mcmeshes
raise Exception("ConvertField : mismatch #2")
fdisc=MEDCouplingFieldDiscretization.New(self.discSpatial2[discr])
meshId=np.memmap(fd,dtype='int32',mode='r',offset=int(pos),shape=(1)).tolist()[0]-1
+ if meshId >= len( mcmeshes ):
+ return
nbOfValues=fdisc.getNumberOfTuples(mcmeshes[meshId])
vals2=DataArrayDouble(nbOfValues,nbCompo)
fd.seek(pos+4)
nbOfValsOfTyp=np.memmap(fd,dtype='>i4',mode='r',offset=pos,shape=(1)).tolist()[0]/4
pos+=4
vals=np.zeros(dtype=">f4",shape=(nbOfValsOfTyp*nbCompo))
- for iii in xrange(nbCompo):
+ for iii in range(nbCompo):
valsTmp=np.memmap(fd,dtype='>f4',mode='r',offset=int(pos),shape=(nbOfValsOfTyp))
vals[iii*nbOfValsOfTyp:(iii+1)*nbOfValsOfTyp]=valsTmp
pos+=nbOfValsOfTyp*4
if "TIME\n" in lines:
end=lines.index("TIME\n")
pass
- for i in xrange(ind+1,end):
+ for i in range(ind + 1, end):
m=re.match("^([\w]+)[\s]+\per[\s]+([\w]+)[\s]*\:[\s]*([\w]+)[\s]+([\S]+)$",lines[i])
if m:
if m.groups()[0]=="constant":
pass
expr=re.compile("number[\s]+of[\s]+steps[\s]*\:[\s]*([\d]+)")
- tmp=filter(expr.search,lines)
- if len(tmp)!=0:
- nbOfTimeSteps=int(expr.search(filter(expr.search,lines)[0]).group(1))
+ tmp = [line for line in lines if expr.search(line)]
+ if tmp:
+ nbOfTimeSteps = int(expr.search(tmp[0]).group(1))
expr=re.compile("filename[\s]+start[\s]+number[\s]*\:[\s]*([\d]+)")
- startIt=int(expr.search(filter(expr.search,lines)[0]).group(1))
+ startIt = int(expr.search([line for line in lines if expr.search(line)][0]).group(1))
expr=re.compile("filename[\s]+increment[\s]*\:[\s]*([\d]+)")
- incrIt=int(expr.search(filter(expr.search,lines)[0]).group(1))
+ incrIt = int(expr.search([line for line in lines if expr.search(line)][0]).group(1))
else:
nbOfTimeSteps=1
startIt=0
i+=1
pass
pass
- for ts in xrange(nbOfTimeSteps):
+ for ts in range(nbOfTimeSteps):
i=0
for field in fieldsInfo:
if typeOfFile:
pass
ret=MEDFileData()
ret.setMeshes(m2)
- del mlfields[filter(lambda x: len(mlfields[x])==0,range(len(mlfields)))]
+ del mlfields[[x for x in range(len(mlfields)) if len(mlfields[x]) == 0]]
ret.setFields(mlfields)
return ret