Salome HOME
Copyright update 2022
[tools/medcoupling.git] / src / ParaMEDMEMTest / ParaMEDMEMTest_InterpKernelDEC.cxx
index 9ca93d3d69541f0d7b56f59ea608583b3e7ff280..740557ba7e93a43df6f5443e31a733d695d527b5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 #include "ParaMESH.hxx"
 #include "ParaFIELD.hxx"
 #include "ComponentTopology.hxx"
-#include "ICoCoMEDField.hxx"
 #include "ParaMEDLoader.hxx"
+#include "ICoCoMEDDoubleField.hxx"
 #include "MEDLoader.hxx"
+#include "MEDCouplingUMesh.hxx"
+#include "TestInterpKernelUtils.hxx"
 
  
 #include <string>
@@ -46,7 +48,7 @@
 
 
 using namespace std;
-using namespace ParaMEDMEM;
+using namespace MEDCoupling;
 
 void ParaMEDMEMTest::testInterpKernelDEC_2D()
 {
@@ -88,15 +90,15 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
     procs_target.insert(i);
   self_procs.insert(rank);
   //
-  ParaMEDMEM::MEDCouplingUMesh *mesh=0;
-  ParaMEDMEM::ParaMESH *paramesh=0;
-  ParaMEDMEM::ParaFIELD *parafieldP0=0;
+  MEDCoupling::MEDCouplingUMesh *mesh=0;
+  MEDCoupling::ParaMESH *paramesh=0;
+  MEDCoupling::ParaFIELD *parafieldP0=0;
   //
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
   //
-  ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   //
   MPI_Barrier(MPI_COMM_WORLD);
   if(source_group->containsMyRank())
@@ -104,7 +106,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
       if(rank==0)
         {
           double coords[4]={0.3,0.7, 0.9,1.0};
-          int conn[4]={0,1,2,3};
+          mcIdType conn[4]={0,1,2,3};
           mesh=MEDCouplingUMesh::New("Source mesh Proc0",1);
           mesh->allocateCells(2);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -119,7 +121,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
       if(rank==1)
         {
           double coords[2]={0.7,0.9};
-          int conn[2]={0,1};
+          mcIdType conn[2]={0,1};
           mesh=MEDCouplingUMesh::New("Source mesh Proc1",1);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -133,7 +135,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
       if(rank==2)
         {
           double coords[2]={1.,1.12};
-          int conn[2]={0,1};
+          mcIdType conn[2]={0,1};
           mesh=MEDCouplingUMesh::New("Source mesh Proc2",1);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -145,10 +147,10 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
           myCoords->decrRef();
         }
       paramesh=new ParaMESH(mesh,*source_group,"source mesh");
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
       double *valueP0=parafieldP0->getField()->getArray()->getPointer();
-      parafieldP0->getField()->setNature(ConservativeVolumic);
+      parafieldP0->getField()->setNature(IntensiveMaximum);
       if(rank==0)
         {
           valueP0[0]=7.; valueP0[1]=8.;
@@ -168,7 +170,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
       if(rank==3)
         {
           double coords[2]={0.5,0.75};
-          int conn[2]={0,1};
+          mcIdType conn[2]={0,1};
           mesh=MEDCouplingUMesh::New("Target mesh Proc3",1);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -183,7 +185,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
       if(rank==4)
         {
           double coords[2]={0.75,1.2};
-          int conn[2]={0,1};
+          mcIdType conn[2]={0,1};
           mesh=MEDCouplingUMesh::New("Target mesh Proc4",1);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -195,12 +197,12 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
         }
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-      parafieldP0->getField()->setNature(ConservativeVolumic);
+      parafieldP0->getField()->setNature(IntensiveMaximum);
     }
   // test 1
-  ParaMEDMEM::InterpKernelDEC dec(*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec(*source_group,*target_group);
   if (source_group->containsMyRank())
     { 
       dec.setMethod("P0");
@@ -234,14 +236,14 @@ void ParaMEDMEMTest::testInterpKernelDEC_1D()
       const double *res=parafieldP0->getField()->getArray()->getConstPointer();
       if(rank==3)
         {
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP0->getField()->getNumberOfTuples());
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP0->getField()->getNumberOfComponents());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP0->getField()->getNumberOfTuples());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP0->getField()->getNumberOfComponents());
           CPPUNIT_ASSERT_DOUBLES_EQUAL(7.4,res[0],1e-12);
         }
       if(rank==4)
         {
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP0->getField()->getNumberOfTuples());
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP0->getField()->getNumberOfComponents());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP0->getField()->getNumberOfTuples());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP0->getField()->getNumberOfComponents());
           CPPUNIT_ASSERT_DOUBLES_EQUAL(9.0540540540540526,res[0],1e-12);
         }
       dec.sendData();
@@ -277,15 +279,15 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
     procs_target.insert(i);
   self_procs.insert(rank);
   //
-  ParaMEDMEM::MEDCouplingUMesh *mesh=0;
-  ParaMEDMEM::ParaMESH *paramesh=0;
-  ParaMEDMEM::ParaFIELD *parafieldP0=0;
+  MEDCoupling::MEDCouplingUMesh *mesh=0;
+  MEDCoupling::ParaMESH *paramesh=0;
+  MEDCoupling::ParaFIELD *parafieldP0=0;
   //
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
   //
-  ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   //
   MPI_Barrier(MPI_COMM_WORLD);
   if(source_group->containsMyRank())
@@ -293,7 +295,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
       if(rank==0)
         {
           double coords[8]={0.3,0.3,0.7,0.7, 0.9,0.9,1.0,1.0};
-          int conn[4]={0,1,2,3};
+          mcIdType conn[4]={0,1,2,3};
           mesh=MEDCouplingUMesh::New("Source mesh Proc0",1);
           mesh->allocateCells(2);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -308,7 +310,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
       if(rank==1)
         {
           double coords[4]={0.7,0.7,0.9,0.9};
-          int conn[2]={0,1};
+          mcIdType conn[2]={0,1};
           mesh=MEDCouplingUMesh::New("Source mesh Proc1",1);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -322,7 +324,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
       if(rank==2)
         {
           double coords[4]={1.,1.,1.12,1.12};
-          int conn[2]={0,1};
+          mcIdType conn[2]={0,1};
           mesh=MEDCouplingUMesh::New("Source mesh Proc2",1);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -334,10 +336,10 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
           myCoords->decrRef();
         }
       paramesh=new ParaMESH(mesh,*source_group,"source mesh");
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
       double *valueP0=parafieldP0->getField()->getArray()->getPointer();
-      parafieldP0->getField()->setNature(ConservativeVolumic);
+      parafieldP0->getField()->setNature(IntensiveMaximum);
       if(rank==0)
         {
           valueP0[0]=7.; valueP0[1]=8.;
@@ -357,7 +359,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
       if(rank==3)
         {
           double coords[4]={0.5,0.5,0.75,0.75};
-          int conn[2]={0,1};
+          mcIdType conn[2]={0,1};
           mesh=MEDCouplingUMesh::New("Target mesh Proc3",1);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -372,7 +374,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
       if(rank==4)
         {
           double coords[4]={0.75,0.75,1.2,1.2};
-          int conn[2]={0,1};
+          mcIdType conn[2]={0,1};
           mesh=MEDCouplingUMesh::New("Target mesh Proc4",1);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn);
@@ -384,12 +386,12 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
         }
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-      parafieldP0->getField()->setNature(ConservativeVolumic);
+      parafieldP0->getField()->setNature(IntensiveMaximum);
     }
   // test 1
-  ParaMEDMEM::InterpKernelDEC dec(*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec(*source_group,*target_group);
   if (source_group->containsMyRank())
     { 
       dec.setMethod("P0");
@@ -423,14 +425,14 @@ void ParaMEDMEMTest::testInterpKernelDEC_2DCurve()
       const double *res=parafieldP0->getField()->getArray()->getConstPointer();
       if(rank==3)
         {
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP0->getField()->getNumberOfTuples());
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP0->getField()->getNumberOfComponents());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP0->getField()->getNumberOfTuples());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP0->getField()->getNumberOfComponents());
           CPPUNIT_ASSERT_DOUBLES_EQUAL(7.4,res[0],1e-12);
         }
       if(rank==4)
         {
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP0->getField()->getNumberOfTuples());
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP0->getField()->getNumberOfComponents());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP0->getField()->getNumberOfTuples());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP0->getField()->getNumberOfComponents());
           CPPUNIT_ASSERT_DOUBLES_EQUAL(9.0540540540540526,res[0],1e-12);
         }
       dec.sendData();
