Escolar Documentos
Profissional Documentos
Cultura Documentos
Outline
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
Non-linear material
Material non-linearity
Experimental identification : identify macroscopical response force/displacement
Non-linear material
Displacement/force function is not linear but not history dependent
u
C
Prescribed
displacement
AC
Response
C
Prescribed
force
u(C) = u(A)
F(C) = F(A)
Non-linear material
Displacement/force function is not linear and history dependent
u
C
Prescribed
displacement
C
Prescribed
force
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
Non-linear contact/friction
Contact and friction: a very difficult non-linear problem
pn
g
1
Response
(Signorini contact)
c
2
pt
Response
(Coulomb friction)
F
S 0 S
= lim
Ft
F0
S 0 S 0
Ft
S 0 S t
0 = lim
t = lim
(u ) =
1
u + t u
2
GNU FDL Licence
div + f = 0
.n = g on
u = ud on
Lcf (u ) on
in
u
c
u
ud
Geometry discretization :
[ g]
{xi }
x3
y3
y
x1
y1
x2
y2
x
{x} = [N g ].{xi }
[ ]
u3
v3
u1
v1
{u} = [N u ].{ui }
u2
v2
[N ] = [N g ] = [N u ]
u Eu
with
u~ Eu~
Virtual displacements
With
With
Eu
u~
(u~ ) =
1 ~
u + t u~
2
Eu~
Eu = {u
with u ( X ) = ud
X u }
(u ) = ( (u ))
Non-linear material depending on material's history (plasticity,...) :
(u ) = ( , (u ))
Internal variables
nb points
k .k
k =1
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
[Q(u )]
Non-linear material
{ (u )}
p(u)
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
t
Prescribed
volumic force
ud
C
Prescribed
surfacic force
C
Prescribed
displacement
Cutting
<=
u
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
( )
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
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
with
u n = (u n u n1 )
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
)
GNU FDL Licence
Lint
F*
F0
u*
u0
Lint
F *= F 2
F1
F0
u0
u *= u 2
u1
GNU FDL Licence
Lint
F *= F 2
F1
K 1n
F0
u0
u1n
u *= u 2
u1
GNU FDL Licence
Lint
F *= F 2
u1n
F1
K1
F0
u0
u1
u = u2
GNU FDL Licence
Lint
F *= F 2
u1n
F1
K 1n
F0
u0
u1n
u *= u 2
u1
GNU FDL Licence
Lint
F *= F 2
u1n
F1
( )
R u1n
( )
Lint u1n
K 1n
F0
u0
u1n
u *= u 2
u1
GNU FDL Licence
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
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
F0
u0
u1
u = u2
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
F0
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
J (u ).u~ = 0 u~ Eu~
Gradient vanishes <=> Virtual power
Scalar functional
}{
Evaluate convergence
Absolute (RESI_GLOB_MAXI)
Lext Lint,n1
Relative (RESI_GLOB_RELA)
Lext Lint,n1
ext
Lext Lint,n1
.Lref
k
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))
= AFFE_MATERIAU( MAILLAGE=MESH,
AFFE=_F( TOUT='OUI',
MATER='STEEL'))
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'),
...)
Non-linear in Code_Aster
Loading : parametrized by time Using function in FONC_MULT
Lext
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)
...)
Non-linear in Code_Aster
Loading : parametrized by time Using function directly in BC
Lext
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
...)
=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)
...)
Non-linear in Code_Aster
!
0.0
1.0
2.0
Lext
200
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
=
=
=
=
_F(
'AUTO
L_INST,
1.E-6),)
RESUN = STAT_NON_LINE(...
INCREMENT=_F(LIST_INST=DEFLIST)
...)
REAC_INCR=1,
!
REAC_ITER=0,
MATRICE='ELASTIQUE',),)
RESUN = STAT_NON_LINE(...
CONVERGENCE=_F(
RESI_GLOB_MAXI=1.E-6,
RESI_GLOB_RELA=1.E-6,),)
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.