Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
1/14
Organisme(s) : EDF/MTI/MMN
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
Document : R5.03.08

Intégration des relations de comportement
viscoélastiques dans l'opérateur STAT_NON_LINE

Résumé
Ce document décrit dans le cas des comportements viscoélastiques les ingrédients nécessaires à la mise en
oeuvre de l'algorithme non-linéaire STAT_NON_LINE décrit en [R5.03.01]. Les données d'entrée de toutes les
relations de comportement viscoélastiques intégrées dans Aster ont de manière générale la même forme. Seule
la façon d'introduire la donnée principale (la fonction vitesse de déformation visqueuse) varie : elle est présentée
suivant les différents mot-clés qui permettent à l'utilisateur de choisir la relation de comportement souhaitée.
Ces quantités sont calculées par une méthode d'intégration semi-implicite. A partir de l'état initial, ou à partir de
l'instant de calcul précédent, on calcule le champ de contraintes résultant d'un incrément de déformation.
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
2/14
Table des matières
1 Introduction ............................................................................................................................................ 3
2 Relation continue ................................................................................................................................... 3
3 Nature de la fonction g pour chacune des relations de comportement ................................................. 4
3.1 Relation LEMAITRE ......................................................................................................................... 4
3.2 Relations ZIRC_CYRA2 et ZIRC_EPRI .......................................................................................... 4
4 Intégration de la relation de comportement ........................................................................................... 7
4.1 Etablissement de l'équation scalaire pour le schéma implicite et avec des coefficients élastiques
constants ......................................................................................................................................... 7
4.2 Résolution de l'équation scalaire : principe de la routine ZEROF2 .................................................. 8
4.3 Calcul de la contrainte à la fin du pas de temps courant............................................................... 10
4.4 Schéma semi-implicite .................................................................................................................. 11
4.5 Prise en compte de la variation des coefficients élastiques en fonction de la température .......... 12
5 Calcul de l'opérateur tangent ............................................................................................................... 13
6 Bibliographie ........................................................................................................................................ 14
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
3/14
1 Introduction
Les tubes de gaine en Zircaloy du crayon combustible des centrales REP présentent un comportement
mécanique fortement visqueux.
Dans le cadre du chaînage entre le Code_Aster et le code du crayon combustible CYRANO3, deux
modèles viscoélastiques non-linéaires spécifiques au Zircaloy ont été introduits dans le Code_Aster.
L'un d'eux est le modèle utilisé dans Cyrano2 et dans Cyrano3. L'autre a été développé par l'EPRI.
Par ailleurs, un modèle beaucoup plus général et correspondant à d'autres matériaux que le Zircaloy a
été également introduit. Il s'agit de la viscoélasticité non-linéaire de Lemaître, qui peut se ramener pour
certaines valeurs particulières des paramètres à une relation de comportement viscoélastique de
Norton.
Pour ces trois modèles, on suppose que le matériau est isotrope. Ils peuvent être utilisés en 3D, en
déformations planes (D_PLAN) et en axisymétrique (AXIS).
On présente dans cette note les équations constitutives des modèles et leur implantation dans le
Code_Aster.
2 Relation
continue
On se place dans l'hypothèse des petites perturbations et on scinde le tenseur des déformations en
une partie élastique, une partie thermique, une partie anélastique (connue) et une partie visqueuse. Les
équations sont alors :
tot = e + th + a + v
= A(T)e
3 ~
!v = (
g eq ,,T)2 eq
avec :
2
: déformation visqueuse cumulée ! =
! :
v !
3
v
~
1
: déviateur des contraintes ~ = - Tr()I
3
3

~ ~
eq : contrainte équivalente eq =
:
2
A(T) : tenseur d'élasticité
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
4/14
3
Nature de la fonction g pour chacune des relations de
comportement

3.1 Relation
LEMAITRE
Dans ce cas, g s'exprime de façon explicite ( est ici un scalaire) :
n
(
1
1
1
g ,,T) =
avec
,
0
,
0 n 0
/

K 1 m


>
K
m
Les données des caractéristiques de matériaux sont celles fournies sous les mots clés facteurs
LEMAITRE ou LEMAITRE_FO de l'opérateur DEFI_MATERIAU.

1
1
/ LEMAITRE :
N:
n UN_ SUR_ K: UN_ SUR_ M:



