Você está na página 1de 42

The eXtended Finite Element Method

Code_Aster, Salome-Meca course material


GNU FDL licence (http://www.gnu.org/copyleft/fdl.html)

Outline
1. Motivation
2. Theoretical aspects
Level Sets Method
X-FEM enrichments

3. Application to Code_Aster
Crack definition (Level Sets)
Enriched Finite Elements (X-FEM)
Post-processing in fracture mechanics
Visualisation

4. Advanced tools
Mesh refinement
Crack propagation
2 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Motivation
Goals
Study of cracked structures without explicitly meshing crack
Automatic crack propagation on a single mesh

Finite Element Method (FEM)


Crack is explicitly meshed
A long time (human intervention) is needed to mesh complex
structures
Re-meshing is required if changing the crack geometry
(parametric study) or position (propagation)

eXtended Finite Element Method (X-FEM)


Simple mesh (does not respect the crack geometry)
Unique mesh for entire propagation process
Simple extension of FEM (relatively suitable for
implementation in a EF software)
3 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Outline
2. Theoretical aspects
Level Sets Method
X-FEM enrichments

4 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Representation of crack by Level sets


Main idea: interface = iso-zero of a distance function
In mechanics: used for modelling interfaces between materials,
edges, voids, cracks

LS > 0
LS = 0
LS < 0

Iso-values of LS for a spherical


interface
5 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Representation of crack by Level sets


2 level sets
are needed

LSN(x)

LST(x)

Crack
plane
(LSN = 0)
Crack
(LSN = 0 LST < 0)

Iso-values of LST

Iso-zero of LSN

6 - Code_Aster and Salome-Meca course material

GNU FDL Licence

X-FEM enrichment
X-FEM = Two enrichments
Enrichment with a Heaviside function to represent a discontinuous field (displacement
jump) across the interface
NB : The actual formulation is more complex but not detailed here for the sake of simplicity

Enrichment with asymptotic functions near the crack tip

Classical part
(continuous)

Asymptotic
enrichment
(singular)

Heaviside
enrichment
(discontinuous)

1,4
u(x) = ai Ni (x) + bi Ni (x) H ( x ) + c1,4
i Ni ( x )B ( r , )

Finite elements enriched with


Heaviside function
Finite elements enriched with
asymptotic functions (~r)

7 - Code_Aster and Salome-Meca course material

B = r sin , r cos , r sin sin , r cos sin


2
2
2
2

lsn
(signed distance functions)
lst

2
2
1
where r = lsn + lst , = tan

GNU FDL Licence

Outline
3. Application to Code_Aster
Crack definition (Level Sets)
Enriched Finite Element (X-FEM)
Post-processing in fracture mechanics
Visualisation

8 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Crack Definition (Level sets)


sane mesh

Definition of a crack (or an interface) with the


command DEFI_FISS_XFEM
Choice of the mesh
Choice of a crack or a interface
Definition of the crack or the interface with level sets
Definition of the enrichment zone (optional)
Definition of the type of enrichment (optional)

Mesh

Crack definition
(level sets)

Finite Element
Enrichment

Computation
Resolution

Post-processing
SIF,
propagation

Visualisation

9 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Crack Definition (Level sets)


sane mesh

Mesh

Choice of a mesh
FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,

Crack definition
(level sets)

Finite Element
Enrichment

The sane mesh is provided via the keyword MAILLAGE (mandatory)


Level sets will be computed at all the nodes of this mesh

Computation
Resolution

Post-processing
SIF,
propagation

Visualisation

10 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Crack Definition (Level sets)


sane mesh

Mesh

Choice of a crack (fissure in French) or an interface


Crack definition
(level sets)

FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,
TYPE_DISCONTINUITE = / 'FISSURE',
/ 'INTERFACE'
)

A crack

An interface

[DEFAULT]
Finite Element
Enrichment

Computation
Resolution

Post-processing
SIF,
propagation

Visualisation

11 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Crack Definition (Level sets)


sane mesh

Mesh

Choice of a crack (fissure in French) or an interface


Crack definition
(level sets)

FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,
TYPE_DISCONTINUITE = / 'FISSURE',
/ 'INTERFACE'

Finite Element
Enrichment

DEFI_FISS=_F()
)

Level sets defined under the keyword DEFI_FISS

Computation
Resolution

4 available methods:
Analytical functions
Pre-defined geometries
(only this method is
Projection onto group of elements
employed in this workshop)
Lecture of pre-computed LSN and LST fields

Post-processing
SIF,
propagation

Visualisation

12 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Crack Definition (Level sets)


