1. 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
  2. 16 Jun, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xmapping] xMapping now a full class, independant of Trellis_Util::Mapping. · 0c02f81b
      Nicolas CHEVAUGEON authored
          This is a continuation of the work of previous commit. The goal behing
          to reduce the dependancies to AOMD. This intermediate commit do that
          with minimal interface change and minimal other change to Xfiles
          libraries.
          new files  in xMapping/src :
          xLagrangeMapping.cc, xLagrangeMapping.h, xLagrangeMappingBuilder.cc,
          xLagrangeMappingBuilder.h, xMapping.cc, xMappingBuilderHolder.cc, xMappingBuilderHolder.h
      
          class xMapping, xLagrangeMapping, xConstantLagrangeMapping ...
          are now fully implemented in xmapping instead of behing typedef of some Trellis_Util::Mapping.
          This come with some minor interface change to minimize remaining deps to Trellis in xmapping :
          xMapping do not store any more the associated AOMD::mEntity, instead it just store the entityType (mType defined in AOMD_Internals.h) This type will probably
          change in a next commit, it's still needed for now in the present form, so that the the type returned by member getType() remain compatible with Trellis_Util::Integrator.
          interface change in xMapping :
          - member getEntity is removed.
          - member getType is added.
          - member interiorCheck was taking a useless AOMD::mEntity *loc as input, it is removed.
          - members PushBack are replaced by pushBack to conform to general xfile convention.
          - unused member simplexation is removed
          - There are now 3 normalVector members and they are not pure virtual any more :
      
            virtual void normalVector(double u, double v, double w, vector3d &n) const :
            compute the "natural" normal to a face mapping. it also work with line, making the assumption that the normal is orthogonal
            to the third axis. direction of the normal of course depends on the order of the nodes in the face up to a sign.
      
            virtual vector3d normalVector(const unsigned short *face_vertices, double s, double t) const:
            compute the normal to the face (resp line) given by face_vertices in term of the nodes number of the
            reference solid (resp face) upon with the mapping is constructed. s,t are the local parameter in the reference space of face
            (resp s in the reference space of the line). It proceed by finding out if the face is really a valid face of the solid,
            if so which one and how it is rotated compared to the corresponding reference face on the solid.
            Then it compute the coordinate u,v,w in the solid reference face corresponding to point s,t on the face,
            taking into account face number and rotations. It then select the normal in reference space according to the face number,
            and push it back to geometric space.
            For this to work,  data are defined in xMapping.cc for each type of mapping supported.
      
            vector3d normalVector(const unsigned short iface, double u, double v, double w) const:
            compute the exterior normal to the  numbered iface face relative to the underlying solid at point u,v,w  of the solid.
            iface is the relative face number to the solid we want to take the normal of.
            From this value, the normal in ref space is retrived.  it is then push to geometric space using the jacobian at u,v,w.
            This is the simplest candidate to use to replace previous usage of normalVector in the library.
      
          Consequences elsewhere :
          -  xMapping/src/xLagrangeMappingBuilder.cc/.h
             xRegularCubeLagrangeMappingBuilder and  xCylindricalCoordinatesLagrangeMappingBuilder are moved to this file
            (previously they were in xMappingBuilderHolder.h/cc).
            xLagrangeMappingBuilder Familly now call new version of constructors for xLagrangeMapping.
      
          - Trellis/Util/Util/calculus/Integrator.h/cc
            GaussIntegrator do not store any more the entity, just the entityType. Constructor modifyed accordingly
      
          - xCrack/src/IntegratorSingularCrack2D.cc
            call to Trellis_Util::GaussIntegrator constructor modifyed accordingly
      
          - xCrack/src/SingularCrackMapping.h_cc xExt/src/InfiniteMapping.h_cc
            constructor of SingularCrackMapping and InfiniteMapping now call new version of xMapping and xLagrangeMapping Constructor and
            do not overload normalVector any more.
      
          - xExt/src/InfiniteOrLagrangeMappingBuilder.cc now call new version of xLagrangeMAppingConstructor.
      
          - xForm.h/.cc :
            bool integ_is_appro(xGeomElem* geo_integ, xGeomElem* geo_appro) is now implemented in the .cc file (otherwise xMapping need to be fully defined in xForm.h )
      
          - xGeomElem.h/.cc
           now xGeomElem store a AOMD::mEntity* ent as a direct member, since xMapping do not any more. Constructors and members are modifyed accordingly.
           xGeomElem member normalVector is implemented according to the new implementation of xMapping.
      
          - xRegularGrid.cc : implemented using the new version of interiorCheck.
      
          - xMapping/test/testxLagrangeMapping/main.cc has been modifyed to test the normal implementation and conform to the change in xMapping interface.
      
          - TLSVelocity.h :  Small changes to conform to the new xMapping interface.
      
          - Element.h now include "AOMD_Internals.h" because it needs AOMD::mEntity::mType
             which is not included throught xMapping.h any more.
      0c02f81b
  3. 09 Jun, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [xmapping] added atomic test for xmapping library · c1f59b73
      Nicolas CHEVAUGEON authored
      added atomic test in xmapping library. There were none and it will be needed soon since the implementation of mapping will change in the process to move to the mesh interface.
      
      atomic test added here :
      xMapping/test/testxLagrangeMapping/main.cc
      with xMapping/test/CMakeLists.txt.
      Xfile CMakeLists.txt : added the inclusion of the test case.
      
      other small changes :
      
      * xtensor/xTensor2.h :  removed useless inclusion of xTensor4.h
      
      *Trellis/Util/Util/calculus/Mapping.h,
       Trellis/Util/Util/include/mTensor2.h : added some documentations.
      
      all the modifyied .cc/.h were clang-formated
      c1f59b73
  4. 05 May, 2020 1 commit
    • Nicolas CHEVAUGEON's avatar
      [Trellis/AOMD] "constifying" some function · 56ef6631
      Nicolas CHEVAUGEON authored
      rational : some function in AOMD where taking pointer to mMesh while not modifying the pointed to mMesh, and some member function were not const while not modifying the object. They could not be use with const mMesh * without const_cast. This release change that for some :
      
          for mMesh : deleted assignment operator, added defaulted move assignement
      
          ** /Trellis/AOMD/AOMD/include/mAOMD.h/.cc, /Trellis/AOMD/AOMD/src/mSMS.cc
          * AOMD_Util :
               void ex_port (const char *, mMesh *, bool reduce_to_minimum = false);
          ->   void ex_port (const char *, const mMesh *, bool reduce_to_minimum = false);
               void   exportSmsFile   (const char *,mMesh *);
          ->   void   exportSmsFile   (const char *, const mMesh *);
               void   exportGmshFile  (const char *,mMesh *);
          ->   void   exportGmshFile  (const char *, const mMesh *);
               void   exportGmshFile  (std::ostream&,mMesh *) const;
          ->   void   exportGmshFile  (std::ostream&, const mMesh *);
               void   exportDGFile    (std::ostream&,mMesh *, bool reduce_to_minimum = false);
          ->   void   exportDGFile    (std::ostream&, const mMesh *, bool reduce_to_minimum = false);
               void   exportEnsightFile    (const char *,mMesh *, bool reduce_to_minimum = false);
          ->   void   exportEnsightFile    (const char *, const mMesh *, bool reduce_to_minimum = false);
               void   exportVTUFile(const char *,mMesh *, bool reduce_to_minimum = false);
          ->   void   exportVTUFile(const char *,const mMesh *, bool reduce_to_minimum = false);
               void   exportICIFile(const char *,mMesh *, bool reduce_to_minimum = false);
          ->   void   exportICIFile(const char *,const mMesh *, bool reduce_to_minimum = false);
      
          ** /Trellis/AOMD/AOMD/include/mMesh.h/.cc Trellis/AOMD/AOMD/src/mDebugUtil.cc
          * class mMesh :
          +    mMesh &operator=(mMesh &&) = default;
          +    mMesh &operator=(const mMesh &) = delete;
      
               mVertex *getVertex (int iD);
          ->   mVertex *getVertex (int iD) const;
               mEdge   *getEdge   (mVertex *v1, mVertex *v2);
          ->   mEdge   *getEdge   (mVertex *v1, mVertex *v2)const;
               mFace   *getTri    (mVertex *v1, mVertex *v2, mVertex *v3);
          ->   mFace   *getTri    (mVertex *v1, mVertex *v2, mVertex *v3) const;
               mFace   *getQuad   (mVertex *v1, mVertex *v2, mVertex *v3, mVertex *v4);
          ->   mFace   *getQuad   (mVertex *v1, mVertex *v2, mVertex *v3, mVertex *v4) const;
               mTet    *getTet    (mVertex *v1, mVertex *v2, mVertex *v3, mVertex *v4);
          ->   mTet    *getTet    (mVertex *v1, mVertex *v2, mVertex *v3, mVertex *v4) const;
               mHex    *getHex    (mVertex *v1, mVertex *v2, mVertex *v3, mVertex *v4,
                                   mVertex *v5, mVertex *v6, mVertex *v7, mVertex *v8);
          ->   mHex    *getHex    (mVertex *v1, mVertex *v2, mVertex *v3, mVertex *v4,
                                  mVertex *v5, mVertex *v6, mVertex *v7, mVertex *v8) const;
               void print(int);
          ->   void print(int) const;
               void printAll();
          ->   void printAll() const;
      
      The following files are clang-formated :
      
      Trellis/AOMD/AOMD/include/mAOMD.h
      Trellis/AOMD/AOMD/include/mMesh.h
      Trellis/AOMD/AOMD/src/mAOMD.cc
      Trellis/AOMD/AOMD/src/mDebugUtil.cc
      Trellis/AOMD/AOMD/src/mMesh.cc
      Trellis/AOMD/AOMD/src/mSMS.cc
      56ef6631
  5. 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
  6. 28 Mar, 2020 1 commit
    • 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
  7. 18 Jul, 2019 1 commit
  8. 26 Jun, 2019 1 commit
    • Nicolas CHEVAUGEON's avatar
      Squashed commit of the following: · ff195880
      Nicolas CHEVAUGEON authored
      commit f5bc3b9d33f2b6f2ec35757b666fbd975fe4158a
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 13:52:30 2019 +0200
      
          back to superLU 3
      
      commit 0fd17be223d6879fc6c0ae2f8e5a9263558d8322
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 13:40:53 2019 +0200
      
          cosmetics change after a merge.
      
      commit 5be5f7a4e0b225bef44ef89471c929d8b392fa82
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 12:16:46 2019 +0200
      
          Squashed commit of the following:
      
          commit dcc41789
          Author: Benoit LE <ble@pc-str33.ec-nantes.fr>
          Date:   Wed Jun 26 10:59:32 2019 +0200
      
              Removed uncessary classes and function in xFastMarching/src/Skeleton
      
              Removed FMSK_linearalgebra.h and FMSK_meshinterfacexRegion.h.
      
              Moved a few details from FMSK_fastmarching.h to FM.h. In particular, the destructor of entitystorage is corrected to clear variables properly. (WARNING : in some
              cases, probably due to numerical rounding, it may slightly change some results, for instance when doing a TLS computation using FastMarching. However, after a
              discussion with N. Chevaugeon, it was the proper way to do it). Removed dupplicated function and classes (like entitysotrage, FMUpdaterGeneric, fmeik_intern, etc).
      
      commit 45d8e958f302c51b8f4c388c8e1aeaeb2516052b
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 12:11:30 2019 +0200
      
          * xCrack/CMakeLists.txt  : ANN is now optional for this module
      
          * xCrack/src/lCrack.h/cc : Changes to make the  submesh and filter correct in parallel setting.
            - lCrack class is no more derived from the obsolete xExchangeBool.
            - The support information (stored in xSubMesh in lCrack  ) are now build directly
              in member createSupportInfo().
              Helper functions pre_exchange_XXXX post_exchange and members bucket_type map_xx  are deleted.
            - bool supportsCutthruByCrack(AOMD::mEntity* e) const and
            - bool  supportInCylinderAroundFront(double r, AOMD::mEntity *e) const
               members function of lCrack are now implemented in the cc to make the .h more readable
            - Gradient of lst and lsn are now  computed during initialization (post_init member of lcrack),
              since it need   synchronisation among processors.
              this avoids dead-lock when agradient is evaluated latter on.
      
          * xFEM/src/xAlgorithm.h : added range version of some export algorithm.
            I have plans to add more range version of the algorithms.
            (range version : I mean just interface to algorithm where one can pass a range
            (an object on which one can call begin() and end() ... see xIteratorTools.h )
            instead of two iterators.)
      
          * XFEM/src/xRegion.h/cc : added members to class xRegion :
                   size_t size() const;
                   size_t size(int what) const;
                   xtool::xRange<xIter> range() const;
                   xtool::xRange<xIter> range(int what ) const;
      
          * XFEM/src/xSubmesh.h/cc :
             - added members to class xSubMesh :
                   xtool::xRange<xIter > range() const
                   xtool::xRange<xIter > range(int what) const
             - added xUnifySubMeshAccrossProcess class, which is a submesh modifyier
               By calling this modifiyer, one insure that  if an entity exist in a  submesh at least on one proc,
               and is on the partition of the background mesh,
               this entity will be in the submesh of all the proc that share this entity.
      
          * xLinAlg/xSolverBase/src/xDenseMatrix.cc :
             double xDenseMatrix::maxnorm() const implemeted in the cc file.
      
          *  xTool/src/xIteratorTools.h added :
             - make_filter_iter(pred, itb, ite)
             - make_filter_range(pred, range)
             - make_filter_range(pred, itb, ite)
      
          * xTool/src/xRawDataExchanger.h
            addeded communication paterns when no key can be easily defined. Used  for example in xSubMesh
            xUnifySubMeshAccrossProcess
            added test in xTool/test/testsendRecvRawData/
      
          * Trellis/AOMD/AOMD/include/mMesh.h :
          - added move constructor for mMesh.
          - member find(mEntity *) is now const.
      
          * xInterface/AOMD/general/src/xAttachedDataManagerAOMD.h
           xAttachedDataManagerAOMD's member funciton deleteData now return a size_t (stl style) to knwon
           if a data as been effectively delete or not.
      
          * xTLS/CMakeLists.txt : bug corrected in CMake line 80
      
      commit 0f3d17e3e7b01c28a5a168e213c6926b2619526f
      Merge: be8df97f fc91b2b6
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Wed Jun 26 11:30:04 2019 +0200
      
          Merge remote-tracking branch 'origin/master' into mycurrent_branch
      
      commit be8df97fb07b3dc877b299e583833d08526e7fee
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 21 12:11:27 2019 +0200
      
          CMakeList for Xcrack : now ann is optional for xcrack
      
      commit 0953a5a729969089666a74dd0fbff760c29baa19
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 14 13:55:02 2019 +0200
      
          Added new communications pattern in xTool/src/xRawDataExchanger.h, usefull when exchanging data when no key can be defined. Associated test case :  xTool/test/testsendRecvRawData/
      
      commit 1f2739fd89dcb9e0e41bb6e33c3c3679e53aa700
      Merge: cf61c8b7 e249e06c
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Thu Jun 13 15:58:13 2019 +0200
      
          Merge branch 'refactoring' into mybranch_refactmerge
      
      commit e249e06c
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Thu Jun 13 12:38:12 2019 +0200
      
          xfastmarching namespace usage correction
      
          New xfastmarching namespace have been introduced but pack/unPack helping function
          must remain in :: namescpace (i.e. in no namescpace). This is to let FMupdaterGeneric
          call ::pack  ::unPack in a generic way (no assumption on VECT or TRANSPORTED
          namespace)
      
      commit 4c2c20c2
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Wed Jun 12 11:39:05 2019 +0200
      
          xInterface/Graph: little change on how to use try_run in cmake
      
      commit 6614834f
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Tue Jun 11 14:41:49 2019 +0200
      
          SuperLU:Add durty duplication to control version. TODO
      
      commit eb383986
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Tue Jun 11 12:54:11 2019 +0200
      
          Squashed commit of the following:
      
          commit 90452f607824ed9ac46c1d3fca8e8160de399f53
          Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
          Date:   Tue Jun 11 12:52:08 2019 +0200
      
              Back to superLU 3 as default in xLinearSystemSolverSuperLU.h
      
          commit 52420031eb8d5add55039dc5b143000807a32b9d
          Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
          Date:   Tue Jun 11 12:37:39 2019 +0200
      
              CMakeLists modifyed to fix linking issue:
              library xExport is now not parts of the XFEM_LIBRARIES defined by find Xfem
              xExport dependecies where therfore added where needed.
      
              Super for SuperLU 5 (experimental ) added in xinterface superlu
      
          commit 1e798815a51737d615ee25940cb1e6b796150c7a
          Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
          Date:   Fri Jun 7 15:03:05 2019 +0200
      
              corrected  ../../../xInterface/Graph/ParMetis build process to reflect change in paths.
      
              modifiyed xCSRVector.h and cc so that the .h does not include xBlasDef.h since it can produce conflict when including xVector.h in superLU interface
      
           Changes to be committed:
          	modified:   xFEM/CMakeLists.txt
          	modified:   xInterface/Graph/ParMetis/CMakeLists.txt
          	modified:   xInterface/Graph/ParMetis/src/setType/test.cc
          	modified:   xLinAlg/xInterfaceBasicIterSolver/test/springSolve/main.cc
          	modified:   xLinAlg/xInterfaceSuperLu/src/xLinearSystemSolverSuperLU.cc
          	modified:   xLinAlg/xInterfaceSuperLu/src/xLinearSystemSolverSuperLU.h
          	modified:   xLinAlg/xInterfaceSuperLu/src/xLinearSystemSolverSuperLU_imp.h
          	modified:   xLinAlg/xSolverBase/src/xCSRVector.cc
          	modified:   xLinAlg/xSolverBase/src/xCSRVector.h
          	modified:   xLinAlg/xSolverBase/src/xDenseMatrix.cc
          	modified:   xLinAlg/xSolverBase/src/xDenseMatrix.h
          	modified:   xUtil/cmakeUtil/FindxFEM.cmake
      
      commit cf61c8b74089cd0ffe274c5cc2a45e24285c74c5
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 7 14:45:28 2019 +0200
      
          changes in CMakelists.txt for ParMetisInterface_types.h to be properly generated
      
      commit 286497f1b9ddc3a017561a0494af5a6df3cdf09a
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 7 12:36:23 2019 +0200
      
          small modif in :
          xInterface/Graph/ParMetis/CMakeLists.txt
          and  xLinAlg/xSolverBase/src/xCSRVector.h
      
          in xInterface/Graph/ParMetis/CMakeLists.txt, path for the test.cc file was wrong
          in  xLinAlg/xSolverBase/src/xCSRVector.h : small change to avoid the inclusion of xBlasDef.h, which conflict with some version of superLu that define the same external function from blas, with slightly different signature.
      
      commit bf8cbe0851dfd2c7107565dff1f06a25220db25e
      Merge: 4fcc8541 8c95f4d6
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 7 10:45:08 2019 +0200
      
          Merge remote-tracking branch 'origin/refactoring' into mybranch_refactmerge
      
      commit 4fcc85416046e03da4e53bfd84f8262718cda959
      Author: Nicolas Chevaugeon <nicolas.chevaugeon@ec-nantes.fr>
      Date:   Fri Jun 7 09:34:55 2019 +0200
      
          Small changes in aomd :
      
           - move constructor for mMesh added
           - mEntity * mesh::find(mEntity *) now a const member function
           - void xAttachedDataManagerAOMD::deleteData( AOMD::mEntity &e ) changed to
             size_t xAttachedDataManagerAOMD::deleteData( AOMD::mEntity &e )
             delete data now return un unsigned int telling if a data was actually deleted or not    (like in stl style container ): return 0 if nothing was deleted, 1 otherwise
      
      commit 8c95f4d6
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Thu Jun 6 15:11:57 2019 +0200
      
          finalises standard pathes:
      
      commit 33bbac5d
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Tue Jun 4 10:51:16 2019 +0200
      
          rename directory and namespaces. Last modifications below:
      
          Original directory (Master)    ->             New directory (refactoring)                 Namespace (refactoring)
          ===========================                   ===========================                 =======================
      
          Xfiles:
          =======
      
          Util
             |_eXlibris_tools                           xTool                                     xtool::
             |
             |                                          xUtil
             |_cmakeUtile                                   |_cmakeUtile
             |
             |_FloUtil                                      attic
             |_Split                                        attic
             |_doxygen_tools                                attic
             |_tags_tools                                   attic
      
          Xcrack                                        xCrack
               |_ xCrack                                     |_ src                               xcrack::
               |
               |_ xCrackFMM                                  attic
      
          Xcut                                          xCut
             |_XdoubleCut                                  |_xDoubleCut                           xcut::
      
          Xdomaindecomp                                 xDomainDecomp
                      |_DomainManager                               |_DomainManager               xdomaindecomp::
                      |_Solvers                                     |_Solver                      xdomaindecomp::
      
          Xext
             |_AnalyicalSolutions                       xAnalyticalSolution
             |                  |_Elastic2D                               |_Elastic2D             xanalyticalsolution::
             |
             |_Xext                                     xExt
                  |_src                                    |_src                                  xext::
                  |
                  |_ImageProcessing                        attic
      
          Xfem
             |_Xfem ___________________________________ xFEM                                      xfem::
                                               \_______ xCut
                                                \          |_xLegacySimpleCut                     xcut::
                                                 \
                                                  \____ xExport                                   xexport::
                                                   \___ xTensor                                   xtensor::
                                                    \__ xMapping                                  xmapping
                                                     \_ xQuadrature                               xquadrature::
      
          FastMarching                                  xFastMarching
                     |_src                                          |_src                         xfastmarching::
                     |   |_FMSkeleton                               |   |_Skeleton                xfastmarching::skeleton
                     |                                              |
                     |_xDistFM                                      |_xDistFM                     xfastmarching::
                             |_xDistFM                                      |_src                 xfastmarching::
      
          Geom                                          xGeom                                     xgeom::
      
          Xinterfaces                                   xInterface
                    |_XAOMDInterface                             |_AOMD                           xinterface::aomd::
                    |                                            |
                    |_GraphInterface                             |_Graph
                    |              |_ParMetis                    |     |_ParMetis                 xinterface::parmetis::
                    |                                            |
                    |_XoctreeInterface                           |_xOctree                        xinterface::xoctree::
                    |                                                    |
                    |_xSplitMeshInterface                                |_xTemplateRefineMesh    xinterface::xtempaterefinemesh::
                    |
                    |
                    |_SolverInterfaces                   xLinAlg
                                     |_SolverBase              |_SolverBase                       xlinalg::
                                     |_SuperLu                 |_xInterfaceSuperLu                xlinalg::
                                     |_Taucs                   |_xInterfaceTaucs                  xlinalg::
                                     |_Lapack                  |_xInterfaceTaucs                  xlinalg::
                                     |_Mumps                   |_xInterfaceMumps                  xlinalg::
                                     |_BasicIterSolver         |_xInterfaceBasicIterSolver        xlinalg::
                                     |_Pastix                  |_xInterfacePastix                 xlinalg::
                                     |
                                     |_NonLinearSolver         attic
                                     |_PetscParallel           attic
                                     |_PetscSeq                attic
                                     |_SparsKit                attic
                                     |_Itl                     attic
                                     |_Mtl                     attic
                                     |_KSPParallel             attic
      
          MeshMachine                                   xMeshTools
                    |_DistMesh                                   |_xDistMesh                      xmeshtool::
                    |_SplitMesh                                  |_xTemplateRefineMesh            xmeshtool::
                    |
                    |_FastMarching                               attic
                    |_LinearAlgebra                              attic
                    |_Stlmesh                                    attic
      
          Octree                                        xOctree                                   xoctree::
      
          Physics
                |_Physics                               xPhysics
                        |_Materials                            |_Materials                        xphysics::
                        |_src                                  |_src                              xphysics::
      
          xTLS
             |_trunck
             |_xTLS                                     xTLS                                      xtls::
      
          ============================================================================================
      
          Xfem splitting:
          ===============
      
          xCut
             |_src
                 |__ xDoubleCut
                 |             |__(unchanged)
                 |
                 |__ xLegacySimpleCut
                                    |__ xPhysSurfByTagging.cc
                                    |__ xPhysSurfByTagging.h
                                    |__ xPhysSurf.cc
                                    |__ xPhysSurf.h
                                    |__ xPhysSurfParameter.cc
                                    |__ xPhysSurfParameter.h
                                    |__ xRefCut.cc
                                    |__ xRefCut.h
                                    |__ xRefCutToAOMD.cc
                                    |__ xRefCutToAOMD.h
                                    |__ xRefCutToIsoZeroVector.cc
                                    |__ xRefCutToIsoZeroVector.h
                                    |__ xRefMesh.cc
                                    |__ xRefMesh.h
      
          xExport
                |_src
                    |__ xExport.cc
                    |__ xExportEnsight.cc
                    |__ xExportEnsight.h
                    |__ xExportGmsh.cc
                    |__ xExportGmsh.h
                    |__ xExportGmsh_imp.h
                    |__ xExport.h
                    |__ xExportManager.cc
                    |__ xExportManager.h
                    |__ xExportTranslate.cc
                    |__ xExportTranslate.h
                    |__ xPostPro.cc
                    |__ xPostPro.h
                    |__ xPostProMSH.cc
                    |__ xPostProMSH.h
                    |__ xPostProVTU.cc
                    |__ xPostProVTU.h
                    |__ xSensors.cc
                    |__ xSensors.h
      
          xTensor
                |_src
                    |__ xPoint.h
                    |__ xTensor2.cc
                    |__ xTensor2.h
                    |__ xTensor2Sym.cc
                    |__ xTensor2Sym.h
                    |__ xTensor3.h
                    |__ xTensor4.h
                    |__ xTensorOperations.h
                    |__ xVector.cc
                    |__ xVector.h
                    |__ xVectorScalarProd.h
      
      commit d76fddf4
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Fri May 10 12:33:16 2019 +0200
      
          previous retrieval was a mistake
      
      commit d2a57bbf
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Fri May 10 12:09:17 2019 +0200
      
          retrieve forgotten files concerning xSplitMesh
      
      commit 458beb2b
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Fri May 3 16:15:37 2019 +0200
      
          - added modules in preparation for "V0":
      
                          Xfiles
                               |_xMapping      +  namespace  xmapping
                               |_xQuadrature
      
          - modified namespaces:
                          geom             ->   xgeom
                          distmesh         ->   xdistmesh
                          oct              ->   xoctree
                          oct_xfem_adapt  }
                          oct_utilities   }->   xoctreeinterface
          		oct_xfem_interf }
      
          - namespace  xphysics  created for module  Xfiles/xPhysics
      
      commit 230607c4
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Thu May 2 17:06:15 2019 +0200
      
          rename libs/directories:
      
                  Xcrack                            ->   xCrack
                  Xcut                              ->   xCut
                     |_XdoubleCut                           |_xDoubleCut
                     |_XlegacySimpleCut                     |_xLegacySimpleCut
      
                  Xdomaindecomp                     ->   xDomainDecomp
                  Xexport                           ->   xExport
                  Xext                              ->   xExt
                  Xfem                              ->   xFEM
                  FastMarching                      ->   xFastMarching
                  Geom                              ->   xGeom
      
                  Xinterfaces                       ->   xInterfaces
                        |_XAOMDInterface                       |_xAOMDInterface
                        |_GraphInterface                       |_xGraphInterface
                        |_XoctreeInterface                     |_xOctreeInterface
                        |_xSplitMeshInterface                  |_xTemplateRefineMeshInterface
                        |
                        |                           ->  xLinearAlgebra
                        |_SolverInterfaces                     |
                                         |_SuperLu             |_xInterfaceSuperLu
                                         |_Taucs               |_xInterfaceTaucs
                                         |_...                 |_xInterface...
      
                  MeshMachine                       ->   xMeshTools
                            |_DistMesh                            |_xDistMesh
                            |_SplitMesh                           |_xTemplateRefineMesh
                            |                                     |_attic
                            |_FastMarching                              |_FastMarching
                            |_LinearAlgebra                             |_LinearAlgebra
                            |_Stlmesh                                   |_Stlmesh
      
                  Octree                            ->   xOctree
                  Physics                           ->   xPhysics
                  Xtensor                           ->   xTensor
      
                  Util
                     |_eXlibris_tools               ->   xTools
      
                  Util                              ->   xUtil
                     |_cmakeUtile                            |_cmakeUtile
                     |                                       |_attic
                     |_FloUtil                               |_FloUtil
                     |_Split                                         |_Split
                     |_doxygen_tools                                 |_doxygen_tools
                     |_tags_tools                                    |_tags_tools
      
                  Xtest
                      |_solverinterfaces            ->   xlinearalgebra-test
                      |_physics-seq-test            ->   xphysics-seq-test
                      |_xsplitmeshinterface-test    ->   templaterefinemesh-test
      
          cmake variables rules for module Xfiles/xFoe (no more Xfiles/Xfoe) :
      
                Xfiles/xFoe  => find_package(xFoe)  => xFoe_INCLUDE_DIR  / xFoe_LIBRARIES
      
          in C++ source files, namespace are in lower cases: xfoe
      
      commit 474db3f3
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Tue Apr 30 15:04:25 2019 +0200
      
          rename  Xfiles/Util/eXlibris_tools  in  Xfiles/xTools
          find_package(EXLIBRISTOOLS) becomes find_package(xTools)
          namespace is now  xtools  instead of  eXlibris_tools
      
          move:
          	 Util/FloUtil                     -> Util/attic/FloUtil
          	 Util/Split                       -> Util/attic/Split
          	 Util/doxygen_tools               -> Util/attic/doxygen_tools
          	 Util/tags_tools                  -> Util/attic/tags_tools
          	 Xtensor/src/xGenericOperations.h -> xTools/src/xGenericOperations.h
      
      commit 559ab2c1
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Tue Apr 30 11:49:07 2019 +0200
      
          Finalises XlegacySimpleCut.
          Still to do: move eventually class xPhysSurfVLS (inside xVectorLevelSet.*) into Xfiles/Xcut/XlegacySimpleCut.
      
      commit 8c4dfc76
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Thu Apr 25 12:11:22 2019 +0200
      
          purge mistakes
      
      commit a741772f
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Thu Apr 25 11:46:10 2019 +0200
      
          use XlegacySimpleCut: backup with partial updates
      
      commit 3c9d751e
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Wed Apr 17 17:37:15 2019 +0200
      
          takes into account the renaming of Xcut/xDoubleCut/src into Xcut/XdoubleCut/src
      ff195880
  9. 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
  10. 12 Mar, 2018 1 commit
    • Grégory LEGRAIN's avatar
      Big modifications : · 538cec1a
      Grégory LEGRAIN authored
          Removed eXlibris_Types that was not working as expected
          Get rid of all "old" boost objects that are now in the C++11 standard (array, unordered_map/set, function, bind...).
          Note : I had to keep boost::bind  in  xPhysSurfCut.cc for some functions with two signatures (otherwise, it was not compiling). Maybe linked to https://stackoverflow.com/a/10555796
      
          Small modifications / improvements :
      
          xParseData :  Add map<string, double> parsing format (string can be recasted to what you want in your code).
          Syntax :  myVariable = {key1 : value1, key2 : value2}
      
          mVector, xVector :  flatten loops in mTensor2 * mVector
      
          xApproxFunctionHighOrderHierarchicalLegendreQH.cc :
          more tabulated  functions
          bug correction for vertex functions in some corner cases
      
          xApproxFunctionHighOrderLagrangeQH.cc :  bug correction
      
          xField.h :  correctly using the typedef in xFieldPointwise
      
          xGeomElem.h :  NbIntegrationPoints is now unsigned int
      
          xSpace :  GP_KEY is now unsigned int
      
          xTensor2 :  flatten tensor_product double loop
      
          xValkey :
         Add xHashValKeyGauss hash function (based on boost hash_combine). Far more efficient than the old one (element id) in the case of pointwise values. (all the values associated to the same element initially shared the same hash !)
      
          Correcly use typedefs in xKeyInfo
      
          xVariabManager :  update typedef to use the new hash function
      538cec1a
  11. 29 Jan, 2018 1 commit
  12. 09 Jan, 2018 1 commit
    • Gilles MARCKMANN's avatar
      Squashed commit of the following: · 418b9ec4
      Gilles MARCKMANN authored
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Fri Dec 1 13:36:40 2017 +0100
      
          Remove find MPI4 and set_cxx_compiler
      
          I originally add set_cxx_compiler to handle TAU warper and complete FIND MPI3 with LIGER specific search in
          FIND MPI4. It gives me a quick solution to use titan,liger,... but was not working so well regarding mandatory fortran MPI libray required by MUMPS (F90 library)
          Both changes, as pointed by N.C., where a insane way of dealing with MPI project when using CMAKE.
      
          This commit try to propose a more "conventional" way of doing those thinks.
          * Now find is done with official find MPI function provided with CMAKE
          * Now compiler used for all compilation is the C++ compiler, not the MPI warper.
      
          FINDMPI provide include and libs in MPI_<LANG>_INCLUDE_PATH and MPI_<LANG>_LIBRARIES.
          This setting have been used where it have to. In fact it is almost everywhere now, as we switch eXlibris in MPI. But I did want to trace real usage of those MPI material. So please don't add those include and library in a top level CMakefile.txt
      
          This work shows that many files have been changed, too many .... But clearly it show that in term of dependency eXlibris_tools (in particular for xMPIEnv) depend on MPI include and libraries. Then all library/executable using eXlibris_tools will depend on MPI. It turns out that using transitiveness of last CMAKE functionality would have transform this work into a simple modification of one target, other inhering naturally those changes .... I hope that one day we come to use thing like that ...
      
          Now regarding what does "find FINDMPI" it is an other story. We may hope that next version will be more "efficient". This commit have been test on the following:
          titan: centos7 + mvapich2.2 (rpm install) + g++ 4.8.2
          titan: centos7 + mvapich2.2 (rpm install) + g++ 4.8.2 + TAU
          liger: Red Hat Enterprise Linux Server release 6.6 + intel mpi + intel compiler (back end g++ 4.9)
          desktop: fedora core 19 + mpich3 (rpm install) + g++ 4.8.3
          laptop: OpenSuse 42.3 + openmpi 10  + g++ xxx
          On all those platform some setting where in fact provided in LocalConfig.cmake that correspond more or less to what we where expecting from FINDMPI.
          Anyway the good aspect is that now adapted setting are not anymore introduced in a proprietary FINDMPI with a huge maintenance cost and a arguable performance.
          Those adapted setting are :
          * MPI_<C,CXX,Fortran>_COMPILER (in LocalConfig): If you need to set compiler for one language do it for all( In some platforme FINDTRHEAD need C lanquage to be activate which imply for FINDMPI, with required argument, that MPI_C_COMPILER is found even if we don't need it). Fortran use here and there imply fortran language enable and like C impose a MPI fortran compiler available. I don't think that this constraint is so important as in general an MPI library provide all those compilers.
          For tau giving taucc,taucxx and tauf90 is fine and works nicely.
          * MPIEXEC (in LocalConfig): surprisingly FINDMPI is not giving always the launcher corresponding to the given compiler !? Typically for titan it gives the hpmpi version ? On liger it was found by FINDMPI but in fact mpirun was the correct launcher to use with  impi. This commit have modified all test so that they use those  MPIEXEC,MPIEXEC_NUMPROC_FLAG,MPIEXEC_PREFLAGS and MPIEXEC_POSTFLAGS variable. Please maintain this way of writing.
          * for intel mpi compiled with ifort an extra ifcore library must be provided at linking stage (see main CMakeFile.txt)
      
          Not that now there is only one call find_package(MPI REQUIRED) in the top CMakeLists.txt (GemUtil). The idea is that you use this files for all what you need (Appli,lib,Atomic,test,...). By including machine dependent feature and doing appropriate test it permit to have every thing normally working.
      
          TTK is to be treated ... soon and hopefully like said above.
          ====================
      
          This commit check Atomic and Xtest test:
          On all those platforms  4 tests crash:
          front
          cube_planar_crack
          geometricderivative
          singular3d_one
      
          (mostly related to something in xLevelset new // version)
      
          And ~9 test give inappropriate results compare to reference when ndiff was available in those platform.
          (to be investigate. But already: spacePolyOctree has been not modified at time
           of some change in spaces => it naturally cannot work anymore)
      
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Wed Nov 22 14:23:17 2017 +0100
      
          cmake: retrieving Atomic strategy of master branch + some debug
      
          Atomic test are back in top buildir location
          Atomic are now under BUILD_ATOMIC family options only (if you want to
          run atomic test on already installed library or in the course of
          compiling needed library or in a step by step manner it is possible )
          =>Change CMakeLists.txt of atomic test so that they can be done
          independently of the library it test.
      
          Miscellaneous bug correction (with G.M.):
          * in some test correct way of launching program
          * add a FindLinearAlgebra for Atomic LinearAlgebra test
          * good test in FindXmodule so that ERROR message stop process
          * set_cxx_compiler: This function should not exist. When someone get time a look
           to tau warper may give a way to use standard standard CMAKE project
           language selection with MPI include. Then library given by standard MPI
           find and some extra stuff for TAU will be used with CXX compiler found
           by cmake. Anyway, bugg here was related to newer version of CMAKE that
           refuse to change variable setted in parent scope when setting them in
           the cache. An extra setting n this function using PARENT_SCOPE correct
           this problem.
          * Remove add_definitions in CMakeLists.txt file of eXlibris_tools so
            that xMPIENV is not using any imposed initialisation. This have to be
            modified in the source. But I don't have a nett solution for now so
            it stays like that for the moment
      
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Tue Nov 14 17:52:30 2017 +0100
      
          suppress set_internal( )command and replace with suitable add_definition(...) at the bottom level if needed
          correction of bug in definitions of tests for ctest
      
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Tue Nov 14 14:00:49 2017 +0100
      
          split Util/cmakeUtil/FindSolverInterfaces.cmake  into :
      
                   Util/cmakeUtil/FindInterfaceKSPParallel.cmake
                   Util/cmakeUtil/FindInterfaceLapack.cmake
                   Util/cmakeUtil/FindInterfaceMtl.cmake
                   Util/cmakeUtil/FindInterfaceMumps.cmake
                   Util/cmakeUtil/FindInterfaceNonLinearSolver.cmake
                   Util/cmakeUtil/FindInterfacePastix.cmake
                   Util/cmakeUtil/FindInterfacePetscParallel.cmake
                   Util/cmakeUtil/FindInterfacePetscSeq.cmake
                   Util/cmakeUtil/FindInterfaceSparsKit.cmake
                   Util/cmakeUtil/FindInterfaceSuperLu.cmake
                   Util/cmakeUtil/FindInterfaceTaucs.cmake
                   Util/cmakeUtil/FindSolverBase.cmake
      
          Split  Xinterfaces/SolverInterfaces/CMakeLists.txt into:
      
                   Xinterfaces/SolverInterfaces/Itl/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/KSPParallel/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/Lapack/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/Itl/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/KSPParallel/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/Lapack/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/PetscParallel/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/PetscSeq/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/SolverBase/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/Mtl/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/NonLinearSolver/CMakeLists.txt
                   Xinterfaces/SolverInterfaces/Taucs/CMakeLists.txt
      
          Split find_package(SolverInterfaces) into appropriate find_package(Interface<Solver>):
      
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Tue Nov 14 09:46:49 2017 +0100
      
          Miscellaneous modification
      
          FindLAPACK2
          ===========
          use of function instead of particular hand made instruction
      
          FindMETIS.cmake
          ===============
          detail
      
          FindMPI4
          ========
          order of mpi fortran lib for liger
      
          FindNoHeaderLibrary/FindStandardLibrary (from G.M. and A.S. work)
          =================================================================
          reshaping those function so that one call the other for lib and
          when user give a path find stick to hit and not to everywhere below it.
      
          common_functions.cmake
          ======================
          add is_not_installed function for LocalConfig.cmake file
          correct bug on link
      
          CMakeLists.txt of SolverInterfaces
          ==================================
          update
      
          Xfem/Xfem/src/xRefMesh.h
          ========================
          comment #define so that associated option do something
      
      Author: Gregory Legrain <gregory.legrain@ec-nantes.fr>
      Date:   Thu Nov 9 18:07:44 2017 +0100
      
              * Options have to be set from the main CmakeLists.txt.
              If you want to build a standalone component of the library, you should
              adapt its CMakeLists.txt by befining the required options
      
              * Replace XXXX_APPLI by USE_XXXX
      
      Author: Gregory Legrain <gregory.legrain@ec-nantes.fr>
      Date:   Wed Nov 8 21:30:27 2017 +0100
      
          Fix a warning in FindBLAS2.cmake (cmake 3.9)
          Fix an issue in FindMPI4.cmake : do not reset MPI_PREFIX_PATH if it was
          already set from outside
      
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Wed Nov 8 15:18:01 2017 +0100
      
          cmake: general option related to ATOMIC test is now in cmakefiles
      
          NOTE:
          As mentioned in previous commit, general atomic option is now used
          where it have to, instead of having a painful function to maintain.
      
          Somme option have been removed. Here situation have to be clarified.
          Most option are general and have them on top CMAKEFILE is natural.
          Setting then in intermediate CMAKEFILE is somehow painful to maintain,
          and removing them from those intermediate files look like a
          simplification.
          But some others are less general. For example if in Xcut we don't need
          GEOM but in XFEM yes what do we do with the potential USE_GEOM on top
          CMAKEFILE. A solution is to comment it and set it to "off" in XCUT CMAKEFILE
          and "on" in XFEM CMAKEFILE ...and then we would be glade that they
          already exist....
      
          So this commit has just removed few intermediate option declaration. But
          reflection must progress on this aspect ... if we keep this system.
      
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Tue Nov 7 16:10:44 2017 +0100
      
          cmake: to stick to NEW policy with 3.7 version
      
      Author: Salzman Alexis <alexis.salzman@ec-nantes.fr>
      Date:   Fri Oct 27 19:40:44 2017 +0200
      
          cmakeUtil: add force_atomic function to follow new option BUILD_ATOMIC_TEST
      
          See commit in GemUtil for explanation. Should be removed when all cmake
          will take into account the BUILD_ATOMIC_TEST option
      
      Author: Gilles Marckmann <gilles.marckmann@ec-nantes.fr>
      Date:   Mon Oct 16 14:51:26 2017 +0200
      
          All CMakeLists.txt have been modified to take into account :
      
          1. Ability to turn ON or OFF the verbosity of the CMakeLists.txt while executing cmake
             command: Option VERBOSE has been added. It works with a new function message_verbose()
             defined in Xfiles/Util/cmakeUtil/common_functions.cmake. This function displays a
             string variable:
      
                   set(text  "my text to print when option VERBOSE is ON")
                   message_verbose(text)
      
          2. Customization of installation path:
      
             2.1. LIBRARIES_INSTALL_PATH is a new cmake variable which describes the destination
             	of the librairies (where they will be installed or where they are installed).
                	If this variable is not defined, libraries will be installed in ${DEVROOT}/lib,
          	like in the previous CMakeLists version.
      
             2.2. EXECUTABLES_INSTALL_PATH is a new cmake variable which describes the destination
                 	of the executables (where tests will be writen). If this variable is not defined,
                 	libraries will be writen in the build directory of the executable, like in the
                 	previous CMakeLists version. The ARCHOS suffix is added to the name of the test
          	to create the name of the executable. In this way, several executables can be
          	written in the same test directory but can be distinguished. Nevertheless, the
          	test names for ctest command are the name of the test-cases without ARCHOS suffix.
          	Thus, the ctest command executes the latest built executables.
      
          3. Simplification of the find_XXX.cmake = find_package(XXX) :
      
             3.1. findXmodule.cmake describes a new function standardizing the find_package() of
             	each module of eXlibris (Xfem, Octre, Xcut, ...) in the present organization.
              	(See examples in FindXfem.cmake, FindOctree.cmake, ...). Modules are searched:
          		- as a target if any,
          		- in the subdirectory ARCHOS or the LIBRARIES_INSTALL_PATH,
          		- a FATAL_ERROR appears if the module is NOTFOUND or void.
          		- includes are always known as DEVROOT is known.
          		- when FOUND, librairies are forced in the cache to ensure unicity.
          		  A message is displayed even if VERBOSE is OFF.
          	     	- when the library and includes are known, no more search is done
          		  (the cache variables are taken and displayed if VERBOSE is ON),
          		- mark_as_advanced() functions are removed so that libraries can be
          		  displayed in cmake GUIs.
      
             3.2. External librairies are searched in a new ways:
      
             	3.2.1. In the DEVROOT directory, a new file called ExternalLibrariesPaths.cmake
          	       describes the path of external librairies (ANN, CGAL, MPI, ...). All
          	       directory containing the libraries to find can be set() with the name
          	       <the library>_LIBRARY_PATH and <the library>_INCLUDE_PATH.
          	       Default paths can be set() in CMAKE_PREFIX_PATH for libraries and
          	       CMAKE_SYSTEM_PREFIX_PATH for MPI (See example in
          	       GeMUtil/ExternalLibrariesPaths_titan.cmake)
      
          	3.2.2. cmakeUtil/FindStandardLibrary.cmake describes a new function to find a
          	       library and its include directory (see example in FindITL.cmake or
          	       FindANN.cmake). A FATAL_ERROR appears if the library or includes are
          	       NOTFOUND.
      
          	3.2.3. cmakeUtil/FindNoHeaderLibrary.cmake describes a new function to find a
          	       library without includes (see example in FindSUPERLU.cmake). A FATAL_ERROR
          	       appears if the library is NOTFOUND.
      
          	3.2.4  For the sake of consistency FindAOMDInterfaceGeneral.cmake has been renamed
          	       in FindXAOMDInterfaceGeneral.cmake. Library variable is
          	       XAOMDInterfaceGeneral_LIBRARIES and includes are in
          	       XAOMDInterfaceGeneral_INCLUDE_DIR.
      
          	3.2.5  FindXInterfaces.cmake is now obsolete. We have to be more precise by using:
          	       - find_package(SolverInterfaces)
           	       - find_package(XAOMDInterfaceGeneral)
          	       - find_package(XoctreeInterface)
          	       - find_package(XsplitMeshInterface)
      
          4. Access of options in the main CMakeLists.txt: all options are gathered in the main
             CMakeLists.txt.
      
             4.1. New options are added to build the librairies, atomic tests and tests:
      
          	- Options BUILD_EXLIBRISTOOLS, BUILD_GEOM, BUILD_MESHMACHINE, BUILD_OCTREE,
             	  BUILD_PHYSICS, BUILD_TRELLIS, BUILD_XCRACK, BUILD_XCUT, BUILD_XEXT, BUILD_XFEM,
          	  BUILD_XTLS and BUILD_SOLVERBASE to build the modules.
      
                  - Options BUILD_INTERFACE_MUMPS, BUILD_INTERFACE_LAPACK, BUILD_INTERFACE_SUPERLU ,
              	  BUILD_INTERFACE_TAUCS, BUILD_INTERFACE_NONLINEARSOLVER, BUILD_DISTMESH,
          	  BUILD_LINEARALGEBRA, BUILD_SPLITMESH,  BUILD_XAOMDINTERFACEGENERAL
          	  BUILD_INTERFACE_MTL, BUILD_INTERFACE_PETSC_SEQUENTIEL, BUILD_INTERFACE_SPARSKIT,
          	  BUILD_INTERFACE_KSPPARALLEL, BUILD_INTERFACE_PETSC_PARALLEL,
          	  BUILD_INTERFACE_PASTIX to build the interface (sub-modules).
      
                  - Options BUILD_EXLIBRIS_TOOLS_TEST, BUILD_TRELLIS_TEST, BUILD_OCTREE_TEST,
             	  BUILD_SPLIT_TEST, BUILD_LINEARALGEBRA_TEST, BUILD_DISTMESH_TEST,
          	  BUILD_FASTMARCHING_TEST, BUILD_XTLS_TEST, BUILD_SOLVERBASE_TEST,
          	  BUILD_SUPERLU_TEST, BUILD_LAPACK_TEST,BUILD_NONLINEARSOLVER_TEST,
          	  BUILD_ANALYTICAL_TEST, BUILD_LINEARALGEBRA_TEST to build atomic tests.
      
            	- Options BUILD_GEOM_TEST, BUILD_PHYSICS_SEQ_TEST, BUILD_SOLVERINTERFACES_TEST,
            	  BUILD_XCRACK_TEST, BUILD_XCUT_TEST, BUILD_XEXT_TEST, BUILD_XFEM_PARA_TEST,
          	  BUILD_XFEM_SEQ_TEST, BUILD_XOCTREEINTERFACE_TEST, BUILD_XTLS_TEST,
          	  BUILD_XSPLITMESHINTERFACE_TEST to build tests of Xtest.
      
             4.2. Options are harmonized to use or not the librairies, even ever they are build or
             	found. Options names ENABLE_<library> has been renamed in USE_<library>  which
          	suggests that we will use the library or not:
      
             	- USE_ANN, USE_XCUT, USE_XEXT, USE_AOMD, USE_PHYSICS, USE_XREFMESH_WITH_SUB,
          	  USE_MULTICUT, USE_FASTMARCHING, USE_MTL, USE_ITL, USE_SUPERLU, USE_TAUCS,
          	  USE_PETSC_SEQUENTIE, USE_SPARSKIT, USE_NONLINEARSOLVER, USE_KSPPARALLEL,
          	  USE_PETSC_SEQUENTIEL, USE_MUMPS, USE_PARMETIS, USE_PTSCOTCH, USE_PASTIX,
          	  USE_MKL, USE_BOOST_SYS_MT
      
          5. Simplification of the project names: all project() functions have been remouved. The
             project() must been defined in the main CMakeLists.txt as all modules and tests belong
             to the same project(). This avoid loop in building because of the reset of the C++
             compiler (MPIC++ for eXlibris).
      418b9ec4
  13. 28 Jun, 2017 1 commit
    • Gilles MARCKMANN's avatar
      1.Simplify the genreation of doc (doxygen) : · dbdb85ac
      Gilles MARCKMANN authored
       - the process has been place in Util/doxygen_tools. The CMakeLists.txt contains
         the list of the directorires to scan for documentation, but you can add your
         own or other directories by defining variable SOURCES_DIR_FOR_DOXYGEN in the
         main CMakeLists.txt.
      
       - it doesn't need to use command : add_doxy("..."), clear_doc(), doxygen() ...
      
       - use "make doc" to genrate it
      
      2.Simplify the genreation of tags (for emacs, vi,...):
      
       - the process has been place in Util/tags_tools. The CMakeLists.txt contains the
         list of the directorires to scan for documentation, but you can add your own or
         other directories by defining variable SOURCES_DIR_FOR_TAGS.
      
       - it doesn't need to use command :  set_tags(...)
      
       - use "make tags" to genrate it
      
         => GeMUtil/CMakeLists_titan.txt has been modified to take it into account.
      
      3.Simplify Util/cmakeUtil/common_functions.cmake and devel_common_functions.cmake:
      
       - All usefull commands are moved in common_functions.cmake,
      
       - devel_common_functions.cmake is removed.
      
       - Old non-usefull functions are placed in Oldies/common_obsolete_functions.cmake
      
       - So commands "include(devel_common_functions)" have to be removed from the
         CMakeLists.txt.
      
      4.Simplify all CMakeLists.txt:
      
       - command "list(APPEND CMAKE_MODULE_PATH  ... ) are removed to be replace by
         an unique command in the main CMakeLists.txt.
      
       - command include(common_functions) are removed to be replace by an unique
         command in the main CMakeLists.txt.
      
       - command include(devel_common_functions) are removed (see above).
      
       => GeMUtil/CMakeLists_titan.txt has been modified to take it into account.
      
      5.Simplify all FindPackage() commands:
      
       - command find_devroot() are all removed : the DEVROOT variable is défined
         in the main CMakeLists.txt.
      
       - variable DISTROOT is no more usefull and has been removed. The directory
         ExternalLib or eXternalLib can be used in the DEVTOOT to define symbolic
         links, or BLASLIB, LAPACKLIB, ... can be defined as environment variables.
      dbdb85ac
  14. 16 May, 2017 2 commits
  15. 24 Mar, 2017 1 commit
    • Grégory LEGRAIN's avatar
      Set of commits to modernize the code to C++11 (Part 2) · 778262da
      Grégory LEGRAIN authored
      1/Modernize modernize-redundant-void-arg
      2/Modernize modernize-use-override
      3/Modernize modernize-use-default
      4/Modernize modernize-use-emplace
      
      Details :
      1/
      Find and remove redundant void argument lists :
      int f(void); ---> int f();
      C::C(void) {} ---> C::C() {}
      
      2/
      Use C++11’s override and remove virtual where applicable
      Override ensures that the function is virtual and is overriding a virtual function from the base class. The program is ill-formed (a compile-time error is generated) if this is not true
      
      3/
      Replaces default bodies of special member functions with = default;.
      The explicitly defaulted function declarations enable more opportunities in optimization, because the compiler might treat explicitly defaulted functions as trivial.
      
      struct A {
        A() {}
        ~A();
      };
      A::~A() {}
      
      // becomes
      
      struct A {
        A() = default;
        ~A();
      };
      A::~A() = default;
      
      4/
      Looks for cases when inserting new element into an STL container (std::vector, std::deque, std::list) but the element is constructed temporarily.
      Avoids the creation of temporaries.
      778262da
  16. 21 Mar, 2017 1 commit
    • Grégory LEGRAIN's avatar
      Set of commits to modernize the code to C++11. · 37189545
      Grégory LEGRAIN authored
          * use nullptr for more safety
          * fix deprecated headers
      
          Everything was done using clang-tidy.
          /usr/share/clang/run-clang-tidy.py -header-filter='.*' -checks='-*,modernize-use-nullptr' -fix
          /usr/share/clang/run-clang-tidy.py -header-filter='.*' -checks='-*,modernize-deprecated-headers' -fix
      37189545
  17. 12 Jul, 2016 1 commit
    • Alexis SALZMAN's avatar
      trellis: mTet::getTemplate method bugg fix · a8d0b53a
      Alexis SALZMAN authored
      From N.C and A.S. work.
      
      When using a modifyState(3,0... getTemplate was creating nodes adjacency
      with the first node. Then following call gives node via the
      theAdjacencies[0] array ...made of only one node ...It was a bug as it returns a
      false harvested node in out of memory place. Now this is using
      theAdjacencies[0] only if it have 4 nodesr. Otherwise it use edges or face
      intersection to get nodes.
      The condition theAdjacencies[0]->size()==4 is maybe to restrictive when
      considering refinement. To check.
      a8d0b53a
  18. 30 May, 2016 1 commit
    • Alexis SALZMAN's avatar
      all: switch from old structure to new structure and seq to mpi + code · bf91da1b
      Alexis SALZMAN authored
      This commit add mainly modification on CMAKE to accommodate switch from
      SVN to git(to be finished).
      It change also CMAKE stuff to pass in parallel with mpi.
      This are working with the general CMakeLists.txt commited in GeMUtil.
      
      Regarding code, Xinterface and Xfem have their future folder transformed
      in present.
      
      The new implementation are
      Xvalue
      ======
      Add // to xValueError to do error computation in test case
      xData
      ====
      Now xData take a mpi_comm as argument in readmesh to accommodate with
      presence of new xMesh constructor and read on or more files.
      xMesh
      =====
      Add a mpi_comm as argument in constructor to accommodate with
      the fact that now, xMesh hold it's partition manager.
      This one can be obtained by a get method. It is not expected that any
      partial work is done with this partition manager in xMesh. Please don't
      add any otherwise you would break the possibility of switching easily to
      another mesh database.
      xPhysSurByTaging
      ================
      made appropriate change for parallelism. Check successfully with some
      test case. To be finished.
      Mump interface
      =============
      Add new xDistVector usage.
      xDistIndex/xDistVector/xDofStateOfValue
      =======================================
      Bugg correction
      bf91da1b
  19. 27 May, 2016 3 commits