0% found this document useful (0 votes)
338 views59 pages

Non-Linear Analysis - Basis: Code - Aster, Salome-Meca Course Material

This document discusses non-linear analysis and solving non-linear problems. It describes that non-linearities can come from large displacements, material properties, or contact/friction. Solving non-linear problems requires theoretical elements like defining stress and strain, developing continuous and finite element equations of equilibrium, and using techniques like Newton's method. It also introduces the software Code_Aster for solving non-linear problems.

Uploaded by

Stefano Milani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
338 views59 pages

Non-Linear Analysis - Basis: Code - Aster, Salome-Meca Course Material

This document discusses non-linear analysis and solving non-linear problems. It describes that non-linearities can come from large displacements, material properties, or contact/friction. Solving non-linear problems requires theoretical elements like defining stress and strain, developing continuous and finite element equations of equilibrium, and using techniques like Newton's method. It also introduces the software Code_Aster for solving non-linear problems.

Uploaded by

Stefano Milani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 59

Non-linear analysis - Basis

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


Non-linear problems

Non-linearities come from :

Kinematic (movement and strains) : large displacement, large rotation, large strains

Material : non-linear response, history-dependent response

Contact/friction

The three non-linearities should been coupled

Numerical simulation require expert analysis

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


Non-linear material

Material non-linearity
Experimental identification : identify macroscopical response force/displacement

Most materials are non-linear and/or history dependent

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


Non-linear material
Displacement/force function is not linear but not history dependent
u
B

F   (u) with  (u)  a.u  b


t F B
A C
Prescribed
displacement
F u
B AC
Response

t
A C u(C)  u(A)
Prescribed F(C)  F(A)
force

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


Non-linear material
Displacement/force function is not linear and history dependent
u
B

F   (u) with  (u)  a.u  b


t F
A C B
Prescribed
displacement
F u
B A C
Response

t u(C)  u(A)
A C
Prescribed Residual displacement
force Next loading : initial
displacement 
7 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear kinematic

Truss/beams/shells elements with large rotation and/or large


displacements
F

F
EA z
k
x
u
E: Young modulus Response
A: section
L: length
F: load
u: displacement
k: rigidity of the spring
8 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear contact/friction

Contact and friction: a very difficult non-linear problem


pn

g
Ω1

Response
Γc (Signorini contact)
Ω2
pt

pn: normal pressure v


pt: tangent pressure
g: distance between solids (gap)
v: tangential speed between solids Response
(Coulomb friction)
9 - Code_Aster and Salome-Meca course material GNU FDL Licence
Some theoretical elements

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


Equations – Continuous form

F
Measure of stress : Cauchy (true) stress   lim
S 0 S

F0 Ft

F0 Ft
 0  lim  t  lim
S 0 S0 0 St 0 St

Cauchy stress : measure on deformed configuration


Measure of strain :
for finite strain, it's an arbirtray choice, depending on behavior law

For small strain  (u ) 


1
2
u   t u 
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
c to define contact/friction
f is volumic force Γg
Γ

div  f  0 in 
 .n  g on g
Ω

 f
u  ud on u
 Lcf (u ) on c Γu Γc
ud

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


Equations – Finite element approximation

Main shapes for elements :


segment, triangle, quadrangle, hexaedron, tetraedron, pyramid, prism

linear or quadratic (curved or straight edges)

Geometry discretization :
Coordinates in element x
Discretized coordinates at nodes xi 
Shape functions N  g x3
y3

x  N g .xi 
y
x1 x2
y1 y2
x
13 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Finite element approximation

Discretization of the unknowns:


Unknowns depending on physic : displacement for mechanics temperature for
thermic, ...
Displacements in element u 
Discretized displacement at nodes ui 
Shape functions Nu  
u3
v3
u  Nu .ui 
u1 u2
v1 v2

We suppose isoparametric elements N   N g   Nu 

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


Equations – Finite element approximation

Weak form of equilibrium (weighted residuals) :


Find u  Eu with u~  Eu~ :

  (u ) :  (u~ ).d   f (u ) : u~.d   g (u ) : u~.d


  g

