+ /*!
+ * \brief Double nodes on shared faces between groups of volumes and create flat elements on demand.
+ * Flat elements are mainly used by some types of mechanic calculations.
+ *
+ * The list of groups must describe a partition of the mesh volumes.
+ * The nodes of the internal faces at the boundaries of the groups are doubled.
+ * In option, the internal faces are replaced by flat elements.
+ * Triangles are transformed in prisms, and quadrangles in hexahedrons.
+ * \param theDomains - list of groups of volumes
+ * \param createJointElems - if TRUE, create the elements
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ */
+ boolean DoubleNodesOnGroupBoundaries( in ListOfGroups theDomains,
+ in boolean createJointElems )
+ raises (SALOME::SALOME_Exception);
+
+ /*!
+ * \brief Double nodes on some external faces and create flat elements.
+ * Flat elements are mainly used by some types of mechanic calculations.
+ *
+ * Each group of the list must be constituted of faces.
+ * Triangles are transformed in prisms, and quadrangles in hexahedrons.
+ * \param theGroupsOfFaces - list of groups of faces
+ * \return TRUE if operation has been completed successfully, FALSE otherwise
+ */
+ boolean CreateFlatElementsOnFacesGroups( in ListOfGroups theGroupsOfFaces );
+
+ /*!
+ * \brief identify all the elements around a geom shape, get the faces delimiting the hole
+ * Build groups of volume to remove, groups of faces to replace on the skin of the object,
+ * groups of faces to remove insidethe object, (idem edges).
+ * Build ordered list of nodes at the border of each group of faces to replace (to be used to build a geom subshape)
+ */
+ void CreateHoleSkin(in double radius,
+ in GEOM::GEOM_Object theShape,
+ in string groupName,
+ in double_array theNodesCoords,
+ out array_of_long_array GroupsOfNodes) raises (SALOME::SALOME_Exception);