예제 #1
0
 def testPartialTransfer1(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 = MEDCouplingFieldDouble.New(ON_CELLS)
     trgfield.setNature(ConservativeVolumic)
     trgfield.setMesh(targetMesh)
     array = DataArrayDouble.New()
     ptr = targetMesh.getNumberOfCells() * [None]
     for i in xrange(targetMesh.getNumberOfCells()):
         ptr[i] = 4.220173
         pass
     array.setValues(ptr, targetMesh.getNumberOfCells(), 1)
     trgfield.setArray(array)
     remapper.partialTransfer(srcField, trgfield)
     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 testPartialTransfer1(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 = MEDCouplingFieldDouble.New(ON_CELLS)
     trgfield.setNature(ConservativeVolumic)
     trgfield.setMesh(targetMesh)
     array = DataArrayDouble.New()
     ptr = targetMesh.getNumberOfCells() * [None]
     for i in xrange(targetMesh.getNumberOfCells()):
         ptr[i] = 4.220173
         pass
     array.setValues(ptr, targetMesh.getNumberOfCells(), 1)
     trgfield.setArray(array)
     remapper.partialTransfer(srcField, trgfield)
     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