Vous êtes sur la page 1sur 42

Non-linear analysis for GC

Code_Aster, Salome-Meca course material


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

Description of non-linear problems

Theoretical elements for solving non-linear problems

Solving non-linear problems with Newton

Using Code_Aster

2 - Code_Aster and Salome-Meca course material GNU FDL Licence


What is a non-linear problem in mechanics ?

3 - Code_Aster and Salome-Meca course material GNU FDL Licence


D’où provient la non-linéarité ?
Il existe 3 grands types de non-linéarités :
matériau : pour les matériaux les plus couramment rencontrés (acier,
béton), le domaine « élastique » est limité. Au delà les contraintes ne varient
plus linéairement avec les déformations et peuvent dépendre de
« l’historique » de chargement
géométrique : lorsque les changements de géométrie subies par une structure
influent sur sa résistance (cas des treillis de poutre) ou lorsque le matériau subit de
grandes déformations, configuration initiale et finale ne peuvent plus être
confondues.
contact : les structures mécaniques industrielles sont souvent constituées de
plusieurs pièces qui interagissent entre elles (assemblage vissé) et dont la zone
d’interaction peut être le lieu de dissipation d’énergie (frottement pneu-route)
Résoudre un tel problème dans Code_Aster
Opérateur STAT_NON_LINE ou DYNA_NON_LINE
Dans Code_Aster, la dynamique non-linéaire est résolue en implicite
On se concentrera donc sur le quasi-statique

EDF R&D : Créer de la valeur et préparer l’avenir


Conséquences
À la difficulté déjà existante de modélisation du problème mécanique, s’ajoute
pour l’utilisateur la difficulté numérique : convergence des algorithmes, unicité de
la solution ?
 l’opérateur STAT_NON_LINE est beaucoup moins presse-bouton que
MECA_STATIQUE
Les déplacements restent les inconnues principales du problème discrétisé mais
la solution ne sera obtenue qu’une fois l’équilibre vérifié explicitement. Cela
demandera en général plusieurs itérations.
 résoudre un problème non-linéaire est beaucoup plus coûteux
 il y a donc un intérêt à ne modéliser une non-linéarité que si on ne peut pas
faire autrement (exemple : « vrai contact » vs. « liaison collante»)

EDF R&D : Créer de la valeur et préparer l’avenir


Exemple 1 : contact

EDF R&D : Créer de la valeur et préparer l’avenir


Exemple 2 : ouverture et propagation de
fissures dans une éprouvette

EDF R&D : Créer de la valeur et préparer l’avenir


Exemple 3 : endommagement d’une poutre en
béton armé

EDF R&D : Créer de la valeur et préparer l’avenir


Exemple 4: mis en eau d’un barrage-poids
Le rocher est modélisé par une loi
élastique, le joint - par une loi
Rocher d’endommagement. Le barrage est
soumis à son propre poids.

Joint béton-rocher

CHARGE : poids propre, 3m, 4m, 5m, 6m, 7m,7.5m, 8m, 8.5m, 9m
EDF R&D : Créer de la valeur et préparer l’avenir
Matériau non-linéaire : béton, acier
La courbe force-déplacement est non-linéaire et dépend de l’histoire
du chargement. Exemple : élasto-plasticité (acier)
F F
B B

t u
A C
A C
Force imposée Réponse

u
B u(C)  u(A)

Déformation permanente
(déplacement non nul après
t décharge)
A C
Déplacement
imposé
EDF R&D : Créer de la valeur et préparer l’avenir
Some theoretical elements

11 - Code_Aster and Salome-Meca course material GNU FDL Licence


Equations – Continuous form

Defining solid Ω which is in equilibrium with external forces


 is external boundary
u to apply prescribed displacement ud
g to apply prescribed force g g
f is volumic force
Γg
Γ

div  f  0 in 
 Ω
  .n  g on  g f
 u  u on  Γu
 d u
ud

12 - Code_Aster and Salome-Meca course material GNU FDL Licence


Why do we introduce the behaviour law