K
m
Le module d'Young E et le coefficient de Poisson sont ceux fournis sous les mots clés facteurs
ELAS ou ELAS_FO.
3.2 Relations
ZIRC_CYRA2 et ZIRC_EPRI
Pour ces relations, g ne s'exprime pas de façon explicite. Le comportement est représenté par un
essai de fluage unidimensionnel, à contrainte constante, qui fait intervenir le temps écoulé depuis
l'instant où l'on applique la contrainte. La relation de comportement est ici définie par la donnée de
quatre fonctions f , g , f ,g
1
1 2
2 décrivant l'évolution de la déformation visqueuse au cours du temps :
v = = f1(t)g1(,T)+ f2(t)g2(,T)
éq 3.2-1
La fonction g se calcule alors numériquement en éliminant le temps t de la manière suivante :
1) pour un triplet donné ( ,,T) , on résout en t l'équation [éq 3.2-1] par la méthode de
Newton (voir [bib2]). On trouve une approximation de la solution t( ,,T) ,
2) on obtient la valeur de la fonction g en ( ,,T) en dérivant par rapport au temps l'équation
[éq 3.2-1] (voir [bib1]) :
! = !
v
= (
g , ,T) = f '1(t)g1( ,T) + f '




2 (t ) g2 ( , T )
et en substituant dans cette nouvelle équation la valeur de t( ,,T) trouvée précédemment.
On trouve la formulation uniaxiale suivante :
! = !
v
= (
g , ,T) = f '1(t( , ,T) g1( ,T)+ f'