sane mesh

Mesh

Method 1: analytical functions


Crack definition
(level sets)

LSN=FORMULE(NOM_PARA=('X','Y','Z'),VALE='Z-H')
LST=FORMULE(NOM_PARA=('X','Y','Z'),VALE=Y-a')

Finite Element
Enrichment

FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,
DEFI_FISS=_F( FONC_LN=LSN,
FONC_LT=LST,),

z
H

)
a

Rapidity
Formula of LSN and LST not available for
complex crack geometries
Formula of LSN and LST are available only for very simple crack
geometries
13 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Computation
Resolution

Post-processing
SIF,
propagation

Visualisation

Crack Definition (Level sets)


sane mesh

Mesh

Method 2: pre-defined geometries


Crack definition
(level sets)

FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,
DEFI_FISS=_F(

FORM_FISS='ELLIPSE',
DEMI-GRAND_AXE = 0.4,

Half major axis


Half minor axis

Low risk of user error


Rapidity

DEMI-PETIT_AXE = 0.2,
CENTRE = (0.5, 0.5, 0.5),
VECT_X = (0. , 1. , 0.2 ),
VECT_Y = (-1., 0. , 0.4 ),
))

Automatic crack front


orientation

Computation
Resolution

Post-processing
SIF,
propagation

This method is highly recommended


If a crack geometry is not available in the catalogue, propose a new
development to the Code_Aster team

14 - Code_Aster and Salome-Meca course material

Finite Element
Enrichment

GNU FDL Licence

Visualisation

Crack Definition (Level sets)


sane mesh

Mesh

Method 2: pre-defined geometries


Crack definition
(level sets)

FORM_FISS = SIMP (
# type of cracks :
3d : "ELLIPSE","CYLINDRE","DEMI_PLAN" (half-plane)

Finite Element
Enrichment

Computation
Resolution

Post-processing
SIF,
propagation

2d : "DEMI_DROITE ", "SEGMENT"


Visualisation

15 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Crack Definition (Level sets)


sane mesh

Mesh

Method 3: projection onto groups of elements


Crack definition
(level sets)

FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,
DEFI_FISS=_F( GROUP_MA_FISS=MA_FISS,
GROUP_MA_FOND=MA_FOND),

Finite Element
Enrichment

)
Computation
Resolution
z

Groups of 2D elements : MA_FISS


H

Capability of building complex cracks

Time consuming

Visualisation

Groups of 1D elements : MA_FOND

16 - Code_Aster and Salome-Meca course material

Post-processing
SIF,
propagation

GNU FDL Licence

Crack Definition (Level sets)


sane mesh

Method 4: lecture of a pre-computed LSN and LST


fields
TBLSN=LIRE_TABLE(UNITE=38,
FORMAT='ASTER',

Mesh

Crack definition
(level sets)

Finite Element
Enrichment

NUME_TABLE=1,
SEPARATEUR=' ',
TITRE='level set normale',)
CHLSN=CREA_CHAMP(OPERATION='EXTR',TABLE=TBLSN,
TYPE_CHAM='NOEU_NEUT_R',MAILLAGE=MAILLAG1)

FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,
DEFI_FISS=_F( CHAM_NO_LSN=CHLSN,
CHAM_NO_LST=CHLST),
)
17 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Computation
Resolution

Post-processing
SIF,
propagation

Visualisation

advanced

Crack Definition (Level sets)

sane mesh

Mesh

Definition of enrichment zone


Restriction of the crack definition zone with GROUP_MA_ENRI

Crack definition
(level sets)

FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,
DEFI_FISS=_F(GROUP_MA_FISS=MA_FISS,

Finite Element
Enrichment

GROUP_MA_FOND=MA_FOND),
GROUP_MA_ENRI = M_LEFT,
)
Crack extension
crack

(un-intentional)

optional keyword

Post-processing
SIF,
propagation

M_LEFT,
Extension of the crack
front
18 - Code_Aster and Salome-Meca course material

Computation
Resolution

GNU FDL Licence

M_RIGHT,

Visualisation

Crack Definition (Level sets)

advanced
sane mesh

Mesh

Definition of the type of enrichment


Crack definition
(level sets)