Defining solid Ω which is in equilibrium with external forces


 is external boundary

 has 6 independent components g


There is just 3 équations to find all 
Γg
Γ

div  f  0 in 

  .n  g on  g Ω

 u  u on  f
 d u Γu
ud

 (u ) 
1
2

u   t u   u   [ u  3 components

13 - Code_Aster and Salome-Meca course material GNU FDL Licence


Rappel sur le principe des travaux virtuels (PTV)
On considère une structure soumise au chargement extérieur
On écrit l’équation d’équilibre mécanique, puis on applique PTV.

div   fext    0 | v  .n  g on  g
Intégration par partie de l’équation différentielle résulte en PTV

 
:   v d 
 
f .v d  

g
g .vd  v

Approximation EF:
l’espace de vecteurs tests v est de dimension finie
La base de vecteurs test est identifiée au maillage
solution discrétisée est un problème vectoriel

 
 :   vi  d  
 
f .vi d  
 g
g .vi d 
Fint (u)  Fext
vi i  [0, N ]

EDF R&D : Créer de la valeur et préparer l’avenir


Rappel sur le principe des travaux virtuels (PTV)
On considère une structure soumise au chargement extérieur
On écrit l’équation d’équilibre mécanique, puis on applique PTV.

div   fext    0 | v  .n  g on  g
Intégration par partie de l’équation différentielle résulte en PTV

 
 :   vi  d  
 
f .vi d  

g
g .vi d  vi i  [0, N ]

Propriétés pour le cas linéaire (MECA_STATIQUE) :


le tenseur des contraintes dépend linéairement des déformations
L’inconnu de problème est le champ de déplacement
histoire du chargement ne change pas la solution
 u   E u 
solution discrétisée en petit déplacement est un problème de l’algèbre linéaire

Fint (u)  Fext Ku  Fext

EDF R&D : Créer de la valeur et préparer l’avenir


Equations – Finite element approximation

Non-linear problem : stress depending on displacement  (u )


From displacement u to strain  : kinematic non-linearity
From strain  to stress  : material non-linearity

Non-linear material depending on material's history (plasticity,...) :

 u   E u   (u )   ( ,  (u ))
Internal variables 
New syntaxe F L
Fint (u)  F ext
L ( , u )  L  0
int ext

Non linear vector equation

16 - Code_Aster and Salome-Meca course material GNU FDL Licence


General algorithm for non-linear problem

17 - Code_Aster and Salome-Meca course material GNU FDL Licence


Solving non-linear problem

To solve non-linear problem : an incremental algorithm


Problem is parametrized by the parameter t
t is not real time (quasi-static problem)

Why parametrization ?
Real boundary conditions should be applied by non-constant values
Non-linear material produced non-linear equation, precision should depends on
incremental step size
An non-linear problem is easier to solve when cut by small step size

18 - Code_Aster and Salome-Meca course material GNU FDL Licence


Solving non-linear problem

Parametrization because boundary conditions should be applied


by non-constant values (as functions)

f g ud
B B

t t t
A C A C
Prescribed Prescribed Prescribed
volumic force surfacic force displacement

Some examples of prescribed boundary conditions

19 - Code_Aster and Salome-Meca course material GNU FDL Licence


Solving non-linear problem

Parametrization to cut a non-linear problem to decrease degree of


non-linearity

F F

Cutting

<=
u u

High degree of non- Low degree of non-


linearity on complete linearity at each step
problem

20 - Code_Aster and Salome-Meca course material GNU FDL Licence


Solving non-linear problem

The parameter t in the equations :


Solution of internal-external forces equilibrium for each time step

L ( , u )  L  0 for t
int ext

« Time » discretization, all quantities are parametrized by step k :

Lint
k Lext
k
uk tk  k  k k

Time t0 t1 t2 t3 t4
t
Step 1 2 3 4

Incremental quantities : uk  uk 1  u
21 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem

Solving a non-linear equation F ( x)  0 : the Newton's method


Construction of the series x n nN  
Taylor series expansion of the first order

0  F ( x n )  F ( x n1 )  F ( x n1 ).( x n  x n1 )

Next value of the term of the series

1
x n  x n1  n1
F ( x n1
)
F ( x )

Properties :
Quadratic convergence near the solution
n1
Computation of F ( x ) should be very expensive
F ( x n1 )  0

22 - Code_Aster and Salome-Meca course material GNU FDL Licence


Solving non-linear problem

Newton's method for equilibrium equation, at step k :


 Lint Lext 
L int, n 1
L ext , n 1
   . u n
0
 u u u n1
K n 1. u n  R n 1

K n1 is tangent matrix


L ( , u )  L  0
int ext

 Lint   Lext 
K n1    _
  u 

 u u  n 1 u n 1

R n1 is equilibrium residual


R n1  Lext ,n1  Lint, n1 
23 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem

Global algorithm :
1) Compute internal and external forces
2) Compute tangent matrix
3) Solve linear system
4) Update displacements
5) Evaluate convergence