@@ -481,23 +483,23 @@ void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *ta
     procs_target.insert(i);
   self_procs.insert(rank);
   
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
     
-  ParaMEDMEM::ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ParaMEDMEM::ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ParaMEDMEM::ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  MEDCoupling::ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  MEDCoupling::ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  MEDCoupling::ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   
   //loading the geometry for the source group
 
-  ParaMEDMEM::InterpKernelDEC dec (*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec (*source_group,*target_group);
 
-  ParaMEDMEM::MEDCouplingUMesh* mesh;
-  ParaMEDMEM::ParaMESH* paramesh;
-  ParaMEDMEM::ParaFIELD* parafield;
-  ICoCo::MEDField* icocofield ;
+  MEDCoupling::MEDCouplingUMesh* mesh = nullptr;
+  MEDCoupling::ParaMESH* paramesh = nullptr;
+  MEDCoupling::ParaFIELD* parafield = nullptr;
+  ICoCo::MEDDoubleField* icocofield = nullptr;
   
-  string filename_xml1              = getResourceFile("square1_split");
-  string filename_xml2              = getResourceFile("square2_split");
+  string filename_xml1              = "square1_split";
+  string filename_xml2              = "square2_split";
   //string filename_seq_wr            = makeTmpFile("");
   //string filename_seq_med           = makeTmpFile("myWrField_seq_pointe221.med");
   
@@ -511,20 +513,21 @@ void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *ta
       
       ostringstream strstream;
       strstream <<master<<rank+1<<".med";
+      string fName = INTERP_TEST::getResourceFile(strstream.str());
       ostringstream meshname ;
       meshname<< "Mesh_2_"<< rank+1;
       
-      mesh=MEDLoader::ReadUMeshFromFile(strstream.str().c_str(),meshname.str().c_str(),0);
+      mesh=ReadUMeshFromFile(fName.c_str(),meshname.str().c_str(),0);
       
     
       paramesh=new ParaMESH (mesh,*source_group,"source mesh");
     
-      //      ParaMEDMEM::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT( support,*source_group);
-      ParaMEDMEM::ComponentTopology comptopo;
+      //      MEDCoupling::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT( support,*source_group);
+      MEDCoupling::ComponentTopology comptopo;
       if(srcM=="P0")
         {
           parafield = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-          parafield->getField()->setNature(ConservativeVolumic);
+          parafield->getField()->setNature(IntensiveMaximum);
         }
       else
         parafield = new ParaFIELD(ON_NODES,NO_TIME,paramesh, comptopo);
@@ -539,7 +542,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *ta
         value[ielem]=1.0;
     
       //      ICoCo::Field* icocofield=new ICoCo::MEDField(paramesh,parafield);
-      icocofield=new ICoCo::MEDField(parafield->getField());
+      icocofield=new ICoCo::MEDDoubleField(parafield->getField());
       dec.setMethod(srcMeth);
       dec.attachLocalField(icocofield);
     }
@@ -550,17 +553,18 @@ void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *ta
       string master= filename_xml2;
       ostringstream strstream;
       strstream << master<<(rank-nproc_source+1)<<".med";
+      string fName = INTERP_TEST::getResourceFile(strstream.str());
       ostringstream meshname ;
       meshname<< "Mesh_3_"<<rank-nproc_source+1;
-      mesh = MEDLoader::ReadUMeshFromFile(strstream.str().c_str(),meshname.str().c_str(),0);
+      mesh = ReadUMeshFromFile(fName.c_str(),meshname.str().c_str(),0);
       
       paramesh=new ParaMESH (mesh,*target_group,"target mesh");
-      //      ParaMEDMEM::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT(support,*target_group);
-      ParaMEDMEM::ComponentTopology comptopo;
+      //      MEDCoupling::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT(support,*target_group);
+      MEDCoupling::ComponentTopology comptopo;
       if(targetM=="P0")
         {
           parafield = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-          parafield->getField()->setNature(ConservativeVolumic);
+          parafield->getField()->setNature(IntensiveMaximum);
         }
       else
         parafield = new ParaFIELD(ON_NODES,NO_TIME,paramesh, comptopo);
@@ -574,7 +578,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *ta
       for(int ielem=0; ielem<nb_local;ielem++)
         value[ielem]=0.0;
       //      ICoCo::Field* icocofield=new ICoCo::MEDField(paramesh,parafield);
-      icocofield=new ICoCo::MEDField(parafield->getField());
+      icocofield=new ICoCo::MEDDoubleField(parafield->getField());
       dec.setMethod(targetMeth);
       dec.attachLocalField(icocofield);
     }
@@ -598,14 +602,14 @@ void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *ta
       ostringstream filename;
       filename<<"./sourcesquareb_"<<source_group->myRank()+1;
       aRemover.Register(filename.str().c_str());
-      //MEDLoader::WriteField("./sourcesquareb",parafield->getField());
+      //WriteField("./sourcesquareb",parafield->getField());
    
       dec.recvData();
       cout <<"writing"<<endl;
       ParaMEDLoader::WriteParaMesh("./sourcesquare",paramesh);
       if (source_group->myRank()==0)
         aRemover.Register("./sourcesquare");
-      //MEDLoader::WriteField("./sourcesquare",parafield->getField());
+      //WriteField("./sourcesquare",parafield->getField());
       
      
       filename<<"./sourcesquare_"<<source_group->myRank()+1;
@@ -628,7 +632,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *ta
 
       dec.recvData();
       ParaMEDLoader::WriteParaMesh("./targetsquareb",paramesh);
-      //MEDLoader::WriteField("./targetsquareb",parafield->getField());
+      //WriteField("./targetsquareb",parafield->getField());
       if (target_group->myRank()==0)
         aRemover.Register("./targetsquareb");
       ostringstream filename;
@@ -636,7 +640,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *ta
       aRemover.Register(filename.str().c_str());
       dec.sendData();
       ParaMEDLoader::WriteParaMesh("./targetsquare",paramesh);
-      //MEDLoader::WriteField("./targetsquare",parafield->getField());
+      //WriteField("./targetsquare",parafield->getField());
       
       if (target_group->myRank()==0)
         aRemover.Register("./targetsquareb");
