non-linear analysis - basis · solving non-linear problem solving a non-linear equation : the...
TRANSCRIPT
Code_Aster, Salome-Meca course materialGNU FDL licence (http://www.gnu.org/copyleft/fdl.html)
Non-linear analysis - Basis
2 - Code_Aster and Salome-Meca course material GNU FDL Licence
Outline
Description of non-linear problems
Theoretical elements for solving non-linear problems
Solving non-linear problems with Newton
Using Code_Aster
3 - Code_Aster and Salome-Meca course material GNU FDL Licence
What is a non-linear problem in mechanics ?
4 - 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
5 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear material
Material non-linearityExperimental identification : identify macroscopical response force/displacement
Most materials are non-linear and/or history dependent
6 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear material
Displacement/force function is not linear but not history dependent
F
uA
B
C
Response
u
tA
B
C
Prescribed
displacement
F
tA
B
C
Prescribed
force
ba.u(u)with(u)F
F(A) F(C)
u(A) u(C)
7 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear material
Displacement/force function is not linear and history dependent
Residual displacement
Next loading : initial
displacement
u
tA
B
C
Prescribed
displacement
F
tA
B
C
Prescribed
force
F
uA
B
C
Response
ba.u(u)with(u)F
u(A) u(C)
8 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear kinematic
Truss/beams/shells elements with large rotation and/or large
displacements
E: Young modulus
A: section
L: length
F: load
u: displacement
k: rigidity of the spring
EA
F
x
zkF
u
Response
9 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear contact/friction
Contact and friction: a very difficult non-linear problem
Ω1
Γc
Ω2
Response
(Signorini contact)
Response
(Coulomb friction)
pn
g
pt
vpn: normal pressure
pt: tangent pressure
g: distance between solids (gap)
v: tangential speed between solids
10 - Code_Aster and Salome-Meca course material GNU FDL Licence
Some theoretical elements
11 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Continuous form
Measure of stress : Cauchy (true) stress
Measure of strain : for finite strain, it's an arbirtray choice, depending on behavior law
For small strain
Cauchy stress : measure on deformed configuration
S
F
S
0lim
0
0
00
0
limS
F
S
t
t
St
S
F
t
0lim
tF0F
uuu t2
1)(
12 - 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
c to define contact/friction
f is volumic force Γ
Ω
ud
g
f
Γg
ΓcΓu
ccf
ud
g
onuL
onuu
ongn
infdiv
)(
.
0
13 - 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
Discretized coordinates at nodes
Shape functions
x
y
x2
y2
x1
y1
x3
y3
x ix
gN
ig xNx .
14 - 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
Discretized displacement at nodes
Shape functions
We suppose isoparametric elements
u2
v2
u1
v1
u3
v3
u
iu
uN
iu uNu .
ug NNN
15 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Finite element approximation
Weak form of equilibrium (weighted residuals) :Find with :
Virtual displacements and virtual strains
With space of kinematically admissible displacements :
With space of virtual displacements :
The weak form is the mechanical concept of virtual power
Galerkin form : and
uEu
iuNu ~.~ iuNu .
uEu ~~
g
duugduufduu .~:)(.~:)().~(:)(
uE
uuu t ~~2
1)~( u~
udu XuXuwithuE )(
uu XXuwithuE 0)(~~~
uE~
16 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Finite element approximation
Non-linear problem : stress depending on displacement
From displacement u to strain : kinematic non-linearity
From strain to stress : material non-linearity
Non-linear material
Non-linear material depending on material's history (plasticity,...) :
Internal variables
))(()( uu
))(,()( uu
)(u
17 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Finite element approximation
Numerical quadrature : to compute continuous som, using a
Gauss approximation
Stress, strain and internal variables : discretized at numerical points (quantities post_fixed by _ELGA in Code_Aster)
Displacement : discretized at nodes (quantities post_fixed by _NOEU in Code_Aster)
pointsnb
1k ..
kkd
X
1
1
v
u
2
2
v
u
3
3
v
u
k
k
k
X
k
k
k
X
k
k
k
X
18 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Finite element approximation
Computation of internal forces
Non-linear internal forces : depending on
Non-linear kinematic
Non-linear material
)(.)()().~(:)( int uuQuLduu
u
)(uQ
)(u
19 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Finite element approximation
Computation of external forces
Non-linear external forces : depending on
Non-linear when following forces : pressure always normal to
boundary → pressure depends on displacementp(u) p(u)
)(.~:)(.~:)( uLduugduuf ext
g
u
20 - Code_Aster and Salome-Meca course material GNU FDL Licence
Equations – Finite element approximation
Final equilibrium equation : discretized form
Non-linear equation, depending on u
0)()(int uLuL ext
21 - Code_Aster and Salome-Meca course material GNU FDL Licence
General algorithm for non-linear problem
22 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
To solve non-linear problem : an incremental algorithmProblem 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
23 - 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
Some examples of prescribed boundary conditions
f
t
Prescribed
volumic force
Prescribed
surfacic force
g
tA
B
C
ud
tA
B
C
Prescribed
displacement
24 - 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
Cutting
<=
High degree of non-
linearity on complete
problem
Low degree of non-
linearity at each step
F
u
F
u
25 - 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)
« Time » discretization, all quantities are parametrized by step k :
t0 t1 t2 t3 t4
1
Timet
Step 2 3 4
Incremental quantities :
0))(,())((int tutLtuL ext
uuu kk 1
intkL ext
kL ku kt k k k
26 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Solving a non-linear equation : the Newton's method
Construction of the series
Taylor series expansion of the first order
Next value of the term of the series
Properties :
Quadratic convergence near the solution
Computation of should be very expensive
0)( xF
Nnnx
)).(()()(0 111 nnnnn xxxFxFxF
)()(
1 1
1
1
n
n
nn xFxF
xx
0)( 1 nxF
)( 1 nxF
27 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Newton's method for equilibrium equation, at step k :
Internal forces :
External forces :
Simplify : we are at step k
with
with
0))(,())((
0))(,())((
int
int
tutLtuL
tutLtuL
ext
kkkextkk
)( 1 nnn uuu
)( 1 nnn uuu
n
u
nn uu
LLL
n
.1
int1int,int,
n
u
extnextnext u
u
LLL
n
.1
1,,
28 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Newton's method for equilibrium equation, at step k :
is tangent matrix
is equilibrium residual
11
int1,1int,
.
0.1
nnn
n
u
extnextn
RuK
uu
L
u
LLL
n
1nK
1nR
1int,1,1 nnextn LLR
11
_int
1
nn u
ext
u
n
u
L
u
LK
29 - 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
30 - 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
31 - 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
32 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic
Find the solution where is known and is unknown
u*
Lext
u
Lint
u0
F*
F0
*u*F **,Fu
33 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic
Dividing in two increments (reducing degree of non-linearity) :
find and
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1
*F
11, Fu 22 , Fu
34 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic
Compute tangent matrix for iteration Newton n and step 1
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1u1
n
K1n
nK1
35 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic
Solving nnn uFFuK 10111 .
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1
K1n
nu1
36 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic
Update displacements
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1u1
n
K1n
nu1
nnn uuu 11
11
37 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic
Compute and nuL 1int nuLFR 1
int1
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1u1
n
K1n
nu1
nuL 1int
nuR 1
38 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem – Newton by graphic
Matrix computation Solve system
Evaluate convergenceUpdate displacements
Solving non-linear problem – Newton by graphic
1 2
3 4
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1u1
n
K1n
nu1
nuL 1int
nuR 1
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1u1
n
K1n
nu1
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1u1
n
K1n
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1u1
n
K1n
nu1
39 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Matrix computation :
True Newton method : is evaluate every step and every Newton
iteration
Quasi-Newton method : is evaluate every i Newton's iteration and
every n time's step
1
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1
True Newton method
Slope changes
every Newton's
iteration
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1
Quasi Newton method
Slope doesn't
change every
Newton's
iteration
niK
niK
40 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Matrix computation :
Quasi-Newton method : compute approximate matrix (elastic matrix)
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1
True Newton method
Slope is
coherent matrix
u*= u2
Lext
u
Lint
u0
F*= F2
F0
F 1
u1
Quasi Newton method
Slope is elastic
matrix
1
41 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
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
1
42 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Solve system : using direct solver or iterative solver 2
43 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Update displacement - Improving by line-search - Method
Solving is equivalent to minimizing functional
Solving give the direction of the solution
Solving functionnal minimisation give the line-search coefficient
Update displacements
3
11. nnn RuK 11. nnn RuK nu
nnn uuu .1
44 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Update displacement - Improving by line-search - Functional
Functional (scalar) J is :
With is the density of free energy, for hyperelastic material :
This functional is convex, minimizing convex function → its gradient
vanishes :
Gradient vanishes <=> Virtual power
Find equilibrium : minimize J scalar functional
3
dutdufduuJu .....)(
u
uEuuuJ ~~0~).(
uEuduugduufduug
~~.~:)(.~:)(.~:
45 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Update displacement - Improving by line-search - Minimize
functional
Derivative of the functional
Scalar functional
Using classical method for minimizing scalar convex function (dichotomy
for instance)
3
0)()( 11int nn
extnn uuLuuL
0)()(.)( 11int nn
extnnn uuLuuLug
46 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
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
3
47 - Code_Aster and Salome-Meca course material GNU FDL Licence
Solving non-linear problem
Evaluate convergenceAbsolute (RESI_GLOB_MAXI)
Relative (RESI_GLOB_RELA)
By reference : giving stress reference (RESI_REFE_RELA)
4
1int,next LL
ext
next
L
LL 1int,
refk
k
next LLL .1int,
48 - Code_Aster and Salome-Meca course material GNU FDL Licence
Using non-linear in Code_Aster
49 - 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
Steel on all mesh
FSIGM = LIRE_FONCTION(UNITE=21,PARA='EPSI')
STEEL = DEFI_MATERIAU(ELAS=_F(YOUNG=210.E9,NU=0.3),
TRACTION=_F(SIGM=FSIGM))
CHMA = AFFE_MATERIAU(MAILLAGE=MESH,
AFFE=_F(TOUT='OUI',
MATER='STEEL'))
50 - 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'),
...)
51 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster
Loading : parametrized by time – Using function in FONC_MULT
RESUN = STAT_NON_LINE(...
EXCIT=_F(CHARGE =LOAD,
FONC_MULT=RAMPE)
...)
RAMPE = DEFI_FONCTION(PARA='INST',VALE=(0,0,2,2))
LOAD = AFFE_CHAR_MECA(MODELE=MOD,
PRES_REP=_F(PRES=100.,
GROUP_MA='TOTO'))
Lext
t0
200
2
)(.)())(,( uLtgtutL extext
52 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster
Loading : parametrized by time – Using function directly in BC
RESUN = STAT_NON_LINE(...
EXCIT=_F(CHARGE =LOAD)
...)
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'))
Lext
t0
200
2
)(.)())(,( uLtgtutL extext
53 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster
Computing is parametrized by time
L_INST=DEFI_LIST_REEL( DEBUT=0.0,
INTERVALLE=(
_F(JUSQU_A=1.0,NOMBRE=4,),
_F(JUSQU_A=2.0,NOMBRE=3,),
),)
Timet
0.0 2.01.0
RESUN = STAT_NON_LINE(...
INCREMENT=_F(LIST_INST=L_INST)
...)
54 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster
Loading and time definition must been consistent
Computation on part of stepRESUN = STAT_NON_LINE(...
INCREMENT=_F(LIST_INST=L_INST,
INST_FIN =1.0)
...)
Timet
0.0 2.01.0
Lext
t0
200
2
!
55 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster – Advanced controls
Automatic step cut : no convergence → automatic cutting
RESUN = STAT_NON_LINE(...
INCREMENT=_F(LIST_INST=DEFLIST)
...)
DEFLIST = DEFI_LIST_INST(
DEFI_LIST = _F(
LIST_INST = L_INST,),
ECHEC = _F(
EVENEMENT = 'ERREUR',
ACTION = 'DECOUPE',),)
L_INST=DEFI_LIST_REEL( DEBUT=0.0,
INTERVALLE=(
_F(JUSQU_A=1.0,NOMBRE=4,)
_F(JUSQU_A=2.0,NOMBRE=3,),
),)
56 - 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,),
),)
RESUN = STAT_NON_LINE(...
INCREMENT=_F(LIST_INST=DEFLIST)
...)
DEFLIST = DEFI_LIST_INST( DEFI_LIST = _F(
METHODE = 'AUTO‘
LIST_INST = L_INST,
PAS_MINI = 1.E-6),)
57 - 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
Quasi-Newton method : recompute matrix every 3 time's step
Quasi-Newton method : using elastic matrix
Default values in Code_Aster
RESUN = STAT_NON_LINE(...
NEWTON=_F(REAC_ITER=2,),)
RESUN = STAT_NON_LINE(...
NEWTON=_F(REAC_INCR=3,),)
RESUN = STAT_NON_LINE(...
NEWTON=_F(MATRICE='ELASTIQUE',),)
RESUN = STAT_NON_LINE(...
NEWTON=_F( REAC_INCR=1,
REAC_ITER=0,
MATRICE=‘TANGENTE’,),)
!
58 - Code_Aster and Salome-Meca course material GNU FDL Licence
Non-linear in Code_Aster – Advanced controls
Convergence criterion : careful when change values !
Changing criterion convergence may produces WRONG results
Maximum number of Newton's iteration
Elastic matrix uses thousands of Newton's iterations
Default values in Code_Aster
RESUN = STAT_NON_LINE(...
CONVERGENCE=_F(
RESI_GLOB_MAXI=1.E-6,
RESI_GLOB_RELA=1.E-6,),)
RESUN = STAT_NON_LINE(
CONVERGENCE=_F(ITER_GLOB_MAXI=20,),)
RESUN = STAT_NON_LINE(...
CONVERGENCE=_F(
ITER_GLOB_MAXI=10,
RESI_GLOB_RELA=1.E-6,),)
!
!
59 - 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.