FISS=DEFI_FISS_XFEM(MAILLAGE=MAILLA,
DEFI_FISS=_F(GROUP_MA_FISS=MA_FISS,
Finite Element
Enrichment

GROUP_MA_FOND=MA_FOND),
GROUP_MA_ENRI = M_VOL,
TYPE_ENRI_FOND
= / 'TOPOLOGIQUE'

[DEFAULT]

/ 'GEOMETRIQUE'
Computation
Resolution

TOPOLOGIQUE

GEOMETRIQUE

optional keyword

Post-processing
SIF,
propagation

Visualisation

RAYON_ENRI / NB_COUCHES
19 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Enriched Finite Elements (X-FEM)


Maillage
Mesh

# Crack definition
FISS = DEFI_FISS_XFEM(MAILLAGE = MAILLA,
...
DEFI_FISS=_F(...),)

Crack
Dfinition
definition
de la
fissure
(level
(level
sets)
sets)

# Sane model definition

Enrichissement
Finite Element
des
Enrichment
lments
finis

MOD_SAIN = AFFE_MODELE(MAILLAGE = MAILLA,


...
AFFE = _F(...),)

Available modelisations: 3D, C_PLAN, D_PLAN, AXIS

Computation
Calcul Resolution
Rsolution

Linear or Quadratic elements


(but X-FEM quadratic elements are still unstable in Version 12)
The crack and the sane model must be defined on the same mesh

Post-processing
Post-traitement
FICs,
SIF,
critre
propagation

Visualisation

20 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Enriched Finite Elements (X-FEM)


Maillage
Mesh

# Crack definition
FISS = DEFI_FISS_XFEM(MAILLAGE = MAILLA,
...
DEFI_FISS=_F(...),)

Crack
Dfinition
definition
de la
fissure
(level
(level
sets)
sets)

# Sane model definition

Enrichissement
Finite Element
des
Enrichment
lments
finis

MOD_SAIN = AFFE_MODELE(MAILLAGE = MAILLA,


...
AFFE = _F(...),)

# Creation of a model with enriched elements (X-FEM)

Computation
Calcul Resolution
Rsolution

MOD_FISS=MODI_MODELE_XFEM(MODELE_IN = MOD_SAIN,
FISSURE

FISSURE accepts also a list of


cracks / interfaces

= FISS)

MOD_SAIN is the sane model


FISS is the crack

MOD_FISS must be used from now on (loadings, material)

21 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Post-processing
Post-traitement
FICs,
SIF,
critre
propagation

Visualisation

Resolution
Maillage
Mesh

Computation for non-linear studies in quasistatic : STAT_NON_LINE, MECA_STATIQUE,


THER_LINEAIRE
CHXFEM=AFFE_CHAR_MECA(MODELE=MOD_FISS,
LIAISON_XFEM='OUI')

RESU=STAT_NON_LINE(CHAM_MATER=CHAMPMAT,
EXCIT=(_F(CHARGE=CH1,),
_F(CHARGE=CHXFEM)),
MODELE=MOD_FISS,

SOLVEUR=_F(METHODE='MUMPS'))

if contact on crack faces: MUMPS


solver

22 - Code_Aster and Salome-Meca course material

Specific additional
loading for X-FEM
only necessary with
contact
No new keyword:
The crack is known
via the model
(enrich elements)

Crack
Dfinition
definition
de la
fissure
(level
(level
sets)
sets)

Enrichissement
Finite Element
des
Enrichment
lments
finis

Computation
Calcul Resolution
Rsolution

Post-processing
Post-traitement
FICs,
SIF,
critre
propagation

Visualisation

GNU FDL Licence

Resolution
Focus on the sub-element cutting process
Context: numerical integration of rigidity terms and right-hand side force terms for
elements cut by the crack
On an element cut through by the crack, the integrand might be discontinuous
Numerical integration with Gauss method on the whole element is not possible
Solution: sub-element cutting (only for integration purpose)

[K e ] = [B] [D][B]de
t

with

[B ] = (i ) ( j ) H (k ) F + k (F ) ,

[K e ] = [B]t [D][B]d se
sub elements
se

23 - Code_Aster and Salome-Meca course material

GNU FDL Licence

= 1,4

Post-processing in fracture mechanics


Maillage
Mesh

Idem for meshed cracks (FEM)


POST_K1_K2_K3
CALC_G
PK=POST_K1_K2_K3(

Crack
Dfinition
definition
de la
fissure
(level
(level
sets)
sets)

MODELISATION='3D',
MATER=ACIER,
FISSURE = FISS,
RESULTAT = UTOT1,
NB_POINT_FOND = 15,
ABSC_CURV_MAXI = 0.3)

TABFIC=CALC_G(RESULTAT=RESU,
OPTION='CALC_K_G',
THETA=_F(FISSURE=FISS,
R_INF=0.1,
R_SUP=0.3,
NB_POINT_FOND = 15))

Enrichissement
Finite Element
des
Enrichment
lments
finis

Limit the postprocessing on few


points along the crack
front
reduction of the
oscillations

Computation
Calcul Resolution
Rsolution

Post-processing
Post-traitement
FICs,
SIF,
critre
propagation

Visualisation

24 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Post- processing for visualisation


Impossible to visualise the crack opening on the computational
mesh (sane mesh)
Need for a visualisation tool

25 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Post- processing for visualisation


Maillage
Mesh

Creation of a mesh for visualisation purpose


Creation of result fields on this mesh
MA_VISU = POST_MAIL_XFEM( MODELE = MOD_FISS)
MO_VISU = AFFE_MODELE(MAILLAGE = MA_VISU, AFFE=_F())
RES_VISU = POST_CHAM_XFEM( MODELE_VISU = MO_VISU,
RESULTAT = RESU)

Crack
Dfinition
definition
de la
fissure
(level
(level
sets)
sets)

Finite
Enrichissement
Elements
des
Enrichment
lments
finis

Computation
Calcul Resolution
Rsolution

IMPR_RESU(RESU=_F(RESULTAT = RES_XFEM))
Post-processing
Post-traitement
FICs,
SIF,
critre
propagation

Visualisation

26 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Outline
4. Advanced tools
Mesh refinement
Crack propagation

27 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Mesh refinement
Stress is proportional to 1/r, with r the distance to the
crack front
For both crack representations using FEM or X-FEM, mesh
needs to be fine enough for accurate SIF computation
Importance of the mesh refinement near the crack front
r

von Mises stresses near crack tip

28 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Mesh refinement
A sane mesh needs to be refined before launching the FE
analysis (adaptation a priori)
Refinement near the crack tip (2D) or near the crack front (3D)
Automatic operation using the distance to the crack front (computed by level sets)

Only elements nearest to the crack from are refined


Automatic mesh refinement loop
Refined sane mesh
Initial
sane
mesh

Level sets

Distance to
the crack-front

29 - Code_Aster and Salome-Meca course material

Refinement
software
(HOMARD)

GNU FDL Licence

X-FE analysis

SIFs

Mesh refinement in Code_Aster


Level sets computation on the initial mesh
(DEFI_FISS_XFEM)
Computation of the refinement criteria
(RAFF_XFEM)
goal: to localize the area near the crack front
r = distance to the crack front
r = lsn 2 + lst 2
Near crack front, error 0
Far crack front, error -
error = r

Mesh refinement (MACR_ADAP_MAIL)


Homard will refine the elements with the
mathematically largest error
For ex., 10% of the elements with the largest error will
be refined

30 - Code_Aster and Salome-Meca course material

GNU FDL Licence

mesh = LIRE_MAILLAGE()

crack = DEFI_FISS_XFEM()

error = RAFF_XFEM()

refmesh =
MACR_ADAP_MAIL()

Mesh refinement in Code_Aster


MA=LIRE_MAILLAGE()
MO=AFFE_MODELE(MAILLAGE=MA,
AFFE=_F(TOUT=OUI,PHENOMENE='MECANIQUE',
MODELISATION='3D'))
# crack definition
FISS = DEFI_FISS_XFEM(MODELE=MO,
DEFI_FISS=_F(FORM_FISS
DEMI_GRAND_AXE
DEMI_PETIT_AXE
CENTRE
VECT_X
VECT_Y
GROUP_MA_ENRI='CUBE')

=
=
=
=
=
=

'ELLIPSE',
2.,
2.,
(0.,0.,0.),
(1.,0.,0.),
(0.,1.,0.),),

Possibility to
use python for
a loop

# error field
CH_ERR=RAFF_XFEM(FISSURE=FISS)
# Mesh refinement (call of HOMARD software)
MACR_ADAP_MAIL(ADAPTATION='RAFFINEMENT',
CHAM_GD = CH_ERR,
CRIT_RAFF_PE = 0.1,
TYPE_VALEUR_INDICA='V_RELATIVE',
NOM_CMP_INDICA = 'X1',
MAILLAGE_N = MA,
MAILLAGE_NP1 = CO(MA2),)
31 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Refined mesh

Examples of mesh refinement

32 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Mesh refinement
Practical advises
It is better to refine a few number of elements at several times than a lot of elements
once
All the calls to MACR_ADAP_MAIL must be done in one .comm file
Warning: the refined mesh depends on the crack geometry

1) File for refinement: ref.comm