2 (t( , , T ) g2 ( , T)
Pour chacune des deux relations ZIRC_CYRA2 et ZIRC_EPRI, la forme des quatre fonctions
f ,g , f ,g
1
1 2
2 est prédéfinie et l'utilisateur n'introduit que quelques paramètres dans le fichier de
commande.
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
5/14
Ainsi, pour ZIRC_CYRA2, on a :
f
- t

1(t) = [Cth fab(1- e
)+t]Frec
(0,00266 -0,413)
2
2 e

g1( ,T) =
A ex
th
(p- K /(T + ,
273 )
15
3

3
f
-k t
irr
2 (t) = [Cirr fab(1- e
)+t]Frec
4
g2(,T) = A
3 irr
avec : C = 4450
th
= 4,
-3
1
5 10 h-
A = 9,
17
529 10
th
K = 39000° K
F

= ,
-4
1 816 10 ex
rec
(p6400/(T + ,
273
rec
)
15
C
= 4000
irr
-3
1
K
= 3 10 h-
irr
Airr =
-
1 2 10 22
,
Les paramètres positifs fab, r
T ec et sont ceux fournis sous le mot clé facteur ZIRC_CYRA2 de
l'opérateur DEFI_MATERIAU :
/ ZIRC_ CYRA2 : (EPSI_ FAB: TEMP_ RECUIT:T
FLUX_ PHI:
fab
rec
)
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
6/14
De même, pour ZIRC_EPRI, on a :
f
5
A
1(t) = t
A
g
A3
4
A6 - A7 T+273 15
1( , T ) = A (
1 s (
h 2
A )
/(
, )
R e
p
f
B2
2 (t) = t
B
g
B3 B4 -B5 T+273 15
B6
7
2 ( , T )
/(
, )
= 1
B e
Rp (cos max

)
avec :
1
A = ,
8
1 603 10
2
A = 4,
5
567 10-
3
A = 2,28
4
A = ,
0 997
5
A = ,
0 77
6
A = ,
0 956
7
A = 2,
4
3 10
1
B = ,
-21
3 296 10
B2 = ,
0 811
B3 = ,
0 595
B4 = 1 352
,
5
B = 22 9
, 1
B6 = 1 5
, 8
B7 = 2 228
,


Les paramètres positifs , Rp et max 0 max



2 sont ceux fournis sous le mot clé facteur
ZIRC_EPRI de l'opérateur DEFI_MATERIAU :
/ ZIRC_ EPRI : (FLUX_ PHI:
R_ P:R THETA_ MAX:
p
max

)
On notera que, pour les deux relations de comportement et pour toutes les fonctions :
t s'exprime en heures
T s'exprime en °C
s'exprime en MPa
Le document d'Young E et le coefficient de Poisson sont ceux fournis sous les mots-clés facteurs
ELAS ou ELAS_FO.
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
7/14
4
Intégration de la relation de comportement
4.1 Etablissement de l'équation scalaire pour le schéma implicite et
avec des coefficients élastiques constants
On désigne par tot la déformation totale à l'instant t + t
et par tot la variation de déformation
totale au cours du pas de temps courant. On appelle o la déformation imposée à l'instant t + t
et
o la variation de déformation imposée au cours du pas de temps courant.
Cette déformation imposée résulte de la dilatation thermique et des déformations anélastiques. On a
donc :
o = (t + t)
[
( (Tt+t)- rTef )-(t)( (Tt)- rTef )]I3+a(t+t)-a(t)
I3 est le tenseur identité d'ordre 2 en dimension 3.
On pose = tot - o
Comme on suppose ici que µ est constant, on a la relation suivante entre les déviateurs de
et :
~ = 2µ(~

- v)
éq 4.1-1
Or, la loi d'écoulement s'écrit, de façon implicite :

~
v
3
-

= g eq , +
,
éq 4.1-2
2
(v) T

eq
t

eq
On a donc, en éliminant v entre [éq 4.1-1] et [éq 4.1-2] :
~

-

2µ~ = ~ + 3µt g ,
eq +


(v) ,T
eq

eq

-

g

,
éq 4.1-3
eq +



(v)
(
,T
~
eq


- + 2µ~) = 1+ 3µ
~
t


eq



En posant ~e
~-
~
= + 2µ , on a donc :
e

-

eq = 3µ t
g eq , +


(v) ,T
éq 4.1-4
eq
eq

+
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
8/14
Or, on a d'après [éq 4.1-2] :
(

-

v )
= t g , +
,T
eq
eq


(v)eq
D'où :
eeq = 3µ(v) +
eq
eq
(
1

e
v )
=
-
eq
3 (eq eq )
µ
En substituant cette dernière expression dans [éq 4.1-4], on a :

1

e
-
e
eq = 3µ t

g eq , +
,
3 (eq - eq ) T + eq

µ

Si l'on pose, eeq ,- ,T et t
étant connus :

1

f(x)
µ t
g x, -
3



3 ( e - x),T + x
e
=
+
eq
- eq

µ

on peut alors calculer la quantité
-
eq = ( + ) comme étant la solution de l'équation scalaire :
eq
f(x) = 0 où x = eq , convention adoptée pour les paragraphes suivants.
4.2
Résolution de l'équation scalaire : principe de la routine ZEROF2
On montre facilement que, si les conditions requises au paragraphe [§3] sur les caractéristiques des
matériaux sont vérifiées, la fonction f est strictement croissante et l'équation f(x) = 0 admet une
solution unique.
Si e
e
eq = 0 , alors la solution est x = 0 . Sinon, on a : f ( )
0 = -eq < 0
Le problème consiste donc à trouver pour une fonction f quelconque la solution de l'équation
f(x) = 0 sachant que cette solution existe, que f( )
0 < 0 et que f est strictement croissante.
L'algorithme adopté dans ZEROF2 est le suivant :
· on part de a = 0 et b = x
x
0
0
ap
ap est une approximation de la solution. Si c'est
nécessaire (c'est-à-dire si f(b0) < 0 ), on se ramène par la méthode des sécantes
an f(bn)- bn f(an)
( zn =
puis a 1 = b et b 1 = z ) en une ou plusieurs itérations au cas
f(b
n+
n
n+
n
n ) - f(an )
où f(a) < 0 et f(b) > 0 :
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
9/14
f(b1)
a = b
1
0
0
b1
f (b0)
f( )
0
(Dans le cas de la figure ci-dessus, cette première phrase s'est faite en une itération :
a = b et f(b
1
0
1) > 0 ).
· on
calcule
Nd = partie entière ( Nmax ) ou Nmax est le nombre maximum d'itérations que
l'on s'est donné. On résout alors l'équation par la méthode des sécantes en utilisant toutefois
la méthode de dichotomie à chaque fois que n est multiple de Nd :
1)
Si Nd divise n
a + b
z
n
n
n =
2
sinon
an f(bn)- bn f(an)
zn =
f(bn)- f(an)
finsi
n = n + 1
si f(z) >
si f (z) < 0
a 1 = z
b 1 = b
n+
n
n+
n
sinon
a 1 = a
b 1 = z
n+
n
n+
n
finsi
aller en 1)
sinon
La solution est : x = z FIN
n
finsi
Cette deuxième partie de l'algorithme permet de traiter en un nombre d'itérations raisonnable les cas
où f est très fortement non-linéaire, alors que la méthode des sécantes aurait convergé trop
lentement. Ces cas de forte non-linéarité se rencontrent notamment avec la loi de LEMAITRE, pour des
n
valeurs de
grandes.
m
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
10/14
4.3
Calcul de la contrainte à la fin du pas de temps courant
D'après [éq 4.1-3], si x est la solution de l'équation scalaire, en posant :
(
1
x
b x, e
eq) =
= e

1

-

g x, + 3 ( e
- x
eq
eq
),T

µ

1 + 3µ t

x
on a :
~ = b(x, e e
eq )~


éq 4.3-1
Dans le cas où eeq = 0 , ce qui équivaut d'après l'équation scalaire à x = 0 , on prolonge b par
1
continuité. Pour cela, on pose (
y x)
-

( e
=
+
- x
G x = g(x,y x ,T)
eq
)
µ
et ( )
( ) . La dérivée de G
3
s'exprime en fonction des dérivées partielles de g au point (x (
,y x),T) :
g
1 g
G'(x) =
(x (
,y x),T) -
(x (
,y x),T)
x
µ
3 y
Le prolongement de b par continuité donne alors :
(
1
b ,
0 )
0 = 1+ 3µtG'( )0
et on a, toujours dans le cas où e
~
eq = 0, = 0 .
Une fois que l'on a calculé ~
, on obtient par la relation ( K est ici supposé constant) :
= - + = ~
1
+ Tr(-

)+ KTr()


I
éq 4.3-2
3

3
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
11/14
4.4 Schéma
semi-implicite
Avec un schéma numérique implicite [éq 4.1-2], dans le cas, par exemple, où g ne dépend pas de ,
seule intervient par le calcul de v la valeur de la contrainte en fin de pas de temps. Il peut en
résulter des erreurs numériques importantes si la contrainte varie fortement au cours du temps (voir
[bib2]).
Pour remédier à cela et améliorer la résolution, on discrétise la loi d'écoulement de façon
semi-implicite :

~
~-



+
v
3

-
(v)eq


T



2
= g +
-
,
,T -


éq 4.4-1
t
2

2
+
+
2
2 -
eq

+



2 eq
Pour transformer de la façon la plus économique ce qui a été programmé précédemment (en suivant la
formulation implicite [éq 4.1-2]), il suffit de diviser chaque membre de l'équation [éq 4.4-1] par 2 :


-
(v)eq
-
-
T
g +
,
,T
- ~
~
(






2
+
+
2
2
+
v / 2)

eq
3


2
=
t
2
2
-
+



2 eq
et de faire la même chose avec la relation [éq 4.1-1] :
~
~


= 2µ
-
v
2



2
2
On constate que ce système est de la même forme que celui constitué par les équations [éq 4.1-1] et



[éq 4.1-2], la donnée étant
au lieu de , les inconnues étant respectivement
et
v au
2
2
2
g
lieu de et v et la fonction remplaçant la fonction g .
2
On peut donc utiliser la résolution des paragraphes [§4.1] à [§4.3] ainsi que l'algorithme correspondant

en introduisant
et en divisant la fonction g par 2. Il reste alors à multiplier les résultats
2




et
v
par 2 pour obtenir les incréments de contrainte et de déformation visqueuse calculés
2




2
par le schéma semi-implicite (le et le v de l'équation [éq 4.4-1]).
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
12/14
On remarquera que le calcul de l'opérateur tangent n'est pas affecté par cette modification du schéma
numérique. En effet, on a évidemment :
()



2

=



2
4.5 Prise en compte de la variation des coefficients élastiques en
fonction de la température
On a, si A est le tenseur d'élasticité :
= + ( -1
v
A )
avec :
(A-1 ) A-1( -
T
T)( - ) A-1



( -T) -
=
+
+
-

Ceci se traduit dans les équations du [§4.4] par :


-
(v)
-
eq
-
T
g +
,
,

T
-
~

~
~


2
+
+
2
2
+



eq
-
-





2
2µ + 2µ

~


~-
t





-
2 -
+



2 =
2

-
-


+




2 eq
En posant :
-
~
~


e
+
~

-
=
+


-





2
et
3K- + 3K

-
Tr( e
) =
Tr
-
( )+

3K Tr
6K




2
on se ramène exactement au cas précédent [§4.4].
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
13/14
5
Calcul de l'opérateur tangent
Dans le cas où eeq = 0 et x = 0, on prend le tenseur d'élasticité comme opérateur tangent.
Sinon, on obtient cet opérateur en dérivant l'équation [éq 4.3-1] par rapport à :
~
~
(
b x,e
e
eq )
~

~e
e

=
=
+ (
b x,eq )



puis en dérivant aussi [éq 4.3-2] par rapport à :
~
Tr() ~

=
+ K 3
=
+ K t
I
I I




3 3
On notera que, dans ces équations, les tenseurs d'ordre 2 et d'ordre 4 sont respectivement assimilés à
des vecteurs et à des matrices. I3 est ici un tenseur d'ordre 2, assimilé à un vecteur :
t I3 = (11,1,0, 0,, )
0
On a de plus :
(bx, e
e
eq) b
x

=
x e

+
x e
eq


x (
b
, eq )

e ( , eq )




eq
x
Il faut donc calculer . Pour cela, on dérive implicitement l'équation scalaire par rapport à .
Pour simplifier, on omettra par la suite dans l'écriture de g et de ses dérivées le paramètre T .
On a alors :
e
e
[
x
g
eq
t G(x) + ]
1
+ t
(x,y)
eq
=

y


D'où :
g
1- t

(x,y)
x
y
e
eq
=

1+ µ
3
t
G(x)
g
1- t

(x,y)
x
y
µ
3 t ~e
=


1+ µ
3
t
G(x) e
eq
avec l'expression de G'(x) obtenue au [§4.3].
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Code_Aster ®
Version
5.0
Titre :
Intégration des relations viscoélastiques dans STAT_NON_LINE
Date :
02/02/01
Auteur(s) :
P. de BONNIERES
Clé :
R5.03.08-A
Page :
14/14
On obtient finalement l'expression suivante de l'opérateur tangent :
= K t
I I
~
~
3
3 + 2µ e t e + b x, e
A

[
( eq) ]
avec :
~
1
A =
= J6 -
t
I I J est la matrice identité de rang 6.

3
3
6
3

g
1 -

,
3

t
(x y)

e

=
y
(

3
eq
- x
2 e
1 3
G
eq )
+ µt (x)





Remarque :
Dans le cas des lois ZIRC_CYRA2 et ZIRC_EPRI, on vérifie facilement que :
1
2
2
G(x) =

'
g g f '
1 1 1 -
'
' '
'
'
' '
'
'
'



f f
1 1 + g g f
2 2
2 -



f f
2 2 + g g
1 2 (f f
1 2 - f f
1 2 )
f g
1 1+ f g
2 2
'
' '
'
1
'
'

+ g g
2 1(f f
1 2 - f f
1 2 ) -
(f g11+f g22)


g (
f '' g
f ' g
x, y,T)
1 1+
=
2 2

f ' g
1 1+ f '2 g2
f , f ' f '' f , f ' f '
1
,
1
,
1 2 2, 2 désignent les valeurs de f et f
1
2 et de leurs dérivées au point t(x, y,T) et
g ,g' ,g ,g'
1
1
2
2 désignent les valeurs de g et g
1
2 et de leur dérivée par rapport à au point
(x,T) (voir [bib1]).
6 Bibliographie
[1]
de BONNIERES P. : Ecriture sous forme standard généralisée des lois de comportement
viscoplastiques du Zircaloy, note EDF-DER HI-71/7940-Indice A, 1992
[2]
de BONNIERES P., ZIDI M. : Introduction de la viscoplasticité dans le module de
thermomécanique de Cyrano3 : principe, description et validation, note EDF-DER HI-71/8334,
1993
Manuel de Référence
Fascicule R5.03 : Mécanique non linéaire
HI-75/01/001/A

Document Outline