@@ -687,21 +691,21 @@ void ParaMEDMEMTest::testInterpKernelDEC2_2D_(const char *srcMeth, const char *t
     procs_target.insert(i);
   self_procs.insert(rank);
   
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
     
-  ParaMEDMEM::ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ParaMEDMEM::ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ParaMEDMEM::ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  MEDCoupling::ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  MEDCoupling::ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  MEDCoupling::ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   
   //loading the geometry for the source group
 
-  ParaMEDMEM::InterpKernelDEC dec (*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec (*source_group,*target_group);
 
-  ParaMEDMEM::MEDCouplingUMesh* mesh;
-  ParaMEDMEM::MEDCouplingFieldDouble* mcfield;
+  MEDCoupling::MEDCouplingUMesh* mesh = nullptr;
+  MEDCoupling::MEDCouplingFieldDouble* mcfield = nullptr;
   
-  string filename_xml1              = getResourceFile("square1_split");
-  string filename_xml2              = getResourceFile("square2_split");
+  string filename_xml1              = "square1_split";
+  string filename_xml2              = "square2_split";
   
   // To remove tmp files from disk
   ParaMEDMEMTest_TmpFilesRemover aRemover;
@@ -713,11 +717,12 @@ void ParaMEDMEMTest::testInterpKernelDEC2_2D_(const char *srcMeth, const char *t
       
       ostringstream strstream;
       strstream <<master<<rank+1<<".med";
+      string fName = INTERP_TEST::getResourceFile(strstream.str());
       ostringstream meshname ;
       meshname<< "Mesh_2_"<< rank+1;
       
-      mesh=MEDLoader::ReadUMeshFromFile(strstream.str().c_str(),meshname.str().c_str(),0);
-      ParaMEDMEM::ComponentTopology comptopo;
+      mesh=ReadUMeshFromFile(fName.c_str(),meshname.str().c_str(),0);
+      MEDCoupling::ComponentTopology comptopo;
       if(srcM=="P0")
         {
           mcfield = MEDCouplingFieldDouble::New(ON_CELLS,NO_TIME);
@@ -726,7 +731,7 @@ void ParaMEDMEMTest::testInterpKernelDEC2_2D_(const char *srcMeth, const char *t
           array->alloc(mcfield->getNumberOfTuples(),1);
           mcfield->setArray(array);
           array->decrRef();
-          mcfield->setNature(ConservativeVolumic);
+          mcfield->setNature(IntensiveMaximum);
         }
       else
         {
@@ -756,10 +761,11 @@ void ParaMEDMEMTest::testInterpKernelDEC2_2D_(const char *srcMeth, const char *t
       string master= filename_xml2;
       ostringstream strstream;
       strstream << master<<(rank-nproc_source+1)<<".med";
+      string fName = INTERP_TEST::getResourceFile(strstream.str());
       ostringstream meshname ;
       meshname<< "Mesh_3_"<<rank-nproc_source+1;
-      mesh = MEDLoader::ReadUMeshFromFile(strstream.str().c_str(),meshname.str().c_str(),0);
-      ParaMEDMEM::ComponentTopology comptopo;
+      mesh = ReadUMeshFromFile(fName.c_str(),meshname.str().c_str(),0);
+      MEDCoupling::ComponentTopology comptopo;
       if(targetM=="P0")
         {
           mcfield = MEDCouplingFieldDouble::New(ON_CELLS,NO_TIME);
@@ -768,7 +774,7 @@ void ParaMEDMEMTest::testInterpKernelDEC2_2D_(const char *srcMeth, const char *t
           array->alloc(mcfield->getNumberOfTuples(),1);
           mcfield->setArray(array);
           array->decrRef();
-          mcfield->setNature(ConservativeVolumic);
+          mcfield->setNature(IntensiveMaximum);
         }
       else
         {
@@ -844,20 +850,20 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
     procs_target.insert(i);
   self_procs.insert(rank);
   
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
     
-  ParaMEDMEM::ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ParaMEDMEM::ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ParaMEDMEM::ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  MEDCoupling::ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  MEDCoupling::ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  MEDCoupling::ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   
   //loading the geometry for the source group
 
-  ParaMEDMEM::InterpKernelDEC dec (*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec (*source_group,*target_group);
 
-  ParaMEDMEM::MEDCouplingUMesh* mesh;
-  ParaMEDMEM::ParaMESH* paramesh;
-  ParaMEDMEM::ParaFIELD* parafield;
-  ICoCo::MEDField* icocofield ;
+  MEDCoupling::MEDCouplingUMesh* mesh = nullptr;
+  MEDCoupling::ParaMESH* paramesh = nullptr;
+  MEDCoupling::ParaFIELD* parafield = nullptr;
+  ICoCo::MEDDoubleField* icocofield = nullptr;
   
   char * tmp_dir_c                    = getenv("TMP");
   string tmp_dir;
@@ -865,8 +871,8 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
     tmp_dir = string(tmp_dir_c);
   else
     tmp_dir = "/tmp";
-  string filename_xml1              = getResourceFile("Mesh3D_10_2d");
-  string filename_xml2              = getResourceFile("Mesh3D_11");
+  string filename_xml1              = "Mesh3D_10_2d";
+  string filename_xml2              = "Mesh3D_11";
   //string filename_seq_wr            = makeTmpFile("");
   //string filename_seq_med           = makeTmpFile("myWrField_seq_pointe221.med");
   
@@ -880,20 +886,21 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
       
       ostringstream strstream;
       strstream <<master<<rank+1<<".med";
+      std::string fName = INTERP_TEST::getResourceFile(strstream.str());
       ostringstream meshname ;
       meshname<< "Mesh_3_"<< rank+1;
       
-      mesh=MEDLoader::ReadUMeshFromFile(strstream.str().c_str(),meshname.str().c_str(),0);
+      mesh=ReadUMeshFromFile(fName.c_str(),meshname.str().c_str(),0);
       
     
       paramesh=new ParaMESH (mesh,*source_group,"source mesh");
     
-      //      ParaMEDMEM::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT( support,*source_group);
-      ParaMEDMEM::ComponentTopology comptopo;
+      //      MEDCoupling::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT( support,*source_group);
+      MEDCoupling::ComponentTopology comptopo;
       if(srcM=="P0")
         {
           parafield = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-          parafield->getField()->setNature(ConservativeVolumic);
+          parafield->getField()->setNature(IntensiveMaximum);
         }
       else
         parafield = new ParaFIELD(ON_NODES,NO_TIME,paramesh, comptopo);
@@ -908,7 +915,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
         value[ielem]=1.0;
     
       //      ICoCo::Field* icocofield=new ICoCo::MEDField(paramesh,parafield);
-      icocofield=new ICoCo::MEDField(parafield->getField());
+      icocofield=new ICoCo::MEDDoubleField(parafield->getField());
       dec.setMethod(srcMeth);
       dec.attachLocalField(icocofield);
     }
@@ -919,17 +926,18 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
       string master= filename_xml2;
       ostringstream strstream;
       strstream << master << ".med";
+      std::string fName = INTERP_TEST::getResourceFile(strstream.str());
       ostringstream meshname ;
       meshname<< "Mesh_6";
-      mesh = MEDLoader::ReadUMeshFromFile(strstream.str().c_str(),meshname.str().c_str(),0);
+      mesh = ReadUMeshFromFile(fName.c_str(),meshname.str().c_str(),0);
       
       paramesh=new ParaMESH (mesh,*target_group,"target mesh");
-      //      ParaMEDMEM::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT(support,*target_group);
-      ParaMEDMEM::ComponentTopology comptopo;
+      //      MEDCoupling::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT(support,*target_group);
+      MEDCoupling::ComponentTopology comptopo;
       if(targetM=="P0")
         {
           parafield = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-          parafield->getField()->setNature(ConservativeVolumic);
+          parafield->getField()->setNature(IntensiveMaximum);
         }
       else
         parafield = new ParaFIELD(ON_NODES,NO_TIME,paramesh, comptopo);
@@ -943,7 +951,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
       for(int ielem=0; ielem<nb_local;ielem++)
         value[ielem]=0.0;
       //      ICoCo::Field* icocofield=new ICoCo::MEDField(paramesh,parafield);
-      icocofield=new ICoCo::MEDField(parafield->getField());
+      icocofield=new ICoCo::MEDDoubleField(parafield->getField());
       dec.setMethod(targetMeth);
       dec.attachLocalField(icocofield);
     }  
@@ -965,14 +973,14 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
       ostringstream filename;
       filename<<"./sourcesquareb_"<<source_group->myRank()+1;
       aRemover.Register(filename.str().c_str());
-      //MEDLoader::WriteField("./sourcesquareb",parafield->getField());
+      //WriteField("./sourcesquareb",parafield->getField());
    
       dec.recvData();
       cout <<"writing"<<endl;
       ParaMEDLoader::WriteParaMesh("./sourcesquare",paramesh);
       if (source_group->myRank()==0)
         aRemover.Register("./sourcesquare");
-      //MEDLoader::WriteField("./sourcesquare",parafield->getField());
+      //WriteField("./sourcesquare",parafield->getField());
       
      
       filename<<"./sourcesquare_"<<source_group->myRank()+1;
@@ -991,7 +999,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
 
       dec.recvData();
       ParaMEDLoader::WriteParaMesh("./targetsquareb",paramesh);
-      //MEDLoader::WriteField("./targetsquareb",parafield->getField());
+      //WriteField("./targetsquareb",parafield->getField());
       if (target_group->myRank()==0)
         aRemover.Register("./targetsquareb");
       ostringstream filename;
@@ -999,7 +1007,7 @@ void ParaMEDMEMTest::testInterpKernelDEC_3D_(const char *srcMeth, const char *ta
       aRemover.Register(filename.str().c_str());
       dec.sendData();
       ParaMEDLoader::WriteParaMesh("./targetsquare",paramesh);
-      //MEDLoader::WriteField("./targetsquare",parafield->getField());
+      //WriteField("./targetsquare",parafield->getField());
       
       if (target_group->myRank()==0)
         aRemover.Register("./targetsquareb");
@@ -1084,7 +1092,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
   const double targetCoordsAll[3][16]={{0.7,1.45,0.7,1.65,0.9,1.65,0.9,1.45,  1.1,1.4,1.1,1.6,1.3,1.6,1.3,1.4},
                                        {0.7,-0.6,0.7,0.7,0.9,0.7,0.9,-0.6,  1.1,-0.7,1.1,0.6,1.3,0.6,1.3,-0.7},
                                        {0.7,-1.55,0.7,-1.35,0.9,-1.35,0.9,-1.55,  1.1,-1.65,1.1,-1.45,1.3,-1.45,1.3,-1.65}};
-  int conn4All[8]={0,1,2,3,4,5,6,7};
+  mcIdType conn4All[8]={0,1,2,3,4,5,6,7};
   double targetResults[3][2]={{34.,34.},{38.333333333333336,42.666666666666664},{47.,47.}};
   double targetResults2[3][2]={{0.28333333333333344,0.56666666666666687},{1.8564102564102569,2.0128205128205132},{1.0846153846153845,0.36153846153846159}};
   double targetResults3[3][2]={{3.7777777777777781,7.5555555555555562},{24.511111111111113,26.355555555555558},{14.1,4.7}};
@@ -1108,15 +1116,15 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
     procs_target.insert(i);
   self_procs.insert(rank);
   //
-  ParaMEDMEM::MEDCouplingUMesh *mesh=0;
-  ParaMEDMEM::ParaMESH *paramesh=0;
-  ParaMEDMEM::ParaFIELD* parafield=0;
+  MEDCoupling::MEDCouplingUMesh *mesh=0;
+  MEDCoupling::ParaMESH *paramesh=0;
+  MEDCoupling::ParaFIELD* parafield=0;
   //
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
   //
-  ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   //
   MPI_Barrier(MPI_COMM_WORLD);
   if(source_group->containsMyRank())
@@ -1133,7 +1141,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       mesh->setCoords(myCoords);
       myCoords->decrRef();
       paramesh=new ParaMESH(mesh,*source_group,"source mesh");
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafield = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
       double *value=parafield->getField()->getArray()->getPointer();
       value[0]=34+13*((double)rank);
@@ -1153,12 +1161,12 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       mesh->setCoords(myCoords);
       myCoords->decrRef();
       paramesh=new ParaMESH (mesh,*target_group,"target mesh");
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafield = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
     }
   //test 1 - Conservative volumic
-  ParaMEDMEM::InterpKernelDEC dec(*source_group,*target_group);
-  parafield->getField()->setNature(ConservativeVolumic);
+  MEDCoupling::InterpKernelDEC dec(*source_group,*target_group);
+  parafield->getField()->setNature(IntensiveMaximum);
   if (source_group->containsMyRank())
     { 
       dec.setMethod("P0");
@@ -1179,9 +1187,9 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[0],res[0],1e-13);
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[1],res[1],1e-13);
     }
-  //test 2 - Integral
-  ParaMEDMEM::InterpKernelDEC dec2(*source_group,*target_group);
-  parafield->getField()->setNature(Integral);
+  //test 2 - ExtensiveMaximum
+  MEDCoupling::InterpKernelDEC dec2(*source_group,*target_group);
+  parafield->getField()->setNature(ExtensiveMaximum);
   if (source_group->containsMyRank())
     { 
       dec2.setMethod("P0");
@@ -1202,9 +1210,9 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[0],res[0],1e-13);
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[1],res[1],1e-13);
     }
-  //test 3 - Integral with global constraint
-  ParaMEDMEM::InterpKernelDEC dec3(*source_group,*target_group);
-  parafield->getField()->setNature(IntegralGlobConstraint);
+  //test 3 - ExtensiveMaximum with global constraint
+  MEDCoupling::InterpKernelDEC dec3(*source_group,*target_group);
+  parafield->getField()->setNature(ExtensiveConservation);
   if (source_group->containsMyRank())
     { 
       dec3.setMethod("P0");
@@ -1225,9 +1233,9 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[0],res[0],1e-13);
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[1],res[1],1e-13);
     }
-  //test 4 - RevIntegral
-  ParaMEDMEM::InterpKernelDEC dec4(*source_group,*target_group);
-  parafield->getField()->setNature(RevIntegral);
+  //test 4 - IntensiveConservation
+  MEDCoupling::InterpKernelDEC dec4(*source_group,*target_group);
+  parafield->getField()->setNature(IntensiveConservation);
   if (source_group->containsMyRank())
     { 
       dec4.setMethod("P0");
@@ -1249,8 +1257,8 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[1],res[1],1e-13);
     }
   //test 5 - Conservative volumic reversed
