KEMBAR78
09 Advanced Nonlinear PDF | PDF | Nonlinear System | Deformation (Mechanics)
0% found this document useful (0 votes)
326 views59 pages

09 Advanced Nonlinear PDF

This document provides an overview of solving non-linear problems in mechanics. It describes how non-linearities can arise from large displacements, material behavior, and contact/friction. It discusses theoretical elements like continuum equations, finite element discretization, and parametrizing the problem over time steps. The key algorithm discussed is Newton's method, where the non-linear problem is linearized and solved iteratively by computing residuals and tangent matrices to update displacements until convergence is reached.

Uploaded by

Enrique
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)
326 views59 pages

09 Advanced Nonlinear PDF

This document provides an overview of solving non-linear problems in mechanics. It describes how non-linearities can arise from large displacements, material behavior, and contact/friction. It discusses theoretical elements like continuum equations, finite element discretization, and parametrizing the problem over time steps. The key algorithm discussed is Newton's method, where the non-linear problem is linearized and solved iteratively by computing residuals and tangent matrices to update displacements until convergence is reached.

Uploaded by

Enrique
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

Advanced non-linear analysis

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

F = (u) with (u) a.u + b


A

C
Prescribed
displacement

AC

Response

C
Prescribed
force

6 - Code_Aster and Salome-Meca course material

u(C) = u(A)
F(C) = F(A)

GNU FDL Licence

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

F = (u) with (u) a.u + b


A

C
Prescribed
displacement

C
Prescribed
force

7 - Code_Aster and Salome-Meca course material

C
Response

u(C) u(A)
Residual displacement
Next loading : initial
displacement 0
GNU FDL Licence

Non-linear kinematic
Truss/beams/shells elements with large rotation and/or large
displacements
F

EA
l

x
u

E: Young modulus
A: section
L: length
F: load
u: displacement
k: rigidity of the spring
8 - Code_Aster and Salome-Meca course material

Response

GNU FDL Licence

Non-linear contact/friction
Contact and friction: a very difficult non-linear problem
pn
g
1
Response
(Signorini contact)

c
2

pt

pn: normal pressure


pt: tangent pressure
g: distance between solids (gap)
v: tangential speed between solids
9 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Response
(Coulomb friction)

Some theoretical elements

10 - Code_Aster and Salome-Meca course material

GNU FDL Licence

Equations Continuous form


Measure of stress : Cauchy (true) stress
F0

F
S 0 S

= lim

Ft

F0
S 0 S 0

Ft
S 0 S t

0 = lim

t = lim

Cauchy stress : measure on deformed configuration


Measure of strain :
for finite strain, it's an arbirtray choice, depending on behavior law
For small strain
11 - Code_Aster and Salome-Meca course material

(u ) =

1
u + t u
2
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
c to define contact/friction
f is volumic force

div + f = 0
.n = g on

u = ud on
Lcf (u ) on

in

u
c

u
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
Shape functions N

[ g]

{xi }
x3
y3

y
x1
y1

x2
y2
x

13 - Code_Aster and Salome-Meca course material

GNU FDL Licence

{x} = [N g ].{xi }

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
u1
v1

{u} = [N u ].{ui }
u2
v2

We suppose isoparametric elements

14 - Code_Aster and Salome-Meca course material

GNU FDL Licence

[N ] = [N g ] = [N u ]

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

Virtual displacements
With

With

Eu

u~

and virtual strains

(u~ ) =

1 ~
u + t u~
2

space of kinematically admissible displacements :

Eu~

Eu = {u

with u ( X ) = ud

X u }

space of virtual displacements :

Eu~ = {u~ with u~ ( X ) = 0 X u }

The weak form is the mechanical concept of virtual power


{u} = [N ].{ui } and {u~} = [N ].{u~i }
Galerkin form :
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
.d

nb points

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
_NOEU in Code_Aster)
k u
3
X k v
3
k

k
X k u1
k v1
17 - Code_Aster and Salome-Meca course material

(quantities post_fixed by

u2
v2
GNU FDL Licence

k
X k
k

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

Non-linear external forces : depending on u


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

19 - Code_Aster and Salome-Meca course material

GNU FDL Licence

p(u)

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
g

t
Prescribed
volumic force

ud

C
Prescribed
surfacic force

C
Prescribed
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

Cutting
<=
u

High degree of nonlinearity on complete


problem
24 - Code_Aster and Salome-Meca course material

Low degree of nonlinearity at each step

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
Lext
k
k

Time
Step

uk t k k k

t1

t0

t2

t4

t3

Incremental quantities :
25 - Code_Aster and Salome-Meca course material

uk = uk 1 + u

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 nN
Taylor series expansion of the first order

0 = F ( x n ) F ( x n1 ) + F ( x n1 ).( x n x n1 )
Next value of the term of the series

x n = x n1

1
n 1
F
(
x
)
n 1
F ( x )

Properties :
Quadratic convergence near the solution
Computation of F ( x n1 ) should be very expensive

F ( x n1 ) 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}


{Lint (u (t ))} {Lext (t , u (t ))} = {0}

Simplify : we are at step k

Internal forces :
int,n

