Back to index

salome-med  6.5.0
MEDPARTITIONERTestPara.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D
00002 //
00003 // This library is free software; you can redistribute it and/or
00004 // modify it under the terms of the GNU Lesser General Public
00005 // License as published by the Free Software Foundation; either
00006 // version 2.1 of the License.
00007 //
00008 // This library is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 // Lesser General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU Lesser General Public
00014 // License along with this library; if not, write to the Free Software
00015 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00016 //
00017 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00018 //
00019 
00020 #include "MEDPARTITIONERTest.hxx"
00021 
00022 #include "MEDPARTITIONER_MeshCollection.hxx"
00023 #include "MEDPARTITIONER_ParallelTopology.hxx"
00024 #include "MEDPARTITIONER_ParaDomainSelector.hxx"
00025 #include "MEDPARTITIONER_Utils.hxx"
00026 
00027 #include "CellModel.hxx"
00028 #include "MEDFileMesh.hxx"
00029 #include "MEDLoader.hxx"
00030 #include "MEDLoaderBase.hxx"
00031 #include "MEDCouplingUMesh.hxx"
00032 #include "MEDCouplingExtrudedMesh.hxx"
00033 #include "MEDCouplingFieldDouble.hxx"
00034 #include "MEDCouplingMemArray.hxx"
00035 #include "MEDCouplingMultiFields.hxx"
00036 
00037 #include <cppunit/TestAssert.h>
00038 
00039 #include <sstream>
00040 #include <cmath>
00041 #include <list>
00042 #include <stdexcept>
00043 #include <cstdlib>
00044 #include <vector>
00045 
00046 #include <mpi.h>
00047 
00048 using namespace std;
00049 using namespace ParaMEDMEM;
00050 using namespace MEDPARTITIONER;
00051 
00052 #if defined(HAVE_MPI2)
00053 void MEDPARTITIONERTest::verifyMedpartitionerOnSmallSizeForMesh()
00054 {
00055   int res;
00056   string fileName,cmd,execName,sourceName,targetName,input;
00057   execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
00058   execName+="/bin/salome/medpartitioner_para";
00059   fileName=_file_name_with_faces;
00060   
00061   ParaMEDMEM::MEDFileUMesh* initialMesh=ParaMEDMEM::MEDFileUMesh::New(fileName.c_str(),_mesh_name.c_str());
00062   ParaMEDMEM::MEDCouplingUMesh* cellMesh=initialMesh->getLevel0Mesh(false);
00063   ParaMEDMEM::MEDCouplingUMesh* faceMesh=initialMesh->getLevelM1Mesh(false);
00064   
00065   cmd="mpirun -np 5 "+execName+" --ndomains=5 --split-method=metis";  //on same proc
00066   sourceName=fileName;
00067   targetName=fileName;
00068   targetName.replace(targetName.find(".med"),4,"_partitionedTo5_");
00069   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00070   if (_verbose) cout<<endl<<cmd<<endl;
00071   res=system(cmd.c_str());
00072   CPPUNIT_ASSERT_EQUAL(0, res);
00073   input=targetName+".xml";
00074   
00075   MEDPARTITIONER::ParaDomainSelector parallelizer(false);
00076   MEDPARTITIONER::MeshCollection collection(input,parallelizer);
00077   CPPUNIT_ASSERT_EQUAL(3, collection.getMeshDimension());
00078   std::vector<ParaMEDMEM::MEDCouplingUMesh*>cellMeshes=collection.getMesh();
00079   CPPUNIT_ASSERT_EQUAL(5, (int) cellMeshes.size());
00080   int nbcells=0;
00081   for (std::size_t i = 0; i < cellMeshes.size(); i++)
00082     nbcells+=cellMeshes[i]->getNumberOfCells();
00083   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), nbcells);
00084   
00085   std::vector<ParaMEDMEM::MEDCouplingUMesh*>faceMeshes=collection.getFaceMesh();
00086   CPPUNIT_ASSERT_EQUAL(5, (int) faceMeshes.size());
00087   int nbfaces=0;
00088   for (std::size_t i=0; i < faceMeshes.size(); i++)
00089     nbfaces+=faceMeshes[i]->getNumberOfCells();
00090   CPPUNIT_ASSERT_EQUAL(faceMesh->getNumberOfCells(), nbfaces);
00091   
00092   //merge split meshes and test equality
00093   cmd="mpirun -np 1 "+execName+" --ndomains=1 --split-method=metis";  //on same proc
00094   sourceName=targetName+".xml";
00095   targetName=fileName;
00096   targetName.replace(targetName.find(".med"),4,"_remergedFrom5_");
00097   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00098   if (_verbose) cout<<endl<<cmd<<endl;
00099   res=system(cmd.c_str());
00100   CPPUNIT_ASSERT_EQUAL(0, res);
00101   
00102   string refusedName=targetName+"1.med";
00103   ParaMEDMEM::MEDFileUMesh* refusedMesh=ParaMEDMEM::MEDFileUMesh::New(refusedName.c_str(),_mesh_name.c_str());
00104   ParaMEDMEM::MEDCouplingUMesh* refusedCellMesh=refusedMesh->getLevel0Mesh(false);
00105   ParaMEDMEM::MEDCouplingUMesh* refusedFaceMesh=refusedMesh->getLevelM1Mesh(false);
00106   
00107   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), refusedCellMesh->getNumberOfCells());
00108   CPPUNIT_ASSERT_EQUAL(faceMesh->getNumberOfCells(), refusedFaceMesh->getNumberOfCells());
00109   
00110   /*not the good job
00111     ParaMEDMEM::MEDCouplingMesh* mergeCell=cellMesh->mergeMyselfWith(refusedCellMesh);
00112     CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), mergeCell->getNumberOfCells());
00113   
00114     ParaMEDMEM::MEDCouplingMesh* mergeFace=faceMesh->mergeMyselfWith(refusedFaceMesh);
00115     CPPUNIT_ASSERT_EQUAL(faceMesh->getNumberOfCells(), mergeFace->getNumberOfCells());
00116   
00117     CPPUNIT_ASSERT(faceMesh->isEqual(refusedFaceMesh,1e-12));
00118   */
00119   
00120   std::vector<const MEDCouplingUMesh *> meshes;
00121   std::vector<DataArrayInt *> corr;
00122   meshes.push_back(cellMesh);
00123   refusedCellMesh->tryToShareSameCoordsPermute(*cellMesh, 1e-9);
00124   meshes.push_back(refusedCellMesh);
00125   MEDCouplingUMesh* fusedCell=MEDCouplingUMesh::FuseUMeshesOnSameCoords(meshes,0,corr);
00126   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), fusedCell->getNumberOfCells());
00127   
00128   meshes.resize(0);
00129   for (std::size_t i = 0; i < corr.size(); i++)
00130     corr[i]->decrRef();
00131   corr.resize(0);
00132   meshes.push_back(faceMesh);
00133   refusedFaceMesh->tryToShareSameCoordsPermute(*faceMesh, 1e-9);
00134   meshes.push_back(refusedFaceMesh);
00135   MEDCouplingUMesh* fusedFace=MEDCouplingUMesh::FuseUMeshesOnSameCoords(meshes,0,corr);
00136   CPPUNIT_ASSERT_EQUAL(faceMesh->getNumberOfCells(), fusedFace->getNumberOfCells());
00137   
00138   for (std::size_t i = 0; i < corr.size(); i++)
00139     corr[i]->decrRef();
00140   fusedFace->decrRef();
00141   refusedFaceMesh->decrRef();
00142   faceMesh->decrRef();
00143   fusedCell->decrRef();
00144   refusedCellMesh->decrRef();
00145   cellMesh->decrRef();
00146   //done in ~collection
00147   //for (int i = 0; i < faceMeshes.size(); i++) faceMeshes[i]->decrRef();
00148   //for (int i = 0; i < cellMeshes.size(); i++) cellMeshes[i]->decrRef();
00149 }
00150 
00151 void MEDPARTITIONERTest::verifyMedpartitionerOnSmallSizeForFieldOnCells()
00152 {
00153   int res;
00154   string fileName,cmd,execName,sourceName,targetName,input;
00155   execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
00156   execName+="/bin/salome/medpartitioner_para";
00157   fileName=_file_name;
00158   fileName.replace(fileName.find(".med"),4,"_WithVecFieldOnCells.med");
00159   
00160   ParaMEDMEM::MEDFileUMesh* initialMesh=ParaMEDMEM::MEDFileUMesh::New(fileName.c_str(),_mesh_name.c_str());
00161   ParaMEDMEM::MEDCouplingUMesh* cellMesh=initialMesh->getLevel0Mesh(false);
00162   
00163   cmd="mpirun -np 5 "+execName+" --ndomains=5 --split-method=metis";  //on same proc
00164   sourceName=fileName;
00165   targetName=fileName;
00166   targetName.replace(targetName.find(".med"),4,"_partitionedTo5_");
00167   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00168   if (_verbose) cout<<endl<<cmd<<endl;
00169   res=system(cmd.c_str());
00170   CPPUNIT_ASSERT_EQUAL(0, res);
00171   input=targetName+".xml";
00172   
00173   //merge split meshes and test equality
00174   cmd="mpirun -np 1 "+execName+" --ndomains=1 --split-method=metis";  //on same proc
00175   sourceName=targetName+".xml";
00176   targetName=fileName;
00177   targetName.replace(targetName.find(".med"),4,"_remergedFrom5_");
00178   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00179   if (_verbose) cout<<endl<<cmd<<endl;
00180   res=system(cmd.c_str());
00181   CPPUNIT_ASSERT_EQUAL(0, res);
00182   
00183   string refusedName=targetName+"1.med";
00184   ParaMEDMEM::MEDFileUMesh* refusedMesh=ParaMEDMEM::MEDFileUMesh::New(refusedName.c_str(),_mesh_name.c_str());
00185   ParaMEDMEM::MEDCouplingUMesh* refusedCellMesh=refusedMesh->getLevel0Mesh(false);
00186   
00187   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), refusedCellMesh->getNumberOfCells());
00188   
00189   std::vector<const MEDCouplingUMesh *> meshes;
00190   std::vector<DataArrayInt *> corr;
00191   meshes.push_back(cellMesh);
00192   refusedCellMesh->tryToShareSameCoordsPermute(*cellMesh, 1e-9);
00193   meshes.push_back(refusedCellMesh);
00194   MEDCouplingUMesh* fusedCell=MEDCouplingUMesh::FuseUMeshesOnSameCoords(meshes,0,corr);
00195   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), fusedCell->getNumberOfCells());
00196   
00197   MEDCouplingFieldDouble* field1=MEDLoader::ReadFieldCell(fileName.c_str(),initialMesh->getName(),0,"VectorFieldOnCells",0,1);
00198   MEDCouplingFieldDouble* field2=MEDLoader::ReadFieldCell(refusedName.c_str(),refusedCellMesh->getName(),0,"VectorFieldOnCells",0,1);
00199   
00200   int nbcells=corr[1]->getNumberOfTuples();
00201   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), nbcells);
00202   //use corr to test equality of field
00203   DataArrayDouble* f1=field1->getArray();
00204   DataArrayDouble* f2=field2->getArray();
00205   if (_verbose>300) 
00206     {
00207       cout<<"\nf1 : "<<f1->reprZip();
00208       cout<<"\nf2 : "<<f2->reprZip(); //field2->advancedRepradvancedRepr();
00209       for (std::size_t i = 0; i < corr.size(); i++)
00210         cout << "\ncorr " << i << " : " << corr[i]->reprZip();
00211     
00212     }
00213   int nbequal=0;
00214   int nbcomp=field1->getNumberOfComponents();
00215   double* p1=f1->getPointer();
00216   double* p2=f2->getPointer();
00217   int* pc=corr[1]->getPointer();
00218   for (int i = 0; i < nbcells; i++)
00219     {
00220       int i1=pc[i]*nbcomp;
00221       int i2=i*nbcomp;
00222       for (int j = 0; j < nbcomp; j++)
00223         {
00224           if (p1[i1+j]==p2[i2+j]) nbequal++;
00225           //cout<<" "<<p1[i1+j]<<"="<<p2[i2+j];
00226         }
00227     }
00228   CPPUNIT_ASSERT_EQUAL(nbcells*nbcomp, nbequal);
00229   
00230   for (std::size_t i = 0; i < corr.size(); i++)
00231     corr[i]->decrRef();
00232   field1->decrRef();
00233   field2->decrRef();
00234   fusedCell->decrRef();
00235   refusedCellMesh->decrRef();
00236   cellMesh->decrRef();
00237 }
00238 
00239 void MEDPARTITIONERTest::verifyMedpartitionerOnSmallSizeForFieldOnGaussNe()
00240 {
00241   int res;
00242   string fileName,cmd,execName,sourceName,targetName,input;
00243   execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
00244   execName+="/bin/salome/medpartitioner_para";
00245   fileName=_file_name;
00246   fileName.replace(fileName.find(".med"),4,"_WithVecFieldOnGaussNe.med");
00247   
00248   ParaMEDMEM::MEDFileUMesh* initialMesh=ParaMEDMEM::MEDFileUMesh::New(fileName.c_str(),_mesh_name.c_str());
00249   ParaMEDMEM::MEDCouplingUMesh* cellMesh=initialMesh->getLevel0Mesh(false);
00250   
00251   cmd="mpirun -np 5 "+execName+" --ndomains=5 --split-method=metis";  //on same proc
00252   sourceName=fileName;
00253   targetName=fileName;
00254   targetName.replace(targetName.find(".med"),4,"_partitionedTo5_");
00255   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00256   if (_verbose) cout<<endl<<cmd<<endl;
00257   res=system(cmd.c_str());
00258   CPPUNIT_ASSERT_EQUAL(0, res);
00259   input=targetName+".xml";
00260   
00261   //merge split meshes and test equality
00262   cmd="mpirun -np 1 "+execName+" --ndomains=1 --split-method=metis";  //on same proc
00263   sourceName=targetName+".xml";
00264   targetName=fileName;
00265   targetName.replace(targetName.find(".med"),4,"_remergedFrom5_");
00266   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00267   if (_verbose) cout<<endl<<cmd<<endl;
00268   res=system(cmd.c_str());
00269   CPPUNIT_ASSERT_EQUAL(0, res);
00270   
00271   string refusedName=targetName+"1.med";
00272   ParaMEDMEM::MEDFileUMesh* refusedMesh=ParaMEDMEM::MEDFileUMesh::New(refusedName.c_str(),_mesh_name.c_str());
00273   ParaMEDMEM::MEDCouplingUMesh* refusedCellMesh=refusedMesh->getLevel0Mesh(false);
00274   
00275   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), refusedCellMesh->getNumberOfCells());
00276   
00277   std::vector<const MEDCouplingUMesh *> meshes;
00278   std::vector<DataArrayInt *> corr;
00279   meshes.push_back(cellMesh);
00280   refusedCellMesh->tryToShareSameCoordsPermute(*cellMesh, 1e-9);
00281   meshes.push_back(refusedCellMesh);
00282   MEDCouplingUMesh* fusedCell=MEDCouplingUMesh::FuseUMeshesOnSameCoords(meshes,0,corr);
00283   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), fusedCell->getNumberOfCells());
00284   
00285   MEDCouplingFieldDouble* field1=MEDLoader::ReadField(ON_GAUSS_NE,fileName.c_str(),initialMesh->getName(),0,"MyFieldOnGaussNE",5,6);
00286   MEDCouplingFieldDouble* field2=MEDLoader::ReadField(ON_GAUSS_NE,refusedName.c_str(),refusedCellMesh->getName(),0,"MyFieldOnGaussNE",5,6);
00287   
00288   int nbcells=corr[1]->getNumberOfTuples();
00289   CPPUNIT_ASSERT_EQUAL(cellMesh->getNumberOfCells(), nbcells);
00290   //use corr to test equality of field
00291   DataArrayDouble* f1=field1->getArray();
00292   DataArrayDouble* f2=field2->getArray();
00293   if (_verbose>300) 
00294     {
00295       cout << "\nf1 : " << f1->reprZip(); //123.4 for 12th cell,3rd component, 4th gausspoint
00296       cout << "\nf2 : " << f2->reprZip(); //field2->advancedRepradvancedRepr();
00297       for (std::size_t i = 0; i < corr.size(); i++)
00298         cout << "\ncorr " << i << " : " << corr[i]->reprZip();
00299     
00300     }
00301   int nbequal=0;
00302   int nbptgauss=8;
00303   int nbcomp=field1->getNumberOfComponents();
00304   double* p1=f1->getPointer();
00305   double* p2=f2->getPointer();
00306   int* pc=corr[1]->getPointer();
00307   for (int i = 0; i < nbcells; i++)
00308     {
00309       int i1=pc[i]*nbcomp*nbptgauss;
00310       int i2=i*nbcomp*nbptgauss;
00311       for (int j = 0; j < nbcomp*nbptgauss; j++)
00312         {
00313           if (p1[i1+j]==p2[i2+j]) nbequal++;
00314           //cout<<" "<<p1[i1+j]<<"="<<p2[i2+j];
00315         }
00316     }
00317   CPPUNIT_ASSERT_EQUAL(nbcells*nbcomp*nbptgauss, nbequal);
00318   
00319   for (std::size_t i = 0; i < corr.size(); i++)
00320     corr[i]->decrRef();
00321   field1->decrRef();
00322   field2->decrRef();
00323   fusedCell->decrRef();
00324   refusedCellMesh->decrRef();
00325   cellMesh->decrRef();
00326 }
00327 
00328 void MEDPARTITIONERTest::launchMedpartitionerOnTestMeshes()
00329 {
00330   
00331   /* examples 
00332      export INFI=/home/vb144235/resources/blade.med
00333      //no need export MESH=Fuse_1
00334      export INFI=tmp_testMeshxxx.med
00335      //no need export MESH=testMesh
00336      mpirun -np 2 medpartitioner_para --input-file=$INFI --output-file=ttmp1_ --ndomains=4
00337      mpirun -np 5 medpartitioner_para --input-file=ttmp1_.xml --output-file=ttmp2_ --ndomains=5
00338      mpirun -np 2 valgrind  medpartitioner_para --input-file=tmp_testMesh_20x30x50.med  --output-file=ttmp1petit_ --ndomains=4  --dump-cpu-memory --verbose=111
00339   */
00340   int res;
00341   string cmd,execName,sourceName,targetName;
00342   
00343   res=system("which mpirun 2>/dev/null 1>/dev/null"); //no trace
00344   CPPUNIT_ASSERT_EQUAL(0, res);
00345   
00346   execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
00347   execName+="/bin/salome/medpartitioner_para";
00348   
00349   cmd="which "+execName+" 2>/dev/null 1>/dev/null";  //no trace
00350   res=system(cmd.c_str());
00351   CPPUNIT_ASSERT_EQUAL(0, res);
00352   
00353   cmd="mpirun -np 2 "+execName+" --ndomains=2 --split-method=metis";  //on same proc
00354   sourceName=_file_name;
00355   targetName=_file_name;
00356   targetName.replace(targetName.find(".med"),4,"_partitionedTo2_");
00357   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00358   if (_verbose) cout<<endl<<cmd<<endl;
00359   res=system(cmd.c_str());
00360   CPPUNIT_ASSERT_EQUAL(0, res);
00361   
00362   cmd="mpirun -np 3 "+execName+" --ndomains=5 --split-method=metis"; //on less proc
00363   sourceName=_file_name;
00364   targetName=_file_name;
00365   targetName.replace(targetName.find(".med"),4,"_partitionedTo5_");
00366   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00367   if (_verbose) cout<<endl<<cmd<<endl;
00368   res=system(cmd.c_str());
00369   CPPUNIT_ASSERT_EQUAL(0, res);
00370   
00371   cmd="mpirun -np 1 "+execName+" --ndomains=1 --split-method=metis";  //on 1 proc
00372   sourceName=targetName+".xml";
00373   targetName=_file_name;
00374   targetName.replace(targetName.find(".med"),4,"_remergedFrom5_");
00375   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00376   if (_verbose) cout<<endl<<cmd<<endl;
00377   res=system(cmd.c_str());
00378   CPPUNIT_ASSERT_EQUAL(0, res);
00379 
00380   cmd="mpirun -np 8 "+execName+" --ndomains=1 --split-method=metis";  //on more proc
00381   //sourceName=targetName+".xml";
00382   targetName=_file_name;
00383   targetName.replace(targetName.find(".med"),4,"_remergedFrom5_");
00384   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00385   if (_verbose) cout<<endl<<cmd<<endl;
00386   res=system(cmd.c_str());
00387   CPPUNIT_ASSERT_EQUAL(0, res);
00388 }  
00389 
00390 void MEDPARTITIONERTest::launchMedpartitionerOnHugeTestMeshes()
00391 {
00392   int res=0;
00393   string cmd,execName,sourceName,targetName;
00394   execName=getenv("MED_ROOT_DIR");  //.../INSTALL/MED
00395   execName+="/bin/salome/medpartitioner_para";
00396 
00397   string snbTarget=IntToStr(_nb_target_huge);
00398   cmd="mpirun -np "+snbTarget+" "+execName+" --ndomains="+snbTarget+" --split-method=metis";  //on same proc
00399   sourceName=_file_name_huge_xml;
00400   targetName=_file_name_huge_xml;
00401   string tmp="_partitionedTo"+snbTarget+"_";
00402   targetName.replace(targetName.find(".xml"),4,tmp);
00403   cmd+=" --input-file="+sourceName+" --output-file="+targetName+" --verbose="+IntToStr(_verbose);
00404   if (_verbose) cout<<endl<<cmd<<endl;
00405   res=system(cmd.c_str());
00406   CPPUNIT_ASSERT_EQUAL(0, res);
00407 }  
00408 
00409 void MEDPARTITIONERTest::testMpirunSmallSize()
00410 {
00411   setSmallSize();
00412   createTestMeshes();
00413   launchMedpartitionerOnTestMeshes();
00414   verifyMedpartitionerOnSmallSizeForMesh();
00415   verifyMedpartitionerOnSmallSizeForFieldOnCells();
00416   verifyMedpartitionerOnSmallSizeForFieldOnGaussNe();
00417 }
00418 
00419 void MEDPARTITIONERTest::testMpirunMedianSize()
00420 {
00421   setMedianSize();
00422   createTestMeshes();
00423   launchMedpartitionerOnTestMeshes();
00424 }
00425 
00426 void MEDPARTITIONERTest::testMpirunHugeSize()
00427 {
00428   //setBigSize(); //may be a lot for now
00429   setMedianSize();
00430   //create a set of nbx*nby*nbz files mesh of ni*ny*nz cells
00431   //_verbose=1;
00432   createHugeTestMesh(_ni, _nj, _nk, 2, 2, 2, 32); //it is now to know how far we are going to test
00433   launchMedpartitionerOnHugeTestMeshes();
00434 }
00435 #endif