24 - Code_Aster and Salome-Meca course material GNU FDL Licence


Solving non-linear problem – Newton by graphic

Find the solution u* , F *  where F * is known and u * is unknown

L
ext
Lint
F*

F0 *
u0 u u
25 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic

Dividing F * in two increments (reducing degree of non-linearity) :


find u1 , F1  and u2 , F2 
L
ext
Lint
F *= F 2

F1

F0
u0 u1 u *= u 2 u
26 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic

Compute tangent matrix K1n for iteration Newton n and step 1

L
ext
Lint
F *= F 2

F1

K 1n

F0
u0 u1 n u1 u *= u 2 u
27 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic

Solving K1n .u1n  F1  F0  u1n

L
ext
Lint
F *= F 2

u1n
F1

K 1n

F0
u0 u1 u *= u 2 u
28 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic

Update displacements u1n  u1n1  u1n

L
ext
Lint
F *= F 2

u1n
F1

K 1n

F0
u0 u1 n u1 u *= u 2 u
29 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic

Compute Lint u1n  and R  F1  Lint u1n 

L
ext
Lint
F *= F 2

u1n
F1
 
R u1n
 
Lint u1n
K 1n

F0
u0 u1 n u1 u *= u 2 u
30 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic
L
ext
Lint L
ext
Lint
F *= F 2 F *= F 2
u1n
F1 F1

K 1n
1 2
K 1n

F0 F0
u0 u1 n u1 u *= u 2 u
u0 u1 n u1 u *= u 2 u
Matrix computation Solve system
L
ext
Lint L
ext
Lint
F *= F 2 F *= F 2
u1n u1n
F1 F1
 
R u1n
 
Lint u1n
n
K1 K 1n
3 4

F0 F0
u0 u1 n u1 u *= u 2 u u0 u1 n u1 u *= u 2 u

Update displacements Evaluate convergence


31 - Code_Aster and Salome-Meca course material GNU FDL Licence
Resolution hints : quasi Newton

R
R
L1
L1

u u
MATRICE=‘TANGENTE' MATRICE='ELASTIQUE'
R R
L2
L1
L1

MATRICE=‘TANGENTE'u MATRICE=‘TANGENTE' u

REAC_INCR=1 REAC_ITER=2

32 - Code_Aster and Salome-Meca course material GNU FDL Licence


Solving non-linear problem

1 Matrix computation : Why quasi-Newton methods ?

Compute exact matrix every iteration : matrix must been factorized →


very expensive
Make more iterations but each iteration is quicker
Elastic matrix achieve convergence for all standard generalized materials
with a lot of iterations (thousands). Elastic matrix is computed and
factorized ONE time : very cheap
Elastic matrix is the better choice for unloading loading's cases

33 - Code_Aster and Salome-Meca course material GNU FDL Licence


Solving non-linear problem

4 Evaluate convergence
Absolute (RESI_GLOB_MAXI)

Lext  Lint, n1 



Relative (RESI_GLOB_RELA)

Lext  Lint, n1



ext

L