IN : coarse mesh + crack geometry
OUT : refined mesh

1) File for refinement + computation:


ref_comput.comm

2) File for computation: comput.comm

IN : coarse mesh + crack geometry

IN : refined mesh + crack geometry

OUT : refined mesh + results

OUT : results
Inconvenient : re-launch the refinement
if changing the crack
33 - Code_Aster and Salome-Meca course material

Inconvenient : time of refinement for


each computation
GNU FDL Licence

Fatigue Propagation (constant amplitude)


Computation of fatigue propagation: 3 ingredients
A propagation law (gives the increment of crack advance)
A bifurcation criterion (gives the bifurcation angle)
An algorithm for the crack update

Specific to X-FEM +
level sets framework

Propagation of a 2d crack in a
plate under tension with a hole

34 - Code_Aster and Salome-Meca course material

common to meshed
and non-meshed
cracks

GNU FDL Licence

Fatigue Propagation (constant amplitude)


Ingredient n1: propagation law
Paris law

da
m
= C.(K eq )
dN

C and m : material parameters

1 + 2 2
K eq = K + K +
K III
2
1
2
I

Equivalent stress intensity factor

Propagation driven by a maximal advance increment : amax

Ingredient n2: bifurcation criterion


Maximum Hoop Stress (Erdogan, Sih)


