• 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
Name
Last commit
Last update
Trellis Loading commit data...
xAnalyticalSolution Loading commit data...
xCrack Loading commit data...
xCut Loading commit data...
xDomainDecomp Loading commit data...
xExport Loading commit data...
xExt Loading commit data...
xFEM Loading commit data...
xFastMarching Loading commit data...
xGeom Loading commit data...
xGraph Loading commit data...
xInterface Loading commit data...
xLinAlg Loading commit data...
xMapping Loading commit data...
xMeshTool Loading commit data...
xOctree Loading commit data...
xPhysics Loading commit data...
xQuadrature Loading commit data...
xTLS Loading commit data...
xTensor Loading commit data...
xTool Loading commit data...
xUtil Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
CMakeLists.txt Loading commit data...
CONTRIBUTING.md Loading commit data...
Ext_dependence.dot Loading commit data...
LICENSE.md Loading commit data...
README.md Loading commit data...
Xfiles_dependence.dot Loading commit data...