By reference : giving stress reference (RESI_REFE_RELA)

Lext  Lint, n1   .Lref


k
k

34 - Code_Aster and Salome-Meca course material GNU FDL Licence


Using non-linear in Code_Aster

35 - Code_Aster and Salome-Meca course material GNU FDL Licence


Non-linear in Code_Aster

Material is steel with Von Mises plasticity with isotropic hardening,


traction curve from file
FSIGM = LIRE_FONCTION(UNITE=21,PARA='EPSI')

STEEL = DEFI_MATERIAU( ELAS=_F(YOUNG=210.E9,NU=0.3),


TRACTION=_F(SIGM=FSIGM))

Steel on all mesh


CHMA = AFFE_MATERIAU( MAILLAGE=MESH,
AFFE=_F( TOUT='OUI',
MATER='STEEL'))

36 - Code_Aster and Salome-Meca course material GNU FDL Licence


Non-linear in Code_Aster

Reinforced concrete with isotropic hardening rebars

RESUN = STAT_NON_LINE(...
CHAM_MATER = CHMA,
COMPORTEMENT = (
_F( GROUP_MA =‘CABLE',
RELATION ='VMIS_ISOT_TRAC'),
_F( GROUP_MA =‘BETON',
RELATION =‘ENDO_FISS_EXP'),

...)

37 - Code_Aster and Salome-Meca course material GNU FDL Licence


Non-linear in Code_Aster

Loading : parametrized by time – Using function in FONC_MULT


Lext

Lext (t , u(t ))  g (t ) .Lext (u)


200

t
0 2
RAMPE = DEFI_FONCTION(PARA='INST',VALE=(0,0,2,200))

LOAD = AFFE_CHAR_MECA(MODELE=MOD,
PRES_REP=_F(PRES=100.,
GROUP_MA='TOTO'))
RESUN = STAT_NON_LINE(...
EXCIT=_F(CHARGE =LOAD,
FONC_MULT=RAMPE)
...)

38 - Code_Aster and Salome-Meca course material GNU FDL Licence


Non-linear in Code_Aster

Computing is parametrized by time

Time 0.0 1.0 2.0


t

L_INST=DEFI_LIST_REEL( DEBUT=0.0,
INTERVALLE=(
_F(JUSQU_A=1.0,NOMBRE=4,),
_F(JUSQU_A=2.0,NOMBRE=3,),
),)

RESUN = STAT_NON_LINE(...
INCREMENT=_F(LIST_INST=L_INST)
...)

39 - Code_Aster and Salome-Meca course material GNU FDL Licence


Non-linear in Code_Aster – Advanced controls

Quasi-Newton method : recompute matrix every 2 Newton's iteration


RESUN = STAT_NON_LINE(...
NEWTON=_F(REAC_ITER=2,),)

Quasi-Newton method : recompute matrix every 3 time's step


RESUN = STAT_NON_LINE(...
NEWTON=_F(REAC_INCR=3,),)

Quasi-Newton method : using elastic matrix


RESUN = STAT_NON_LINE(...
NEWTON=_F(MATRICE='ELASTIQUE',),)

Default values in Code_Aster


RESUN = STAT_NON_LINE(...
NEWTON=_F( REAC_INCR=1,
REAC_ITER=0, !
MATRICE='ELASTIQUE',),)
40 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster – Advanced controls

Convergence criterion : careful when change values ! !


RESUN = STAT_NON_LINE(...
CONVERGENCE=_F(
RESI_GLOB_MAXI=1.E-6,
RESI_GLOB_RELA=1.E-6,),)
Changing criterion convergence may produces WRONG results !
Maximum number of Newton's iteration
RESUN = STAT_NON_LINE(
CONVERGENCE=_F(ITER_GLOB_MAXI=20,),)

Elastic matrix uses thousands of Newton's iterations


Default values in Code_Aster
RESUN = STAT_NON_LINE(...
CONVERGENCE=_F(
ITER_GLOB_MAXI=10,
RESI_GLOB_RELA=1.E-6,),)
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