Professional Documents
Culture Documents
Compplast
Compplast
Compplast
Fakultt fr Bauingenieurwesen
Master of Science Programme
Computational Engineering
Lecture Notes
Computational Plasticity
by
Dr. Ulrich Hoppe
Version 0.4
(special version for the
Vietnamese German University,
May 2010)
iii
Contents
1.
2.
3.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.
Material Behaviour . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1.
Elastic Material Behaviour . . . . . . . . . . . . . . .
1.1.2.
Viscoelastic Material Behaviour . . . . . . . . . . . .
1.1.3.
Elastoplastic Material Behaviour . . . . . . . . . . .
1.1.4.
Viscoplastic Material Behaviour . . . . . . . . . . . .
1.2.
Motivation: Friction Slider Experiment . . . . . . . . . . . . .
Elementary Models for OneDimensional Plasticity . . . . . . . . . .
2.1.
Perfect Plasticity Model . . . . . . . . . . . . . . . . . . . . . .
2.1.1.
Assumptions, Observations, Definitions . . . . . . .
2.1.2.
Model Summary . . . . . . . . . . . . . . . . . . . . .
2.1.3.
Stress-Strain Rate Form . . . . . . . . . . . . . . . . .
2.2.
Model for Isotropic Hardening Plasticity . . . . . . . . . . . .
2.2.1.
Additional Assumptions . . . . . . . . . . . . . . . .
2.2.2.
Model Summary . . . . . . . . . . . . . . . . . . . . .
2.2.3.
StressStrain Rate Form . . . . . . . . . . . . . . . . .
2.3.
Model for Isotropic and Kinematic Hardening Plasticity . . .
2.3.1.
Additional Assumptions . . . . . . . . . . . . . . . .
2.3.2.
Model Summary . . . . . . . . . . . . . . . . . . . . .
2.3.3.
Plastic Slip and Stress-Strain Rate Form . . . . . . .
Incremental Form of OneDimensional RateIndependent Plasticity
3.1.
Incremental Setting . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.
Isotropic Hardening Model . . . . . . . . . . . . . . . . . . . .
3.2.1.
Differential Algebraic Equations . . . . . . . . . . . .
3.2.2.
Incremental Equations . . . . . . . . . . . . . . . . .
3.2.3.
Operator Splitting . . . . . . . . . . . . . . . . . . . .
3.2.4.
Elastic Step (Predictor Step) . . . . . . . . . . . . . .
3.2.5.
Plastic Step (Corrector Step) . . . . . . . . . . . . . .
3.2.6.
Return Mapping . . . . . . . . . . . . . . . . . . . . .
3.2.7.
Analytical Solution of (1.1) . . . . . . . . . . . . . . .
3.2.8.
Return Mapping algorithm . . . . . . . . . . . . . . .
3.2.9.
Numerical Solution . . . . . . . . . . . . . . . . . . .
3.3.
Isotropic and Kinematic Hardening Model . . . . . . . . . . .
3.3.1.
Differential Equations . . . . . . . . . . . . . . . . . .
3.3.2.
Incremental Equations . . . . . . . . . . . . . . . . .
1
1
1
2
2
3
3
4
4
4
6
6
7
7
8
8
9
10
11
11
12
12
13
13
13
13
14
14
14
15
15
16
17
17
18
Contents
iv
3.3.3.
3.3.4.
3.3.5.
3.3.6.
3.3.7.
3.3.8.
3.3.9.
Operator Splitting . . . . . . . . . . . .
Elastic Step (Predictor Step) . . . . . .
Plastic Step (Corrector Step) . . . . . .
Return Mapping . . . . . . . . . . . . .
Analytical Solution of Equations (1.2)
Return Mapping Algorithm . . . . . .
Direct Numerical Solution . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.
2.
3.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.
2.
2.
3.
23
23
25
26
26
28
28
28
29
29
29
29
30
30
33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
B. Programming Exercises
1.
18
18
19
19
19
20
20
33
33
34
34
35
37
37
37
38
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
41
42
42
43
44
45
45
46
46
47
49
49
Contents
v
3.1.1.
3.1.2.
C. Literature
Theory . . . . . . . . . . . . . . . . . . . . . . . . . .
Numerical Jacobian Matrix . . . . . . . . . . . . . . .
49
51
53
Chapter
For an elastic material the strain follows the stress immediately and becomes zero
after stress release, cf. Fig. 1.1. The material behaviour is characterized by a direct
relation between stress and strain. When the relation between engineering stress
and strain is linear, the elastic behaviour is generally referred to as linear.
e
t
t1
t2
t
t1
t2
E:
elastic modulus.
E
s
,
e
e
t
t1
t2
t1
t2
viscosity.
h
s
,
e
For elastoplastic material behaviour the strain also follows the stress immediately
but there may be a permanent deformation after stress release, cf. Fig. 1.5.
A typical system that is used to model rigid plastic behaviour is a friction slider,
cf. Fig. 1.6. The stress strain relationship of the friction slider is given by
= 0,
if || < Y ,
Y :
yield stress.
1. Introduction
e
e
p
e
t
t
t1
t2
t1
t2
s
y
s
,
e
e
t
t1
t2
t
t1
t2
An experiment using a friction slider and a spring is carried out during the lecture,
cf. Fig. 1.9. We observe that the friction slider starts sliding when the applied stress
(force) reaches a certain flow stress. Neglecting dynamic effects we further observe
that the applied stress cannot be greater than the flow stress.
h
H
E
s
,
e
s
y
Figure 1.8.: Viscoplastic (Perzyna) model
(i) The total strain splits into an elastic part e and a plastic part p
= e + p .
(ii) The stress is given by the linear elastic relationship
= Ee = E( p )
(iii) The stress cannot be greater in absolute value than Y . That means, the
admissible stresses are constrained to lie in an interval [Y , Y ]. The set of
admissible stresses is denoted by
E = { R |
f () := || Y 0} .
Y is called the flow stress or yield stress; f goes by the name yield function.
(iv) If || is less than the flow stress, no change in p takes place, that is,
p = 0 if f () < 0.
We say the instantaneous response is elastic. The elastic range is defined as the
open set
int E = { R | f () := || Y < 0} .
(v) A change in p can take place only if f () = 0. If this condition is met the
material experiences slip in the direction of the applied stress with constant
slip rate 0.
(
+,
if = +Y > 0
p =
,
if = Y < 0
These cases can be recast into the following single equation
p = sign()
if f () = 0,
| f () := || Y = 0}
and
f () 0
6
2.1.2. Model Summary
f () 0,
() = 0
f
We derive the rate form of the stress for the perfect plasticity model. The complementary condition f = 0 implies that when f < 0 we will have = 0 and when
> 0 we will have f = 0.
In the first case = 0 the material shows instantaneous elastic response. Thus
p = 0 and we obtain the rate form = E .
f
f
E
E sign().
=
Using
|x|
= sign(x)
x
and (sign(x))2 = 1
we obtain
=0
f = sign()E E
= sign().
for f () = 0
if f < 0
if f = 0
e
emax
t
Figure 1.10.: Straintime function applied in subsequent tension tests
s
sy
e
emax
-sy
Real metal materials do not show perfect plastic behaviour, but exhibit a characteristics known as work or strain hardening. Strain hardening is the strengthening
of a metal by plastic deformation. This strengthening occurs because of dislocation movements within the crystal structure of the material. The difference in the
stressstrain curve between strain hardening material and perfect plastic material
is shown in Fig. 1.12.
2.2.1. Additional Assumptions
work hardening
s
perfect plasticity
e
f (, ) 0,
(, ) = 0
f
In the first case = 0 the material shows instantaneous elastic response. Thus
p = 0 and we obtain the rate form = E .
f =
= sign()E( p ) + K
= sign()E (E
+ K) = 0
=
E
sign()
E+K
E
if f < 0
=
.
EK
if f = 0
E+K
The stress response of a body subjected to the straintime function shown in
Fig. 1.10 is given in Fig. 1.13.
s
Ka
sy
Es
Es
emax
-sy
Ka
While tensile cold working increases the tensile yield strength, the local initial
compressive yield strength after tensile cold working is actually reduced. This
effect is known as Bauschinger effect Fig. 1.14. The simple isotropic hardening
model does not account for this effect. To include the Bauschinger effect into the
model we will add the so-called backstress q to model kinematic hardening.
10
Bauschinger effect
sy
2sy
e
sy
Figure 1.14.: Bauschinger effect
2.3.1. Additional Assumptions
11
=q
overstress
= ,
sign( q)
q = H
Yield function
f (, q, ) = | q| (Y + K) 0
KuhnTucker complementary conditions
0,
f (, q, ) 0,
(, q, ) = 0
f
= sign( q) (E( p ) q)
+ K
= sign( q)E (E
+ H + K) = 0
=
E
sign( q)
E+H +K
12
Ka+q
sy
Es
Es
emax
-sy
We consider strain driven problems where the strain is given as a function of time.
The continuous time scale is discretized into separate time steps. For simplicity we
assume that the time steps t are of equal duration. The discrete time instances
t0 , t1 , t2 , . . . are indicated by subscripts. A general instance is often denoted tn and
tn+1 is the subsequent time instance, e.g.
tn+1 = tn + t.
A time dependent function, e.g. the strain , which is evaluated at tn will e denoted
n (tn ). A strain increment is written n and denoted by
n+1 = n + n .
13
f (, ) = || (Y + K) yield function
0,
(, ) = 0 KuhnTucker complementary conditions
f (, ) 0,
f
3.2.2. Incremental Equations
The differential equations will be transformed into an incremental form using the
backward Euler method. The algebraic equations will be evaluated at the time
instant tn+1 . Then we obtain
Flow rule
pn+1 pn
=
sign(n+1 )
t
t
Isotropic hardening law
n+1 n
=
t
t
Yield function
f (n+1 , n+1 ) = |n+1 | (Y + Kn+1 )
Complementary conditions
0,
fn+1 0,
fn+1 = 0
Using the backward Euler method the differential equations have been transformed into algebraic equations. Nevertheless, there are still two inequalities,
which avoid a direct solution of the algebraic equations. How do we get rid of
the inequalities ?
Answer: Operator splitting of the time step into an elastic and a plastic step:
predictor+
corrector
E sign()
= E( p ) =
p = sign =
= =
E
sign()
(, ) =
0 = f
(, )
f
14
3.2.4. Elastic Step (Predictor Step)
Summary
trial
fn+1
(
0
=
>0
elastic step, = 0
plastic step, > 0
If the trial state is not an admissible state then the trial stress lies outside of the
yield surface. The return mapping algorithm brings the stress back onto the yield
surface. A geometric interpretation of the algorithm is given in the figure Fig. 1.16.
trial
First, we find an expression for n+1 in terms of n+1
:
n+1 = E(n+1 pn+1 )
= E(n+1 pn ) E(pn+1 pn )
trial
= n+1
E sign(n+1 ).
trial
= n+1
E sign(n+1 )
p
= n + sign(n+1 )
= n +
= |n+1 | (Y + Kn+1 ) = 0.
(1.1)
This is a set of 4 algebraic equations to be solved for the unknowns n+1 , pn+1 ,
n+1 , .
The sign of the stress equals the sign of the trial stress:
trial
trial
n+1 = |n+1 | sign(n+1 ) = |n+1
| sign(n+1
) E sign(n+1 )
trial
trial
(|n+1 | + E) sign(n+1 ) = |n+1
)
| sign(n+1
|
{z
}
| {z }
>0
>0
trial
sign(n+1 ) = sign(n+1
)
trial
(|n+1 | + E) = |n+1 |.
trial
fn+1
(E + K) = 0
trial
fn+1
E+K
and hence we obtain from (1.1)
n+1
pn+1
n+1
fn+1
trial
Efn+1
trial
=
sign(n+1
)
E+K
trial
fn+1
p
trial
= n +
sign(n+1
)
E+K
f trial
= n + n+1
E+K
=0
trial
n+1
n+1
:= E+K
>0
trial
trial
n+1 := n+1 E sign(n+1
)
p
p
trial
n+1 := n + sign(n+1 )
n+1 := n +
end
15
16
return mapping
s
sy
EK/(E+K)
E
1
e
emax
We solve (1.1) by the NewtonRaphson method to show that the numerical solution and the analytical solution are identical. The set of nonlinear equations to be
solved reads
n+1 E(n+1 pn+1 )
0
pn+1 pn sign(n+1 ) 0
=
g(x) =
0
n+1 n
|n+1 | (Y + Kn+1 )
0
The vector of unknowns is
n+1
pn+1
x=
n+1 .
1
1
1
1
1
E 0
0
x1
x2
x3
x4
g
g
g
g
g
0
1
0 sign(n+1 )
21 x22 x23 x24
.
= x
J=
g3
g3
g3
g3 =
0
0
1
1
x x1 x2 x3 x4
g4
g4
g4
g4
sign(n+1 ) 0 K
0
x1
x2
x3
x4
K EK sEK sE
1
K
sK s
1
.
J1 =
E
1
E + K s sE
s sE K 1
17
The initial vector of unknowns is formed using the values of the unknowns at the
trial step
trial
n+1
pn
x0 =
n .
0
The iteration procedure reads
xi+1 = xi J(xi )1 g(xi ).
The first iteration results in
trial
n+1
n+1
pn+1 pn
1
n+1 = n E + K
0
K EK sEK sE
0
1
K
sK s
0 .
s sE
E
1
0
trial
s sE K 1 fn+1
| {z }
g(x0 )
trial
) we get
With s = sign(n+1 ) = sign(n+1
trial
fn+1
trial
n+1 =
E sign(n+1
)
E+K
f trial
trial
pn+1 = pn + n+1 sign(n+1
)
E+K
f trial
n+1 = n + n+1
E+K
trial
f
= n+1
E+K
trial
n+1
Here, we demonstrate that the procedure for the model with additional kinematic
hardening variables is similar and can easily be generalized for more complex
models.
3.3.1. Differential Equations
= ,
q = H sign() hardening laws
f (, q, ) = | q| (Y + K) yield function
0,
(, q, ) = 0 complementary conditions
f (, q, ) 0,
f
18
3.3.2. Incremental Equations
=
sign(n+1 qn+1 )
t
t
Isotropic and kinematic hardening law
qn+1 qn
=
H sign(n+1 qn+1 )
t
t
n+1 n
=
t
t
Yield function
fn+1 = f (n+1 , qn+1 , n+1 ) = |n+1 qn+1 | (Y + Kn+1 )
Complementary conditions
0,
fn+1 0,
fn+1 = 0
predictor
= E( p ) =
p = sign() =
= =
sign() =
q = H
(, q, ) =
0 = f
E
0
corrector
E sign()
sign()
sign()
H
(, q, )
f
trial
qn+1
= qn
Yield function
trial
trial
trial
fn+1
= |n+1
| (Y + Kn+1
)
19
trial
= n+1
E sign(n+1 )
p
= n + sign(n+1 )
= qn + H sign(n+1 )
= n +
= |n+1 qn+1 | (Y + Kn+1 ) = 0,
with n+1 = n+1 qn+1
(1.2)
This is a set of 5 algebraic equations to be solved for the unknowns n+1 , pn+1 , qn+1 ,
n+1 , . Numerical algorithm: NewtonRaphson (see appendix)
3.3.7. Analytical Solution of Equations (1.2)
trial
sign(n+1 ) = sign(n+1
)
trial
(|n+1 | + (E + H)) = |n+1
|
20
trial
fn+1
(E + H + K) = 0
=
trial
fn+1
E+H +K
n+1
:= E+K+H
>0
trial
trial
)
n+1 := n+1 E sign(n+1
p
p
trial
n+1 := n + sign(n+1 )
trial
qn+1 := qn + H sign(n+1
)
n+1 := n +
end
We solve (1.2) by the NewtonRaphson method to show that the numerical solution and the analytical solution is identical. The set of nonlinear equations to be
solved reads
H
sign(
)
0
g(x) =
=
n
n+1
n+1
n+1 n
0
|n+1 | (Y + Kn+1 )
with n+1 = n+1 qn+1 . The vector of unknowns is
n+1
pn+1
x=
qn+1 .
n+1
21
1
E
0
0
0
x1
x2
x3
x4
x5
g2 g2 g2 g2 g2
0
1
0
0
sign(n+1 )
x2
x3
x4
x5
1
g
x
g3
g3
g3
g3
g3
0
0
1
0
H
sign(
)
= x1 x2 x3 x4 x5 =
J=
n+1
x g4 g4 g4 g4 g4
0
0
0
1
1
x1 x2 x3 x4 x5
g5
g5
g5
g5
g5
sign(n+1 ) 0 sign(n+1 ) K
0
x1
x2
x3
x4
x5
Next we have to compute the inverse of J. Again we use the shorthand form with
s = sign n+1 :
H + K E(K + H)
E
sEK
sE
1
H +K
1
sK
s
1
1
H
EH
E + K sKH sH
J =
.
E+K +H
s
sE
s
E + H 1
s
sE
s
K
1
The initial vector of unknowns is chosen to be
trial
n+1
pn
.
q
x0 =
n
n
0
The iteration procedure reads
xi+1 = xi J(xi )1 g(xi ).
The first iteration results in
p p
n+1
n
qn+1 qn
1
n+1 = n E + K + H
H + K E(K + H)
E
sEK
sE
0
1
H +K
1
sK
s
0
H
EH
E + K sKH sH 0
.
s
sE
s
E + H 1
0
trial
s
sE
s
K
1
f
| n+1
{z }
g(x0 )
We obtain
trial
fn+1
E+K +H
trial
fn+1
trial
)
pn+1 = pn + sign(n+1
E+K +H
trial
fn+1
trial
qn+1 = qn + sign(n+1
)H
E+K +H
trial
fn+1
n+1 = n +
E+K +H
trial
fn+1
=
E+K +H
Again, the NewtonRaphson scheme converges within 1 iteration to the analytical
solution.
trial
trial
n+1 = n+1
sign(n+1
)E
23
Chapter
Three-dimensional Rate-Independent
Plasticity
1. Stress Space Formulation
1.1. Model Description
ux
1
1
u + (u)T = (ui,j + uj,i )ei ej
2
2
The total strain splits into an elastic part e and a plastic part p
= e + p ,
| f (, q) 0} .
(2.1)
| f (, q) < 0} ,
(2.2)
| f (, q) = 0} .
(2.3)
24
p = r(,
q),
q = h(,
q),
(2.4)
(, q) = 0.
f
f (, q) 0,
(2.5)
(2.6)
= 0.
= C : .
This type of response is called instantaneous elastic.
(b) If {, q} E , then we have f (, q) = 0. Whether is positive or zero is
concluded from the consistency condition:
(1) If f(, q) < 0 then we conclude that
f = 0 and f < 0
= 0.
f <0
(, q) int(E )
f =0
(, q) E
= 0 (elastic)
25
In the case of plastic loading we evaluate the time derivative of f with respect to
the variables and q and make use of the consistency condition
f = f : + q f q
= f : C : ( p ) + q f q
= f : C : ( f : C : r + q f h) = 0.
(2.7)
We assume that
( f : C : r + q f h) > 0
(2.8)
for all admissible states (, q) E . (Proof: see book of Simo & Hughes). Then we
obtain
f = 0
f : C :
.
( f : C : r + q f h)
(2.9)
(2.10)
f : C : 0.
C
if
Cep =
C : r C : f
C
if
f : C : r + q f h
(2.11)
Note that Cep is generally nonsymmetric for arbitrary r except in the case for which
r(, q) = f (, q)
which has special significance and is called an associative flow rule.
(2.12)
26
1.3. Model Summary
| f (, q) < 0} ,
p = r(,
q),
q = h(,
q),
particular associative model
f
p =
,
f ,
q = D
q
D : matrix of generalized palstic moduli
Kuhn-Tucker complementary conditions
0,
f (, q) 0,
(, q) = 0.
f
Exercise 2.1. Show that the one-dimensional elastoplastic model with isotropic and kinematic hardening is obtained if q, f and D are chosen as follows
K 0
q = (, ) ,
f (, q) = | + | (Y + K),
D=
.
0 H
A : A ofqa tensor A. Since this norm equals the second fundamental invariant
27
k dev()k = ((
11 0 0
= 0 0 0 .
0 0 0
Inserting this representation into the expression for the stress deviator norm yields
r
2
1
2 1/2
2
) =
11 .
k dev()k = (11
11
3
3
p
Hence, an effective stress value has to be scaled by the factor 2/3.
The equations for the J2 flow theory with hardening read
= dev() ,
tr() = 0,
r
2
f (, q) = kk
K(),
3
p = N,
N :=
,
kk
2
= H 0 ()N,
3
r
2
=
.
3
The equivalent plastic strain can be defined by
r Z t
r
Z tr
Z tr
2 p
2
2
2
k (t)k dt =
kNk
dt =
dt =
.
(t) =
3
3
3 0
3
0
0
q
[0, 1],
H0 = const,
28
Saturation-type hardening
K() = Y + H0 + (K K0 )(1 e ),
K K0 0, 0.
f : C :
N :
=
0 +K 0 ,
( f : C : r + q f h)
1 + H 3
with N =
.
kk
Finally, we get the matrix of elastoplastic tangent moduli for the J2 flow theory
#
"
N
N
1
.
(2.13)
Cep = I I + 2 I I I
0 +K 0
3
1 + H 3
3. Integration Algorithm
3.1. Strain-driven Problems
The governing equations and differential equations are evaluated at the time instant tn+1 and result in the following discrete equations:
Elastic stress-strain relationship
n+1 = C : en+1 = C : (n+1 pn+1 ),
Flow rule and hardening law
pn+1 = pn + f ( n+1 , qn+1 ),
qn+1 = qn D q f ( n+1 , qn+1 )
Kuhn-Tucker loading/unloading conditions
0,
f ( n+1 , qn+1 ) 0,
f ( n+1 , qn+1 ) =0
.
3. Integration Algorithm
29
We assume that the plastic deformation is frozen ( = 0) and obtain trial values
for the following variables
p
e,trial
n+1 = n+1 n ,
e,trial
trial
n+1 = C : n+1 ,
p
p,trial
n+1 = n ,
qtrial
n+1 = qn ,
trial
trial
fn+1
= f ( trial
n+1 , qn+1 ).
The trial values for the yield function can be used to check whether plastic loading
happens within this time increment. If f is convex, then the trial value f trial is
always greater than or equal to the real value of f ,
trial
fn+1
fn+1 .
trial
Hence, whether loading or unloading applies is decided solely from fn+1
according to the conditions
trial
fn+1
0
= 0,
(elastic step)
trial
fn+1
> 0,
(plastic step)
>0
In the case of J2 flow theory the previous equations take the following specific
form:
n+1 = C : (n+1 pn+1 ),
pn+1 = pn + Nn+1 ,
r
2
n+1 = n +
,
3
r
2
n+1 = n +
Hn+1 Nn+1 .
3
0 into the following form
Here, we have transformed H
r
r
3
3
0
0
() =
H(),
H
H () =
2
2
which is recast in to the discrete form
r
r
r
3
3
3
H()t =
Hn+1 =
(H(n+1 ) H(n )) .
2
2
2
The normal tensor N is defined by
Nn+1 =
n+1
.
k n+1 k
30
3.4.2. Trial State
We use s = dev to denote the stress deviator and e = dev to denote the strain
deviator. Then we obtain
strial
n+1 = sn + 2en+1 ,
trial
trial
n+1 = sn+1 n .
#
2
Hn+1 Nn+1 .
3
trial
n+1
trial
k n+1 k
K(
)
2
+
H
n+1
n+1
n+1
3
3
H 0 (n+1 )+K 0 (n+1 )
g() = 2 1 +
3
n+1 n +
g()
g()
q
end
Result: Value of which satisfies the consistency condition
In order to obtain a matrix of tangent moduli which is consistent with the solution
algorithm, we linearize the stress-strain relationship and obtain
h
i
.
n+1 ,
n+1 = C : n+1 2 () Nn+1 + N
Nn+1
= C 2Nn+1
2
: n+1 .
n+1
n+1
3. Integration Algorithm
31
kk
K 0 (n+1 ) + H 0 (n+1 )
= 1+
Nn+1
n+1
3
The term
K(n )
n+1
3
trial
0 then
if fn+1
p
n+1 = pn
n+1 = n
n+1 = n
n+1 = strial
n+1 + (tr n+1 )I
else
Compute from Algorithm ?? and set
nn+1 =
trial
n+1
ktrial
n+1 k
n+1 = n +
Update the back stress, the plastic strain, and the stress:
q
n+1 = n + 23 (H(n+1 ) H(n ))nn+1
pn+1 = pn + nn+1
n+1 = strial
n+1 + (tr n+1 )I 2nn+1
Compute the consistent elastoplastic
tangent moduli:
1
Cn+1 = I I + 2n+1 I 3 I I 2n+1 nn+1 nn+1
with
2
n+1 = 1 trial
k n+1 k
1
n+1 =
(1 n+1 )
K 0 (n+1 )+H 0 (n+1 )
1+
3
end
A comparison of the continuum elastoplastic tangent and the constistent elastoplastic tangent moduli results in the following observations: For large time steps
the consistent tangent moduli may differ significantly from the continuum elastoplastic tangent moduli. However, as t 0 and 0 the consistent and
continuum elastoplastic tangent moduli conincide.
33
Appendix
z Rn
z1
f1 (z1 , z2 , . . . , zn )
z2 f2 (z1 , z2 , . . . , zn )
.. =
..
.
.
zn
fn (z1 , z2 , . . . , zn )
Especially for a system of linear ODE we can write
z = A z,
z Rn
34
1.2. Generalized midpoint rule
zn+1 z(tn+1 ) = zn + k1 t,
k1 = f (zn + k1 t)
Special cases:
(i) Forward Euler Method (Explicit Euler method): = 0
k1 = f (zn ) =
Zn+1 zn
t
1
Zn+1 zn
k1 = f (zn + k1 t) =
2
t
1
zn+1 zn + f ( (zn+1 + zn ))t.
2
k1 = f (zn + k1 t) =
(iii) Midpoint rule: =
1
2
1.3. Accuracy
1 d2 z
dz
t +
t2 + . . .
z(tn + t) = z(tn ) +
dt t=0
2 dt2 t=0
1
= z(tn ) + f (zn )t + f 0 (zn )f (zn )t2 + . . .
2
d
z
1 d2 z
z(tn + t) = z(tn ) +
t +
t2 + . . .
2
dt t=0
2 dt t=0
d(k1 t)
1 d2 (k1 t)
= z(tn ) +
t +
t2 + . . .
dt t=0
2 dt2 t=0
= z(tn ) + f (zn )t + f 0 (zn )f (zn )t2 + . . .
Absolute error: e = ( 21 )f 0 (zn )f (zn )t2 + . . .
Summary: Forward Euler and Backward Euler are first order accurate, midpoint
rule is second order accurate.
35
x(0) = x0
1 + (1 )
1 + (1 )h
xn =
xn = zxn ,
1 h
1
where = h.
36
Here z denotes the amplification factor. This is the amount by which the solution
at one step is multiplied to get the next step, hence the name. If is complex, so
is z. The criterion for stability is that its modulus does not exceed unity:
|z| = |
1 + (1 )
| 1.
1
(A.1)
.
(A)
(A.1)
isgives
verified
0, the integrator is called A-stable.
fact,goes
setting
=asIf0in
(3.5)
A = for
1 +all
, hwhich
2 and goes to as .
Obviously (A) is the most desirable objective, followed by (C), whereas (U) is
unacceptable.
1
hen the
z
BE
d orderthe
1
when
0z
BE
ion plot
ond
order
TR
Stable
0
lay that
ation
plot 1
TR
Stable
ections,
splay that
FE
1
ing
the
irections, 2
FE
Unstable
e.
Thethe
wing
2
3
Unstable
mplex
ze. The
0
4
2
1
h
ctively,
3
omplex
0
4
2
1
= h factor
s. This
Figure 3.2. Amplication
z for real , =
pectively,
h [0, 4] and three integrators.
ons. This
Figure 3.2. Amplication factor z for real , =
h [0, 4] and three integrators.
s[(1+(1-)*)/(1-*)]<=1,1,0];
The complex case is of particular interest when the test equation comes from the
R+I*I,0],{R,-4,0},{I,-2,2},
Abs[(1+(1-)*)/(1-*)]<=1,1,0];
reduction of a second order equation with oscillatory solutions. An amplification
ourLines->False];
[R+I*I,0],{R,-4,0},{I,-2,2},
plot can be done with a 2D plot over the complex plane, with <[] and =[] along
ntourLines->False];
and3.4.
y, respectively,
nerate the plot ofxFigure
37
There are methods with a rational stability function z(), for which A-stability is
not as desirable a property as it seems to be, because for rational stability functions
z() we have that for real and very negative, |z()| is less than 1 but very close
to 1, so that the stiff components are damped out very slowly. This motivates the
following definition:
(L) L-STABILITY: A method is said to be L-stable if is A-stable and if in addition
lim z() 0,
as 1
(C)
1+
2
MP
1
(A)
1
2
1
BE
0
(L)
1
accuracy
1st order
2nd order
1st order
1.5. Exercises
z = A z,
with
0 1
A=
1 0
= (I + (1 )tA) zn + A zn+1 t,
1 0
I=
0 1
38
*/
i = 0 /* iteration counter
*/
repeat
i)
xi = ff0(x
(xi )
xi+1 = xi + xi
i=i+1
if i>IMAX then ERROR: No convergence within IMAX iterations
until xi < T OL
f1 (x1 , x2 , . . . , xn )
f2 (x1 , x2 , . . . , xn )
f (x) =
= 0.
..
.
fn (x1 , x2 , . . . , xn )
It is described in Algorithm
Jacobian matrix
f1 f1
...
x1
x2
f2 f2 . . .
J(x) = x. 1 x. 2
..
..
fn
x1
fn
x2
...
.
..
.
fn
xn
39
41
Appendix
Programming Exercises
1. Programming Exercise 1 (Numerical Time Integration)
1.1. Exercises
Download the source files from the blackboard course page. Unpack the source
files and compile the main program TimeIntegration.java using your favorite java
programming environment (netbeans, eclipse, etc.).
Please note that the jar-file plot.jar has to be included in the project.
The following ordinary differential equations are implemented in the program
code:
(i) Damped harmonic oscillation
x(t) + 2 x(t)
+ 2 x(t) = 0,
Parameters: ,
Initial conditions: x0 ,
x(t = 0) = x0 ,
x(t
= 0) = v0 .
v0
x0
B. Programming Exercises
42
At first, we apply the general midpoint rule to replace the differential equations
by difference equations of the following form
zn+1 zn
= f (zn+1 + (1 )zn ).
t
These equations can be recast into
g(zn+1 ) := zn+1 zn f (zn+1 + (1 )zn )t = 0.
Let us denote the unknowns zn+1 by z and let us introduce zn+ = zn+1 +(1)zn .
Then the set of (nonlinear) equations to be solved reads
g(z) = 0,
g1 (z1 , z2 , . . . , zn )
g2 (z1 , z2 , . . . , zn )
g(z) =
= 0.
..
.
gn (z1 , z2 , . . . , zn )
It is described in Algorithm
Jacobian matrix
g1 g1
...
z1
z2
g2 g2 . . .
J(z) = z. 1 z. 2
..
..
gn
z1
gn
z2
...
.
..
.
gn
zn
*/
repeat
zi = J1 (zi ) g(zi )
zi+1 = zi + zi
i=i+1
if i>IMAX then ERROR: No convergence within IMAX iterations
until kzi k < T OL
The function f and its derivative with respect to z are computed in a single method
named get_f_dfdz. As an example consider the differential equation x(t)
43
t
z=
.
x
=
=
=
=
0.0;
0.0;
d e l t a Math . cos ( z [ 0 ] ) ;
d e l t a ;
The function g is obtained using g(z) = zzn f (zn+ )t. The derivative of g with
respect to z is the Jacobian matrix which is required to do the Newton-Raphson
iteration. It can be computed by
g
f
= I t,
z
z
where I is the identity matrix. This is implemented in the following code snippet
public void get_g_dgdz ( double [ ] g , double [ ] [ ] dgdz , double [ ] z ,
double [ ] z0 , double dt , double alpha )
{
i n t n = get_num_equations ( ) ;
double [ ] z_alpha = new double [ n ] ;
double [ ] f = new double [ n ] ;
double [ ] [ ] dfdz = new double [ n ] [ n ] ;
f o r ( i n t i = 0 ; i <n ; ++ i ) z_alpha [ i ] = alpha z [ i ] +
(1.0 alpha ) z0 [ i ] ;
g e t _ f _ d f d z ( f , dfdz , z_alpha ) ;
f o r ( i n t i = 0 ; i <n ; ++ i )
{
g [ i ] = z [ i ] z0 [ i ] f [ i ] dt ;
B. Programming Exercises
44
f o r ( i n t j = 0 ; j <n ; ++ j )
{
i f ( i == j )
{
dgdz [ i ] [ j ] = 1 . 0 dfdz [ i ] [ j ] alpha dt ;
}
else
{
dgdz [ i ] [ j ] = 0 . 0 dfdz [ i ] [ j ] alpha dt ;
}
}
}
}
Finally, the nonlinear equations are solved using the Newton-Raphson scheme
described above. The corresponding code reads
public void do_timestep ( double [ ] z , double dt , double alpha )
{
i n t n = get_num_equations ( ) ;
double norm_g ;
double dz ;
double [ ] z0 = new double [ n ] ;
double [ ] g = new double [ n ] ;
double [ ] [ ] dgdz_inv = new double [ n ] [ n ] ;
double [ ] [ ] dgdz = new double [ n ] [ n ] ;
/ / NewtonRaphson i t e r a t i o n
f o r ( i n t i = 0 ; i < m a x _ i t e r a t i o n s ; ++ i )
{
get_g_dgdz ( g , dgdz , z , z0 , dt , alpha ) ;
norm_g = 0 . 0 ;
f o r ( i n t j = 0 ; j <n ; ++ j ) norm_g += g [ j ] g [ j ] ;
norm_g = Math . s q r t ( norm_g ) ;
i f ( norm_g < TOL) break ;
Li nea r_A lge bra . i n v e r s e _ m a t r i x ( dgdz_inv , dgdz ) ;
f o r ( i n t j = 0 ; j <n ; ++ j )
{
dz = 0 . 0 ;
f o r ( i n t k = 0 ; k<n ; ++k ) dz = dz + dgdz_inv [ j ] [ k ] g [ k ] ;
z [ j ] = z [ j ] dz ;
}
}
}
45
The differential-algebraic equations for our one-dimensional model of linear hardening plasticity read
= E( p
p = sign( q)
=
sign( q)
q = H
f (, q, ) = | q| (Y + K)
(, q, ) = 0.
0, f (, q, ) 0, f
We use the general midpoint rule to tranfer the differential equations into a timediscrete form, but we evaluate the algebraic equations at tn+1
n+1 = E(n+1 pn+1 )
pn+1 pn = sign(n+ qn+ )
n+1 n =
qn+1 qn = H sign(n+ qn+ )
f (n+1 , qn+1 , n+1 ) = |n+1 qn+1 | (Y + Kn+1 )
0, f (n+1 , qn+1 , n+1 ) 0,
These equations are solved using a predictor-corrector scheme: In a first step (the
trial step), we assume that the response is elastic and, hence, = 0. Then we
obtain the following trial values:
trial
n+1
= E(n+1 ptrial
n+1 )
p
ptrial
n+1 = n
trial
n+1
= n
trial
qn+1
= qn
trial trial
trial
trial
trial
trial
f trial (n+1
, qn+1 , n+1
) = |n+1
qn+1
| (Y + Kn+1
)
trial trial
trial
Next, we check, whether the trial values satisfy the inequality f trial (n+1
, qn+1 , n+1
)
0. If the inequality is satisfied, then the trial values are the final values of this time
increment and the instantaneous response is elastic. If the inequality is not satisfied, then we conclude that > 0 and, hence, f (n+1 , qn+1 , n+1 ) = 0 becomes an
additional equation and completes the system of 5 equations g(z)
g1
g2
g3
g4
g5
B. Programming Exercises
46
= n+1 (tn+1 ) = 0
= n+1 E(n+1 pn+1 ) = 0
= pn+1 pn sign(n+ qn+ ) = 0
= n+1 n = 0
= qn+1 qn H sign(n+ qn+ ) = 0
= f (n+1 , qn+1 , n+1 ) = |n+1 qn+1 | (Y + Kn+1 ) = 0
which has to be solved for the six unknowns n+1 , n+1 , pn+1 , qn+1 , n+1 , .
The solution is obtained using the NewtonRaphson method. The start vector is
the vector resulting from the trial step
n+1
trial
n+1
p
n
z0 =
n .
qn
0
To apply the newton-Raphson scheme we have to compute the Jacobian matrix
g0
J=
g
=
z
z0
g1
z0
g2
z0
g3
z0
g4
z
0
g5
z0
g0
z1
g1
z1
g2
z1
g3
z1
g4
z1
g5
z1
g0
z2
g1
z2
g2
z2
g3
z2
g4
z2
g5
z2
g0
z3
g1
z3
g2
z3
g3
z3
g4
z3
g5
z3
1
0
E
1
g
0
0
J=
=
0
z
0
0
0
0 sign(n+1 )
g0
z4
g1
z4
g2
z4
g3
z4
g4
z4
g5
z4
g0
z5
g1
z5
g2
z5
g3
z5
g4
z5
g5
z5
0
0
0
0
E 0
0
0
1
0
0
sign(n+ )
0
1
0
1
0
0
1
H sign(n+ )
0 K sign(n+1 )
0
47
2.2.2. MaterialModel_LinHardeningPlasticity.java
B. Programming Exercises
48
double K = m a t e r i a l _ p a r a m e t e r [ 2 ] ;
double H = m a t e r i a l _ p a r a m e t e r [ 3 ] ;
z _ t r i a l [0] = compute_total_strain ( t ) ;
z _ t r i a l [ 1 ] = E ( c o m p u t e _ t o t a l _ s t r a i n ( t ) z0 [ 2 ] ) ;
z _ t r i a l [ 2 ] = z0 [ 2 ] ;
z _ t r i a l [ 3 ] = z0 [ 3 ] ;
z _ t r i a l [ 4 ] = z0 [ 4 ] ;
z _ t r i a l [ 5 ] = Math . abs ( z _ t r i a l [ 1 ] z0 [ 4 ] ) ( sigmaYield + K z0 [ 3 ] ) ;
return z _ t r i a l [ 5 ] ;
}
=
=
=
=
=
49
N :=
p = N,
,
kk
2
= (Hkin N + Hnl ) ,
3
r
2
=
.
3
Discrete equations using the backward Euler method
g0 = n+1 (tn+1 )
g1 = n+1 C : (n+1 pn+1 )
= dev .
B. Programming Exercises
50
double [ ] n = new double [ 6 ] ;
double norm_xi ;
double E = m a t e r i a l _ p a r a m e t e r [ 0 ] ;
double nu = m a t e r i a l _ p a r a m e t e r [ 1 ] ;
double lambda = Enu / ( ( 1 + nu ) (1 2nu ) ) ;
double mu = E/ ( 2 ( 1 + nu ) ) ;
double s i g m a _ y i e l d = m a t e r i a l _ p a r a m e t e r [ 2 ] ;
double Hiso = m a t e r i a l _ p a r a m e t e r [ 3 ] ;
double Hkin = m a t e r i a l _ p a r a m e t e r [ 4 ] ;
double Hnl = m a t e r i a l _ p a r a m e t e r [ 5 ] ;
/ / devsig
devsig [ 0 ]
devsig [ 1 ]
devsig [ 2 ]
devsig [ 3 ]
devsig [ 4 ]
devsig [ 5 ]
/ / xi
xi [0]
xi [1]
xi [2]
xi [3]
xi [4]
xi [5]
=
=
=
=
=
=
=
=
=
=
=
=
=
=
dev ( sigma )
z [6] ( z [6]+ z [7]+ z [ 8 ] ) /3.0;
z [7] ( z [6]+ z [7]+ z [ 8 ] ) /3.0;
z [8] ( z [6]+ z [7]+ z [ 8 ] ) /3.0;
z[9];
z[10];
z[11];
devsig
devsig [ 0 ]
devsig [ 1 ]
devsig [ 2 ]
devsig [ 3 ]
devsig [ 3 ]
devsig [ 5 ]
beta
z[19];
z[20];
z[21];
z[22];
z[23];
z[24];
/ / norm ( x i )
norm_xi = Math . s q r t ( x i [ 0 ] x i [ 0 ] + x i [ 1 ] x i [ 1 ] + x i [ 2 ] x i [ 2 ] +
2 x i [ 3 ] x i [ 3 ] + 2 x i [ 4 ] x i [ 4 ] + 2 x i [ 5 ] x i [ 5 ] ) ;
/ / n = x i / norm ( x i )
i f ( norm_xi > 1 . 0 e 8)
{
n [ 0 ] = x i [ 0 ] / norm_xi ;
n [ 1 ] = x i [ 1 ] / norm_xi ;
n [ 2 ] = x i [ 2 ] / norm_xi ;
n [ 3 ] = x i [ 3 ] / norm_xi ;
n [ 4 ] = x i [ 4 ] / norm_xi ;
n [ 5 ] = x i [ 5 ] / norm_xi ;
}
else
{
n[0] = 1.0;
n[1] = 1.0;
n[2] = 1.0;
n[3] = 0.0;
n[4] = 0.0;
n[5] = 0.0;
}
// total strain
g [0] = z [0] compute_total_strain ( t ) ;
g[1] = z [1];
g[2] = z [2];
g[3] = z [3];
g[4] = z [4];
g[5] = z [5];
// stress
51
g [ 6 ] = z [ 6 ] lambda ( z [ 0 ] + z [ 1 ] + z [ 2 ] ( z [ 1 2 ] + z [ 1 3 ] + z [ 1 4 ] ) )
2mu ( z [0] z [ 1 2 ] ) ;
g [ 7 ] = z [ 7 ] lambda ( z [ 0 ] + z [ 1 ] + z [ 2 ] ( z [ 1 2 ] + z [ 1 3 ] + z [ 1 4 ] ) )
2mu ( z [1] z [ 1 3 ] ) ;
g [ 8 ] = z [ 8 ] lambda ( z [ 0 ] + z [ 1 ] + z [ 2 ] ( z [ 1 2 ] + z [ 1 3 ] + z [ 1 4 ] ) )
2mu ( z [2] z [ 1 4 ] ) ;
g[9] = z [9]
2mu ( z [3] z [ 1 5 ] ) ;
g[10] = z [10]
2mu ( z [4] z [ 1 6 ] ) ;
g[11] = z [11]
2mu ( z [5] z [ 1 7 ] ) ;
// plastic strain
g [ 1 2 ] = z [ 1 2 ] z0 [ 1 2 ]
g [ 1 3 ] = z [ 1 3 ] z0 [ 1 3 ]
g [ 1 4 ] = z [ 1 4 ] z0 [ 1 4 ]
g [ 1 5 ] = z [ 1 5 ] z0 [ 1 5 ]
g [ 1 6 ] = z [ 1 6 ] z0 [ 1 6 ]
g [ 1 7 ] = z [ 1 7 ] z0 [ 1 7 ]
z [25]n [ 0 ] ;
z [25]n [ 1 ] ;
z [25]n [ 2 ] ;
z [25]n [ 3 ] ;
z [25]n [ 4 ] ;
z [25]n [ 5 ] ;
/ / alpha
g [ 1 8 ] = z [ 1 8 ] z0 [ 1 8 ] z [ 2 5 ] ;
/ / beta
g[19] =
g[20] =
g[21] =
g[22] =
g[23] =
g[24] =
z [19]
z [20]
z [21]
z [22]
z [23]
z [24]
z0 [ 1 9 ]
z0 [ 2 0 ]
z0 [ 2 1 ]
z0 [ 2 2 ]
z0 [ 2 3 ]
z0 [ 2 4 ]
z [ 2 5 ] ( Hkinn [ 0 ]
z [ 2 5 ] ( Hkinn [ 1 ]
z [ 2 5 ] ( Hkinn [ 2 ]
z [ 2 5 ] ( Hkinn [ 3 ]
z [ 2 5 ] ( Hkinn [ 4 ]
z [ 2 5 ] ( Hkinn [ 5 ]
+
+
+
+
+
+
Hnlz [ 1 9 ] )
Hnlz [ 2 0 ] )
Hnlz [ 2 1 ] )
Hnlz [ 2 2 ] )
Hnlz [ 2 3 ] )
Hnlz [ 2 4 ] )
;
;
;
;
;
;
// f
g [ 2 5 ] = norm_xi ( s i g m a _ y i e l d + Hiso z [ 1 8 ] ) ;
}
The manual computation of the Jacobian matrix for all 26 equations is a cumbersome and error-prone task. It can be done by the help of a symbolic algebra
system or it can be done numerically. The numerical computation of the Jacobian
is done as follows. Assume that we consider a vector of functions g(z). To compute
J = g we use the difference quotient
Jij = lim
0
gi (z1 , z2 , . . . , zj + , . . . , zn ) gi (z1 , z2 , . . . , zj , . . . , zn )
.
B. Programming Exercises
52
53
Appendix
Literature
The following list contains selected text books on computational plasticity, continuum mechanics, theory of plasticity and non-linear finite element method.
The book by Simo & Hughes covers most of the topics presented in this course.
[1] J.C. Simo & T.J.R. Hughes, Computational Inelasticity, Springer Verlag, 1998.
[2] F. Dunne & N. Petrinic (2005): Introduction to Computational Plasticity, Oxford
University Press.
[3] Hughes, T.J.R. (2000): The Finite Element Method-Linear Static and Dynamic
Finite Element Analysis, Dover Publications, Mineola, New York.
[4] Zienkiewicz, O.C. and Taylor, R.L. (2002) The Finite Element Method, Vol. 1
and Vol. 2, Butterworth-Heinemann.
[5] Marsden, J.E. and Hughes, T.J.R. (1994): The Mathematical Foundations of
Elasticity, Dover Publications, Mineola, New York.
[6] Khan, A.S. & Huang, S. [1994], Continuum Theory of Plasticity, John Wiley &
Sons.
[7] Lemaitre, J. & Chaboche, J.-L. [2000], Mechanics of solid materials, 3rd Printing
Cambridge University Press.
[8] Maugin, G. A. [1992], The Thermomechanics of Plasticity and Fracture, Cambridge University Press.
[9] Ogden, R. W. [1984], Non-linear elastic deformations, Dover Publications.
[10] Belytschko, T., Wam, K. L., Moran, B., Liu, W. K. [2000], Nonlinear Finite Elements for Continua and Structures, John Wiley & Sons.
[11] Bathe, K.-J. [1996], Finite Element Procedures, Prentice Hall.