]> SALOME platform Git repositories - modules/med.git/commitdiff
Salome HOME
Final version V2_0_1 whicjh work with Med File V2.1
authornadir <nadir>
Thu, 14 Oct 2004 08:19:59 +0000 (08:19 +0000)
committernadir <nadir>
Thu, 14 Oct 2004 08:19:59 +0000 (08:19 +0000)
26 files changed:
src/MEDMEM/INTERPOLATION/MEDMEM_Interpolation.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationHighLevelObjects.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationHighLevelObjects.hxx.old [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationTools.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_Mapping.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_MappingTools.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_WrapperCells.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_WrapperConnectivity.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_WrapperField.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_WrapperMesh.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_WrapperNodes.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_dTree.hxx [deleted file]
src/MEDMEM/INTERPOLATION/MEDMEM_dTreeSommet.hxx [deleted file]
src/MEDMEM/INTERPOLATION/Makefile.in [deleted file]
src/MEDMEM/INTERPOLATION/UseCaseInterpolationts.cxx [deleted file]
src/MEDMEM/INTERPOLATION/UseCaseInterpolationwots.cxx [deleted file]
src/MEDMEM/INTERPOLATION/UseCaseMapping.cxx [deleted file]
src/MEDMEM/INTERPOLATION/UseCaseWrapper_Maillage.cxx [deleted file]
src/MEDMEM/INTERPOLATION/UseCasedTree.cxx [deleted file]
src/MEDMEM/INTERPOLATION/create_mesh_interpolation.c [deleted file]
src/MEDMEM/INTERPOLATION/test_MEDMEM_Interpolation.cxx [deleted file]
src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationFlipBack.cxx [deleted file]
src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationFromMesh_toMesh.cxx [deleted file]
src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationRecopieMaillage.cxx [deleted file]
src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationSansRecopieMaillage.cxx [deleted file]
src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationTimeStep.cxx [deleted file]

diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_Interpolation.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_Interpolation.hxx
deleted file mode 100644 (file)
index d9aea1d..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-# ifndef INTERPOLATION_HXX
-# define INTERPOLATION_HXX
-
-//template < class T> class FIELD;
-//template < int > class Wrapper_Nuage;
-//template < int > class Wrapper_Noeud;
-//template <class ,class ,int ,int > class dTree;
-
-#include <vector>
-#include "utilities.h"
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_InterpolationHighLevelObjects.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Field.hxx"
-
-namespace MEDMEM {
-class MESH;
-
-template <int DIMENSION=3> class INTERPOLATION
-{
-protected:
-
-  FIELD<double> *                _fromField;
-  FIELD<double> *                _toField;
-  MESH   *                        _fromMesh;
-  MESH   *                        _toMesh;
-  
-  Meta_Wrapper<DIMENSION>  *      _fromWrapper;
-  Meta_Wrapper<DIMENSION>  *      _toWrapper;
-  
-  Meta_Mapping <DIMENSION> *      _mapping;
-
-// only used when multi timestep are interpolated
-// but always coherent
-  int                            _iType;
-  int                            _isConvexFromMesh;
-  
-public :
-
-  void init();
-
-  // Initialize INTERPOLATION in order to get : 
-  // 1- the node number in the MESH  <fromMesh> which
-  //     is the nearest from a given one ( use method : getNearestNode( double * node ) ); 
-  // 2- the cell number (if exists) in the MESH <fromMesh> which
-  //     contains a specified node ( use method : getContainingCell ( double * node) )
-  INTERPOLATION(const MESH & fromMesh ); 
-  // Initialize INTERPOLATION in order to get :
-  // 1- the complete mapping ( use methode : getMapping() )
-  // 2- the functionalities above 
-  INTERPOLATION(const MESH & fromMesh,const MESH & toMesh ); 
-  // Initialize INTERPOLATION in order to get the interpolation of <field> on <toMesh>
-  // Moreover, all the others functionalities are so available
-  INTERPOLATION(const FIELD<double> & fromField, const MESH & toMesh);
-
-  ~INTERPOLATION( ); 
-
-  //  Get the node number in the MESH  <fromMesh> which is the nearest from a given one
-  int getNearestNode    ( double * node );
-  //  Get the cell number (if exists) in the MESH <fromMesh> which contains a specified node 
-  int getContainingCell ( double * node , int beginingCell=0, int flagIsConvexMesh=0 );
-  // Get the complete mapping, defaultly, fromMesh is supposed to be non-convex, if it is false, set flagIsConvexMesh to 1
-  vector<int> getMapping ( int flagIsConvexMesh=0 );
-  // Get the interpolated field toField
-  FIELD<double> * interpolate( /*med_interpolation_type*/ int itype,int flagIsConvexFromMesh=0);
-  // reset the <from> parameters in order not to redo the mapping (if the mesh are identical)
-  // and then get the interpoated field toField
-  // this method is specifictly used on multi-timestep (or order number) fields
-  // it has only to be used after the first step, the interpolation paramaters are the same for every step
-  FIELD<double> * interpolateNextStep(const FIELD <double> &nextFromField ,int & flagNewMapping);
-
-};
-
-template <int DIMENSION> void INTERPOLATION<DIMENSION>::init() {
-
-  const char * LOC = "INTERPOLATION::init(): ";
-
-  BEGIN_OF(LOC);
-  _fromField   = ( FIELD<double> * )           NULL;
-  _toField     = ( FIELD<double> * )           NULL;
-  _fromMesh    = ( MESH * )                    NULL;
-  _toMesh      = ( MESH * )                    NULL;
-  _fromWrapper = ( Meta_Wrapper<DIMENSION> * ) NULL;
-  _toWrapper   = ( Meta_Wrapper<DIMENSION> * ) NULL;
-  _mapping     = ( Meta_Mapping<DIMENSION> * ) NULL;
-  _iType            = UNDEFINED ;
-  _isConvexFromMesh = UNDEFINED ;
-  END_OF(LOC);
-}
-
-
-template <int DIMENSION> INTERPOLATION<DIMENSION>::INTERPOLATION(const MESH & fromMesh ) {
-
-  const char * LOC = "INTERPOLATION::INTERPOLATION(MESH * fromMesh ) : ";
-  BEGIN_OF(LOC);
-  
-  init();      
-  
-  _fromMesh=const_cast<MESH * > (&fromMesh);
-  
-  if (! _fromMesh ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"fromMesh is a NULL pointer  !")) ;
-  
-  int spaceDimension = _fromMesh->getSpaceDimension();
-  if (spaceDimension != DIMENSION ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"The spaceDimension of mesh |" << _fromMesh->getName() << "| is |" << spaceDimension << "| and should be |" << DIMENSION << "|" << endl)) ;
-
-  _fromWrapper = new Meta_Wrapper<DIMENSION>(_fromMesh->getNumberOfNodes(),
-                                             const_cast<double *> (_fromMesh->getCoordinates(MED_FULL_INTERLACE)),
-                                            const_cast<CONNECTIVITY *> (_fromMesh->getConnectivityptr())
-                                            );
-
-  _mapping     = new  Meta_Mapping<DIMENSION> (_fromWrapper);
-                                               
-  END_OF(LOC);
-}; 
-
-template <int DIMENSION> INTERPOLATION<DIMENSION>::INTERPOLATION(const MESH & fromMesh,const MESH & toMesh ) {
-
-  const char * LOC = "INTERPOLATION::INTERPOLATION(MESH * fromMesh,,const MESH & toMesh) : ";
-  BEGIN_OF(LOC);
-  
-  init();      
-  
-  _fromMesh = const_cast<MESH * > ( &fromMesh );
-  _toMesh   = const_cast<MESH * > ( &toMesh   );
-  
-  if (! _fromMesh ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"fromMesh is a NULL pointer  !")) ;
-  if (! _toMesh   ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"toMesh   is a NULL pointer  !")) ;
-  
-  int fromSpaceDimension = _fromMesh->getSpaceDimension();
-  int toSpaceDimension   =   _toMesh->getSpaceDimension();
-  
-  if (fromSpaceDimension != DIMENSION ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"The spaceDimension of mesh |" << _fromMesh->getName() << "| is |" << spaceDimension << "| and should be |" << DIMENSION << "|" << endl)) ;
-  if (  toSpaceDimension != DIMENSION ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"The spaceDimension of mesh |" <<   _toMesh->getName() << "| is |" << spaceDimension << "| and should be |" << DIMENSION << "|" << endl)) ;
-  _fromWrapper = new Meta_Wrapper<DIMENSION>(_fromMesh->getNumberOfNodes(),
-                                             const_cast<double *> (_fromMesh->getCoordinates(MED_FULL_INTERLACE)),
-                                            const_cast<CONNECTIVITY *> (_fromMesh->getConnectivityptr())
-                                            );
-
-  _toWrapper   = new Meta_Wrapper<DIMENSION>(_toMesh->getNumberOfNodes(),
-                                             const_cast<double *> (_toMesh->getCoordinates(MED_FULL_INTERLACE))
-                                            );
-
-  _mapping     = new  Meta_Mapping<DIMENSION> (_fromWrapper);
-                                               
-  END_OF(LOC);
-};
-
-template <int DIMENSION> INTERPOLATION<DIMENSION>::INTERPOLATION(const FIELD<double> & fromField,const MESH & toMesh) {
-
-  const char * LOC = "INTERPOLATION(const FIELD<double> & field,const MESH & toMesh) : ";
-  BEGIN_OF(LOC);
-  
-  init();
-
-  _toMesh    = const_cast<MESH *>(&toMesh);
-  _fromField = const_cast<FIELD<double> *>(&fromField);
-
-  if ( ! _toMesh    )  throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"toMesh is a NULL pointer  !")) ;
-  if ( ! _fromField )  throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"field is a NULL pointer  !")) ;
-
-  _fromMesh = _fromField->getSupport()->getMesh();
-  
-  if ( ! _fromMesh    )  throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"fromMesh is a NULL pointer  !")) ;
-
-  _fromWrapper = new Meta_Wrapper<DIMENSION>(_fromMesh->getNumberOfNodes(),
-                                             const_cast<double *> (_fromMesh->getCoordinates(MED_FULL_INTERLACE)),
-                                            const_cast<CONNECTIVITY *> (_fromMesh->getConnectivityptr()),
-                                            const_cast<FIELD<double> *>(_fromField)
-                                            );
-                                            
-                                            
-  _toWrapper   = new Meta_Wrapper<DIMENSION>(_toMesh->getNumberOfNodes(),
-                                             const_cast<double *> (_toMesh->getCoordinates(MED_FULL_INTERLACE))
-                                            );  
-
-  
-  _mapping     = new  Meta_Mapping<DIMENSION> (_fromWrapper);
-  
-                                         
-  END_OF(LOC);
-};
-
-template <int DIMENSION> INTERPOLATION<DIMENSION>::~INTERPOLATION()
-{
-  if ( _fromWrapper  ) delete _fromWrapper ;    
-  if ( _toWrapper    ) delete _toWrapper   ;    
-  if ( _mapping      ) delete _mapping     ;
-};
-
-template <int DIMENSION> int INTERPOLATION<DIMENSION>::getNearestNode(  double * node ) {
-  
-  const char * LOC = "INTERPOLATION::getNearestNode( double * node ) ";
-
-  BEGIN_OF(LOC);
-  
-  if ( ! _mapping ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"mapping is a NULL pointer  !")) ;
-  
-  return _mapping->Donne_dTree()->trouve_plus_proche_point(Wrapper_Noeud<DIMENSION > (node) );
-  
-  END_OF(LOC);
-
-};
-
-template <int DIMENSION> int INTERPOLATION<DIMENSION>::getContainingCell ( double * node , int beginingCell, int flagIsConvexMesh ) {
-  
-  const char * LOC = "INTERPOLATION::getContainingCell( double * node ) ";
-
-  BEGIN_OF(LOC);
-  
-  if ( ! _mapping ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"mapping is a NULL pointer  !")) ;
-
-  _isConvexFromMesh=flagIsConvexMesh;
-
-  _mapping->Cree_Mapping(_toWrapper,_isConvexFromMesh);
-
-  return _mapping->Trouve_Maille_Contenant_Noeud(node,beginingCell,flagIsConvexMesh);
-  
-  END_OF(LOC);
-
-};
-
-template <int DIMENSION> vector<int> INTERPOLATION<DIMENSION>::getMapping ( int flagIsConvexMesh ) {
-  
-  const char * LOC = "INTERPOLATION::getMapping( ) ";
-
-  BEGIN_OF(LOC);
-
-  if ( ! _mapping   ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"mapping is a NULL pointer  !")) ;
-  if ( ! _toWrapper ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"toWrapper  is a NULL pointer  !")) ;
-
-  _isConvexFromMesh=flagIsConvexMesh;
-
-  _mapping->Cree_Mapping(_toWrapper,_isConvexFromMesh);
-
-  return _mapping->Get_Mapping();
-  
-  END_OF(LOC);
-
-};
-
-template <int DIMENSION> FIELD<double> * INTERPOLATION<DIMENSION>::interpolate(int itype,int flagIsConvexFromMesh) {
-  
-  const char * LOC = "INTERPOLATION::interpolate(int itype,int flagIsConvexFromMesh) ";
-
-  BEGIN_OF(LOC);
-
-  if ( ! _mapping      ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"mapping is a NULL pointer  !")) ;
-  if ( ! _toWrapper    ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"toWrapper  is a NULL pointer  !")) ;
-  if ( ! _fromField    ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"fromField  is a NULL pointer  !")) ;
-
-  _iType=itype;
-
-  _isConvexFromMesh=flagIsConvexFromMesh;
-
-  _mapping->Cree_Mapping(_toWrapper,_isConvexFromMesh);
-  
-  Wrapper_Nuage_Noeud<DIMENSION> * toNodes = _toWrapper->Get_Nuage_Noeuds();
-  
-  Wrapper_MED_Field resultat;
-  
-  /*
-  cout<<"Mapping"<<endl;
-  _mapping->affiche();
-  cout<<"Mailles"<<endl;
-  _fromWrapper->Get_Maillage()->DONNE_POINTEUR_NUAGEMAILLE()->affiche();
-  cout<<"Noeuds"<<endl;
-  _fromWrapper->Get_Nuage_Noeuds()->affiche();
-  */
-  
-  switch (_iType)
-    {
-    case 0 : // INTERPOLATION P0
-      cout<<"Avant ="<<endl;
-      resultat=Meta_Interpolateur< Meta_Calcul_Interpolation_P0<DIMENSION>,DIMENSION >(_mapping,_fromWrapper).Perform_Interpolation(toNodes);
-      break;
-    case 1 : // INTERPOLATION P-Hybride (Interpole avec la fonction d'interpolation naturelle de la maille contenant le point)
-      resultat=Meta_Interpolateur< Meta_Calcul_Interpolation_Hybride<DIMENSION>,DIMENSION >(_mapping,_fromWrapper).Perform_Interpolation(toNodes);
-      break;
-    case 2 : // INTERPOLATION (P/Q) 1 forcée (Interpole avec la fonction élément fini de la maille de degré 1 -meme si la maille est de degré supérieur-)
-      resultat=Meta_Interpolateur< Meta_Calcul_Interpolation_Hybride_P1<DIMENSION>, DIMENSION >(_mapping,_fromWrapper).Perform_Interpolation(toNodes);
-      break;
-    default : 
-      throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"Interpolation type "<<itype<<" not yet implemented !")) ;
-    }
-
-  cout<<"On a fini l'interpolation"<<endl;     
-
-  _toField = new FIELD<double>;
-  
-  _toField->setName                  ( _fromField->getName()                   );
-  _toField->setDescription           ( _fromField->getDescription()            );
-  _toField->setNumberOfComponents     ( _fromField->getNumberOfComponents()    );
-  _toField->setNumberOfValues        ( _toMesh   ->getNumberOfNodes()          );
-  _toField->setComponentsNames        ( _fromField->getComponentsNames()        );
-  _toField->setComponentsDescriptions ( _fromField->getComponentsDescriptions() );
-  _toField->setMEDComponentsUnits     ( _fromField->getMEDComponentsUnits()    );
-  _toField->setIterationNumber        ( _fromField->getIterationNumber()        );
-  _toField->setTime                  ( _fromField->getTime()                   );
-  _toField->setOrderNumber           ( _fromField->getOrderNumber()            );
-  _toField->setValueType             ( MED_EN::MED_REEL64                      );
-
-  SUPPORT * mySupport(new SUPPORT(_toMesh,"support",MED_NODE));
-  _toField->setSupport(mySupport);  
-  
-  _toField->allocValue(_toField->getNumberOfComponents(),_toField->getNumberOfValues());
-    
-  _toField->setValue(MED_FULL_INTERLACE,resultat.Get_Valeurs());
-  _toWrapper->Construit_Wrapper_Champ(_toField);
-
-  return _toField;
-  
-  END_OF(LOC);
-
-};
-
-template <int DIMENSION> FIELD<double> * INTERPOLATION<DIMENSION>::interpolateNextStep(const FIELD <double> & nextFromField, int & flagNewMapping) {
-  
-  const char * LOC = "INTERPOLATION::interpolateNextStep(int itype,int flagIsConvexFromMesh) ";
-
-  BEGIN_OF(LOC);
-
-  if ( ! _mapping      ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"mapping is a NULL pointer  !"        ));
-  if ( ! _toWrapper    ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"toWrapper  is a NULL pointer  !"     )) ;
-  if ( ! _fromWrapper  ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"fromWrapper  is a NULL pointer  !"   )) ;  
-  if ( ! _fromField    ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"fromField  is a NULL pointer  !"     )) ;
-  
-  
-  if ( ! _toField                   ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"toField  is a NULL pointer, wrong use of interpolateNextStep"       )) ;
-  if ( _iType==UNDEFINED            ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"_iType is not defined, wrong use of interpolateNextStep"            )) ;
-  if ( _isConvexFromMesh==UNDEFINED ) throw MEDEXCEPTION(LOCALIZED(STRING(LOC)<<"_isConvexFromMesh is not defined, wrong use of interpolateNextStep" )) ;  
-
-  // delete _toField; ????????????????????????????
-
-  // if the mesh are identical, the mapping is the same, if not, the mapping has to be re-calculated
-  if (nextFromField.getSupport()->getMesh()->getName()!=_fromMesh->getName())
-       {
-       
-       flagNewMapping=1;
-       
-       delete _mapping;
-       delete _fromWrapper;
-
-        _fromField = const_cast<FIELD<double> *>(&nextFromField);
-
-        _fromMesh = _fromField->getSupport()->getMesh();
-
-       _fromWrapper = new Meta_Wrapper<DIMENSION>(_fromMesh->getNumberOfNodes(),
-                                                  const_cast<double *> (_fromMesh->getCoordinates(MED_FULL_INTERLACE)),
-                                                  const_cast<CONNECTIVITY *> (_fromMesh->getConnectivityptr()),
-                                                  const_cast<FIELD<double> *>(_fromField)
-                                                  );
-       _mapping     = new  Meta_Mapping<DIMENSION> (_fromWrapper);
-       
-       _mapping->Cree_Mapping(_toWrapper,_isConvexFromMesh);
-       
-       }
-  else
-       {
-       
-       flagNewMapping=0;
-       
-       _fromField = const_cast<FIELD<double> *>(&nextFromField);
-       _fromWrapper->Change_Champ(const_cast<FIELD<double> *>(_fromField));            
-       }
-  
-  return interpolate(_iType,_isConvexFromMesh);
-
-};
-
-};
-
-#endif
-
-
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationHighLevelObjects.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationHighLevelObjects.hxx
deleted file mode 100644 (file)
index 8d12d90..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-#ifndef MEDMEM_INTERPOLATION_HIGHLEVEL_OBJECTS_HXX
-#define MEDMEM_INTERPOLATION_HIGHLEVEL_OBJECTS_HXX
-
-#include "MEDMEM_Connectivity.hxx"
-#include "MEDMEM_WrapperConnectivity.hxx"
-#include "MEDMEM_dTree.hxx"
-#include "MEDMEM_WrapperNodes.hxx"
-#include "MEDMEM_WrapperMesh.hxx"
-#include "MEDMEM_WrapperCells.hxx"
-#include "MEDMEM_Mapping.hxx"
-#include "MEDMEM_WrapperField.hxx"
-#include "MEDMEM_InterpolationTools.hxx"
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                        DECLARATIONS                        ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-template <int DIMENSION> class Meta_Wrapper;
-
-/*********************************************************/
-/*                                                       */
-/*                    Meta_dTree                         */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION> class Meta_dTree : public dTree<Wrapper_Noeud<DIMENSION>,Wrapper_Nuage_Noeud<DIMENSION>,DIMENSION>
-{
-protected : 
-       // PATCH
-       Wrapper_Nuage_Noeud<DIMENSION> * noeuds;
-       // FIN PATCH
-public :
-       // PATCH
-       Meta_dTree():noeuds(NULL) {}
-       ~Meta_dTree() {if (noeuds) delete noeuds;}
-       Meta_dTree(int nbr_noeuds,double *coord):dTree<Wrapper_Noeud<DIMENSION>,Wrapper_Nuage_Noeud<DIMENSION>,DIMENSION>(noeuds=new Wrapper_Nuage_Noeud<DIMENSION>(nbr_noeuds,coord)) {}
-       inline int trouve_plus_proche_point_bourrin(double *node);
-       // FIN PATCH
-       inline int trouve_plus_proche_point(double * node);
-};
-
-/*********************************************************/
-/*                                                       */
-/*                 Meta_Nuage_Maille                     */
-/*                                                       */
-/*********************************************************/
-
-
-class Meta_Nuage_Maille : public Wrapper_Nuage_Maille<Wrapper_Med_Connectivity>
-{
-protected :
-       Wrapper_Med_Connectivity * connectivite_med;
-public :
-       Meta_Nuage_Maille(CONNECTIVITY * connmed); 
-       Meta_Nuage_Maille():connectivite_med(NULL) {}
-       ~Meta_Nuage_Maille() {if (connectivite_med) delete connectivite_med;}
-};
-
-/*********************************************************/
-/*                                                       */
-/*                    Meta_Maillage                      */
-/*                                                       */
-/*********************************************************/
-
-
-typedef Wrapper_Maillage<Meta_Nuage_Maille> Meta_Maillage;
-
-/*********************************************************/
-/*                                                       */
-/*                    Meta_Mapping                       */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION> class Meta_Mapping : public Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>
-{
-public :
-       Meta_Mapping(Meta_Wrapper<DIMENSION> * MW):Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>(MW->Get_Maillage(),MW->Get_Nuage_Noeuds(),NULL) {}
-       Meta_Mapping(Meta_Wrapper<DIMENSION> * MW,Meta_Wrapper<DIMENSION> * TWB):Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>(MW->Get_Maillage(),MW->Get_Nuage_Noeuds(),TWB->Get_Nuage_Noeuds()) {}
-       // PATCH
-       inline void Cree_Mapping(Meta_Wrapper<DIMENSION> * MWB, int flag_convexe) {Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>::Cree_Mapping(MWB->Get_Nuage_Noeuds(),flag_convexe);} 
-       inline void Cree_Mapping(int flag_convexe) {Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>::Cree_Mapping(flag_convexe);} 
-       inline vector<int> & Get_Mapping() {return Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>::Get_Mapping();} 
-       //FIN PATCH     
-       inline int Trouve_Maille_Contenant_Noeud(double * node,int num_maille, int flag_convexe=0);
-};
-
-/*********************************************************/
-/*                                                       */
-/*                    Meta_Wrapper                       */
-/*                                                       */
-/*********************************************************/
-
-
-template <int DIMENSION> class Meta_Wrapper
-{
-protected :
-       Wrapper_Nuage_Noeud<DIMENSION> * noeuds   ;
-       Meta_Nuage_Maille              * mailles  ;
-       Meta_Maillage                  * maillage ;
-       Wrapper_MED_Field              * champ    ;
-       
-       void init( ){noeuds=NULL;mailles=NULL;maillage=NULL;champ=NULL;}
-public :
-       Meta_Wrapper():noeuds(NULL),mailles(NULL),maillage(NULL),champ(NULL){}
-       ~Meta_Wrapper();
-       inline void Construit_Wrapper_Nuage_Noeud  (     int nn, double * nodes     );
-       inline void Construit_Wrapper_Nuage_Maille (     CONNECTIVITY * connmed     );
-       inline void Construit_Wrapper_Maillage     (            void                );
-       inline void Construit_Wrapper_Champ        ( const FIELD<double> * medfield );
-       Meta_Wrapper(int nn,double *nodes,CONNECTIVITY *connmed, int flag_maillage=1);
-       Meta_Wrapper(int nn,double *nodes);
-       // defaultly, the connectivity (neighbouhood and so like) is built, 
-       // Set flag_mesh to 0 if you don't want these informations to be built
-       Meta_Wrapper(int nn,double *nodes,CONNECTIVITY *connmed, const FIELD<double> * c,int flag_mesh=1);
-       // fonctions d'acces sures
-       inline Wrapper_Nuage_Noeud<DIMENSION> * Get_Nuage_Noeuds  ( void );
-       inline Meta_Nuage_Maille              * Get_Nuage_Mailles ( void );
-       inline Meta_Maillage                  * Get_Maillage      ( void );
-       inline Wrapper_MED_Field              * Get_Champ         ( void );
-       inline void Change_Champ           ( const FIELD<double> * medfield );
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Meta_Calcul_Interpolation_Hybride           */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION> class Meta_Calcul_Interpolation_Hybride : public Calcul_Hybride<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>
-{
-public :
-       Meta_Calcul_Interpolation_Hybride(Meta_Wrapper<DIMENSION> * MW):Calcul_Hybride<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(MW->Get_Nuage_Noeuds(),MW->Get_Nuage_Mailles(),MW->Get_Champ()) {}
-       Valeur<double> operator() (Wrapper_Noeud<DIMENSION> & node, int num_maille){return Calcul_Hybride<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>::operator()(node,num_maille);}
-       Valeur<double> operator() (double * node, int num_maille) 
-               {
-               static Wrapper_Noeud<DIMENSION> tmp;
-               tmp.positionne(node);
-               return Calcul_Hybride<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(tmp,num_maille);
-               }
-};
-
-/*********************************************************/
-/*                                                       */
-/*         Meta_Calcul_Interpolation_Hybride_P1          */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION> class Meta_Calcul_Interpolation_Hybride_P1 : public Calcul_Hybride<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>
-{
-public :
-       Meta_Calcul_Interpolation_Hybride_P1(Meta_Wrapper<DIMENSION> * MW)
-               {
-               
-               Wrapper_Nuage_Noeud<DIMENSION> * nn = MW->Get_Nuage_Noeuds();
-               Meta_Nuage_Maille *              nm = MW->Get_Nuage_Mailles();
-               Wrapper_MED_Field *              c  = MW->Get_Champ();
-               
-               mailles=nm;
-               
-               fonctions[MED_TRIA3  ]=new Calcul_Interpolation_Tria3  <Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(nn,nm,c);
-               fonctions[MED_QUAD4  ]=new Calcul_Interpolation_Quad4  <Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(nn,nm,c);
-               fonctions[MED_TETRA4 ]=new Calcul_Interpolation_Tetra4 <Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(nn,nm,c);
-               fonctions[MED_HEXA8  ]=new Calcul_Interpolation_Hexa8  <Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(nn,nm,c);
-               fonctions[MED_PENTA6 ]=new Calcul_Interpolation_Penta6 <Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(nn,nm,c);
-               fonctions[MED_PYRA5  ]=new Calcul_Interpolation_Pyra5  <Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(nn,nm,c);
-               fonctions[MED_TRIA6  ]=fonctions[MED_TRIA3  ];
-               fonctions[MED_QUAD8  ]=fonctions[MED_QUAD4  ];
-               fonctions[MED_TETRA10]=fonctions[MED_TETRA4 ];
-               fonctions[MED_HEXA20 ]=fonctions[MED_HEXA8  ];
-               fonctions[MED_PENTA15]=fonctions[MED_PENTA6 ];
-               fonctions[MED_PYRA13 ]=fonctions[MED_PYRA5  ];
-               }
-       Valeur<double> operator() (Wrapper_Noeud<DIMENSION> & node, int num_maille){return Calcul_Hybride<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>::operator()(node,num_maille);}
-       Valeur<double> operator() (double * node, int num_maille) 
-               {
-               static Wrapper_Noeud<DIMENSION> tmp;
-               tmp.positionne(node);
-               return Calcul_Hybride<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(tmp,num_maille);
-               }
-};
-
-/*********************************************************/
-/*                                                       */
-/*              Meta_Calcul_Interpolation_P0             */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION> class Meta_Calcul_Interpolation_P0 : public Calcul_Interpolation_P0<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>
-{
-public : 
-       Meta_Calcul_Interpolation_P0(Meta_Wrapper<DIMENSION> * MW):Calcul_Interpolation_P0<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(MW->Get_Nuage_Noeuds(),MW->Get_Nuage_Mailles(),MW->Get_Champ()) {}
-       Valeur<double> operator() (Wrapper_Noeud<DIMENSION> & node, int num_maille){return Calcul_Interpolation_P0<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>::operator()(node,num_maille);}
-       Valeur<double> operator() (double * node, int num_maille) 
-               {
-               static Wrapper_Noeud<DIMENSION> tmp;
-               tmp.positionne(node);
-               return Calcul_Interpolation_P0<Wrapper_MED_Field,Valeur<double>,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,Meta_Nuage_Maille>(tmp,num_maille);
-               }
-};
-
-/*********************************************************/
-/*                                                       */
-/*                   Meta_Interpolateur                  */
-/*                                                       */
-/*********************************************************/
-
-template <class FONCTEUR, int DIMENSION> class Meta_Interpolateur
-{
-protected :
-       FONCTEUR * fct;
-       Meta_Mapping<DIMENSION> * mapping;
-       Meta_Wrapper<DIMENSION> * fromWrapper;
-public : 
-       Meta_Interpolateur():fct(NULL),mapping(NULL),fromWrapper(NULL) {}
-       Meta_Interpolateur(Meta_Mapping<DIMENSION> * map, Meta_Wrapper<DIMENSION> * mw):mapping(map),fromWrapper(mw),fct(new FONCTEUR(mw)){}
-       ~Meta_Interpolateur() {if (fct) delete fct;}
-       Wrapper_MED_Field Perform_Interpolation(Wrapper_Nuage_Noeud<DIMENSION> * toNodes)
-               {
-               int i;
-               
-               int ni=0;
-               int ne=0;
-               
-               int nbr_composantes = fromWrapper->Get_Champ()->Get_Nbr_Composantes();
-               int nbr_valeurs     = toNodes->SIZE();
-  
-               double * valeurs=new double[nbr_valeurs*nbr_composantes];
-               
-               Wrapper_MED_Field resultat(nbr_valeurs,nbr_composantes,valeurs);
-               
-               int nlpp,nmc;
-               
-               for (i=0;i<nbr_valeurs;i++) 
-                       {
-                       //cout<<"Interpolation du noeud "<<i<<flush;
-                       nmc = (*mapping)[i];
-                       //cout<<" | mappé dans la maille "<<nmc<<flush;
-                       //cout<<" | coordonnées = "<<flush<<(*toNodes)[i]<<flush;
-                       if (nmc>=0) 
-                               {
-                               //cout<<" | valeurs qui va etre assignée = "<<flush<<(*fct)((*toNodes)[i],nmc)<<flush;
-                               resultat[i]=(*fct)((*toNodes)[i],nmc);
-                               ni++;
-                               }
-                       else 
-                               {
-                               nlpp = mapping->Get_Noeud_Le_Plus_Proche(i);
-                               //cout<<" | et dont le point le plus proche a pour numéro : "<<nlpp<<flush;
-                               //cout<<" | valeurs qui va etre assignée = "<<(*fromWrapper->Get_Champ())[nlpp]<<flush;
-                               if (nlpp!=UNDEFINED) 
-                                       {
-                                       resultat[i]=(*fromWrapper->Get_Champ())[nlpp];
-                                       ne++;
-                                       }
-                               else
-                                       {
-                                       cerr<<"Meta_Interpolateur : Le noeud "<<i+1<<" n'a ni maille contenante, ni point le plus proche"<<flush;
-                                       exit(-1);
-                                       }
-                               }
-                       //cout<<" | => OK ! "<<endl;
-                       }
-               
-               cout<<"Résultat de l'interpolation : "<<endl;
-               cout<<"Nombre de noeuds intérieurs = "<<ni<<endl;
-               cout<<"Nombre de noeuds extérieurs = "<<ne<<endl;
-                       
-               return resultat;
-               
-               }
-};
-
-
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                            CODE                            ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*                    Meta_dTree                         */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION> inline int Meta_dTree<DIMENSION>::trouve_plus_proche_point(double *node)
-       {
-       static Wrapper_Noeud<DIMENSION> nodetmp;
-       nodetmp.positionne(node);
-       return dTree<Wrapper_Noeud<DIMENSION>,Wrapper_Nuage_Noeud<DIMENSION>,DIMENSION>::trouve_plus_proche_point(Wrapper_Noeud<DIMENSION>(nodetmp));
-       }
-// PATCH
-template <int DIMENSION> inline int Meta_dTree<DIMENSION>::trouve_plus_proche_point_bourrin(double *node)
-       {
-       static Wrapper_Noeud<DIMENSION> nodetmp;
-       nodetmp.positionne(node);
-       return dTree<Wrapper_Noeud<DIMENSION>,Wrapper_Nuage_Noeud<DIMENSION>,DIMENSION>::trouve_plus_proche_point_bourrin(Wrapper_Noeud<DIMENSION>(nodetmp));
-       }
-/*********************************************************/
-/*                                                       */
-/*                 Meta_Nuage_Maille                     */
-/*                                                       */
-/*********************************************************/
-
-Meta_Nuage_Maille::Meta_Nuage_Maille(CONNECTIVITY * conmed):Wrapper_Nuage_Maille<Wrapper_Med_Connectivity>(connectivite_med=new Wrapper_Med_Connectivity(conmed))
-       {
-       }
-
-/*********************************************************/
-/*                                                       */
-/*                    Meta_Mapping                       */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION> inline int Meta_Mapping<DIMENSION>::Trouve_Maille_Contenant_Noeud(double * node,int num_maille,int flag_convexe)
-       {
-       int interdit=num_maille;
-       int max_loop=100;
-       int nme=0;
-       static Wrapper_Noeud<DIMENSION> nodetmp;
-       nodetmp.positionne(node);
-       return Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>::Trouve_Maille_Contenant_Point_Mth_Co(nodetmp,num_maille,interdit,max_loop,nme,flag_convexe);
-       }
-
-/*********************************************************/
-/*                                                       */
-/*                    Meta_Wrapper                       */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION>       Meta_Wrapper<DIMENSION>::~Meta_Wrapper()
-       {
-       if ( noeuds   ) delete  noeuds   ;
-       if ( mailles  ) delete  mailles  ;
-       if ( maillage ) delete  maillage ;
-       if ( champ    ) delete  champ    ;
-       }
-template <int DIMENSION>       inline void Meta_Wrapper<DIMENSION>::Construit_Wrapper_Nuage_Noeud  ( int nn, double * nodes )  
-       {
-       if (nodes) noeuds=new Wrapper_Nuage_Noeud<DIMENSION>(nn,nodes); 
-       else
-               {
-               cerr<<"Meta_Wrapper : Nuage MED_FULL_INTERLACE vide passé en argument au constructeur"<<endl;
-               exit(-1);
-               }
-       }
-template <int DIMENSION>       inline void Meta_Wrapper<DIMENSION>::Construit_Wrapper_Nuage_Maille ( CONNECTIVITY * connmed )  
-       { 
-       if (connmed) mailles=new Meta_Nuage_Maille(connmed);              
-       else
-               {
-               cerr<<"Meta_Wrapper : CONNECTIVITY vide passée en argument au constructeur"<<endl;
-               exit(-1);
-               }
-       }
-template <int DIMENSION>       inline void Meta_Wrapper<DIMENSION>::Construit_Wrapper_Maillage     (         void           )  
-       { 
-       if (mailles==NULL)      
-               {
-               cerr<<"Meta_Wrapper : Le nuage de maille n'a pas été initialisé !"<<endl;
-               exit(-1);
-               }
-       if (noeuds==NULL)       
-               {
-               cerr<<"Meta_Wrapper : Le nuage de noeuds n'a pas été initialisé !"<<endl;
-               exit(-1);
-               }
-       maillage=new Meta_Maillage(mailles,noeuds->SIZE());
-       }
-template <int DIMENSION>       inline void Meta_Wrapper<DIMENSION>::Construit_Wrapper_Champ        ( const FIELD<double> * medfield )
-       {
-       if (medfield) champ=new Wrapper_MED_Field(medfield);
-       else
-               {
-               cerr<<"Meta_Wrapper : FIELD MED vide passé en argument au constructeur"<<endl;
-               exit(-1);
-               }
-       }
-template <int DIMENSION>       inline void Meta_Wrapper<DIMENSION>::Change_Champ           ( const FIELD<double> * medfield )
-       {
-       if (medfield) 
-               {
-               if (champ) delete champ;
-               champ=new Wrapper_MED_Field(medfield);
-               }
-       else
-               {
-               cerr<<"Meta_Wrapper : FIELD MED vide passé en argument Change_Champ"<<endl;
-               exit(-1);
-               }
-       }
-template <int DIMENSION>       Meta_Wrapper<DIMENSION>::Meta_Wrapper(int nn,double *nodes,CONNECTIVITY *connmed, int flag_maillage)
-       {
-       init();
-       Construit_Wrapper_Nuage_Noeud(nn,nodes);
-       Construit_Wrapper_Nuage_Maille(connmed);
-       if (flag_maillage) Construit_Wrapper_Maillage();
-       }
-template <int DIMENSION>       Meta_Wrapper<DIMENSION>::Meta_Wrapper(int nn,double *nodes,CONNECTIVITY *connmed, const FIELD<double> * c,int flag_maillage)
-       {
-       init();
-       Construit_Wrapper_Nuage_Noeud(nn,nodes);
-       Construit_Wrapper_Nuage_Maille(connmed);
-       if (flag_maillage) Construit_Wrapper_Maillage();
-       Construit_Wrapper_Champ(c);
-       }
-template <int DIMENSION>       Meta_Wrapper<DIMENSION>::Meta_Wrapper(int nn,double *nodes)
-       {
-       init();
-       Construit_Wrapper_Nuage_Noeud(nn,nodes);
-       }                       
-template <int DIMENSION>       inline Wrapper_Nuage_Noeud<DIMENSION> * Meta_Wrapper<DIMENSION>::Get_Nuage_Noeuds  ( void ) 
-       {
-       if (noeuds) return noeuds; 
-       else
-               {
-               cerr<<"Meta_Wrapper : Nuage noeuds demandé alors qu'il n'est pas construit !"<<endl;
-               exit(-1);
-               }
-       }
-template <int DIMENSION>       inline Meta_Nuage_Maille              * Meta_Wrapper<DIMENSION>::Get_Nuage_Mailles ( void ) 
-       { 
-       if (mailles) return mailles  ; 
-       else
-               {
-               cerr<<"Meta_Wrapper : Nuage mailles demandé alors qu'il n'est pas construit !"<<endl;
-               exit(-1);
-               }
-       }
-template <int DIMENSION>       inline Meta_Maillage                  * Meta_Wrapper<DIMENSION>::Get_Maillage      ( void ) 
-       { 
-       if (maillage) return maillage ; 
-       else
-               {
-               cerr<<"Meta_Wrapper : Connectivitée maillage demandée alors qu'elle n'est pas construite !"<<endl;
-               exit(-1);
-               }
-       }
-
-template <int DIMENSION>       inline Wrapper_MED_Field              * Meta_Wrapper<DIMENSION>::Get_Champ         ( void )
-       {
-       if (champ) return champ;
-       else
-               {
-               cerr<<"Meta_Wrapper : Champ demandé alors qu'il n'est pas construit !"<<endl;
-               exit(-1);
-               }
-       }
-
-#endif 
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationHighLevelObjects.hxx.old b/src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationHighLevelObjects.hxx.old
deleted file mode 100644 (file)
index 7ab49bb..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef MEDMEM_INTERPOLATION_HIGHLEVEL_OBJECTS_HXX
-
-#define MEDMEM_INTERPOLATION_HIGHLEVEL_OBJECTS_HXX
-#include "MEDMEM_Connectivity.hxx"
-#include "MEDMEM_WrapperConnectivity.hxx"
-#include "MEDMEM_dTree.hxx"
-#include "MEDMEM_WrapperNodes.hxx"
-#include "MEDMEM_WrapperMesh.hxx"
-#include "MEDMEM_WrapperCells.hxx"
-#include "MEDMEM_Mapping.hxx"
-
-// DECLARATIONS
-
-template <int DIMENSION> class Meta_dTree : public dTree<Wrapper_Noeud<DIMENSION>,Wrapper_Nuage_Noeud<DIMENSION>,DIMENSION>
-{
-protected :
-       Wrapper_Nuage_Noeud<DIMENSION> * nuagetmp;
-public :
-       Meta_dTree(int nn,double * fullinterlace);
-       ~Meta_dTree() {if ((etat==DTREE_RACINE)&&(nuagetmp)) delete nuagetmp;}
-       inline int trouve_plus_proche_point(double *node);
-};
-
-class Meta_Nuage_Maille : public Wrapper_Nuage_Maille<Wrapper_Med_Connectivity>
-{
-protected :
-       Wrapper_Med_Connectivity * connectivite_med;
-public :
-       Meta_Nuage_Maille(CONNECTIVITY * connmed); 
-       Meta_Nuage_Maille():Wrapper_Nuage_Maille<Wrapper_Med_Connectivity>(connectivite_med=new Wrapper_Med_Connectivity) {}
-       ~Meta_Nuage_Maille() {if (connectivite_med) delete connectivite_med;}
-};
-
-
-typedef Wrapper_Maillage<Meta_Nuage_Maille> Meta_Maillage;
-
-template <int DIMENSION> class Meta_Mapping : public Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>
-{
-protected : 
-       Wrapper_Nuage_Noeud<DIMENSION> * wrapping_nuage_source;
-       Wrapper_Nuage_Noeud<DIMENSION> * wrapping_nuage_cible;
-public :
-       Meta_Mapping(Meta_Maillage * mb,double * noeudssource,int ns,double * noeudscible,int nc);
-       ~Meta_Mapping() {if (wrapping_nuage_source) delete wrapping_nuage_source;if (wrapping_nuage_cible) delete wrapping_nuage_cible;}
-       inline int Trouve_Maille_Contenant_Noeud(double * node,int num_maille, int flag_convexe=0);
-       double donne_valeur_interpolee_P1(double * node,vector<double> vals);
-};
-
-// CODE
-
-template <int DIMENSION> Meta_dTree<DIMENSION>::Meta_dTree(int nn,double * fullinterlace)
-:dTree<Wrapper_Noeud<DIMENSION>,Wrapper_Nuage_Noeud<DIMENSION>,DIMENSION>
-(nuagetmp=new Wrapper_Nuage_Noeud<DIMENSION>(nn,fullinterlace))
-       {
-       }
-
-template <int DIMENSION> inline int Meta_dTree<DIMENSION>::trouve_plus_proche_point(double *node)
-       {
-       static Wrapper_Noeud<DIMENSION> nodetmp;
-       nodetmp.positionne(node);
-       return dTree<Wrapper_Noeud<DIMENSION>,Wrapper_Nuage_Noeud<DIMENSION>,DIMENSION>::trouve_plus_proche_point(Wrapper_Noeud<DIMENSION>(nodetmp));
-       }
-       
-//*    
-Meta_Nuage_Maille::Meta_Nuage_Maille(CONNECTIVITY * conmed):Wrapper_Nuage_Maille<Wrapper_Med_Connectivity>(connectivite_med=new Wrapper_Med_Connectivity(conmed))
-       {
-       }
-//*/
-
-template <int DIMENSION> Meta_Mapping<DIMENSION>::Meta_Mapping(Meta_Maillage * mb,double * noeudssource,int ns,double * noeudscible,int nc)
-:Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>
-(mb,
-wrapping_nuage_source=new Wrapper_Nuage_Noeud<DIMENSION>(ns,noeudssource),
-wrapping_nuage_cible=new Wrapper_Nuage_Noeud<DIMENSION>(nc,noeudscible))
-       {
-       }
-
-template <int DIMENSION> inline int Meta_Mapping<DIMENSION>::Trouve_Maille_Contenant_Noeud(double * node,int num_maille,int flag_convexe)
-       {
-       int interdit=num_maille;
-       int max_loop=100;
-       int nme=0;
-       static Wrapper_Noeud<DIMENSION> nodetmp;
-       nodetmp.positionne(node);
-       return Mapping<Meta_Maillage,Meta_Nuage_Maille,Wrapper_Nuage_Noeud<DIMENSION>,Wrapper_Noeud<DIMENSION>,DIMENSION>::Trouve_Maille_Contenant_Point_Mth_Co(nodetmp,num_maille,interdit,max_loop,nme,flag_convexe);
-       }
-template <int DIMENSION> double Meta_Mapping<DIMENSION>::donne_valeur_interpolee_P1(double * node,vector<double> vals)
-       {
-       int num_maille_contenant=Trouve_Maille_Contenant_Noeud(node,0);
-       double valeur_interpol=0;
-       vector<double> valeurs=CB->Calcule_Coord_Baryc(num_maille_contenant,node);
-       int i;
-       int num_som;
-       for (i=0;i<valeurs.size();i++) 
-               {
-               cout<<"Lambda(M):"<<i<<" = "<<valeurs[i]<<endl;
-               num_som=mailles_back->DONNE_SOMMET_MAILLE(num_maille_contenant,i);
-               valeur_interpol+=vals[num_som]*valeurs[i];
-               }
-       
-       return valeur_interpol;
-       }
-
-#endif 
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationTools.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_InterpolationTools.hxx
deleted file mode 100644 (file)
index c308755..0000000
+++ /dev/null
@@ -1,532 +0,0 @@
-#ifndef MEDMEM_INTERPOLATION_TOOLS_HXX
-#define MEDMEM_INTERPOLATION_TOOLS_HXX
-
-#include "MEDMEM_define.hxx"
-
-#define _TEMPLATE_ template <class CHAMP,class VALEURCHAMP,class NUAGENOEUD, class NOEUD, class NUAGEMAILLE>
-#define _PARAM_ CHAMP,VALEURCHAMP,NUAGENOEUD,NOEUD,NUAGEMAILLE
-
-// ces macros définissent pour une face carrée plane la fonction projection sur cette face, non normalisée, la numérotation est dans le cas d'un hexaedre
-#define        face2367(x,y,z) ((x6*(-y2 + y3) + x3*(y2 - y6) + x2*(-y3 + y6))*z - x6*y3*z2 + x3*y6*z2 + x6*y2*z3 - x2*y6*z3 - x3*y2*z6 + x2*y3*z6 + y*(x6*(z2 - z3) + x2*(z3 - z6) + x3*(-z2 + z6)) + x*(y6*(-z2 + z3) + y3*(z2 - z6) + y2*(-z3 + z6)))
-#define        face4567(x,y,z) ((x6*(-y4 + y5) + x5*(y4 - y6) + x4*(-y5 + y6))*z - x6*y5*z4 + x5*y6*z4 + x6*y4*z5 - x4*y6*z5 - x5*y4*z6 + x4*y5*z6 + y*(x6*(z4 - z5) + x4*(z5 - z6) + x5*(-z4 + z6)) + x*(y6*(-z4 + z5) + y5*(z4 - z6) + y4*(-z5 + z6)))
-#define        face1256(x,y,z) ((x5*(-y1 + y2) + x2*(y1 - y5) + x1*(-y2 + y5))*z - x5*y2*z1 + x2*y5*z1 + x5*y1*z2 - x1*y5*z2 - x2*y1*z5 + x1*y2*z5 + y*(x5*(z1 - z2) + x1*(z2 - z5) + x2*(-z1 + z5)) + x*(y5*(-z1 + z2) + y2*(z1 - z5) + y1*(-z2 + z5)))
-#define        face0347(x,y,z) ((x4*(-y0 + y3) + x3*(y0 - y4) + x0*(-y3 + y4))*z - x4*y3*z0 + x3*y4*z0 + x4*y0*z3 - x0*y4*z3 - x3*y0*z4 + x0*y3*z4 + y*(x4*(z0 - z3) + x0*(z3 - z4) + x3*(-z0 + z4)) + x*(y4*(-z0 + z3) + y3*(z0 - z4) + y0*(-z3 + z4)))
-#define        face0145(x,y,z) ((x4*(-y0 + y1) + x1*(y0 - y4) + x0*(-y1 + y4))*z - x4*y1*z0 + x1*y4*z0 + x4*y0*z1 - x0*y4*z1 - x1*y0*z4 + x0*y1*z4 + y*(x4*(z0 - z1) + x0*(z1 - z4) + x1*(-z0 + z4)) + x*(y4*(-z0 + z1) + y1*(z0 - z4) + y0*(-z1 + z4)))
-#define        face0123(x,y,z) ((x2*(-y0 + y1) + x1*(y0 - y2) + x0*(-y1 + y2))*z - x2*y1*z0 + x1*y2*z0 + x2*y0*z1 - x0*y2*z1 - x1*y0*z2 + x0*y1*z2 + y*(x2*(z0 - z1) + x0*(z1 - z2) + x1*(-z0 + z2)) + x*(y2*(-z0 + z1) + y1*(z0 - z2) + y0*(-z1 + z2)))
-// des macros définissent pour une face triangulaire orientée vers l'extérieur de la maille la fonction de projection, non normalisée ( =(12^13).1M )
-#define face(x1,y1,z1,x2,y2,z2,x3,y3,z3,x,y,z)  ( ((y2-y1)*(z3-z1)-(z2-z1)*(y3-y1))*(x-x1)+((z2-z1)*(x3-x1)-(x2-x1)*(z3-z1))*(y-y1)+((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))*(z-z1) )
-#define projection(x1,y1,z1,x2,y2,z2,x3,y3,z3,x0,y0,z0,x,y,z) (face(x1,y1,z1,x2,y2,z2,x3,y3,z3,x,y,z)/face(x1,y1,z1,x2,y2,z2,x3,y3,z3,x0,y0,z0))
-
-// DECLARATION
-
-_TEMPLATE_ class Calcul_Interpolation
-{
-protected :
-       NUAGENOEUD * noeuds;
-       NUAGEMAILLE * mailles;
-       CHAMP * champ;
-public : 
-       Calcul_Interpolation():noeuds(NULL),mailles(NULL),champ(NULL) {}
-       Calcul_Interpolation(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):noeuds(nn),mailles(nm),champ(c) {}
-       ~Calcul_Interpolation() {}
-       virtual VALEURCHAMP operator() (const NOEUD & n, int num_maille) {cerr<<"APPEL OPERATOR() DE LA CLASSE MERE CALCUL_INTERPOLATION => EXIT(-1)"<<endl;exit(-1);}
-};
-
-_TEMPLATE_ class Calcul_Interpolation_P0;
-
-_TEMPLATE_ class Calcul_Interpolation_Tria3;
-_TEMPLATE_ class Calcul_Interpolation_Tria6;
-_TEMPLATE_ class Calcul_Interpolation_Quad4;
-_TEMPLATE_ class Calcul_Interpolation_Quad8;
-_TEMPLATE_ class Calcul_Interpolation_Tetra4;
-_TEMPLATE_ class Calcul_Interpolation_Tetra10;
-_TEMPLATE_ class Calcul_Interpolation_Hexa8;
-_TEMPLATE_ class Calcul_Interpolation_Hexa20;
-_TEMPLATE_ class Calcul_Interpolation_Penta6;
-_TEMPLATE_ class Calcul_Interpolation_Penta15;
-_TEMPLATE_ class Calcul_Interpolation_Pyra5;
-_TEMPLATE_ class Calcul_Interpolation_Pyra13;
-
-_TEMPLATE_ class Calcul_Hybride
-{
-protected :
-       NUAGEMAILLE * mailles;
-       map<int,Calcul_Interpolation<_PARAM_> *> fonctions;
-public : 
-       Calcul_Hybride():mailles(NULL) {}
-       Calcul_Hybride(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c);
-       ~Calcul_Hybride() {}
-       VALEURCHAMP operator() (const NOEUD & n, int num_maille);
-};
-
-//CODE
-
-_TEMPLATE_ Calcul_Hybride<_PARAM_>::Calcul_Hybride(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):mailles(nm)
-       {
-       fonctions[MED_TRIA3  ]=new Calcul_Interpolation_Tria3  <_PARAM_>(nn,nm,c);
-       fonctions[MED_TRIA6  ]=new Calcul_Interpolation_Tria6  <_PARAM_>(nn,nm,c);
-       fonctions[MED_QUAD4  ]=new Calcul_Interpolation_Quad4  <_PARAM_>(nn,nm,c);
-       fonctions[MED_QUAD8  ]=new Calcul_Interpolation_Quad8  <_PARAM_>(nn,nm,c);
-       fonctions[MED_TETRA4 ]=new Calcul_Interpolation_Tetra4 <_PARAM_>(nn,nm,c);
-       fonctions[MED_TETRA10]=new Calcul_Interpolation_Tetra10<_PARAM_>(nn,nm,c);
-       fonctions[MED_HEXA8  ]=new Calcul_Interpolation_Hexa8  <_PARAM_>(nn,nm,c);
-       fonctions[MED_HEXA20 ]=new Calcul_Interpolation_Hexa20 <_PARAM_>(nn,nm,c);
-       fonctions[MED_PENTA6 ]=new Calcul_Interpolation_Penta6 <_PARAM_>(nn,nm,c);
-       fonctions[MED_PENTA15]=new Calcul_Interpolation_Penta15<_PARAM_>(nn,nm,c);
-       fonctions[MED_PYRA5  ]=new Calcul_Interpolation_Pyra5  <_PARAM_>(nn,nm,c);
-       fonctions[MED_PYRA13 ]=new Calcul_Interpolation_Pyra13 <_PARAM_>(nn,nm,c);
-       }
-
-_TEMPLATE_ VALEURCHAMP Calcul_Hybride<_PARAM_>::operator() (const NOEUD & n, int num_maille)
-       {
-       return fonctions[(*mailles)[num_maille].DONNE_TYPE_MED_MAILLE()]->operator()(n,num_maille);
-       }
-
-_TEMPLATE_ class Calcul_Interpolation_P0      : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_P0(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       return (*champ)[num_maille];
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Tria3   : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Tria3(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       int num0=(*mailles)[num_maille][0];
-       int num1=(*mailles)[num_maille][1];
-       int num2=(*mailles)[num_maille][2];
-       
-       double x0=(*noeuds)[num0][0];
-       double y0=(*noeuds)[num0][1];
-       double x1=(*noeuds)[num1][0];
-       double y1=(*noeuds)[num1][1];
-       double x2=(*noeuds)[num2][0];
-       double y2=(*noeuds)[num2][1];
-       
-       VALEURCHAMP v0=(*champ)[num0];
-       VALEURCHAMP v1=(*champ)[num1];
-       VALEURCHAMP v2=(*champ)[num2];
-       
-       double x=n[0];
-       double y=n[1];
-       
-       double lambda0=(y1-y2)*x+(x2-x1)*y+(x1*y2-x2*y1);
-       double lambda1=(y2-y0)*x+(x0-x2)*y+(x2*y0-x0*y2);
-       double lambda2=(y0-y1)*x+(x1-x0)*y+(x0*y1-x1*y0);
-       
-       double delta = (x2-x1)*y0+(x0-x2)*y1+(x1-x0)*y2;
-       
-       VALEURCHAMP retour(v0.SIZE());
-                       
-       retour=(1/delta)*(lambda0*v0+lambda1*v1+lambda2*v2);
-       
-       return retour; //
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Tria6   : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Tria6(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       // ON SUPPOSE IMPLICITEMENT QUE LES NOEUDS SUPPLEMENTAIRES SONT BIEN DES NOEUDS MILIEUX
-       int num0 =(*mailles)[num_maille][0];
-       int num1 =(*mailles)[num_maille][1];
-       int num2 =(*mailles)[num_maille][2];
-       int num01=(*mailles)[num_maille][3];
-       int num12=(*mailles)[num_maille][4];
-       int num20=(*mailles)[num_maille][5];
-       
-       double x0=(*noeuds)[num0][0];
-       double y0=(*noeuds)[num0][1];
-       double x1=(*noeuds)[num1][0];
-       double y1=(*noeuds)[num1][1];
-       double x2=(*noeuds)[num2][0];
-       double y2=(*noeuds)[num2][1];
-       
-       VALEURCHAMP v0=(*champ)[num0];
-       VALEURCHAMP v1=(*champ)[num1];
-       VALEURCHAMP v2=(*champ)[num2];
-       VALEURCHAMP v01=(*champ)[num01];
-       VALEURCHAMP v12=(*champ)[num12];
-       VALEURCHAMP v20=(*champ)[num20];
-       
-       double x=n[0];
-       double y=n[1];
-       
-       double lambda0=(y1-y2)*x+(x2-x1)*y+(x1*y2-x2*y1);
-       double lambda1=(y2-y0)*x+(x0-x2)*y+(x2*y0-x0*y2);
-       double lambda2=(y0-y1)*x+(x1-x0)*y+(x0*y1-x1*y0);
-       
-       double delta = (x2-x1)*y0+(x0-x2)*y1+(x1-x0)*y2;
-
-
-       // VALEURCHAMP retour(v0.SIZE()); //            
-
-       return  2*(lambda0*lambda0*v0+
-                  lambda1*lambda1*v1+
-                  lambda2*lambda2*v2+
-                  2*(lambda0*lambda1*v01+
-                     lambda1*lambda2*v12+
-                     lambda2*lambda0*v20))/(delta*delta)+
-               (lambda0*v0+lambda1*v1+lambda2*v2)/(-delta);
-
-       // return retour; //
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Quad4   : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Quad4(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       int num0=(*mailles)[num_maille][0];
-       int num1=(*mailles)[num_maille][1];
-       int num2=(*mailles)[num_maille][2];
-       int num3=(*mailles)[num_maille][3];
-       
-       double x0=(*noeuds)[num0][0];
-       double y0=(*noeuds)[num0][1];
-       double x1=(*noeuds)[num1][0];
-       double y1=(*noeuds)[num1][1];
-       double x2=(*noeuds)[num2][0];
-       double y2=(*noeuds)[num2][1];
-       double x3=(*noeuds)[num3][0];
-       double y3=(*noeuds)[num3][1];
-       
-       VALEURCHAMP v0=(*champ)[num0];
-       VALEURCHAMP v1=(*champ)[num1];
-       VALEURCHAMP v2=(*champ)[num2];
-       VALEURCHAMP v3=(*champ)[num3];
-       
-       double x=n[0];
-       double y=n[1];
-       
-       
-       double mu0=-((x3*(y1-y2)+x1*(y2-y3)+x2*(y3-y1))*x*y+(x2*y2*(y1-y3)+x3*(-y1+y2)*y3+x1*y1*(y3-y2))*x+(x2*x3*(y2-y3)+x1*(x2*(y1-y2)+x3*(y3-y1)))*y+(x2*x3*y1*(y3-y2)+x1*(x3*y2*(y1-y3)+x2*(y2-y1)*y3)));
-       double mu1=(x0*(y2-y3)+x2*(y3-y0)+x3*(y0-y2))*x*y+(x3*y3*(y2-y0)+x0*(-y2+y3)*y0+x2*y2*(y0-y3))*x+(x3*x0*(y3-y0)+x2*(x3*(y2-y3)+x0*(y0-y2)))*y+(x2*x0*y2*(y0-y2)+x2*(x0*y2*(y2-y0)+x3*(y3-y2)*y0));
-       double mu2=-((x1*(y3-y0)+x3*(y0-y1)+x0*(y1-y3))*x*y+(x0*y0*(y3-y1)+x1*(-y3+y0)*y1+x3*y3*(y1-y0))*x+(x0*x1*(y0-y1)+x3*(x0*(y3-y0)+x1*(y1-y3)))*y+(x3*x1*y3*(y1-y2)+x3*(x1*y2*(y3-y1)+x0*(y0-y3)*y1)));
-       double mu3=(x2*(y0-y1)+x0*(y1-y2)+x1*(y2-y0))*x*y+(x1*y1*(y0-y2)+x2*(-y0+y1)*y2+x0*y0*(y2-y1))*x+(x1*x2*(y1-y2)+x0*(x1*(y0-y1)+x2*(y2-y0)))*y+(x0*x2*y0*(y2-y2)+x0*(x2*y2*(y0-y2)+x1*(y1-y0)*y2));
-       
-       double delta=(y0-y2)*(y1-y3)*(x0*x2+x1*x3)-(x1*x2+x0*x3)*(y1-y2)*(y0-y3)-(x0*x1+x2*x3)*(y0-y1)*(y2-y3);
-
-       /*
-       cout<<"  ### Pour ( "<<x<<" , "<<y<<" )"<<endl;
-       cout<<"  ### delta = "<<delta<<endl;
-       cout<<"  ### Mu0 = "<<mu0<<endl;
-       cout<<"  ### Mu1 = "<<mu1<<endl;
-       cout<<"  ### Mu2 = "<<mu2<<endl;
-       cout<<"  ### Mu3 = "<<mu3<<endl;
-       //*/
-       VALEURCHAMP retour(v0.SIZE()); //               
-
-       retour=(mu0*v0+mu1*v1+mu2*v2+mu3*v3)/delta;
-
-       return retour; //
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Quad8   : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Quad8(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       cerr<<"Interpolation Q2 pas encore implémentée"<<endl;
-       exit(-1);
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Tetra4  : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Tetra4(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       int num0=(*mailles)[num_maille][0];
-       int num1=(*mailles)[num_maille][1];
-       int num2=(*mailles)[num_maille][2];
-       int num3=(*mailles)[num_maille][3];
-       
-       double x0=(*noeuds)[num0][0];
-       double y0=(*noeuds)[num0][1];
-       double z0=(*noeuds)[num0][2];
-       double x1=(*noeuds)[num1][0];
-       double y1=(*noeuds)[num1][1];
-       double z1=(*noeuds)[num1][2];
-       double x2=(*noeuds)[num2][0];
-       double y2=(*noeuds)[num2][1];
-       double z2=(*noeuds)[num2][2];
-       double x3=(*noeuds)[num3][0];
-       double y3=(*noeuds)[num3][1];
-       double z3=(*noeuds)[num3][2];
-       
-       VALEURCHAMP v0=(*champ)[num0];
-       VALEURCHAMP v1=(*champ)[num1];
-       VALEURCHAMP v2=(*champ)[num2];
-       VALEURCHAMP v3=(*champ)[num3];
-       
-       double x=n[0];
-       double y=n[1];
-       double z=n[2];
-       
-       double lambda0=face(x1,y1,z1,x2,y2,z2,x3,y3,z3,x,y,z)/face(x1,y1,z1,x2,y2,z2,x3,y3,z3,x0,y0,z0);
-       double lambda1=face(x0,y0,z0,x2,y2,z2,x3,y3,z3,x,y,z)/face(x0,y0,z0,x2,y2,z2,x3,y3,z3,x1,y1,z1);
-       double lambda2=face(x1,y1,z1,x0,y0,z0,x3,y3,z3,x,y,z)/face(x1,y1,z1,x0,y0,z0,x3,y3,z3,x2,y2,z2);
-       double lambda3=face(x1,y1,z1,x2,y2,z2,x0,y0,z0,x,y,z)/face(x1,y1,z1,x2,y2,z2,x0,y0,z0,x3,y3,z3);
-       
-       VALEURCHAMP retour(v0.SIZE()); //               
-
-       retour=(lambda0*v0+lambda1*v1+lambda2*v2+lambda3*v3);
-
-       return retour; //
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Tetra10 : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Tetra10(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       // ON SUPPOSE IMPLICITEMENT QUE LES NOEUDS SUPPLEMENTAIRES SONT BIEN DES NOEUDS MILIEUX
-       int num0 =(*mailles)[num_maille][0];
-       int num1 =(*mailles)[num_maille][1];
-       int num2 =(*mailles)[num_maille][2];
-       int num3 =(*mailles)[num_maille][3];
-       int num01=(*mailles)[num_maille][4];
-       int num02=(*mailles)[num_maille][6];
-       int num03=(*mailles)[num_maille][7];
-       int num12=(*mailles)[num_maille][5];
-       int num13=(*mailles)[num_maille][8];
-       int num23=(*mailles)[num_maille][9];
-       
-       double x0=(*noeuds)[num0][0];double y0=(*noeuds)[num0][1];double z0=(*noeuds)[num0][2];
-       double x1=(*noeuds)[num1][0];double y1=(*noeuds)[num1][1];double z1=(*noeuds)[num1][2];
-       double x2=(*noeuds)[num2][0];double y2=(*noeuds)[num2][1];double z2=(*noeuds)[num2][2];
-       double x3=(*noeuds)[num3][0];double y3=(*noeuds)[num3][1];double z3=(*noeuds)[num3][2];
-       
-       VALEURCHAMP v0=(*champ)[num0];  
-       VALEURCHAMP v1=(*champ)[num1];  
-       VALEURCHAMP v2=(*champ)[num2];  
-       VALEURCHAMP v3=(*champ)[num3];  
-       VALEURCHAMP v01=(*champ)[num01];
-       VALEURCHAMP v02=(*champ)[num02];
-       VALEURCHAMP v03=(*champ)[num03];
-       VALEURCHAMP v12=(*champ)[num12];
-       VALEURCHAMP v13=(*champ)[num13];
-       VALEURCHAMP v23=(*champ)[num23];
-       
-       double x=n[0];
-       double y=n[1];
-       double z=n[2];
-       
-       double lambda0=face(x1,y1,z1,x2,y2,z2,x3,y3,z3,x,y,z)/face(x1,y1,z1,x2,y2,z2,x3,y3,z3,x0,y0,z0);
-       double lambda1=face(x0,y0,z0,x2,y2,z2,x3,y3,z3,x,y,z)/face(x0,y0,z0,x2,y2,z2,x3,y3,z3,x1,y1,z1);
-       double lambda2=face(x1,y1,z1,x0,y0,z0,x3,y3,z3,x,y,z)/face(x1,y1,z1,x0,y0,z0,x3,y3,z3,x2,y2,z2);
-       double lambda3=face(x1,y1,z1,x2,y2,z2,x0,y0,z0,x,y,z)/face(x1,y1,z1,x2,y2,z2,x0,y0,z0,x3,y3,z3);
-       
-       /*
-       cout<<"  ### Pour ( "<<x<<" , "<<y<<" , "<<z<<" )"<<endl;
-       cout<<"  ### Lambda0 = "<<lambda0<<endl;
-       cout<<"  ### Lambda1 = "<<lambda1<<endl;
-       cout<<"  ### Lambda2 = "<<lambda2<<endl;
-       cout<<"  ### Lambda3 = "<<lambda3<<endl;
-       cout<<"  ### Controle = "<<(lambda0+lambda1+lambda2+lambda3)<<endl;
-       //*/
-
-       VALEURCHAMP retour(v0.SIZE()); //               
-
-       retour=2*(lambda0*lambda0*v0+
-                 lambda1*lambda1*v1+
-                 lambda2*lambda2*v2+
-                 lambda3*lambda3*v3+
-                 2*(lambda0*lambda1*v01+
-                    lambda0*lambda2*v02+
-                    lambda0*lambda3*v03+
-                    lambda1*lambda2*v12+
-                    lambda1*lambda3*v13+
-                    lambda2*lambda3*v23))+
-              (-1.0)*(lambda0*v0+lambda1*v1+lambda2*v2+lambda3*v3);
-
-       return retour; //
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Hexa8   : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Hexa8(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       
-       // Tres probablement numériquement mauvais, à revoir
-       
-       int num0=(*mailles)[num_maille][0];
-       int num1=(*mailles)[num_maille][1];
-       int num2=(*mailles)[num_maille][2];
-       int num3=(*mailles)[num_maille][3];
-       int num4=(*mailles)[num_maille][4];
-       int num5=(*mailles)[num_maille][5];
-       int num6=(*mailles)[num_maille][6];
-       int num7=(*mailles)[num_maille][7];
-       
-       
-       double x0=(*noeuds)[num0][0];double y0=(*noeuds)[num0][1];double z0=(*noeuds)[num0][2];
-       double x1=(*noeuds)[num1][0];double y1=(*noeuds)[num1][1];double z1=(*noeuds)[num1][2];
-       double x2=(*noeuds)[num2][0];double y2=(*noeuds)[num2][1];double z2=(*noeuds)[num2][2];
-       double x3=(*noeuds)[num3][0];double y3=(*noeuds)[num3][1];double z3=(*noeuds)[num3][2];
-       double x4=(*noeuds)[num4][0];double y4=(*noeuds)[num4][1];double z4=(*noeuds)[num4][2];
-       double x5=(*noeuds)[num5][0];double y5=(*noeuds)[num5][1];double z5=(*noeuds)[num5][2];
-       double x6=(*noeuds)[num6][0];double y6=(*noeuds)[num6][1];double z6=(*noeuds)[num6][2];
-       double x7=(*noeuds)[num7][0];double y7=(*noeuds)[num7][1];double z7=(*noeuds)[num7][2];
-       
-       
-       VALEURCHAMP v0=(*champ)[num0];
-       VALEURCHAMP v1=(*champ)[num1];
-       VALEURCHAMP v2=(*champ)[num2];
-       VALEURCHAMP v3=(*champ)[num3];
-       VALEURCHAMP v4=(*champ)[num4];
-       VALEURCHAMP v5=(*champ)[num5];
-       VALEURCHAMP v6=(*champ)[num6];
-       VALEURCHAMP v7=(*champ)[num7];
-
-       double x=n[0];
-       double y=n[1];
-       double z=n[2];
-       
-       // double mu0=face1256(x,y,z)*face2367(x,y,z)*face4567(x,y,z)/(face1256(x0,y0,z0)*face2367(x0,y0,z0)*face4567(x0,y0,z0));
-       // double mu1=face0347(x,y,z)*face2367(x,y,z)*face4567(x,y,z)/(face0347(x1,y1,z1)*face2367(x1,y1,z1)*face4567(x1,y1,z1));
-       // double mu2=face0347(x,y,z)*face0145(x,y,z)*face4567(x,y,z)/(face0347(x2,y2,z2)*face0145(x2,y2,z2)*face4567(x2,y2,z2));
-       // double mu3=face1256(x,y,z)*face0145(x,y,z)*face4567(x,y,z)/(face1256(x3,y3,z3)*face0145(x3,y3,z3)*face4567(x3,y3,z3));
-       // double mu4=face1256(x,y,z)*face2367(x,y,z)*face0123(x,y,z)/(face1256(x4,y4,z4)*face2367(x4,y4,z4)*face0123(x4,y4,z4));
-       // double mu5=face0347(x,y,z)*face2367(x,y,z)*face0123(x,y,z)/(face0347(x5,y5,z5)*face2367(x5,y5,z5)*face0123(x5,y5,z5));
-       // double mu6=face0347(x,y,z)*face0145(x,y,z)*face0123(x,y,z)/(face0347(x6,y6,z6)*face0145(x6,y6,z6)*face0123(x6,y6,z6));
-       // double mu7=face1256(x,y,z)*face0145(x,y,z)*face0123(x,y,z)/(face1256(x7,y7,z7)*face0145(x7,y7,z7)*face0123(x7,y7,z7));
-
-       double mu0=projection(x1,y1,z1,x2,y2,z2,x6,y6,z6,x0,y0,z0,x,y,z)*projection(x2,y2,z2,x3,y3,z3,x7,y7,z7,x0,y0,z0,x,y,z)*projection(x4,y4,z4,x5,y5,z5,x6,y6,z6,x0,y0,z0,x,y,z);
-       double mu1=projection(x0,y0,z0,x3,y3,z3,x7,y7,z7,x1,y1,z1,x,y,z)*projection(x2,y2,z2,x3,y3,z3,x7,y7,z7,x1,y1,z1,x,y,z)*projection(x4,y4,z4,x5,y5,z5,x6,y6,z6,x1,y1,z1,x,y,z);
-       double mu2=projection(x0,y0,z0,x3,y3,z3,x7,y7,z7,x2,y2,z2,x,y,z)*projection(x0,y0,z0,x1,y1,z1,x5,y5,z5,x2,y2,z2,x,y,z)*projection(x4,y4,z4,x5,y5,z5,x6,y6,z6,x2,y2,z2,x,y,z);
-       double mu3=projection(x1,y1,z1,x2,y2,z2,x6,y6,z6,x3,y3,z3,x,y,z)*projection(x0,y0,z0,x1,y1,z1,x5,y5,z5,x3,y3,z3,x,y,z)*projection(x4,y4,z4,x6,y6,z6,x7,y7,z7,x3,y3,z3,x,y,z);
-       double mu4=projection(x2,y2,z2,x6,y6,z6,x5,y5,z5,x4,y4,z4,x,y,z)*projection(x2,y2,z2,x3,y3,z3,x7,y7,z7,x4,y4,z4,x,y,z)*projection(x0,y0,z0,x1,y1,z1,x2,y2,z2,x4,y4,z4,x,y,z);
-       double mu5=projection(x3,y3,z3,x7,y7,z7,x4,y4,z4,x5,y5,z5,x,y,z)*projection(x2,y2,z2,x3,y3,z3,x6,y6,z6,x5,y5,z5,x,y,z)*projection(x0,y0,z0,x1,y1,z1,x2,y2,z2,x5,y5,z5,x,y,z);
-       double mu6=projection(x3,y3,z3,x7,y7,z7,x4,y4,z4,x6,y6,z6,x,y,z)*projection(x1,y1,z1,x5,y5,z5,x4,y4,z4,x6,y6,z6,x,y,z)*projection(x0,y0,z0,x1,y1,z1,x2,y2,z2,x6,y6,z6,x,y,z);
-       double mu7=projection(x2,y2,z2,x6,y6,z6,x5,y5,z5,x7,y7,z7,x,y,z)*projection(x1,y1,z1,x5,y5,z5,x4,y4,z4,x7,y7,z7,x,y,z)*projection(x0,y0,z0,x1,y1,z1,x3,y3,z3,x7,y7,z7,x,y,z);
-                  
-       VALEURCHAMP retour(v0.SIZE()); //               
-
-       retour=(mu0*v0+mu1*v1+mu2*v2+mu3*v3+mu4*v4+mu5*v5+mu6*v6+mu7*v7);
-
-       return retour; //
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Hexa20  : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Hexa20(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       cerr<<"Interpolation H2 pasencore implémentée"<<endl;
-       exit(-1);
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Penta6  : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Penta6(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       int num0=(*mailles)[num_maille][0];
-       int num1=(*mailles)[num_maille][1];
-       int num2=(*mailles)[num_maille][2];
-       int num3=(*mailles)[num_maille][3];
-       int num4=(*mailles)[num_maille][4];
-       int num5=(*mailles)[num_maille][5];    
-       
-       double x0=(*noeuds)[num0][0];double y0=(*noeuds)[num0][1];double z0=(*noeuds)[num0][2];
-       double x1=(*noeuds)[num1][0];double y1=(*noeuds)[num1][1];double z1=(*noeuds)[num1][2];
-       double x2=(*noeuds)[num2][0];double y2=(*noeuds)[num2][1];double z2=(*noeuds)[num2][2];
-       double x3=(*noeuds)[num3][0];double y3=(*noeuds)[num3][1];double z3=(*noeuds)[num3][2];
-       double x4=(*noeuds)[num4][0];double y4=(*noeuds)[num4][1];double z4=(*noeuds)[num4][2];
-       double x5=(*noeuds)[num5][0];double y5=(*noeuds)[num5][1];double z5=(*noeuds)[num5][2]; 
-       
-       VALEURCHAMP v0=(*champ)[num0];
-       VALEURCHAMP v1=(*champ)[num1];
-       VALEURCHAMP v2=(*champ)[num2];
-       VALEURCHAMP v3=(*champ)[num3];
-       VALEURCHAMP v4=(*champ)[num4];
-       VALEURCHAMP v5=(*champ)[num5];
-
-       double x=n[0];
-       double y=n[1];
-       double z=n[2];
-       
-       double mu0=face(x1,y1,z1,x2,y2,z2,x5,y5,z5,x,y,z)*face(x3,y3,z3,x4,y4,z4,x5,y5,z5,x,y,z)/(face(x1,y1,z1,x2,y2,z2,x5,y5,z5,x0,y0,z0)*face(x3,y3,z3,x4,y4,z4,x5,y5,z5,x0,y0,z0));
-       double mu1=face(x0,y0,z0,x2,y2,z2,x5,y5,z5,x,y,z)*face(x3,y3,z3,x4,y4,z4,x5,y5,z5,x,y,z)/(face(x0,y0,z0,x2,y2,z2,x5,y5,z5,x1,y1,z1)*face(x3,y3,z3,x4,y4,z4,x5,y5,z5,x1,y1,z1));
-       double mu2=face(x0,y0,z0,x1,y1,z1,x4,y4,z4,x,y,z)*face(x3,y3,z3,x4,y4,z4,x5,y5,z5,x,y,z)/(face(x0,y0,z0,x1,y1,z1,x4,y4,z4,x2,y2,z2)*face(x3,y3,z3,x4,y4,z4,x5,y5,z5,x2,y2,z2));
-       double mu3=face(x1,y1,z1,x2,y2,z2,x5,y5,z5,x,y,z)*face(x0,y0,z0,x1,y1,z1,x2,y2,z2,x,y,z)/(face(x1,y1,z1,x2,y2,z2,x5,y5,z5,x3,y3,z3)*face(x0,y0,z0,x1,y1,z1,x2,y2,z2,x3,y3,z3));
-       double mu4=face(x0,y0,z0,x2,y2,z2,x5,y5,z5,x,y,z)*face(x0,y0,z0,x1,y1,z1,x2,y2,z2,x,y,z)/(face(x0,y0,z0,x2,y2,z2,x5,y5,z5,x4,y4,z4)*face(x0,y0,z0,x1,y1,z1,x2,y2,z2,x4,y4,z4));
-       double mu5=face(x0,y0,z0,x1,y1,z1,x4,y4,z4,x,y,z)*face(x0,y0,z0,x1,y1,z1,x2,y2,z2,x,y,z)/(face(x0,y0,z0,x1,y1,z1,x4,y4,z4,x5,y5,z5)*face(x0,y0,z0,x1,y1,z1,x2,y2,z2,x5,y5,z5));
-
-       VALEURCHAMP retour(v0.SIZE()); //               
-
-       retour=(mu0*v0+mu1*v1+mu2*v2+mu3*v3+mu4*v4+mu5*v5);
-
-       return retour; //
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Penta15 : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Penta15(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       cerr<<"Interpolation Pe2 pasencore implémentée"<<endl;
-       exit(-1);
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Pyra5   : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Pyra5(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       // NON TESTE
-       int num0=(*mailles)[num_maille][0];
-       int num1=(*mailles)[num_maille][1];
-       int num2=(*mailles)[num_maille][2];
-       int num3=(*mailles)[num_maille][3];
-       int num4=(*mailles)[num_maille][4];
-       
-       double x0=(*noeuds)[num0][0];double y0=(*noeuds)[num0][1];double z0=(*noeuds)[num0][2];
-       double x1=(*noeuds)[num1][0];double y1=(*noeuds)[num1][1];double z1=(*noeuds)[num1][2];
-       double x2=(*noeuds)[num2][0];double y2=(*noeuds)[num2][1];double z2=(*noeuds)[num2][2];
-       double x3=(*noeuds)[num3][0];double y3=(*noeuds)[num3][1];double z3=(*noeuds)[num3][2];
-       double x4=(*noeuds)[num4][0];double y4=(*noeuds)[num4][1];double z4=(*noeuds)[num4][2];
-       
-       VALEURCHAMP v0=(*champ)[num0];
-       VALEURCHAMP v1=(*champ)[num1];
-       VALEURCHAMP v2=(*champ)[num2];
-       VALEURCHAMP v3=(*champ)[num3];
-       VALEURCHAMP v4=(*champ)[num4];
-
-       double x=n[0];
-       double y=n[1];
-       double z=n[2];
-       
-       double mu0=face(x1,y1,z1,x2,y2,z2,x4,y4,z4,x,y,z)*face(x2,y2,z2,x3,y3,z3,x4,y4,z4,x,y,z)/(face(x1,y1,z1,x2,y2,z2,x4,y4,z4,x0,y0,z0)*face(x2,y2,z2,x3,y3,z3,x4,y4,z4,x0,y0,z0));
-       double mu1=face(x0,y0,z0,x3,y3,z3,x4,y4,z4,x,y,z)*face(x2,y2,z2,x3,y3,z3,x4,y4,z4,x,y,z)/(face(x0,y0,z0,x3,y3,z3,x4,y4,z4,x1,y1,z1)*face(x2,y2,z2,x3,y3,z3,x4,y4,z4,x1,y1,z1));
-       double mu2=face(x0,y0,z0,x1,y1,z1,x4,y4,z4,x,y,z)*face(x0,y0,z0,x3,y3,z3,x4,y4,z4,x,y,z)/(face(x0,y0,z0,x1,y1,z1,x4,y4,z4,x2,y2,z2)*face(x0,y0,z0,x3,y3,z3,x4,y4,z4,x2,y2,z2));
-       double mu3=face(x0,y0,z0,x1,y1,z1,x4,y4,z4,x,y,z)*face(x1,y1,z1,x2,y2,z2,x4,y4,z4,x,y,z)/(face(x0,y0,z0,x1,y1,z1,x4,y4,z4,x3,y3,z3)*face(x1,y1,z1,x2,y2,z2,x4,y4,z4,x3,y3,z3));
-       double mu4=face(x0,y0,z0,x1,y1,z1,x2,y2,z2,x,y,z)/face(x0,y0,z0,x1,y1,z1,x2,y2,z2,x4,y4,z4);
-
-       VALEURCHAMP retour(v0.SIZE()); //               
-
-       retour=(mu0*v0+mu1*v1+mu2*v2+mu3*v3+mu4*v4);
-
-       return retour; //
-       }
-};
-_TEMPLATE_ class Calcul_Interpolation_Pyra13  : public Calcul_Interpolation<_PARAM_>
-{
-public : Calcul_Interpolation_Pyra13(NUAGENOEUD * nn,NUAGEMAILLE * nm,CHAMP * c):Calcul_Interpolation<_PARAM_>(nn,nm,c) {}
-public : VALEURCHAMP operator() (const NOEUD & n, int num_maille)
-       {
-       cerr<<"Interpolation Py2 pasencore implémentée"<<endl;
-       exit(-1);
-       }
-};
-
-#undef _TEMPLATE_ 
-#undef _PARAM_
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_Mapping.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_Mapping.hxx
deleted file mode 100644 (file)
index 166e35a..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-#ifndef MEDMEM_MAPPING_HXX
-#define MEDMEM_MAPPING_HXX
-
-#include "MEDMEM_MappingTools.hxx"
-#include "MEDMEM_dTree.hxx"
-
-#define NBR_MAX_MAILLES_EXAMINEES 100
-
-#ifndef  NBR_FACES_MAX
-#define NBR_FACES_MAX 6
-#endif
-
-#define _TEMPLATE_ template <class MAILLAGE, class NUAGEMAILLE, class NUAGENOEUD, class NOEUD, int DIMENSION>
-#define _MAPPING_ Mapping<MAILLAGE,NUAGEMAILLE,NUAGENOEUD,NOEUD,DIMENSION>
-
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                        DECLARATIONS                        ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*                   Classe  Mapping                     */
-/*                                                       */
-/*********************************************************/
-
-// ATTENTION LE NUAGE DE NOEUD EST SUPPOSE NON REDONDANT ET AUCUNE VERIFICATION N'EST FAITE !
-
-template <class MAILLAGE, class NUAGEMAILLE, class NUAGENOEUD, class NOEUD, int DIMENSION> class Mapping
-{
-protected :
-       MAILLAGE * maillage_back;
-       NUAGEMAILLE * mailles_back;
-       NUAGENOEUD * noeuds_back;
-       NUAGENOEUD * noeuds_front;
-       Coordonnees_Barycentriques<NUAGEMAILLE,NUAGENOEUD,NOEUD,DIMENSION> * CB;
-       dTree<NOEUD,NUAGENOEUD,DIMENSION> * my_dTree;
-       vector<int> resultat_mapping;
-       vector<int> point_le_plus_proche;
-       
-public :
-       
-       Mapping():maillage_back(NULL),mailles_back(NULL),noeuds_back(NULL),noeuds_front(NULL),CB(NULL),my_dTree(NULL) {}
-       Mapping(MAILLAGE * mb,NUAGENOEUD * nb,NUAGENOEUD * nf); // le dTree est crée à l'initialisation, par contre, le mapping lui meme doit etre invoqué
-       ~Mapping() {if (CB) delete CB;if (my_dTree) delete my_dTree;}
-        dTree<NOEUD,NUAGENOEUD,DIMENSION> * Donne_dTree() {return my_dTree;}
-       int Donne_Directions(int num_maille,const NOEUD &n,int etat_face[NBR_FACES_MAX]);
-       // Méthode interne de localisation
-       int Trouve_Maille_Contenant_Point_Mth_Co(const NOEUD &n,int num_maille,int num_maille_interdit,int max_loop,int &nbr_mailles_examinees,int flag_convexe);
-       void Cree_Mapping(int flag_convexe=0);                                             // SUPPOSE NON CONVEXE PAR DEFAUT
-       void Cree_Mapping(NUAGENOEUD * nf, int flag_convexe=0);                            // SUPPOSE NON CONVEXE PAR DEFAUT
-       inline int operator[](int i) const {return resultat_mapping[i];}                   // Renvoie la valeur mappé, si le mapping a été fait, sinon, n'importe quoi
-       inline vector<int> & Get_Mapping() {return resultat_mapping;}                        // Renvoie le vector contenant le mapping
-       inline int Get_Noeud_Le_Plus_Proche(int i) const {return point_le_plus_proche[i];} // Invoque la méthode de d-Tree qui donne le noeud le plus proche
-       inline int Exist_dTree() const {return (my_dTree);}                                // Teste si le dTree existe
-       void affiche()
-               {
-               for (int i=0;i<resultat_mapping.size();i++) cout<<"Noeud "<<i<<" de noeud plus proche "<<point_le_plus_proche[i]<<" mappé dans maille "<<resultat_mapping[i]<<endl;             
-               }
-};
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                            CODE                            ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-_TEMPLATE_ void _MAPPING_::Cree_Mapping(NUAGENOEUD * nf, int flag_convexe)
-       {
-       noeuds_front=nf;
-       Cree_Mapping(flag_convexe);
-       }
-
-_TEMPLATE_ void _MAPPING_::Cree_Mapping(int flag_convexe)
-       {
-       
-       if (resultat_mapping.size()==0) 
-               {
-               if (!noeuds_front) 
-                        {
-                        cerr<<"Mapping : Pas de noeuds à mapper !"<<endl;
-                        exit(-1);
-                        }
-                
-               int i,j,k;
-               int nbr_noeuds=noeuds_front->SIZE();
-               int num_maille_depart;
-               int nma=0;
-               resultat_mapping     = vector<int>(nbr_noeuds,UNDEFINED);
-               point_le_plus_proche = vector<int>(nbr_noeuds,UNDEFINED);
-       
-               // noeuds_back->affiche();
-               
-               for (i=0;i<nbr_noeuds;i++)
-                       {
-                       point_le_plus_proche[i]=my_dTree->trouve_plus_proche_point((*noeuds_front)[i]);
-                       num_maille_depart=maillage_back->DONNE_PREMIERE_MAILLE_CONTENANT(point_le_plus_proche[i]);
-                       resultat_mapping[i]=Trouve_Maille_Contenant_Point_Mth_Co((*noeuds_front)[i],num_maille_depart,num_maille_depart,NBR_MAX_MAILLES_EXAMINEES,nma,flag_convexe);
-                       }
-               }
-               
-       else
-               {
-               cout<<"Le mapping semble déja existé, interrogation sur l'existant"<<endl;
-               }
-               
-       }
-_TEMPLATE_ _MAPPING_::Mapping(MAILLAGE * mb,NUAGENOEUD * nb,NUAGENOEUD * nf):maillage_back(mb),noeuds_back(nb),noeuds_front(nf),my_dTree(NULL)
-       {
-       
-       if (!maillage_back)
-               {
-               cerr<<"Mapping : constructeur appelé avec Maillage Vide"<<endl;
-               exit(-1);
-               }
-               
-       if (!noeuds_back)
-               {
-               cerr<<"Mapping : constructeur appelé avec Nuage Noeuds Vide"<<endl;
-               exit(-1);
-               }
-               
-       mailles_back=maillage_back->DONNE_POINTEUR_NUAGEMAILLE();
-       
-       CB=new Coordonnees_Barycentriques<NUAGEMAILLE,NUAGENOEUD,NOEUD,DIMENSION>(mailles_back,noeuds_back);
-
-       // TEST REDONDANCE
-       /*
-       int nnb=noeuds_back->SIZE();
-       if (nnb<20000) 
-               {
-               cout<<"MAPPING : VERIFICATION REDONDANCES DANS NUAGE NOEUD BACK"<<endl;
-               noeuds_back->affiche();
-               int i,j;                
-               vector<int> redondance(nnb,0);
-               for (i=0;i<nnb;i++) 
-                       {
-                       for (j=i+1;j<nnb;j++) if ((*noeuds_back)[i]==(*noeuds_back)[j]) 
-                               {
-                               cerr<<"Le Noeud "<<j<<" est identique au Noeud "<<i<<endl;
-                               exit(-1);
-                               }
-                       }
-               cout<<"FIN TEST VERIFICATION REDONDANCES"<<endl;
-               }
-       // FIN TEST */
-       
-       my_dTree=new dTree<NOEUD,NUAGENOEUD,DIMENSION>(noeuds_back);
-
-       }
-// Renvoie :
-//     1 si le point est intérieur
-//    -1 si le point est extérieur à la maille via uniquement des faces qui ne sont pas au bord
-//    -2 si le point est extérieur à la maille par au moins une face de bord
-// Et modifie etat_face de telle sorte que :
-// etat_face[i] = -1 s'il n'existe pas de voisin via la face i
-// etat_face[i] =  0 si le point est intérieur via la face i et que le voisin i existe
-// etat_face[i] =  1 si le point est extérieur via la face i et que le voisin i existe
-_TEMPLATE_ int _MAPPING_::Donne_Directions(int num_maille,const NOEUD &n,int etat_face[NBR_FACES_MAX])
-       {
-       vector<double> ef=CB->Donne_Pseudo_Coord_Baryc(num_maille,n);
-       int etat_int=VRAI;
-       int etat_ext_bord=FAUX;
-       int tf,tv,tb;
-       int nbr_faces=(*mailles_back)[num_maille].DONNE_NBR_FACES();
-       for (int i=0;i<nbr_faces;i++)
-               {
-               tf=(ef[i]<0);
-               tv=(maillage_back->DONNE_VOISIN_DE_MAILLE(num_maille,i)==UNDEFINED);
-               tb=(maillage_back->EST_AU_BORD_FACE_DE_MAILLE(num_maille,i));
-               if (tf) 
-                       {
-                       etat_int=FAUX;
-                       if (tb) etat_ext_bord=VRAI;
-                       }
-               if (tv) etat_face[i]=-1;
-               else
-                       {
-                       if (tf) etat_face[i]=1;
-                       else etat_face[i]=0;
-                       }
-               }
-       if (etat_int) return 1;
-       if (etat_ext_bord) return -2;
-       return -1;
-       }
-_TEMPLATE_ int _MAPPING_::Trouve_Maille_Contenant_Point_Mth_Co(const NOEUD &n,int num_maille,int num_maille_interdit,int max_loop,int &nbr_mailles_examinees,int flag_convexe)
-       {
-
-       int etat_face[NBR_FACES_MAX];
-       int i,tmp,nbr_rnd;
-       int indirection[NBR_FACES_MAX];
-       int ind_reel;
-       int num_reel;
-       int new_num=UNDEFINED;
-       
-       int test=Donne_Directions(num_maille,n,etat_face);
-       
-       int nbr_faces=maillage_back->DONNE_NBR_FACES_MAILLE(num_maille);
-       
-       for (i=0;i<nbr_faces;i++) indirection[i]=i;
-       
-       nbr_mailles_examinees=0;
-       
-       while (nbr_mailles_examinees<max_loop)
-               {
-               if (test==1) 
-                       {
-                       return num_maille;
-                       }
-               if ((test==-2)&&(flag_convexe)) 
-                       {
-                       return 2*UNDEFINED;
-                       }
-               nbr_mailles_examinees++;
-               for (i=0;i<nbr_faces;i++)
-                       {
-                       tmp=indirection[i];
-                       nbr_rnd=rand()%nbr_faces;
-                       indirection[i]=indirection[nbr_rnd];
-                       indirection[nbr_rnd]=tmp;
-                       }
-               for (i=0;(i<nbr_faces)&&(new_num==UNDEFINED);i++) 
-                       {
-                       ind_reel=indirection[i];
-                       num_reel=maillage_back->DONNE_VOISIN_DE_MAILLE(num_maille,ind_reel);
-                       if ((etat_face[ind_reel]==1)&&(num_reel!=num_maille_interdit)) 
-                               {
-                               new_num=num_reel;
-                               }
-                       }
-               for (i=0;(i<nbr_faces)&&(new_num==UNDEFINED);i++) 
-                       {
-                       ind_reel=indirection[i];
-                       num_reel=maillage_back->DONNE_VOISIN_DE_MAILLE(num_maille,ind_reel);
-                       if ((etat_face[ind_reel]==0)&&(num_reel!=num_maille_interdit)) 
-                               {
-                               new_num=num_reel;
-                               }
-                       }
-               if (new_num==UNDEFINED) 
-                       {
-                       new_num=num_maille_interdit;
-                       }
-               num_maille_interdit=num_maille;
-               num_maille=new_num;
-               new_num=UNDEFINED;
-               test=Donne_Directions(num_maille,n,etat_face);
-               }
-       return UNDEFINED;
-       }
-
-#undef _TEMPLATE_
-#undef _MAPPING_
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_MappingTools.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_MappingTools.hxx
deleted file mode 100644 (file)
index 095ef8a..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-#ifndef COORDONNEES_BARYCENTRIQUES_HPP
-#define COORDONNEES_BARYCENTRIQUES_HPP
-
-#define _TEMPLATE_SPE_ template <class NUAGEMAILLE, class NUAGENOEUD, class NOEUD>
-#define _COORDBARYC_ Coordonnees_Barycentriques<NUAGEMAILLE,NUAGENOEUD,NOEUD,DIMENSION>
-#define _COORDBARY_2D_ Coordonnees_Barycentriques<NUAGEMAILLE,NUAGENOEUD,NOEUD,2>
-#define _COORDBARY_3D_ Coordonnees_Barycentriques<NUAGEMAILLE,NUAGENOEUD,NOEUD,3>
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                        DECLARATIONS                        ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Coordonnees_Barycentriques           */
-/*                                                       */
-/*********************************************************/
-
-// C'est la définition de la classe générique template qui n'est utilisée qu'à travers ses spécialisations
-// vu que le nombre de spécialisations a faire est petit (nombre de dimensions utilisée, 3 pour MED)
-// et vu que l'acces a ces classes doit etre rapide, car ce sont des classes de calcul
-// la technique de spécialisation, plus lourde, mais plus rapide, a été préférée aux techniques d'héritage
-
-template <class NUAGEMAILLE, class NUAGENOEUD, class NOEUD, int DIMENSION> class Coordonnees_Barycentriques
-{
-// TEMPLATE GENERIQUE VIDE OBLIGE DE PASSER PAR UNE SPECIALISATION
-};
-
-/*********************************************************/
-/*                                                       */
-/*                   Spécialisation 2D                   */
-/*                                                       */
-/*********************************************************/
-
-_TEMPLATE_SPE_ class _COORDBARY_2D_
-{
-protected :
-       NUAGEMAILLE * mailles;
-       NUAGENOEUD * sommets;
-       
-       vector<int> etat_coord_baryc;
-       vector< vector< vector<double> > > coord_baryc;
-       
-public :
-       
-       Coordonnees_Barycentriques():mailles(NULL),sommets(NULL) {}
-       Coordonnees_Barycentriques(NUAGEMAILLE * m, NUAGENOEUD *n);
-       ~Coordonnees_Barycentriques() {}
-       // donne les pseudos coordonnées barycentriques de M dans ma maille de numéro global num_maille dans mailles
-       // la pseudo coordonnées barycentrique par rapport a une face est la distance normalisée a cette face, 
-       // dans le cas d'une face triangulaire, c'est la coordonnées ba
-       vector<double> Donne_Pseudo_Coord_Baryc(int num_maille,const NOEUD &M);
-       vector<double> Calcule_Base_Coord_Baryc(const vector<int> &simplexe_base);      
-       vector<double> Calcule_Coord_Baryc(int num_maille, const NOEUD & M);
-};
-
-/*********************************************************/
-/*                                                       */
-/*                   Spécialisation 3D                   */
-/*                                                       */
-/*********************************************************/
-
-
-_TEMPLATE_SPE_ class _COORDBARY_3D_
-{
-protected :
-       NUAGEMAILLE * mailles;
-       NUAGENOEUD * sommets;
-       
-       vector<int> etat_coord_baryc;
-       vector< vector< vector<double> > > coord_baryc;
-       
-public :
-       
-       Coordonnees_Barycentriques():mailles(NULL),sommets(NULL) {}
-       Coordonnees_Barycentriques(NUAGEMAILLE * m, NUAGENOEUD *n);
-       ~Coordonnees_Barycentriques() {}
-       vector<double> Donne_Pseudo_Coord_Baryc(int num_maille,const NOEUD &M);
-       vector<double> Calcule_Base_Coord_Baryc(const vector<int> &simplexe_base);      
-       vector<double> Calcule_Coord_Baryc(int num_maille, const NOEUD & M);
-};
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                            CODE                            ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-_TEMPLATE_SPE_ _COORDBARY_2D_::Coordonnees_Barycentriques(NUAGEMAILLE * m, NUAGENOEUD *n):mailles(m),sommets(n)
-               {
-               cout<<"Creation des Coordonnées Barycentriques : "<<flush;
-               int nbr_mailles=mailles->SIZE();
-               etat_coord_baryc=vector<int>(nbr_mailles,FAUX);
-               coord_baryc=vector< vector< vector<double> > >(nbr_mailles);
-               cout<<"OK ! "<<endl;
-               }
-
-_TEMPLATE_SPE_ vector<double> _COORDBARY_2D_::Donne_Pseudo_Coord_Baryc(int num_maille,const NOEUD &M)
-       {
-       int i,j,nbr_faces;
-       if (etat_coord_baryc[num_maille]==FAUX) 
-               {
-               nbr_faces=(*mailles).DONNE_NBR_FACES();
-               
-               coord_baryc[num_maille]=vector< vector<double> >(nbr_faces);
-               
-               for (i=0;i<nbr_faces;i++)
-                       {
-                       vector<int> simplexe_base=(*mailles).DONNE_SIMPLEXE_BASE(i);
-                       coord_baryc[num_maille][i]=Calcule_Base_Coord_Baryc(simplexe_base);
-                       etat_coord_baryc[num_maille]=VRAI;
-                       }
-               }       
-       return Calcule_Coord_Baryc(num_maille,M);
-       }
-
-_TEMPLATE_SPE_ vector<double> _COORDBARY_2D_::Calcule_Base_Coord_Baryc(const vector<int> &simplexe_base)
-       {
-       const vector<int> &ref=simplexe_base;
-       vector<double> retour(3);
-       int i,j;
-               
-       double x0=(*sommets)[ref[0]][0];
-       double y0=(*sommets)[ref[0]][1];
-       double x1=(*sommets)[ref[1]][0];
-       double y1=(*sommets)[ref[1]][1];
-       double x2=(*sommets)[ref[2]][0];
-       double y2=(*sommets)[ref[2]][1];
-               
-       double delta=(x1*y2-x2*y1)+(x2*y0-x0*y2)+(x0*y1-x1*y0);
-
-       retour[0]=(y1-y2)/delta;
-       retour[1]=(x2-x1)/delta;
-       retour[2]=(x1*y2-x2*y1)/delta;
-       
-       return retour;
-       }
-
-_TEMPLATE_SPE_ vector<double> _COORDBARY_2D_::Calcule_Coord_Baryc(int num_maille, const NOEUD & M)
-       {
-       int i,j;
-       vector<double> coord_baryc_M(3,0);
-       for (i=0;i<3;i++) 
-               {
-               for (j=0;j<2;j++) coord_baryc_M[i]+=coord_baryc[num_maille][i][j]*M[j];
-               coord_baryc_M[i]+=coord_baryc[num_maille][i][2];
-               }
-       return coord_baryc_M;
-       }
-
-_TEMPLATE_SPE_ _COORDBARY_3D_::Coordonnees_Barycentriques(NUAGEMAILLE * m, NUAGENOEUD *n):mailles(m),sommets(n)
-               {
-               cout<<"Creation des Coordonnées Barycentriques : "<<flush;
-               int nbr_mailles=mailles->SIZE();
-               etat_coord_baryc=vector<int>(nbr_mailles,FAUX);
-               coord_baryc=vector< vector< vector<double> > >(nbr_mailles);
-               cout<<"OK ! "<<endl;
-               }
-       
-_TEMPLATE_SPE_ vector<double> _COORDBARY_3D_::Donne_Pseudo_Coord_Baryc(int num_maille,const NOEUD &M)
-       {
-       int i,j,nbr_faces;
-       if (etat_coord_baryc[num_maille]==FAUX) 
-               {
-               nbr_faces=(*mailles)[num_maille].DONNE_NBR_FACES();
-               
-               coord_baryc[num_maille]=vector< vector<double> >(nbr_faces);
-               
-               type_retour simplexe_base;
-               
-               for (i=0;i<nbr_faces;i++)
-                       {
-                       (*mailles)[num_maille].DONNE_SIMPLEXE_BASE(i,simplexe_base);
-                       coord_baryc[num_maille][i]=Calcule_Base_Coord_Baryc(vector<int>(&simplexe_base.quoi[0],&simplexe_base.quoi[simplexe_base.combien]));
-                       etat_coord_baryc[num_maille]=VRAI;
-                       }
-               }       
-       return Calcule_Coord_Baryc(num_maille,M);
-       }
-
-
-_TEMPLATE_SPE_ vector<double> _COORDBARY_3D_::Calcule_Base_Coord_Baryc(const vector<int> &simplexe_base)
-       {
-       const vector<int> &ref=simplexe_base;
-       vector<double> retour(4);
-       int i,j;
-               
-       double x0=(*sommets)[ref[0]][0];
-       double y0=(*sommets)[ref[0]][1];
-       double z0=(*sommets)[ref[0]][2];
-       double x1=(*sommets)[ref[1]][0];
-       double y1=(*sommets)[ref[1]][1];
-       double z1=(*sommets)[ref[1]][2];
-       double x2=(*sommets)[ref[2]][0];
-       double y2=(*sommets)[ref[2]][1];
-       double z2=(*sommets)[ref[2]][2];
-       double x3=(*sommets)[ref[3]][0];
-       double y3=(*sommets)[ref[3]][1];
-       double z3=(*sommets)[ref[3]][2];
-               
-       double delta1=((y2-y1)*(z3-z1)-(z2-z1)*(y3-y1));
-       double delta2=((x3-x1)*(z2-z1)-(x2-x1)*(z3-z1));
-       double delta3=((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1));
-       
-       double delta=delta1*(x0-x1)+delta2*(y0-y1)+delta3*(z0-z1);
-
-       retour[0]=delta1/delta;
-       retour[1]=delta2/delta;
-       retour[2]=delta3/delta;
-       retour[3]=-(delta1*x1+delta2*y1+delta3*z1)/delta;
-       
-       return retour;
-       }
-
-_TEMPLATE_SPE_ vector<double> _COORDBARY_3D_::Calcule_Coord_Baryc(int num_maille, const NOEUD & M)
-       {
-       int i,j;
-       int nbr_faces=coord_baryc[num_maille].size();
-       vector<double> coord_baryc_M(nbr_faces,0);
-       for (i=0;i<nbr_faces;i++) 
-               {
-               for (j=0;j<3;j++) coord_baryc_M[i]+=coord_baryc[num_maille][i][j]*M[j];
-               coord_baryc_M[i]+=coord_baryc[num_maille][i][3];
-               }
-       return coord_baryc_M;
-       }
-
-//*/
-
-#undef _TEMPLATE_SPE_
-// template <class NUAGEMAILLE, class NUAGENOEUD, class NOEUD, int DIMENSION>
-#undef _COORDBARYC_
-// Coordonnees_Barycentriques<NUAGEMAILLE,NUAGENOEUD,NOEUD,DIMENSION>
-#undef _COORDBARY_2D_
-// Coordonnees_Barycentriques<NUAGEMAILLE,NUAGENOEUD,NOEUD,2>
-#undef _COORDBARY_3D_
-// Coordonnees_Barycentriques<NUAGEMAILLE,NUAGENOEUD,NOEUD,3>
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperCells.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperCells.hxx
deleted file mode 100644 (file)
index 9859b48..0000000
+++ /dev/null
@@ -1,917 +0,0 @@
-#ifndef WRAPPERS_CELLS_HXX
-#define WRAPPERS_CELLS_HXX
-
-#include "stdio.h"
-#include "stdlib.h"
-
-#include <typeinfo>
-
-#include <vector>
-#include <map>
-
-#ifndef FAUX
-#define FAUX 0
-#endif
-
-#ifndef VRAI
-#define VRAI 1
-#endif
-
-#ifndef UNDEFINED
-#define UNDEFINED -1
-#endif
-
-#include "MEDMEM_define.hxx"
-
-#define MAXNBR 10
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                        DECLARATIONS                        ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*      Equivalence num modele local => MED              */
-/*                                                       */
-/*********************************************************/
-
-#define NBR_MODELES_MAILLES_DEFINIS 15
-int Equivalence_Local_MED[NBR_MODELES_MAILLES_DEFINIS] = { MED_POINT1 ,
-                                                           MED_SEG2   , MED_SEG3,
-                                                          MED_TRIA3  , MED_TRIA6   , MED_QUAD4 , MED_QUAD8  ,
-                                                          MED_TETRA4 , MED_TETRA10 , MED_HEXA8 , MED_HEXA20 , MED_PYRA5 , MED_PYRA13 , MED_PENTA6 , MED_PENTA15 };
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Base          */
-/*                                                       */
-/*********************************************************/
-
-// classe mere des connectivités cannoniques
-// N'a aucune méthode virtuelle pour éviter les pertes de temps
-// Ce sont les constructeurs des classes dérivées qui renseignent les attributs spécifiques
-// un simplexe de base est constitué par un sommet de la maille qui n'est pas contenu dans la face démandée et par trois points de cette face
-// Ce simplexe est utilisé dans le calcul des fonctions barycentriques
-// LES MAILLES SONT DONC ET PAR CONSEQUENT DES MAILLES A FACES PLANES
-// Une face est une face P1, c'est a dire contenant uniquement les sommets, par les noeuds milieux
-// Ces faces sont utilisées pour le calcul de connexité
-
-
-class Connectivite_Canonique_Base
-{
-protected :
-       int                   type          ;
-       int                   nbr_noeuds    ;
-       int                   nbr_faces     ;
-       vector<int>           premier_noeud ;
-       vector< vector<int> > simplexe_base ;
-       vector< vector<int> > face          ;
-public :
-       inline int                 DONNE_NBR_NOEUDS()                        const { return nbr_noeuds;              }
-       inline int                 DONNE_NBR_FACES()                         const { return nbr_faces;               }
-       inline const vector<int> & DONNE_SIMPLEXE_BASE(int num_face)         const { return simplexe_base[num_face]; }
-       inline const vector<int> & DONNE_FACE(int num_face)                  const { return face[num_face];          }
-       inline int                 DONNE_PREMIER_NOEUD_DE_FACE(int num_face) const { return premier_noeud[num_face]; }
-       friend class Wrapper_Maille;
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_*             */
-/*                                                       */
-/*********************************************************/
-
-// définies dans la partie CODE
-// les constructeurs construisent tous les tableaux de connectivités nécessaires en fonction du MODELE MED
-
-//class Connectivite_Canonique_Point1  : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Seg2    : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Seg3    : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Tria3   : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Tria6   : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Quad4   : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Quad8   : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Tetra4  : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Tetra10 : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Hexa8   : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Hexa20  : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Pyra5   : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Pyra13  : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Penta6  : public Connectivite_Canonique_Base; 
-//class Connectivite_Canonique_Penta15 : public Connectivite_Canonique_Base; 
-
-/*********************************************************/
-/*                                                       */
-/*               Classe Connectivite_Generale            */
-/*                                                       */
-/*********************************************************/
-
-// Cette classe contient toutes les connectivités canoniques, elle est utilisée dans Wrapper_Nuage_Maille
-
-class Connectivite_Generale
-{
-protected :
-       vector<Connectivite_Canonique_Base *> AllConn;
-public :
-       Connectivite_Generale();
-       ~Connectivite_Generale();
-       // Renvoie la connectivite locale de la maille de numero local de modele i, dont l'equivalent MED est Equivalence_Local_MED[i]
-       Connectivite_Canonique_Base * operator[](int i) const {return AllConn[i];}
-};
-
-/*********************************************************/
-/*                                                       */
-/*                  Structure type_retour                */
-/*                                                       */
-/*********************************************************/
-
-// c'est une structure de type petit tableau statique, pour accelerer les acces et eviter les allocations dynamiques
-
-struct type_retour
-       {
-       int quoi[MAXNBR];
-       int combien;
-       };
-       
-/*********************************************************/
-/*                                                       */
-/*           Fonction Comparaison_Informe(...)           */
-/*                                                       */
-/*********************************************************/
-
-// renvoie vrai si v1 et v2 contiennent la meme chose et sont de meme tailles, faux sinon
-
-int Comparaison_Informe(const type_retour &v1,const type_retour &v2);
-
-/*********************************************************/
-/*                                                       */
-/*               Classe Wrapper_Maille                   */
-/*                                                       */
-/*********************************************************/
-
-// c'est le wrapper maille sur int[]
-// cette classe n'est pas dérivée, tous les types de mailles sont stockées sous cette forme
-// la variable qui définit les type est la Connectivité_Canonique_Base, qui est toujours polymorphée en un type spécifique
-
-
-class Wrapper_Maille
-{
-protected :
-
-       // la référence du premier sommet
-       int * sommets;  
-       // la connectivité canonique, toujours polymorphée
-       Connectivite_Canonique_Base * modele;
-       
-public :
-       Wrapper_Maille():sommets(NULL) {}
-       ~Wrapper_Maille() {}
-       
-       // sorte de transtypeur, cette méthode prend une référence vers un premier sommet et un modele canonique et renvoie *this en tant que wrapper sur ces données   
-       inline const Wrapper_Maille & positionne(int * pos, Connectivite_Canonique_Base * mod){sommets=pos;modele=mod;return *this;}
-       // méthodes de la politique (les numéros renvoyés sont des numéros GLOBAUX, calculés à partir de l'indirection fournie par la connectivité canonique
-       // par contre les numéros de face fournis sont des numéros locaux
-       // renvoie le numéro global du sommet de numéro local i
-       inline int operator[](int i) const {return sommets[i];} 
-       inline int  DONNE_NBR_NOEUDS()                               const;
-       inline int  DONNE_NBR_FACES()                                const;
-       inline void DONNE_SIMPLEXE_BASE(int num_face,type_retour & simplexe) const;
-       inline void DONNE_FACE(int num_face,type_retour & face)              const;
-       inline int  DONNE_PREMIER_NOEUD_DE_FACE(int num_face)        const;
-       // pour une face, donne, s'il existe, le numéro local de face équivalente, -1 sinon
-       inline int  DONNE_NUM_LOC_FACE_EGALE_A_FORMANT(const type_retour & sommets_face) const;
-       // donne le numéro local de modele
-       inline int  DONNE_TYPE_MAILLE()     const; 
-       // donne le numéro MED de modele
-       inline int  DONNE_TYPE_MED_MAILLE() const; 
-};
-
-
-/*********************************************************/
-/*                                                       */
-/*            Classe Wrapper_Nuage_Maille                */
-/*                                                       */
-/*********************************************************/
-
-// Classe de Wrapping sur un nuage de maille donné sous forme SKYLINE 
-// voir la classe Wrapper_Med_Connectivity dans MEDMEM_Wrapper_Connectivity.hxx pour la politique de classe
-
-template <class FORME_SKYLINE> class Wrapper_Nuage_Maille
-{
-protected :
-       // pointeur sur une forme skyline
-       FORME_SKYLINE * mailles;
-       // toutes les connectivités canoniques
-       Connectivite_Generale ConnGen;
-       int nbr_mailles;
-       // ATTENTION, c'est le type en numero local de modele, pour éviter une map, le numéro de modele MED correponsdant est donné par Equivalence_Local_MED
-       vector<int> types;
-       // pointeur dans mailles du premier sommet de chaque maille (évite les calculs du au nombres éventuellement différents de sommets par maille)
-       vector< int * > premier_pointeur;
-       // maille_courante, est un Wrapper_Maille déja instancié utilisé par l'opérateur [] pour accelerer les acces
-       Wrapper_Maille maille_courante;
-public :
-       Wrapper_Nuage_Maille():mailles(NULL) {}
-       // le constructeur renseigne types et premier_pointeur, instantie ConnGenn et positionne maille_courante sur la premiere maille
-       Wrapper_Nuage_Maille(FORME_SKYLINE * fs);
-       ~Wrapper_Nuage_Maille() {}
-       // Méthodes de la politique
-       // positionne maille_courante sur la maille de numéro global i et renvoie maille_courante
-       inline const Wrapper_Maille & operator[](int i);
-       inline int         SIZE() {return nbr_mailles;}
-       void affiche();
-};
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                            CODE                            ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*           Fonction Comparaison_Informe(...)           */
-/*                                                       */
-/*********************************************************/
-
-// effectue le test (v1 et v2 ont meme taille)&&(chaque élément de v1 est dans v2)
-// c'est une égalité forte si on est sur que v1 et v2 n'ont pas de doublets, 
-// ce qui est le cas pour les mailles et les simplexes
-
-int Comparaison_Informe(const type_retour &v1,const type_retour &v2)
-       {
-       int t1=v1.combien;
-       int t2=v2.combien;
-       if (t1!=t2) return FAUX;
-       int i1,i2;
-       int test;
-       for (i1=0;i1<t1;i1++)
-               {
-               test=1;
-               for (i2=0;(i2<t2)&&(test);i2++)
-                       {
-                       if (v1.quoi[i1]==v2.quoi[i2]) test=0;
-                       }
-               if (test) return FAUX;
-               }
-       return VRAI;
-       }
-
-/*********************************************************/
-/*                                                       */
-/*               Classe Wrapper_Maille                   */
-/*                                                       */
-/*********************************************************/
-
-inline int  Wrapper_Maille::DONNE_NBR_NOEUDS()                                       const
-       {
-       return modele->DONNE_NBR_NOEUDS();
-       }
-inline int  Wrapper_Maille::DONNE_NBR_FACES()                                        const
-       {
-       return modele->DONNE_NBR_FACES();
-       }
-inline void Wrapper_Maille::DONNE_SIMPLEXE_BASE(int num_face,type_retour & simplexe) const
-       {
-       const vector<int> & simplexelocal=modele->DONNE_SIMPLEXE_BASE(num_face);
-       simplexe.combien=simplexelocal.size();
-       for (int i=0;i<simplexe.combien;i++) simplexe.quoi[i]=sommets[simplexelocal[i]];
-       }
-inline void Wrapper_Maille::DONNE_FACE(int num_face,type_retour & face)               const
-       {
-       const vector<int> & facelocal=modele->DONNE_FACE(num_face);
-       face.combien=facelocal.size();
-       for (int i=0;i<face.combien;i++) face.quoi[i]=sommets[facelocal[i]];
-       }
-inline int  Wrapper_Maille::DONNE_PREMIER_NOEUD_DE_FACE(int num_face)                const
-       {
-       return sommets[modele->DONNE_PREMIER_NOEUD_DE_FACE(num_face)];
-       }
-inline int  Wrapper_Maille::DONNE_NUM_LOC_FACE_EGALE_A_FORMANT(const type_retour & sommets_face) const
-       {
-       type_retour face_loc;
-       int num_face;
-       int taille_face_exam;
-       int test=FAUX;
-       for (num_face=0;num_face<DONNE_NBR_FACES();num_face++)
-               {
-               DONNE_FACE(num_face,face_loc);
-               if (Comparaison_Informe(face_loc,sommets_face)) return num_face;
-               }
-       return UNDEFINED;
-       }
-inline int  Wrapper_Maille::DONNE_TYPE_MAILLE()     const
-       {
-       return modele->type;
-       }
-inline int  Wrapper_Maille::DONNE_TYPE_MED_MAILLE() const 
-       {
-       return Equivalence_Local_MED[modele->type];
-       }
-
-       
-/*********************************************************/
-/*                                                       */
-/*            Classe Wrapper_Nuage_Maille                */
-/*                                                       */
-/*********************************************************/    
-       
-template <class FORME_SKYLINE> Wrapper_Nuage_Maille<FORME_SKYLINE>::Wrapper_Nuage_Maille(FORME_SKYLINE * fs):mailles(fs)
-               {
-               int i;
-               map<int,int> Equivalence_MED_Local;
-               // calcule la map de convertion des types med en numéro local, pour accelerer l'acces
-               for (i=0;i<NBR_MODELES_MAILLES_DEFINIS;i++) Equivalence_MED_Local[Equivalence_Local_MED[i]]=i;
-               nbr_mailles=mailles->SIZE();
-               types.resize(nbr_mailles);
-               premier_pointeur.resize(nbr_mailles);
-               for (i=0;i<nbr_mailles;i++) 
-                       {
-                       types[i]=Equivalence_MED_Local[mailles->DONNE_TYPE_MAILLE(i)];
-                       premier_pointeur[i]=mailles->DONNE_PREMIER_POINTEUR(i);
-                       }
-               maille_courante.positionne(premier_pointeur[0],ConnGen[types[0]]);
-               }
-template <class FORME_SKYLINE> const Wrapper_Maille & Wrapper_Nuage_Maille<FORME_SKYLINE>::operator[](int i)
-               {
-               return maille_courante.positionne(premier_pointeur[i],ConnGen[types[i]]);
-               }
-template <class FORME_SKYLINE> void Wrapper_Nuage_Maille<FORME_SKYLINE>::affiche()
-               {
-               int i,j;
-               for (i=0;i<nbr_mailles;i++)
-                       {
-                       cout<<"Maille "<<i<<" MED "<<Equivalence_Local_MED[types[i]]<<" : "<<flush;
-                       for (j=0;j<(*this)[i].DONNE_NBR_NOEUDS();j++) cout<<(*this)[i][j]<<" "<<flush;
-                       cout<<endl;
-                       }               
-               }
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Point1        */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Point1  : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Point1()
-               {
-               
-               type=0;
-               
-               nbr_noeuds = 1;
-               nbr_faces = 0;          
-               
-               premier_noeud = vector<int>(0);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               }
-       ~Connectivite_Canonique_Point1() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Seg2          */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Seg2    : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Seg2()
-               {
-               
-               type=1;
-               
-               int pn[2] = {0,1};
-               int sb[4] = {1,0,0,1};
-               int fa[2] = {0,1};
-               int po[3] = {0,1,2};
-               
-               nbr_noeuds = 2;
-               nbr_faces = 2;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[2*i],&sb[2*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Seg2() {}
-};
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Seg3          */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Seg3    : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Seg3()
-               {
-               
-               type=2;
-               
-               int pn[2] = {0,1};
-               int sb[4] = {1,0,0,1};
-               int fa[2] = {0,1};
-               int po[3] = {0,1,2};
-               
-               nbr_noeuds = 3;
-               nbr_faces = 2;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[2*i],&sb[2*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Seg3() {}
-};
-
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Tria3         */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Tria3 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Tria3()
-               {
-               
-               type=3;
-               
-               int pn[3] = {0,1,2};
-               int sb[9] = {2,0,1,0,1,2,1,2,0};
-               int fa[6] = {0,1,1,2,2,0};
-               int po[4] = {0,2,4,6};
-               nbr_noeuds = 3;
-               nbr_faces = 3;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[3*i],&sb[3*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Tria3() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Tria6         */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Tria6 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Tria6()
-               {
-               
-               type=4;
-               
-               int pn[3] = {0,1,2};
-               int sb[9] = {2,0,1,0,1,2,1,2,0};
-               int fa[6] = {0,1,1,2,2,0};
-               int po[4] = {0,2,4,6};
-               nbr_noeuds = 6;
-               nbr_faces = 3;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[3*i],&sb[3*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Tria6() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Quad4         */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Quad4 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Quad4()
-               {
-               
-               type=5;
-               
-               int pn[4] = {0,1,2,3};
-               int sb[12] = {2,0,1,3,1,2,0,2,3,1,0,2};
-               int fa[8] = {0,1,1,2,2,3,3,0};
-               int po[5] = {0,2,4,6,8};
-               nbr_noeuds = 4;
-               nbr_faces = 4;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[3*i],&sb[3*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Quad4() {}
-};
-
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Quad8         */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Quad8 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Quad8()
-               {
-               
-               type=6;
-               
-               int pn[4] = {0,1,2,3};
-               int sb[12] = {2,0,1,3,1,2,0,2,3,1,0,2};
-               int fa[8] = {0,1,1,2,2,3,3,0};
-               int po[5] = {0,2,4,6,8};
-               nbr_noeuds = 8;
-               nbr_faces = 4;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[3*i],&sb[3*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Quad8() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Tetra4        */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Tetra4 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Tetra4()
-               {
-               
-               type=7;
-               
-               int pn[4] = {0,0,1,2};
-               int sb[16] = {3,0,1,2,2,0,3,1,0,1,3,2,1,2,3,0};
-               int fa[12] = {0,1,2,0,3,1,1,3,2,2,3,0};
-               int po[5] = {0,3,6,9,12};
-               nbr_noeuds = 4;
-               nbr_faces = 4;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[4*i],&sb[4*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Tetra4() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*          Classe Connectivite_Canonique_Tetra10        */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Tetra10 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Tetra10()
-               {
-               
-               type=8;
-               
-               int pn[4] = {0,0,1,2};
-               int sb[16] = {3,0,1,2,2,0,3,1,0,1,3,2,1,2,3,0};
-               int fa[12] = {  0,1,2,  0,3,1,  1,3,2,  2,3,0};
-               int po[5] = {0,3,6,9,12};
-               
-               nbr_noeuds = 10;
-               nbr_faces = 4;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[4*i],&sb[4*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Tetra10() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Hexa8         */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Hexa8 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Hexa8()
-               {
-               
-               type=9;
-               
-               int pn[6] = {0,4,0,1,2,3};
-               int sb[24] = {5,0,1,2,0,7,6,5,3,0,4,5,4,1,5,6,1,2,6,3,2,3,7,0};
-               int fa[24] = {0,1,2,3,4,5,6,7,0,4,5,1,1,5,6,2,2,6,7,3,3,7,4,0};
-               int po[7] = {0,4,8,12,16,20,24};
-               nbr_noeuds = 8;
-               nbr_faces = 6;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[4*i],&sb[4*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Hexa8() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Hexa20        */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Hexa20 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Hexa20()
-               {
-               
-               type=10;
-               
-               int pn[6] = {0,4,0,1,2,3};
-               int sb[24] = {5,0,1,2,0,7,6,5,3,0,4,5,4,1,5,6,1,2,6,3,2,3,7,0};
-               int fa[24] = {0,1,2,3,4,5,6,7,0,4,5,1,1,5,6,2,2,6,7,3,3,7,4,0};
-               int po[7] = {0,4,8,12,16,20,24};
-               nbr_noeuds = 20;
-               nbr_faces = 6;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[4*i],&sb[4*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Hexa20() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Pyra5         */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Pyra5 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Pyra5()
-               {
-               
-               type=11;
-               
-               int pn[5] = {0,0,1,2,3};
-               int sb[20] = {4,0,1,2,3,0,4,1,0,1,4,2,1,2,4,3,2,0,3,4};
-               int fa[16] = {0,1,2,3,0,4,1,1,4,2,2,4,3,3,4,0};
-               int po[6] = {0,4,7,10,13,16};
-               nbr_noeuds = 5;
-               nbr_faces = 5;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[4*i],&sb[4*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Pyra5() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Pyra13        */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Pyra13 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Pyra13()
-               {
-               
-               type=12;
-               
-               int pn[5] = {0,0,1,2,3};
-               int sb[20] = {4,0,1,2,3,0,4,1,0,1,4,2,1,2,4,3,2,0,3,4};
-               int fa[16] = {0,1,2,3,0,4,1,1,4,2,2,4,3,3,4,0};
-               int po[6] = {0,4,7,10,13,16};
-               nbr_noeuds = 13;
-               nbr_faces = 5;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[4*i],&sb[4*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Pyra13() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Penta6        */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Penta6 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Penta6()
-               {
-               
-               type=13;
-               
-               int pn[5] = {0,3,0,1,2};
-               int sb[20] = {3,0,1,2,2,3,4,5,5,0,3,1,0,1,4,2,1,2,5,0};
-               int fa[18] = {0,1,2,3,4,5,0,3,4,1,1,4,5,2,2,5,3,1};
-               int po[6] = {0,3,6,10,14,18};
-               nbr_noeuds = 6;
-               nbr_faces = 5;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[4*i],&sb[4*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Penta6() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*           Classe Connectivite_Canonique_Penta15       */
-/*                                                       */
-/*********************************************************/
-
-class Connectivite_Canonique_Penta15 : public Connectivite_Canonique_Base
-{
-public :
-       Connectivite_Canonique_Penta15()
-               {
-               
-               type=14;
-               
-               int pn[5] = {0,3,0,1,2};
-               int sb[20] = {3,0,1,2,2,3,4,5,5,0,3,1,0,1,4,2,1,2,5,0};
-               int fa[18] = {0,1,2,3,4,5,0,3,4,1,1,4,5,2,2,5,3,1};
-               int po[6] = {0,3,6,10,14,18};
-               nbr_noeuds = 15;
-               nbr_faces = 5;
-               
-               
-               premier_noeud = vector<int>(&pn[0],&pn[nbr_faces]);
-               
-               simplexe_base = vector< vector<int> >(nbr_faces);
-               face          = vector< vector<int> >(nbr_faces);
-               
-               int i;
-               
-               for (i=0;i<nbr_faces;i++) simplexe_base[i]=vector<int>(&sb[4*i],&sb[4*(i+1)]);
-               for (i=0;i<nbr_faces;i++) face[i]=vector<int>(&fa[po[i]],&fa[po[i+1]]);
-               
-               }
-       ~Connectivite_Canonique_Penta15() {}
-};
-
-/*********************************************************/
-/*                                                       */
-/*               Classe Connectivite_Generale            */
-/*                                                       */
-/*********************************************************/
-
-Connectivite_Generale::Connectivite_Generale():AllConn(NBR_MODELES_MAILLES_DEFINIS)
-       {
-       // l'ordre est important, il dépend de la relation entre numéro local et modele et numéro MED
-       AllConn[ 0]=new Connectivite_Canonique_Point1  ();
-       AllConn[ 1]=new Connectivite_Canonique_Seg2    ();
-       AllConn[ 2]=new Connectivite_Canonique_Seg3    ();
-       AllConn[ 3]=new Connectivite_Canonique_Tria3   ();
-       AllConn[ 4]=new Connectivite_Canonique_Tria6   ();
-       AllConn[ 5]=new Connectivite_Canonique_Quad4   ();          
-       AllConn[ 6]=new Connectivite_Canonique_Quad8   ();          
-       AllConn[ 7]=new Connectivite_Canonique_Tetra4  ();          
-       AllConn[ 8]=new Connectivite_Canonique_Tetra10 ();          
-       AllConn[ 9]=new Connectivite_Canonique_Hexa8   ();
-       AllConn[10]=new Connectivite_Canonique_Hexa20  ();
-       AllConn[11]=new Connectivite_Canonique_Pyra5   ();          
-       AllConn[12]=new Connectivite_Canonique_Pyra13  ();          
-       AllConn[13]=new Connectivite_Canonique_Penta6  ();          
-       AllConn[14]=new Connectivite_Canonique_Penta15 ();          
-       }
-Connectivite_Generale::~Connectivite_Generale() 
-       {
-       for (int i=0;i<AllConn.size();i++) delete AllConn[i];
-       }
-
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperConnectivity.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperConnectivity.hxx
deleted file mode 100644 (file)
index 439864a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef MEDMEM_WRAPPER_CONNECTIVITY_HXX
-#define MEDMEM_WRAPPER_CONNECTIVITY_HXX
-
-#include "MEDMEM_Connectivity.hxx"
-
-#include <vector>
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                DECLARATIONS ET CODE                        ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*               Wrapper_Med_Connectivity                */
-/*                                                       */
-/*********************************************************/
-
-// obligé de faire de la recopie car MED n'utilise pas la numérotation standart C
-
-class Wrapper_Med_Connectivity
-{
-protected :
-       int * mailles;
-       int nbr_mailles;
-       vector<int> types;
-       vector< int* > premier_pointeur;
-       
-public :       
-       ~Wrapper_Med_Connectivity() {if (mailles) delete [] mailles;}
-       Wrapper_Med_Connectivity():mailles(NULL) {}
-       Wrapper_Med_Connectivity(CONNECTIVITY * maillesmed)
-               {
-               const med_int * tab_sommets_mailles=maillesmed->getConnectivity(MED_NODAL,MED_CELL,MED_ALL_ELEMENTS);
-               const med_int * med_connectivite=maillesmed->getConnectivityIndex(MED_FULL_INTERLACE,MED_CELL);
-               const med_int * med_index=maillesmed->getValueIndex(MED_FULL_INTERLACE);
-               nbr_mailles=maillesmed->getNumberOf(MED_CELL,MED_ALL_ELEMENTS);
-               int size=med_index[nbr_mailles]-med_index[0];
-               types.resize(nbr_mailles);
-               premier_pointeur.resize(nbr_mailles);
-               mailles=new int[size];
-               int i;
-               for (i=0;i<size;i++) 
-                       {
-                       mailles[i]=tab_sommets_mailles[i]-1;
-                       }
-               for (i=0;i<nbr_mailles;i++)
-                       {
-                       types[i]=maillesmed->getElementType(MED_CELL,i+1); // A VERIFIER : le +1
-                       premier_pointeur[i]=&mailles[med_index[i]-1]; // A VERIFIER : la formule
-                       }
-               }
-       // Méthodes de la politique
-       inline int SIZE() {return nbr_mailles;}
-       inline int DONNE_TYPE_MAILLE(int i) {return types[i];}
-       inline int * DONNE_PREMIER_POINTEUR(int i) {return premier_pointeur[i];}
-};
-
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperField.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperField.hxx
deleted file mode 100644 (file)
index b432a1c..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-#ifndef MEDMEM_WRAPPER_FIELD_HXX
-#define MEDMEM_WRAPPER_FIELD_HXX
-
-#include "MEDMEM_Field.hxx"
-
-#include <vector>
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                 DECLARATIONS ET CODE                       ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*        Template Arithmétiques de Valdhuizen           */
-/*                                                       */
-/*********************************************************/
-
-// permet de faire des opérations algébriques sur des Wrappers_MED_Field sans faire d'allocations inutiles
-// voir les articles de Valdhuizen pour la compréhension du processus
-
-template <class TYPE> class Valeur;
-
-struct Plus 
-{
-public :
-       static double apply(double a,double b) {return a+b;}
-};
-
-struct Multiply
-{
-public :
-       static double apply(double a,double b) {return a*b;}
-};
-
-
-template <typename Left,typename Op, typename Right> struct X
-{
-       Left left;
-       Right right;
-       X(Left l,Right r):left(l),right(r){}
-       double operator[](int i)
-               {
-               return Op::apply(left[i],right[i]);
-               }
-};
-
-template <typename Right> struct X<double,Multiply,Right>
-{
-       double left;
-       Right right;
-       X(double l,Right r):left(l),right(r){}
-       double operator[](int i)
-               {
-               return Multiply::apply(left,right[i]);
-               }
-};
-
-template <typename TYPE> X< Valeur<TYPE>,Plus,Valeur<TYPE> > operator+(Valeur<TYPE> v1,Valeur<TYPE> v2)
-{
-return X< Valeur<TYPE>,Plus,Valeur<TYPE> >(v1,v2);
-}
-
-template <typename TYPE> X< double,Multiply,Valeur<double> > operator*(TYPE sca,Valeur<TYPE> v)
-{
-return X< TYPE,Multiply,Valeur<TYPE> >(sca,v);
-}
-
-template <typename TYPE,typename  L, typename O, typename R> X< Valeur<TYPE>,Plus,X<L,O,R> > operator+(Valeur<TYPE> v,X<L,O,R> expression)
-{
-return X< Valeur<TYPE>,Plus,X<L,O,R> >(v,expression);
-}
-
-template <typename TYPE,typename  L, typename O, typename R> X< X<L,O,R>,Plus,Valeur<TYPE> > operator+(X<L,O,R> expression,Valeur<TYPE> v)
-{
-return X< X<L,O,R>,Plus,Valeur<TYPE> >(expression,v);
-}
-
-template <typename  Ll, typename  Ol, typename  Rl,typename  Lr, typename  Or, typename  Rr> X< X<Ll,Ol,Rl>,Plus, X<Lr,Or,Rr> > operator+(X<Ll,Ol,Rl> el, X<Lr,Or,Rr> er )
-{
-return X< X<Ll,Ol,Rl>,Plus,X<Lr,Or,Rr> >(el,er);
-}
-
-template <typename  L, typename O, typename R> X< double,Multiply,X<L,O,R> > operator*(double sca,X<L,O,R> expression)
-{
-return X< double,Multiply,X<L,O,R> >(sca,expression);
-}
-
-template <typename Left,typename Op,typename Right> X< double,Multiply,X<Left,Op,Right> > operator/(X<Left,Op,Right> l,double x)
-{
-return X< double,Multiply,X<Left,Op,Right> >(((double) 1/x),l);
-}
-
-/*********************************************************/
-/*                                                       */
-/*                    Classe Valeur                      */
-/*                                                       */
-/*********************************************************/
-
-// Problèmes : les constructeurs par copie ne sont pas satisfaisants
-// Valeur est symboliquement l'argument d'une classe formelle Vecteur<Valeur>
-// elle peut etre un réel ou un pointeur sur réel, simulant un vecteur de vecteur
-
-template <class TYPE> class Valeur
-{
-protected :
-       TYPE * valeurs;
-       int nbr_valeurs;
-       int a_detruire;
-public :
-       Valeur():valeurs(NULL),a_detruire(0){}
-       Valeur(TYPE * val,int nv):valeurs(val),nbr_valeurs(nv),a_detruire(0){} // A VERIFIER
-       Valeur(int n):nbr_valeurs(n),a_detruire(1)
-               {
-               valeurs=new TYPE[nbr_valeurs];
-               }
-       template <typename Left,typename Op,typename Right> Valeur(X<Left,Op,Right> expression)
-               {
-               for (int i=0;i<nbr_valeurs;i++) valeurs[i]=expression[i];
-               }
-       template <typename Left,typename Op,typename Right> void operator=(X<Left,Op,Right> expression)
-               {
-               for (int i=0;i<nbr_valeurs;i++) valeurs[i]=expression[i];
-               }
-       void operator=(Valeur v)
-               {
-               for (int i=0;i<nbr_valeurs;i++) valeurs[i]=v[i];
-               }
-       Valeur(const Valeur &v):nbr_valeurs(v.nbr_valeurs)
-               {
-               if (v.a_detruire) 
-                       {
-                       a_detruire=1;
-                       valeurs=new TYPE[nbr_valeurs];
-                       for (int i=0;i<nbr_valeurs;i++) valeurs[i]=v.valeurs[i];
-                       }
-               else
-                       {
-                       a_detruire=0;
-                       valeurs=v.valeurs;
-                       }
-               }
-       ~Valeur(){if (a_detruire) delete [] valeurs;}
-       TYPE operator[](int i){return valeurs[i];}
-       int SIZE() const {return nbr_valeurs;}
-       double NormeAbs()
-               {
-               int i;
-               double tmp=0;
-               for (i=0;i<nbr_valeurs;i++) tmp+=fabs(valeurs[i]);
-               return tmp;
-               }
-
-};
-
-template <class TYPE> ostream &operator<<(ostream &os,Valeur<TYPE> v)
-       {       
-       os<<"("<<flush;
-       for (int i=0;i<v.SIZE();i++) os<<" "<<v[i]<<flush;
-       os<<" ) "<<flush;
-       return os;
-       }
-
-/*********************************************************/
-/*                                                       */
-/*               Classe Wrapper_MED_Field                */
-/*                                                       */
-/*********************************************************/
-
-// c'est la classe de Wrapping sur un objet FIELD<double> MEDMEMOIRE
-
-class Wrapper_MED_Field
-{
-protected :
-       int nbr_valeurs;
-       int nbr_composantes;
-       double * valeurs;
-public :
-       Wrapper_MED_Field():valeurs(NULL){}
-       Wrapper_MED_Field(int nv, int nc, double * v):nbr_valeurs(nv),nbr_composantes(nc),valeurs(v)
-               {
-               }
-       Wrapper_MED_Field(const FIELD<double> * medfield)
-               {
-               nbr_valeurs=medfield->getNumberOfValues();
-               nbr_composantes=medfield->getNumberOfComponents();
-               valeurs=const_cast<double *>(medfield->getValue(MED_FULL_INTERLACE));
-               }
-       ~Wrapper_MED_Field(){}
-       inline Valeur<double> operator[](int i) 
-               {
-               return Valeur<double>(&valeurs[nbr_composantes*i],nbr_composantes);
-               }
-       double * Get_Valeurs() {return valeurs;}
-       inline int Get_Nbr_Valeurs() const {return nbr_valeurs;}
-       inline int Get_Nbr_Composantes() const {return nbr_composantes;}
-       friend ostream & operator<<(ostream &os, Wrapper_MED_Field);
-}; 
-
-ostream & operator<<(ostream &os, Wrapper_MED_Field wmf)
-{
-for (int i=0;i<wmf.nbr_valeurs;i++) os<<"Wrapper_MED_Field["<<i<<"] = "<<wmf[i]<<endl;
-return os;
-}
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperMesh.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperMesh.hxx
deleted file mode 100644 (file)
index 87b8ce9..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-#ifndef MEDMEM_WRAPPER_MESH_HXX
-#define MEDMEM_WRAPPER_MESH_HXX
-
-#include "MEDMEM_WrapperCells.hxx"
-
-#include "stdio.h"
-#include "stdlib.h"
-
-#include <vector>
-
-#ifndef UNDEFINED
-#define UNDEFINED -1
-#endif
-
-#ifndef FAUX
-#define FAUX 0
-#endif
-
-#ifndef VRAI
-#define VRAI 1
-#endif
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                        DECLARATIONS                        ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*                   Wrapper_Maillage                    */
-/*                                                       */
-/*********************************************************/
-
-// cette classe est à la fois un wrapper sur un nuage de maille et une classe d'algorithme
-// elle s'occupe de construire les liens de connexités minimums du nuage de maille
-// pour le transformer en maillage suffisament riche pour etre utilisé par les algorithmes de connexités
-// et autres méthodes nécessitant des informations de connexité sur un maillage
-
-// la version utilisée dans MEDMEMOIRE est dé-templatifiée dans MEDMEM_InterpolationHighLevelObject.hxx
-
-template <class NUAGEMAILLE> class Wrapper_Maillage
-{
-protected : 
-       // référence vers le nuage de maille, 
-       // voir la classe Wrapper_Nuage_Maille dans MEDMEM_WrapperCells.hxx pour la politique
-       NUAGEMAILLE * mailles;
-       
-       int nbr_noeuds;
-       
-       // liste des numéros globaux de faces contenues dans une maille
-       vector< vector<int> > faces_contenues;
-       // liste des numéros globaux de mailles qui contiennent un noeud
-       vector< vector<int> > mailles_contenant_noeud;
-       // liste des numéros globaux de mailles voisines d'une maille donnée via une face
-       // l'ordre du voisin dans la liste implique par quelle face dans le tableau faces_contenues il est voisin
-       vector< vector<int> > voisins_de_maille;
-       
-       // liste des numéros globaux de faces qui sont au bord du maillage
-       // Ce sont les faces qui n'ont qu'une seule maille de rattachement
-       vector<int> face_au_bord;
-       // liste des numéros globaux de mailles qui sont au bord
-       // ce sont les mailles qui ont une face sans voisin
-       vector<int> maille_au_bord;
-
-       // Méthode privée
-       // construit le tableau mailles_contenant_noeud
-       void Construit_Contenant_Noeud();
-       
-public :
-
-       Wrapper_Maillage():mailles(NULL) {}
-       // Construit les Connectivités du maillage à la construction
-       Wrapper_Maillage(NUAGEMAILLE * fs, int nn);
-       ~Wrapper_Maillage() {}
-       
-       // Méthodes de la politique
-       inline int DONNE_NBR_FACES_MAILLE(int num_maille); 
-       inline int DONNE_VOISIN_DE_MAILLE(int num_maille,int num_face) const;
-       inline int EST_AU_BORD_FACE_DE_MAILLE(int num_maille,int num_face) const; 
-       inline int DONNE_NBR_FACES(int num_maille) const;
-       inline int DONNE_PREMIERE_MAILLE_CONTENANT(int num_noeud) const;
-       inline NUAGEMAILLE * DONNE_POINTEUR_NUAGEMAILLE();
-
-};
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                            CODE                            ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-template <class NUAGEMAILLE> int Wrapper_Maillage<NUAGEMAILLE>::DONNE_PREMIERE_MAILLE_CONTENANT(int num_noeud) const
-       {
-       return mailles_contenant_noeud[num_noeud][0];
-       }
-template <class NUAGEMAILLE> int Wrapper_Maillage<NUAGEMAILLE>::DONNE_VOISIN_DE_MAILLE(int num_maille,int num_face) const
-       {
-       return voisins_de_maille[num_maille][num_face];
-       }
-template <class NUAGEMAILLE> int Wrapper_Maillage<NUAGEMAILLE>::EST_AU_BORD_FACE_DE_MAILLE(int num_maille,int num_face) const
-       {
-       return face_au_bord[faces_contenues[num_maille][num_face]];
-       }
-template <class NUAGEMAILLE> int Wrapper_Maillage<NUAGEMAILLE>::DONNE_NBR_FACES_MAILLE(int num_maille)
-       {
-       return (*mailles)[num_maille].DONNE_NBR_FACES();
-       }
-template <class NUAGEMAILLE> NUAGEMAILLE * Wrapper_Maillage<NUAGEMAILLE>::DONNE_POINTEUR_NUAGEMAILLE()
-       {
-       return mailles;
-       }
-template <class NUAGEMAILLE> void Wrapper_Maillage<NUAGEMAILLE>::Construit_Contenant_Noeud()
-       {
-       int nbr_noeuds_maille;
-       int num,num_noeud,num_maille;
-       
-       mailles_contenant_noeud.resize(nbr_noeuds);
-       
-       // parcours le tableau des mailles, puis les sommets de chaque maille
-       // et utilise un push_back pour renseigner mailles_contenant_noeud
-               
-       for (num_maille=0;num_maille<mailles->SIZE();num_maille++)
-               {
-               nbr_noeuds_maille=(*mailles)[num_maille].DONNE_NBR_NOEUDS();
-               for (num_noeud=0;num_noeud<nbr_noeuds_maille;num_noeud++) 
-                       {
-                       num=(*mailles)[num_maille][num_noeud];
-                       mailles_contenant_noeud[num].push_back(num_maille);
-                       }
-               }       
-
-       }
-template <class NUAGEMAILLE> Wrapper_Maillage<NUAGEMAILLE>::Wrapper_Maillage(NUAGEMAILLE * fs,int nn)
-       {
-       
-       if (fs) mailles=fs;
-       else
-               {
-               cerr<<"Wrapper_Maillage : Nuage mailles vide passé en argument"<<endl;
-               exit(-1);
-               }
-               
-       int i,j,k;
-       int num_local_face;
-       int ind_num_noeud,num_noeud;
-       int num_maille;
-       int ind_num_maille_sec,num_maille_sec;
-       int num_local_sec;
-       int flag_existence;
-       int nbr_mailles=mailles->SIZE();
-       int nbr_formants=0;
-       int approx_nbr_formants=0;
-       int tmp;
-       int num_loc;
-       
-       nbr_noeuds=nn;
-       
-       voisins_de_maille.resize(nbr_mailles);
-       faces_contenues.resize(nbr_mailles);
-       maille_au_bord.resize(nbr_mailles,UNDEFINED);
-       
-       type_retour sommets_face;
-       
-       Construit_Contenant_Noeud();
-       
-       // mise a taille des tableaux et calcul d'une approximation du nombre de faces
-       // on postule que le nombre de faces réel est le dixieme de la somme du nombre de faces par maille sur toutes les mailles
-       // on calcule cette approximation pour éviter les allocations fréquentes dues aux push_back pour des petits tableaux
-       
-       for (num_maille=0;num_maille<nbr_mailles;num_maille++)
-               {
-               tmp=(*mailles)[num_maille].DONNE_NBR_FACES();
-               voisins_de_maille[num_maille]=vector<int>(tmp,UNDEFINED);
-               faces_contenues[num_maille]=vector<int>(tmp,UNDEFINED);
-               approx_nbr_formants+=tmp;
-               }
-               
-       face_au_bord.reserve(approx_nbr_formants/10);
-       
-       // algorithme principal
-       
-       // REMARQUE : les faces sont numérotées mais ne sont pas construites ni stockées
-       
-       int flag_interm;
-       
-       // on parcourt en premier lieu le nuage de maille (linéaire, en Nombre de Maille)
-       
-       for (num_maille=0;num_maille<nbr_mailles;num_maille++)
-               {
-               
-       // pour chaque maille, dite primaire, on parcourt ensuite ses faces (borné, par 8)
-       
-               for (num_local_face=0;num_local_face<(*mailles)[num_maille].DONNE_NBR_FACES();num_local_face++)
-                       {
-                       num_noeud=(*mailles)[num_maille].DONNE_PREMIER_NOEUD_DE_FACE(num_local_face);
-                       flag_existence=0;
-                       (*mailles)[num_maille].DONNE_FACE(num_local_face,sommets_face);
-                       flag_interm=0;
-                       
-       // pour chaque face, dite primaire, on prend le premier noeud, et on parcourt les mailles qui contiennent ce noeud tant qu'on n'a pas trouvé de voisin
-       // (borné, par un coefficient qui dépend de l'anisotropie du maillage, le nombre maximum de maille qui contient un sommet)
-                       
-                       for (ind_num_maille_sec=0;(flag_existence==0)&&(ind_num_maille_sec<mailles_contenant_noeud[num_noeud].size());ind_num_maille_sec++)
-                               {
-                               num_maille_sec=mailles_contenant_noeud[num_noeud][ind_num_maille_sec];
-                               
-       // on teste ensuite si cette maille secondaire a un numéro plus élevé que la maille primaire, dans le cas contraire, 
-       // ça veut dire qu'elle a déja été traitée ou sera traitée ultérieurement
-                               
-                               if (num_maille_sec>num_maille)
-                                       {
-                                       flag_interm=1;
-                                       
-       // pour cette maille secondaire on regarde si elle contient la face primaire
-       // (borné, par 8*4=32)                  
-                                       
-                                       num_loc=(*mailles)[num_maille_sec].DONNE_NUM_LOC_FACE_EGALE_A_FORMANT(sommets_face);                                    
-                                       if (num_loc>UNDEFINED)
-                                               {
-                                               
-       // et dans ce cas, la maille secondaire est voisine de la maille primaire, on met à jour les tableaux
-       // si on voulait construire le tableau des faces, c'est ici qu'il faudrait le faire -1-
-                                               
-                                                  // MESSAGE("La maille "<<num_maille<<" a pour voisin la maille "<<num_maille_sec<<" via la face "<<nbr_formants);
-                                               face_au_bord.push_back(FAUX);
-                                               faces_contenues[num_maille][num_local_face]=nbr_formants;
-                                               voisins_de_maille[num_maille][num_local_face]=num_maille_sec;
-                                               faces_contenues[num_maille_sec][num_loc]=nbr_formants;
-                                               voisins_de_maille[num_maille_sec][num_loc]=num_maille;
-                                               flag_existence=1;
-                                               nbr_formants++;
-                                               }
-                                       }
-                               }
-                       }
-               }
-               
-       // Construction de la connexité des mailles de bord
-       // A ce stade, on n'a que la connexité du voisinage des mailles, et les faces de bord n'ont pas été numérotées
-       
-       int ind_num_cont,test_bord,nbr_faces_bord=0;
-       
-       // on parcourt les mailles
-       
-       for (num_maille=0;num_maille<nbr_mailles;num_maille++) 
-               {
-               test_bord=0;
-               
-       // on examine les faces de cette maille dans la numérotation globale faces_contenues
-               
-               for (ind_num_cont=0;ind_num_cont<faces_contenues[num_maille].size();ind_num_cont++)
-                       {
-                       
-       // On regarde si tous les numéros globaux des faces sont définis
-                       
-                       if (faces_contenues[num_maille][ind_num_cont]==UNDEFINED)
-                               {
-                               
-       // si un seul numéro n'est pas défini, la maille est au bord
-       // si on voulait construire le tableau des faces, c'est ici qu'il faudrait le faire -2-
-                               
-                                  // MESSAGE("La maille "<<num_maille<<" est au bord via sa face "<<ind_num_cont);
-                               test_bord=1;
-                               faces_contenues[num_maille][ind_num_cont]=nbr_formants;
-                               maille_au_bord[num_maille]=VRAI;
-                               face_au_bord.push_back(VRAI);
-                               nbr_faces_bord++;
-                               nbr_formants++;
-                               }
-                       }
-                       
-       // dans le cas contraire, tous les numéros sont définis, la maille n'est pas au bord
-                       
-               if (test_bord==0)
-                       {
-                       maille_au_bord[num_maille]=FAUX;
-                       }
-               }
-       
-       // Vérification de la connectivité
-       // on regarde si tous les numéros globaux sont définis
-       // si ce n'est pas le cas, c'est que le nuage de maille est mal défini
-
-       
-       int verif=0;
-       int nf,nbf=0;
-       for (i=0;i<nbr_mailles;i++) 
-               {
-               nf=0;
-               for (j=0;j<faces_contenues[i].size();j++) 
-                       {
-                       if (faces_contenues[i][j]==UNDEFINED) verif++;
-                       if (voisins_de_maille[i][j]==UNDEFINED) nf++;
-                       }
-               if (maille_au_bord[i]==UNDEFINED) cerr<<"Maille "<<i<<" non completement construite"<<endl;
-               if (nf==faces_contenues[i].size()) nbf++;
-               }
-               
-       
-       MESSAGE("IL Y A "<<verif<<" PROBLEMES A LA SUITE DE LA CONSTRUCTION DE CONNEXITE");
-       MESSAGE("Nombre de mailles : "<<nbr_mailles);
-       MESSAGE("Approximation du nombre de faces : "<<approx_nbr_formants);
-       MESSAGE("Nombre réel de faces de bord : "<<nbr_faces_bord);
-       MESSAGE("Nombre réel total de faces : "<<nbr_formants);
-       MESSAGE("Nombre de Mailles Isolées : "<<nbf);   
-       }
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperNodes.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_WrapperNodes.hxx
deleted file mode 100644 (file)
index 084a9ad..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-
-#ifndef MEDMEM_WRAPPER_NODES_HXX
-#define MEDMEM_WRAPPER_NODES_HXX
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                        DECLARATIONS                        ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*                Classe Wrapper_Noeud                   */
-/*                                                       */
-/*********************************************************/
-
-template <int DIMENSION> class Wrapper_Noeud
-{
-protected :
-       double * coordonnees;
-public :
-       Wrapper_Noeud():coordonnees(NULL) 
-               {
-               }
-       Wrapper_Noeud(double * coord):coordonnees(coord) 
-               {
-               }
-       ~Wrapper_Noeud() 
-               {
-               }
-       void positionne(double *place) 
-               {
-               coordonnees=place;
-               }
-       const double & operator[] (int i) const
-               {
-               return coordonnees[i];
-               }
-       double operator[] (int i)
-               {
-               return coordonnees[i];
-               }
-       friend double DistanceInf(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B) 
-               {
-               double max=0;
-               double tmp;
-               for (int i=0;i<DIMENSION;i++)
-                       {
-                       tmp=fabs(A[i]-B[i]);
-                       if (tmp>max) max=tmp;
-                       }
-               return max;
-               }
-       friend double DistanceL2(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B)  
-               {
-               double tmp,somme=0;
-               for (int i=0;i<DIMENSION;i++)
-                       {
-                       tmp=(A[i]-B[i]);
-                       somme+=tmp*tmp;
-                       }
-               return sqrt(somme);
-               }
-       friend int operator==(const Wrapper_Noeud<DIMENSION> &A,const Wrapper_Noeud<DIMENSION> &B)
-               {
-               for (int i=0;i<DIMENSION;i++) if (A[i]!=B[i]) return 1;
-               return 0;
-               }
-       friend ostream & operator<<(ostream &os,const Wrapper_Noeud<DIMENSION> &A)
-               {
-               os<<"( "<<flush;
-               for (int i=0;i<DIMENSION;i++) os<<A[i]<<" "<<flush;
-               os<<")"<<flush;
-               return os;
-               }
-       };
-
-/*********************************************************/
-/*                                                       */
-/*             Classe Nuage_Wrapper_Noeud                */
-/*                                                       */
-/*********************************************************/
-
-       
-template <int DIMENSION> class Wrapper_Nuage_Noeud
-       {
-       protected : 
-               int nbr_noeuds;
-               double * noeuds;
-               Wrapper_Noeud<DIMENSION> show;
-       public :
-               Wrapper_Nuage_Noeud():nbr_noeuds(0),noeuds(NULL) {}
-               Wrapper_Nuage_Noeud(int nn, double *n):nbr_noeuds(nn),noeuds(n),show(noeuds) {}
-               ~Wrapper_Nuage_Noeud() {}
-               Wrapper_Noeud<DIMENSION> & operator [] (int i)
-                       {
-                       show.positionne((double *) &noeuds[DIMENSION*i]);
-                       return show;
-                       }
-               int size() const {return nbr_noeuds;}
-               int SIZE() const {return nbr_noeuds;}
-               void affiche()
-                       {
-                       int i,j;
-                       for (i=0;i<nbr_noeuds;i++)
-                               {
-                               cout<<"Noeud "<<i<<" : "<<flush;
-                               for (j=0;j<DIMENSION;j++) cout<<noeuds[i*DIMENSION+j]<<" "<<flush;
-                               cout<<endl;
-                               }
-                       }
-       };
-
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_dTree.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_dTree.hxx
deleted file mode 100644 (file)
index 47f5a37..0000000
+++ /dev/null
@@ -1,656 +0,0 @@
-#ifndef MEDMEM_DTREE_HXX
-#define MEDMEM_DTREE_HXX
-
-#include "MEDMEM_dTreeSommet.hxx"
-
-#define DTREE_FANTOME -1
-#define DTREE_RACINE 0
-#define DTREE_TERMINAL 1
-#define DTREE_COURANT 2
-// etat_descendance
-#define DTREE_NON_CALCULE -1
-#define DTREE_AUCUNE 0
-#define DTREE_VALIDE 1
-// val min nbr noeud
-#define DTREE_NBR_MIN_NOEUDS 2
-#define DTREE_NBR_MAX_DESC 8
-// pour meilleu re lecture
-#define _TEMPLATE_ template <class NOEUD,class NUAGENOEUD,int DIMENSION,int NBR_NOEUDS_PAR_CASE> 
-#define _DTREE_ dTree<NOEUD,NUAGENOEUD,DIMENSION,NBR_NOEUDS_PAR_CASE>
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                       DECLARATIONS                         ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-/*********************************************************/
-/*                                                       */
-/*             Calcul Statique de Puissance              */
-/*                                                       */
-/*********************************************************/
-
-// Permet de Calculer 2^n de façon statique
-
-template < int DIMENSION > struct DeuxPuissance
-       {
-       enum { valeur = 2 * DeuxPuissance<DIMENSION-1>::valeur } ;
-       };
-
-template <> struct DeuxPuissance<0>
-       {
-       enum { valeur = 1  } ;
-       };      
-
-/*********************************************************/
-/*                                                       */
-/*                         DTREE                         */
-/*                                                       */
-/*********************************************************/
-
-// Construit un d-Tree sur un nuage de noeud et pour un noeud donné donne lequel des noeuds du nuage est le plus proche
-
-// # Bugs connus : 
-//      -  Problemes avec points sur les faces des hypercubes ?
-//      -  Plantage sauvage si le point est plus loin de l'hypercube père que le diametre Linf de celui-ci.
-// # Politique de classe :
-//      - NOEUD : voir dans MEDMEM_WrapperNodes.hxx la classe Wrapper_Noeud<..>
-//      - NUAGENOEUD : typiquement, c'est vector<NOEUD> en rédefinissant NUAGENOEUD<...>::SIZE()=vector<...>::size()
-// Remarques :
-//      - NBR_NOEUDS_PAR_CASE ne doit pas être modifié sauf peut-être dans le cas où l'utilisateur veut utiliser des d-Tree parallèles 
-//       ou utilise des nuages de noeud trop grands
-
-template <class NOEUD,class NUAGENOEUD,int DIMENSION,int NBR_NOEUDS_PAR_CASE=DTREE_NBR_MIN_NOEUDS> class dTree
-{
-protected :
-       // types
-       typedef _DTREE_ * Ptr_dTree;
-       // Static Const
-       static const int nbr_descendants=DeuxPuissance<DIMENSION>::valeur;
-       // champs
-       NUAGENOEUD * nuage;
-       Ptr_dTree descendant[nbr_descendants];
-       // numéro des noeuds contenus
-       vector<int> * noeud_contenu;
-       int etat;
-       int niveau;
-       dTree * pere;
-       // extrémités de l'hypercube du dTree
-       Sommet_dTree<DIMENSION> coord_max;
-       Sommet_dTree<DIMENSION> coord_min;
-public :
-
-       void init();
-       dTree();
-       // Ce constructeur est le seul constructeur utilisateur, il construit le père puis tous les descendants
-       dTree(NUAGENOEUD *n);
-       // Ce Constructeur est utilisé par le précédent, pour un pere donné, avec deux extrémités données, 
-       // il instantie un dTree sans en calculer les noeuds contenus
-       dTree(const Sommet_dTree<DIMENSION> &A,const Sommet_dTree<DIMENSION> &B,dTree *mypere);
-       dTree(const dTree &F);
-       ~dTree();
-       // Renvoie les numéros de noeuds contenus dans le dTree
-       void Get_Noeuds_Filtre(vector<int> &tmp);
-       // renvoie les extrémités
-       Sommet_dTree<DIMENSION> Get_Max() const;
-       Sommet_dTree<DIMENSION> Get_Min() const;
-       // renvoie vrai si P est dans le dTree
-       int is_in_dTree(NOEUD P) const;
-       // calcule la distance topologique locale de P au dTree
-       double calcule_distance(NOEUD P) const;
-       dTree & operator = (const dTree & F);
-       // retourne le sommet du dTree codé par l'entier selecteur (voir explications dans le code)
-       Sommet_dTree<DIMENSION> donne_sommet(int selecteur) const;
-       int a_des_fils() const;
-       // renvoi une reference sur le dTree terminal descendant de this contenant P
-       dTree * trouve_dTree_contenant(NOEUD P) const;
-       // renvoie le point le plus proche de P dans this par la méthode exhaustive brutale
-       int trouve_plus_proche_point_bourrin(NOEUD P) const;
-       // renvoie le point le plus proche de p dans this par la méthode dtree
-       int trouve_plus_proche_point(NOEUD P) const;
-       // renvoie un numéro de point contenu dans this
-       int trouve_un_point() const;
-       // méthode récursive utilisée par trouve_plus_proche_point
-       int tppp_rec(NOEUD P,double &delta,int &flag) const;
-       // dit si P est d-proche de l'hypercube de this
-       int Localise_Point(NOEUD P,double d) const;
-       // utilisé par le constructeur pour créer tout la filiation du dTree
-       void cree_filiation();
-       // méthodes de mesure
-       int Get_Nbr_Descendants_Non_Vides() const;
-       int Get_Nbr_Descendants_Vides() const;
-       int Get_Profondeur_Max() const;
-};
-
-
-//////////////////////////////////////////////////////////////////
-///                                                            ///
-///                           CODE                             ///
-///                                                            ///
-//////////////////////////////////////////////////////////////////
-
-_TEMPLATE_ void _DTREE_::init()
-       {
-       int i;
-       nuage=NULL;
-       noeud_contenu=NULL;
-       etat=DTREE_FANTOME;
-       for (i=0;i<nbr_descendants;i++) descendant[i]=NULL;
-       niveau=-1;
-       pere=NULL;
-       }
-_TEMPLATE_ _DTREE_::dTree()
-       {
-       init();
-       coord_max=0.0;
-       coord_min=0.0;
-       }
-_TEMPLATE_ _DTREE_::dTree(NUAGENOEUD *n)
-       {
-       int i,j;
-       double tmp;
-       
-       if (n==NULL) 
-               {
-               cerr<<"DTREE : Nuage vide !"<<endl;
-               exit(-1);
-               }
-       
-       init();
-       nuage=n;
-       etat=DTREE_RACINE;
-       noeud_contenu=new vector<int>(nuage->size());
-       niveau=0;
-       
-       // calcule les extrémités du dTree pere
-       for (i=0;i<DIMENSION;i++)
-               {
-               coord_max[i]=(*nuage)[0][i];
-               coord_min[i]=(*nuage)[0][i];
-               }
-       (*noeud_contenu)[0]=0;
-       for (i=1;i<nuage->size();i++)
-               {
-               (*noeud_contenu)[i]=i;
-               for (j=0;j<DIMENSION;j++) 
-                       {
-                       if ((*nuage)[i][j]>coord_max[j]) coord_max[j]=(*nuage)[i][j];
-                       if ((*nuage)[i][j]<coord_min[j]) coord_min[j]=(*nuage)[i][j];
-                       }
-               }
-       for (j=0;j<DIMENSION;j++) 
-               {
-               tmp=(coord_max[j]-coord_min[j])*0.01;
-               coord_max[j]+=tmp;
-               coord_min[j]-=tmp;
-               }
-       
-       // méthode récursive qui construit la filiation
-       cree_filiation();
-       
-       }
-_TEMPLATE_ _DTREE_::dTree(const Sommet_dTree<DIMENSION> &A,const Sommet_dTree<DIMENSION> &B,dTree *mypere)
-       {
-       if (mypere!=NULL)
-               {
-               
-               int i,j;
-               double tmp;
-               
-               init();
-               
-               pere=mypere;
-               nuage=pere->nuage;
-               niveau=pere->niveau+1;
-               
-               etat=DTREE_COURANT;
-               
-               noeud_contenu=new vector<int>;
-               noeud_contenu->reserve((pere->noeud_contenu->size())/nbr_descendants);
-               
-               for (i=0;i<DIMENSION;i++)
-                       {
-                       coord_max[i]=(*nuage)[0][i];
-                       coord_min[i]=(*nuage)[0][i];
-                       }
-               
-               for (i=0;i<DIMENSION;i++)
-                       {
-                       if (A[i]>B[i]) 
-                               {
-                               coord_max[i]=A[i];
-                               coord_min[i]=B[i];
-                               }
-                       else
-                               {
-                               coord_min[i]=A[i];
-                               coord_max[i]=B[i];
-                               }
-                       }
-               }
-       else
-               {
-               cerr<<"DTREE : Construction de descendance sans père !"<<endl;
-               exit(-1);
-               }
-       }       
-_TEMPLATE_ _DTREE_::dTree(const _DTREE_ &F)
-       {
-       // Pas Super Top Moumoute ... Recopie de pointeurs et pas de contenus, merdique
-       int i,j;
-       init();
-       for (i=0;i<nbr_descendants;i++) descendant[i]=F.descendant[i];
-       noeud_contenu=F.noeud_contenu;
-       etat=F.etat;
-       niveau=F.niveau;
-       pere=F.pere;
-       coord_max=F.coord_max;
-       coord_min=F.coord_min;
-       }
-_TEMPLATE_ _DTREE_::~dTree()
-       {
-       int i;
-       nuage=NULL;
-       pere=NULL;
-       // cout<<*this<<endl;
-       if (noeud_contenu) 
-               {
-               delete noeud_contenu;
-               }
-       for (i=0;i<nbr_descendants;i++) if (descendant[i]) 
-               {
-               delete descendant[i];
-               }
-       }
-_TEMPLATE_ void _DTREE_::Get_Noeuds_Filtre(vector<int> &tmp)
-       {
-       int i;
-       switch (etat)
-               {
-               case DTREE_RACINE : int pourlefunlecompilolesttropcon;
-               case DTREE_COURANT : 
-                       for (i=0;i<nbr_descendants;i++) descendant[i]->Get_Noeuds_Filtre(tmp);
-               case DTREE_TERMINAL : 
-                       if (noeud_contenu->size()>0) 
-                               {
-                               for (i=0;i<NBR_NOEUDS_PAR_CASE;i++) tmp.push_back((*noeud_contenu)[i]);
-                               }
-               default : 
-                       cerr<<"DTREE : dTree Non Valide dans Rempli_Noeuds_Filtre"<<endl;
-                       exit(-1);
-               }
-       }
-_TEMPLATE_ Sommet_dTree<DIMENSION> _DTREE_::Get_Max() const
-       {
-       return coord_max;
-       }
-_TEMPLATE_ Sommet_dTree<DIMENSION> _DTREE_::Get_Min() const
-       {
-       return coord_min;
-       }
-_TEMPLATE_ int _DTREE_::is_in_dTree(NOEUD P) const
-       {
-       int test;
-       for (int i=0;i<DIMENSION;i++)
-               {
-               test=((coord_min[i]<=P[i])&&(P[i]<=coord_max[i])); 
-               if (!test) return 0;
-               }
-       return 1;
-
-       }
-// calcule la distance Linf d'un point exterieur, si le point est interieur, le resultat sera erroné
-_TEMPLATE_ double _DTREE_::calcule_distance(NOEUD P) const
-       {
-       double min=fabs(coord_max[0]-P[0]);
-       double tmp;
-       int i;
-       for (i=0;i<DIMENSION;i++)
-               {
-               tmp=fabs(coord_max[i]-P[i]);
-               if (min>tmp) min=tmp;
-               tmp=fabs(coord_min[i]-P[i]);
-               if (min>tmp) min=tmp;
-               }
-       return min;     
-       }
-_TEMPLATE_ _DTREE_ & _DTREE_::operator = (const _DTREE_ & F)
-       {
-       // Pas Super Top Moumoute ... Recopie de pointeurs et pas de contenus, merdique
-       int i,j;
-       init();
-       for (i=0;i<nbr_descendans;i++) descendant[i]=F.descendant[i];
-       noeud_contenu=F.noeud_contenu;
-       etat=F.etat;
-       niveau=F.niveau;
-       pere=F.pere;
-       coord_max=F.coord_max;
-       coord_min=F.coord_min;
-       }
-// selecteur doit etre lu comme un nombre en base 2
-// il specifie les coordonnes de reference du sommet dont on veut les coordonnees reelles
-// ex : en dim 3 : coord_min=0+0*2+0*4=0
-//                 coord_max=1+1*2*1*4=7
-// donc les unites pour x, les 2aines pour y, les 4aines pour z
-_TEMPLATE_ Sommet_dTree<DIMENSION> _DTREE_::donne_sommet(int selecteur) const
-       {
-       Sommet_dTree<DIMENSION> p;
-       int i;
-       int residu=selecteur;
-       int reste;
-       for (i=0;i<DIMENSION;i++) 
-               {
-               reste=residu%2;
-               if (reste==0) p[i]=coord_min[i]; else p[i]=coord_max[i];
-               residu=(residu-reste)/2;
-               }
-       return p;
-       }
-_TEMPLATE_ int _DTREE_::a_des_fils() const
-       {
-       if ((etat==DTREE_COURANT)||(etat=DTREE_RACINE)) return 1;
-       else return 0;
-       }
-_TEMPLATE_ _DTREE_ * _DTREE_::trouve_dTree_contenant(NOEUD P) const
-       {
-       Sommet_dTree<DIMENSION> B(coord_min,coord_max);
-       int i;
-       if ((etat==DTREE_RACINE)&&(!is_in_dTree(P))) return NULL; // Le noeud est extérieur a l'dTree
-       else if (etat==DTREE_TERMINAL) return (dTree *) this;     // Le noeud est dans *this qui est terminal
-       
-       for (i=0;i<nbr_descendants;i++)
-               {
-               Sommet_dTree<DIMENSION> A=donne_sommet(i);
-               int test,j;
-               for (j=0;j<DIMENSION;j++)
-                       {
-                       if (A[j]<=B[j]) test=((A[j]<=P[j])&&(P[j]<=B[j])); 
-                       else test=((A[j]>=P[j])&&(P[j]>=B[j]));
-                       if (!test) break;
-                       }
-
-               if (test) return descendant[i]->trouve_dTree_contenant(P); // Propagation
-               }
-       }
-// si de le dTree n'est pas TERMINAL, scanne tous les points du nuage du pere pour trouver le point le plus proche
-// sinon scanne uniquement les points contenus dans le dTree
-_TEMPLATE_ int _DTREE_::trouve_plus_proche_point_bourrin(NOEUD P) const
-       {
-       int i;
-       int num_sol=0;
-       double min;
-       double tmp;
-       if (etat!=DTREE_TERMINAL)
-               {
-               min=DistanceL2(P,(*nuage)[0]);
-               for (i=1;i<nuage->size();i++)
-                       {
-                       tmp=DistanceL2(P,(*nuage)[i]);
-                       if (tmp<min)
-                               {
-                               num_sol=i;
-                               min=tmp;
-                               }
-                       }
-               return num_sol;
-               }
-       else
-               {
-               if (noeud_contenu->size()!=0)
-                       {
-                       num_sol=(*noeud_contenu)[0];
-                       min=DistanceL2(P,(*nuage)[num_sol]);
-                       for (i=1;i<noeud_contenu->size();i++)
-                               {
-                               tmp=DistanceL2(P,(*nuage)[(*noeud_contenu)[i]]);
-                               if (tmp<min)
-                                       {
-                                       num_sol=(*noeud_contenu)[i];
-                                       min=tmp;
-                                       }
-                               }
-                       return num_sol;
-                       }
-               else return DTREE_FANTOME;
-               }
-       }
-// Fonction de pilotage de la recursion, lance les tests preliminaires et invoque la recursion
-_TEMPLATE_ int _DTREE_::trouve_plus_proche_point(NOEUD P) const
-       {
-
-       if (etat==DTREE_FANTOME) 
-               {
-               cerr<<"DTREE : TROUVE PLUS PROCHE POINT : L'octree n'est pas construit !"<<endl;
-               exit(-1);
-               }
-       dTree *ref=trouve_dTree_contenant(P);   
-       double delta;
-
-       if (ref!=NULL)
-               {
-               // Le point est intérieur
-
-               if (ref->pere!=NULL)    
-                       {
-                       delta=DistanceInf((ref->pere->coord_max),(ref->pere->coord_min));
-                       }       
-               else 
-                       {
-                       cerr<<"DTREE : TROUVE PLUS PROCHE POINT : l'octree contenant le noeud n'a pas de pere !"<<endl;
-                       exit(-1);
-                       }
-               }
-       else 
-               {
-               // Le point est extérieur
-
-               delta=DistanceL2(P,(*nuage)[0]);
-               }
-               
-       int flag=0;
-       int retour;
-
-       retour=tppp_rec(P,delta,flag);
-
-       return retour;
-       }
-_TEMPLATE_ int _DTREE_::trouve_un_point() const
-       {
-       if (noeud_contenu!=NULL)
-               {
-               if (noeud_contenu->size()>0) return (*(noeud_contenu))[0];
-               }
-       else
-               {
-               int i;
-               for (i=0;i<nbr_descendants;i++)
-                       {
-                       return descendant[i]->trouve_un_point();
-                       }
-               }
-       }
-// partie recursive de trouve_plus_proche_point
-// change le flag en 1 si un point plus proche est trouvé
-// adapte automatiquement la distance delta de filtrage
-_TEMPLATE_ int _DTREE_::tppp_rec(NOEUD P,double &delta,int &flag) const
-       {
-       if (Localise_Point(P,delta)==0) 
-               {
-       
-       // La distance du point à l'octree est plus grande que delta
-       
-               return DTREE_FANTOME;
-               }
-       int num_Ptmp;
-       double dtmp;
-       if (etat==DTREE_TERMINAL)
-               {
-               if (noeud_contenu->size()>0)
-                       {
-                       num_Ptmp=trouve_plus_proche_point_bourrin(P);
-                       dtmp=DistanceL2((*nuage)[num_Ptmp],P);
-                       if (dtmp<=delta) 
-                               {
-       
-       // Le point le plus proche minimise delta, c'est un bon candidat, on l'envoie !
-       
-                               delta=dtmp;
-                               flag=1;
-                               return num_Ptmp;
-                               }
-       
-       // Le point le plus proche ne minimise pas delta
-       
-                       // ===========> peut etre rajouter exit(-1); ??????????
-                       return DTREE_FANTOME;
-                       }
-               else 
-                       {
-       
-       // L'octree qui contient P ne contient aucun point
-       
-                       return DTREE_FANTOME;
-                       }
-               }
-       int i;
-       int num_sol=DTREE_FANTOME;
-       for (i=0;i<nbr_descendants;i++)
-               {
-               num_Ptmp=descendant[i]->tppp_rec(P,delta,flag);
-               if ((num_Ptmp!=DTREE_FANTOME)&&(flag==1)) 
-                       {
-       
-       // On a trouvé un point qui minimise delta dans une branche
-       
-                       num_sol=num_Ptmp;
-                       }
-               }
-       // A ce stade, on a trouvé un point qui minimise tous les deltas, c'est donc le point le plus proche
-       // REMARQUE : cette affirmation est à la base de l'algorithme par dTree mais est loin d'étre évidente
-       
-       return num_sol;
-       }
-       
-// renvoie 1 si la distance L inf du noeud a l'octree est plus petite que d, 0 sinon
-_TEMPLATE_ int _DTREE_::Localise_Point(NOEUD P,double d) const
-       {
-       int i;
-       for (i=0;i<DIMENSION;i++)
-               {
-               if (P[i]>coord_max[i]+d) return 0;
-               if (P[i]<coord_min[i]-d) return 0;
-               }
-       return 1;
-       }
-       
-// Méthode de construction du dTree par propagation
-_TEMPLATE_ void _DTREE_::cree_filiation()
-       {
-       if (etat!=DTREE_RACINE) 
-               {
-               niveau=pere->niveau+1;
-               }
-       else 
-               {
-               niveau=0;
-               }
-       
-       if (noeud_contenu->size()<=NBR_NOEUDS_PAR_CASE)
-               {
-               etat=DTREE_TERMINAL;
-               }
-       else
-               {
-               int i,num_loc,test;
-               
-               Sommet_dTree<DIMENSION> centre(coord_max,coord_min);
-               
-               for (i=0;i<nbr_descendants;i++)
-                       {
-                       descendant[i]=new dTree(centre,donne_sommet(i),this);
-                       }
-               
-               for (num_loc=0;num_loc<noeud_contenu->size();num_loc++)
-                       {
-                       int indice=(*noeud_contenu)[num_loc];
-                       NOEUD & courant=(*nuage)[indice];
-                       test=1;
-                       for (i=0;(test)&&(i<nbr_descendants);i++)
-                               {
-                               if (descendant[i]->is_in_dTree(courant))
-                                       {
-                                       descendant[i]->noeud_contenu->push_back(indice);
-                                       test=0;
-                                       }
-                               }
-                       }
-               
-               delete noeud_contenu;
-               noeud_contenu=NULL;
-               
-               for (i=0;i<nbr_descendants;i++) descendant[i]->cree_filiation();
-               }
-       }
-_TEMPLATE_ int _DTREE_::Get_Nbr_Descendants_Non_Vides() const
-       {
-       int i;
-       int ndnv=0;
-       switch (etat)
-               {
-               case DTREE_RACINE : int pourlefunlecompilolesttropcon;
-               case DTREE_COURANT : 
-                       for (i=0;i<nbr_descendants;i++) ndnv+=descendant[i]->Get_Nbr_Descendants_Non_Vides();
-                       return ndnv;
-               case DTREE_TERMINAL : 
-                       if (noeud_contenu->size()>0) return 1;
-                       else return 0;
-               default : 
-                       cerr<<"dTree Non Valide dans Get_Nbr_Descendants_Non_Vides"<<endl;
-                       return -1;
-               }
-       }
-_TEMPLATE_ int _DTREE_::Get_Nbr_Descendants_Vides() const
-       {
-       int i;
-       int ndnv=0;
-       switch (etat)
-               {
-               case DTREE_RACINE : int pourlefunlecompilolesttropcon;
-               case DTREE_COURANT : 
-                       for (i=0;i<nbr_descendants;i++) ndnv+=descendant[i]->Get_Nbr_Descendants_Vides();
-                       return ndnv;
-               case DTREE_TERMINAL : 
-                       if (noeud_contenu->size()==0) return 1;
-                       else return 0;
-               default : 
-                       cerr<<"dTree Non Valide dans Get_Nbr_Descendants_Non_Vides"<<endl;
-                       return -1;
-               }
-       }
-_TEMPLATE_ int _DTREE_::Get_Profondeur_Max() const
-       {
-       int i;
-       int prof=0;
-       int tmp;
-       switch (etat)
-               {
-               case DTREE_RACINE : int pourlefunlecompilolesttropcon;
-               case DTREE_COURANT : 
-                       for (i=0;i<nbr_descendants;i++) 
-                               {
-                               tmp=descendant[i]->Get_Profondeur_Max();
-                               if (tmp>prof) prof=tmp;
-                               }
-                       return prof;
-               case DTREE_TERMINAL : return niveau;
-               default : 
-                       cerr<<"dTree Non Valide dans Get_Nbr_Descendants_Non_Vides"<<endl;
-                       return -1;
-               }
-       }
-
-#undef _TEMPLATE_
-#undef _DTREE_
-
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/MEDMEM_dTreeSommet.hxx b/src/MEDMEM/INTERPOLATION/MEDMEM_dTreeSommet.hxx
deleted file mode 100644 (file)
index c7bd671..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef SOMMET_HPP
-#define SOMMET_HPP
-
-
-// La classe qui suit sert UNIQUEMENT pour les sommets du dTree
-
-template <int DIMENSION> class Sommet_dTree
-{
-protected :
-       double coord[DIMENSION];
-public :
-       Sommet_dTree() 
-               {
-               }
-       Sommet_dTree(double *c) 
-               {
-               for (int i=0;i<DIMENSION;i++) coord[i]=c[i];
-               }
-       Sommet_dTree(double c)
-               {
-               for (int i=0;i<DIMENSION;i++) coord[i]=c;
-               }
-       Sommet_dTree(const Sommet_dTree & SO) 
-               {
-               for (int i=0;i<DIMENSION;i++) coord[i]=SO.coord[i];
-               }
-       Sommet_dTree(const Sommet_dTree &s1,const Sommet_dTree &s2) 
-               {
-               for (int i=0;i<DIMENSION;i++) coord[i]=0.5*(s1[i]+s2[i]);
-               }
-       ~Sommet_dTree() 
-               {
-               }
-       const double operator[](int i) const 
-               {
-               return coord[i];
-               }
-       double & operator[](int i) 
-               {
-               return coord[i];
-               }
-       Sommet_dTree & operator=(const Sommet_dTree &f) 
-               {
-               for (int i=0;i<DIMENSION;i++) coord[i]=f.coord[i];return *this;
-               }
-       friend double DistanceInf(const Sommet_dTree<DIMENSION> &A,const Sommet_dTree<DIMENSION> &B) 
-               {
-               double max=0;
-               double tmp;
-               for (int i=0;i<DIMENSION;i++)
-                       {
-                       tmp=fabs(A[i]-B[i]);
-                       if (tmp>max) max=tmp;
-                       }
-               return max;
-               }
-};
-
-#endif
diff --git a/src/MEDMEM/INTERPOLATION/Makefile.in b/src/MEDMEM/INTERPOLATION/Makefile.in
deleted file mode 100644 (file)
index b3ff829..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#  MED MEDMEM : MED files in memory
-#
-#  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-# 
-#  This library is free software; you can redistribute it and/or 
-#  modify it under the terms of the GNU Lesser General Public 
-#  License as published by the Free Software Foundation; either 
-#  version 2.1 of the License. 
-# 
-#  This library is distributed in the hope that it will be useful, 
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-#  Lesser General Public License for more details. 
-# 
-#  You should have received a copy of the GNU Lesser General Public 
-#  License along with this library; if not, write to the Free Software 
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-# 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-#
-#
-#
-#  File   : Makefile.in
-#  Module : MED
-
-top_srcdir=@top_srcdir@
-top_builddir=../../..
-srcdir=@srcdir@
-VPATH=.:$(srcdir):$(srcdir)/tests
-
-MACHINE=PCLINUX
-
-@COMMENCE@
-
-
-EXPORT_PYSCRIPTS = \
-
-
-EXPORT_HEADERS = \
-MEDMEM_dTree.hxx\
-MEDMEM_dTreeSommet.hxx\
-MEDMEM_InterpolationHighLevelObjects.hxx\
-MEDMEM_Interpolation.hxx\
-MEDMEM_InterpolationTools.hxx\
-MEDMEM_Mapping.hxx\
-MEDMEM_MappingTools.hxx\
-MEDMEM_WrapperCells.hxx\
-MEDMEM_WrapperConnectivity.hxx\
-MEDMEM_WrapperField.hxx\
-MEDMEM_WrapperMesh.hxx\
-MEDMEM_WrapperNodes.hxx
-
-
-# Libraries targets
-
-LIB=
-LIB_SRC = 
-
-
-# Executables targets
-BIN = 
-BIN_SRC = 
-BIN_SERVER_IDL = 
-BIN_CLIENT_IDL = 
-
-TEST_PROGS = \
-test_MEDMEM_InterpolationFlipBack\
-test_MEDMEM_InterpolationFromMesh_toMesh\
-test_MEDMEM_InterpolationRecopieMaillage\
-test_MEDMEM_InterpolationSansRecopieMaillage\
-test_MEDMEM_InterpolationTimeStep\
-UseCasedTree\
-UseCaseInterpolationts\
-UseCaseInterpolationwots\
-UseCaseMapping\
-UseCaseWrapper_Maillage
-
-
-
-
-CPPFLAGS+=-U_DEBUG_ $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I../
-CXXFLAGS+=-U_DEBUG_ -ftemplate-depth-42 -I${KERNEL_ROOT_DIR}/include/salome 
-LDFLAGS+=$(MED2_LIBS) $(HDF5_LIBS) -lSalomeLoggerServer -L${KERNEL_ROOT_DIR}/lib/salome
-
-LDFLAGSFORBIN+=$(MED2_LIBS) $(HDF5_LIBS) -L../.libs -lmedmem -lSalomeLoggerServer -L${KERNEL_ROOT_DIR}/lib/salome
-
-LIBSFORBIN=
-
-LDFLAGS=
-
-LIBS=
-
-# build create_mesh :
-bin: create_mesh_interpolation 
-
-create_mesh_interpolation: %: %.c
-       $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(MED2_LIBS) $(HDF5_LIBS) $< 
-
-@CONCLUDE@
diff --git a/src/MEDMEM/INTERPOLATION/UseCaseInterpolationts.cxx b/src/MEDMEM/INTERPOLATION/UseCaseInterpolationts.cxx
deleted file mode 100644 (file)
index 288cd72..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_Med.hxx"
-#include "MEDMEM_Field.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Interpolation.hxx"
-
-#include <deque>
-
-#include "stdio.h"
-
-main () {
-    
-  const char * fromFileName   = "ResultatSyrthes.med";
-  const char * toFileName     = "MaillageAster.med";
-  const char * resultFileName = "ResultatInterpolation.med";
-
-  const char * fromFieldName  = "THERDEP_TEMP____________________";
-
-  const char * fromMeshName   = "MA";
-  const char * toMeshName     = "MAILLAGE_IDEAS";
-  int handle;
-
-  try {
-    
-    
-    MED fromMED(MED_DRIVER,fromFileName); 
-
-    fromMED.updateSupport();
-
-    MESH toMesh(MED_DRIVER,toFileName,toMeshName); 
-    
-    deque<DT_IT_> pasDeTemps=fromMED.getFieldIteration (fromFieldName); 
-    
-    deque<DT_IT_>::const_iterator currentStep;
-    
-    INTERPOLATION<3>  * myInter ;
-    FIELD<double>   * toField   ;
-    int flagNewMapping = 1;
-
-    for (currentStep=pasDeTemps.begin();currentStep!=pasDeTemps.end();currentStep++)
-       {
-       FIELD_ * fromField_ = fromMED.getField(fromFieldName,(*currentStep).dt,(*currentStep).it) ; 
-
-       FIELD<double> * fromField = dynamic_cast<FIELD<double> *>(fromField_); 
-
-       fromField->getSupport()->getMesh()->read();
-        
-       fromField->read(); 
-       
-       if (currentStep==pasDeTemps.begin())
-               {
-               myInter = new INTERPOLATION<3>(*fromField,toMesh) ; 
-
-               toField = myInter->interpolate(1,1); 
-               }
-       else
-               {
-               toField = myInter->interpolateNextStep(*fromField,flagNewMapping); 
-               }
-    
-       toField->addDriver(MED_DRIVER,resultFileName,toField->getName()); 
-    
-       toField->write(); 
-    
-       if (flagNewMapping==1)
-               {
-               handle = toMesh.addDriver(MED_DRIVER,resultFileName,toMesh.getName()) ; 
-    
-               toMesh.write(handle); 
-               }
-       }
-
-  } catch (MEDEXCEPTION& ex){
-    MESSAGE(ex.what()) ;
-  }
-}
diff --git a/src/MEDMEM/INTERPOLATION/UseCaseInterpolationwots.cxx b/src/MEDMEM/INTERPOLATION/UseCaseInterpolationwots.cxx
deleted file mode 100644 (file)
index 67a3b79..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_Field.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Interpolation.hxx"
-
-#include "stdio.h"
-
-using namespace MEDMEM;
-
-main () {
-  
-  const char * fromFileName  = "fromMesh.med";
-  const char * toFileName    = "toMesh.med";
-  const char * fieldName     = "fieldnodedouble";
-
-  const char * fromMeshName  = "fromMesh";
-  const char * toMeshName    = "toMesh";
-  
-  const int flagConvex = 1;
-  const int interpolationType = 1;
-
-  try {
-    
-    MESH           fromMesh    (MED_DRIVER,fromFileName,fromMeshName);          
-    SUPPORT        fromSupport (&fromMesh,"XsupportX",MED_NODE);                
-    FIELD<double>   fromField  (&fromSupport,MED_DRIVER,fromFileName,fieldName);
-    MESH           toMesh      (MED_DRIVER,toFileName,toMeshName);              
-    
-    INTERPOLATION<3> myInter (fromField,toMesh);
-    
-    FIELD<double>   * toField = myInter.interpolate(interpolationType,flagConvex);
-    
-    toField->addDriver(MED_DRIVER,toFileName,toField->getName()) ;
-
-    toField->write();
-
-
-  } catch (MEDEXCEPTION& ex){
-    MESSAGE(ex.what()) ;
-  }
-}
diff --git a/src/MEDMEM/INTERPOLATION/UseCaseMapping.cxx b/src/MEDMEM/INTERPOLATION/UseCaseMapping.cxx
deleted file mode 100644 (file)
index 0c98da0..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "stdio.h"
-#include "stdlib.h"
-
-#include <iostream.h>
-
-#include "MEDMEM_InterpolationHighLevelObjects.hxx"
-
-int main (void) 
-{
-int i;
-
-const int DIMENSION = 3;
-
-const int isConvexFromMesh = 1;
-
-const char * fromFileName  = "fromMesh.med";
-const char * fromMeshName  = "fromMesh";
-
-MESH * fromMesh = new MESH(MED_DRIVER,fromFileName,fromMeshName);
-
-const char * toFileName    = "toMesh.med";
-const char * toMeshName    = "toMesh";
-
-MESH * toMesh   = new MESH(MED_DRIVER,toFileName,toMeshName);
-
-Meta_Wrapper<DIMENSION> * fromWrapper = new Meta_Wrapper<DIMENSION>
-                                       (
-                                       fromMesh->getNumberOfNodes(),
-                                       const_cast<double *> (fromMesh->getCoordinates(MED_FULL_INTERLACE)),
-                                       const_cast<CONNECTIVITY *> (fromMesh->getConnectivityptr())
-                                       );
-
-Meta_Wrapper<DIMENSION> * toWrapper   = new Meta_Wrapper<DIMENSION>
-                                       (
-                                       toMesh->getNumberOfNodes(),
-                                       const_cast<double *> (toMesh->getCoordinates(MED_FULL_INTERLACE))
-                                       );
-
-Meta_Mapping<DIMENSION> * mapping     = new  Meta_Mapping<DIMENSION> (fromWrapper,toWrapper);
-
-mapping->Cree_Mapping(isConvexFromMesh);
-                                               
-vector<int> vectormapping = mapping->Get_Mapping();
-
-for (i=0;i<vectormapping.size();i++)
-       {
-       cout<<"Le noeud "<<i<<" de "<<toMeshName<<" est contenu dans la maille "<<vectormapping[i]<<" de "<<fromMeshName<<endl; 
-       }
-
-}
diff --git a/src/MEDMEM/INTERPOLATION/UseCaseWrapper_Maillage.cxx b/src/MEDMEM/INTERPOLATION/UseCaseWrapper_Maillage.cxx
deleted file mode 100644 (file)
index 27af445..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "stdio.h"
-#include "stdlib.h"
-
-#include <iostream.h>
-
-#include "MEDMEM_InterpolationHighLevelObjects.hxx"
-
-int main (void) 
-{
-int i,j;
-
-const char * fromFileName  = "fromMesh.med";
-const char * fromMeshName  = "fromMesh";
-
-MESH fromMesh(MED_DRIVER,fromFileName,fromMeshName);
-
-Meta_Nuage_Maille * nuagemailles = new Meta_Nuage_Maille(const_cast<CONNECTIVITY *> (fromMesh.getConnectivityptr()));
-
-int nbr_noeuds = fromMesh.getNumberOfNodes();
-
-Meta_Maillage * maillage = new Meta_Maillage(nuagemailles,nbr_noeuds);
-
-int nbr_mailles = maillage->DONNE_POINTEUR_NUAGEMAILLE()->SIZE();
-
-int nbr_faces;
-
-for (i=0;i<nbr_mailles;i++)
-       {
-       cout<<"Voisins de la maille "<<i<<" : "<<flush;
-       nbr_faces=maillage->DONNE_NBR_FACES_MAILLE(i); 
-       for (j=0;j<nbr_faces;j++) cout<<"["<<maillage->DONNE_VOISIN_DE_MAILLE(i,j)<<"]-("<<maillage->EST_AU_BORD_FACE_DE_MAILLE(i,j)<<") "<<flush;
-       cout<<endl;
-       }
-
-}
-
diff --git a/src/MEDMEM/INTERPOLATION/UseCasedTree.cxx b/src/MEDMEM/INTERPOLATION/UseCasedTree.cxx
deleted file mode 100644 (file)
index 0ab7ce2..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#include "stdio.h"
-#include "stdlib.h"
-
-#include <iostream.h>
-
-#include "MEDMEM_InterpolationHighLevelObjects.hxx"
-
-#define affiche(NOEUD) cout<<flush;for (int iii=0;iii<DIMENSION;iii++) cout<<NOEUD[iii]<<" "<<flush;
-
-int main (void) 
-{
-int i;
-
-const int DIMENSION  = 3;
-const int NBR_NOEUDS = 8;
-const int NBR_INC    = 3;
-
-double noeuds[DIMENSION*NBR_NOEUDS] = { 0,0,0,
-                                       1,0,0,
-                                       0,1,0,
-                                       0,0,1,
-                                       1,1,0,
-                                       1,0,1,
-                                       0,1,1,
-                                       1,1,1 };
-                                       
-double noeuds_inconnus[DIMENSION*NBR_INC] =   { 2  ,2  ,2  ,
-                                               0.2,0.2,0.2,
-                                               0  ,0.9,0.9 };
-
-double * tmp1, * tmp2;
-
-for (i=0;i<NBR_NOEUDS;i++)
-       {
-       cout<<"Noeud["<<i<<"] = ";
-       tmp1=&noeuds[DIMENSION*i];
-       affiche(tmp1);
-       cout<<endl;
-       }
-
-Meta_dTree<DIMENSION> Octree(NBR_NOEUDS,noeuds);
-
-for (i=0;i<NBR_INC;i++)
-       {
-       cout<<"Noeud le plus proche de ";
-       tmp1=&noeuds_inconnus[DIMENSION*i];
-       affiche(tmp1);
-       cout<<" : ";
-       tmp2=&noeuds[DIMENSION*Octree.trouve_plus_proche_point(tmp1)];
-       affiche(tmp2);
-       cout<<" ; Vérification par méthode bourrin : ";
-       tmp2=&noeuds[DIMENSION*Octree.trouve_plus_proche_point_bourrin(tmp1)];
-       affiche(tmp2);
-       cout<<endl;
-       }
-
-}
-
diff --git a/src/MEDMEM/INTERPOLATION/create_mesh_interpolation.c b/src/MEDMEM/INTERPOLATION/create_mesh_interpolation.c
deleted file mode 100644 (file)
index f99bb91..0000000
+++ /dev/null
@@ -1,523 +0,0 @@
-#include <med.h>
-#include <string.h>
-
-#define MED_NOPG   1                   /* -> pas de point de Gauss                    */
-#define MED_NOPFL  ""                  /* -> pas de profils utilisateur               */
-#define MED_NOPFLi "                                "  /* Variable Interne                      */
-#define MED_NOPF   0                   /* -> pas de profils pour _MEDdataseNnumEcrire */
-#define MED_NOPDT -1                   /* rem: pas de pas de temps negatifs           */
-#define MED_NONOR -1                   /* rem: pas de n°ordre negatif                 */
-#define MED_DIM1   1                   /* PAS */
-
-#define MED_ALL    0
-
-/*****************************************************************************************************/
-
-void affiche_noeuds(med_float * nodes,int nnpl)
-       {
-       int nbr_nodes=nnpl*nnpl*nnpl;
-       int i;
-
-       for (i=0;i<nbr_nodes;i++) printf("Noeud %d : ( %4.5f ; %4.5f ; %4.5f )\n",i,nodes[3*i],nodes[3*i+1],nodes[3*i+2]);
-       
-       }
-
-
-void cree_nodes(med_float * coord_nodes,int nnpl, int flag)
-       {
-       int i,j,k;
-       int nbr_nodes=nnpl*nnpl*nnpl;
-       int num_noeud;
-       int diviseur=nnpl-1+flag;
-       
-       /*coord_nodes=(med_float *) malloc(3*nbr_nodes*sizeof(med_float));*/
-       
-       for (i=0;i<nnpl;i++) for (j=0;j<nnpl;j++) for (k=0;k<nnpl;k++) 
-               {
-               num_noeud=i+nnpl*j+nnpl*nnpl*k;
-               
-               if (3*num_noeud  >=3*nbr_nodes) {printf("%d : OUT OF RANGE REQUEST\n",num_noeud);exit(-1);}
-               if (3*num_noeud+1>=3*nbr_nodes) {printf("%d : OUT OF RANGE REQUEST\n",num_noeud);exit(-1);}
-               if (3*num_noeud+2>=3*nbr_nodes) {printf("%d : OUT OF RANGE REQUEST\n",num_noeud);exit(-1);}
-               
-               coord_nodes[3*num_noeud  ]= (double) (i+flag)/diviseur;
-               coord_nodes[3*num_noeud+1]= (double) (j+flag)/diviseur;
-               coord_nodes[3*num_noeud+2]= (double) (k+flag)/diviseur;
-               }
-               
-       affiche_noeuds(coord_nodes,nnpl);
-       
-       }
-void cree_num_nodes(med_int * num_nodes,int nnpl)
-       {
-       int nbr_nodes=nnpl*nnpl*nnpl;
-       int i;
-       /*num_nodes=(med_int *) malloc(nbr_nodes*sizeof(med_int));*/
-       for (i=0;i<nbr_nodes;i++) num_nodes[i]=i+1;//nbr_nodes+i;
-       }
-void cree_Hexa8(med_int * conn_hexa8, int nnpl,med_int * num_nodes)
-       {
-       int i,j,k;
-       int i0,j0,k0,i1,j1,k1;
-       int nbr_nodes=nnpl*nnpl*nnpl;
-       int nbr_hexa8=(nnpl-1)*(nnpl-1)*(nnpl-1);
-       int num_hexa8;
-       
-       /*conn_hexa8=(med_int *) malloc(8*nbr_hexa8*sizeof(med_int));*/
-       
-       for (i=0;i<nnpl-1;i++) for (j=0;j<nnpl-1;j++) for (k=0;k<nnpl-1;k++) 
-               {
-               i0=i;j0=j;k0=k;
-               i1=i+1;j1=j+1;k1=k+1;
-               
-               num_hexa8=i+(nnpl-1)*j+(nnpl-1)*(nnpl-1)*k;
-               
-               if (8*num_hexa8  >=8*nbr_hexa8) {printf("%d : OUT OF RANGE REQUEST\n",num_hexa8);exit(-1);}
-               if (8*num_hexa8+1>=8*nbr_hexa8) {printf("%d : OUT OF RANGE REQUEST\n",num_hexa8);exit(-1);}
-               if (8*num_hexa8+2>=8*nbr_hexa8) {printf("%d : OUT OF RANGE REQUEST\n",num_hexa8);exit(-1);}
-               if (8*num_hexa8+3>=8*nbr_hexa8) {printf("%d : OUT OF RANGE REQUEST\n",num_hexa8);exit(-1);}
-               if (8*num_hexa8+4>=8*nbr_hexa8) {printf("%d : OUT OF RANGE REQUEST\n",num_hexa8);exit(-1);}
-               if (8*num_hexa8+5>=8*nbr_hexa8) {printf("%d : OUT OF RANGE REQUEST\n",num_hexa8);exit(-1);}
-               if (8*num_hexa8+6>=8*nbr_hexa8) {printf("%d : OUT OF RANGE REQUEST\n",num_hexa8);exit(-1);}
-               if (8*num_hexa8+7>=8*nbr_hexa8) {printf("%d : OUT OF RANGE REQUEST\n",num_hexa8);exit(-1);}
-               
-               conn_hexa8[8*num_hexa8  ] = num_nodes[ i0+nnpl*j1+nnpl*nnpl*k1 ]; 
-               conn_hexa8[8*num_hexa8+1] = num_nodes[ i0+nnpl*j0+nnpl*nnpl*k1 ]; 
-               conn_hexa8[8*num_hexa8+2] = num_nodes[ i1+nnpl*j0+nnpl*nnpl*k1 ]; 
-               conn_hexa8[8*num_hexa8+3] = num_nodes[ i1+nnpl*j1+nnpl*nnpl*k1 ]; 
-               conn_hexa8[8*num_hexa8+4] = num_nodes[ i0+nnpl*j1+nnpl*nnpl*k0 ]; 
-               conn_hexa8[8*num_hexa8+5] = num_nodes[ i0+nnpl*j0+nnpl*nnpl*k0 ]; 
-               conn_hexa8[8*num_hexa8+6] = num_nodes[ i1+nnpl*j0+nnpl*nnpl*k0 ]; 
-               conn_hexa8[8*num_hexa8+7] = num_nodes[ i1+nnpl*j1+nnpl*nnpl*k0 ]; 
-               
-               
-               }
-               
-       for (num_hexa8=0;num_hexa8<nbr_hexa8;num_hexa8++)
-               {               
-               printf("Maille numéro %4d :",num_hexa8);                
-               printf("%4d ",conn_hexa8[8*num_hexa8  ]);
-               printf("%4d ",conn_hexa8[8*num_hexa8+1]);
-               printf("%4d ",conn_hexa8[8*num_hexa8+2]);
-               printf("%4d ",conn_hexa8[8*num_hexa8+3]);
-               printf("%4d ",conn_hexa8[8*num_hexa8+4]);
-               printf("%4d ",conn_hexa8[8*num_hexa8+5]);
-               printf("%4d ",conn_hexa8[8*num_hexa8+6]);
-               printf("%4d ",conn_hexa8[8*num_hexa8+7]);
-               printf("\n");
-               }
-       }       
-void cree_noms_mailles(char * noms, int nnpl)
-       {
-       int nbr_hexa8=(nnpl-1)*(nnpl-1)*(nnpl-1);       
-       int i;
-       char pnom[MED_TAILLE_PNOM+1]="hexa    ";
-       
-       /*noms=(char *) malloc((nbr_hexa8*MED_TAILLE_PNOM+1)*sizeof(char));*/
-       
-       for (i=0;i<nbr_hexa8;i++) strncpy(&noms[i*MED_TAILLE_PNOM],pnom,MED_TAILLE_PNOM);
-       
-       noms[nbr_hexa8*MED_TAILLE_PNOM]='\n';
-       
-       }
-void cree_num_mailles(med_int * num_mailles,int nnpl)
-       {
-       int nbr_hexa8=(nnpl-1)*(nnpl-1)*(nnpl-1);       
-       int i;
-       
-       /*num_mailles=(med_int *) malloc(nbr_hexa8*sizeof(med_int));*/
-       
-       for (i=0;i<nbr_hexa8;i++) num_mailles[i]=i+1;
-       }
-void cree_fam_nodes(med_int * fam,int nnpl)
-       {
-       int nbr_nodes=nnpl*nnpl*nnpl;
-       int i;
-       
-       /*fam=(med_int *) malloc(nbr_nodes*sizeof(med_int));*/
-       
-       for (i=0;i<nbr_nodes;i++) fam[i]=0;
-       }
-void cree_fam_mailles(med_int * fam,int nnpl)
-       {
-       int nbr_hexa8=(nnpl-1)*(nnpl-1)*(nnpl-1);       
-       int i;
-       
-       /*fam=(med_int *) malloc(nbr_hexa8*sizeof(med_int));*/
-       
-       for (i=0;i<nbr_hexa8;i++) fam[i]=0;
-       }
-void cree_valeurs_champ_node(med_float * val,int nnpl)
-       {
-       int i,j,k;
-       int nbr_nodes=nnpl*nnpl*nnpl;
-       int num_noeud;
-       int diviseur=3*(nnpl-1);
-       
-       /*val=(med_float *) malloc(nbr_nodes*sizeof(med_float));*/
-       
-       for (i=0;i<nnpl;i++) for (j=0;j<nnpl;j++) for (k=0;k<nnpl;k++) 
-               {
-               num_noeud=i+nnpl*j+nnpl*nnpl*k;
-               val[num_noeud] = (med_float) (i+j+k)/diviseur;
-               }
-       for (num_noeud=0;num_noeud<nbr_nodes;num_noeud++) printf("Valeur Scalaire noeud %5d : %4.5f\n",num_noeud,val[num_noeud]);
-       }
-void cree_valeurs_champ_vector_node(med_float * val,int nnpl)
-       {
-       int i,j,k;
-       int nbr_nodes=nnpl*nnpl*nnpl;
-       int num_noeud;
-       
-       /*val=(med_float *) malloc(nbr_nodes*sizeof(med_float));*/
-       
-       for (i=0;i<nnpl;i++) for (j=0;j<nnpl;j++) for (k=0;k<nnpl;k++) 
-               {
-               num_noeud=i+nnpl*j+nnpl*nnpl*k;
-               val[3*num_noeud  ] = (med_float) 0;
-               val[3*num_noeud+1] = (med_float) 1;
-               val[3*num_noeud+2] = (med_float) 2;
-               }
-       for (num_noeud=0;num_noeud<nbr_nodes;num_noeud++) printf("Valeur Vectorielle noeud %5d : %4.5f %4.5f %4.5f \n ",num_noeud,val[3*num_noeud],val[3*num_noeud+1],val[3*num_noeud+2]);
-       }
-void cree_valeurs_champ_cell(med_float * val,int nnpl)
-       {
-       int i,j,k;
-       int nbr_cells=(nnpl-1)*(nnpl-1)*(nnpl-1);       
-       int num_cell;
-       
-       med_float diviseur=3*(nnpl-2);
-       
-       /*val=(med_float *) malloc(3*nbr_cells*sizeof(med_float));*/
-       
-       for (i=0;i<nnpl-1;i++) for (j=0;j<nnpl-1;j++) for (k=0;k<nnpl-1;k++) 
-               {
-               num_cell=i+(nnpl-1)*j+(nnpl-1)*(nnpl-1)*k;
-               val[num_cell  ] =  (med_float) (i+j+k)/diviseur;
-               }
-       for (num_cell=0;num_cell<nbr_cells;num_cell++) printf("Valeur scalaire maille %5d : %4.5f\n ",num_cell,val[num_cell]);
-       }       
-void cree_valeurs_champ_vector_cell(med_float * val,int nnpl)
-       {
-       int i,j,k;
-       int nbr_cells=(nnpl-1)*(nnpl-1)*(nnpl-1);       
-       int num_cell;
-       
-       /*val=(med_float *) malloc(3*nbr_cells*sizeof(med_float));*/
-       
-       for (i=0;i<nnpl-1;i++) for (j=0;j<nnpl-1;j++) for (k=0;k<nnpl-1;k++) 
-               {
-               num_cell=i+(nnpl-1)*j+(nnpl-1)*(nnpl-1)*k;
-               val[3*num_cell  ] = (med_float) 0;
-               val[3*num_cell+1] = (med_float) 1;
-               val[3*num_cell+2] = (med_float) 2;         
-               }
-       for (num_cell=0;num_cell<nbr_cells;num_cell++) printf("Valeur Vectorielle maille %5d : %4.5f %4.5f %4.5f \n ",num_cell,val[3*num_cell],val[3*num_cell+1],val[3*num_cell+2]);
-       }
-
-       
-/*****************************************************************************************************/
-       
-int main (int argc, char **argv)
-       {
-               
-       int i,j,k;
-       
-       int nnpl;
-       
-       int nbr_nodes, nbr_hexa8;
-
-       med_err ret;
-       med_idt fromfid;
-       med_idt tofid;
-       char frommaa[MED_TAILLE_NOM+1] = "fromMesh";
-       char tomaa[MED_TAILLE_NOM+1]   = "toMesh";
-       const med_int mdim = 3;
-       med_int fromnnoe;
-       med_int   tonnoe;
-       
-       med_float * tocoo;                   
-       med_float * fromcoo;                 
-       
-       char nomcoo[3*MED_TAILLE_PNOM+1] = "x       y       z       ";
-       char unicoo[3*MED_TAILLE_PNOM+1] = "cm      cm      cm      ";
-
-       char * nomnoe = NULL ;
-       
-       med_int  * fromnumnoe;              
-       med_int  * fromnufano;              
-
-       med_int  * tonumnoe;                
-       med_int  * tonufano;                
-
-       med_int fromnhexa8;
-       med_int  * fromhexa8;                                          
-                            
-       med_int tonhexa8;
-       med_int  * tohexa8;                                          
-                            
-                            
-       char  * fromnomhexa8;             
-       med_int * fromnumhexa8;                                              
-       med_int * fromnufahexa8;                                             
-
-       char  * tonomhexa8;             
-       med_int * tonumhexa8;                                              
-       med_int * tonufahexa8;                                             
-
-/*****************************************************************************************************/
-
-       char nomfam[MED_TAILLE_NOM+1];
-       med_int numfam;
-       char attdes[MED_TAILLE_DESC+1];
-       med_int natt;
-       med_int attide;
-       med_int attval;
-       med_int ngro;
-       char gro[MED_TAILLE_LNOM+1];
-       char gro2[MED_TAILLE_LNOM*2+1];
-       char gro3[MED_TAILLE_LNOM*3+1];
-       int nfame = 1; 
-       int nfamn = 1;
-
-/*****************************************************************************************************/
-
-       /* Some fields : one on nodes : double , one on cells : double */
-
-       char champnode[MED_TAILLE_NOM+1]="fieldnodedouble" ;
-       char champnode_comp[MED_TAILLE_PNOM+1]="X+Y+Z   " ;
-       char champnode_unit[MED_TAILLE_PNOM+1]="X+Y+Z   " ;
-       med_float   * fieldnodedouble;
-
-       char champnodevector[MED_TAILLE_NOM+1]="fieldnodedoublevector" ;
-       char champnodevector_comp[MED_TAILLE_PNOM*3+1]="0       1       2       " ;
-       char champnodevector_unit[MED_TAILLE_PNOM*3+1]="O       1       2       " ;
-       med_float   * fieldnodedoublevector;
-
-       char champcellscalar[MED_TAILLE_NOM+1]="fieldcelldouble" ;
-       char champcellscalar_comp[MED_TAILLE_PNOM+1]="X+Y+Z   " ;
-       char champcellscalar_unit[MED_TAILLE_PNOM+1]="X+Y+Z   " ;
-       med_float   * fieldcelldouble;
-
-       char champcell[MED_TAILLE_NOM+1]="fieldcelldoublevector" ;
-       char champcell_comp[MED_TAILLE_PNOM*3+1]="0       1       2       " ;
-       char champcell_unit[MED_TAILLE_PNOM*3+1]="0       1       2       " ;
-       med_float   * fieldcelldoublevector;
-
-/*****************************************************************************************************/
-
-       
-       if (argc!=2) 
-               {
-               printf("Il manque un paramètre : le nombre de point par ligne\n");
-               exit(-1);
-               }
-
-       sscanf(argv[1],"%d",&nnpl);
-       
-       printf("VERSION 2.0\n");
-       printf("Traitement avec %d noeuds par ligne\n",nnpl);
-
-       fromnnoe   = nnpl*nnpl*nnpl             ;
-       fromnhexa8 = (nnpl-1)*(nnpl-1)*(nnpl-1) ;
-       tonnoe     = (nnpl-1)*(nnpl-1)*(nnpl-1) ;
-       tonhexa8   = (nnpl-2)*(nnpl-2)*(nnpl-2) ;
-
-
-
-       nbr_nodes=nnpl*nnpl*nnpl;
-       nbr_hexa8=(nnpl-1)*(nnpl-1)*(nnpl-1);
-
-       fromcoo       = (med_float *) malloc(3*nbr_nodes*sizeof(med_float));              cree_nodes        ( fromcoo       , nnpl, 0 );
-       fromnumnoe    = (med_int *)   malloc(nbr_nodes*sizeof(med_int));                  cree_num_nodes    ( fromnumnoe    , nnpl );
-       fromnufano    = (med_int *)   malloc(nbr_nodes*sizeof(med_int));                  cree_fam_nodes    ( fromnufano    , nnpl );
-       fromhexa8     = (med_int *)   malloc(8*nbr_hexa8*sizeof(med_int));                cree_Hexa8        ( fromhexa8     , nnpl ,fromnumnoe);
-       fromnomhexa8  = (char *)      malloc((nbr_hexa8*MED_TAILLE_PNOM+1)*sizeof(char)); cree_noms_mailles ( fromnomhexa8  , nnpl );
-       fromnumhexa8  = (med_int *)   malloc(nbr_hexa8*sizeof(med_int));                  cree_num_mailles  ( fromnumhexa8  , nnpl );
-       fromnufahexa8 = (med_int *)   malloc(nbr_hexa8*sizeof(med_int));                  cree_fam_mailles  ( fromnufahexa8 , nnpl );
-
-       fieldnodedouble       = (med_float *) malloc(nbr_nodes*sizeof(med_float));          cree_valeurs_champ_node        ( fieldnodedouble       , nnpl );
-       fieldnodedoublevector = (med_float *) malloc(3*nbr_nodes*sizeof(med_float));        cree_valeurs_champ_vector_node ( fieldnodedoublevector , nnpl );
-       fieldcelldouble       = (med_float *) malloc(nbr_hexa8*sizeof(med_float));          cree_valeurs_champ_cell        ( fieldcelldouble       , nnpl );
-       fieldcelldoublevector = (med_float *) malloc(3*nbr_hexa8*sizeof(med_float));        cree_valeurs_champ_vector_cell ( fieldcelldoublevector , nnpl );
-       
-
-       nbr_nodes=(nnpl-1)*(nnpl-1)*(nnpl-1);
-       nbr_hexa8=(nnpl-2)*(nnpl-2)*(nnpl-2);
-
-       tocoo       = (med_float *) malloc(3*nbr_nodes*sizeof(med_float));              cree_nodes        ( tocoo       , nnpl-1, 1 );
-       tonumnoe    = (med_int *)   malloc(nbr_nodes*sizeof(med_int));                  cree_num_nodes    ( tonumnoe    , nnpl-1 );
-       tonufano    = (med_int *)   malloc(nbr_nodes*sizeof(med_int));                  cree_fam_nodes    ( tonufano    , nnpl-1 );
-       tohexa8     = (med_int *)   malloc(8*nbr_hexa8*sizeof(med_int));                cree_Hexa8        ( tohexa8     , nnpl-1 ,tonumnoe);
-       tonomhexa8  = (char *)      malloc((nbr_hexa8*MED_TAILLE_PNOM+1)*sizeof(char)); cree_noms_mailles ( tonomhexa8  , nnpl-1 );
-       tonumhexa8  = (med_int *)   malloc(nbr_hexa8*sizeof(med_int));                  cree_num_mailles  ( tonumhexa8  , nnpl-1 );
-       tonufahexa8 = (med_int *)   malloc(nbr_hexa8*sizeof(med_int));                  cree_fam_mailles  ( tonufahexa8 , nnpl-1 );
-
-       
-/*****************************************************************************************************/
-       fromfid = MEDouvrir("fromMesh.med",MED_REMP);
-       if (fromfid < 0)
-               ret = -1;
-       else
-               ret = 0;
-       printf("MEDouvrir : %d\n",ret);
-
-/*****************************************************************************************************/
-       tofid = MEDouvrir("toMesh.med",MED_REMP);
-       if (tofid < 0)
-               ret = -1;
-       else
-               ret = 0;
-       printf("MEDouvrir : %d\n",ret);
-/*****************************************************************************************************/
-       if (ret == 0)
-               ret = MEDmaaCr(fromfid,frommaa,mdim);
-       printf("MEDmaaCr : %d\n",ret);
-
-/*****************************************************************************************************/
-
-       if (ret == 0)
-               ret = MEDmaaCr(tofid,tomaa,mdim);
-       printf("MEDmaaCr : %d\n",ret);
-
-/*****************************************************************************************************/
-       if (ret == 0)
-               ret = MEDnoeudsEcr(fromfid,frommaa,mdim,fromcoo,MED_FULL_INTERLACE,MED_CART,
-                                    // nomcoo,unicoo,nomnoe,MED_FAUX,fromnumnoe,MED_VRAI,
-                                    nomcoo,unicoo,nomnoe,MED_FAUX,fromnumnoe,MED_FAUX,
-                                    fromnufano,fromnnoe,MED_ECRI);
-       printf("MEDnoeudsEcr : %d\n",ret);
-/*****************************************************************************************************/
-
-       if (ret == 0)
-               ret = MEDnoeudsEcr(tofid,tomaa,mdim,tocoo,MED_FULL_INTERLACE,MED_CART,
-                                    //nomcoo,unicoo,nomnoe,MED_FAUX,tonumnoe,MED_VRAI,
-                                    nomcoo,unicoo,nomnoe,MED_FAUX,tonumnoe,MED_FAUX,
-                                    tonufano,tonnoe,MED_ECRI);
-       printf("MEDnoeudsEcr : %d\n",ret);
-
-
-/*****************************************************************************************************/
-/* ecriture des mailles MED_HEXA8 :
-   - connectivite
-   - noms (optionnel) 
-   - numeros (optionnel)
-   - numeros des familles */
-       if (ret == 0) 
-               ret = MEDelementsEcr(fromfid,frommaa,mdim,fromhexa8,MED_FULL_INTERLACE,
-                                       fromnomhexa8,MED_FAUX,fromnumhexa8,MED_VRAI,fromnufahexa8,fromnhexa8,
-                                       MED_MAILLE,MED_HEXA8,MED_NOD,MED_ECRI);
-       printf("MEDelementsEcr : %d \n",ret);
-
-/*****************************************************************************************************/
-/* ecriture des mailles MED_HEXA8 :
-   - connectivite
-   - noms (optionnel) 
-   - numeros (optionnel)
-   - numeros des familles */
-
-       if (ret == 0) 
-               ret = MEDelementsEcr(tofid,tomaa,mdim,tohexa8,MED_FULL_INTERLACE,
-                                       tonomhexa8,MED_FAUX,tonumhexa8,MED_VRAI,tonufahexa8,tonhexa8,
-                                       MED_MAILLE,MED_HEXA8,MED_NOD,MED_ECRI);
-       printf("MEDelementsEcr : %d \n",ret);
-
-/*****************************************************************************************************/
-/* ecriture des familles */
-/* Conventions :
-   - toujours creer une famille de numero 0 ne comportant aucun attribut
-     ni groupe (famille de reference pour les noeuds ou les elements
-     qui ne sont rattaches a aucun groupe ni attribut)
-   - les numeros de familles de noeuds sont > 0
-   - les numeros de familles des elements sont < 0
-   - rien d'imposer sur les noms de familles
- */ 
-
-/* la famille 0 */
-       if (ret == 0)
-               {
-               strcpy(nomfam,"FAMILLE_0");
-               numfam = 0;
-               ret = MEDfamCr(fromfid,frommaa,nomfam,numfam,&attide,&attval,attdes,0,gro,0);
-               }
-       printf("MEDfamCr : %d \n",ret);
-/*****************************************************************************************************/
-
-       if (ret == 0)
-               {
-               strcpy(nomfam,"FAMILLE_0");
-               numfam = 0;
-               ret = MEDfamCr(tofid,tomaa,nomfam,numfam,&attide,&attval,attdes,0,gro,0);
-               }
-       printf("MEDfamCr : %d \n",ret);
-
-/*****************************************************************************************************/
-/* Les champs */
-
-       if (ret == 0)
-               {
-               ret = MEDchampCr(fromfid,champnode,MED_REEL64,champnode_comp,champnode_unit,1); 
-               printf("MEDchampCr : %d \n",ret); 
-               if (ret == 0) 
-                       {
-                       ret = MEDchampEcr(fromfid, frommaa, champnode, (unsigned char *)fieldnodedouble,
-                                               MED_FULL_INTERLACE, fromnnoe,
-                                               MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD, 
-                                               0, MED_NOPDT,"        ", 0. , MED_NONOR);
-                       printf("MEDchampEcr : %d \n",ret);
-                       }
-               }
-
-       if (ret == 0)
-               {
-               ret = MEDchampCr(fromfid,champcell,MED_REEL64,champcell_comp,champcell_unit,3);
-               printf("MEDchampCr : %d \n",ret);
-               if (ret == 0) 
-                       {
-                       ret = MEDchampEcr(fromfid, frommaa, champcell, (unsigned char *)fieldcelldoublevector,
-                                               MED_FULL_INTERLACE, fromnhexa8,
-                                               MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_MAILLE, 
-                                               MED_HEXA8, MED_NOPDT,"        ", 0., MED_NONOR);
-                       printf("MEDchampEcr : %d \n",ret);
-                       }
-               }
-
-       if (ret == 0)
-               {
-               ret = MEDchampCr(fromfid,champcellscalar,MED_REEL64,champcellscalar_comp,champcellscalar_unit,1); 
-               printf("MEDchampCr : %d \n",ret); 
-               if (ret == 0) 
-                       {
-                       ret = MEDchampEcr(fromfid, frommaa, champcellscalar, (unsigned char *)fieldcelldouble,
-                                               MED_FULL_INTERLACE, fromnhexa8,
-                                               MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_MAILLE, 
-                                               MED_HEXA8, MED_NOPDT,"        ", 0., MED_NONOR);
-                       printf("MEDchampEcr : %d \n",ret);
-                       }
-               }
-
-       if (ret == 0)
-               {
-               ret = MEDchampCr(fromfid,champnodevector,MED_REEL64,champnodevector_comp,champnodevector_unit,3);
-               printf("MEDchampCr : %d \n",ret);
-               if (ret == 0) 
-                       {
-                       ret = MEDchampEcr(fromfid, frommaa, champnodevector, (unsigned char *)fieldnodedoublevector,
-                                               MED_FULL_INTERLACE, fromnnoe,
-                                               MED_NOPG, MED_ALL, MED_NOPFL, MED_ECRI, MED_NOEUD, 
-                                               0, MED_NOPDT,"        ", 0. , MED_NONOR);
-                       printf("MEDchampEcr : %d \n",ret);
-                       }
-               }
-
-
-/***************************************************************************/
-ret = MEDfermer(fromfid);
-printf("MEDfermer : %d\n",ret);
-/***************************************************************************/
-ret = MEDfermer(tofid);
-printf("MEDfermer : %d\n",ret);
-
-return 0;
-}
-
diff --git a/src/MEDMEM/INTERPOLATION/test_MEDMEM_Interpolation.cxx b/src/MEDMEM/INTERPOLATION/test_MEDMEM_Interpolation.cxx
deleted file mode 100644 (file)
index 5d8112d..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_Field.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Interpolation.hxx"
-
-#include "stdio.h"
-
-main () {
-  
-  const char * fromFileName  = "fromMesh.med";
-  const char * toFileName    = "toMesh.med";
-  //const char * fieldName     = "fieldcelldoublevector"; 
-  const char * fieldName     = "fieldnodedouble";
-
-  const char * fromMeshName  = "fromMesh";
-  const char * toMeshName    = "toMesh";
-
-  try {
-    
-    cout<<"Lecture du Maillage Source : "<<flush; MESH            fromMesh    (MED_DRIVER,fromFileName,fromMeshName);           cout<<"OK !"<<endl;
-    //cout<<"Construction du support    : "<<flush; SUPPORT         fromSupport (&fromMesh,"XsupportX",MED_CELL);                 cout<<"OK !"<<endl;    
-    cout<<"Construction du support    : "<<flush; SUPPORT         fromSupport (&fromMesh,"XsupportX",MED_NODE);                 cout<<"OK !"<<endl;
-    cout<<"Lecture du champ           : "<<flush; FIELD<double>   fromField   (&fromSupport,MED_DRIVER,fromFileName,fieldName); cout<<"OK !"<<endl;
-    cout<<"Lecture du Mailllage Cible : "<<flush; MESH            toMesh      (MED_DRIVER,toFileName,toMeshName);               cout<<"OK !"<<endl;
-    
-    INTERPOLATION<3> myInter (fromField,toMesh);
-    
-    //FIELD<double>   * toField = myInter.interpolate(0,1);
-    FIELD<double>   * toField = myInter.interpolate(1,1);
-    
-    cout<<"Creation du driver"<<endl;
-    
-    toField->addDriver(MED_DRIVER,toFileName,toField->getName()) ;
-
-    cout<<"toField->getName()                  = "<<toField->getName()                  <<endl;
-    cout<<"toField->getDescription()           = "<<toField->getDescription()           <<endl;
-    cout<<"toField->getNumberOfComponents()    = "<<toField->getNumberOfComponents()    <<endl;
-    cout<<"toField->getNumberOfValues()        = "<<toField->getNumberOfValues()        <<endl;
-    cout<<"toField->getComponentsNames()       = "<<toField->getComponentsNames()       <<endl;
-    cout<<"toField->getComponentsDescriptions() = "<<toField->getComponentsDescriptions()<<endl;
-    cout<<"toField->getMEDComponentsUnits()    = "<<toField->getMEDComponentsUnits()    <<endl;
-    cout<<"toField->getIterationNumber()       = "<<toField->getIterationNumber()       <<endl;
-    cout<<"toField->getTime()                  = "<<toField->getTime()                  <<endl;
-    cout<<"toField->getOrderNumber()           = "<<toField->getOrderNumber()           <<endl;
-    cout<<"toField->getValueType()             = "<<toField->getValueType()             <<endl;
-
-    toField->write();
-
-    cout<<"Fin"<<endl;
-
-  } catch (MEDEXCEPTION& ex){
-    MESSAGE(ex.what()) ;
-  }
-}
diff --git a/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationFlipBack.cxx b/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationFlipBack.cxx
deleted file mode 100644 (file)
index ee69b31..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_Med.hxx"
-#include "MEDMEM_Field.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Interpolation.hxx"
-
-#include <deque>
-
-#include "stdio.h"
-
-using namespace MEDMEM;
-
-// pour gestion timings
-#include "time.h"
-
-#define RUN(procedure) {double t0,t1;cout<<"# =============> TEMPS D'EXECUTION A PARTIR D'ICI "<<endl<<#procedure<<endl;t0=CPUtime();procedure;t1=CPUtime();cout<<"# ================> TEMPS D'EXECUTION : "<<t1-t0<<endl;}
-#define TIMORIZE(procedure,t) {double t0,t1;t0=CPUtime();procedure;t1=CPUtime();t=t1-t0;}
-
-double CPUtime()
-       {
-       #ifdef SYSTIMES
-       struct tms buf;
-       if (times(&buf)!=-1)
-               return ((double)buf.tms_utime+(double)buf.tms_stime)/(long) sysconf(_SC_CLK_TCK);
-       else
-       #endif
-       return ((double) clock())/CLOCKS_PER_SEC;
-       }
-
-double ABS(Valeur<double> v)
-       {
-       double tmp=0;
-       int i;
-       for (i=0;i<v.SIZE();i++) tmp+=fabs(v[i]);
-       return tmp;
-       }
-
-double ABS(Valeur<double> v1,Valeur<double> v2)
-       {
-       double tmp=0;
-       int i;
-       for (i=0;i<v1.SIZE();i++) tmp+=fabs(v1[i]-v2[i]);
-       return tmp;
-       }
-
-
-
-// effectue la soustraction du premier moins le second et stocke le résultat dans le premier
-void Flipback(FIELD<double> * firstField, FIELD<double> * secondField)
-       {
-       Wrapper_MED_Field first  ( firstField);
-       Wrapper_MED_Field second (secondField);
-       int nbr_valeurs_first  =  first.Get_Nbr_Valeurs();
-       int nbr_valeurs_second = second.Get_Nbr_Valeurs();
-       
-       double max1    = 0;
-       double max2    = 0;
-       
-       double min1    = ABS(first[0]);
-       double min2    = ABS(second[0]);
-       
-       int imax1,imax2;
-       
-       double tmp;
-       
-       int i;
-       
-       //cout<<first<<endl;
-       //int tyty;cin>>tyty;
-
-       if (nbr_valeurs_first!=nbr_valeurs_second) 
-               {
-               cerr<<"Les champs à soustraire n'ont pas le meme nombre de valeurs"<<endl;
-               exit(-1);
-               }
-       
-       imax1=0;
-       for (i=0;i<nbr_valeurs_first;i++) 
-               {
-               tmp=ABS(first[i]);
-               //cout<<"tmp 1 ["<<i<<"] = "<<tmp<<endl;
-               if (tmp>max1) 
-                       {
-                       imax1=i;
-                       max1=tmp;
-                       }
-               if (tmp<min1) min1=tmp;
-               }
-
-       imax2=0;
-       for (i=0;i<nbr_valeurs_first;i++) 
-               {
-               tmp=ABS(second[i]);
-               if (tmp>max2) 
-                       {
-                       imax2=i;
-                       max2=tmp;
-                       }
-               if (tmp<min2) min2=tmp;
-               }
-               
-       for (i=0;i<nbr_valeurs_first;i++) 
-               {
-               first[i]=ABS(first[i],second[i]);
-               }
-       
-       double maxdiff=ABS(first[0]);
-       double mindiff=ABS(first[0]);
-               
-       for (i=0;i<nbr_valeurs_first;i++) 
-               {
-               tmp=ABS(first[i]);
-               if (tmp>maxdiff) maxdiff=tmp;
-               if (tmp<mindiff) mindiff=tmp;
-               }
-       
-       cout<<endl;     
-       cout<<"/////////////////////////////////////////////////////////////////////////"<<endl;
-       cout<<"/////// max1    = "<<max1<<endl;
-       cout<<"/////// min1    = "<<min1<<endl;
-       cout<<"/////// Maximum First  atteint pour i = "<<imax1<<endl;
-       cout<<"/////// max2    = "<<max2<<endl;
-       cout<<"/////// min2    = "<<min2<<endl; 
-       cout<<"/////// Maximum Second atteint pour i = "<<imax2<<endl;
-       cout<<"/////// maxdiff = "<<maxdiff<<endl;
-       cout<<"/////// mindiff = "<<mindiff<<endl;      
-       cout<<"/////////////////////////////////////////////////////////////////////////"<<endl;
-               
-       }
-
-
-#include "MEDMEM_WrapperCells.hxx"
-
-main () {
-
-  const char * fromFileName   = "ResultatSyrthes.med";
-  const char * toFileName     = "MaillageAster.med";
-  const char * resultFileName = "ResultatFlipback.med";
-
-  const char * fromFieldName  = "THERDEP_TEMP____________________";
-
-  const char * fromMeshName   = "MA";
-  const char * toMeshName     = "MAILLAGE_IDEAS";
-  int handle;
-
-  try {
-    
-    string flag="================[MAIN MESSAGES]================> ";
-    
-    cout<<flag<<"Lecture de la structure MED               : "<<flush; 
-    MED             fromMED     (MED_DRIVER,fromFileName); 
-    cout<<"OK !"<<endl;
-    
-    // Utilisation completement débile, on ne devrait pas avoir a faire l'appel suivant
-    fromMED.updateSupport();
-
-    cout<<flag<<"Lecture du Mailllage Cible                : "<<flush; 
-    MESH            toMesh      (MED_DRIVER,toFileName,toMeshName); 
-    cout<<"OK !"<<endl;
-    
-    cout<<flag<<"Lecture des pas de temps                  : "<<flush; 
-    deque<DT_IT_> pasDeTemps=fromMED.getFieldIteration (fromFieldName); 
-    cout<<"OK !"<<endl;
-    
-    deque<DT_IT_>::const_iterator currentStep;
-    
-    INTERPOLATION<3>  * interFromTo ;
-    INTERPOLATION<3>  * interToFrom ;
-    FIELD<double>   * toField   ;
-    FIELD<double>   * toToField ;
-    int flagNewMappingFromTo = 0;
-    int flagNewMappingToFrom = 0;
-
-    for (currentStep=pasDeTemps.begin();currentStep!=pasDeTemps.end();currentStep++)
-       {
-        cout<<flag<<"Traitement du Step ( "<<flush<<(*currentStep).dt<<" ; "<<(*currentStep).it<<" )  : "<<endl;
-       
-       cout<<flag<<"Lecture du FIELD_ "<<flush;
-       FIELD_ * fromField_ = fromMED.getField(fromFieldName,(*currentStep).dt,(*currentStep).it);
-       cout<<"OK !"<<endl;
-    
-       cout<<flag<<"Transtypage en FIELD                      : "<<flush; 
-       FIELD<double> * fromField = dynamic_cast<FIELD<double> *>(fromField_);
-       cout<<"OK !"<<endl;
-       
-       if (currentStep==pasDeTemps.begin())
-               {
-               //Utilisation completement débile, on ne devrait pas avoir a faire l'appel suivant
-               RUN(fromField->getSupport()->getMesh()->read());
-               }
-               
-       MESH * fromMesh = fromField->getSupport()->getMesh();           
-               
-       cout<<flag<<"Lecture des valeurs du FIELD              : "<<flush; 
-       RUN(fromField->read()); 
-       cout<<"OK !"<<endl;   
-       
-       if (currentStep==pasDeTemps.begin())
-               {
-               cout<<flag<<"Préparation de l'interpolation DIRECTE pour le premier pas de temps  : "<<flush;
-               RUN(interFromTo = new INTERPOLATION<3>(*fromField,toMesh));
-               cout<<"OK !"<<endl;
-               cout<<flag<<"Interpolation effective DIRECTE du premier pas de temps              : "<<flush;
-               RUN(toField = interFromTo->interpolate(1,1));
-               cout<<"OK !"<<endl;    
-               cout<<flag<<"Préparation de l'interpolation INVERSE pour le premier pas de temps  : "<<flush;
-               RUN(interToFrom = new INTERPOLATION<3>(*toField,*fromMesh));
-               cout<<"OK !"<<endl;
-               cout<<flag<<"Interpolation effective INVERSE du premier pas de temps              : "<<flush;
-               RUN(toToField = interToFrom->interpolate(1,1));
-               cout<<"OK !"<<endl;    
-               }
-       else
-               {
-               cout<<flag<<"Interpolation nextStep DIRECTE             : "<<flush;
-               RUN(toField = interFromTo->interpolateNextStep(*fromField,flagNewMappingFromTo));
-               cout<<"OK !"<<endl;    
-               cout<<flag<<"Interpolation nextStep INVERSE             : "<<flush;
-               RUN(toToField = interToFrom->interpolateNextStep(*toField,flagNewMappingToFrom));
-               cout<<"OK !"<<endl;    
-               }
-    
-       cout<<flag<<"Calcul du flip back : "<<flush;
-       Flipback(toToField,fromField);
-       cout<<"OK !"<<endl;
-    
-       cout<<flag<<"Creation du driver d'écriture Field       : "<<flush;
-       toToField->addDriver(MED_DRIVER,resultFileName,toToField->getName()); 
-       cout<<"OK !"<<endl;
-           
-       cout<<flag<<"Ecriture du Field résultat                : "<<flush;
-       toToField->write(); 
-       cout<<"OK !"<<endl;
-    
-       if (flagNewMappingToFrom==1)
-               {
-               cout<<flag<<"Creation du driver d'écriture Mesh        : "<<flush; 
-               handle = fromMesh->addDriver(MED_DRIVER,resultFileName,fromMesh->getName()) ; 
-               cout<<"OK !"<<endl;
-    
-               cout<<flag<<"Ecriture du Mesh résultat                 : "<<flush; 
-               fromMesh->write(handle); 
-               cout<<"OK !"<<endl;
-               }
-       }
-
-  } catch (MEDEXCEPTION& ex){
-    MESSAGE(ex.what()) ;
-  }
-}
diff --git a/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationFromMesh_toMesh.cxx b/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationFromMesh_toMesh.cxx
deleted file mode 100644 (file)
index 5d8112d..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_Field.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Interpolation.hxx"
-
-#include "stdio.h"
-
-main () {
-  
-  const char * fromFileName  = "fromMesh.med";
-  const char * toFileName    = "toMesh.med";
-  //const char * fieldName     = "fieldcelldoublevector"; 
-  const char * fieldName     = "fieldnodedouble";
-
-  const char * fromMeshName  = "fromMesh";
-  const char * toMeshName    = "toMesh";
-
-  try {
-    
-    cout<<"Lecture du Maillage Source : "<<flush; MESH            fromMesh    (MED_DRIVER,fromFileName,fromMeshName);           cout<<"OK !"<<endl;
-    //cout<<"Construction du support    : "<<flush; SUPPORT         fromSupport (&fromMesh,"XsupportX",MED_CELL);                 cout<<"OK !"<<endl;    
-    cout<<"Construction du support    : "<<flush; SUPPORT         fromSupport (&fromMesh,"XsupportX",MED_NODE);                 cout<<"OK !"<<endl;
-    cout<<"Lecture du champ           : "<<flush; FIELD<double>   fromField   (&fromSupport,MED_DRIVER,fromFileName,fieldName); cout<<"OK !"<<endl;
-    cout<<"Lecture du Mailllage Cible : "<<flush; MESH            toMesh      (MED_DRIVER,toFileName,toMeshName);               cout<<"OK !"<<endl;
-    
-    INTERPOLATION<3> myInter (fromField,toMesh);
-    
-    //FIELD<double>   * toField = myInter.interpolate(0,1);
-    FIELD<double>   * toField = myInter.interpolate(1,1);
-    
-    cout<<"Creation du driver"<<endl;
-    
-    toField->addDriver(MED_DRIVER,toFileName,toField->getName()) ;
-
-    cout<<"toField->getName()                  = "<<toField->getName()                  <<endl;
-    cout<<"toField->getDescription()           = "<<toField->getDescription()           <<endl;
-    cout<<"toField->getNumberOfComponents()    = "<<toField->getNumberOfComponents()    <<endl;
-    cout<<"toField->getNumberOfValues()        = "<<toField->getNumberOfValues()        <<endl;
-    cout<<"toField->getComponentsNames()       = "<<toField->getComponentsNames()       <<endl;
-    cout<<"toField->getComponentsDescriptions() = "<<toField->getComponentsDescriptions()<<endl;
-    cout<<"toField->getMEDComponentsUnits()    = "<<toField->getMEDComponentsUnits()    <<endl;
-    cout<<"toField->getIterationNumber()       = "<<toField->getIterationNumber()       <<endl;
-    cout<<"toField->getTime()                  = "<<toField->getTime()                  <<endl;
-    cout<<"toField->getOrderNumber()           = "<<toField->getOrderNumber()           <<endl;
-    cout<<"toField->getValueType()             = "<<toField->getValueType()             <<endl;
-
-    toField->write();
-
-    cout<<"Fin"<<endl;
-
-  } catch (MEDEXCEPTION& ex){
-    MESSAGE(ex.what()) ;
-  }
-}
diff --git a/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationRecopieMaillage.cxx b/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationRecopieMaillage.cxx
deleted file mode 100644 (file)
index ead4941..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_Med.hxx"
-#include "MEDMEM_Field.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Interpolation.hxx"
-
-#include <deque>
-
-#include "stdio.h"
-
-
-
-// pour gestion timings
-#include "time.h"
-
-#define RUN(procedure) {double t0,t1;cout<<"# =============> TEMPS D'EXECUTION A PARTIR D'ICI "<<endl<<#procedure<<endl;t0=CPUtime();procedure;t1=CPUtime();cout<<"# ================> TEMPS D'EXECUTION : "<<t1-t0<<endl;}
-#define TIMORIZE(procedure,t) {double t0,t1;t0=CPUtime();procedure;t1=CPUtime();t=t1-t0;}
-
-double CPUtime()
-       {
-       #ifdef SYSTIMES
-       struct tms buf;
-       if (times(&buf)!=-1)
-               return ((double)buf.tms_utime+(double)buf.tms_stime)/(long) sysconf(_SC_CLK_TCK);
-       else
-       #endif
-       return ((double) clock())/CLOCKS_PER_SEC;
-       }
-
-
-
-#include "MEDMEM_WrapperCells.hxx"
-
-main () {
-/*
-int taille=100;
-int * liste = new int [taille] ;
-int i,j;
-int nbr_faces;
-for (i=0;i<taille;i++) liste[i]=i;
-
-Wrapper_Maille_Tria3   Tria3  ;Tria3  .positionne(liste);cout<<"Tria3  "<<endl;Tria3  .export_connectivite();
-Wrapper_Maille_Tria6   Tria6  ;Tria6  .positionne(liste);cout<<"Tria6  "<<endl;Tria6  .export_connectivite();
-Wrapper_Maille_Quad4   Quad4  ;Quad4  .positionne(liste);cout<<"Quad4  "<<endl;Quad4  .export_connectivite();
-Wrapper_Maille_Quad8   Quad8  ;Quad8  .positionne(liste);cout<<"Quad8  "<<endl;Quad8  .export_connectivite();
-Wrapper_Maille_Tetra4  Tetra4 ;Tetra4 .positionne(liste);cout<<"Tetra4 "<<endl;Tetra4 .export_connectivite();
-Wrapper_Maille_Tetra10 Tetra10;Tetra10.positionne(liste);cout<<"Tetra10"<<endl;Tetra10.export_connectivite();
-Wrapper_Maille_Hexa8   Hexa8  ;Hexa8  .positionne(liste);cout<<"Hexa8  "<<endl;Hexa8  .export_connectivite();
-Wrapper_Maille_Hexa20  Hexa20 ;Hexa20 .positionne(liste);cout<<"Hexa20 "<<endl;Hexa20 .export_connectivite();
-Wrapper_Maille_Pyra5   Pyra5  ;Pyra5  .positionne(liste);cout<<"Pyra5  "<<endl;Pyra5  .export_connectivite();
-Wrapper_Maille_Pyra13  Pyra13 ;Pyra13 .positionne(liste);cout<<"Pyra13 "<<endl;Pyra13 .export_connectivite();
-Wrapper_Maille_Penta6  Penta6 ;Penta6 .positionne(liste);cout<<"Penta6 "<<endl;Penta6 .export_connectivite();
-Wrapper_Maille_Penta15 Penta15;Penta15.positionne(liste);cout<<"Penta15"<<endl;Penta15.export_connectivite();
-//*/
-
-//*    
-  const char * fromFileName   = "ResultatSyrthes.med";
-  const char * toFileName     = "MaillageAster.med";
-  const char * resultFileName = "ResultatInterpolation.med";
-
-  const char * fromFieldName  = "THERDEP_TEMP____________________";
-
-  const char * fromMeshName   = "MA";
-  const char * toMeshName     = "MAILLAGE_IDEAS";
-  int handle;
-
-  try {
-    
-    string flag="================[MAIN MESSAGES]================> ";
-    
-    cout<<flag<<"Lecture de la structure MED               : "<<flush; 
-    MED             fromMED     (MED_DRIVER,fromFileName); 
-    cout<<"OK !"<<endl;
-    
-    // Utilisation completement débile, on ne devrait pas avoir a faire l'appel suivant
-    fromMED.updateSupport();
-
-    cout<<flag<<"Lecture du Mailllage Cible                : "<<flush; 
-    MESH            toMesh      (MED_DRIVER,toFileName,toMeshName); 
-    cout<<"OK !"<<endl;
-    
-    cout<<flag<<"Lecture des pas de temps                  : "<<flush; 
-    deque<DT_IT_> pasDeTemps=fromMED.getFieldIteration (fromFieldName); 
-    cout<<"OK !"<<endl;
-    
-    deque<DT_IT_>::const_iterator currentStep;
-    
-    INTERPOLATION<3>  * myInter ;
-    FIELD<double>   * toField   ;
-    int flagNewMapping = 1;
-
-    for (currentStep=pasDeTemps.begin();currentStep!=pasDeTemps.end();currentStep++)
-       {
-        cout<<flag<<"Traitement du Step ( "<<flush<<(*currentStep).dt<<" ; "<<(*currentStep).it<<" )  : "<<endl;
-       
-       cout<<flag<<"Lecture du FIELD_ "<<flush;
-       FIELD_ * fromField_ = fromMED.getField(fromFieldName,(*currentStep).dt,(*currentStep).it);
-       cout<<"OK !"<<endl;
-    
-       cout<<flag<<"Transtypage en FIELD                      : "<<flush; 
-       FIELD<double> * fromField = dynamic_cast<FIELD<double> *>(fromField_);
-       cout<<"OK !"<<endl;
-       
-       if (currentStep==pasDeTemps.begin())
-               {
-               //Utilisation completement débile, on ne devrait pas avoir a faire l'appel suivant
-               RUN(fromField->getSupport()->getMesh()->read());
-               }
-               
-       cout<<flag<<"Lecture des valeurs du FIELD              : "<<flush; 
-       RUN(fromField->read()); 
-       cout<<"OK !"<<endl;   
-       
-       if (currentStep==pasDeTemps.begin())
-               {
-               cout<<flag<<"Préparation de l'interpolation pour le premier pas de temps  : "<<flush;
-               RUN(myInter = new INTERPOLATION<3>(*fromField,toMesh));
-               cout<<"OK !"<<endl;            
-               cout<<flag<<"Interpolation effective du premier pas de temps              : "<<flush;
-               RUN(toField = myInter->interpolate(1,1));
-               cout<<"OK !"<<endl;    
-               }
-       else
-               {
-               cout<<flag<<"Interpolation nextStep              : "<<flush;
-               RUN(toField = myInter->interpolateNextStep(*fromField,flagNewMapping));
-               cout<<"OK !"<<endl;    
-               }
-    
-       cout<<flag<<"Creation du driver d'écriture Field       : "<<flush;
-       toField->addDriver(MED_DRIVER,resultFileName,toField->getName()); 
-       cout<<"OK !"<<endl;
-    
-       cout<<flag<<"Ecriture du Field résultat                : "<<flush;
-       toField->write(); 
-       cout<<"OK !"<<endl;
-    
-       if (flagNewMapping==1)
-               {
-               cout<<flag<<"Creation du driver d'écriture Mesh        : "<<flush; 
-               handle = toMesh.addDriver(MED_DRIVER,resultFileName,toMesh.getName()) ; 
-               cout<<"OK !"<<endl;
-    
-               cout<<flag<<"Ecriture du Mesh résultat                 : "<<flush; 
-               toMesh.write(handle); 
-               cout<<"OK !"<<endl;
-               }
-       }
-
-  } catch (MEDEXCEPTION& ex){
-    MESSAGE(ex.what()) ;
-  }
-//*/
-}
diff --git a/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationSansRecopieMaillage.cxx b/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationSansRecopieMaillage.cxx
deleted file mode 100644 (file)
index 7b46778..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_Med.hxx"
-#include "MEDMEM_Field.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Interpolation.hxx"
-
-#include <deque>
-
-#include "stdio.h"
-
-main () {
-    
-  const char * fromFileName   = "ResultatSyrthes.med";
-  const char * toFileName     = "MaillageAster.med";
-//  const char * resultFileName = "ResultatInterpolation.med";
-
-  const char * fromFieldName  = "THERDEP_TEMP____________________";
-
-  const char * fromMeshName   = "MA";
-  const char * toMeshName     = "MAILLAGE_IDEAS";
-
-  try {
-    
-    string flag="================[MAIN MESSAGES]================> ";
-    
-    cout<<flag<<"Lecture de la structure MED               : "<<flush; MED             fromMED     (MED_DRIVER,fromFileName)                                   ; cout<<"OK !"<<endl;
-    
-    // Utilisation completement débile, on ne devrait pas avoir a faire l'appel suivant
-    fromMED.updateSupport();
-
-    cout<<flag<<"Lecture du Maillage Source                : "<<flush; MESH            fromMesh    (MED_DRIVER,fromFileName,fromMeshName)                      ; cout<<"OK !"<<endl;
-    cout<<flag<<"Lecture du Mailllage Cible                : "<<flush; MESH            toMesh      (MED_DRIVER,toFileName,toMeshName)                          ; cout<<"OK !"<<endl;
-    cout<<flag<<"Lecture des pas de temps                  : "<<flush; deque<DT_IT_> pasDeTemps=fromMED.getFieldIteration (fromFieldName)                      ; cout<<"OK !"<<endl;
-    cout<<flag<<"Lecture du FIELD_ au premier pas de temps : "<<flush; FIELD_ * fromField_ = fromMED.getField(fromFieldName,pasDeTemps[0].dt,pasDeTemps[0].it) ; cout<<"OK !"<<endl;
-    cout<<flag<<"Transtypage en FIELD                      : "<<flush; FIELD<double> * fromField = dynamic_cast<FIELD<double> *>(fromField_)                   ; cout<<"OK !"<<endl;
-
-    // Utilisation completement débile, on ne devrait pas avoir a faire l'appel suivant
-    fromField->getSupport()->getMesh()->read();
-        
-    cout<<flag<<"Lecture des valeurs du FIELD              : "<<flush; fromField->read()                                                                       ; cout<<"OK !"<<endl;   
-    cout<<flag<<"Préparation de l'interpolation            : "<<flush; INTERPOLATION<3> myInter (*fromField,toMesh)                                            ; cout<<"OK !"<<endl;            
-    cout<<flag<<"Interpolation effective                   : "<<flush; FIELD<double>   * toField = myInter.interpolate(1,1)                                    ; cout<<"OK !"<<endl;    
-    cout<<flag<<"Creation du driver d'écriture             : "<<flush; toField->addDriver(MED_DRIVER,toFileName,toField->getName())                            ; cout<<"OK !"<<endl;
-//    cout<<flag<<"Creation du driver d'écriture Field       : "<<flush; toField->addDriver(MED_DRIVER,resultFileName,toField->getName())                        ; cout<<"OK !"<<endl;
-    cout<<flag<<"Ecriture du Field résultat                : "<<flush; toField->write()                                                                        ; cout<<"OK !"<<endl;
-//    cout<<flag<<"Creation du driver d'écriture Mesh        : "<<flush; toMesh.addDriver(MED_DRIVER,resultFileName,toMesh.getName())                            ; cout<<"OK !"<<endl;
-//    cout<<flag<<"Ecriture du Mesh résultat                 : "<<flush; toMesh.write(1)                                                                         ; cout<<"OK !"<<endl;
-
-  } catch (MEDEXCEPTION& ex){
-    MESSAGE(ex.what()) ;
-  }
-}
diff --git a/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationTimeStep.cxx b/src/MEDMEM/INTERPOLATION/test_MEDMEM_InterpolationTimeStep.cxx
deleted file mode 100644 (file)
index d3db970..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#include "MEDMEM_Exception.hxx"
-#include "MEDMEM_define.hxx"
-
-#include "MEDMEM_Med.hxx"
-#include "MEDMEM_Field.hxx"
-#include "MEDMEM_Mesh.hxx"
-#include "MEDMEM_Interpolation.hxx"
-
-#include <deque>
-
-#include "stdio.h"
-
-main () {
-    
-  const char * fromFileName   = "ResultatSyrthes.med";
-  const char * toFileName     = "MaillageAster.med";
-  const char * resultFileName = "ResultatInterpolation.med";
-
-  const char * fromFieldName  = "THERDEP_TEMP____________________";
-
-  const char * fromMeshName   = "MA";
-  const char * toMeshName     = "MAILLAGE_IDEAS";
-  int handle;
-
-  try {
-    
-    string flag="================[MAIN MESSAGES]================> ";
-    
-    cout<<flag<<"Lecture de la structure MED               : "<<flush; 
-    MED             fromMED     (MED_DRIVER,fromFileName); 
-    cout<<"OK !"<<endl;
-    
-    // Utilisation completement débile, on ne devrait pas avoir a faire l'appel suivant
-    fromMED.updateSupport();
-
-    cout<<flag<<"Lecture du Mailllage Cible                : "<<flush; 
-    MESH            toMesh      (MED_DRIVER,toFileName,toMeshName); 
-    cout<<"OK !"<<endl;
-    
-    cout<<flag<<"Lecture des pas de temps                  : "<<flush; 
-    deque<DT_IT_> pasDeTemps=fromMED.getFieldIteration (fromFieldName); 
-    cout<<"OK !"<<endl;
-    
-    deque<DT_IT_>::const_iterator currentStep;
-    
-    INTERPOLATION<3>  * myInter ;
-    FIELD<double>   * toField   ;
-    int flagNewMapping = 1;
-
-    for (currentStep=pasDeTemps.begin();currentStep!=pasDeTemps.end();currentStep++)
-       {
-        cout<<flag<<"Traitement du Step ( "<<flush<<(*currentStep).dt<<" ; "<<(*currentStep).it<<" )  : "<<endl;
-       
-       cout<<flag<<"Lecture du FIELD_ "<<flush;
-       FIELD_ * fromField_ = fromMED.getField(fromFieldName,(*currentStep).dt,(*currentStep).it) ; 
-       cout<<"OK !"<<endl;
-    
-       cout<<flag<<"Transtypage en FIELD                      : "<<flush; 
-       FIELD<double> * fromField = dynamic_cast<FIELD<double> *>(fromField_); 
-       cout<<"OK !"<<endl;
-
-       // Utilisation completement débile, on ne devrait pas avoir a faire l'appel suivant
-       fromField->getSupport()->getMesh()->read();
-        
-       cout<<flag<<"Lecture des valeurs du FIELD              : "<<flush; fromField->read(); 
-       cout<<"OK !"<<endl;   
-       
-       if (currentStep==pasDeTemps.begin())
-               {
-               cout<<flag<<"Préparation de l'interpolation pour le premier pas de temps  : "<<flush;
-               myInter = new INTERPOLATION<3>(*fromField,toMesh) ; 
-               cout<<"OK !"<<endl;            
-
-               cout<<flag<<"Interpolation effective du premier pas de temps              : "<<flush;
-               toField = myInter->interpolate(1,1); 
-               cout<<"OK !"<<endl;    
-               }
-       else
-               {
-               cout<<flag<<"Interpolation nextStep              : "<<flush;
-               toField = myInter->interpolateNextStep(*fromField,flagNewMapping); 
-               cout<<"OK !"<<endl;    
-               }
-    
-       cout<<flag<<"Creation du driver d'écriture Field       : "<<flush;
-       toField->addDriver(MED_DRIVER,resultFileName,toField->getName()); 
-       cout<<"OK !"<<endl;
-    
-       cout<<flag<<"Ecriture du Field résultat                : "<<flush;
-       toField->write(); 
-       cout<<"OK !"<<endl;
-    
-       if (flagNewMapping==1)
-               {
-               cout<<flag<<"Creation du driver d'écriture Mesh        : "<<flush; 
-               handle = toMesh.addDriver(MED_DRIVER,resultFileName,toMesh.getName()) ; 
-               cout<<"OK !"<<endl;
-    
-               cout<<flag<<"Ecriture du Mesh résultat                 : "<<flush; 
-               toMesh.write(handle); 
-               cout<<"OK !"<<endl;
-               }
-       }
-
-  } catch (MEDEXCEPTION& ex){
-    MESSAGE(ex.what()) ;
-  }
-}