• 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