3. Enrichment of the model#

This is the operator MODI_MODELE_XFEM [U4.41.11], developed specially for analysis by X- FEM [R7.02.12] with the aim of modifying certain classical finite elements in order to transform them into enriched finite elements. The purpose of this operator is in particular to prepare the model for an X- FEM calculation in which the user would have introduced several cracks. The cracks may eventually cut into the same mesh or connect to each other. We use the routine XCONNO which concatenates the SDs X- FEM defined by crack, the principle being to have SDs defined on the model, for all the cracks. These concatenated SDs are then used to divide the elements into sub-elements (XTOPOI) and to determine the contact facets (XTOPOC).

For the large slippage approach with X- FEM, the changes made here concern the topology of the contact facets. More exactly, the content of the object MODELE//”. TOPOFAC .PI” (see [D4.10.02]) has been changed: it no longer stores the real coordinates of the intersection points, but the reference coordinates in the parent element. Two new objects are added at the same time: MODELE//”. TOPOFAC .GE” and MODELE//”. TOPOFAC .GM” which will store the real coordinates of the intersection points for the contact facets, respectively slave and master. We therefore duplicated the contact facets compared to implementation HPP. By convention, the slave facet is the one formed by intersection points attached to the side of the negative LSN (LSN <0 to the enriched nodes), while the master facet is formed by the intersection points attached to the side of the positive LSN (LSN >0 to the enriched nodes). It can be seen that the user can play with the status of the facets by changing the sign of level-set LSN in the command file. If the crack is not introduced by an analytical function but by surface cells, the change in the slave/master status is possible by changing the order of the nodes that make up these cells. This last operation can be expensive and therefore the introduction of a new keyword is possible to allow the user to easily choose the positive and negative sides, directly in the command file. For more details on calculating level-sets for both methods of introducing a crack, see chapter 2.2 of the X- FEM [R7.02.12] reference documentation.

Several SDs that are mentioned here are attached to MODELE and presented in detail in the manual [D4.06.02] « Ligrel Data Structures and Model ».

Here is an example of calling the X- FEM operator in the command file:

MODELEK = MODI_MODELE_XFEM (MODELE_IN = MODELEIN,

FISSURE =( FISS1, FISS2),

CONTACT =”P1P1”,

INFO =1,);

The description of the Fortran routines for operator MODI_MODELE_XFEM is given below and the call tree is shown in Figure 2.

OP0113 — is the basic operator routine. Here we create three SDs: MODELE//”. XFEM_CONT “(stores information about whether or not the contact exists), MODELE//”. NFIS “(stores the number of cracks in the model) and MODELE//”. FISS “(stores crack names).

XTYELE — routine that determines the type of element X- FEM, according to the type of enrichment and according to the type of contact.

XTYHEA — routine that counts the number of active Heaviside ddls in the mesh, in the case of Multi-Heaviside.

XMOLIG — routine for modifying LIGREL X- FEM, depending on the type of enrichment.

XCODEC — routine to launch the calculation of sub-tetrahedron division, contact facets and verification of conditioning criteria.

XCONNO — routine that concatenates node fields to move on to multi-cracking. The new fields are attached to the model, they are of the elno field type.

XFISNO — routine that creates sd MODELE “//. FISSNO “and MODELE “//. HEAVNO “. These are useful ELNO fields for items that see multiple cracks. The first SD returns the crack number seen locally by the element associated with the node’s Heaviside ddl number. The second performs the opposite operation and returns the Heaviside ddl number to be associated with the local crack number at the node.

XTOPOI — launch of the calculation for the division of cracked elements into sub-tetrahedra.

TE0514 — elementary calculation of the partitions of the cracked elements.

We go out with the SD:

MODELE//”TOPOSE. PIN “, MODELE//” TOPOSE. CNS “, MODELE//” TOPOSE. HEA “, MODELE//” TOPOSE. LON “and MODELE//”TOPOSE. CRI “. When the mesh sees several cracks, it is cut sequentially by each of the cracks. For this purpose, the various operations of this TE are encapsulated in a loop over the cracks.

XDECOU — routine called since TE0514 to find the intersection points between the edges and the crack plane. Note that routine XDECQU is called in the quadratic case.

XDECOV - routine called since TE0514 to cut a tetrahedron into sub-tetrahedra. Note that routine XDECQV is called in the quadratic case.

XTOPOC — launch of the calculation for the sub-cutting of the contact surface and the creation of SD MODELE//”. TOPOFAC .PI”, MODELE//”. TOPOFAC .AI”, MODELE//”. TOPOFAC .CF”, MODELE//”. TOPOFAC .LO”, MODELE//”. TOPOFAC .BA” and MODELE//”. TOPOFAC .OE” Note that SD MODELE//”. TOPOFAC .PI” contains the coordinates of the intersection points in the parent element: it is very useful for retrieving the value of the shape functions of the intersection points. The SD MODELE//”. TOPOFAC .OE” analog contains the coordinates of the intersection points in the global coordinate system. It is useful for feeding TE0519 during geometric refresh. In the case of multi-cracked meshes, all these SDs are duplicated as many times as the element sees cracks. The SD MODELE//”. TOPOFAC .HE” is then added to store, per contact facet, the value of the Heaviside functions for each crack on either side of the facet.

TE0510 — elementary calculation for the topology of contact facets. Note that facets are also useful in the case of non-contact elements, in order to impose pressure forces on the lips of the crack. In the case of elements containing a junction between cracks, certain facets should be re-cut on either side of the junction. This work has not been implemented and facets are not taken into account.

XCFACE — routine called by TE0510 to find the intersection points between the edges and the plane of the crack and determine the cut of the facets. Note that routine XCFAQ2 is called in the quadratic case.

XCFACF — routine to find the intersection points between the crack bottom and the faces for the elements at the bottom of the crack.

XCFACJ — routine to find the intersection points between the crack junction and the faces for multi-cracked elements.

XAINT2 — routine that changes SD MODELE //” TOPOFAC .AI” in the case of multi-cracked meshes. It must be ensured that the facets connected to the cut edge have the same Heaviside function values. Otherwise the edge is eliminated to avoid any LBB conflict.

XSTAN2 — routine that changes SD MODELE: //”. STNO “in order to cancel HEAVISIDE degrees of freedom for matrix conditioning reasons and to avoid zero pivots in the stiffness matrix.

XCRVOL — routine called by XSTAN2 helping to calculate the volume criterion in connection with the conditioning of the X- FEM elements.

XORIPE — routine for orienting the skin sub-elements of the X- FEM elements (in 2D skin elements are edge segments).

_images/Object_31.png

Figure 2. The operator call tree MODI_MODELE_XFEM