1. 11 Dec, 2020 1 commit
  2. 13 Nov, 2020 2 commits
    • Alexis SALZMAN's avatar
      [xTool] add xDeltaMemory a basic memory profiler · 0628714a
      Alexis SALZMAN authored
      xDeltaMemory class is built in the same spirit as xDeltaTime.
      A "start" method capture a state and a "end" method do a comparison with
      previous captured state. This comparison give a measure of memory
      consumption between those two events.
      To be as precise as possible the usual string used to flag measure are
      now forcedly used by initAccu method and user must use startAccu,
      endAccu with the integer returned by initAccu.
      
      It give result like xDeltaTime as table with parallel statistic and Peak
      memory usage. This last information comes from getrusage (like
      xMemoryMonitor) and correspond to maximum resident set size. All other
      information are related to user request and do not represent the
      application true current memory consumption: malloc may have already
      reserve 2GB and user vector may use only 1.5GB. This is this last
      information that is given by xDeltaMemory.
      
      Only Heap is analyzed.
      
      Behind the curtain:
      ===================
      xDeltaMemory used deprecated GNU extension called hooks. malloc,realloc
      and free hooks give a way to set your own feature related to those
      function. In our case we want to count what user did ask for allocation.
      A ideal solution would be to use the size argument to count. But when
      freeing memory we just have a pointer in hand so its not easy to decrease
      our counter. Instead xDeltaMemory use malloc_usable_size which demangle the
      malloc information related to the accessible memory associated to
      pointer given by malloc.  xDeltaMemory over estimate then the real size
      asked by the user as  malloc_usable_size return the asked size plus the
      padding eventually added by malloc. But this is already a pretty
      accurate measure. Compare to xMemoryMonitor or the use of mallinfo here
      we place the measure in client application side. The others approaches
      can be qualified as system measuring snapshot. And thus they are harder
      to use for precise measure of user allocation.
      
      The deprecated aspect seem to last from a long time ... With gcc 8 on
      liger it is still available ....
      
      The GNU extension aspect is clearly a limitation. This is not portable !
      But all GNU specific aspect has been guarded by __GNUC__ macro so on
      other compiler xDeltaMemory will return 0 for all measure.
      
      To measure third party library calls, it will be possible only if
      the library is also compiled with a GNU compiler and malloc is in use.
      Somme test on liger with mumps show that xDeltaMemory provided almost
      the same information as MUMPS itself.
      
      Note that interleaving measure is possible. A specific counter track the
      start/end to deactivate hooks outside measuring sequence to avoid any
      extra computational cost.
      
      The implementation use static variable ! It is then not currently thread safe.
      
      New atomic test case:
      =====================
      A small test show how  to use xDeltaMemory and is for now the only
      documentation.
      
      TODO
      ====
      doc+xNoDeltaMemory class
      0628714a
    • Alexis SALZMAN's avatar
  3. 18 Sep, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [DataManager] added functionalities to the DataManager famillies. · 0685530e
      Nicolas CHEVAUGEON authored
      class concerned :
      xAttachedDataManagerAOMDGeneric
      xGeneralUnorderedMapDataManager
      xUnorderedMapDataManager
      
      - added public type alias :
        using value_type = DATATYPE;
        using key_type = KEYTYPE;
        Rational : usefull for generic programming with datamanagers.
      
      - added member function contains :
      bool contains(const KEYTYPE &key) const;
      return true if the key is in the datamanager.
      rational : when need to know if a key exist in the data manager, calling contains is easier and faster than call getData(key) and check if null.
      The name contains is  standard in stl associative container starting at c++20. It complement the old count.
      
      - added member function rangeKey :
      xtool::xRange<c_iterKey_t> rangeKey() const;
      return the range of key in the container.
      rational : avoid calling beginKey() and endKey() in some contexts. Make Datamanagers in sync with other containers of Xfiles.
      0685530e
  4. 07 Sep, 2020 1 commit
  5. 03 Sep, 2020 1 commit
    • Alexis SALZMAN's avatar
      [xTool] make xNoDeltaTime works + test case · 487ba92c
      Alexis SALZMAN authored
      xNoDeltaTime class was bugged. Now this class is ok and rigorously having the
      same API as xDeltaTime class.
      
      With this class that cost nothing (all call to instance method
      are optimized out by compiler) we can now consider to let monitoring
      instruction to stay in the middle of the code. No more dirty macros are
      needed around those instructions. Only at creation time the instance
      created is either a xNoDeltaTime or a xDeltaTime object (and macro if
      necessary appears only at this level)
      
      A small atomic test case check that xNoDeltaTime do not cost anything.
      
      Be careful to not encapsulated  a xNoDeltaTime or a xDeltaTime object
      into a std::function. You would alleviate all the effort to make
      xNoDeltaTime to cost nothing. Because std::function itself do cost and
      keeping monitoring instructions in the code would then degrade
      performances.
      487ba92c
  6. 24 Jul, 2020 1 commit
  7. 21 Jul, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xtool and xInterface/AOMD/general] added emplaceSetData in Datamamanager · 03944d76
      Nicolas CHEVAUGEON authored
      The 3 implementations of the datamanager were only usable if affectation
      operator for the type DATA exit, because the only way to set a data
      associated with a key was to do something like
      dataman.setData(key) = DATA;
      Behind the cover, setData actually call the defaut constructor of DATA.
      
      Since there is no proper way to have an affectation operator with type
      that contain const data member, and we want to be able to store such
      data in DATAMANAGERS, member function emplaceSetData was added, for the
      3 implementations of DATAMANAGER.
      
      example :
      dataman.emplaceSetData(key, a,b,c , ....) were a,b,c, ... area any
      number of argument of any type that are passed to the DATA constructor
      inside set Data.
      03944d76
  8. 28 May, 2020 1 commit
    • Alexis SALZMAN's avatar
      [xtool] Add class to adpat iterator containt by casting · 873fe764
      Alexis SALZMAN authored
      castValueBidirIterator and castValueForwardIterator are two class that
      take control of an iterator 'it'. Both change information type pointed by
      'it' by use of static cast. So compare to 'it' only operator * is
      changed. The type used during casting is provided as a template
      parameter to those class.
      
      These classes aim to replace entitytovertexiteratorconvertor class of FM
      library which was used as a start for construction of this new family.
      Compare to this original version, iterator category coherence is more
      strongly achieved between 'it' and its warper. To simplify user task the
      function makeCastValueIterator provide a simple way to create
      castValueBidirIterator or castValueForwardIterator depending on 'it'
      iterator category type.
      
      As now cast type is a template parameter the user have more choice.
      The reverse operation (mVertex* to mEntity*) have been for example
      tested successfully in some appli. And in the same appli use of those
      class in replacement of entitytovertexiteratorconvertor was ok.
      
      TODO
      replace entitytovertexiteratorconvertor and certainely also
      citerobjecttovertexiteratorconvertor
      Add other category type and maybe do some rearrangement to minimize code
      duplication.
      873fe764
  9. 27 May, 2020 1 commit
  10. 22 May, 2020 1 commit
    • Alexis SALZMAN's avatar
      [xTool]add xExportStringDist to write dist string to one file · b97a7039
      Alexis SALZMAN authored
      This Function give a way to use MPIIO transparently. It provide a way to
      write a file from distributed string (or osstream). The strings are
      written to file in ascending process id order.
      The string provided to the function by proc 0 is written first in the
      generated file. Then the one hold by proc 1 is written. And so on. All
      process are not obliged to provide a non null string but they must all
      participate to the call to this function even with empty string.
      
      An atomic test illustrate this function usage and shows how multiple
      files generation can be used to improve IO throughput. With large number
      of process H. Digonnet (ICI) experienced that multiple file output with
      adhoc communicator is better then one unique file with MPIIO (to be
      checked in our context with this test case enlarged to more
      data/process).
      
      A priori there is no limitation to string size except memory
      consumption. This function might be used in the future for xExport
      library.
      
      Note that initially this function was added to xExport library. But this
      library is dependent of xFem so it have been  introduced here in xTool.
      b97a7039
  11. 04 May, 2020 1 commit
    • Alexis SALZMAN's avatar
      [SOME] Add boost finding in some CMakelists.txt · 93d77713
      Alexis SALZMAN authored
      When boost lib is not installed in your system in /usr/include
      the set of lib modified by this commite were in default. As they
      use xTool xIteratorTools.h they depend on boost header and no
      cmake operation give them access to none system boost version. The simple
      addition of some Find Boost mechanism covers this prb. Not sure that
      it is the best way to solve this issue ... as already said
      modern-cmake may be used and in this case give dependency of xtool
      to correct boost.
      
      Please in future pay attention to boost dependency. If you add any don't
      forget to add find in cmake. Boost are not always installed in
      /usr/include.
      
      FindBLAS2.cmake
      ==============
      Durty hack to chose the right mkl lib on new c6 Liger install. Should be
      completely revisited ....
      93d77713
  12. 08 Apr, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xFEM] replace xMesh was_created_by_tag by a static DataManager in xMesh. · f2906dd0
      Nicolas CHEVAUGEON authored
      MAIN POINTS :
          - As usual in this process of removing raw AOMD tag usage, this
            release remove yet another tag :
          was_created_by_tag(), which is use in lots of place in the library
          to refer to the entity that created the current one when it was cut.
          This commit remove the famous was_created_by_tag and replace it with
          a static DATAMANAGER inside xMesh, accessible via get_was_created_by() and
          get_const_was_created_by()
          Not suprisingly, the produced at first  some error in the test case,
          again due to some data still In the manager while the entity is already
          destroyed.
          The following point solved this issue.
          -cleaning process of xMesh and an entity of the xmesh is improved.
          In particular we rewrite the override of mMesh::del(AOMD::mEntity *)
          in xMesh, to make sure it actually cleaned all the data related to the
          entity that are owned by xMesh.
          A clear() member function is also defined that empty the mesh
          and all the Data related to it.
         - In xMesh, the DATAMANAGER implementation used can now be easily
           changed.  This is in previsison of what will be needed withe the mesh
           interface ... We need to be able to use something else than
           xAttachedDataManagerAOMD. To try with a new DATAMANAGER implementation,
          just change the definition of template type alias datamanager_t in
          xMesh. It was tested in particular with xUnorderedMapDataManager,
          and it imposed some slight changes in other files updated in this commit.
          In particular some class and function are now template on the
          DATAMANAGER implementation used.
          Testing with other implementation also reveiled some mistake in the
          implementation of .at(key) which are now corrected both in
          xUnorderedMapDataManager and xGeneralUnorderedMapDataManager.
      
      MINOR POINTS :
      
          - changing the name of the preproc guards in xMesh.h that did not
            follow the
            usual format  in Xfiles
          - Racionaliz better the usage of xMesh.get_xxdatamanager() versus
            xMesh.get_xxconstdatamanager(). This make things more clear
            regarding to what function might or might not modify the xMEsh's data.
          - mMesh.createVertex(id, point, ...) is know used almost wherever
            possible in the library, improving
            readability (and may be cleaner compiled programm)
      
      MODIFIED FILES
      	modified:   xCrack/src/CrackPostpro.cc
      	modified:   xCrack/src/IntegratorSingularCrack3D.cc
      	modified:   xCrack/src/Jint3D.cc
      	modified:   xCrack/src/Jint3D.h
      	modified:   xCrack/src/lCrack.cc
      	modified:   xCrack/src/xcFront.cc
      	modified:   xCrack/src/xcFrontManager.cc
      	modified:   xCrack/src/xcInteractionIntegralsOnCrack.h
      	modified:   xCut/xDoubleCut/src/xPhysDomain.cc
      	modified:   xCut/xDoubleCut/src/xPhysSurfCut.cc
      	modified:   xCut/xLegacySimpleCut/src/xPhysSurf.cc
      	modified:   xCut/xLegacySimpleCut/src/xRefCutToAOMD.cc
      	modified:   xExt/src/DoubleCutting.cc
      	modified:   xExt/src/SpaceLagrangeDualBoundary.h
      	modified:   xExt/src/SpaceLagrangeDualMinBoundary.cc
      	modified:   xExt/src/SpaceLagrangeDualNewBoundary.cc
      	modified:   xExt/src/SpaceLagrangeDualSimple.cc
      	modified:   xFEM/src/xApproxFunction.cc
      	modified:   xFEM/src/xEntityToEntity.cc
      	modified:   xFEM/src/xEntityToEntity.h
      	modified:   xFEM/src/xGatherMesh.cc
      	modified:   xFEM/src/xGatherMesh.h
      	modified:   xFEM/src/xLevelSet.cc
      	modified:   xFEM/src/xMesh.cc
      	modified:   xFEM/src/xMesh.h
      	modified:   xFEM/src/xMeshCut.cc
      	modified:   xFEM/src/xNonLocalInfoForKeysAndFcts.h
      	modified:   xFEM/src/xNonLocalInfoForKeysAndFcts_imp.h
      	modified:   xFEM/src/xValueCreators.h
      	modified:   xInterface/xOctree/src/AdaptOctreeToAOMD.cc
      	modified:   xInterface/xOctree/src/AdaptOctreeToAOMD.h
      	renamed:    xInterface/xOctree/src/AdaptOctreeToAOMD.cc -> xInterface/xOctree/src/AdaptOctreeToAOMD_imp.h
      	modified:   xInterface/xOctree/src/InterfaceOctreeToAOMD.cc
      	modified:   xInterface/xOctree/src/InterfaceOctreeToAOMD.h
      	renamed:    xInterface/xOctree/src/InterfaceOctreeToAOMD.cc -> xInterface/xOctree/src/InterfaceOctreeToAOMD_imp.h
      	modified:   xInterface/xOctree/src/OctreeUtilities.h
      	modified:   xInterface/xTemplateRefineMesh/src/xSplitAOMD.cc
      	modified:   xTLS/src/TLSVelocity.cc
      	modified:   xTLS/src/reInitLevelSetFromFront.cc
      	modified:   xTLS/src/reInitLevelSetFromFront.h
      	new file:   xTLS/src/reInitLevelSetFromFront_imp.h
      	modified:   xTLS/src/xAcceptNotHanging.cc
      	modified:   xTLS/src/xAcceptNotHanging.h
      	modified:   xTLS/src/xEvalWeightedDirectionalAverage.cc
      	modified:   xTLS/src/xEvalWeightedDirectionalAverageMode.cc
      	modified:   xTool/src/xGeneralUnorderedMapDataManager.h
      	modified:   xTool/src/xUnorderedMapDataManager.h
      f2906dd0
  13. 30 Mar, 2020 1 commit
  14. 28 Mar, 2020 2 commits
    • Nicolas CHEVAUGEON's avatar
      [xTool] DATAMANAGER concept implementation : · d56603ce
      Nicolas CHEVAUGEON authored
          Implementation of DATAMANAGER members functions .at(key) have been
          changed for  xGeneralUnorderedDataManager and  xUnorderedMapDataManager
          to take advantage of the existing .at mumber function in the underlying
          container.
      d56603ce
    • Nicolas CHEVAUGEON's avatar
      [xTool, xInterface/AOMD] added member function 'at(key)' to DATAMANAGER concept. · 9909bf1a
      Nicolas CHEVAUGEON authored
          DATAMANAGER concept is close to an ordered_map in term of it's
          interface. getData(key) play the role of a find(key) : it return a
          pointer to the data associated to the key if there is any.
          .at(key) have the same behavior as the std associative container :
          it return a reference to the data associated to key if any or throw if
          there is none.
      
          const and non const version of the at(key) member function have been implementedfor all the current implementation of the DATAMANAGER concept :
          xAttachedDataManagerAOMD, xGeneralUnorderdMapDataManager,
          xUnorderedMapDataManager.
      
          modified:   xInterface/AOMD/general/src/xAttachedDataManagerAOMD.h
          modified:   xTool/src/xGeneralUnorderedMapDataManager.h
          modified:   xTool/src/xUnorderedMapDataManager.h
      9909bf1a
  15. 27 Feb, 2020 1 commit
    • Alexis SALZMAN's avatar
      [xtool,xInterface] change DATAMANAGER API+generalize attachable version · 1a5536c2
      Alexis SALZMAN authored
      Work with N.C.
      
      xAttachedDataManagerAOMD,xGeneralUnorderedMapDataManager and xUnorderedMapDataManager
      are all following DATAMANAGER concept API. This API has been slightly
      modified. It now has const argument for getData,setData and delData
      methods. It says to the user that the key used in this concept is not
      modified by the attachment. In reality it is clearly not the case
      for xAttachedDataManagerAOMD as mEntity, deriving from
      mAttachableDataContainer is changed by attachment. But from a conceptual
      point of view the nature of a vertex, a face, ... are not suppose
      to be changed by any data attached to them => const.
      
      The xAttachedDataManagerAOMD container has been generalized into a
      xAttachedDataManagerAOMDGeneric template also on the key type. Any type
      deriving from mEntity will work. This more generic container may now
      attach data specifically to mVertex or mEdge or ...
      To keep usage of xAttachedDataManagerAOMD in algo expecting
      DATAMANAGER concept with only one template parameter (the data type)
      the class xAttachedDataManagerAOMD is now derived from the class
      xAttachedDataManagerAOMDGeneric with KEYTYPE=mEntity. Please do not
      modify it !!!
      1a5536c2
  16. 27 Jan, 2020 1 commit
    • Grégory LEGRAIN's avatar
      Let there be template fields ! · 3cc692f4
      Grégory LEGRAIN authored
      This is a first implementation of template fields in eXlibris.
      Thanks a lot to Alexis (@asalzman) and Nicolas (@nchevaugeon) for fruitful discussions !
      
      Fields can now handle other quantities than double (complex for instance).
      This has led to multiple changes:
      * xDoubleManager disappears
      * xValueDouble disappears
      * Assembly is now templatized
      
      However, the changes are small with respect to the interface in your applications (see the testcases).
      
      =========================
          Notable changes
      =========================
      
      xDoubleManager:
      ---------------
      Is replaced by  xValueManagerDist<T> ("Dist" stands for "distributed"). This template class handles other values  than double.
      
      Example : xValueManagerDist<double> value_manager;
      
      In your end-user code (AND NOWHERE ELSE), you can define a convenient typedef :
      using  xDoubleManager = xValueManagerDist<double>;
      
      xValue:
      -------
      xValueDouble is replaced by xSingleValue<T> where T stands for the type which is stored.
      Move value creators in xValueCreators.h
      
      xStateOfValue:
      --------------
      is now template (should not influence end-user code)
      
      xStateDofCreator, xStateFixedCreator are also template.
      
      xField:
      -------
      now template against the approximated quantity: xField<double> for a double-valued field
      
      Major internal modifications: "everything" is handled by the specialization of getVal and getGrad. For example:
      template <class iterFct, class iterVal>
      static void getVal (iterFct it, iterFct ite, iterVal first, iterVal last, int size_Fct_Val,
                    const xGeomElem* geo_appro, const xGeomElem* geo_integ, std::complex<double>& v);
      
      xFormBilinear, xFormLinear:
      ---------------------------
      A new template is added (double by default):
      template <typename VT = double> class xFormBilinear;
      It corresponds to the type of quantity which is stored in the elementary stiffness matrices (note that xFemMatrix and other are now template). Usually, you can keep it as double, but this is not mandatory (see BUILD_COMPLEX_VALUED_OPERATORS in test case complex2d).
      
      xAssembler, xAssemblerTraitPolicy, xDispatcher are modified to take into account the other changes.
      
      ==============================
             EXAMPLES
      ==============================
      
      An example of complex-valued field is given in Xtest/xfem-para-test/complex2d (however, see issue #58)
      
      ========================================================
      KNOWN limitations/issues (that will be fixed later on):
      ========================================================
      
      * type dependent code in xField is still part of the class. We should try to move this code away from the core of the class (issue #60).
      * float and complex version of mumps are still not available, so you cannot fully run any float or complex testcases for the moment  (see issue #58)
      * the compiler on titan (gcc 4.8) has troubles during template deduction for some template functions (DeclareInterpolation, DeclareState), see issue #59. The syntax had to be modified in order to help the compiler, leading to verbose notations.
      3cc692f4
  17. 18 Sep, 2019 1 commit
  18. 10 Sep, 2019 1 commit
    • Grégory LEGRAIN's avatar
      [xFEM,xLinalg,...] Templatize xDistVector / Introduce xCPPBlasDef<T> · 70fc502c
      Grégory LEGRAIN authored
      Thanks a lot to @asalzman for his help.
      
      xDistVector is now a template class: it can hold any numerical types
      such as float, double, std::complex<double> etc...
      
      By default, double values are assumed, so that in your code, you should
      only need to replace xDistVector by xDistVector<>
      
      In addition, xlinalg::xCPPBlasDef<T> is introduced in order to simplify
      blas calls, and allow easy template blas code. All the available calls
      are listed in xBlasDef.h. Today, float, double and complex<double>
      values are considered (not with feature parity).
      
      xCSRVector, xDenseMatrix etc... are modified to use xCPPBlasDef.
      
      Update xDistVector atomic test case to float/double/complex values
      70fc502c
  19. 05 Sep, 2019 2 commits
    • Grégory LEGRAIN's avatar
      a10f6dd3
    • Grégory LEGRAIN's avatar
      Add xDadaType class and update xMPIDataType · 3fb7c817
      Grégory LEGRAIN authored
      Work with Alexis Salzman.
      
      1/ Update xtool::xMPIDataType with double-complex types
      (useful for a future commit)
      
      2/ Add xtool::xDataType class
      This template class is useful for template numerical code where the
      notion of zero, one and epsilon has a different meaning depending on the
      type (for int, float, double, complex) for example.
      
      xtool::xDataType<T>::zero() returns the correct zero value (without any
      implicit cast...)
      Same thing with one() and epsilonNumeric().
      3fb7c817
  20. 26 Jun, 2019 1 commit
    • Nicolas CHEVAUGEON's avatar
      Squashed commit of the following: · ff195880
      Nicolas CHEVAUGEON authored
      commit f5bc3b9d33f2b6f2ec35757b666fbd975fe4158a
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 13:52:30 2019 +0200
      
          back to superLU 3
      
      commit 0fd17be223d6879fc6c0ae2f8e5a9263558d8322
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 13:40:53 2019 +0200
      
          cosmetics change after a merge.
      
      commit 5be5f7a4e0b225bef44ef89471c929d8b392fa82
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 12:16:46 2019 +0200
      
          Squashed commit of the following:
      
          commit dcc41789
          Author: Benoit LE <ble@pc-str33.ec-nantes.fr>
          Date:   Wed Jun 26 10:59:32 2019 +0200
      
              Removed uncessary classes and function in xFastMarching/src/Skeleton
      
              Removed FMSK_linearalgebra.h and FMSK_meshinterfacexRegion.h.
      
              Moved a few details from FMSK_fastmarching.h to FM.h. In particular, the destructor of entitystorage is corrected to clear variables properly. (WARNING : in some
              cases, probably due to numerical rounding, it may slightly change some results, for instance when doing a TLS computation using FastMarching. However, after a
              discussion with N. Chevaugeon, it was the proper way to do it). Removed dupplicated function and classes (like entitysotrage, FMUpdaterGeneric, fmeik_intern, etc).
      
      commit 45d8e958f302c51b8f4c388c8e1aeaeb2516052b
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 12:11:30 2019 +0200
      
          * xCrack/CMakeLists.txt  : ANN is now optional for this module
      
          * xCrack/src/lCrack.h/cc : Changes to make the  submesh and filter correct in parallel setting.
            - lCrack class is no more derived from the obsolete xExchangeBool.
            - The support information (stored in xSubMesh in lCrack  ) are now build directly
              in member createSupportInfo().
              Helper functions pre_exchange_XXXX post_exchange and members bucket_type map_xx  are deleted.
            - bool supportsCutthruByCrack(AOMD::mEntity* e) const and
            - bool  supportInCylinderAroundFront(double r, AOMD::mEntity *e) const
               members function of lCrack are now implemented in the cc to make the .h more readable
            - Gradient of lst and lsn are now  computed during initialization (post_init member of lcrack),
              since it need   synchronisation among processors.
              this avoids dead-lock when agradient is evaluated latter on.
      
          * xFEM/src/xAlgorithm.h : added range version of some export algorithm.
            I have plans to add more range version of the algorithms.
            (range version : I mean just interface to algorithm where one can pass a range
            (an object on which one can call begin() and end() ... see xIteratorTools.h )
            instead of two iterators.)
      
          * XFEM/src/xRegion.h/cc : added members to class xRegion :
                   size_t size() const;
                   size_t size(int what) const;
                   xtool::xRange<xIter> range() const;
                   xtool::xRange<xIter> range(int what ) const;
      
          * XFEM/src/xSubmesh.h/cc :
             - added members to class xSubMesh :
                   xtool::xRange<xIter > range() const
                   xtool::xRange<xIter > range(int what) const
             - added xUnifySubMeshAccrossProcess class, which is a submesh modifyier
               By calling this modifiyer, one insure that  if an entity exist in a  submesh at least on one proc,
               and is on the partition of the background mesh,
               this entity will be in the submesh of all the proc that share this entity.
      
          * xLinAlg/xSolverBase/src/xDenseMatrix.cc :
             double xDenseMatrix::maxnorm() const implemeted in the cc file.
      
          *  xTool/src/xIteratorTools.h added :
             - make_filter_iter(pred, itb, ite)
             - make_filter_range(pred, range)
             - make_filter_range(pred, itb, ite)
      
          * xTool/src/xRawDataExchanger.h
            addeded communication paterns when no key can be easily defined. Used  for example in xSubMesh
            xUnifySubMeshAccrossProcess
            added test in xTool/test/testsendRecvRawData/
      
          * Trellis/AOMD/AOMD/include/mMesh.h :
          - added move constructor for mMesh.
          - member find(mEntity *) is now const.
      
          * xInterface/AOMD/general/src/xAttachedDataManagerAOMD.h
           xAttachedDataManagerAOMD's member funciton deleteData now return a size_t (stl style) to knwon
           if a data as been effectively delete or not.
      
          * xTLS/CMakeLists.txt : bug corrected in CMake line 80
      
      commit 0f3d17e3e7b01c28a5a168e213c6926b2619526f
      Merge: be8df97f fc91b2b6
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 11:30:04 2019 +0200
      
          Merge remote-tracking branch 'origin/master' into mycurrent_branch
      
      commit be8df97fb07b3dc877b299e583833d08526e7fee
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 21 12:11:27 2019 +0200
      
          CMakeList for Xcrack : now ann is optional for xcrack
      
      commit 0953a5a729969089666a74dd0fbff760c29baa19
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 14 13:55:02 2019 +0200
      
          Added new communications pattern in xTool/src/xRawDataExchanger.h, usefull when exchanging data when no key can be defined. Associated test case :  xTool/test/testsendRecvRawData/
      
      commit 1f2739fd89dcb9e0e41bb6e33c3c3679e53aa700
      Merge: cf61c8b7 e249e06c
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Thu Jun 13 15:58:13 2019 +0200
      
          Merge branch 'refactoring' into mybranch_refactmerge
      
      commit e249e06c
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Thu Jun 13 12:38:12 2019 +0200
      
          xfastmarching namespace usage correction
      
          New xfastmarching namespace have been introduced but pack/unPack helping function
          must remain in :: namescpace (i.e. in no namescpace). This is to let FMupdaterGeneric
          call ::pack  ::unPack in a generic way (no assumption on VECT or TRANSPORTED
          namespace)
      
      commit 4c2c20c2
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Wed Jun 12 11:39:05 2019 +0200
      
          xInterface/Graph: little change on how to use try_run in cmake
      
      commit 6614834f
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Tue Jun 11 14:41:49 2019 +0200
      
          SuperLU:Add durty duplication to control version. TODO
      
      commit eb383986
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Tue Jun 11 12:54:11 2019 +0200
      
          Squashed commit of the following:
      
          commit 90452f607824ed9ac46c1d3fca8e8160de399f53
          Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
          Date:   Tue Jun 11 12:52:08 2019 +0200
      
              Back to superLU 3 as default in xLinearSystemSolverSuperLU.h
      
          commit 52420031eb8d5add55039dc5b143000807a32b9d
          Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
          Date:   Tue Jun 11 12:37:39 2019 +0200
      
              CMakeLists modifyed to fix linking issue:
              library xExport is now not parts of the XFEM_LIBRARIES defined by find Xfem
              xExport dependecies where therfore added where needed.
      
              Super for SuperLU 5 (experimental ) added in xinterface superlu
      
          commit 1e798815a51737d615ee25940cb1e6b796150c7a
          Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
          Date:   Fri Jun 7 15:03:05 2019 +0200
      
              corrected  ../../../xInterface/Graph/ParMetis build process to reflect change in paths.
      
              modifiyed xCSRVector.h and cc so that the .h does not include xBlasDef.h since it can produce conflict when including xVector.h in superLU interface
      
           Changes to be committed:
          	modified:   xFEM/CMakeLists.txt
          	modified:   xInterface/Graph/ParMetis/CMakeLists.txt
          	modified:   xInterface/Graph/ParMetis/src/setType/test.cc
          	modified:   xLinAlg/xInterfaceBasicIterSolver/test/springSolve/main.cc
          	modified:   xLinAlg/xInterfaceSuperLu/src/xLinearSystemSolverSuperLU.cc
          	modified:   xLinAlg/xInterfaceSuperLu/src/xLinearSystemSolverSuperLU.h
          	modified:   xLinAlg/xInterfaceSuperLu/src/xLinearSystemSolverSuperLU_imp.h
          	modified:   xLinAlg/xSolverBase/src/xCSRVector.cc
          	modified:   xLinAlg/xSolverBase/src/xCSRVector.h
          	modified:   xLinAlg/xSolverBase/src/xDenseMatrix.cc
          	modified:   xLinAlg/xSolverBase/src/xDenseMatrix.h
          	modified:   xUtil/cmakeUtil/FindxFEM.cmake
      
      commit cf61c8b74089cd0ffe274c5cc2a45e24285c74c5
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 7 14:45:28 2019 +0200
      
          changes in CMakelists.txt for ParMetisInterface_types.h to be properly generated
      
      commit 286497f1b9ddc3a017561a0494af5a6df3cdf09a
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 7 12:36:23 2019 +0200
      
          small modif in :
          xInterface/Graph/ParMetis/CMakeLists.txt
          and  xLinAlg/xSolverBase/src/xCSRVector.h
      
          in xInterface/Graph/ParMetis/CMakeLists.txt, path for the test.cc file was wrong
          in  xLinAlg/xSolverBase/src/xCSRVector.h : small change to avoid the inclusion of xBlasDef.h, which conflict with some version of superLu that define the same external function from blas, with slightly different signature.
      
      commit bf8cbe0851dfd2c7107565dff1f06a25220db25e
      Merge: 4fcc8541 8c95f4d6
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 7 10:45:08 2019 +0200
      
          Merge remote-tracking branch 'origin/refactoring' into mybranch_refactmerge
      
      commit 4fcc85416046e03da4e53bfd84f8262718cda959
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 7 09:34:55 2019 +0200
      
          Small changes in aomd :
      
           - move constructor for mMesh added
           - mEntity * mesh::find(mEntity *) now a const member function
           - void xAttachedDataManagerAOMD::deleteData( AOMD::mEntity &e ) changed to
             size_t xAttachedDataManagerAOMD::deleteData( AOMD::mEntity &e )
             delete data now return un unsigned int telling if a data was actually deleted or not    (like in stl style container ): return 0 if nothing was deleted, 1 otherwise
      
      commit 8c95f4d6
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Thu Jun 6 15:11:57 2019 +0200
      
          finalises standard pathes:
      
      commit 33bbac5d
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Tue Jun 4 10:51:16 2019 +0200
      
          rename directory and namespaces. Last modifications below:
      
          Original directory (Master)    ->             New directory (refactoring)                 Namespace (refactoring)
          ===========================                   ===========================                 =======================
      
          Xfiles:
          =======
      
          Util
             |_eXlibris_tools                           xTool                                     xtool::
             |
             |                                          xUtil
             |_cmakeUtile                                   |_cmakeUtile
             |
             |_FloUtil                                      attic
             |_Split                                        attic
             |_doxygen_tools                                attic
             |_tags_tools                                   attic
      
          Xcrack                                        xCrack
               |_ xCrack                                     |_ src                               xcrack::
               |
               |_ xCrackFMM                                  attic
      
          Xcut                                          xCut
             |_XdoubleCut                                  |_xDoubleCut                           xcut::
      
          Xdomaindecomp                                 xDomainDecomp
                      |_DomainManager                               |_DomainManager               xdomaindecomp::
                      |_Solvers                                     |_Solver                      xdomaindecomp::
      
          Xext
             |_AnalyicalSolutions                       xAnalyticalSolution
             |                  |_Elastic2D                               |_Elastic2D             xanalyticalsolution::
             |
             |_Xext                                     xExt
                  |_src                                    |_src                                  xext::
                  |
                  |_ImageProcessing                        attic
      
          Xfem
             |_Xfem ___________________________________ xFEM                                      xfem::
                                               \_______ xCut
                                                \          |_xLegacySimpleCut                     xcut::
                                                 \
                                                  \____ xExport                                   xexport::
                                                   \___ xTensor                                   xtensor::
                                                    \__ xMapping                                  xmapping
                                                     \_ xQuadrature                               xquadrature::
      
          FastMarching                                  xFastMarching
                     |_src                                          |_src                         xfastmarching::
                     |   |_FMSkeleton                               |   |_Skeleton                xfastmarching::skeleton
                     |                                              |
                     |_xDistFM                                      |_xDistFM                     xfastmarching::
                             |_xDistFM                                      |_src                 xfastmarching::
      
          Geom                                          xGeom                                     xgeom::
      
          Xinterfaces                                   xInterface
                    |_XAOMDInterface                             |_AOMD                           xinterface::aomd::
                    |                                            |
                    |_GraphInterface                             |_Graph
                    |              |_ParMetis                    |     |_ParMetis                 xinterface::parmetis::
                    |                                            |
                    |_XoctreeInterface                           |_xOctree                        xinterface::xoctree::
                    |                                                    |
                    |_xSplitMeshInterface                                |_xTemplateRefineMesh    xinterface::xtempaterefinemesh::
                    |
                    |
                    |_SolverInterfaces                   xLinAlg
                                     |_SolverBase              |_SolverBase                       xlinalg::
                                     |_SuperLu                 |_xInterfaceSuperLu                xlinalg::
                                     |_Taucs                   |_xInterfaceTaucs                  xlinalg::
                                     |_Lapack                  |_xInterfaceTaucs                  xlinalg::
                                     |_Mumps                   |_xInterfaceMumps                  xlinalg::
                                     |_BasicIterSolver         |_xInterfaceBasicIterSolver        xlinalg::
                                     |_Pastix                  |_xInterfacePastix                 xlinalg::
                                     |
                                     |_NonLinearSolver         attic
                                     |_PetscParallel           attic
                                     |_PetscSeq                attic
                                     |_SparsKit                attic
                                     |_Itl                     attic
                                     |_Mtl                     attic
                                     |_KSPParallel             attic
      
          MeshMachine                                   xMeshTools
                    |_DistMesh                                   |_xDistMesh                      xmeshtool::
                    |_SplitMesh                                  |_xTemplateRefineMesh            xmeshtool::
                    |
                    |_FastMarching                               attic
                    |_LinearAlgebra                              attic
                    |_Stlmesh                                    attic
      
          Octree                                        xOctree                                   xoctree::
      
          Physics
                |_Physics                               xPhysics
                        |_Materials                            |_Materials                        xphysics::
                        |_src                                  |_src                              xphysics::
      
          xTLS
             |_trunck
             |_xTLS                                     xTLS                                      xtls::
      
          ============================================================================================
      
          Xfem splitting:
          ===============
      
          xCut
             |_src
                 |__ xDoubleCut
                 |             |__(unchanged)
                 |
                 |__ xLegacySimpleCut
                                    |__ xPhysSurfByTagging.cc
                                    |__ xPhysSurfByTagging.h
                                    |__ xPhysSurf.cc
                                    |__ xPhysSurf.h
                                    |__ xPhysSurfParameter.cc
                                    |__ xPhysSurfParameter.h
                                    |__ xRefCut.cc
                                    |__ xRefCut.h
                                    |__ xRefCutToAOMD.cc
                                    |__ xRefCutToAOMD.h
                                    |__ xRefCutToIsoZeroVector.cc
                                    |__ xRefCutToIsoZeroVector.h
                                    |__ xRefMesh.cc
                                    |__ xRefMesh.h
      
          xExport
                |_src
                    |__ xExport.cc
                    |__ xExportEnsight.cc
                    |__ xExportEnsight.h
                    |__ xExportGmsh.cc
                    |__ xExportGmsh.h
                    |__ xExportGmsh_imp.h
                    |__ xExport.h
                    |__ xExportManager.cc
                    |__ xExportManager.h
                    |__ xExportTranslate.cc
                    |__ xExportTranslate.h
                    |__ xPostPro.cc
                    |__ xPostPro.h
                    |__ xPostProMSH.cc
                    |__ xPostProMSH.h
                    |__ xPostProVTU.cc
                    |__ xPostProVTU.h
                    |__ xSensors.cc
                    |__ xSensors.h
      
          xTensor
                |_src
                    |__ xPoint.h
                    |__ xTensor2.cc
                    |__ xTensor2.h
                    |__ xTensor2Sym.cc
                    |__ xTensor2Sym.h
                    |__ xTensor3.h
                    |__ xTensor4.h
                    |__ xTensorOperations.h
                    |__ xVector.cc
                    |__ xVector.h
                    |__ xVectorScalarProd.h
      
      commit d76fddf4
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Fri May 10 12:33:16 2019 +0200
      
          previous retrieval was a mistake
      
      commit d2a57bbf
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Fri May 10 12:09:17 2019 +0200
      
          retrieve forgotten files concerning xSplitMesh
      
      commit 458beb2b
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Fri May 3 16:15:37 2019 +0200
      
          - added modules in preparation for "V0":
      
                          Xfiles
                               |_xMapping      +  namespace  xmapping
                               |_xQuadrature
      
          - modified namespaces:
                          geom             ->   xgeom
                          distmesh         ->   xdistmesh
                          oct              ->   xoctree
                          oct_xfem_adapt  }
                          oct_utilities   }->   xoctreeinterface
          		oct_xfem_interf }
      
          - namespace  xphysics  created for module  Xfiles/xPhysics
      
      commit 230607c4
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Thu May 2 17:06:15 2019 +0200
      
          rename libs/directories:
      
                  Xcrack                            ->   xCrack
                  Xcut                              ->   xCut
                     |_XdoubleCut                           |_xDoubleCut
                     |_XlegacySimpleCut                     |_xLegacySimpleCut
      
                  Xdomaindecomp                     ->   xDomainDecomp
                  Xexport                           ->   xExport
                  Xext                              ->   xExt
                  Xfem                              ->   xFEM
                  FastMarching                      ->   xFastMarching
                  Geom                              ->   xGeom
      
                  Xinterfaces                       ->   xInterfaces
                        |_XAOMDInterface                       |_xAOMDInterface
                        |_GraphInterface                       |_xGraphInterface
                        |_XoctreeInterface                     |_xOctreeInterface
                        |_xSplitMeshInterface                  |_xTemplateRefineMeshInterface
                        |
                        |                           ->  xLinearAlgebra
                        |_SolverInterfaces                     |
                                         |_SuperLu             |_xInterfaceSuperLu
                                         |_Taucs               |_xInterfaceTaucs
                                         |_...                 |_xInterface...
      
                  MeshMachine                       ->   xMeshTools
                            |_DistMesh                            |_xDistMesh
                            |_SplitMesh                           |_xTemplateRefineMesh
                            |                                     |_attic
                            |_FastMarching                              |_FastMarching
                            |_LinearAlgebra                             |_LinearAlgebra
                            |_Stlmesh                                   |_Stlmesh
      
                  Octree                            ->   xOctree
                  Physics                           ->   xPhysics
                  Xtensor                           ->   xTensor
      
                  Util
                     |_eXlibris_tools               ->   xTools
      
                  Util                              ->   xUtil
                     |_cmakeUtile                            |_cmakeUtile
                     |                                       |_attic
                     |_FloUtil                               |_FloUtil
                     |_Split                                         |_Split
                     |_doxygen_tools                                 |_doxygen_tools
                     |_tags_tools                                    |_tags_tools
      
                  Xtest
                      |_solverinterfaces            ->   xlinearalgebra-test
                      |_physics-seq-test            ->   xphysics-seq-test
                      |_xsplitmeshinterface-test    ->   templaterefinemesh-test
      
          cmake variables rules for module Xfiles/xFoe (no more Xfiles/Xfoe) :
      
                Xfiles/xFoe  => find_package(xFoe)  => xFoe_INCLUDE_DIR  / xFoe_LIBRARIES
      
          in C++ source files, namespace are in lower cases: xfoe
      
      commit 474db3f3
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Tue Apr 30 15:04:25 2019 +0200
      
          rename  Xfiles/Util/eXlibris_tools  in  Xfiles/xTools
          find_package(EXLIBRISTOOLS) becomes find_package(xTools)
          namespace is now  xtools  instead of  eXlibris_tools
      
          move:
          	 Util/FloUtil                     -> Util/attic/FloUtil
          	 Util/Split                       -> Util/attic/Split
          	 Util/doxygen_tools               -> Util/attic/doxygen_tools
          	 Util/tags_tools                  -> Util/attic/tags_tools
          	 Xtensor/src/xGenericOperations.h -> xTools/src/xGenericOperations.h
      
      commit 559ab2c1
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Tue Apr 30 11:49:07 2019 +0200
      
          Finalises XlegacySimpleCut.
          Still to do: move eventually class xPhysSurfVLS (inside xVectorLevelSet.*) into Xfiles/Xcut/XlegacySimpleCut.
      
      commit 8c4dfc76
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Thu Apr 25 12:11:22 2019 +0200
      
          purge mistakes
      
      commit a741772f
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Thu Apr 25 11:46:10 2019 +0200
      
          use XlegacySimpleCut: backup with partial updates
      
      commit 3c9d751e
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Wed Apr 17 17:37:15 2019 +0200
      
          takes into account the renaming of Xcut/xDoubleCut/src into Xcut/XdoubleCut/src
      ff195880
  21. 18 Jun, 2019 3 commits
    • Alexis SALZMAN's avatar
      xTool: add exportInGraphvizDof to obtain a partman graphical view · 015186af
      Alexis SALZMAN authored
      This function takes a partition manager, a filename and a filter
      as arguments. The filename is used to create names for dot file
      generated by this function. There is one file per dimension.
      Each file contain the graph (in dot format) of interprocess
      relation in between entities of a given dimension. The interprocess
      relation are coming from provided partition manager information.
      Graph node are node, edge or face described by there address,
      there id, there type. Directed edge show the counterpart of
      an entity on remote process.
      
      The integer filter argument may remove graph with entity that have only
      less than "filter" remotes ones. Typically if filter=1 all 1 to 1 graph
      will be removed and only graph of entities related to more then 1 remote
      will be kept.
      
      Dot graph format is recognized by "dot"  graphviz application. For
      example:
      dot -Tpng -o pm_1.png 0_filename
      will create a png picture pm_1.png from outputted 0_filename (node
      entities relationship).
      015186af
    • Alexis SALZMAN's avatar
      xTool: add xKeyContainerSendAndRecvFromTo to set of key container · bb3ffb19
      Alexis SALZMAN authored
      This new container in the family of Send And Receive operation will
      provide a specific from/to selection of the key. This give a way to
      communicate in a ring manner for example.
      The key are still accumulate with a key manager. But from/to (given at
      construction time) will place it in send or receive map or ignore it
      depending if current proc id correspond respectively to "from" or
      "to" or none of them.
      This mechanism may be viewed as a sophisticate send mechanism:
      * It deal with key/information concept to store info to send. This is
      rather more sophisticate than the simple send as key order may be used to
      reduce information volume to be send.
      * It use asynchronous mechanism
      * It encapsulate all MPI in exchangeInformation and associated object
      bb3ffb19
    • Alexis SALZMAN's avatar
      xTool:add xNoDeltaTime class that respect xDeltaTime concept put do nothing · d08178f9
      Alexis SALZMAN authored
      May be used as default template parameter type in somme method or
      function so that monitoring is bypassed without use of macro.
      To be consolidate, experimented and expanded ...
      d08178f9
  22. 14 Jun, 2019 1 commit
    • Gilles MARCKMANN's avatar
      refactoring 2019: renames namespace, creates new directories, ... · e6039c6a
      Gilles MARCKMANN authored
          rename directory and namespaces. Modifications below:
      
          Original directory (Master)    ->             New directory (refactoring)                 Namespace (refactoring)
          ===========================                   ===========================                 =======================
      
          Xfiles:
          =======
      
          Util
             |_eXlibris_tools                           xTool                                     xtool::
             |
             |                                          xUtil
             |_cmakeUtile                                   |_cmakeUtile
             |
             |_FloUtil                                      attic
             |_Split                                        attic
             |_doxygen_tools                                attic
             |_tags_tools                                   attic
      
          Xcrack                                        xCrack
               |_ xCrack                                     |_ src                               xcrack::
               |
               |_ xCrackFMM                                  attic
      
          Xcut                                          xCut
             |_XdoubleCut                                  |_xDoubleCut                           xcut::
      
          Xdomaindecomp                                 xDomainDecomp
                      |_DomainManager                               |_DomainManager               xdomaindecomp::
                      |_Solvers                                     |_Solver                      xdomaindecomp::
      
          Xext
             |_AnalyicalSolutions                       xAnalyticalSolution
             |                  |_Elastic2D                               |_Elastic2D             xanalyticalsolution::
             |
             |_Xext                                     xExt
                  |_src                                    |_src                                  xext::
                  |
                  |_ImageProcessing                        attic
      
          Xfem
             |_Xfem ___________________________________ xFEM                                      xfem::
                                               \_______ xCut
                                                \          |_xLegacySimpleCut                     xcut::
                                                 \
                                                  \____ xExport                                   xexport::
                                                   \___ xTensor                                   xtensor::
                                                    \__ xMapping                                  xmapping
                                                     \_ xQuadrature                               xquadrature::
      
          FastMarching                                  xFastMarching
                     |_src                                          |_src                         xfastmarching::
                     |   |_FMSkeleton                               |   |_Skeleton                xfastmarching::skeleton
                     |                                              |
                     |_xDistFM                                      |_xDistFM                     xfastmarching::
                             |_xDistFM                                      |_src                 xfastmarching::
      
          Geom                                          xGeom                                     xgeom::
      
          Xinterfaces                                   xInterface
                    |_XAOMDInterface                             |_AOMD                           xinterface::aomd::
                    |                                            |
                    |_GraphInterface                             |_Graph
                    |              |_ParMetis                    |     |_ParMetis                 xinterface::parmetis::
                    |                                            |
                    |_XoctreeInterface                           |_xOctree                        xinterface::xoctree::
                    |                                                    |
                    |_xSplitMeshInterface                                |_xTemplateRefineMesh    xinterface::xtempaterefinemesh::
                    |
                    |
                    |_SolverInterfaces                   xLinAlg
                                     |_SolverBase              |_SolverBase                       xlinalg::
                                     |_SuperLu                 |_xInterfaceSuperLu                xlinalg::
                                     |_Taucs                   |_xInterfaceTaucs                  xlinalg::
                                     |_Lapack                  |_xInterfaceTaucs                  xlinalg::
                                     |_Mumps                   |_xInterfaceMumps                  xlinalg::
                                     |_BasicIterSolver         |_xInterfaceBasicIterSolver        xlinalg::
                                     |_Pastix                  |_xInterfacePastix                 xlinalg::
                                     |
                                     |_NonLinearSolver         attic
                                     |_PetscParallel           attic
                                     |_PetscSeq                attic
                                     |_SparsKit                attic
                                     |_Itl                     attic
                                     |_Mtl                     attic
                                     |_KSPParallel             attic
      
          MeshMachine                                   xMeshTools
                    |_DistMesh                                   |_xDistMesh                      xmeshtool::
                    |_SplitMesh                                  |_xTemplateRefineMesh            xmeshtool::
                    |
                    |_FastMarching                               attic
                    |_LinearAlgebra                              attic
                    |_Stlmesh                                    attic
      
          Octree                                        xOctree                                   xoctree::
      
          Physics
                |_Physics                               xPhysics
                        |_Materials                            |_Materials                        xphysics::
                        |_src                                  |_src                              xphysics::
      
          xTLS
             |_trunck
             |_xTLS                                     xTLS                                      xtls::
      
          ============================================================================================
      
          Xfem splitting:
          ===============
      
          xCut
             |_src
                 |__ xDoubleCut
                 |             |__(unchanged)
                 |
                 |__ xLegacySimpleCut
                                    |__ xPhysSurfByTagging.cc
                                    |__ xPhysSurfByTagging.h
                                    |__ xPhysSurf.cc
                                    |__ xPhysSurf.h
                                    |__ xPhysSurfParameter.cc
                                    |__ xPhysSurfParameter.h
                                    |__ xRefCut.cc
                                    |__ xRefCut.h
                                    |__ xRefCutToAOMD.cc
                                    |__ xRefCutToAOMD.h
                                    |__ xRefCutToIsoZeroVector.cc
                                    |__ xRefCutToIsoZeroVector.h
                                    |__ xRefMesh.cc
                                    |__ xRefMesh.h
      
          xExport
                |_src
                    |__ xExport.cc
                    |__ xExportEnsight.cc
                    |__ xExportEnsight.h
                    |__ xExportGmsh.cc
                    |__ xExportGmsh.h
                    |__ xExportGmsh_imp.h
                    |__ xExport.h
                    |__ xExportManager.cc
                    |__ xExportManager.h
                    |__ xExportTranslate.cc
                    |__ xExportTranslate.h
                    |__ xPostPro.cc
                    |__ xPostPro.h
                    |__ xPostProMSH.cc
                    |__ xPostProMSH.h
                    |__ xPostProVTU.cc
                    |__ xPostProVTU.h
                    |__ xSensors.cc
                    |__ xSensors.h
      
          xTensor
                |_src
                    |__ xPoint.h
                    |__ xTensor2.cc
                    |__ xTensor2.h
                    |__ xTensor2Sym.cc
                    |__ xTensor2Sym.h
                    |__ xTensor3.h
                    |__ xTensor4.h
                    |__ xTensorOperations.h
                    |__ xVector.cc
                    |__ xVector.h
                    |__ xVectorScalarProd.h
      
      =============================================================================================
          cmake variables rules for module Xfiles/xFoe (no more Xfiles/Xfoe) :
      
                Xfiles/xFoe  => find_package(xFoe)  => xFoe_INCLUDE_DIR  / xFoe_LIBRARIES
      
          in C++ source files, namespace are in lower cases: xfoe
      
      =============================================================================================
      
          New xfastmarching namespace have been introduced but pack/unPack helping function
          must remain in :: namescpace (i.e. in no namescpace). This is to let FMupdaterGeneric
          call ::pack  ::unPack in a generic way (no assumption on VECT or TRANSPORTED
          namespace)
      
      =============================================================================================
      
          Macro Super for SuperLU 5 (experimental ) added in xinterface superlu
      
      =============================================================================================
      
          modifiyed xCSRVector.h and cc so that the .h does not include xBlasDef.h since it can produce conflict when including xVector.h in superLU interface
      
      =============================================================================================
      e6039c6a