Compared to a FEM code, there are some major aspects that need to be modified in order to develop an X-FEM code. First of all, the element subdivision has to be implemented. This task can rely on an explicit geometrical description of the interface but it is greatly improved by using a Level Set description. Then according to the integration method presented before, the quadrature procedure has to be adapted to handle the integration of the various enrichment functions and/or the solid material part of the element. Depending on the considered type of discontinuity, the enrichment functions have to be implemented. Finally, the code should be able to deal with a variable number of degrees of freedom per node (that should ideally be dynamic) and an adaptive integration rule per element. The post processing tools (i.e. visualization tools) need also to be extended to deal with results that may hold inner element discontinuities. All these steps are detailed in the following.
4.2.1 Interface description and element subdivision
At the dawn of the extended finite element method, the interfaces were modeled explicitly by polygons, polyhedrons and polylines for cracks. So, the slicing and the subdivision of the ele- ments was carried out in the physical space (x, y, z) and each subcell mapped from this space to the reference space. While this ’inverse’ mapping is linear for triangular/tetrahedral linear element and quadrangle/hexahedron with parallel edge/face it turns out that, in the general case, a set of a non linear equations has to be solved. With high order shape functions, this mapping can become time consuming and also brings some accuracy difficulties.
Rapidly, researchers have adapted the representation of interfaces with the Level Set Method within the X-FEM. The main reasons are that the Level Set description facilitates several prob- lems. The first advantage of the Level Set over an explicit representation of an interface is to simplify the search of the intersection of this interface with element mesh. While an explicit geometrical representation would need a quadtree/octree tool to efficiently detect the set of
’probably cut element’, the Level Set method gives a convenient way to detect these elements.
Figure 4.12: Representation of the Level Set describing a circular interface
When dealing with one Level Set as in Figure 4.12, the classification of elements according to their nodal Level Set values can be carried out directly and the selection of intersected element is straightforward. It consists in the set of elements that support both negative and positive Level Set nodal values. On these elements, each edge that possesses negative (or zero) and positive values are intersected by the iso-zero Level Set surface and they provide the intersection points C1 and C2 (see Fig. 4.13 (a)). Given these points and the element nodes, two domains are
obtained on which the numerical integration should be carried out. According to the Level Set sign or identifier, material properties are assigned and enriched shape functions can be defined. While this procedure sounds to be very easy, it is in practice more complex as we have to deal with different patterns of element subdivision (10 different patterns for a triangular element). Moreover, this subdivision is dependent of the configuration of the interface inside the element (i.e. element numbering) and one can imagine that the task is also more complex when dealing with 3D elements. Furthermore, to prescribe Dirichlet or Neumann boundary conditions on the interface, disposing of valid finite element mesh of the iso-zero Level Set is helpful. Hence, one should pay attention to create only unique entities, consistent with inter-element relations. For instance, in Figure 4.13 (a), the points C1and C2 have to be unique and are shared with adjacent elements. When the model has more than one Level Set, the detection of cut elements is more complex. Each Level Set nodal values has to be stored and the mesh slicing should be processed recursively.
4.2.2 Integration
In the case of material-void interfaces, elements are of only three types: solid ones, void ones and intersected ones.
The first type of elements are such that all the nodes lie fully inside the void. These elements (white elements in Fig. 4.14 (a)) present negative nodal Level Set values for all nodes, have no
Boundary Level Set Ls2 Ls1 C1 3 2 1 C2 Ls3
(a) Representation of the Level Set inside an element
(b) Representation of the model with cut and filled elements only
Figure 4.13: Geometry description and sliced mesh
contribution and they are consequently removed from the problem (their DOF are not assembled in the structural matrices).
The filled elements (dark gray ones in Fig. 4.14(a)) have all their nodes lying in the solid domain. They are treated as classical FEM elements and do not need special attention.
The partially filled elements (light gray ones in Fig. 4.14(a)) crossed by the interface have a mix of void and solid nodes. They require an X-FEM integration procedure of the elementary structural matrices.
In the case of cracks or bi-material interfaces, the surrounding band of elements sharing a node with the intersected elements requires also a special processing since they may support extended degrees of freedom and enriched shape functions. Depending on the character of the enrichment shape functions, the Level Set sign may not be sufficient to classify the elements and detect which element should be enriched. In this case, an element is enriched if one of its nodal shape function support is cut by the discontinuity. This remark holds for blending elements as well. From the sub-division obtained by the mesh slicing, two integration domains (for one single Level Set) conforming to the discontinuity are obtained and the Gauss points are placed within these domains according to the quadrature rules. Inside OOFELIE, different strategies have been implemented to create the integration domains. For instance, when cutting a quadrangular element, one can choose three strategies which consist in:
- An initial subdivision of the quadrangle into two triangles, all quadrangles created are then divided again into triangles;
- No initial subdivision of quadrangles but all quadrangles or pentagons are divided into four or five triangles after inserting of a new point at barycenter;
- No initial subdivision of quadrangles but all quadrangles or pentagons are divided into triangles according to a criterion of best geometrical quality.
(a) Representation of the different ele- ment type
(b) Representation of the model with the sub-triangles
Figure 4.14: Cut mesh and sub-triangles for integration
Similar rules exist for three dimensional problems where we can choose to have a fast slicing strategy or to select the best sub-division according to geometrical criteria.
After the element subdivision, the following mesh of Figure 4.14 (b) is obtained. One has to notice that the sub-triangles are only a background mesh used for the integration and that the size of the problem is not augmented regarding to a classical finite element model. The structural matrices of these elements are computed with the procedure detailed before. However, to obtain an implementation that is very close to a classical FEM implementation, the sub element mapping and the second Jacobian J2 is invisible for the user. First, the subelement obtained from the
mesh clipping are stored using a hierarchical father-children relation. The father being the original finite element and each child element being a sub-domain of integration characterized by a Jacobian (J2) and a set of material properties associated to its Level Set identifier. Then, given
these relations, the children can provide the set of Gauss point positions and the related weights (wj∗)= wjJ
2) in order to proceed to the numerical integration transparently as a classical FEM:
K= ngp X j B(ξj, ηj)TH(ξj, ηj)B(ξj, ηj)wj∗J1(ξj, ηj) 4.2.3 Visualization
As most processing tools are not able to deal with inner element discontinuities, we have extended the visualization tools of OOFELIE to handle X-FEM elements. For instance, with material- void elements, one obtains nodal values for the elements that are present in the stiffness matrix. However, as the cut elements support phantom nodes (i.e. nodes lying in the void part), these nodes also hold a nodal displacement. The iso-zero Level Set boundary value is obtained from a shape function interpolation based on the nodal values (see Fig. 4.15).
(a) Representation of the displacements for triangular X-FEM elements
(b) Representation of the displacements for quadrangular X-FEM elements
Figure 4.15: Representation of the displacements
4.2.4 Capabilities of the present implementation in OOFELIE
Actually, we have introduced 2D and 3D elements of different types (triangle, quadrangle, tetra- hedron, pyramid, hexahedron and prism) with several approximation orders (up to third degree). These extended finite elements are able to treat both material-void interfaces and bi-material interfaces. Beside these ’classical FEM elements’, axisymmetric elements have been introduced. As mentioned before, the choice of using the extended finite element method for shape opti- mization has been motivated by the ability of the method to work with a fixed mesh during structural shape evolution. It is preferable that the computational cost added by the mesh slic- ing and element integration should be lower than the computational effort involved by resorting to a classical shape optimization relying on mesh adaptation and remeshing. Therefore, in our development, a lot of attention has been devoted to obtain a computer code that could, reliably and efficiently, cut the mesh. As explained later in the optimization section, the sensitivity com- putation and the shape evolution will call for numerous cuts of the mesh. Hence, ideally, the penalty of managing non-conforming FE mesh should be less time consuming than a complete remeshing of the model.