4. Contact assignment#

At the time of writing this document, the assignment of the contact on the lips of the X-FEM cracks is done through the DEFI_CONTACT operator, under the keyword ZONE.

The most important thing for the X- FEM implementation is the fact that the SDs dedicated to contact, for any analysis with Code_Aster, have been unified as of version 9.0.22 and that this is where they are enriched for the large slippage approach with X- FEM.

During the 9.1.6 release this operator was enriched with the routines that concern algorithm LBB: XLAGSP, XLAGSC, XSELLA, XRELL1, etc. (see [R7.02.12] for more details on the LBB algorithm), routines that were previously found in the MODI_MODELE_XFEM operator.

Figure 3 shows the current call tree (also taking into account the « large slippage » overload). Indeed, this is where the first routine dedicated to this new approach appears — XMACON. We then create SD CHAR//”. CONTACT. MAESCL “containing a certain amount of information relating to X- FEM contact meshes (see [D4.06.14] for the description of this SD). We treat the contact by the continuous method and we follow exactly the same approach as that of routine MMACON for the classical case, except that in the SD mentioned above we have fewer positions occupied. Also in this routine, XMACON, we size the object CHAR//”. CONTACT. TABFIN “which will be filled in later, during the pairing performed by the XAPPAR routine (see operator STAT_NON_LINE). Finally, two new routines, XNEUVI and XBARVI, allow the creation of SDs FISSi//”. CNCTE “. Each of these SDs stores information useful, on the groups of vital edges connected to each other, to improve the integration of contact contributions (see [R5.03.53]). More details on all SDs relating to contact with X- FEM are also provided in the description of the Fortran routines (see CALICO below).

Below is an example of entering the contact into the command file for an X- FEM analysis using the large slippage approach. Attention, the command catalog (defi_contact.capy) has been enriched to allow the definition of the maximum number of iterations on the geometric loop (ITER_GEOM_MAXI) as well as the tolerance level for the projection of contact points on the master surface (TOLE_PROJ_EXT), which has the same function as in the classical case.

CTXFEM = DEFI_CONTACT (MODELE = MODELEK,

FORMULATION =” XFEM “,

FROTTEMENT =” COULOMB “,

ITER_FROT_MAXI =10,

ITER_CONT_MAXI =10,

ITER_GEOM_MAXI =10,

ZONE =( _F (INTEGRATION =” NOEUD “,

COULOMB =0.5,

COEF_REGU_FROT =100,

COEF_REGU_CONT =100. ,

TOLE_PROJ_EXT =0.0,

CONTACT_INIT =” OUI “,

FISS_MAIT = FISS1,

ALGO_LAGR =” VERSION2 “,),

_F (INTEGRATION =” NOEUD “,

COULOMB =0.5,

COEF_REGU_FROT =100,

COEF_REGU_CONT =100. ,

TOLE_PROJ_EXT =0.0,

CONTACT_INIT =” OUI “,

FISS_MAIT = FISS2,

ALGO_LAGR =” VERSION2 “,),),)

Fortran routines description:

OP0030 — the main routine for the DEFI_CONTACT operator. We’re calling CALICO from here.

CALICO — the routine that initiates the creation and filling of contact SDs for the continuous method. It is particularly recommended to read the comments at the beginning of this routine because here is a detailed description of all the objects (the official documentation [D4.06.14] is not yet updated).

SYMECO - routine for determining the number of contact zones for symmetric pairing and filling the associated SD CHAR//”. CONTACT. SYMECO “. This SD will be common for all formulations (continuous, discrete, X- FEM).

CARACO — hat routine to retrieve contact characteristics introduced by the user. Here we create SD CHAR//”. CONTACT. FORMCO “and CHAR//”. CONTACT. METHCO “, the last one also being filled in here.

CAZOCO — routine for reading contact characteristics for each zone. Here we fill in CHAR//”. CONTACT. FORMCO “.

CMFXSD — hat routine for launching the creation of contact definition SDs for the three formulations (continuous, discreet, X- FEM).

CARACX — creation of contact definition SDs for the formulation X- FEM.