-  ParaMEDMEM::InterpKernelDEC dec5(*source_group,*target_group);
-  parafield->getField()->setNature(ConservativeVolumic);
+  MEDCoupling::InterpKernelDEC dec5(*source_group,*target_group);
+  parafield->getField()->setNature(IntensiveMaximum);
   if (source_group->containsMyRank())
     { 
       dec5.setMethod("P0");
@@ -1259,7 +1267,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       dec5.setForcedRenormalization(false);
       dec5.recvData();
       const double *res=parafield->getField()->getArray()->getConstPointer();
-      CPPUNIT_ASSERT_EQUAL(1,parafield->getField()->getNumberOfTuples());
+      CPPUNIT_ASSERT_EQUAL(1,(int)parafield->getField()->getNumberOfTuples());
       const double expected[]={37.8518518518519,43.5333333333333};
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[rank],res[0],1e-13);
     }
@@ -1275,9 +1283,9 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       res[1]=toSet[1];
       dec5.sendData();
     }
-  //test 6 - Integral reversed
-  ParaMEDMEM::InterpKernelDEC dec6(*source_group,*target_group);
-  parafield->getField()->setNature(Integral);
+  //test 6 - ExtensiveMaximum reversed
+  MEDCoupling::InterpKernelDEC dec6(*source_group,*target_group);
+  parafield->getField()->setNature(ExtensiveMaximum);
   if (source_group->containsMyRank())
     { 
       dec6.setMethod("P0");
@@ -1286,7 +1294,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       dec6.setForcedRenormalization(false);
       dec6.recvData();
       const double *res=parafield->getField()->getArray()->getConstPointer();
-      CPPUNIT_ASSERT_EQUAL(1,parafield->getField()->getNumberOfTuples());
+      CPPUNIT_ASSERT_EQUAL(1,(int)parafield->getField()->getNumberOfTuples());
       const double expected[]={0.794600591715977,1.35631163708087};
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[rank],res[0],1e-13);
     }
