a0Exp=mm.getCoords().deepCpy()
del m,m1,mm,fs,f,fCell0,fCell1
########## GO for reading in MEDReader, by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False) # False is important to not read the values
fields.removeFieldsWithoutAnyTimeStep()
refMem=fields.getHeapMemorySize()
a0Exp=mm.getCoords().deepCpy()
del m,m1,mm,fs,f,fCell0,fCell1
########## GO for reading in MEDReader, by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,m1,mm,fs,f,fCell0,fCell1
########## GO for reading in MEDReader, by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs1,fs2,fs3,f,fNode
########## GO for reading in MEDReader, by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs1,fs2,fs3,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
fs0.write(fname,0) ; fs1.write(fname,0) ; fs2.write(fname,0) ; fs3.write(fname,0) ; fs4.write(fname,0)
del m,mm,fs1,fs2,fs3,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
fs0.write(fname,0) ; fs1.write(fname,0) ; fs2.write(fname,0) ; fs3.write(fname,0) ; fs4.write(fname,0)
del m,mm,fs1,fs2,fs3,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs1,fs2,fs3,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs1,fs2,fs3,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs1,fs2,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs0,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs0,fs1,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs0
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs0
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
mm.write(fname,2)
ffs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
#
mms.write(fname,2) ; mts.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
f3.setName(fieldName3)
MEDLoader.WriteFieldUsingAlreadyWrittenMesh(fname,f3)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
f3.setName(fieldName3)
MEDLoader.WriteFieldUsingAlreadyWrittenMesh(fname,f3)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
self.assertTrue(v.isEqual(vExp1[i],1e-12))
pass
## Now same exercise but with a different load strategy. All is load directly.
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname) # here all is read, the SauvReader (or other Reader) is emulated
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
allFMTSLeavesToDisplay=[]
mm.write(fname,2)
ff.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
fs.appendGlobs(fmts3,1e-12)
fs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
mm.write(fname,2)
fs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
mm.write(fname,2)
fmts0.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
mm.write(fname,2)
fmts0.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
m.write(fname,2)
fmts.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False) # false is absolutely necessary for the test
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
mm.write(fname,2)
fs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
mm.write(fname,2)
fs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
self.assertEqual(fields[0].getMeshName(),"mesh")
mm.write(fname,2)
fs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
fGauss.setArray(arrGauss)
MEDLoader.WriteFieldUsingAlreadyWrittenMesh(fname,fGauss)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
cc.write(fname,2)
fs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
cc.write(fname,2)
fs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
cc.write(fname,2)
fs.write(fname,0)
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
MEDLoader.WriteFieldUsingAlreadyWrittenMesh(fname,fCell0)
pass
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
a0Exp=mm.getCoords().deepCpy()
del m,mm,fs0,fs1,f,fNode
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
########## GO for reading in MEDReader,by not loading all. Mesh is fully loaded but not fields values
ms=MEDFileMeshes() # here we reproduce what is done by ParaMEDFileMeshes.ParaNew
ms.pushMesh(MEDFileUMesh.LoadPartOf(fname,"Mesh",[NORM_QUAD4],[0,2,1],-1,-1));
- ms[0].zipCoords()
+ ms[0].zipCoords()
+ ms.cartesianizeMe()
#
fields=MEDFileFields.LoadPartOf(fname,False,ms);
fields.removeFieldsWithoutAnyTimeStep()
ff1.write(fname,0)
ff4.write(fname,0)
###
- ms=MEDFileMeshes(fname)
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
fields=MEDFileFields(fname,False)
fields.removeFieldsWithoutAnyTimeStep()
fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
pass
pass
- def testEmptyMesh(self):
- fname = "empty_mesh.med"
- m = MEDCouplingUMesh('toto', 2)
- m.setCoords(DataArrayDouble([], 0, 2))
- m.setConnectivity(DataArrayInt([]), DataArrayInt([0]))
- mfu = MEDFileUMesh()
- mfu.setMeshAtLevel(0, m)
- mfu.write(fname, 2)
- mfu2 = MEDFileUMesh(fname)
- self.assertEqual('toto', mfu2.getName())
- lvl = mfu2.getNonEmptyLevels()
- self.assertEqual((), lvl)
-
+ def test37(self):
+ """ Introduction of non cartesian meshes management. Here cylindrical."""
+ fname="ForMEDReader37.med"
+ meshName="mesh"
+ description="Cylindrical grid"
+ comps=["X [cm]","Y [cm]","Z [cm]"]
+ arrX=DataArrayDouble(3) ; arrX.iota() ; arrX*=0.8 ; arrX.setInfoOnComponent(0,comps[0])
+ arrY=DataArrayDouble(4) ; arrY.iota() ; arrY*=pi/(len(arrY)-1) ; arrY.setInfoOnComponent(0,comps[1])
+ arrZ=DataArrayDouble(5) ; arrZ.iota() ; arrZ*=1.6 ; arrZ-=8. ; arrZ.setInfoOnComponent(0,comps[2])
+ m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ) ; m.setName(meshName)
+ mm=MEDFileCMesh() ; mm.setMesh(m) ; mm.setDescription(description)
+ mm.setAxType(AX_CYL) # the test is here !
+ f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(m) ; f.setName("Field")
+ arr=DataArrayDouble(m.getNumberOfCells()) ; arr.iota() ; arr*=0.1 ; f.setArray(arr) ; f.checkCoherency()
+ ff=MEDFileField1TS() ; ff.setFieldNoProfileSBT(f)
+ fmts=MEDFileFieldMultiTS() ; fmts.pushBackTimeStep(ff)
+ #
+ ms=MEDFileMeshes() ; ms.pushMesh(mm)
+ fields=MEDFileFields() ; fields.pushField(fmts)
+ #ms.write(fname,2) ; fields.write(fname,0)
+ # WARNING for the moment we do not reread fname ! It is not a hidden bug it is just to wait EF control. Coming soon.
+ ms.cartesianizeMe()
+ #
+ fields.removeFieldsWithoutAnyTimeStep()
+ fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
+ allFMTSLeavesToDisplay=[]
+ for fields in fields_per_mesh:
+ allFMTSLeavesToDisplay2=[]
+ for fmts in fields:
+ tmp=fmts.splitDiscretizations()
+ for itmp in tmp:
+ self.assertTrue(not itmp.presenceOfMultiDiscPerGeoType())
+ pass
+ allFMTSLeavesToDisplay2+=tmp
+ pass
+ allFMTSLeavesToDisplay.append(allFMTSLeavesToDisplay2)
+ pass
+ #
+ self.assertEqual(len(allFMTSLeavesToDisplay),1)
+ self.assertEqual(len(allFMTSLeavesToDisplay[0]),1)
+ allFMTSLeavesPerTimeSeries=MEDFileAnyTypeFieldMultiTS.SplitIntoCommonTimeSeries(sum(allFMTSLeavesToDisplay,[]))
+ self.assertEqual(len(allFMTSLeavesPerTimeSeries),1)
+ allFMTSLeavesPerCommonSupport1=MEDFileAnyTypeFieldMultiTS.SplitPerCommonSupport(allFMTSLeavesToDisplay[0],ms[ms.getMeshesNames()[0]])
+ self.assertEqual(len(allFMTSLeavesPerCommonSupport1),1)
+ #
+ mst=MEDFileMeshStruct.New(ms[0])
+ fcscp=allFMTSLeavesPerCommonSupport1[0][1]
+ mml=fcscp.buildFromScratchDataSetSupport(0,fields)
+ mml2=mml.prepare()
+ self.assertTrue(isinstance(mml2,MEDCurveLinearMeshMultiLev))# <- hehe it is a CurveLinear no more a CMesh !
+ a,b,c=mml2.buildVTUArrays()
+ self.assertTrue(c)# the array is thoose in structure
+ ref_a=DataArrayDouble([0.,0.,-8.,0.8,0.,-8.,1.6,0.,-8.,0.,0.,-8.,0.4,0.6928203230275509,-8.,0.8,1.3856406460551018,-8.,-0.,0.,-8.,-0.4,0.692820323027551,-8.,-0.8,1.385640646055102,-8.,-0.,0.,-8.,-0.8,0.,-8.,-1.6,0.,-8.,0.,0.,-6.4,0.8,0.,-6.4,1.6,0.,-6.4,0.,0.,-6.4,0.4,0.6928203230275509,-6.4,0.8,1.3856406460551018,-6.4,-0.,0.,-6.4,-0.4,0.692820323027551,-6.4,-0.8,1.385640646055102,-6.4,-0.,0.,-6.4,-0.8,0.,-6.4,-1.6,0.,-6.4,0.,0.,-4.8,0.8,0.,-4.8,1.6,0.,-4.8,0.,0.,-4.8,0.4,0.6928203230275509,-4.8,0.8,1.3856406460551018,-4.8,-0.,0.,-4.8,-0.4,0.692820323027551,-4.8,-0.8,1.385640646055102,-4.8,-0.,0.,-4.8,-0.8,0.,-4.8,-1.6,0.,-4.8,0.,0.,-3.2,0.8,0.,-3.2,1.6,0.,-3.2,0.,0.,-3.2,0.4,0.6928203230275509,-3.2,0.8,1.3856406460551018,-3.2,-0.,0.,-3.2,-0.4,0.692820323027551,-3.2,-0.8,1.385640646055102,-3.2,-0.,0.,-3.2,-0.8,0.,-3.2,-1.6,0.,-3.2,0.,0.,-1.6,0.8,0.,-1.6,1.6,0.,-1.6,0.,0.,-1.6,0.4,0.6928203230275509,-1.6,0.8,1.3856406460551018,-1.6,-0.,0.,-1.6,-0.4,0.692820323027551,-1.6,-0.8,1.385640646055102,-1.6,-0.,0.,-1.6,-0.8,0.,-1.6,-1.6,0.,-1.6],60,3)
+ ref_a.setInfoOnComponents(comps)
+ self.assertTrue(a.isEqual(ref_a,1e-14))
+ self.assertEqual(b,[3,4,5])
+ for i in xrange(1):
+ ffCell=allFMTSLeavesPerCommonSupport1[0][0][0][i]
+ fsst=MEDFileField1TSStructItem.BuildItemFrom(ffCell,mst)
+ ffCell.loadArraysIfNecessary()
+ v=mml2.buildDataArray(fsst,fields,ffCell.getUndergroundDataArray())
+ self.assertEqual(v.getHiddenCppPointer(),ffCell.getUndergroundDataArray().getHiddenCppPointer())
+ self.assertTrue(v.isEqual(DataArrayDouble([0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3]),1e-14))
+ pass
+ pass
+
+ def test38(self):
+ """ Introduction of non cartesian meshes management. Here spherical."""
+ fname="ForMEDReader38.med"
+ meshName="mesh"
+ description="Spherical grid"
+ comps=["X [cm]","Y [cm]","Z [cm]"]
+ arrX=DataArrayDouble(3) ; arrX.iota() ; arrX*=0.8 ; arrX.setInfoOnComponent(0,comps[0])
+ arrY=DataArrayDouble(4) ; arrY.iota() ; arrY*=pi/(len(arrY)-1) ; arrY.setInfoOnComponent(0,comps[1])
+ arrZ=DataArrayDouble(5) ; arrZ.iota() ; arrZ*=2*pi/(len(arrZ)-1) ; arrZ.setInfoOnComponent(0,comps[2])
+ m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ) ; m.setName(meshName)
+ mm=MEDFileCMesh() ; mm.setMesh(m) ; mm.setDescription(description)
+ mm.setAxType(AX_SPHER) # the test is here !
+ f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(m) ; f.setName("Field")
+ arr=DataArrayDouble(m.getNumberOfCells()) ; arr.iota() ; arr*=0.1 ; f.setArray(arr) ; f.checkCoherency()
+ ff=MEDFileField1TS() ; ff.setFieldNoProfileSBT(f)
+ fmts=MEDFileFieldMultiTS() ; fmts.pushBackTimeStep(ff)
+ #
+ ms=MEDFileMeshes() ; ms.pushMesh(mm)
+ fields=MEDFileFields() ; fields.pushField(fmts)
+ #ms.write(fname,2) ; fields.write(fname,0)
+ # WARNING for the moment we do not reread fname ! It is not a hidden bug it is just to wait EF control. Coming soon.
+ ms.cartesianizeMe()
+ #
+ fields.removeFieldsWithoutAnyTimeStep()
+ fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
+ allFMTSLeavesToDisplay=[]
+ for fields in fields_per_mesh:
+ allFMTSLeavesToDisplay2=[]
+ for fmts in fields:
+ tmp=fmts.splitDiscretizations()
+ for itmp in tmp:
+ self.assertTrue(not itmp.presenceOfMultiDiscPerGeoType())
+ pass
+ allFMTSLeavesToDisplay2+=tmp
+ pass
+ allFMTSLeavesToDisplay.append(allFMTSLeavesToDisplay2)
+ pass
+ #
+ self.assertEqual(len(allFMTSLeavesToDisplay),1)
+ self.assertEqual(len(allFMTSLeavesToDisplay[0]),1)
+ allFMTSLeavesPerTimeSeries=MEDFileAnyTypeFieldMultiTS.SplitIntoCommonTimeSeries(sum(allFMTSLeavesToDisplay,[]))
+ self.assertEqual(len(allFMTSLeavesPerTimeSeries),1)
+ allFMTSLeavesPerCommonSupport1=MEDFileAnyTypeFieldMultiTS.SplitPerCommonSupport(allFMTSLeavesToDisplay[0],ms[ms.getMeshesNames()[0]])
+ self.assertEqual(len(allFMTSLeavesPerCommonSupport1),1)
+ #
+ mst=MEDFileMeshStruct.New(ms[0])
+ fcscp=allFMTSLeavesPerCommonSupport1[0][1]
+ mml=fcscp.buildFromScratchDataSetSupport(0,fields)
+ mml2=mml.prepare()
+ self.assertTrue(isinstance(mml2,MEDCurveLinearMeshMultiLev))
+ a,b,c=mml2.buildVTUArrays()
+ self.assertTrue(c)# the array is thoose in structure
+ ref_a=DataArrayDouble([0.,0.,0.,0.,0.,0.8,0.,0.,1.6,0.,0.,0.,0.6928203230275509,0.,0.4,1.3856406460551018,0.,0.8,0.,0.,-0.,0.692820323027551,0.,-0.4,1.385640646055102,0.,-0.8,0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,0.,0.,0.,0.,0.,0.8,0.,0.,1.6,0.,0.,0.,0.,0.6928203230275509,0.4,0.,1.3856406460551018,0.8,0.,0.,-0.,0.,0.692820323027551,-0.4,0.,1.385640646055102,-0.8,0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,-0.,0.,0.,-0.,0.,0.8,-0.,0.,1.6,-0.,0.,0.,-0.6928203230275509,0.,0.4,-1.3856406460551018,0.,0.8,-0.,0.,-0.,-0.692820323027551,0.,-0.4,-1.385640646055102,0.,-0.8,-0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,-0.,-0.,0.,-0.,-0.,0.8,-0.,-0.,1.6,-0.,-0.,0.,0.,-0.6928203230275509,0.4,0.,-1.3856406460551018,0.8,-0.,-0.,-0.,0.,-0.692820323027551,-0.4,0.,-1.385640646055102,-0.8,-0.,-0.,-0.,0.,0.,-0.8,0.,0.,-1.6,0.,-0.,0.,0.,-0.,0.8,0.,-0.,1.6,0.,-0.,0.,0.6928203230275509,0.,0.4,1.3856406460551018,0.,0.8,0.,-0.,-0.,0.692820323027551,0.,-0.4,1.385640646055102,0.,-0.8,0.,-0.,-0.,0.,0.,-0.8,0.,0.,-1.6],60,3)
+ ref_a.setInfoOnComponents(comps)
+ self.assertTrue(a.isEqual(ref_a,1e-14))
+ self.assertEqual(b,[3,4,5])
+ for i in xrange(1):
+ ffCell=allFMTSLeavesPerCommonSupport1[0][0][0][i]
+ fsst=MEDFileField1TSStructItem.BuildItemFrom(ffCell,mst)
+ ffCell.loadArraysIfNecessary()
+ v=mml2.buildDataArray(fsst,fields,ffCell.getUndergroundDataArray())
+ self.assertEqual(v.getHiddenCppPointer(),ffCell.getUndergroundDataArray().getHiddenCppPointer())
+ self.assertTrue(v.isEqual(DataArrayDouble([0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3]),1e-14))
+ pass
+ pass
+
+ def test39(self):
+ """Idem test37, test38, test39, test40 except that here it is an unstructured mesh."""
+ fname="ForMEDReader39.med"
+ meshName="mesh"
+ description="Spherical grid"
+ comps=["X [cm]","Y [cm]","Z [cm]"]
+ arrX=DataArrayDouble(3) ; arrX.iota() ; arrX*=0.8 ; arrX.setInfoOnComponent(0,comps[0])
+ arrY=DataArrayDouble(4) ; arrY.iota() ; arrY*=pi/(len(arrY)-1) ; arrY.setInfoOnComponent(0,comps[1])
+ arrZ=DataArrayDouble(5) ; arrZ.iota() ; arrZ*=2*pi/(len(arrZ)-1) ; arrZ.setInfoOnComponent(0,comps[2])
+ m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ) ; m.setName(meshName) ; m=m.buildUnstructured()
+ mm=MEDFileUMesh() ; mm[0]=m ; mm.setDescription(description) # the test is here : UMesh !
+ mm.setAxType(AX_SPHER) # the test is here !
+ f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(m) ; f.setName("Field")
+ arr=DataArrayDouble(m.getNumberOfCells()) ; arr.iota() ; arr*=0.1 ; f.setArray(arr) ; f.checkCoherency()
+ ff=MEDFileField1TS() ; ff.setFieldNoProfileSBT(f)
+ fmts=MEDFileFieldMultiTS() ; fmts.pushBackTimeStep(ff)
+ #
+ ms=MEDFileMeshes() ; ms.pushMesh(mm)
+ fields=MEDFileFields() ; fields.pushField(fmts)
+ ms.write(fname,2) ; fields.write(fname,0)
+ #
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
+ fields=MEDFileFields(fname,False)
+ fields.removeFieldsWithoutAnyTimeStep()
+ fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
+ allFMTSLeavesToDisplay=[]
+ for fields in fields_per_mesh:
+ allFMTSLeavesToDisplay2=[]
+ for fmts in fields:
+ tmp=fmts.splitDiscretizations()
+ for itmp in tmp:
+ self.assertTrue(not itmp.presenceOfMultiDiscPerGeoType())
+ pass
+ allFMTSLeavesToDisplay2+=tmp
+ pass
+ allFMTSLeavesToDisplay.append(allFMTSLeavesToDisplay2)
+ pass
+ #
+ self.assertEqual(len(allFMTSLeavesToDisplay),1)
+ self.assertEqual(len(allFMTSLeavesToDisplay[0]),1)
+ allFMTSLeavesPerTimeSeries=MEDFileAnyTypeFieldMultiTS.SplitIntoCommonTimeSeries(sum(allFMTSLeavesToDisplay,[]))
+ self.assertEqual(len(allFMTSLeavesPerTimeSeries),1)
+ allFMTSLeavesPerCommonSupport1=MEDFileAnyTypeFieldMultiTS.SplitPerCommonSupport(allFMTSLeavesToDisplay[0],ms[ms.getMeshesNames()[0]])
+ self.assertEqual(len(allFMTSLeavesPerCommonSupport1),1)
+ #
+ mst=MEDFileMeshStruct.New(ms[0])
+ fcscp=allFMTSLeavesPerCommonSupport1[0][1]
+ mml=fcscp.buildFromScratchDataSetSupport(0,fields)
+ mml2=mml.prepare()
+ self.assertTrue(isinstance(mml2,MEDUMeshMultiLev))
+ ncc,a0,a1,a2,a3,a4,a5=mml2.buildVTUArrays()
+ self.assertTrue(ncc)
+ ref_a=DataArrayDouble([0.,0.,0.,0.,0.,0.8,0.,0.,1.6,0.,0.,0.,0.6928203230275509,0.,0.4,1.3856406460551018,0.,0.8,0.,0.,-0.,0.692820323027551,0.,-0.4,1.385640646055102,0.,-0.8,0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,0.,0.,0.,0.,0.,0.8,0.,0.,1.6,0.,0.,0.,0.,0.6928203230275509,0.4,0.,1.3856406460551018,0.8,0.,0.,-0.,0.,0.692820323027551,-0.4,0.,1.385640646055102,-0.8,0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,-0.,0.,0.,-0.,0.,0.8,-0.,0.,1.6,-0.,0.,0.,-0.6928203230275509,0.,0.4,-1.3856406460551018,0.,0.8,-0.,0.,-0.,-0.692820323027551,0.,-0.4,-1.385640646055102,0.,-0.8,-0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,-0.,-0.,0.,-0.,-0.,0.8,-0.,-0.,1.6,-0.,-0.,0.,0.,-0.6928203230275509,0.4,0.,-1.3856406460551018,0.8,-0.,-0.,-0.,0.,-0.692820323027551,-0.4,0.,-1.385640646055102,-0.8,-0.,-0.,-0.,0.,0.,-0.8,0.,0.,-1.6,0.,-0.,0.,0.,-0.,0.8,0.,-0.,1.6,0.,-0.,0.,0.6928203230275509,0.,0.4,1.3856406460551018,0.,0.8,0.,-0.,-0.,0.692820323027551,0.,-0.4,1.385640646055102,0.,-0.8,0.,-0.,-0.,0.,0.,-0.8,0.,0.,-1.6],60,3)
+ ref_a.setInfoOnComponents(comps)
+ self.assertTrue(a0.isEqual(ref_a,1e-14))#<- Test is here
+ for i in xrange(1):
+ ffCell=allFMTSLeavesPerCommonSupport1[0][0][0][i]
+ fsst=MEDFileField1TSStructItem.BuildItemFrom(ffCell,mst)
+ ffCell.loadArraysIfNecessary()
+ v=mml2.buildDataArray(fsst,fields,ffCell.getUndergroundDataArray())
+ self.assertEqual(v.getHiddenCppPointer(),ffCell.getUndergroundDataArray().getHiddenCppPointer())
+ self.assertTrue(v.isEqual(DataArrayDouble([0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3]),1e-14))
+ pass
+
+ def test40(self):
+ """Idem test37, test38, test39, test40 except that here it is a CL mesh."""
+ fname="ForMEDReader40.med"
+ meshName="mesh"
+ description="Spherical grid"
+ comps=["X [cm]","Y [cm]","Z [cm]"]
+ arrX=DataArrayDouble(3) ; arrX.iota() ; arrX*=0.8 ; arrX.setInfoOnComponent(0,comps[0])
+ arrY=DataArrayDouble(4) ; arrY.iota() ; arrY*=pi/(len(arrY)-1) ; arrY.setInfoOnComponent(0,comps[1])
+ arrZ=DataArrayDouble(5) ; arrZ.iota() ; arrZ*=2*pi/(len(arrZ)-1) ; arrZ.setInfoOnComponent(0,comps[2])
+ m=MEDCouplingCMesh() ; m.setCoords(arrX,arrY,arrZ) ; m.setName(meshName) ; m=m.buildCurveLinear()
+ mm=MEDFileCurveLinearMesh() ; mm.setMesh(m) ; mm.setDescription(description) # the test is here CLMesh!
+ mm.setAxType(AX_SPHER) # the test is here !
+ f=MEDCouplingFieldDouble(ON_CELLS) ; f.setMesh(m) ; f.setName("Field")
+ arr=DataArrayDouble(m.getNumberOfCells()) ; arr.iota() ; arr*=0.1 ; f.setArray(arr) ; f.checkCoherency()
+ ff=MEDFileField1TS() ; ff.setFieldNoProfileSBT(f)
+ fmts=MEDFileFieldMultiTS() ; fmts.pushBackTimeStep(ff)
+ #
+ ms=MEDFileMeshes() ; ms.pushMesh(mm)
+ fields=MEDFileFields() ; fields.pushField(fmts)
+ ms.write(fname,2) ; fields.write(fname,0)
+ #
+ ms=MEDFileMeshes(fname) ; ms.cartesianizeMe()
+ fields=MEDFileFields(fname,False)
+ fields.removeFieldsWithoutAnyTimeStep()
+ fields_per_mesh=[fields.partOfThisLyingOnSpecifiedMeshName(meshName) for meshName in ms.getMeshesNames()]
+ allFMTSLeavesToDisplay=[]
+ for fields in fields_per_mesh:
+ allFMTSLeavesToDisplay2=[]
+ for fmts in fields:
+ tmp=fmts.splitDiscretizations()
+ for itmp in tmp:
+ self.assertTrue(not itmp.presenceOfMultiDiscPerGeoType())
+ pass
+ allFMTSLeavesToDisplay2+=tmp
+ pass
+ allFMTSLeavesToDisplay.append(allFMTSLeavesToDisplay2)
+ pass
+ #
+ self.assertEqual(len(allFMTSLeavesToDisplay),1)
+ self.assertEqual(len(allFMTSLeavesToDisplay[0]),1)
+ allFMTSLeavesPerTimeSeries=MEDFileAnyTypeFieldMultiTS.SplitIntoCommonTimeSeries(sum(allFMTSLeavesToDisplay,[]))
+ self.assertEqual(len(allFMTSLeavesPerTimeSeries),1)
+ allFMTSLeavesPerCommonSupport1=MEDFileAnyTypeFieldMultiTS.SplitPerCommonSupport(allFMTSLeavesToDisplay[0],ms[ms.getMeshesNames()[0]])
+ self.assertEqual(len(allFMTSLeavesPerCommonSupport1),1)
+ #
+ mst=MEDFileMeshStruct.New(ms[0])
+ fcscp=allFMTSLeavesPerCommonSupport1[0][1]
+ mml=fcscp.buildFromScratchDataSetSupport(0,fields)
+ mml2=mml.prepare()
+ self.assertTrue(isinstance(mml2,MEDCurveLinearMeshMultiLev))
+ a,b,c=mml2.buildVTUArrays()
+ self.assertTrue(c)
+ ref_a=DataArrayDouble([0.,0.,0.,0.,0.,0.8,0.,0.,1.6,0.,0.,0.,0.6928203230275509,0.,0.4,1.3856406460551018,0.,0.8,0.,0.,-0.,0.692820323027551,0.,-0.4,1.385640646055102,0.,-0.8,0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,0.,0.,0.,0.,0.,0.8,0.,0.,1.6,0.,0.,0.,0.,0.6928203230275509,0.4,0.,1.3856406460551018,0.8,0.,0.,-0.,0.,0.692820323027551,-0.4,0.,1.385640646055102,-0.8,0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,-0.,0.,0.,-0.,0.,0.8,-0.,0.,1.6,-0.,0.,0.,-0.6928203230275509,0.,0.4,-1.3856406460551018,0.,0.8,-0.,0.,-0.,-0.692820323027551,0.,-0.4,-1.385640646055102,0.,-0.8,-0.,0.,-0.,0.,0.,-0.8,0.,0.,-1.6,-0.,-0.,0.,-0.,-0.,0.8,-0.,-0.,1.6,-0.,-0.,0.,0.,-0.6928203230275509,0.4,0.,-1.3856406460551018,0.8,-0.,-0.,-0.,0.,-0.692820323027551,-0.4,0.,-1.385640646055102,-0.8,-0.,-0.,-0.,0.,0.,-0.8,0.,0.,-1.6,0.,-0.,0.,0.,-0.,0.8,0.,-0.,1.6,0.,-0.,0.,0.6928203230275509,0.,0.4,1.3856406460551018,0.,0.8,0.,-0.,-0.,0.692820323027551,0.,-0.4,1.385640646055102,0.,-0.8,0.,-0.,-0.,0.,0.,-0.8,0.,0.,-1.6],60,3)
+ ref_a.setInfoOnComponents(comps)
+ self.assertTrue(a.isEqual(ref_a,1e-14))#<- Test is here
+ self.assertEqual(b,[3,4,5])
+ for i in xrange(1):
+ ffCell=allFMTSLeavesPerCommonSupport1[0][0][0][i]
+ fsst=MEDFileField1TSStructItem.BuildItemFrom(ffCell,mst)
+ ffCell.loadArraysIfNecessary()
+ v=mml2.buildDataArray(fsst,fields,ffCell.getUndergroundDataArray())
+ self.assertEqual(v.getHiddenCppPointer(),ffCell.getUndergroundDataArray().getHiddenCppPointer())
+ self.assertTrue(v.isEqual(DataArrayDouble([0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3]),1e-14))
+ pass
+
pass
if __name__ == "__main__":