Virtual displacements u~ and virtual strains  (u~ ) 


2

1 ~
u   t u~ 
With Eu space of kinematically admissible displacements :
Eu  u with u( X )  ud X  u 

With Eu~ space of virtual displacements :

Eu~  u~ with u~( X )  0 X  u 

The weak form is the mechanical concept of virtual power


Galerkin form : u  N .ui  and u~  N .u~i 
15 - Code_Aster and Salome-Meca course material GNU FDL Licence
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
 (u )   ( (u ))

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

 (u )   ( ,  (u ))

Internal variables 

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


Equations – Finite element approximation

Numerical quadrature : to compute continuous som, using a


Gauss approximation
nb points
  .d    k .k
 k 1

Stress, strain and internal variables : discretized at numerical points


X (quantities post_fixed by _ELGA in Code_Aster)
Displacement : discretized at nodes (quantities post_fixed by
_NOEU in Code_Aster)
u3
v3 k
X k
 k k  k
u1 X k X k u2
v1 k k v2
17 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Finite element approximation

Computation of internal forces


  (u ) :  (u~).d  Lint (u )  Q(u ). (u )

Non-linear internal forces : depending on u

Non-linear kinematic Q(u )

Non-linear material  (u )

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


Equations – Finite element approximation

Computation of external forces


 f (u ) : u~.d   g (u ) : u~.d  Lext (u )
 g

Non-linear external forces : depending on u


Non-linear when following forces : pressure always normal to
boundary → pressure depends on displacement
p(u) p(u)

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


Equations – Finite element approximation

Final equilibrium equation : discretized form

Lint (u) Lext (u)  0

Non-linear equation, depending on u

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


General algorithm for non-linear problem

21 - 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 been 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

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


Solving non-linear problem

Parametrization because boundary conditions should been


applied by non-constant values

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

23 - 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

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


Solving non-linear problem

The parameter t in the equations :


Internal forces : dependence with respect to t is implicit, it results from the
integration of the constitutive relation in time
External forces : dependence with respect to t is explicit (applied BC) or implicit
(following forces)

Lint (u(t )) Lext (t, u(t ))  0

« 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
25 - 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

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


Solving non-linear problem

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


Lint (uk (tk ))  Lext (tk , uk (tk ))  0 Simplify : we are at step k
Lint (u (t ))  Lext (t , u (t ))  0

Internal forces :

 Lint  n1
int, n 1
   .u n with u  (u  u )
n n
L int, n
L 
 u u
n 1

External forces :
 Lext 
n1
 Lext ,n1   with u  (u  u )
n n
Lext ,n  .u n

 u u n 1

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


Solving non-linear problem

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

int, n 1 ext ,n 1  Lext Lint 


L L     .u n  0

 u u u
n 1

K n1.u n  R n1

K n1 is tangent matrix

 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 
28 - 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

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


Solving non-linear problem

Compute internal and external forces :


Exact computation is necessary (software requirement)
Non-linear behavior is evaluated at each Gauss point
Complex behavior laws computation should be expensive
Precision of computation of some behavior laws should depend on
increment of displacement :
Visco-plasticity
Non-radial loading
PETIT_REAC strain measure

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


Solving non-linear problem

Compute tangent matrix :

Exact computation is NOT necessary


Tangent matrix is evaluated at each Gauss point
Tangent matrix computation should be expensive

31 - 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
32 - 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
33 - 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
34 - 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
35 - 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
36 - 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
37 - 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


38 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem

1 Matrix computation :
True Newton method : K in is evaluate every step and every Newton
iteration
Quasi-Newton method : K in is evaluate every i Newton's iteration and
every n time's step

L
ext
Lint L
ext
Lint
F *= F 2 F *= F 2

F1 F1

Slope changes Slope doesn't


every Newton's change every
iteration Newton's
iteration
F0 F0
u0 u1 u *= u 2 u u0 u1 u *= u 2 u

True Newton method Quasi Newton method

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


Solving non-linear problem

1 Matrix computation :
Quasi-Newton method : compute approximate matrix (elastic matrix)