@@ -1302,9 +1310,9 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       res[1]=toSet[1];
       dec6.sendData();
     }
-  //test 7 - Integral with global constraint reversed
-  ParaMEDMEM::InterpKernelDEC dec7(*source_group,*target_group);
-  parafield->getField()->setNature(IntegralGlobConstraint);
+  //test 7 - ExtensiveMaximum with global constraint reversed
+  MEDCoupling::InterpKernelDEC dec7(*source_group,*target_group);
+  parafield->getField()->setNature(ExtensiveConservation);
   if (source_group->containsMyRank())
     { 
       dec7.setMethod("P0");
@@ -1313,7 +1321,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       dec7.setForcedRenormalization(false);
       dec7.recvData();
       const double *res=parafield->getField()->getArray()->getConstPointer();
-      CPPUNIT_ASSERT_EQUAL(1,parafield->getField()->getNumberOfTuples());
+      CPPUNIT_ASSERT_EQUAL(1,(int)parafield->getField()->getNumberOfTuples());
       const double expected[]={36.4592592592593,44.5407407407407};
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[rank],res[0],1e-13);
     }
@@ -1329,9 +1337,9 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       res[1]=toSet[1];
       dec7.sendData();
     }
-  //test 8 - Integral with RevIntegral reversed
-  ParaMEDMEM::InterpKernelDEC dec8(*source_group,*target_group);
-  parafield->getField()->setNature(RevIntegral);
+  //test 8 - ExtensiveMaximum with IntensiveConservation reversed
+  MEDCoupling::InterpKernelDEC dec8(*source_group,*target_group);
+  parafield->getField()->setNature(IntensiveConservation);
   if (source_group->containsMyRank())
     { 
       dec8.setMethod("P0");
@@ -1340,7 +1348,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P0()
       dec8.setForcedRenormalization(false);
       dec8.recvData();
       const double *res=parafield->getField()->getArray()->getConstPointer();
-      CPPUNIT_ASSERT_EQUAL(1,parafield->getField()->getNumberOfTuples());
+      CPPUNIT_ASSERT_EQUAL(1,(int)parafield->getField()->getNumberOfTuples());
       const double expected[]={0.81314102564102553,1.3428994082840233};
       CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[rank],res[0],1e-13);
     }
@@ -1387,15 +1395,15 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
     procs_target.insert(i);
   self_procs.insert(rank);
   //
-  ParaMEDMEM::MEDCouplingUMesh *mesh=0;
-  ParaMEDMEM::ParaMESH *paramesh=0;
-  ParaMEDMEM::ParaFIELD *parafieldP0=0,*parafieldP1=0;
+  MEDCoupling::MEDCouplingUMesh *mesh=0;
+  MEDCoupling::ParaMESH *paramesh=0;
+  MEDCoupling::ParaFIELD *parafieldP0=0,*parafieldP1=0;
   //
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
   //
-  ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   //
   MPI_Barrier(MPI_COMM_WORLD);
   if(source_group->containsMyRank())