int,n 1

Lint
.u n
+

u u

n
n
n 1
with u = (u u )

n 1

External forces :
ext ,n

ext ,n 1

Lext
.u n
+

u u
n 1

27 - Code_Aster and Salome-Meca course material

GNU FDL Licence

with

u n = (u n u n1 )

Solving non-linear problem


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

ext ,n 1

Lext Lint
.u n = 0
+

u u
u
n 1

K n1.u n = R n1

K n1 is tangent matrix

n 1

Lint
Lext
_

u u u u
n 1

R n1

n 1

is equilibrium residual

R n1 = Lext ,n1 Lint,n1


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
Lext

Lint

F*

F0

u*

u0

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

Lint

F *= F 2

F1

F0

u0

33 - Code_Aster and Salome-Meca course material

u *= u 2

u1
GNU FDL Licence

Solving non-linear problem Newton by graphic


Compute tangent matrix K1n for iteration Newton n and step 1
Lext

Lint

F *= F 2

F1

K 1n

F0

u0

u1n

34 - Code_Aster and Salome-Meca course material

u *= u 2

u1
GNU FDL Licence

Solving non-linear problem Newton by graphic


Solving

K1n .u1n = F1 F0 u1n


Lext

Lint

F *= F 2
u1n

F1

K1

F0

u0

35 - Code_Aster and Salome-Meca course material

u1

u = u2
GNU FDL Licence

Solving non-linear problem Newton by graphic


Update displacements u1n = u1n1 + u1n
Lext

Lint

F *= F 2

u1n

F1

K 1n

F0

u0

u1n

36 - Code_Aster and Salome-Meca course material

u *= u 2

u1
GNU FDL Licence

Solving non-linear problem Newton by graphic


Compute Lint (u1n ) and R = F1 Lint (u1n )
Lext

Lint

F *= F 2

u1n

F1

( )

R u1n

( )

Lint u1n

K 1n

F0

u0

u1n

37 - Code_Aster and Salome-Meca course material

u *= u 2

u1
GNU FDL Licence

Solving non-linear problem Newton by graphic


Lext

Lint

F *= F 2

ext

int

F = F2
u1n

F1

F1

K1

F0

u1n

u0

2
K 1n

u1

u = u2

Matrix computation
L

ext

F0

u0

u1

u *= u 2

u1

Solve system

int

ext

int

F = F2

F = F2
u1n

u1n

F1

F1

( )

R u1n
K1

F0

u0

K1

u1

u1

u *= u 2

F0

Update displacements
38 - Code_Aster and Salome-Meca course material

u0

( )

Lint u1n

u1

u1

u *= u 2

Evaluate convergence
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
Lext

Lint

Lext

F *= F 2

F *= F 2

F1

F1

Lint

Slope changes
every Newton's
iteration
F0

u0

u1

Slope doesn't
change every
Newton's
iteration

u = u2

True Newton method


39 - Code_Aster and Salome-Meca course material

F0

u0

u1

u = u2

Quasi Newton method


GNU FDL Licence

Solving non-linear problem


1

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

Lext

Lint

F *= F 2

F *= F 2

F1

F1

Lint

Slope is elastic
matrix

Slope is
coherent matrix

F0

u0

u1

u *= u 2

u0

u1

u = u2

Quasi Newton method

True Newton method

40 - Code_Aster and Salome-Meca course material

F0

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
is equivalent to minimizing functional
n 1
n
n 1
n
Solving K .u = R
give the direction u of the solution
Solving functionnal minimisation give the line-search coefficient
Update displacements
n

u n = u n1 + .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~

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 n1 + u n )} {Lext (u n1 + u n )}= {0}

Scalar functional

}{

g ( ) = u n . Lint (u n1 + u n ) Lext (u n1 + 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,n1

Relative (RESI_GLOB_RELA)

Lext Lint,n1
ext

By reference : giving stress reference (RESI_REFE_RELA)

Lext Lint,n1

47 - Code_Aster and Salome-Meca course material

.Lref
k

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,
COMP_INCR = _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

{Lext (t, u(t ))}

200

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

{Lext (t, u(t ))}

200

g (t ) .

{Lext (u)}

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

52 - Code_Aster and Salome-Meca course material

GNU FDL Licence

=LOAD)

Non-linear in Code_Aster
Computing is parametrized by time
Time

0.0

1.0

2.0

L_INST=DEFI_LIST_REEL( DEBUT=0.0,
INTERVALLE=(
_F(JUSQU_A=1.0,NOMBRE=3,),
_F(JUSQU_A=2.0,NOMBRE=2,),
),)
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

Lext
200

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

V11

L_INST=DEFI_LIST_REEL( DEBUT=0.0,
INTERVALLE=(
_F(JUSQU_A=1.0,NOMBRE=3,)
_F(JUSQU_A=2.0,NOMBRE=2,),
),)
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


V11

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
METHODE
LIST_INST
PAS_MINI

=
=
=
=

_F(
'AUTO
L_INST,
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(

57 - Code_Aster and Salome-Meca course material

REAC_INCR=1,
!
REAC_ITER=0,
MATRICE='ELASTIQUE',),)

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