예제 #1
0
 def testPrepareEx1(self):
     sourceMesh = self.build2DSourceMesh_1()
     targetMesh = self.build2DTargetMesh_3()
     #
     remapper = MEDCouplingRemapper()
     remapper.setPrecision(1e-12)
     remapper.setIntersectionType(Triangulation)
     srcFt = MEDCouplingFieldTemplate.New(ON_CELLS)
     trgFt = MEDCouplingFieldTemplate.New(ON_CELLS)
     srcFt.setMesh(sourceMesh)
     trgFt.setMesh(targetMesh)
     self.assertEqual(1, remapper.prepareEx(srcFt, trgFt))
     srcField = MEDCouplingFieldDouble.New(ON_CELLS)
     srcField.setNature(ConservativeVolumic)
     srcField.setMesh(sourceMesh)
     array = DataArrayDouble.New()
     ptr = sourceMesh.getNumberOfCells() * [None]
     for i in xrange(sourceMesh.getNumberOfCells()):
         ptr[i] = float(i + 7)
         pass
     array.setValues(ptr, sourceMesh.getNumberOfCells(), 1)
     srcField.setArray(array)
     trgfield = remapper.transferField(srcField, 4.220173)
     values = trgfield.getArray().getValues()
     valuesExpected = [7.75, 7.0625, 4.220173, 8.0]
     self.assertEqual(4,
                      trgfield.getArray().getNumberOfTuples())
     self.assertEqual(1,
                      trgfield.getArray().getNumberOfComponents())
     for i0 in xrange(4):
         self.assertAlmostEqual(valuesExpected[i0], values[i0], 12)
         pass
     pass
 def testPrepareEx1(self):
     sourceMesh = self.build2DSourceMesh_1()
     targetMesh = self.build2DTargetMesh_3()
     #
     remapper = MEDCouplingRemapper()
     remapper.setPrecision(1e-12)
     remapper.setIntersectionType(Triangulation)
     srcFt = MEDCouplingFieldTemplate.New(ON_CELLS)
     trgFt = MEDCouplingFieldTemplate.New(ON_CELLS)
     srcFt.setMesh(sourceMesh)
     trgFt.setMesh(targetMesh)
     self.assertEqual(1, remapper.prepareEx(srcFt, trgFt))
     srcField = MEDCouplingFieldDouble.New(ON_CELLS)
     srcField.setNature(ConservativeVolumic)
     srcField.setMesh(sourceMesh)
     array = DataArrayDouble.New()
     ptr = sourceMesh.getNumberOfCells() * [None]
     for i in xrange(sourceMesh.getNumberOfCells()):
         ptr[i] = float(i + 7)
         pass
     array.setValues(ptr, sourceMesh.getNumberOfCells(), 1)
     srcField.setArray(array)
     trgfield = remapper.transferField(srcField, 4.220173)
     values = trgfield.getArray().getValues()
     valuesExpected = [7.75, 7.0625, 4.220173, 8.0]
     self.assertEqual(4, trgfield.getArray().getNumberOfTuples())
     self.assertEqual(1, trgfield.getArray().getNumberOfComponents())
     for i0 in xrange(4):
         self.assertAlmostEqual(valuesExpected[i0], values[i0], 12)
         pass
     pass
예제 #3
0
 def testRemapper1(self):
     sourceMesh = self.build2DSourceMesh_1()
     targetMesh = self.build2DTargetMesh_1()
     remapper = MEDCouplingRemapper()
     remapper.setPrecision(1e-12)
     remapper.setIntersectionType(Triangulation)
     self.failUnless(remapper.prepare(sourceMesh, targetMesh, "P0P0") == 1)
     srcField = MEDCouplingFieldDouble.New(ON_CELLS)
     srcField.setNature(ConservativeVolumic)
     srcField.setMesh(sourceMesh)
     array = DataArrayDouble.New()
     ptr = sourceMesh.getNumberOfCells() * [None]
     for i in xrange(sourceMesh.getNumberOfCells()):
         ptr[i] = float(i + 7)
         pass
     array.setValues(ptr, sourceMesh.getNumberOfCells(), 1)
     srcField.setArray(array)
     trgfield = remapper.transferField(srcField, 4.57)
     values = trgfield.getArray().getValues()
     valuesExpected = [7.5, 7., 7., 8., 7.5]
     for i in xrange(targetMesh.getNumberOfCells()):
         self.failUnless(abs(values[i] - valuesExpected[i]) < 1e-12)
         pass
     self.failUnless(1 == trgfield.getArray().getNumberOfComponents())
     pass
 def testRemapper1(self):
     sourceMesh = self.build2DSourceMesh_1()
     targetMesh = self.build2DTargetMesh_1()
     remapper = MEDCouplingRemapper()
     remapper.setPrecision(1e-12)
     remapper.setIntersectionType(Triangulation)
     self.failUnless(remapper.prepare(sourceMesh, targetMesh, "P0P0") == 1)
     srcField = MEDCouplingFieldDouble.New(ON_CELLS)
     srcField.setNature(ConservativeVolumic)
     srcField.setMesh(sourceMesh)
     array = DataArrayDouble.New()
     ptr = sourceMesh.getNumberOfCells() * [None]
     for i in xrange(sourceMesh.getNumberOfCells()):
         ptr[i] = float(i + 7)
         pass
     array.setValues(ptr, sourceMesh.getNumberOfCells(), 1)
     srcField.setArray(array)
     trgfield = remapper.transferField(srcField, 4.57)
     values = trgfield.getArray().getValues()
     valuesExpected = [7.5, 7.0, 7.0, 8.0, 7.5]
     for i in xrange(targetMesh.getNumberOfCells()):
         self.failUnless(abs(values[i] - valuesExpected[i]) < 1e-12)
         pass
     self.failUnless(1 == trgfield.getArray().getNumberOfComponents())
     pass