]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Bug correction 2 on globals in MEDFileFields.
authorageay <ageay>
Wed, 24 Aug 2011 08:43:41 +0000 (08:43 +0000)
committerageay <ageay>
Wed, 24 Aug 2011 08:43:41 +0000 (08:43 +0000)
src/MEDLoader/MEDFileField.cxx
src/MEDLoader/Swig/MEDLoaderTest3.py

index c3cdfb3ff53c44d94a7859bcaabed1e3dfd3191e..e0f5c38bff777180545bd47b68032b623647a7cb 100644 (file)
@@ -2701,6 +2701,7 @@ void MEDFileFields::pushField(MEDFileFieldMultiTS *field) throw(INTERP_KERNEL::E
     throw INTERP_KERNEL::Exception("MEDFileFields::pushMesh : invalid input pointer ! should be different from 0 !");
   field->incrRef();
   _fields.push_back(field);
+  appendGlobs(*field,1e-12);
 }
 
 void MEDFileFields::setFieldAtPos(int i, MEDFileFieldMultiTS *field) throw(INTERP_KERNEL::Exception)
index e69815b4dd9336b0241b20b87b81d32876752b30..2e95f0cca9d238a542f8ee4e5c1efbe19716e5ec 100644 (file)
@@ -819,6 +819,32 @@ class MEDLoaderTest(unittest.TestCase):
         f4=ff3.getFieldAtTopLevel(ON_CELLS,1,2)
         self.assertTrue(f4.getArray().isEqual(f1.getArray(),1e-12))
         pass
+
+    # Non regression test to check that globals are correctly appended on MEDFileFields::setFieldAtPos
+    def testMEDField18(self):
+        fname="Pyfile40.med"
+        m1=MEDLoaderDataForTest.build2DMesh_1()
+        m1.renumberCells([0,1,4,2,3,5],False)
+        mm1=MEDFileUMesh.New() ; mm1.setCoords(m1.getCoords()) ; mm1.setMeshAtLevel(0,m1) ; mm1.setName(m1.getName())
+        mm1.write(fname,2)
+        ffs=MEDFileFields.New()
+        ff1=MEDFileFieldMultiTS.New()
+        f1=MEDCouplingFieldDouble.New(ON_CELLS,ONE_TIME) ; f1.setName("F2")
+        d=DataArrayDouble.New() ; d.alloc(2*4,1) ; d.iota(7.); d.rearrange(2); d.setInfoOnComponent(0,"sigX [MPa]") ; d.setInfoOnComponent(1,"sigY [GPa]")
+        f1.setArray(d) # note that f1 is NOT defined fully (no mesh !). It is not a bug of test it is too test that MEDFileField1TS.appendFieldProfile is NOT sensible of that.
+        da=DataArrayInt.New(); da.setValues([0,1,2,4],4,1) ; da.setName("sup2")
+        #
+        ff1.appendFieldProfile(f1,mm1,0,da)
+        f1.setTime(1.2,1,2) ; e=d.applyFunc("2*x") ; e.copyStringInfoFrom(d) ; f1.setArray(e) ;
+        ff1.appendFieldProfile(f1,mm1,0,da)
+        ffs.pushField(ff1)
+        ffs.write(fname,0)
+        #
+        ffsr=MEDFileFields.New(fname)
+        ff3=ffsr.getFieldAtPos(0)
+        f4=ff3.getFieldAtTopLevel(ON_CELLS,1,2)
+        self.assertTrue(f4.getArray().isEqual(f1.getArray(),1e-12))
+        pass
     pass
         
 unittest.main()