1. 10 Nov, 2020 2 commits
    • Nicolas CHEVAUGEON's avatar
      [xFEM] xBoundary.h/cc are moved to xFEM/src/attic · 5c4579b3
      Nicolas CHEVAUGEON authored
      class xBoundary was only used as a parameter to some
      Mechanics::TreatmentOfNatEnv that was never actually used and which was
      passed around via a member of xData. It is nothing more than an early
      implementation of xSubMesh that was passed around via cut and past for a
      long time ... Therefore, xBoundary is now made obsolete and the files
      xBoundary.h/cc are moved to xFEM/src/attic.
      
      all its' use will be removed from xTest.
      
      Note : My first clang-format related bug.
      The file xDistanceNearestPointGenerator.h need to be included before
      xDistanceNearestPoint.h, otherwise some test case can't compile !!! indeed,
      it add some overload to cgal AABBPrimitive that needs to be visible for
      template instanciation that can take place via  xDistanceNearestPoint.h.
      But clang-format messed around and I had to force the inclusion of xDistanceNearestPointGenerator.h before xDistanceNearestPoint.h, by including it at the
      beginning of xDistanceNearestPoint.h, and preventing clang-format to reorder
      the include by inserting some comment.
      5c4579b3
    • Nicolas CHEVAUGEON's avatar
      m] library xGeomTools added · bc14d18b
      Nicolas CHEVAUGEON authored
      Main changes :
      - A new library xGeomTools is added in xGeom.
        *This library is meant to collect "simple" geometrical classes/functions.
         By "simple" we mean that they dependent only on xtensor, and xtool.
        *All the classes and functions of xGeomTools are in namespace xgeom.
        *For this commit it contains :
         xBoundingBox.h/cc, xOctreeGrid.h, xRegularGrid.h/cc, xSimpleGeometry.h,
         moved from xTensor or xFEM.
        *Previous library xGeom is split in two libraries : xDistanceNearest and
         xScanElement in respectivevly xGeom/xDistanceNearest
         and xGeom/xScanElement,
        *The old xGeom library do not exist any more.
        *Note that the 3 libraries contained in directory xGeom populate
         the namespace xGeom.
        *Global build option BUILD_XGEOM is removed.
        *Global build option BUILD_XGEOMTOOLS, BUILD_XDISTANCENEAREST,
          BUILD_XSCANELEMENT are added.
        *xGeom/CMakeLists.txt is removed
        *xUTil/cmakeUtil :
         FindxGeomTools.cmake, FindxDistanceNearest.cmake, FindxScanElement.cmake
         added, FindxGeom.cmake is removed.
        *xAnalyticalSolution, xCrack, xDoubleCut, xLegacySimpleCut, xDomainDecomp,
         xExport, xExt, xFEM, xInterfaceAOMD, xMeshInterface, xOctree, xMapping,
         xTLS, now depend on  xGeomTools.
        *xOctree and xTLS now depends on xDistanceNearest
      - xBoundingBox :
        *added member functions  inclose(), now used in xMesh, xSubMesh
        and xLagrangeMapping.
        *added default constructor and constructor for 2 xPoint.
        *default constructor now build an  empty "bb"  by havinh min(i) > max (i)
      - xRegularGrid : dependencies to xMesh are removed.
      - xMesh.h :  part of previous xOctreeGrid that was dependent of xMesh are
        no directly implemented in xMesh. (see xMesh::createGrid() and
        xMesh::locateElement)
      
      Miscanelous changes along the way (removing useless dependencies)
      - xValue.cc : removed "useless" inclusions of "xApproxFunction.h",
        "xField.h", "xLevelSet.h", "xSpacePolynomial.h", "xTensors.h",
        "xTensorsPtr.h" "xVector.h" as well as useless using AOMD::mEdge
        and using AOMD::mEntity.
      - xValue.h : removed useless inclusions of  <set>,
        <boost/graph/adjacency_list.hpp>, <boost/graph/connected_components.hpp>,
        "xTensorsPtr.h", "xDebug.h", "xNearestNeighborInterface.h"
      - xValue_imp.h : removed useless includes "mEdge.h" and "xGeomeElem.h"
      - xValueManager.h - removed dependencies to xMesh.
      - some of AOMD include cascading in other files because of the previous
        removed inclusion were putting std::string in global namespace.
        std::string is now added in the following files :
        std::string xExport.h, xExportEnsight, xExportGmsh.h
        xExportTranslate.cc/h, xField.h, xFEM/src/xSpacePolynomial.h.
      - xData.cc inside void xData::ReadInfo(const char *filename),
        unused variable xBoundary crvboundary; is removed.
      - all modified and added files are clang-formatted.
      bc14d18b
  2. 04 Nov, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [XFEM, xExport, xInterface/xOctree] dependences to AOMD's octree is removed and related changes. · 22fa74d5
      Nicolas CHEVAUGEON authored
      xFEM/src/xOctreeGrid.h is a new file. It introduce a octree grid search
        structure to use in place of the AOMD::octree that was used in xMesh
        for the locateOctree members functions. It permits to construct an octree
        search structure on top of a collection of mesh entity.
      
      xFEM/src/xRegularGrid.h/cc has been modifyed so that :
       - it uses the xBoundingBox class.
       - The member function name have been changed to reflect the camel case
         convention, common to the rest of the xFEM library.
       - getElementsForPoint now return a vector of {element, localcoordinate} pair,
         so that the local coordinate of the target point in each element that
         contains it is now accessible.
       - The code have been clarifyed and simplifyed.
      
      xBoundingBox.h :
        - added 2 member function in xBoundingBox :
         /// return the center of the bounding box
         xPoint center() const { return (min + max) * 0.5; }
         /// return a vector from min to max
         xVector<double> diag() const { return xVector<double>{min, max}; }
        - Note that following a discussion with A. Salzmann, xBoundingBox could
          be moved in a near futur to namespace xgeom and the file might be part
          of a new library (xGeomTools maybe)
      
      xFEM/src/xMesh.h/cc has been modifyed so that :
        - It uses the xBoundingBox class were usefull, implying some interface
          change :
           * std::pair<xPoint, xPoint> compute_bounding_box(mEntity* e)
             is changed to :
             xBoundingBox compute_bounding_box(const mEntity& e);
           * void compute_bounding_box(xPoint& min,xPoint& max) const;
             is "deprecated", but is still there during the transition.
             it is replaced by :
             xtensor::xBoundingBox compute_bounding_box() const;
        - locateElementOctree and locateElement have changed interface,
          reflecting the changes in xRegularGrid and the use of xOctreeGrid instead of
          AOMD's octree.
        - Better control of the search structure in xMesh, since now the octree or
          the regular grid can both be cleared, updated or accessed by calling
          respectively xMesh Members   createOctree(), clearOctree(), getOctreeGrid(),
          createGrid(), clearGrid(), getRegularGrid.
        - The search structure pointers are now managed in a unique_ptr.
        - xMesh::copyMeshInternal now copy the search structures if needed instead
          of throwing.
        - AOMD_SharedInfo.h, autopack.h, OctreeCreate2.h (from AOMD) are not
          included anymore.
      
      xCrack/src/CrackPostpro.cc,  xCrack/src/ExportSensors.cc/h, modified so that it
        reflect the change in xMesh::locateElement
      
       xExport/src/xSensors.cc/h :
        -modified so that it reflect the change in xMesh::locateElement,
        -Trellis_Util::mPoint replaced by xtensor::xPoint
        -small changes to simplify the implementation
        -clang-format first the first time I think.
      
      xInterface/xOctree/src/surf2LevelSet.cc/h
        -modifyed to use xBoundingBox
        -surface2LevelSet::getBB(xPoint&, xPoint&) is replaced by
         const xBoundingBox &getBB() const { return BB; }
        -surface2LevelSet members xPoint BBmin, BBmax are replaced xBoundingBox BB;
        -a bug was found in the process :
         In surface2LevelSet::createMeshBBox that create an xMesh out of grid,
         the grid point coordinate were computed as :
          double xyz[3] = {BB.min(0) + i * elemSizeX, BB.min(1) +
                                       j * elemSizeY, BB.min(2) + k * elemSizeY};
         instead of :
           double xyz[3] = {BB.min(0) + i * elemSizeX, BB.min(1) +
                                        j * elemSizeY, BB.min(2) + k * elemSizeZ};
         The bug is corrected, but reference of test case
         xinterface-xoctree-test/surface2LevelSet had to be changed.
      
      All modifyed files have been clang-fomated.
      22fa74d5
  3. 05 Oct, 2020 2 commits
    • Alexis SALZMAN's avatar
      [xInterface][AOMD] add func to xMeshToolAOMD and xAOMDEntityUtil+misc · 3af9ff86
      Alexis SALZMAN authored
       * Add a getPoint function to simplify xPoint creation from mVertex (no
         need of vector like getPoints which is more general).
      
       * make alive commented (in xMesh) printMesh and printEntity functions.
         They will certainly move to AOMD interface one day. But for now
         please let them stay active has I use then for debugging in my
         application. No time to do a test case on the subject.
      
       * To avoid warning on unused variable clean creation of object returned
         by many function that are not used afterward.
      3af9ff86
    • Alexis SALZMAN's avatar
      Xfiles] miscellaneous change related to warnings · 953b8f8d
      Alexis SALZMAN authored
      Changes are:
        * unused variable
        * wrong order for explicit member creation
        * wrong sign comparison
        * change int to size_t
        * virtual destructor addition to avoid in future a possible memory leek
      953b8f8d
  4. 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
  5. 09 Sep, 2020 1 commit
  6. 01 Sep, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [Xfiles] removing using xxx in global namespace in headers. · af6f2b76
      Nicolas CHEVAUGEON authored
          - lot of using std or using xfem or using std::string etc ..  were still present in global namespace in some header. Following a discussion with A. Salzman, I removed most of them.
      
          - In the transition from mPoint to xPoint, Some using point = xtensor::xPoint were defined inside some class (xMapping, xElementfor example... ). They were identifyed as confusing by A. Salzman and are now removed.
      
          Most of the changes in this commit reflect the previous change. The guideline is to avoid hiding namespace at least at global scope in header-file. This can avoid some confusion and some surprising and hard to track effects where some stuff compil or not depending on the order of inclusion of header files.
      af6f2b76
  7. 24 Jul, 2020 1 commit
  8. 22 Jul, 2020 1 commit
  9. 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
  10. 02 Jul, 2020 1 commit
  11. 25 Jun, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xmapping] made fully independent from Trellis · 23c79dc2
      Nicolas CHEVAUGEON authored
      xmapping now have it's own enum type xReferenceElementType defined in
      xReferenceElement. It is there to replace Trellis mType inside xMapping.
      The xMappingBuilder are moved to xfem. Rational : The builder work on
      mEntity that are not supposed to be known by mapping.
      This being done the only dependencie left in xMapping is the dependecies to
      xtensor.
      
      a function is added in xAOMDEntityUtil.h to get the xReferenceElement from
      the mEntity, as well as conversion fonction from xReferenceElement to
      mType. In the current version of the library, this function is only used
      in xfiles to create  a Trellis_Util::GausIntegrator out of a xMapping.
      Therefore these conversion function might become useless when we make
      our own Trellis free Integrator.
      
      Most of the other change in this commit are consequencies of the above.
      Small other minor change are listed below :
      
      -xfiles_dependence.dot has been updated with xmapping dependencies.
      -delete mapping added in xElement::xyz2uvw ...
       this was missing and was causing a memory leak.
        (Note : It might be better for the builder to return smart pointer to
        mapping instead of newed pointer ... )
      - xTensor2 semi-colon were removed where it was useless and issued a warning.
      - xVector : copy assignement added. Rational : since we have a no default copy
        constructor, a default copy assignement is deprecated in the standard
        according to gcc
      23c79dc2
  12. 17 Jun, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xmapping] xmapping now use xtensor::xPoint instead of Trellis_Util::mPoint · a4f93f74
      Nicolas CHEVAUGEON authored
           Reducing again the deps of mapping to Trellis, Trellis_Util::mPoint is replaced by  xtensor::xPoint in xmapping.
           xMapping/src/xMapping.h do not include mPoint.h anymore.
      
          consequences outside xmapping :
          - xCrack/src/SingularCrackMapping.cc : SingularCrackMapping : member bounding box now take xtensor::xpoint as outpout parameter.
          - xFEM/src/xGeomElem.cc : now include "xPoint.h". xGeomElem Member GetBoundingBox corrected to call xmapping's bounding box using xtensor::xPoint.
          - xInterface/AOMD/general/src/xAOMDEntityUtil.h now include xPoint.h.
             function getPoint signature changed to std::vector<xtensor::xPoint> getPoints(const AOMD::mEntity &e).
      a4f93f74
  13. 16 Jun, 2020 1 commit
  14. 15 Jun, 2020 1 commit
  15. 03 Jun, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xfem] xMeshFwd.h and xIntegrationRuleFwd.h removed. · 071f55cd
      Nicolas CHEVAUGEON authored
          Added xPartition.h where can be found the definition of xPartition and
          xGetPartition
      
          Added xIter.h where can be found the definition of xIter and xClassIter
      
          xScalarFunctionDerivDiscXFEMOctree, previoulsy in xApproxFunction.h is
          moved to it's own file : xApproxFunctionDerivDiscXFEMOctree.h
      
          datamanagerxMesh_t and partmanagerxMesh_t are removed.
      
          Other files are modifyied accordingly and clang-formated.
      071f55cd
  16. 28 May, 2020 1 commit
  17. 27 May, 2020 1 commit
  18. 18 May, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xfem] xNonLocalInfoGeneratorForKeysAndFcts · f0a19c17
      Nicolas CHEVAUGEON authored
          The class hierachy with base  xNonLocalInfoGeneratorForKeysAndFcts is modifyed to store the data it build for each element in a data manager instead of using a raw AOMDtag.
          details :
          changes
          in  class xNonLocalInfoForKeysAndFcts
           -  member functions
          int getAllKeysFromSlavesAndFree(xValKey::ids_size_t phys, xSpace::femKeys * keys, xSpace::femKeys * other_master_keys);
          and femfemRelKeys& getCoefAndKeysForKey( const xValKey & key );
          are changed to :
          int getAllKeysFromSlavesAndFree(xValKey::ids_size_t phys, xSpace::femKeys * keys, xSpace::femKeys * other_master_keys) const;
          const femRelKeys& getCoefAndKeysForKey( const xValKey & key ) const;
          (These member functions do not modify the xNonLocalInfoForKeysAndFcts. It is changed to a const member function, so that it could be use in contant where the object is const.)
      
          in class xNonLocalInfoGeneratorForKeysAndFcts
          - virtual  member
          virtual unsigned int generateNonLocalInfoForKeysAndFcts(spacePtr_t  space, const int polynomial_order)=0;
          is changed to       virtual void generateNonLocalInfoForKeysAndFcts(spacePtr_t  space, const int polynomial_order)=0;
          rational : previously it returned the tag to recover the data xNonLocalInfoForKeysAndFcts associated to each entity.
          Now this data is stored internally in a datamanager. The tag do not exist any more nd is no longer returned.
          The data for one element can now be recover by calling the new const pure virtual  member function :
          virtual const xNonLocalInfoForKeysAndFcts * getNonLocalInfo(const AOMD::mEntity & e) const =0;
          - a virtual destructor is added.
      
          in class  xNonLocalInfoGeneratorForKeysAndFctsForHangingNode:
          constructor xNonLocalInfoGeneratorForKeysAndFctsForHangingNode(xMesh &mesh,unsigned int tag,  const DATAMANAGER < AOMD::mEntity *> &isHangingOn =  xMesh::get_const_is_hanging_on(), const DATAMANAGER < std::vector<AOMD::mEntity *> > &downGroup =xMesh::get_const_down_group(),  const DATAMANAGER < std::vector<AOMD::mEntity *> > &bndGroup= xMesh::get_const_bnd_group(), double thresold = 1.e-12);
          is replaced by
          xNonLocalInfoGeneratorForKeysAndFctsForHangingNode(xMesh &mesh, DATAMANAGER< xNonLocalInfoForKeysAndFcts * >& _nli_data, const DATAMANAGER < AOMD::mEntity *> &isHangingOn =  xMesh::get_const_is_hanging_on(), const DATAMANAGER < std::vector<AOMD::mEntity *> > &downGroup =xMesh::get_const_down_group(), const DATAMANAGER < std::vector<AOMD::mEntity *> > &bndGroup= xMesh::get_const_bnd_group(), double thresold = 1.e-12);
          Rational :  the previous constructor was used to force the created datas to be attached using an imposed tag. This is replaced by passing the data manager that will store the data.
          -a virtual destructor is added.
          The data are constructed on the current mesh for a given space by calling :
           void generateNonLocalInfoForKeysAndFcts(spacePtr_t  space, const int polynomial_order) override;
          - The data can be recovered using the override :
          const xNonLocalInfoForKeysAndFcts * getNonLocalInfo(const AOMD::mEntity & e) const override;
      
          class xNonLocalInfoGeneratorForKeysAndFctsForHangingNodeOldAndCurrent :
          This class is also modifyed to conform to the new base class.
      
          A xNonLocalInfoGeneratorForKeysAndFcts object pointer is used as an input for  xSpacePolynomialOctree based objects.
          This class hierachy as been modify to integrate the new interface.
      
          File xFEM/src/xAttachableNonLocalInfoForKeysAndFcts.h is removed from the repository since it is not used anymore. (it was used to define and access to xNonLocalInfoForKeysAnfFcts has a mAttachableData)
      
          Other minor change :
           header xAttachableVector.h remove from the include list in  xInterface/xOctree/src/InterfaceOctreeToAOMD.cc  since it is not used here anymore.
      
          deleted:    xFEM/src/xAttachableNonLocalInfoForKeysAndFcts.h
          modified:   xFEM/src/xNonLocalInfoForKeysAndFcts.cc
          modified:   xFEM/src/xNonLocalInfoForKeysAndFcts.h
          modified:   xFEM/src/xNonLocalInfoForKeysAndFcts_imp.h
          modified:   xFEM/src/xSpacePolynomial.cc
          modified:   xFEM/src/xSpacePolynomial.h
          modified:   xInterface/AOMD/CMakeLists.txt
          modified:   xInterface/xOctree/src/InterfaceOctreeToAOMD.cc
      f0a19c17
  19. 07 May, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xFEM, xcut] Moving cut related function out of xMesh class to xcut namespace. · 97286dad
      Nicolas CHEVAUGEON authored
      Rationnal : xMesh class used to contain function related to the cutting of a mesh. This won't be acceptable in a future were we want to have a generic mesh query interface (that can not modify or create a mesh). All the cut function should be outside of xMesh, the functionalities should be implemented in xcut.
      
      In order to do that in staged commit, the file xMeshCut.cc that contain the old implementation of the cut function of xMesh is renamed to xMeshCut_depracted.cc. This file will be removed in a futur commit.
      
      All the needed function are reimplemented with a new interface in xCut/xLegacySimpleCut/src/xMeshCut.h/cc in the xcut namespace, as non-member function of xMesh. No tag are supposed to be used in theses  versions, only data_manager. For the current commit, these versions are not use in the library.
      
      Function declared in xMeshCut.h:
      
      void createIsoZeroMeshFromLevelSet(const xfem::xLevelSet& ls,
                                                xfem::xMesh & imesh,
                                                datamanager_t<AOMD::mEntity*>& was_created_by,
                                                datamanager_t<double>& r_on_edge, const bool simplex_only = true, const bool debug = false);
      
      inline void createIsoZeroMeshFromLevelSet(const xfem::xLevelSet& ls,
                                                xfem::xMesh & imesh,
                                         const bool simplex_only = true, const bool debug = false){
          datamanager_t<AOMD::mEntity*> was_created_by;
          datamanager_t<double> r_on_edge;
          createIsoZeroMeshFromLevelSet(ls, imesh, was_created_by, r_on_edge, simplex_only, debug);
      }
      
      void cutAlongInterface(const xfem::xMesh& interface,
                              const datamanager_t< AOMD::mEntity *> &was_created_by,
                              datamanager_t< xfem::xMesh > &partition,
                              datamanager_t< AOMD::mEntity *> &is_duplicated_in,
                              datamanager_t< AOMD::mEntity *> &was_duplicated_from,
                              datamanager_t< AOMD::mEntity *> &is_in_partition_of
                              );
      
      void cutAlongInterfaceRecursive(const xfem::xMesh &interface, const xfem::xLevelSet& ls,
                                       const datamanager_t< AOMD::mEntity *> &was_created_by,
                                       datamanager_t< xfem::xMesh > &partition,
                                       datamanager_t< AOMD::mEntity *> &is_duplicated_in,
                                       datamanager_t< AOMD::mEntity *> &was_duplicated_from,
                                       datamanager_t< AOMD::mEntity *> &is_in_partition_of);
      
      void cutMesh(const xfem::xMesh &base_mesh, const xfem::xLevelSet& ls, xfem::xMesh& iso_zero_mesh,
                   datamanager_t< AOMD::mEntity *> &was_created_by,
                   datamanager_t< double > &r_on_edge,
                   datamanager_t< AOMD::mEntity *> &is_duplicated_in,
                   datamanager_t< AOMD::mEntity *> &was_duplicated_from,
                   datamanager_t< xfem::xMesh >    &partition,
                   datamanager_t< AOMD::mEntity *> &is_in_partition_of,
                   xfem::xEntityToEntity classify_in,
                   xfem::xEntityToEntity classify_out,
                   bool create_partition,
                   bool keep_old_partition,
                   bool recursive);
      
      void cutMesh(const xfem::xMesh &base_mesh, const xfem::xLevelSet& ls, xfem::xMesh& iso_zero_mesh,
                   xfem::xEntityToEntity classify_in,
                   xfem::xEntityToEntity classify_out,
                   bool create_partition,
                   bool keep_old_partition,
                   bool recursive);
      
      AOMD::mEntity* getOriginalCreator(AOMD::mEntity* egros);
      
      Minor changes :
      
      - centroid function now implemented in xinterface::aomd in file xInterface/AOMD/general/src/xAOMDEntityUtil.h :
      Trellis_Util::mPoint centroid(const AOMD::mEntity& e)
      
       - xMeshFwd.h contains a new declaration :
      template <typename T>
      using datamanagerxMesh_t = xinterface::aomd::xAttachedDataManagerAOMD<T>;
      rational : it permit to export the data manger used internally in class xMesh whithout having to include xMesh.h It will be used more rationnaly in a next commit.
      
      - The following files are clang-formated to help the next commit:
      xCrack/src/IntegratorSingularCrack3D.cc
      xCrack/src/lCrack.cc
      97286dad
  20. 04 May, 2020 1 commit
    • Alexis SALZMAN's avatar
      [xInterface] transform Parmetis setType prg in a sequential application · 4ccba8c6
      Alexis SALZMAN authored
      Within some set of compiler/MPI lib letting cmake compiles on the fly
      the ParMetis/src/setType/test.cc program that set types for Parmetis is
      rather cumbersome. To simplify compilation/running context of this
      program this commit removes MPI context usage. This little testing
      program is now a pure sequential application where mpi.h header is used
      due to Parmetis header usage.
      
      xFEM/src/xAlgorithm.h
      =====================
      set to null ptr to avoid warning with potential uninitialized value.
      4ccba8c6
  21. 10 Apr, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xfem] Reduces dependencies on xMesh.h. This has implications in other parts of the lib. · 9c703287
      Nicolas CHEVAUGEON authored
          Currently, xMesh.h, by cascading include, is visible by a too large part of
          the library. Change one Character of xMesh.h, and you need to recompile
          the world. The aim of this commit is to reduce these dependencies.
          It affect lots of files but only a little in each. As discuted in meeting,
          I won't clang format them all for this push, But I clang format the added files.
      
          ADDED FILES :
      
          1 xFEM/src/xMeshFwd.h
          2 xFEM/src/xIntegrationRuleFwd.h
          3 xInterface/AOMD/general/src/xAOMDEntityUtil.h
          4 xInterface/xOctree/src/OctreeUtilities.cc
      
          1 xMeshFwd.h : A forward header fo xMesh.h. Include this where you need to
           forward declare the type defined in xMesh, but not there full declaration.
           Typically include it in place of xMesh.h wherever you need the type previously
           defined in xMesh but not their full description (you only declare pointer or
           refs to xMesh, you just need xIter, xClassIter or xPartition or the type of
           partman used inside xMesh (parmanxMesh_t) )
      
          2 xIntegrationRuleFwd.h, same philosophie as above, a forward header for
           xIntegrationRule. it forward declare class xIntergrationRule and define the
           type def xGetPartion (the function used to parametrize how to get the sub
           elements in the xIntergrationRulePartition familly.
      
          3 xAOMDEntityUtil.h Some function previously defined in xMesh.h/cc,
           are in fact simple utility function applied on mEntity.
           There are place in the code where they are needed, but where you don't need
           xMesh. For now I moved the following one there, in namespace xiterface::aomd :
            - void getSubentities(AOMD::mEntity* e, const int d,
                                  std::vector < AOMD::mEntity * > &l);
            - void getSupportBoundary(AOMD::mEntity *in,
                                     std::set<AOMD::mEntity *> &supportBoundary )
           They are used in :
            xCut/xLegacySimpleCut/src/xRefCutToAOMD.cc,
            xGeom/src/xDistanceNearestPointGenerator_imp.h, xTLS/src/xRefCutToCGAL.cc
      
          4 OctreeUtilities.cc This is an implementation file for OctreeUtilities.h
            Following function are moved to the .cc :
            xLevelSetTo_ls_xyz_t_Adaptator::xLevelSetTo_ls_xyz_t_Adaptator(xLevelSet &ls_)
            double  xLevelSetTo_ls_xyz_t_Adaptator::operator()(x,y,z).
            using namespace xfem and using namespace xoctree; are removed from the global
            scope in OctreeUtilities.h
      
          INTERFACE CHANGES :
      
          - xIntegrationRulePartition familly : the getpartition function that
            parametrize how to go from the integ entity to it's sub entity must now be
            given explicitly as a first argument.
            Rational : when first introduced, this parametrization could be implicit
            thanks to a default argument set to the static xMesh::getPartition.
            This implied an unwanted dependencies of xIntegrationRule to xMesh, and make
            user code unclear on the real dependencies of there Integration rule to
            there cutting process. Concerned files :
            xCrack/src/IntegratorSingularCrack2D.cc,
            xCrack/src/IntegratorSingularCrack3D.cc, xFEM/src/xIntegrationRule.h,
            xFEM/src/xIntegrationRule.cc, xFEM/src/xIntegrationRuleStored.h,
            xFEM/src/xIntegrationRuleStored.cc, xPhysics/src/xpElastic.cc,
            xPhysics/src/xpFluidMechanics.cc, xPhysics/src/xpFluidMechanics.cc,
            xPhysics/src/xpThermic.cc, xTLS/src/TLSGeomInterface.cc,
            xTLS/src/TLSGeomInterfaceSignedVectorDistanceFunction.cc,
            xTLS/src/TLSGeomInterfaceSignedVectorLevelSet.cc,
            xTLS/src/TLSGeomInterfaceVectorLevelSet.cc
      
          - xCrack/src/xcFront.h : added begin and end to iterate on front_parts.
            used to simplify loops in
            in xCrack/src/xcFrontDomainManager.cc, xCrack/src/xcFrontManager.cc,
            xCrack/src/xcInteractionIntegralsOnCrack.cc
      
          - xCrack/src/xcInteractionIntegralsOnCrack.h
            xAcceptLocalPart is now template on the DATAMANAGER that store was_created_by
             affected files : xCrack/src/xcInteractionIntegralsOnCrack.cc
      
          - xFEM/src/xAlgorithm.h :
            DeclareInterpolationHanging : the datamanager needed need now to be
            explicitlty given (no default value). Rational:  again the default
            value hide to  the user the real dependencies of the algorithm.
      
          - xFEM/src/xValueCreators.h :
            * xMirrorCreator : used to interconnect xValue on "mirror" entity,
            typically used for periodic Boundary condition. Previously, it was
            using an xMesh pointer and internal call to AOMD's lookupForMirrorEntities,
            on this mesh. This is too dependend on both xMesh and AOMD. Looking closely,
            all that is needed for this algorithm to work is a way to get from one entity
            a list of entity it mirror. The new interface is based on that.
            At construction, full control is given to the user which just have to give
            an std::function that take a pointer to a mesh entity and return the list
            of mirror entity. the pointer to the mesh itself is not needed anymore.
            * xValueCreatorRegularAndHanging : no default value any more for the
            isHangingOn at construction (same rational as for the use of the other
            static datamanger of xMesh, if you use them, do it explicitly.)
            the pointer to the mesh is not needed any more at construction.
      
          IMPLIED MODIFICATIONS:
      
          - replaced xMesh.h by xMeshFwd.h or include xMeshFwd.h or remove include xMesh.h
           in the following files :
            xCrack/src/CrackPostpro.h, xCrack/src/lCrack.h, xCrack/src/xcFront.h,
            xCrack/src/xcFrontDomain.h, xCrack/src/xcCrackBase.h,
            xCrack/src/xcFrontDomainManager.h, xCrack/src/xcFrontPart.h,
            xCrack/src/xcFrontSpaceManager.h, xCut/xDoubleCut/src/xElemCutDomainData.h,
            xCut/xDoubleCut/src/xPhysDomain.h,   xCut/xDoubleCut/src/xPolytopeOFF.cc,
            xCut/xDoubleCut/src/xPolytopeToAOMDElem.h,
            xCut/xLegacySimpleCut/src/xPhysSurf.h,
            xCut/xLegacySimpleCut/src/xPhysSurfVLS.h,
            xCut/xLegacySimpleCut/src/xRefCut.cc,
            xCut/xLegacySimpleCut/src/xRefCutToAOMD.h,  xExport/src/xPostPro.h
            xExt/src/DoubleCutting.h, xFEM/src/xApproxFunctionCorrectedShifted.cc,
            xFEM/src/xData.h, xFEM/src/xElement.cc,  xFEM/src/xGatherMesh.h,
            xFEM/src/xIntegrationRule.cc, xFEM/src/xIntegrationRule.h, xFEM/src/xRegion.h,
            xFEM/src/xRegularGrid.h, xFEM/src/xMeshFwd.h, xFEM/src/xSubMesh.h,
            xFEM/src/xSubMeshManager.cc, xFEM/src/xSubMeshManager.h, xFEM/src/xValue.cc,
            xFEM/src/xValue.h, xFEM/src/xValueManager.h, xFEM/src/xValue_imp.h
            xFEM/src/xVectorField.cc (include xRegion instead), xFEM/src/xVectorField.h,
            xFEM/src/xVectorLevelSet.h, xGeom/src/xDistanceNearestPointGenerator.h
            (use "xAOMDEntityUtil.h"), xInterface/xOctree/src/surf2LevelSet.h,
            xPhysics/src/xpThermic.cc,
            xTLS/src/TLSGeomInterfaceSignedVectorDistanceFunction.h,
            xTLS/src/TLSGeomInterfaceSignedVectorLevelSet.h, xTLS/src/TLSVelocity.h,
            xTLS/src/xRefCutToCGAL.cc
      
          - include xMesh.h in the following files :
            xCrack/src/ExportSensors.cc, xCrack/src/JintModalParks.cc,
            xCrack/src/lCrack.cc,  xCrack/src/xcFront.cc
            xCrack/src/xcFrontDomain.cc,  xCrack/src/xcFrontDomainManager.cc
            xCrack/src/xcInteractionIntegralsOnCrack.cc,
            xCut/xDoubleCut/src/xPolytopeToAOMDElem.cc
            xCut/xDoubleCut/src/xSignedVectorLevelSetEnrichment.h,
            xExport/src/xPostPro.cc,  xExt/src/SpaceLagrangeDualBoundary.cc,
            xExt/src/SpaceLagrangeDualMinBoundary.cc,
            xExt/src/SpaceLagrangeDualNewBoundary.cc, xExt/src/SpaceLagrangeDualSimple.cc,
            xFEM/src/xApproxFunctionCorrectedShifted.cc, xFEM/src/xCommandOnGeomElem.h,
            xFEM/src/xExtendShapeFcts.h, xFEM/src/xGatherMesh.cc,
            xFEM/src/xNonLocalInfoForKeysAndFcts.h, xFEM/src/xRegularGrid.cc,
            xFEM/src/xSubMesh.cc, xFEM/src/xValueCreators.cc,
            xInterface/xOctree/src/surf2LevelSet.cc, xPhysics/src/xPhysSurf3.cc,
            xPhysics/src/xpElastic.cc, xPhysics/src/xpFluidMechanics.cc,
            xTLS/src/TLSGeomInterfaceSignedVectorDistanceFunction.cc
      
           -removed useless forward declaration of xMesh in :
            xCrack/src/xcFrontSpaces.h, xCrack/src/xcInteractionIntegralsOnCrack.h,
            xCut/xLegacySimpleCut/src/xPhysSurfByTagging.h,
            xCut/xLegacySimpleCut/src/xPhysSurfParameter.h, xExport/src/xSensors.h,
            xExt/src/xPhysBand.h, xPhysics/src/xpFluidMechanics.cc,
            xTLS/src/TLSEnrichment.h, xTLS/src/TLSGeomInterfaceVectorLevelSet.h,
            xTLS/src/TLSValueCreatorRampHeaviside.h, xTLS/src/TLSVelocity.h,
            xTLS/src/xEvalWeightedDirectionalAverage.h
      
           -replaced include xIntegrationRule.h by xIntegrationRuleFwd.h
            or remove xIntegrationRule.h :
            xCut/xDoubleCut/src/xPhysDomain.h, xFEM/src/xAlgorithm.h, xFEM/src/xField.h,
            xFEM/src/xIntegrationRule.h, xFEM/src/xSpace.h, xTLS/src/TLSGeomInterface.h
      
          - Trellis/Util/Util/include/mPoint.h
            Added stream operator <<  for mPoint.
          - lCrack.cc/h :
            int lCrack::dim() const,  void lCrack::setV1Ddebug(std::function ...),
            lCrack::~lCrack  are moved to lCrack.cc.
            using namespace xfem moved from global scope to inside namespace xcrack
          - xCut/xDoubleCut/src/xElemCutDomainData.cc :
            now include "mVertex.h"
          - xCut/xLegacySimpleCut/src/xPhysSurf.cc/h  :
            int   xPhysSurfBase::dim() const,   xPhysSurf::~xPhysSurf() and
            xPhysSurfOctree::xPhysSurfOctree  implementations moved to xPhysSurf.cc
          - xExt/src/SpaceLagrangeDualBoundary.cc/h :
            OutsideVertex::OutsideVertex(const xLevelSet* f) and
            AOMD::mEntity* OutsideVertex::operator()(AOMD::mEntity* e) are now
            implemented in the .cc file
          - xFEM/src/xData.cc : data member in xData::nb_evo now initialized to 0
          - xFEM/src/xElement.cc :
            xElement::xyz2uvw(const Trellis_Util::mPoint& xyz) this function that
            invert the mapping was constructing a temporary xMesh in case of QHAD and HEX,
            containing only one element..  This was way more to much than needed,
            since Trellis_Util::Mapping used in this function just need an mEntity.
            I replaced the construction of an xMesh by the construction of the correct
            mEntity only.
          - xFEM/src/xLevelSet.h :  added now needed include unordered_map
          - xFEM/src/xLevelSetOperators.cc :
            call xRegion::dim() instead of xRegion::getMesh()->dim() rational :
            remove deps on xMesh, clearer.
          - xFEM/src/xLevelSetOperators.h :
            removed using std::cout/endl at global scope, added include xEntityFilter
          - xFEM/src/xMesh.h :
            removed using std::map, std::vector, std::set, std::string at xfem scope,
            now   include  xMeshFwd.h, getSupportBoundary and getSubentities now moved to
            xInterface/AOMD/general/src/xAOMDEntityUtil.h
          - xFEM/src/xRegularGrid.h/cc :  xRegularGrid::xRegularGrid implementation
            moved to .cc
          - xFEM/src/xRegularGrid.h : #define TOL 1.e-06 at xfem scope,
            replaced by  constexpr static  double TOL  = 1.e-06; in xfem::xRegularGrid
          - xFEM/src/xSpace.cc now include "xIntegrationRule.h"
          - xFEM/src/xValueCreatorLinkOnFrontFiltered.cc, in ::buildTable
            a non-standard variable size array was used (vertices).
            Replaced by a std::vector.
          - xFEM/src/xVectorField.cc some loop where rewritted.
          - xInterface/xOctree/src/surf2LevelSet.cc implementation of  surface2LevelSet
            constructors,  computeWeightedPseudoNormals::proceed(),
            surface2LevelSetNarrowBand  are moved to the .cc
            rational : these functions call some xMesh member functions)
          - xPhysics/src/xpEval.h/cc ElementLengthMaterialVariablesVisitor_c moved to .cc
            rational : constructor use some member of xMesh.
          - xPhysics/src/xpPhysicalFormulation.cc  : used xRegion member dim, begin and end instead of asking the same on a region "all" meshes's. (rational : reduce deps on xMesh, clearer code)
      
          ADDED std:: in front of standard symbol
           By cascading inclusion, using namespace std was visible in some files
           (comming from some AOMD include). After the change in the inclusion hierachy,
           namespace std is not visible any more in some header file. I choose to not add
           using namespace std at global scope of a header file, and add to std::
           in front of standard symbols. Concerned files :
           xCrack/src/JintParks.h, xCrack/src/xcFrontManager.cc,
           xCut/xDoubleCut/src/xSignedVectorLevelSet.h,
           xCut/xDoubleCut/src/xSignedVectorLevelSet_imp.h,
           xExport/src/xExportAlgorithm.cc, xExport/src/xPostProVTU.h,
           xExt/src/MaterialCommand.h, xExt/src/SpaceLagrangeDualNewBoundary.cc,
           xExt/src/SpaceLagrangeDualNewBoundary.h, xExt/src/ValueOldAndCurrent.h,
           xFEM/src/xAlgorithm.h, xFEM/src/xDistStateOfValue_imp.h, xFEM/src/xElement.cc,
           xFEM/src/xMaterialSensitivity.h, xFEM/src/xSpacePolynomialQH.h,
           xFEM/src/xSubMesh.h, xFEM/src/xValueLinearCombination_imp.h,
           xFEM/src/xVectorLevelSet_imp.h, xFastMarching/src/FMUpdater.h,
           xTLS/src/TLSGeomInterface.h, xTLS/src/TLSVelocityModeEshelby_imp.h,
           xTLS/src/xEvalLSAdvanceFromImposedConditions_imp.h
      
          ADDED using namespace std :
           Same reason as above, I added using namespace std in .cc files that needed it :
            - xCrack/src/xcFrontDomain.cc, xCrack/src/xcFrontSpaceManager.cc,
              xExport/src/xPostProMSH.cc, xExt/src/SpaceLagrangeDualNewBoundary.h,
              xExt/src/SpaceLagrangeDualSimple.cc
      
          removed using namespace xfem :
            xFEM/src/xGatherMesh.h
      
          replace some old style cast by static_cast :
            - xExt/src/SpaceLagrangeDualNewBoundary.cc
      9c703287
  22. 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
  23. 28 Mar, 2020 2 commits
    • Nicolas CHEVAUGEON's avatar
      [Trellis/AOMD] added mMesh member functions createVertex that take an mPoint... · 2b76bfca
      Nicolas CHEVAUGEON authored
       [Trellis/AOMD] added mMesh member functions createVertex that take an mPoint as input instead of 3 doubles.
      
          before this commit, there was 3 different createVertex member functions
          in mMesh:
          createVertex(x,y,z,classif)
          createVertex(Id, x,y,z, classif)
          createVertex_noUpdateId(Id, x, y, z, classif)
          this commit add 3 new :
          createVertex(p, classif)
          createVertex(Id, p, classif)
          createVertex_noUpdateId(Id, p, classif)
      
          this reduce verbosity of client code.
          It is now used in the following files, but more are comming :
          Trellis/AOMD/AOMD/src/mMesh.cc
          xCrack/src/IntegratorSingularCrack2D.cc
          xCrack/src/JintParks.cc
          xCut/xLegacySimpleCut/src/xPhysSurfVLS.h
          xFEM/src/xElement.cc
          xFEM/src/xSubMesh.cc
          xInterface/xOctree/src/AdaptOctreeToAOMD.cc
      2b76bfca
    • 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
  24. 11 Mar, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xFEM xInterface/xOctree xTLS] cleaning some more free tags · e2e0d821
      Nicolas CHEVAUGEON authored
          In the process of cleaning the use of some aomd attachable data using
          tags. All the tags related to octree->aomd (and/or hanging entities) in
          the static part of xMesh  are removed and replaced by corresponding
          container (xAttachedDataManagerAOMD ).
          Now all the functions that use them say so clearly in there interface,
          and tell clearly if it modify the attached data or Not.
      
          For now, correponding to each previous static tag (related to
          octree-AOMD) in xMesh, there is a
          corresponding xAttachedDataManagerAOMD :
          octree_level_tag     -> octreeLevel
          is_hanging_on_tag    -> isHangingOn
          is_hanging_by_tag    -> isHangingBy
          bnd_group_tag        -> bndGroup
          down_group_tag       -> downGroup
      
          So that function that use them can use default argument defined by
          calling the corresponding static function in xMesh.
          Note that this as a cost :  upon deletion of xMesh, we need to clean the
          data related to each of these container and the xMesh behing destroyed.
          I keep it like this for now, but These static containers should be ready
          to be removed, and they will be in the future ... To me they should be
          hold  be a class that handle the mesh with hanging nodes. (For example
          we could have a class that does the interface from ooctree to AOMD that
          would have the container has member function, instead of doing the
          interface by calling a free function )
      e2e0d821
  25. 03 Mar, 2020 1 commit
  26. 02 Mar, 2020 1 commit
  27. 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
  28. 10 Feb, 2020 1 commit
    • Alexis SALZMAN's avatar
      [XFiles] Introduce xvalues_t typdef and reset several names · 63a68f9f
      Alexis SALZMAN authored
      xvalues_t:
      =========
      This typedef represents a xValue<VT> type with VT the template parameter
      corresponding to the type of value stored in xValue.
      It is introduced to hopefully avoid misunderstanding with previously
      introduces value_t corresponding in most case to the type of value
      computed (for now we play mostly with arithmetic with those).
      
      Especially in xValueLinearCombinationXXX hierarchy we are dealing
      with xvalues_t, not value_t.
      
      It has been also introduced in xValueManagerDist to clearly separate the
      type of the values, value_t, from the type of the xValue<value_t> that
      store in the xValManager instance these information.
      
      This as been used as suggested by N.C. to set the type of the value_container_t
      and be more strict regarding the implementation
      
      value_manager_t:
      ===============
      In xField value_manager_t replace ValueManager to try to clarify
      situation.
      
      getValueManager:
      ================
      getValueManager and getDoubleManager are now rigorously the same. So this
      commit removes this last method that do have a name far to specific.
      
      This implies lost of changes everywhere ... but re-naming of instance have
      not been done accordingly to this new method name (to much work). Names
      such as double_manager or dm should be changed ... little by little
      
      Test will be updated soon.
      63a68f9f
  29. 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
  30. 27 Sep, 2019 1 commit
    • Grégory LEGRAIN's avatar
      [xTensor] Templatize xTensor · c8b56a21
      Grégory LEGRAIN authored
      xVector, xTensor2* and xTensor4 are now template classes
      xTensor4Isotropic, xTensor4AnisoPlaneStrain and xTensor4AnisoPlaneStress
      remain double-valued objects as they make sense only in this context.
      
      By default, value type is double, so that you may only have to replace
      xVector by xVector<> and so on in your code.
      
      Update Tensor operations such that xTranspose, xVonMisesNorm etc...
      Theya are also double-valued by default : xTranspose<> is equivalent to
      xTranspose<double>
      
      Update the rest of the repository accordingly
      c8b56a21
  31. 23 Sep, 2019 1 commit
  32. 18 Sep, 2019 1 commit
    • Alexis SALZMAN's avatar
      Add xReader concept in eXlibris · f3fa13a2
      Alexis SALZMAN authored
      A xReader is a function that read a mesh file into a mesh database with
      eventually a DATAMANAGER created to keep element id association.
      This last point use the DATAMANAGER concept (xUnorderedMapDataManager,
      xGeneralUnorderedMapDataManager or xAttachedDataManagerAOMD) to
      associate to an element of the database its id in the file read.
      
      For now only msh file format reading is proposed with a xMshReader
      template functions located in xMeshTool/xReader. It can be easily
      completed by other template function to read Abaqus/Nastran/ ...
      file format.
      
      It is specialize for AOMD data base and xAttachedDataManagerAOMD (for
      DATAMANAGER ) in  xInterface/AOMD/general/src//xMshToAOMDReader.h.
      Implementation is largely inspired from AOMD_Util::importDGFile.
      It support msh version 1 and above 2 format.
      It can be used in place of AOMD_Util::import call in eXlibris.
      Note that only elements, file format and nodes block are read. Other
      blocks are ignored ....
      f3fa13a2
  33. 26 Jun, 2019 2 commits
    • Grégory LEGRAIN's avatar
      Various improvements / fix · 4b5d27fc
      Grégory LEGRAIN authored
      xFEM/src/xApproxFunctionHighOrderHierarchicalLegendreQH.cc
      --> decrease verbosity
      
      xFEM/src/xCommandOnGeomElem.h
      --> fix code typo
      
      xFEM/src/xData.h
      --> xZoneContainer*       zones; is not used in practice: removed
      
      xFEM/src/xIntegrationRuleStored.*
      --> add  xIntegrationRuleStoredBasicFallBackPartition: stored
      integration rule that falls back to partition rule if nothing is
      attached
      
      xFEM/src/xSpaceFactory.cc
      --> add +xSpacePolynomialHierarchicalLegendreTrunkSpaceQH factory
      
      xInterface/xOctree/src/AdaptOctreeToAOMD.cc
      --> improvements for 3D
      
      xLinAlg/xInterfaceLapack/src/xLapackInterface.h
      --> add dgels
      
      xOctree/src/oLevelSet.*
      --> new criterion oRefinementCriteriaOnFunction. Takes a std::function
      for the criterion (criterion based on ls and location)
      
      xUtil/cmakeUtil
      --> add FindLIBIGL.cmake
      --> improve FindMATLIB.cmake
      4b5d27fc
    • 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
  34. 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