X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FSwig%2FMEDLoaderSplitter.py;h=6acbc1f18fd11d3bade41cdd153b9f20a61f1e14;hb=3a3ca9b8fd8d4f6bc7d6e097cb2ffee29ff4af45;hp=dafdcd09ab8e1a7f4694185f0b273be904a107dd;hpb=c5f9a2bb5f775564b5bd81de58dfa708bcef020d;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Swig/MEDLoaderSplitter.py b/src/MEDLoader/Swig/MEDLoaderSplitter.py index dafdcd09a..6acbc1f18 100644 --- a/src/MEDLoader/Swig/MEDLoaderSplitter.py +++ b/src/MEDLoader/Swig/MEDLoaderSplitter.py @@ -26,7 +26,7 @@ class MEDLoaderSplitter: @classmethod def New(cls,mfd,idsLst): """ mfd is a MEDFileData instance containing only one mesh. idsLst is a list of DataArrayInt containing each the ids per processor """ - return MEDLoaderSplitter(fileName) + return MEDLoaderSplitter(mfd,idsLst) pass def __init__(self,mfd,idsLst): @@ -96,18 +96,26 @@ class MEDLoaderSplitter: def __splitMesh(self,mfm,idsLst): ret0 = [MEDFileMeshes() for i in range(len(idsLst))] - m=mfm.getMeshAtLevel(0) + m=mfm[0] + addlevs=list(mfm.getNonEmptyLevels())[1:] + dAddlevs={k:mfm[k] for k in addlevs} for ret,ids in zip(ret0,idsLst): mlPart=mfm.createNewEmpty() - mPart=m[ids] ; trad=mPart.zipCoordsTraducer() - trad=trad.invertArrayO2N2N2O(mPart.getNumberOfNodes()) - mlPart.setMeshAtLevel(0,mPart) + mPart=m[ids] ; trado2n=mPart.zipCoordsTraducer() + trad=trado2n.invertArrayO2N2N2O(mPart.getNumberOfNodes()) + mlPart[0]=mPart if 0 in mfm.getFamArrNonEmptyLevelsExt(): mlPart.setFamilyFieldArr(0,mfm.getFamilyFieldAtLevel(0)[ids]) pass if 1 in mfm.getFamArrNonEmptyLevelsExt(): mlPart.setFamilyFieldArr(1,mfm.getFamilyFieldAtLevel(1)[trad]) pass + for k,v in dAddlevs.iteritems(): + part=v.getCellIdsFullyIncludedInNodeIds(trad) + mSubPart=v[part] ; mSubPart.renumberNodesInConn(trado2n) ; mSubPart.setCoords(mPart.getCoords()) + mlPart[k]=mSubPart + mlPart.setFamilyFieldArr(k,mfm.getFamilyFieldAtLevel(k)[part]) + pass mlPart.copyFamGrpMapsFrom(mfm) ret.pushMesh(mlPart) pass