CAZOCX — specialized routine for formulation X- FEM (in the same way exists CAZOCD for discrete formulation and CAZOCC for continuous formulation). Here, for the case X- FEM, the SD CHAR//”are filled in. CONTACT. ECPDON “, CHAR//”. CONTACT. CARACF “and, CHAR//”. CONTACT. TOLECO “having the same structure as in the classical case, as well as, CHAR//”. CONTACT. MODELX “which stores the name of the X- FEM model used by the contact. We also add the information about the existence of the sliding contact in CHAR//”. CONTACT. METHCO “.

LIMACO — routine for reading contact meshes and creating SDs that concern them. Here we are only interested in routine calls for continuous formulation in the case X- FEM.

XMACON — new routine (similar to MMACON for the classical case) for reading the X- FEM contact meshes and the creation of SD CHAR//”. CONTACT. MAESCL “and CHAR//”. CONTACT. TABFIN “. The first one is filled in here while the second one is just sized.

XMELIN - new routine called by XMACON (similar to MMELIN in the continuous method) that returns the number of integration points based on the type of contact element and the contact integration schema.

LIMACX — routine for reading cracks in contact. Here two new objects specific to the X- FEM are created and filled in: CHAR//”. CONTACT. XFIMAI “(contains, for each contact zone, the name of the SD FISS_XFEM) and CHAR//”. CONTACT. NDIMCO “(the dimension of the problem).

XCONTA — routine for preparing contact data, specifically concerning the linear relationships to be imposed to satisfy condition LBB. Here we create two SDs: CHAR//”. CONTACT. XNRELL “(stores the names of the four objects needed for linear relationships created by XRELL1 or XRELL2) and CHAR//”. CONTACT. XNBASC “(stores the name of the nodal field for the covariant base).

XDEFCO — hat routine for the launch of the choice of space for contact Lagrangians.

XLAGSP — preparation of work objects for the implementation of the LBB algorithm. We fill in the covariant base (only for the contact points corresponding to the completely cut elements) SD FISSi//”. BASCO “.

XLAGSC — effective launch routine for selecting nodes and writing equality and linear relationships for the LBB algorithm.

XSELLA — selection of nodes carrying ddl contacts that will be involved in relationships for LBB.

XRELL1 — creation of the lists of relationships to be imposed in order to comply with condition LBB in the case of applying the first algorithm: FISSi//”. LISEQ “, FISSi//”. LISRL “and FISSi//”. LISCO “.

XRELL2 — does the same thing as XRELL1 but in the case of applying the second algorithm. Recall that for the formulation at vertex nodes, it is preferable to use this second algorithm.

XNEUVI — called by XRELL2, creates SDs FISSi//”for each crack. CONNECTANT “and FISSi//”. CONNECTES “. The first SD stores the nodes with a score strictly greater than 1 (the score corresponds to the number of vital edges connected to the node at the end of the algorithm), each of these nodes then defining a group of vital edges, where the number of vital edges is equal to the score of the “vital” node. The second SD stores the nodes of each group which, paired with their vital node, form the pairs of nodes that define the edges of the group. These 2 SDs are temporary. They are used and then destroyed in XBVARVI.

XLAG2C — routine allowing to write SD FISSi//”for each crack. LISEQ_LAGR “corresponding to SD FISSi//”. CONTACT. LISEQ “. In the case of multi-cracked meshes, this SD stores the pairs of Lagrangian numbers that must be associated when imposing equality relationships.

XBARVI — called by XCONTA, this is where you fill in vital edges and vital edge groups. We fill in the 5th component of SD MODELE//”. TOPOFAC .AI”, which gives vital or non-vital information about the intersected edge, using the list of nodes forming the vital edges. And for each crack, we create the SD with 4 components FISSi//”. CNCTE “, which provides information on vital edge groups. For each edge belonging to a group, it stores its group number, its edge number in the group, its mesh number, its local edge number in the mesh. To do this we use SD FISSi//”. CONNECTANT “and FISSi//”. CONNECTES, which is destroyed at the end of the routine.

_images/Object_32.png

Figure 3. The DEFI_CONTACT operator call tree for the keyword FORMULATION =” XFEM “