@@ -1403,7 +1411,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
       if(rank==0)
         {
           double coords[6]={-0.3,-0.3, 0.7,0.7, 0.7,-0.3};
-          int conn[3]={0,1,2};
+          mcIdType conn[3]={0,1,2};
           //int globalNode[3]={1,2,0};
           mesh=MEDCouplingUMesh::New("Source mesh Proc0",2);
           mesh->allocateCells(1);
@@ -1418,7 +1426,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
       if(rank==1)
         {
           double coords[6]={-0.3,-0.3, -0.3,0.7, 0.7,0.7};
-          int conn[3]={0,1,2};
+          mcIdType conn[3]={0,1,2};
           //int globalNode[3]={1,3,2};
           mesh=MEDCouplingUMesh::New("Source mesh Proc1",2);
           mesh->allocateCells(1);
@@ -1431,13 +1439,13 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
           myCoords->decrRef();
         }
       paramesh=new ParaMESH(mesh,*source_group,"source mesh");
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
       parafieldP1 = new ParaFIELD(ON_NODES,NO_TIME,paramesh, comptopo);
       double *valueP0=parafieldP0->getField()->getArray()->getPointer();
       double *valueP1=parafieldP1->getField()->getArray()->getPointer();
-      parafieldP0->getField()->setNature(ConservativeVolumic);
-      parafieldP1->getField()->setNature(ConservativeVolumic);
+      parafieldP0->getField()->setNature(IntensiveMaximum);
+      parafieldP1->getField()->setNature(IntensiveMaximum);
       if(rank==0)
         {
           valueP0[0]=31.;
@@ -1455,7 +1463,7 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
       if(rank==2)
         {
           double coords[10]={-0.3,-0.3, 0.2,-0.3, 0.7,-0.3, -0.3,0.2, 0.2,0.2 };
-          int conn[7]={0,3,4,1, 1,4,2};
+          mcIdType conn[7]={0,3,4,1, 1,4,2};
           //int globalNode[5]={4,3,0,2,1};
           mesh=MEDCouplingUMesh::New("Target mesh Proc2",2);
           mesh->allocateCells(2);
@@ -1468,16 +1476,15 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
           mesh->setCoords(myCoords);
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
-          DataArrayInt *da=DataArrayInt::New();
-          const int globalNumberingP2[5]={0,1,2,3,4};
-          da->useArray(globalNumberingP2,false,CPP_DEALLOC,5,1);
+          std::vector<mcIdType> globalNumberingP2 = {0,1,2,3,4};
+          MCAuto<DataArrayIdType> da=DataArrayIdType::New(); da->alloc(5,1);
+          std::copy(globalNumberingP2.begin(), globalNumberingP2.end(), da->rwBegin());
           paramesh->setNodeGlobal(da);
-          da->decrRef();
         }
       if(rank==3)
         {
           double coords[6]={0.2,0.2, 0.7,-0.3, 0.7,0.2};
-          int conn[3]={0,2,1};
+          mcIdType conn[3]={0,2,1};
           //int globalNode[3]={1,0,5};
           mesh=MEDCouplingUMesh::New("Target mesh Proc3",2);
           mesh->allocateCells(1);
@@ -1489,16 +1496,15 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
           mesh->setCoords(myCoords);
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
-          DataArrayInt *da=DataArrayInt::New();
-          const int globalNumberingP3[3]={4,2,5};
-          da->useArray(globalNumberingP3,false,CPP_DEALLOC,3,1);
+          std::vector<mcIdType> globalNumberingP3 = {4,2,5};
+          MCAuto<DataArrayIdType> da=DataArrayIdType::New(); da->alloc(3,1);
+          std::copy(globalNumberingP3.begin(), globalNumberingP3.end(), da->rwBegin());
           paramesh->setNodeGlobal(da);
-          da->decrRef();
         }
       if(rank==4)
         {
           double coords[12]={-0.3,0.2, -0.3,0.7, 0.2,0.7, 0.2,0.2, 0.7,0.7, 0.7,0.2};
-          int conn[8]={0,1,2,3, 3,2,4,5};
+          mcIdType conn[8]={0,1,2,3, 3,2,4,5};
           //int globalNode[6]={2,6,7,1,8,5};
           mesh=MEDCouplingUMesh::New("Target mesh Proc4",2);
           mesh->allocateCells(2);
@@ -1511,20 +1517,19 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
           mesh->setCoords(myCoords);
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
-          DataArrayInt *da=DataArrayInt::New();
-          const int globalNumberingP4[6]={3,6,7,4,8,5};
-          da->useArray(globalNumberingP4,false,CPP_DEALLOC,6,1);
+          std::vector<mcIdType> globalNumberingP4 = {3,6,7,4,8,5};
+          MCAuto<DataArrayIdType> da=DataArrayIdType::New(); da->alloc(6,1);
+          std::copy(globalNumberingP4.begin(), globalNumberingP4.end(), da->rwBegin());
           paramesh->setNodeGlobal(da);
-          da->decrRef();
         }
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
       parafieldP1 = new ParaFIELD(ON_NODES,NO_TIME,paramesh, comptopo);
-      parafieldP0->getField()->setNature(ConservativeVolumic);
-      parafieldP1->getField()->setNature(ConservativeVolumic);
+      parafieldP0->getField()->setNature(IntensiveMaximum);
+      parafieldP1->getField()->setNature(IntensiveMaximum);
     }
   // test 1 - P0 P1
-  ParaMEDMEM::InterpKernelDEC dec(*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec(*source_group,*target_group);
   if (source_group->containsMyRank())
     { 
       dec.setMethod("P0");
@@ -1554,24 +1559,24 @@ void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0()
       if(rank==2)
         {
           const double expectP2[5]={39.0, 31.0, 31.0, 47.0, 39.0};
-          CPPUNIT_ASSERT_EQUAL(5,parafieldP1->getField()->getNumberOfTuples());
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP1->getField()->getNumberOfComponents());
+          CPPUNIT_ASSERT_EQUAL(5,(int)parafieldP1->getField()->getNumberOfTuples());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP1->getField()->getNumberOfComponents());
           for(int kk=0;kk<5;kk++)
             CPPUNIT_ASSERT_DOUBLES_EQUAL(expectP2[kk],res[kk],1e-12);
         }
       if(rank==3)
         {
           const double expectP3[3]={39.0, 31.0, 31.0};
-          CPPUNIT_ASSERT_EQUAL(3,parafieldP1->getField()->getNumberOfTuples());
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP1->getField()->getNumberOfComponents());
+          CPPUNIT_ASSERT_EQUAL(3,(int)parafieldP1->getField()->getNumberOfTuples());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP1->getField()->getNumberOfComponents());
           for(int kk=0;kk<3;kk++)
             CPPUNIT_ASSERT_DOUBLES_EQUAL(expectP3[kk],res[kk],1e-12);
         }
       if(rank==4)
         {
           const double expectP4[6]={47.0, 47.0, 47.0, 39.0, 39.0, 31.0};
-          CPPUNIT_ASSERT_EQUAL(6,parafieldP1->getField()->getNumberOfTuples());
-          CPPUNIT_ASSERT_EQUAL(1,parafieldP1->getField()->getNumberOfComponents());
+          CPPUNIT_ASSERT_EQUAL(6,(int)parafieldP1->getField()->getNumberOfTuples());
+          CPPUNIT_ASSERT_EQUAL(1,(int)parafieldP1->getField()->getNumberOfComponents());
           for(int kk=0;kk<6;kk++)
             CPPUNIT_ASSERT_DOUBLES_EQUAL(expectP4[kk],res[kk],1e-12);
         }
@@ -1607,14 +1612,14 @@ void ParaMEDMEMTest::testInterpKernelDEC2DM1D_P0P0()
   for (int i=nproc_source;i<size; i++)
     procs_target.insert(i);
   //
-  ParaMEDMEM::MEDCouplingUMesh *mesh=0;
-  ParaMEDMEM::ParaMESH *paramesh=0;
-  ParaMEDMEM::ParaFIELD *parafield=0;
+  MEDCoupling::MEDCouplingUMesh *mesh=0;
+  MEDCoupling::ParaMESH *paramesh=0;
+  MEDCoupling::ParaFIELD *parafield=0;
   //
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
   //
-  ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   //
   MPI_Barrier(MPI_COMM_WORLD);
   if(source_group->containsMyRank())
@@ -1629,7 +1634,7 @@ void ParaMEDMEMTest::testInterpKernelDEC2DM1D_P0P0()
       myCoords->decrRef();
       if(rank==0)
         {
-          int targetConn[7]={0,3,4,1, 1,4,2};
+          mcIdType targetConn[7]={0,3,4,1, 1,4,2};
           mesh->allocateCells(2);
           mesh->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,targetConn);
           mesh->insertNextCell(INTERP_KERNEL::NORM_TRI3,3,targetConn+4);
@@ -1637,17 +1642,17 @@ void ParaMEDMEMTest::testInterpKernelDEC2DM1D_P0P0()
         }
       else
         { 
-          int targetConn[11]={4,5,2, 6,7,4,3, 7,8,5,4};
+          mcIdType targetConn[11]={4,5,2, 6,7,4,3, 7,8,5,4};
           mesh->allocateCells(3);
           mesh->insertNextCell(INTERP_KERNEL::NORM_TRI3,3,targetConn);
           mesh->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,targetConn+3);
           mesh->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,targetConn+7);
           mesh->finishInsertingCells();
         }
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       paramesh=new ParaMESH(mesh,*source_group,"source mesh");
       parafield=new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-      parafield->getField()->setNature(ConservativeVolumic);
+      parafield->getField()->setNature(IntensiveMaximum);
       double *vals=parafield->getField()->getArray()->getPointer();
       if(rank==0)
         { vals[0]=7.; vals[1]=8.; }
@@ -1657,12 +1662,12 @@ void ParaMEDMEMTest::testInterpKernelDEC2DM1D_P0P0()
   else
     {
       mesh=MEDCouplingUMesh::New("an example of -1 D mesh",-1);
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       paramesh=new ParaMESH(mesh,*target_group,"target mesh");
       parafield=new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-      parafield->getField()->setNature(ConservativeVolumic);
+      parafield->getField()->setNature(IntensiveMaximum);
     }
