X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FSwig%2FMEDLoaderTest3.py;h=2682b2dd9baf1aef722ef277754b65919cb07bbb;hb=281f5b3852ce7e4e71642292f133e0138b27d5e9;hp=9e2e48cc0384e38bbc69f1ab568573ecb9d2dbba;hpb=a25fc7c3173633c8eec4a4db9cda520f947317b7;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/Swig/MEDLoaderTest3.py b/src/MEDLoader/Swig/MEDLoaderTest3.py index 9e2e48cc0..2682b2dd9 100644 --- a/src/MEDLoader/Swig/MEDLoaderTest3.py +++ b/src/MEDLoader/Swig/MEDLoaderTest3.py @@ -4279,6 +4279,86 @@ class MEDLoaderTest(unittest.TestCase): field2=ff.getFieldOnMeshAtLevel(ON_CELLS,0,mm) self.assertTrue(field.isEqual(field2,1e-12,1e-12)) pass + + def testMEDFileUMeshLinearToQuadraticAndRev1(self): + meshName="mesh" + fileName="Pyfile90.med" + fileName2="Pyfile91.med" + arr=DataArrayDouble(5) ; arr.iota() + m=MEDCouplingCMesh() ; m.setCoords(arr,arr) + m=m.buildUnstructured() + d=DataArrayInt([3,7,11,15]) + m1=m[d] + m1.simplexize(0) + m2=m[d.buildComplement(m.getNumberOfCells())] + m=MEDCouplingUMesh.MergeUMeshesOnSameCoords(m1,m2) + m.changeSpaceDimension(3,0.) + arr=DataArrayDouble(3) ; arr.iota() + m1D=MEDCouplingCMesh() ; m1D.setCoords(arr) ; m1D=m1D.buildUnstructured() ; m1D.changeSpaceDimension(3,0.) + m1D.setCoords(m1D.getCoords()[:,[1,2,0]]) + delta=m.getNumberOfNodes()*(m1D.getNumberOfNodes()-1) + m3D=m.buildExtrudedMesh(m1D,0) + m3D.sortCellsInMEDFileFrmt() + m3D.setName(meshName) + m2D=m ; m2D.setCoords(m3D.getCoords()) ; m2D.shiftNodeNumbersInConn(delta) ; m2D.setName(meshName) ; m2D.checkCoherency2() + m1D=m2D.computeSkin() ; m1D.setName(meshName) + # + mm=MEDFileUMesh() + mm[0]=m3D ; mm[-1]=m2D ; mm[-2]=m1D + grpEdge0=DataArrayInt([1,2,3,5]) ; grpEdge0.setName("East") + grpEdge1=DataArrayInt([0,1]) ; grpEdge1.setName("Corner1") + grpFaceSouth=DataArrayInt([0,1,8,9,10]) ; grpFaceSouth.setName("SouthFace") + grpFaceNorth=DataArrayInt([6,7,17,18,19]) ; grpFaceNorth.setName("NorthFace") + diagFace=DataArrayInt([0,1,13,15,17]) ; diagFace.setName("DiagFace") + vol1=DataArrayInt([20,21,23,24]) ; vol1.setName("vol1") + vol2=DataArrayInt([2,3,4,5,21,24]) ; vol2.setName("vol2") + mm.setGroupsAtLevel(0,[vol1,vol2]) + mm.setGroupsAtLevel(-1,[grpFaceSouth,grpFaceNorth,diagFace]) + mm.setGroupsAtLevel(-2,[grpEdge0,grpEdge1]) + # + mmOut1=mm.linearToQuadratic(0,0.) + mmOut1.write(fileName2,2) + mmOut2=mmOut1.quadraticToLinear(0.) + self.assertTrue(mm.isEqual(mmOut2,1e-12)[0]) + pass + + def testMEDFileMeshAddGroup1(self): + m=MEDCouplingCMesh() + arrX=DataArrayDouble(9) ; arrX.iota() + arrY=DataArrayDouble(4) ; arrY.iota() + m.setCoords(arrX,arrY) + m.setName("mesh") + mm=MEDFileCMesh() + mm.setMesh(m) + grp0=DataArrayInt([3,5,6,21,22]) ; grp0.setName("grp0") + mm.addGroup(0,grp0) + grp1=DataArrayInt([3,4,5,8,18,19,22]) ; grp1.setName("grp1") + mm.addGroup(0,grp1) + grp2=DataArrayInt([0,1,2,10,11]) ; grp2.setName("grp2") + mm.addGroup(0,grp2) + grp3=DataArrayInt([23]) ; grp3.setName("grp3") + mm.addGroup(0,grp3) + for grp in [grp0,grp1,grp2,grp3]: + self.assertTrue(mm.getGroupArr(0,grp.getName()).isEqual(grp)) + self.assertEqual(mm.getGroupsNames(),('grp0','grp1','grp2','grp3')) + delta=12 + for grp in [grp0,grp1,grp2,grp3]: + grpNode=grp.deepCpy() ; grpNode+=delta ; grpNode.setName("%s_node"%grp.getName()) + mm.addGroup(1,grpNode) + self.assertEqual(mm.getGroupsNames(),('grp0','grp0_node','grp1','grp1_node','grp2','grp2_node','grp3','grp3_node')) + for grp in [grp0,grp1,grp2,grp3]: + self.assertTrue(mm.getGroupArr(0,grp.getName()).isEqual(grp)) + for grp in [grp0,grp1,grp2,grp3]: + grpExp=grp+delta ; grpExp.setName("%s_node"%grp.getName()) + self.assertTrue(mm.getGroupArr(1,"%s_node"%grp.getName()).isEqual(grpExp)) + mm.normalizeFamIdsMEDFile() + for grp in [grp0,grp1,grp2,grp3]: + self.assertTrue(mm.getGroupArr(0,grp.getName()).isEqual(grp)) + for grp in [grp0,grp1,grp2,grp3]: + grpExp=grp+delta ; grpExp.setName("%s_node"%grp.getName()) + self.assertTrue(mm.getGroupArr(1,"%s_node"%grp.getName()).isEqual(grpExp)) + pass + pass unittest.main()