L
ext
Lint L
ext
Lint
F *= F 2 F *= F 2

F1 F1

Slope is Slope is elastic


coherent matrix matrix

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

True Newton method Quasi Newton method

40 - 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

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


Solving non-linear problem

2 Solve system : using direct solver or iterative solver

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


Solving non-linear problem

3 Update displacement - Improving by line-search - Method


n1 n 1
Solving K .u  R
n
is equivalent to minimizing functional
n1 n 1
Solving K .u  R give the direction u of the solution
n n

Solving functionnal minimisation give the line-search coefficient 


Update displacements

u n  u n1  .u n

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


Solving non-linear problem

3 Update displacement - Improving by line-search - Functional


Functional (scalar) J is :
u  J (u )    u .d   f .u.d   t.u.d
  

With   u  is the density of free energy, for hyperelastic material :





This functional is convex, minimizing convex function → its gradient
vanishes :
J (u).u~  0 u~  Eu~

Gradient vanishes <=> Virtual power


  u  :  u~ .d   f (u ) : u~.d   g (u ) : u~.d u~  Eu~
  g

Find equilibrium : minimize J scalar functional


44 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem

3 Update displacement - Improving by line-search - Minimize


functional
Derivative of the functional

Lint (u n1  u n ) Lext (u n1  u n ) 0


Scalar functional

 
g (  )  u n . Lint (u n1  u n )  Lext (u n1  u n )  0
Using classical method for minimizing scalar convex function (dichotomy
for instance)

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


Solving non-linear problem

3 Update displacement - Improving by line-search - Notes


Only few iterations : it's not necessary to find exact zero of g
Only compute internal and external forces (no matrix)
Algorithms for minimizing scalar function are very efficient and very simple

46 - 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

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


Using non-linear in Code_Aster

48 - 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'))

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


Non-linear in Code_Aster

Plasticity with isotropic hardening, small strains

RESUN = STAT_NON_LINE(...
CHAM_MATER = CHMA,
COMPORTEMENT = _F(
TOUT ='OUI',
RELATION ='VMIS_ISOT_TRAC',
DEFORMATION ='PETIT'),
...)

50 - 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
200
Lext (t, u(t ))  g (t ) . Lext (u)
t
0 2
RAMPE = DEFI_FONCTION(PARA='INST',VALE=(0,0,2,2))

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)
...)

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


Non-linear in Code_Aster

Loading : parametrized by time – Using function directly in BC


Lext
200 Lext (t, u(t ))  g (t ) . Lext (u)
t
0 2

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

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

52 - 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)
...)

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


Non-linear in Code_Aster

Loading and time definition must been consistent !


Time 0.0 1.0 2.0
t

Lext
200

t
0 2

Computation on part of step


RESUN = STAT_NON_LINE(...
INCREMENT=_F(LIST_INST=L_INST,
INST_FIN =1.0)
...)
54 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster – Advanced controls

Automatic step cut : no convergence → automatic cutting


L_INST=DEFI_LIST_REEL( DEBUT=0.0,
INTERVALLE=(
_F(JUSQU_A=1.0,NOMBRE=4,)
_F(JUSQU_A=2.0,NOMBRE=3,),
),)
DEFLIST = DEFI_LIST_INST(
DEFI_LIST = _F(
LIST_INST = L_INST,),
ECHEC = _F(
EVENEMENT = 'ERREUR',
ACTION = 'DECOUPE',),)

RESUN = STAT_NON_LINE(...
INCREMENT=_F(LIST_INST=DEFLIST)
...)
55 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster – Advanced controls

Automatic step adaptation :


L_INST=DEFI_LIST_REEL( DEBUT=0.0,
INTERVALLE=(_F(JUSQU_A=2.0,NOMBRE=1,),
),)

DEFLIST = DEFI_LIST_INST( DEFI_LIST = _F(


METHODE = 'AUTO‘
LIST_INST = L_INST,
PAS_MINI = 1.E-6),)

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

56 - 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=‘TANGENTE’,),)
57 - 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,),)
58 - 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.

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

You might also like