-  ParaMEDMEM::InterpKernelDEC dec(*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec(*source_group,*target_group);
   if(source_group->containsMyRank())
     {
       dec.setMethod("P0");
@@ -1695,9 +1700,9 @@ void ParaMEDMEMTest::testInterpKernelDEC2DM1D_P0P0()
       CPPUNIT_ASSERT_DOUBLES_EQUAL(9.125,res[0],1e-12);
       dec.sendData();
     }
-  ParaMEDMEM::InterpKernelDEC dec2(*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec2(*source_group,*target_group);
   dec2.setMethod("P0");
-  parafield->getField()->setNature(IntegralGlobConstraint);
+  parafield->getField()->setNature(ExtensiveConservation);
   if(source_group->containsMyRank())
     {
       double *vals=parafield->getField()->getArray()->getPointer();
@@ -1732,9 +1737,9 @@ void ParaMEDMEMTest::testInterpKernelDEC2DM1D_P0P0()
       dec2.sendData();
     }
   //
-  ParaMEDMEM::InterpKernelDEC dec3(*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec3(*source_group,*target_group);
   dec3.setMethod("P0");
-  parafield->getField()->setNature(Integral);
+  parafield->getField()->setNature(ExtensiveMaximum);
   if(source_group->containsMyRank())
     {
       double *vals=parafield->getField()->getArray()->getPointer();
@@ -1769,9 +1774,9 @@ void ParaMEDMEMTest::testInterpKernelDEC2DM1D_P0P0()
       dec3.sendData();
     }
   //
-  ParaMEDMEM::InterpKernelDEC dec4(*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec4(*source_group,*target_group);
   dec4.setMethod("P0");
-  parafield->getField()->setNature(RevIntegral);
+  parafield->getField()->setNature(IntensiveConservation);
   if(source_group->containsMyRank())
     {
       double *vals=parafield->getField()->getArray()->getPointer();
@@ -1829,11 +1834,11 @@ void ParaMEDMEMTest::testInterpKernelDECPartialProcs()
   procs_source.insert(0);
   procs_target.insert(1);
   //
-  ParaMEDMEM::MEDCouplingUMesh *mesh=0;
-  ParaMEDMEM::ParaMESH *paramesh=0;
-  ParaMEDMEM::ParaFIELD *parafield=0;
+  MEDCoupling::MEDCouplingUMesh *mesh=0;
+  MEDCoupling::ParaMESH *paramesh=0;
+  MEDCoupling::ParaFIELD *parafield=0;
   //
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
   //
   MPI_Barrier(MPI_COMM_WORLD);
   double targetCoords[8]={ 0.,0., 1., 0., 0., 1., 1., 1. };
@@ -1848,11 +1853,11 @@ void ParaMEDMEMTest::testInterpKernelDECPartialProcs()
   ProcessorGroup* target_group=0;
   ProcessorGroup* source_group=0;
   //
-  ParaMEDMEM::InterpKernelDEC *dec=0;
+  MEDCoupling::InterpKernelDEC *dec=0;
   if(rank==0 || rank==1)
     {
-      target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target,partialComm);
-      source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source,partialComm);
+      target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target,partialComm);
+      source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source,partialComm);
       if(source_group->containsMyRank())
         {    
           mesh=MEDCouplingUMesh::New();
@@ -1862,17 +1867,17 @@ void ParaMEDMEMTest::testInterpKernelDECPartialProcs()
           std::copy(targetCoords,targetCoords+8,myCoords->getPointer());
           mesh->setCoords(myCoords);
           myCoords->decrRef();
-          int targetConn[4]={0,2,3,1};
+          mcIdType targetConn[4]={0,2,3,1};
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,targetConn);
           mesh->finishInsertingCells();
-          ParaMEDMEM::ComponentTopology comptopo;
+          MEDCoupling::ComponentTopology comptopo;
           paramesh=new ParaMESH(mesh,*source_group,"source mesh");
           parafield=new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-          parafield->getField()->setNature(ConservativeVolumic);
+          parafield->getField()->setNature(IntensiveMaximum);
           double *vals=parafield->getField()->getArray()->getPointer();
           vals[0]=7.;
-          dec=new ParaMEDMEM::InterpKernelDEC(*source_group,*target_group);
+          dec=new MEDCoupling::InterpKernelDEC(*source_group,*target_group);
           dec->attachLocalField(parafield);
           dec->synchronize();
           dec->sendData();
@@ -1887,16 +1892,16 @@ void ParaMEDMEMTest::testInterpKernelDECPartialProcs()
           std::copy(targetCoords,targetCoords+8,myCoords->getPointer());
           mesh->setCoords(myCoords);
           myCoords->decrRef();
-          int targetConn[6]={0,2,1,2,3,1};
+          mcIdType targetConn[6]={0,2,1,2,3,1};
           mesh->allocateCells(2);
           mesh->insertNextCell(INTERP_KERNEL::NORM_TRI3,3,targetConn);
           mesh->insertNextCell(INTERP_KERNEL::NORM_TRI3,3,targetConn+3);
           mesh->finishInsertingCells();
-          ParaMEDMEM::ComponentTopology comptopo;
+          MEDCoupling::ComponentTopology comptopo;
           paramesh=new ParaMESH(mesh,*target_group,"target mesh");
           parafield=new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-          parafield->getField()->setNature(ConservativeVolumic);
-          dec=new ParaMEDMEM::InterpKernelDEC(*source_group,*target_group);
+          parafield->getField()->setNature(IntensiveMaximum);
+          dec=new MEDCoupling::InterpKernelDEC(*source_group,*target_group);
           dec->attachLocalField(parafield);
           dec->synchronize();
           dec->recvData();
@@ -1941,21 +1946,21 @@ void ParaMEDMEMTest::testInterpKernelDEC3DSurfEmptyBBox()
     procs_target.insert(i);
   self_procs.insert(rank);
   //
-  ParaMEDMEM::MEDCouplingUMesh *mesh=0;
-  ParaMEDMEM::ParaMESH *paramesh=0;
-  ParaMEDMEM::ParaFIELD *parafieldP0=0;
+  MEDCoupling::MEDCouplingUMesh *mesh=0;
+  MEDCoupling::ParaMESH *paramesh=0;
+  MEDCoupling::ParaFIELD *parafieldP0=0;
   //
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
   //
-  ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
   //
   MPI_Barrier(MPI_COMM_WORLD);
   if(source_group->containsMyRank())
     {
       double coords[15]={1.,0.,0., 2.,0.,0., 2.,2.,0., 0.,2.,0., 0.5,0.5,1.};
-      int conn[7]={0,1,2,3,0,3,4};
+      mcIdType conn[7]={0,1,2,3,0,3,4};
       mesh=MEDCouplingUMesh::New("Source mesh Proc0",2);
       mesh->allocateCells(2);
       mesh->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,conn);
@@ -1968,10 +1973,10 @@ void ParaMEDMEMTest::testInterpKernelDEC3DSurfEmptyBBox()
       myCoords->decrRef();
       //
       paramesh=new ParaMESH(mesh,*source_group,"source mesh");
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
       double *valueP0=parafieldP0->getField()->getArray()->getPointer();
-      parafieldP0->getField()->setNature(ConservativeVolumic);
+      parafieldP0->getField()->setNature(IntensiveMaximum);
       valueP0[0]=7.; valueP0[1]=8.;
     }
   else
@@ -1980,7 +1985,7 @@ void ParaMEDMEMTest::testInterpKernelDEC3DSurfEmptyBBox()
       if(rank==1)
         {
           double coords[12]={0.25,0.25,0.5, 0.,0.25,0.5, 0.,0.,0.5, 0.25,0.,0.5};
-          int conn[4]={0,1,2,3};
+          mcIdType conn[4]={0,1,2,3};
           mesh=MEDCouplingUMesh::New("Target mesh Proc1",2);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,conn);
@@ -1995,7 +2000,7 @@ void ParaMEDMEMTest::testInterpKernelDEC3DSurfEmptyBBox()
       if(rank==2)
         {
           double coords[12]={0.,0.25,0.5, 0.,0.,0.5, -1.,0.,0.5, -1.,0.25,0.5};
-          int conn[4]={0,1,2,3};
+          mcIdType conn[4]={0,1,2,3};
           mesh=MEDCouplingUMesh::New("Target mesh Proc2",2);
           mesh->allocateCells(1);
           mesh->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,conn);
@@ -2007,12 +2012,12 @@ void ParaMEDMEMTest::testInterpKernelDEC3DSurfEmptyBBox()
           myCoords->decrRef();
           paramesh=new ParaMESH(mesh,*target_group,targetMeshName);
         }