1 K
= 2 arctan I sign(K II )
4 K II

35 - Code_Aster and Salome-Meca course material

GNU FDL Licence

KI

K II

+ 8

2
II

Fatigue Propagation (constant amplitude)


Ingredient n3: crack update
Crack update = level sets update (X-FEM + level set framework)
3 methods available in Code_Aster for the level sets update
(operator PROPA_FISS)
nave approach: MAILLAGE method
SIMPLEX method
UPWIND method
GEOMETRIQUE method

36 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Fatigue Propagation (constant amplitude)


Ingredient n3: crack update
nave approach: MAILLAGE method
level sets update = adding a segment/an
elementary surface (due to crack advancement)
to the crack discretization, then computation of
level sets by orthogonal projection of the nodes on
this new crack location

Advance
increment: da

Initial crack

bifurcation
angle:

37 - Code_Aster and Salome-Meca course material

Already in DEFI_FISS_XFEM (projection onto


groups of elements)

GNU FDL Licence

Fatigue Propagation (constant amplitude)


Ingredient n3: crack update
SIMPLEX and UPWIND methods
Numerical methods for level set update

+ H ( ) = f (x )

SIMPLEX method
Evaluation of the contribution of each element to the level set update on a node, then selection of the
positives contributions to get a monotone scheme
Main limitation: developed only for simplex elements (triangles in 2D and tetrahedrons in 3D)

UPWIND method
Selective finite differences scheme
Auxiliary regular grid is required for complex geometry

GEOMETIQUE method
This technique uses a vector propagation of the crack front and its local basis and an estimation
of the distances in this local basis.
Faster than the other techniques and capable of modeling 3D non-planar crack growth.
38 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Fatigue Propagation (constant amplitude)

Propagation of a quarter-disk crack with


automatic mesh adaptation

39 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Conclusion on X-FEM in Code_Aster


Available in Code_Aster (in version 11)
Behaviour law: linear elasticity, non-linear, elasto-plasticity
Modelisations: plane strain, plane stress, axi-symmetrical, 3D
Loadings: pressure on crack faces; displacement boundary conditions near the crack
(symmetry conditions); rotation, gravity
Contact on crack faces
Finite elements: linear or quadratic
One or multiple crack, crack net, crack branching
Post-processing in fracture mechanics: CALC_G and POST_K1_K2_K3
Visualisation: displacements and stresses on a cracked mesh
Crack propagation (2d, 3d in-plane and out-of-plane)
Modal analysis

Under development/validation
Friction on crack faces (or interface)
Cohesive Zone Modelling

40 - Code_Aster and Salome-Meca course material

GNU FDL Licence

References
General user documentation
[U2.05.02] how to use X-FEM

Operator documentation
[U4.82.08] Operator DEFI_FISS_XFEM
[U4.41.11] Operator MODI_MODELE_XFEM
[U4.82.11] Operator PROPA_FISS
[U4.82.21] Operator POST_MAIL_XFEM
[U4.82.22] Operator POST_CHAM_XFEM

General user documentation


[R7.02.12] eXtended Finite Element Method

Propagation and crack


branching

41 - Code_Aster and Salome-Meca course material

GNU FDL Licence

End of presentation
Is something missing or unclear in this document?
Or feeling happy to have read such a clear tutorial?
Please, we welcome any feedbacks about Code_Aster training materials.
Do not hesitate to share with us your comments on the Code_Aster forum
dedicated thread.

42 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Você também pode gostar