From 920b18abe8135d2368c327911366fa42e678d08f Mon Sep 17 00:00:00 2001 From: ageay Date: Tue, 25 Aug 2009 13:33:12 +0000 Subject: [PATCH] *** empty log message *** --- src/ParaMEDMEM/BASICS_JR | 12 +- src/ParaMEDMEM/DEC.cxx | 2 +- ...ntersectionDEC.cxx => InterpKernelDEC.cxx} | 46 +++---- ...ntersectionDEC.hxx => InterpKernelDEC.hxx} | 12 +- src/ParaMEDMEM/Makefile.am | 4 +- src/ParaMEDMEM/NonCoincidentDEC.cxx | 4 +- src/ParaMEDMEM/README_JR | 8 +- src/ParaMEDMEM/StructuredCoincidentDEC.cxx | 2 +- src/ParaMEDMEM/Test/Makefile.am | 2 +- src/ParaMEDMEM/Test/ParaMEDMEMTest.hxx | 74 ++++++------ .../Test/ParaMEDMEMTest_Gauthier1.cxx | 4 +- .../Test/ParaMEDMEMTest_ICocoTrio.cxx | 4 +- ...cxx => ParaMEDMEMTest_InterpKernelDEC.cxx} | 114 +++++++++--------- .../Test/ParaMEDMEMTest_NonCoincidentDEC.cxx | 8 +- src/ParaMEDMEM/Test/test_perf.cxx | 12 +- src/ParaMEDMEM_Swig/Makefile.am | 2 +- src/ParaMEDMEM_Swig/libParaMEDMEM_Swig.i | 4 +- ...rsectionDEC.py => test_InterpKernelDEC.py} | 4 +- 18 files changed, 159 insertions(+), 159 deletions(-) rename src/ParaMEDMEM/{IntersectionDEC.cxx => InterpKernelDEC.cxx} (89%) rename src/ParaMEDMEM/{IntersectionDEC.hxx => InterpKernelDEC.hxx} (86%) rename src/ParaMEDMEM/Test/{ParaMEDMEMTest_IntersectionDEC.cxx => ParaMEDMEMTest_InterpKernelDEC.cxx} (92%) rename src/ParaMEDMEM_Swig/{test_IntersectionDEC.py => test_InterpKernelDEC.py} (97%) diff --git a/src/ParaMEDMEM/BASICS_JR b/src/ParaMEDMEM/BASICS_JR index af82fda16..61a724d45 100644 --- a/src/ParaMEDMEM/BASICS_JR +++ b/src/ParaMEDMEM/BASICS_JR @@ -296,7 +296,7 @@ Presentation-ParaMEDMEM : mode de fonctionnement reste naturellement disponible. . Cela repose sur trois nouvelles options creees avec registerOption - dans le constructeur de IntersectionDEC : + dans le constructeur de InterpKernelDEC : + Asynchronous : true ou false (par defaut) + TimeInterpolation : WithoutTimeInterp (par defaut) ou LinearTimeInterp typedef enum{WithoutTimeInterp,LinearTimeInterp} TimeInterpolationMethod; @@ -306,7 +306,7 @@ Presentation-ParaMEDMEM : dans MxN_Mapping.hxx . Le choix des options se fait avec le Data Exchange Channel : - + ParaMEDMEM::IntersectionDEC dec (*source_group,*target_group); + + ParaMEDMEM::InterpKernelDEC dec (*source_group,*target_group); + dec.setOption("Asynchronous",true); + dec.setOption("TimeInterpolation",LinearTimeInterp); + dec.setOption("AllToAllMethod",PointToPoint); @@ -321,17 +321,17 @@ Presentation-ParaMEDMEM : et TimeInterpolation : methodes Asynchronous et SetTimeInterpolator de MPI_AccessDEC. -. ParaMEDMEM::IntersectionDEC comporte maintenant une surcharge des +. ParaMEDMEM::InterpKernelDEC comporte maintenant une surcharge des methodes recvData() et sendData() : - + void IntersectionDEC::recvData( double time ) qui appelle + + void InterpKernelDEC::recvData( double time ) qui appelle SetTime(time) de MPI_AccessDEC et recvData() - + void IntersectionDEC::sendData( double time , double deltatime ) + + void InterpKernelDEC::sendData( double time , double deltatime ) qui appelle SetTime(time,deltatime) de MPI_AccessDEC et sendData() -. recvData() et sendData() de ParaMEDMEM::IntersectionDEC +. recvData() et sendData() de ParaMEDMEM::InterpKernelDEC appellent multiply et transposeMultiply de l'InterpolationMatrix qui appellent sendRecv et reverseSendRecv de MxN_Mapping qui appellent comm_interface.allToAllV en mode "Native" diff --git a/src/ParaMEDMEM/DEC.cxx b/src/ParaMEDMEM/DEC.cxx index c488d6b8d..c564438bb 100644 --- a/src/ParaMEDMEM/DEC.cxx +++ b/src/ParaMEDMEM/DEC.cxx @@ -55,7 +55,7 @@ The following code excerpt shows how to set options for an object that inherits from DEC : \code - IntersectionDEC dec(source_group,target_group); + InterpKernelDEC dec(source_group,target_group); dec.setOptions("ForcedRenormalization",true); dec.attachLocalField(field); dec.synchronize(); diff --git a/src/ParaMEDMEM/IntersectionDEC.cxx b/src/ParaMEDMEM/InterpKernelDEC.cxx similarity index 89% rename from src/ParaMEDMEM/IntersectionDEC.cxx rename to src/ParaMEDMEM/InterpKernelDEC.cxx index b080ab51f..6badf5117 100644 --- a/src/ParaMEDMEM/IntersectionDEC.cxx +++ b/src/ParaMEDMEM/InterpKernelDEC.cxx @@ -26,18 +26,18 @@ #include "ParaMESH.hxx" #include "DEC.hxx" #include "InterpolationMatrix.hxx" -#include "IntersectionDEC.hxx" +#include "InterpKernelDEC.hxx" #include "ElementLocator.hxx" namespace ParaMEDMEM { /*! - \defgroup intersectiondec IntersectionDEC + \defgroup interpkerneldec InterpKernelDEC \section overview Overview - The IntersectionDEC enables the \ref conservativeremapping of fields between two parallel codes. This remapping is based on the computation of intersection volumes between elements from code A and elements from code B. The computation is possible for 3D meshes, 2D meshes, and 3D-surface meshes. Dimensions must be similar for code A and code B (for instance, though it could be desirable, it is not yet possible to couple 3D surfaces with 2D surfaces). + The InterpKernelDEC enables the \ref conservativeremapping of fields between two parallel codes. This remapping is based on the computation of intersection volumes between elements from code A and elements from code B. The computation is possible for 3D meshes, 2D meshes, and 3D-surface meshes. Dimensions must be similar for code A and code B (for instance, though it could be desirable, it is not yet possible to couple 3D surfaces with 2D surfaces). In the present version, only fields lying on elements are considered. @@ -45,15 +45,15 @@ namespace ParaMEDMEM \image latex NonCoincident_small.eps "Example showing the transfer from a field based on a quadrangular mesh to a triangular mesh. In a P0-P0 interpolation, to obtain the value on a triangle, the values on quadrangles are weighted by their intersection area and summed." - A typical use of IntersectionDEC encompasses two distinct phases : - - A setup phase during which the intersection volumes are computed and the communication structures are setup. This corresponds to calling the IntersectionDEC::synchronize() method. + A typical use of InterpKernelDEC encompasses two distinct phases : + - A setup phase during which the intersection volumes are computed and the communication structures are setup. This corresponds to calling the InterpKernelDEC::synchronize() method. - A use phase during which the remappings are actually performed. This corresponds to the calls to sendData() and recvData() which actually trigger the data exchange. The data exchange are synchronous in the current version of the library so that recvData() and sendData() calls must be synchronized on code A and code B processor groups. - The following code excerpt illutrates a typical use of the IntersectionDEC class. + The following code excerpt illutrates a typical use of the InterpKernelDEC class. \code ... - IntersectionDEC dec(groupA, groupB); + InterpKernelDEC dec(groupA, groupB); dec.attachLocalField(field); dec.synchronize(); if (groupA.containsMyRank()) @@ -80,15 +80,15 @@ namespace ParaMEDMEM - \section intersectiondec_options Options - On top of \ref dec_options, options supported by %IntersectionDEC objects are + \section interpkerneldec_options Options + On top of \ref dec_options, options supported by %InterpKernelDEC objects are related to the underlying Intersector class. All the options available in the intersector objects are - available for the %IntersectionDEC object. The various options available for * intersectors can be reviewed in \ref InterpKerIntersectors. + available for the %InterpKernelDEC object. The various options available for * intersectors can be reviewed in \ref InterpKerIntersectors. For instance : \verbatim - IntersectionDEC dec(source_group, target_group); + InterpKernelDEC dec(source_group, target_group); dec.attachLocalField(field); dec.setOptions("DoRotate",false); dec.setOptions("Precision",1e-12); @@ -99,16 +99,16 @@ namespace ParaMEDMEM */ /*! - \addtogroup intersectiondec + \addtogroup interpkerneldec @{ */ - IntersectionDEC::IntersectionDEC() + InterpKernelDEC::InterpKernelDEC() { } /*! - This constructor creates an IntersectionDEC which has \a source_group as a working side + This constructor creates an InterpKernelDEC which has \a source_group as a working side and \a target_group as an idle side. All the processors will actually participate, but intersection computations will be performed on the working side during the \a synchronize() phase. The constructor must be called synchronously on all processors of both processor groups. @@ -116,13 +116,13 @@ namespace ParaMEDMEM \param target_group lazy side ProcessorGroup */ - IntersectionDEC::IntersectionDEC(ProcessorGroup& source_group, ProcessorGroup& target_group): + InterpKernelDEC::InterpKernelDEC(ProcessorGroup& source_group, ProcessorGroup& target_group): DEC(source_group, target_group),_interpolation_matrix(0) { } - IntersectionDEC::~IntersectionDEC() + InterpKernelDEC::~InterpKernelDEC() { if (_interpolation_matrix !=0) delete _interpolation_matrix; @@ -140,7 +140,7 @@ namespace ParaMEDMEM the working side during a \a sendData() call. */ - void IntersectionDEC::synchronize() + void InterpKernelDEC::synchronize() { delete _interpolation_matrix; _interpolation_matrix = new InterpolationMatrix (_local_field, *_source_group,*_target_group,*this,*this); @@ -151,7 +151,7 @@ namespace ParaMEDMEM //locate the distant meshes ElementLocator locator(*_local_field, *_target_group, *_source_group); - //transfering option from IntersectionDEC to ElementLocator + //transfering option from InterpKernelDEC to ElementLocator locator.setBoundingBoxAdjustment(getBoundingBoxAdjustment()); MEDCouplingPointSet* distant_mesh=0; @@ -183,7 +183,7 @@ namespace ParaMEDMEM if (_target_group->containsMyRank()) { ElementLocator locator(*_local_field, *_source_group, *_target_group); - //transfering option from IntersectionDEC to ElementLocator + //transfering option from InterpKernelDEC to ElementLocator locator.setBoundingBoxAdjustment(getBoundingBoxAdjustment()); MEDCouplingPointSet* distant_mesh=0; @@ -214,7 +214,7 @@ namespace ParaMEDMEM /*! Receives the data whether the processor is on the working side or on the lazy side. It must match a \a sendData() call on the other side. */ - void IntersectionDEC::recvData() + void InterpKernelDEC::recvData() { if (_source_group->containsMyRank()) _interpolation_matrix->transposeMultiply(*_local_field->getField()); @@ -232,7 +232,7 @@ namespace ParaMEDMEM will be time-interpolated from the field values received. \param time time at which the value is desired */ - void IntersectionDEC::recvData( double time ) + void InterpKernelDEC::recvData( double time ) { _interpolation_matrix->getAccessDEC()->setTime(time); recvData() ; @@ -242,7 +242,7 @@ namespace ParaMEDMEM Sends the data whether the processor is on the working side or on the lazy side. It must match a recvData() call on the other side. */ - void IntersectionDEC::sendData() + void InterpKernelDEC::sendData() { if (_source_group->containsMyRank()) { @@ -261,7 +261,7 @@ namespace ParaMEDMEM \param time time at which the value is available \param deltatime time interval between the value presently sent and the next one. */ - void IntersectionDEC::sendData( double time , double deltatime ) + void InterpKernelDEC::sendData( double time , double deltatime ) { _interpolation_matrix->getAccessDEC()->setTime(time,deltatime); sendData() ; diff --git a/src/ParaMEDMEM/IntersectionDEC.hxx b/src/ParaMEDMEM/InterpKernelDEC.hxx similarity index 86% rename from src/ParaMEDMEM/IntersectionDEC.hxx rename to src/ParaMEDMEM/InterpKernelDEC.hxx index 6659155c8..e33b031d4 100644 --- a/src/ParaMEDMEM/IntersectionDEC.hxx +++ b/src/ParaMEDMEM/InterpKernelDEC.hxx @@ -16,8 +16,8 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -#ifndef __INTERSECTIONDEC_HXX__ -#define __INTERSECTIONDEC_HXX__ +#ifndef __INTERPKERNELDEC_HXX__ +#define __INTERPKERNELDEC_HXX__ #include "DEC.hxx" #include "MxN_Mapping.hxx" @@ -27,12 +27,12 @@ namespace ParaMEDMEM { class InterpolationMatrix; - class IntersectionDEC : public DEC, public INTERP_KERNEL::InterpolationOptions + class InterpKernelDEC : public DEC, public INTERP_KERNEL::InterpolationOptions { public: - IntersectionDEC(); - IntersectionDEC(ProcessorGroup& source_group, ProcessorGroup& target_group); - virtual ~IntersectionDEC(); + InterpKernelDEC(); + InterpKernelDEC(ProcessorGroup& source_group, ProcessorGroup& target_group); + virtual ~InterpKernelDEC(); void synchronize(); void recvData(); void recvData(double time); diff --git a/src/ParaMEDMEM/Makefile.am b/src/ParaMEDMEM/Makefile.am index b2d0e0bd5..ba0f42214 100644 --- a/src/ParaMEDMEM/Makefile.am +++ b/src/ParaMEDMEM/Makefile.am @@ -51,7 +51,7 @@ DECOptions.hxx\ MxN_Mapping.hxx\ StructuredCoincidentDEC.hxx\ InterpolationMatrix.hxx\ -IntersectionDEC.hxx\ +InterpKernelDEC.hxx\ ExplicitCoincidentDEC.hxx\ ElementLocator.hxx\ ExplicitMapping.hxx\ @@ -72,7 +72,7 @@ MPIAccess.cxx \ InterpolationMatrix.cxx\ StructuredCoincidentDEC.cxx\ ExplicitCoincidentDEC.cxx\ -IntersectionDEC.cxx\ +InterpKernelDEC.cxx\ ElementLocator.cxx\ MPIAccessDEC.cxx \ TimeInterpolator.cxx \ diff --git a/src/ParaMEDMEM/NonCoincidentDEC.cxx b/src/ParaMEDMEM/NonCoincidentDEC.cxx index 6ca700a0b..c1f5725de 100644 --- a/src/ParaMEDMEM/NonCoincidentDEC.cxx +++ b/src/ParaMEDMEM/NonCoincidentDEC.cxx @@ -47,9 +47,9 @@ namespace ParaMEDMEM It is not available for 3D surfaces. The computation enables fast parallel localization, based on the FVM library. The computation is based on a point in element search, followed by a field evaluation at the point location. Thus, it is typically - faster than the \ref intersectiondec which gives a \ref conservativeremapping. + faster than the \ref interpkerneldec which gives a \ref conservativeremapping. It is particularly true for the initialisation phase (synchronize) - which is very computationnaly intensive in \ref intersectiondec. + which is very computationnaly intensive in \ref interpkerneldec. In the present version, only fields lying on elements are considered. The value is estimated by locating the barycenter of the target diff --git a/src/ParaMEDMEM/README_JR b/src/ParaMEDMEM/README_JR index 3039608eb..865af2b1d 100644 --- a/src/ParaMEDMEM/README_JR +++ b/src/ParaMEDMEM/README_JR @@ -333,13 +333,13 @@ mpirun -np 5 -ssi rpi tcp C -v -x PATH=${PATH},LD_LIBRARY_PATH=${LD_LIBRARY_PATH gcov TestParaMEDMEM.cxx ParaMEDMEMTest.cxx \ ParaMEDMEMTest_MPIProcessorGroup.cxx \ ParaMEDMEMTest_BlockTopology.cxx \ - ParaMEDMEMTest_IntersectionDEC.cxx \ + ParaMEDMEMTest_InterpKernelDEC.cxx \ ../BlockTopology.cxx \ ../ComponentTopology.cxx \ ../DEC.cxx \ ../ElementLocator.cxx \ ../InterpolationMatrix.cxx \ - ../IntersectionDEC.cxx \ + ../InterpKernelDEC.cxx \ ../MPIProcessorGroup.cxx \ ../MxN_Mapping.cxx \ ../ParaFIELD.cxx \ @@ -354,13 +354,13 @@ gcov TestParaMEDMEM.cxx ParaMEDMEMTest.cxx \ gcov -o ../ TestParaMEDMEM.cxx ParaMEDMEMTest.cxx \ ParaMEDMEMTest_MPIProcessorGroup.cxx \ ParaMEDMEMTest_BlockTopology.cxx \ - ParaMEDMEMTest_IntersectionDEC.cxx \ + ParaMEDMEMTest_InterpKernelDEC.cxx \ ../BlockTopology.cxx \ ../ComponentTopology.cxx \ ../DEC.cxx \ ../ElementLocator.cxx \ ../InterpolationMatrix.cxx \ - ../IntersectionDEC.cxx \ + ../InterpKernelDEC.cxx \ ../MPIProcessorGroup.cxx \ ../MxN_Mapping.cxx \ ../ParaFIELD.cxx \ diff --git a/src/ParaMEDMEM/StructuredCoincidentDEC.cxx b/src/ParaMEDMEM/StructuredCoincidentDEC.cxx index e62add48c..2f0f03b1f 100644 --- a/src/ParaMEDMEM/StructuredCoincidentDEC.cxx +++ b/src/ParaMEDMEM/StructuredCoincidentDEC.cxx @@ -47,7 +47,7 @@ namespace ParaMEDMEM The remapping between the two supports is based on identity of global ids, instead of geometrical considerations as it is the case for - NonCoincidentDEC and IntersectionDEC. Therefore, this DEC must not be used + NonCoincidentDEC and InterpKernelDEC. Therefore, this DEC must not be used for coincident meshes that do not have the same numbering. As all the other DECs, its use is made of two phases : diff --git a/src/ParaMEDMEM/Test/Makefile.am b/src/ParaMEDMEM/Test/Makefile.am index ba5d75adc..83fed05c1 100644 --- a/src/ParaMEDMEM/Test/Makefile.am +++ b/src/ParaMEDMEM/Test/Makefile.am @@ -33,7 +33,7 @@ dist_libParaMEDMEMTest_la_SOURCES = \ ParaMEDMEMTest.cxx \ ParaMEDMEMTest_MPIProcessorGroup.cxx \ ParaMEDMEMTest_BlockTopology.cxx \ - ParaMEDMEMTest_IntersectionDEC.cxx \ + ParaMEDMEMTest_InterpKernelDEC.cxx \ ParaMEDMEMTest_StructuredCoincidentDEC.cxx \ ParaMEDMEMTest_MEDLoader.cxx \ ParaMEDMEMTest_ICocoTrio.cxx \ diff --git a/src/ParaMEDMEM/Test/ParaMEDMEMTest.hxx b/src/ParaMEDMEM/Test/ParaMEDMEMTest.hxx index 9e33a62b6..3187eb1db 100644 --- a/src/ParaMEDMEM/Test/ParaMEDMEMTest.hxx +++ b/src/ParaMEDMEM/Test/ParaMEDMEMTest.hxx @@ -35,24 +35,24 @@ class ParaMEDMEMTest : public CppUnit::TestFixture CPPUNIT_TEST(testMPIProcessorGroup_rank); CPPUNIT_TEST(testBlockTopology_constructor); CPPUNIT_TEST(testBlockTopology_serialize); - CPPUNIT_TEST(testIntersectionDEC_2D); - CPPUNIT_TEST(testIntersectionDEC_2DP0P1); - CPPUNIT_TEST(testIntersectionDEC_3D); - CPPUNIT_TEST(testIntersectionDECNonOverlapp_2D_P0P0); - CPPUNIT_TEST(testIntersectionDECNonOverlapp_2D_P0P1P1P0); + CPPUNIT_TEST(testInterpKernelDEC_2D); + CPPUNIT_TEST(testInterpKernelDEC_2DP0P1); + CPPUNIT_TEST(testInterpKernelDEC_3D); + CPPUNIT_TEST(testInterpKernelDECNonOverlapp_2D_P0P0); + CPPUNIT_TEST(testInterpKernelDECNonOverlapp_2D_P0P1P1P0); - CPPUNIT_TEST(testSynchronousEqualIntersectionWithoutInterpNativeDEC_2D); - CPPUNIT_TEST(testSynchronousEqualIntersectionWithoutInterpDEC_2D); - CPPUNIT_TEST(testSynchronousEqualIntersectionDEC_2D); - CPPUNIT_TEST(testSynchronousFasterSourceIntersectionDEC_2D); - CPPUNIT_TEST(testSynchronousSlowerSourceIntersectionDEC_2D); - CPPUNIT_TEST(testSynchronousSlowSourceIntersectionDEC_2D); - CPPUNIT_TEST(testSynchronousFastSourceIntersectionDEC_2D); - CPPUNIT_TEST(testAsynchronousEqualIntersectionDEC_2D); - CPPUNIT_TEST(testAsynchronousFasterSourceIntersectionDEC_2D); - CPPUNIT_TEST(testAsynchronousSlowerSourceIntersectionDEC_2D); - CPPUNIT_TEST(testAsynchronousSlowSourceIntersectionDEC_2D); - CPPUNIT_TEST(testAsynchronousFastSourceIntersectionDEC_2D); + CPPUNIT_TEST(testSynchronousEqualInterpKernelWithoutInterpNativeDEC_2D); + CPPUNIT_TEST(testSynchronousEqualInterpKernelWithoutInterpDEC_2D); + CPPUNIT_TEST(testSynchronousEqualInterpKernelDEC_2D); + CPPUNIT_TEST(testSynchronousFasterSourceInterpKernelDEC_2D); + CPPUNIT_TEST(testSynchronousSlowerSourceInterpKernelDEC_2D); + CPPUNIT_TEST(testSynchronousSlowSourceInterpKernelDEC_2D); + CPPUNIT_TEST(testSynchronousFastSourceInterpKernelDEC_2D); + CPPUNIT_TEST(testAsynchronousEqualInterpKernelDEC_2D); + CPPUNIT_TEST(testAsynchronousFasterSourceInterpKernelDEC_2D); + CPPUNIT_TEST(testAsynchronousSlowerSourceInterpKernelDEC_2D); + CPPUNIT_TEST(testAsynchronousSlowSourceInterpKernelDEC_2D); + CPPUNIT_TEST(testAsynchronousFastSourceInterpKernelDEC_2D); #ifdef MED_ENABLE_FVM //can be added again after FVM correction for 2D // CPPUNIT_TEST(testNonCoincidentDEC_2D); @@ -81,29 +81,29 @@ public: void testMPIProcessorGroup_rank(); void testBlockTopology_constructor(); void testBlockTopology_serialize(); - void testIntersectionDEC_2D(); - void testIntersectionDEC_2DP0P1(); - void testIntersectionDEC_3D(); - void testIntersectionDECNonOverlapp_2D_P0P0(); - void testIntersectionDECNonOverlapp_2D_P0P1P1P0(); + void testInterpKernelDEC_2D(); + void testInterpKernelDEC_2DP0P1(); + void testInterpKernelDEC_3D(); + void testInterpKernelDECNonOverlapp_2D_P0P0(); + void testInterpKernelDECNonOverlapp_2D_P0P1P1P0(); #ifdef MED_ENABLE_FVM void testNonCoincidentDEC_2D(); void testNonCoincidentDEC_3D(); #endif void testStructuredCoincidentDEC(); - void testSynchronousEqualIntersectionWithoutInterpNativeDEC_2D(); - void testSynchronousEqualIntersectionWithoutInterpDEC_2D(); - void testSynchronousEqualIntersectionDEC_2D(); - void testSynchronousFasterSourceIntersectionDEC_2D(); - void testSynchronousSlowerSourceIntersectionDEC_2D(); - void testSynchronousSlowSourceIntersectionDEC_2D(); - void testSynchronousFastSourceIntersectionDEC_2D(); + void testSynchronousEqualInterpKernelWithoutInterpNativeDEC_2D(); + void testSynchronousEqualInterpKernelWithoutInterpDEC_2D(); + void testSynchronousEqualInterpKernelDEC_2D(); + void testSynchronousFasterSourceInterpKernelDEC_2D(); + void testSynchronousSlowerSourceInterpKernelDEC_2D(); + void testSynchronousSlowSourceInterpKernelDEC_2D(); + void testSynchronousFastSourceInterpKernelDEC_2D(); - void testAsynchronousEqualIntersectionDEC_2D(); - void testAsynchronousFasterSourceIntersectionDEC_2D(); - void testAsynchronousSlowerSourceIntersectionDEC_2D(); - void testAsynchronousSlowSourceIntersectionDEC_2D(); - void testAsynchronousFastSourceIntersectionDEC_2D(); + void testAsynchronousEqualInterpKernelDEC_2D(); + void testAsynchronousFasterSourceInterpKernelDEC_2D(); + void testAsynchronousSlowerSourceInterpKernelDEC_2D(); + void testAsynchronousSlowSourceInterpKernelDEC_2D(); + void testAsynchronousFastSourceInterpKernelDEC_2D(); // void testICocoTrio1(); void testGauthier1(); @@ -124,11 +124,11 @@ private: const std::string& filename2, const std::string& meshname2, int nbprocsource, double epsilon); - void testAsynchronousIntersectionDEC_2D(double dtA, double tmaxA, + void testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA, double dtB, double tmaxB, bool WithPointToPoint, bool Asynchronous, bool WithInterp, const char *srcMeth, const char *targetMeth); - void testIntersectionDEC_2D_(const char *srcMeth, const char *targetMeth); - void testIntersectionDEC_3D_(const char *srcMeth, const char *targetMeth); + void testInterpKernelDEC_2D_(const char *srcMeth, const char *targetMeth); + void testInterpKernelDEC_3D_(const char *srcMeth, const char *targetMeth); }; // to automatically remove temporary files from disk diff --git a/src/ParaMEDMEM/Test/ParaMEDMEMTest_Gauthier1.cxx b/src/ParaMEDMEM/Test/ParaMEDMEMTest_Gauthier1.cxx index b104583af..c20eb5904 100644 --- a/src/ParaMEDMEM/Test/ParaMEDMEMTest_Gauthier1.cxx +++ b/src/ParaMEDMEM/Test/ParaMEDMEMTest_Gauthier1.cxx @@ -6,7 +6,7 @@ #include "ProcessorGroup.hxx" #include "MPIProcessorGroup.hxx" #include "DEC.hxx" -#include "IntersectionDEC.hxx" +#include "InterpKernelDEC.hxx" #include #include #include "ICoCoTrioField.hxx" @@ -208,7 +208,7 @@ void ParaMEDMEMTest::testGauthier1() for (int send=0;send<2;send++) for (int rec=0;rec<2;rec++) { - IntersectionDEC dec_emetteur(emetteur_group, recepteur_group); + InterpKernelDEC dec_emetteur(emetteur_group, recepteur_group); dec_emetteur.setOrientation(2); TrioField champ_emetteur, champ_recepteur; diff --git a/src/ParaMEDMEM/Test/ParaMEDMEMTest_ICocoTrio.cxx b/src/ParaMEDMEM/Test/ParaMEDMEMTest_ICocoTrio.cxx index 70174206b..25f7a3da7 100644 --- a/src/ParaMEDMEM/Test/ParaMEDMEMTest_ICocoTrio.cxx +++ b/src/ParaMEDMEM/Test/ParaMEDMEMTest_ICocoTrio.cxx @@ -4,7 +4,7 @@ #include "ProcessorGroup.hxx" #include "MPIProcessorGroup.hxx" #include "DEC.hxx" -#include "IntersectionDEC.hxx" +#include "InterpKernelDEC.hxx" #include #include #include "ICoCoTrioField.hxx" @@ -173,7 +173,7 @@ void ParaMEDMEMTest::testICocoTrio1() else cas="emetteur"; - IntersectionDEC dec_emetteur(emetteur_group, recepteur_group); + InterpKernelDEC dec_emetteur(emetteur_group, recepteur_group); TrioField champ_emetteur, champ_recepteur; diff --git a/src/ParaMEDMEM/Test/ParaMEDMEMTest_IntersectionDEC.cxx b/src/ParaMEDMEM/Test/ParaMEDMEMTest_InterpKernelDEC.cxx similarity index 92% rename from src/ParaMEDMEM/Test/ParaMEDMEMTest_IntersectionDEC.cxx rename to src/ParaMEDMEM/Test/ParaMEDMEMTest_InterpKernelDEC.cxx index d2fa7abde..cfaef00ff 100644 --- a/src/ParaMEDMEM/Test/ParaMEDMEMTest_IntersectionDEC.cxx +++ b/src/ParaMEDMEM/Test/ParaMEDMEMTest_InterpKernelDEC.cxx @@ -25,7 +25,7 @@ #include "Topology.hxx" #include "DEC.hxx" #include "MxN_Mapping.hxx" -#include "IntersectionDEC.hxx" +#include "InterpKernelDEC.hxx" #include "ParaMESH.hxx" #include "ParaFIELD.hxx" #include "ComponentTopology.hxx" @@ -45,33 +45,33 @@ using namespace std; using namespace ParaMEDMEM; -void ParaMEDMEMTest::testIntersectionDEC_2D() +void ParaMEDMEMTest::testInterpKernelDEC_2D() { - testIntersectionDEC_2D_("P0","P0"); + testInterpKernelDEC_2D_("P0","P0"); } -void ParaMEDMEMTest::testIntersectionDEC_3D() +void ParaMEDMEMTest::testInterpKernelDEC_3D() { - testIntersectionDEC_3D_("P0","P0"); + testInterpKernelDEC_3D_("P0","P0"); } -void ParaMEDMEMTest::testIntersectionDEC_2DP0P1() +void ParaMEDMEMTest::testInterpKernelDEC_2DP0P1() { - //testIntersectionDEC_2D_("P0","P1"); + //testInterpKernelDEC_2D_("P0","P1"); } /* - * Check methods defined in IntersectionDEC.hxx + * Check methods defined in InterpKernelDEC.hxx * - IntersectionDEC(); - IntersectionDEC(ProcessorGroup& local_group, ProcessorGroup& distant_group); - virtual ~IntersectionDEC(); + InterpKernelDEC(); + InterpKernelDEC(ProcessorGroup& local_group, ProcessorGroup& distant_group); + virtual ~InterpKernelDEC(); void synchronize(); void recvData(); void sendData(); */ -void ParaMEDMEMTest::testIntersectionDEC_2D_(const char *srcMeth, const char *targetMeth) +void ParaMEDMEMTest::testInterpKernelDEC_2D_(const char *srcMeth, const char *targetMeth) { std::string srcM(srcMeth); std::string targetM(targetMeth); @@ -102,7 +102,7 @@ void ParaMEDMEMTest::testIntersectionDEC_2D_(const char *srcMeth, const char *ta //loading the geometry for the source group - ParaMEDMEM::IntersectionDEC dec (*source_group,*target_group); + ParaMEDMEM::InterpKernelDEC dec (*source_group,*target_group); ParaMEDMEM::MEDCouplingUMesh* mesh; ParaMEDMEM::ParaMESH* paramesh; @@ -274,10 +274,10 @@ void ParaMEDMEMTest::testIntersectionDEC_2D_(const char *srcMeth, const char *ta delete icocofield; MPI_Barrier(MPI_COMM_WORLD); - cout << "end of IntersectionDEC_2D test"<getField()->setNature(ConservativeVolumic); if (source_group->containsMyRank()) { @@ -633,7 +633,7 @@ void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P0() CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[1],res[1],1e-13); } //test 2 - Integral - ParaMEDMEM::IntersectionDEC dec2(*source_group,*target_group); + ParaMEDMEM::InterpKernelDEC dec2(*source_group,*target_group); parafield->getField()->setNature(Integral); if (source_group->containsMyRank()) { @@ -656,7 +656,7 @@ void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P0() CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[1],res[1],1e-13); } //test 3 - Integral with global constraint - ParaMEDMEM::IntersectionDEC dec3(*source_group,*target_group); + ParaMEDMEM::InterpKernelDEC dec3(*source_group,*target_group); parafield->getField()->setNature(IntegralGlobConstraint); if (source_group->containsMyRank()) { @@ -679,7 +679,7 @@ void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P0() CPPUNIT_ASSERT_DOUBLES_EQUAL(expected[1],res[1],1e-13); } //test 4 - Conservative volumic reversed - ParaMEDMEM::IntersectionDEC dec4(*source_group,*target_group); + ParaMEDMEM::InterpKernelDEC dec4(*source_group,*target_group); parafield->getField()->setNature(ConservativeVolumic); if (source_group->containsMyRank()) { @@ -706,7 +706,7 @@ void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P0() dec4.sendData(); } //test 5 - Integral reversed - ParaMEDMEM::IntersectionDEC dec5(*source_group,*target_group); + ParaMEDMEM::InterpKernelDEC dec5(*source_group,*target_group); parafield->getField()->setNature(Integral); if (source_group->containsMyRank()) { @@ -733,7 +733,7 @@ void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P0() dec5.sendData(); } //test 6 - Integral with global constraint reversed - ParaMEDMEM::IntersectionDEC dec6(*source_group,*target_group); + ParaMEDMEM::InterpKernelDEC dec6(*source_group,*target_group); parafield->getField()->setNature(IntegralGlobConstraint); if (source_group->containsMyRank()) { @@ -770,7 +770,7 @@ void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P0() MPI_Barrier(MPI_COMM_WORLD); } -void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P1P1P0() +void ParaMEDMEMTest::testInterpKernelDECNonOverlapp_2D_P0P1P1P0() { int size; int rank; @@ -928,7 +928,7 @@ void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P1P1P0() parafieldP1->getField()->setNature(ConservativeVolumic); } // test 1 - P0 P1 - ParaMEDMEM::IntersectionDEC dec(*source_group,*target_group); + ParaMEDMEM::InterpKernelDEC dec(*source_group,*target_group); if (source_group->containsMyRank()) { dec.setMethod("P0"); @@ -998,7 +998,7 @@ void ParaMEDMEMTest::testIntersectionDECNonOverlapp_2D_P0P1P1P0() * one sends data with dtA as an interval, the max time being tmaxA * the other one receives with dtB as an interval, the max time being tmaxB */ -void ParaMEDMEMTest::testAsynchronousIntersectionDEC_2D(double dtA, double tmaxA, +void ParaMEDMEMTest::testAsynchronousInterpKernelDEC_2D(double dtA, double tmaxA, double dtB, double tmaxB, bool WithPointToPoint, bool Asynchronous, bool WithInterp, const char *srcMeth, const char *targetMeth) { @@ -1031,7 +1031,7 @@ void ParaMEDMEMTest::testAsynchronousIntersectionDEC_2D(double dtA, double tmaxA //loading the geometry for the source group - ParaMEDMEM::IntersectionDEC dec (*source_group,*target_group); + ParaMEDMEM::InterpKernelDEC dec (*source_group,*target_group); ParaMEDMEM::MEDCouplingUMesh* mesh; ParaMEDMEM::ParaMESH* paramesh; @@ -1151,7 +1151,7 @@ void ParaMEDMEMTest::testAsynchronousIntersectionDEC_2D(double dtA, double tmaxA dec.setForcedRenormalization(false); for (double time=0; time times; for (double time=0; timegetVolumeIntegral(0); - cout << "testAsynchronousIntersectionDEC_2D" << rank << " time " << time + cout << "testAsynchronousInterpKernelDEC_2D" << rank << " time " << time << " VolumeIntegral " << vi << " time*10000 " << time*10000 << endl ; @@ -1208,8 +1208,8 @@ void ParaMEDMEMTest::testAsynchronousIntersectionDEC_2D(double dtA, double tmaxA mesh->decrRef() ; delete icocofield ; - cout << "testAsynchronousIntersectionDEC_2D" << rank << " MPI_Barrier " << endl ; + cout << "testAsynchronousInterpKernelDEC_2D" << rank << " MPI_Barrier " << endl ; if (Asynchronous) MPI_Barrier(MPI_COMM_WORLD); - cout << "end of IntersectionDEC_2D test"<