-      ParaMEDMEM::ComponentTopology comptopo;
+      MEDCoupling::ComponentTopology comptopo;
       parafieldP0 = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-      parafieldP0->getField()->setNature(ConservativeVolumic);
+      parafieldP0->getField()->setNature(IntensiveMaximum);
     }
   // test 1
-  ParaMEDMEM::InterpKernelDEC dec(*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec(*source_group,*target_group);
   if (source_group->containsMyRank())
     { 
       dec.setMethod("P0");
@@ -2099,21 +2104,20 @@ void ParaMEDMEMTest::testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA
     procs_target.insert(i);
   self_procs.insert(rank);
   
-  ParaMEDMEM::CommInterface interface;
+  MEDCoupling::CommInterface interface;
     
-  ParaMEDMEM::ProcessorGroup* self_group = new ParaMEDMEM::MPIProcessorGroup(interface,self_procs);
-  ParaMEDMEM::ProcessorGroup* target_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_target);
-  ParaMEDMEM::ProcessorGroup* source_group = new ParaMEDMEM::MPIProcessorGroup(interface,procs_source);
+  MEDCoupling::ProcessorGroup* self_group = new MEDCoupling::MPIProcessorGroup(interface,self_procs);
+  MEDCoupling::ProcessorGroup* target_group = new MEDCoupling::MPIProcessorGroup(interface,procs_target);
+  MEDCoupling::ProcessorGroup* source_group = new MEDCoupling::MPIProcessorGroup(interface,procs_source);
     
   //loading the geometry for the source group
 
-  ParaMEDMEM::InterpKernelDEC dec (*source_group,*target_group);
+  MEDCoupling::InterpKernelDEC dec (*source_group,*target_group);
   
-  ParaMEDMEM::MEDCouplingUMesh* mesh;
-  ParaMEDMEM::ParaMESH* paramesh;
-  ParaMEDMEM::ParaFIELD* parafield;
-  
-  ICoCo::MEDField* icocofield ;
+  MEDCoupling::MEDCouplingUMesh* mesh = nullptr;
+  MEDCoupling::ParaMESH* paramesh = nullptr;
+  MEDCoupling::ParaFIELD* parafield = nullptr;
+  ICoCo::MEDDoubleField* icocofield = nullptr;
 
   char * tmp_dir_c                    = getenv("TMP");
   string tmp_dir;
@@ -2121,8 +2125,8 @@ void ParaMEDMEMTest::testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA
     tmp_dir = string(tmp_dir_c);
   else
     tmp_dir = "/tmp";
-  string filename_xml1              = getResourceFile("square1_split");
-  string filename_xml2              = getResourceFile("square2_split"); 
+  string filename_xml1              = "square1_split";
+  string filename_xml2              = "square2_split";
   //string filename_seq_wr            = makeTmpFile("");
   //string filename_seq_med           = makeTmpFile("myWrField_seq_pointe221.med");
   
@@ -2137,19 +2141,20 @@ void ParaMEDMEMTest::testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA
       
       ostringstream strstream;
       strstream <<master<<rank+1<<".med";
+      string fName = INTERP_TEST::getResourceFile(strstream.str());
       ostringstream meshname ;
       meshname<< "Mesh_2_"<< rank+1;
       
-      mesh=MEDLoader::ReadUMeshFromFile(strstream.str().c_str(),meshname.str().c_str(),0);
+      mesh=ReadUMeshFromFile(fName.c_str(),meshname.str().c_str(),0);
 
       paramesh=new ParaMESH (mesh,*source_group,"source mesh");
     
-      //      ParaMEDMEM::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT( support,*source_group);
-      ParaMEDMEM::ComponentTopology comptopo;
+      //      MEDCoupling::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT( support,*source_group);
+      MEDCoupling::ComponentTopology comptopo;
       if(srcM=="P0")
         {
           parafield = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-          parafield->getField()->setNature(ConservativeVolumic);//InvertIntegral);//ConservativeVolumic);
+          parafield->getField()->setNature(IntensiveMaximum);//InvertIntegral);//IntensiveMaximum);
         }
       else
         parafield = new ParaFIELD(ON_NODES,NO_TIME,paramesh, comptopo);
@@ -2165,7 +2170,7 @@ void ParaMEDMEMTest::testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA
         value[ielem]=0.0;
     
       //      ICoCo::Field* icocofield=new ICoCo::MEDField(paramesh,parafield);
-      icocofield=new ICoCo::MEDField(parafield->getField());
+      icocofield=new ICoCo::MEDDoubleField(parafield->getField());
      
       dec.attachLocalField(icocofield);
 
@@ -2178,18 +2183,19 @@ void ParaMEDMEMTest::testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA
       string master= filename_xml2;
       ostringstream strstream;
       strstream << master<<(rank-nproc_source+1)<<".med";
+      string fName = INTERP_TEST::getResourceFile(strstream.str());
       ostringstream meshname ;
       meshname<< "Mesh_3_"<<rank-nproc_source+1;
       
-      mesh = MEDLoader::ReadUMeshFromFile(strstream.str().c_str(),meshname.str().c_str(),0);
+      mesh = ReadUMeshFromFile(fName.c_str(),meshname.str().c_str(),0);
 
       paramesh=new ParaMESH (mesh,*target_group,"target mesh");
-      //      ParaMEDMEM::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT(support,*target_group);
-      ParaMEDMEM::ComponentTopology comptopo;
+      //      MEDCoupling::ParaSUPPORT* parasupport=new UnstructuredParaSUPPORT(support,*target_group);
+      MEDCoupling::ComponentTopology comptopo;
       if(targetM=="P0")
         {
           parafield = new ParaFIELD(ON_CELLS,NO_TIME,paramesh, comptopo);
-          parafield->getField()->setNature(ConservativeVolumic);//InvertIntegral);//ConservativeVolumic);
+          parafield->getField()->setNature(IntensiveMaximum);//InvertIntegral);//IntensiveMaximum);
         }
       else
         parafield = new ParaFIELD(ON_NODES,NO_TIME,paramesh, comptopo);
@@ -2204,7 +2210,7 @@ void ParaMEDMEMTest::testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA
       for(int ielem=0; ielem<nb_local;ielem++)
         value[ielem]=0.0;
       //      ICoCo::Field* icocofield=new ICoCo::MEDField(paramesh,parafield);
-      icocofield=new ICoCo::MEDField(parafield->getField());
+      icocofield=new ICoCo::MEDDoubleField(parafield->getField());
       
       dec.attachLocalField(icocofield);
     }