4. B modeling: X- FEM 3D#

The problem under consideration is the same as that studied in Part II. However, unlike the previous part where the crack was meshed, this part is considered to be a healthy mesh. The crack is therefore not meshed. To do this, we use the X- FEM method.

4.1. Workflow of the TP#

4.1.1. Refinement of the mesh#

The objective of this first step is to use HOMARD to obtain a refined mesh from a healthy, relatively coarse mesh.

You can create the coarse mesh with Salomé (¼ of the structure is modeled) or use the one provided:

Forma07b.mmed

In order to achieve mesh refinement, it is necessary to use a python loop. The command file for this part is therefore not graphically editable with AsterStudy. We will therefore use the text mode of AsterStudy for the first step of the calculation.

Start Salome-Meca then choose AsterStudy. Go to preferences (File → Preferences → AsterStudy) and uncheck External editor. Create a new stage for your calculation (New Stage) that you can rename (Refinement) if you want. Left-click on this new step and click Edit. A window will appear on the left and you can edit your command file.

First, we will have to calculate the number of iterations necessary to obtain the refined mesh. To do this, you must first import the math library: import math Complete the following information: * Mesh size in the crack insertion zone h0 * HC target mesh size (a/20.) Calculating the number of iterations to reach hc: * n= (ln (h0) +ln (hc)) /ln (2.) * nb_raff=E (n) (integer part of n: int (n)) * nb_iter=nb_raff+1 Calculation of the final size of the elements close to the crack front: * h=h0/2^nb_raff

Initialize all the vectors that will be used in the refinement loop: * MA = [None]* (nb_iter+1) (Mesh) * CHERR = [None]*nb_iter (Error) * FISS = [None]*nb_iter (Crack)

Read the mesh in the format MED (LIRE_MAILLAGE): MA [0] = LIRE_MAILLAGE (UNITE =20, FORMAT =” MED “); Choose the forma07b.mmed mesh that will need to be added in the Data Files tab under unit 20.

Complete the refinement loop: for i_raff in range (nb_raff): * Definition of the crack FISS [i_raff] = DEFI_FISS_XFEM (MAILLAGE =MA [i_raff], TYPE_DISCONTINUITE =” FISSURE “, DEFI_FISS =_F (FORM_FISS =” ELLIPSE “, DEMI_GRAND_AXE =a, DEMI_PETIT_AXE =a, CENTRE =( 0,0,0,), VECT_X =( 1.,0., 0.,), VECT_Y =( 0.,1.,0.,),),); * Calculation of the refinement criterion CHERR [i_raff] = RAFF_XFEM (FISSURE = FISS [i_raff], TYPE =” ZONE “, RAYON =r_raff) with r_raff=5*h * Define the mesh type n+1 –> to say that MAILLAGE_NP1 is a “mesh” type MA [i_raff+1] =CO (”MA_ %d”% (i_raff+1)) * Adaptation of the mesh MACR_ADAP_MAIL (ADAPTATION = “RAFFINEMENT”, CHAM_GD = CHERR [i_raff], CRIT_RAFF_ABS = 0.5, DIAM_MIN = hc, MAILLAGE_N = MA [i_raff], MAILLAGE_NP1 = MA [i_raff+1],);

To visualize the new mesh, print it in MED format: IMPR_RESU (FORMAT =” MED “, UNITE =80, RESU =_F (MAILLAGE =MA [nb_raff])); Choose the forma07b_raff.mmed mesh that will need to be added in the Data Files tab under unit 80.

If you want to skip this step, you can also use the refined mesh provided directly:

Forma07b.41

In the meshes provided (visualize them in Salome), the names of the mesh groups are as follows:

  • group of nodes: D,

  • face groups: FACE_AV, FACE_LAT, FACE_SUP, FACE_INF,

  • volume group: CUBE.

_images/100000000000038E0000035EB10402CB656459A8.png

Figure 4.1.1-a : Groups defined on the provided mesh

4.1.2. Creating the command file without post-processing the break#

4.1.2.1. Reading the refined healthy mesh and defining the unenriched model#

4.1.2.2. Definition of the crack and the elements X- FEM#

In the Fracture and Fatigue tab**: Definition of the crack** DEFI_FISS_XFEM **. Preferably use the crack catalog (FORM_FISS =” ELLIPSE “)

In the Fracture and Fatigue tab: Modifying the model to take into account the elements X- FEM (MODI_MODELE_XFEM)

4.1.2.3. Definition of the material, the conditions and the resolution of the mechanical problem#

Material definition and assignment: Define a material ( DEFI_MATERIAU **) **) and Assign a material ( AFFE_MATERIAU **** )) **

Definition of limit conditions and loads on the enriched model. Assign mechanical load **** (**** AFFE_CHAR_MECA **** ): * Symmetry on the symmetry plane “FACE_LAT” (Enforce DOF **); * Symmetry on the symmetry plane “FACE_AV” (**Enforce DOF **); * Blocking rigid modes (**Enforce DOF ** on “D”) * Applying traction to “FACE_SUP” and “FACE_INF” (**** PRES_REP **) **)

Solving the elastic problem: Static mechanical analysis **** (**** MECA_STATIQUE **) with the enriched model

4.1.2.4. Post-processing of movements and constraints with X- FEM and visualization with Paravis#

In order to separate calculation and post-processing, you can add a new stage to your case study.

In the Fracture and Fatigue tab: Creating a visualization mesh (POST_MAIL_XFEM)

In the Finite Element tab: Creating a model for visualization (AFFE_MODELE) on the mesh created for visualization

In the Fracture and Fatigue tab: Creating a results field on the X- FEM visualization mesh (POST_CHAM_XFEM)

For visualization with Paravis: * Calculation of the extrapolated constraint field to the nodes (CALC_CHAMP, option “CONTRAINTE” with the field “SIGM_NOEU”) * Calculation of the equivalent stress field (CALC_CHAMP, option “CRITERES” with the field “SIEQ_NOEU”) To do this, we will enrich the concept resulting from POST_CHAM_XFEM ** using the same concept name.

Printing results in MED format: Results output (IMPR_RESU).

4.1.3. Addition of post-treatment steps in fracture mechanics#

For post-processing the break you can also add a new stage to your current case study.

For all the following steps, you will have to go to the Fracture and Fatigue tab.

  1. Calculating G with CALC_G_ XFEM

    Calculate the energy restoration rate G and the stress intensity factors with CALC_G_XFEM (OPTION =” CALC_K_G “) and the Legendre smoothing of degree 5.

Use the result of the static calculation not to be confused with the result created for visualization with POST_CHAM_XFEM (RESULTAT).

Complete the information on field THETA:

  • the bottom of the crack FISSURE

  • the radii of the crown of the theta field (R_INF, R_SUP) (,), to be defined according to the mesh used.

    Print the values from the G table (IMPR_TABLE in the Output tab).

  1. Calculating K and G with POST_K1_K2_K3

    Calculate K and G with POST_K1_K2_K3:

  • use the result of MECA_STATIQUE (RESULTAT)

  • fill in the crack

  • fill in the ABSC_CURV_MAXI parameter

  • print the results in a table.

    Compare the results to the analytical solution. Compare the times between the 2 orders.

Try smoothing LAGRANGE. What do we observe?

In order to improve the results, try the uniform distribution of \(n\) points along the crack bottom (CALC_G_XFEM/THETA/NB_POINT_FOND) with various values of \(n\).

Other ways: refinement/enrichment on several layers.

4.2. Tested sizes and results#

Identification

Reference

% tolerance

\({K}_{I}\) of POST_K1_K2_K3

1,5957 106

1%