Sie sind auf Seite 1von 86

The Hitchhikers Guide to Abaqus

Information, Instructions, Derivations, and Explanations


For Use with Abaqus User Subroutines
With a Focus on Growth

Written Aug 2012


Updated November 2016

Written by

Maria Holland
Department of Mechanical Engineering
Stanford University

Available under a
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

1
CONTENTS 2

Contents

1 General Information 6
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 SDVINI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 UMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.3 ORIENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Calling the UMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 From the Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 From the GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1 Variables Passed to the UMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.2 Variables Passed Back to Abaqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.3 Stress and Strain Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Abaqus Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5.1 Voigt Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5.2 Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6 Abaqus Input Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6.1 Structure of an Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6.2 Input File Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6.3 Writing an Input File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7 A Brief Introduction to Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7.1 Case and Whitespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7.2 Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7.3 Declaration and Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7.4 Producing Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.5 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.6 Subfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7.7 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7.8 Other Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.8 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.8.1 Abaqus Job Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.8.2 Some Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9 Verifying Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2 Continuum Mechanics References 23


2.1 General Continuum Mechanics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.1 Indicial Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.2 Symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.3 Identity Tensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.4 Tensor Derivatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.5 Useful Tensor Derivatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 Structural Tensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
CONTENTS 3

3 Where Do Tangents Come From? 26


3.1 Objectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Deformation and Strain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1 Strain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.2 Deformation Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3 Other . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3 Stress Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.1 Truesdell Stress Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.2 Jaumann Stress Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.3 Truesdell and Jaumann Stress Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Elasticity Tensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.1 Lagrangian Elasticity Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.2 Eulerian Elasticity Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.3 Jaumann Elasticity Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4 Neo-Hookean Constitutive Model 33


4.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Stress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Abaqus Neo-Hookean Constitutive Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.1 Stress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.2 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5 Mechanics of Growth 38
5.1 The Three Configurations of Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.1.1 Mass, Volume, and Density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1.2 Strain Energy Density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1.3 Pushing Forward and Pulling Back . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1.4 Incompressibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.1.5 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Growth Kinetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2.1 Morphogenetic Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2.2 Mechanically-Driven Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3 Thermodynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4 Stress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.5 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5.1 Elastic Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5.2 Growth Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.5.3 Geometric Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.5.4 A Note on Symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.6 A Note On Other Free Energy Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.7 Neo-Hookean Free Energy Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6 Morphogenetic Growth 52
6.1 Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.2 Growth Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.3 Growth Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.4 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7 Explicit Growth 54
7.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.2 Growth Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.3 Growth Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.4 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
CONTENTS 4

8 Stretch-Driven Growth 56
8.0.1 Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.0.2 Elastic Stretch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.0.3 Local Newton Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.1 Transversely Isotropic Area Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.1.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.1.2 Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.1.3 Growth Kinetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.1.4 Growth Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.1.5 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2 Transversely Isotropic Fiber Growth (Eccentric) . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.2 Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.3 Growth Kinetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.4 Growth Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.5 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.3 Isotropic Volumetric Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.2 Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.3 Growth Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.4 Growth Kinetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.5 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.4 Transversely Isotropic Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.4.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.4.2 Growth Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.4.3 Growth Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.4.4 Local Newton Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.4.5 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.5 Fully Orthotropic Growth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.5.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.5.2 Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.5.3 Growth Tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.5.4 Local Newton Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.5.5 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

9 Stress-Driven Growth 74
9.0.1 Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.1 Isotropic Volumetric Mandel Stress-Driven Growth . . . . . . . . . . . . . . . . . . . . . . . . 75
9.1.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.1.2 Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.1.3 Local Newton Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.1.4 Stress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.1.5 Tangent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

10 Appendices 79
10.1 Other User Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
10.1.1 HETVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
10.2 Compressive Stress and Strain as a Function of Growth . . . . . . . . . . . . . . . . . . . . . 79
10.2.1 Compressible Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
10.2.2 Incompressible Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
10.2.3 Calculating Uniaxial Compression Loading for a Given Stress . . . . . . . . . . . . . . 82
10.3 Tensor Operations in Voigt and Mandel Notation . . . . . . . . . . . . . . . . . . . . . . . . . 83
10.3.1 Dyadic Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
10.3.2 Double Contraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
CONTENTS 5

10.3.3 Invariants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
10.3.4 Inverses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.4 Growth and Plasticity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Chapter 1

General Information

1.1 Introduction
The UMAT is a user subroutine that can be used to define the mechanical behavior of a material in the
program Abaqus. It will be called at all material calculation points of elements for which the material
definition includes a user-defined material behavior. It must update the solution-dependent state variables
and provide the stress and material Jacobian matrix according to the constitutive model.
For more information, the extensive Abaqus documentation is available online. For version 9.12, it can be
found at http://www.user.uni-hannover.de:2081/v6.12/index.html

1.2 Structure

1.2.1 SDVINI

The state variables are initialized (usually to 1.0) in a subroutine called sdvini. This only happens once,
after the Type=SOLUTION,USER line in the input file.

1 c ... ---------------------------------------------------------------
subroutine sdvini ( statev , coords , nstatv , ncrds , noel , npt , layer , kspt )
c ... ---------------------------------------------------------------
include aba_param . inc

6 dimension statev ( nstatv )

statev (1) =1.0 d0 ! the_g


statev (2) =1.0 d0 ! the_e
statev (3) =1.0 d0 ! the
11 statev (4) =1.0 d0 ! J_g
statev (5) =1.0 d0 ! J_e

return
end

If a state variable is not defined in this subroutine, it is given a default value of zero. This may not be a
problem in certain codes (for instance, morphogenetic codes), and thus this subroutine may not always be
necessary.

6
CHAPTER 1. GENERAL INFORMATION 7

If the initial conditions are simple, they can also be defined in a tabular format via: *INITIAL CONDITIONS,
TYPE=SOLUTION
E SET NUM, SDV1 0, SDV2 0, SDV3 0, SDV4 0, SDV5 0, SDV6 0, SDV7 0
SDV8 0, ETC.
It may be necessary to leave blank data lines for some elements if any other element in the model has more
solution-dependent state variables because the total number of variables that Abaqus expects to read for
any element is based on the maximum number of solution-dependent state variables for all the elements in
the model. These trailing initial values will be zero and will not be used in the analysis. Values given on the
data lines will be applied uniformly over the element.
Repeat this set of data lines as often as necessary to define initial values of solution-dependent state variables
for various elements or element sets.

1.2.2 UMAT

The UMAT subroutine runs after the state variables are initialized, and at each time step. It reads in state
variables, and the current deformation gradient, and then calculates the stress and tangent according to the
given material model before returning the necessary variables.

Using Multiple Subroutines

To use multiple subroutines in one analysis, a variable (CMNAME, for example) can be tested for different
values inside the UMAT subroutine to determine which material model should be used. A different subroutine
(for instance, UMAT MAT1 or UMAT MAT2) could then be called :

c ... ---------------------------------------------------------------
subroutine UMAT ( stress , statev , ddsdde , sse , spd , scd , rpl , ddsddt ,
# drplde , drpldt , stran , dstran , time , dtime , temp , dtemp , predef , dpred ,
# cmname , ndi , nshr , ntens , nstatv , props , nprops , coords , drot , pnewdt ,
5 # celent , dfgrd0 , dfgrd1 , noel , npt , layer , kspt , kstep , kinc )
c ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
include aba_param . inc

character *80 cmname


10 dimension stress ( ntens ) , statev ( nstatv ) , ddsdde ( ntens , ntens ) ,
# ddsddt ( ntens ) , drplde ( ntens ) , stran ( ntens ) , dstran ( ntens ) , time (2) ,
# predef (1) , dpred (1) , props ( nprops ) , coords (3) , drot (3 ,3) ,
# dfgrd0 (3 ,3) , dfgrd1 (3 ,3)

15 if ( cmname (1:4) . eq . mat1 ) then


call UMAT_MAT1 ( argument_list )
else if ( cmname (1:4) . eq . mat2 ) then
call UMAT_MAT2 ( argument_list )
else
20 print * , " please indicate a valid material name "
end if

return
end
25

c ... ---------------------------------------------------------------
subroutine UMAT_MAT1 ( stress , statev , ddsdde , sse , dtime , props , dfgrd1 )
c ... ---------------------------------------------------------------
c . . . [ code here ] . . .
CHAPTER 1. GENERAL INFORMATION 8

Here, UMAT MAT1 and UMAT MAT2 are two user material subroutines containing the constitutive material
models for the materials MAT1 and MAT2, and the UMAT subroutine merely acts as a directory.
CHAPTER 1. GENERAL INFORMATION 9

1.2.3 ORIENT

If the material or growth is anisotropic, preferred directions will have to be indicated. This can be complicated
when the domain is not regular. In certain circumstances, it is possible to do this by creating a local
coordinate system at each integration point using an ORIENT subroutine. If local coordinate systems
exist, values will be rotated to the current local coordinate system; see Orientation Conventions for more
information.

1 subroutine orient (T , cnodes )

include aba_param . inc


dimension T (3 ,3) , coords (3)

6 T (1 ,1) = cnodes (1 ,1) - cnodes (1 ,4)


T (2 ,1) = cnodes (2 ,1) - cnodes (2 ,4)
T (3 ,1) = cnodes (3 ,1) - cnodes (3 ,4)

T (1 ,2) = cnodes (1 ,8) - cnodes (1 ,4)


11 T (2 ,2) = cnodes (2 ,8) - cnodes (2 ,4)
T (3 ,2) = cnodes (3 ,8) - cnodes (3 ,4)

return
end

The only variable to be defined in an ORIENT subroutine is T,



x1 y1 z1
T = {x0 } {y0 } {z0 } = x2
 
y2 z2
x3 y3 z3

where x, y, and z are the local material directions. They do not need to be orthogonal or normal (Abaqus
will take care of that). In reality, only the first two directions must be defined; Abaqus will orthogonalize
the second direction with respect to the first and will determine the third direction from the cross product
of the first and second.
Note: These directions are not accessible to other post-processing programs like Tecplot. FiXme Note:
alternate way of
doing it?
CHAPTER 1. GENERAL INFORMATION 10

1.3 Calling the UMAT


The user-written UMAT is called from the material definition. This can be done two ways - from the input
file or from the GUI.

1.3.1 From the Input File

When the material is defined in the input file, the following things must be included:
The number of dependent variables (Depvar) must be equal to the number of state variables
The number of material constants (constants) must be indicated and their values must be specified.
Note that only 8 values are allowed in a single line of text in the input file, so the 9th and any subsequent
constants must be listed on a second line.
The initial conditions must be defined by a call to the UMAT (TYPE=SOLUTION,USER). The SOLUTION
parameter is actually only necessary if the state variables are initialized to non-zero values.

* ********************************************************************
* * Material
* ********************************************************************
* Material , name = MAT_NAME
5 * Depvar
5,
* User Material , constants =9 , unsymm
0.577 , 0.0385 , 2.4 , 1.01 , 2. , 1. , 0. , 0. ,
1.
10 * INITIAL CONDITIONS , TYPE = SOLUTION , USER

When submitting the job in the command line, append user=filename to the job. The UMAT must be in
the same directory as the input file. The .f extension is optional.

1.3.2 From the GUI

When defining the material in the GUI, add two Material Behaviors:
1. General Depvar Number of solution-dependent state variables = 5
2. General User Material enter material constants, making sure that there is the correct number
and that they are in the correct order
type = Mechanical
check Use unsymmetric material stiffness matrix
When creating the job, include the UMAT by browsing for the file in General User subroutine file.
Note: The initial conditions option is not supported in the GUI, so the line TYPE=SOLUTION,USER must be
added through Model Edit Keywords at the end.
CHAPTER 1. GENERAL INFORMATION 11

1.4 Variables

1.4.1 Variables Passed to the UMAT

These variables are available to be passed into the UMAT. To use them, make sure they are contained in all
function calls and declarations and are properly declared (as reals or ints) at the beginning of the UMAT
subroutine.
cmname - user-defined material name
coords - coordinates of the point (these coordinates are in the deformed configuration when using
geometric nonlinearity)
dfgrd1(3,3) - deformation gradient F
dtime - time increment
kstep - step number
kinc - increment number
ndi - number of direct stress components (3 for 3D and axisymmetric elements)
nshr - number of shear stress components (3 for 3D elements, 1 for axisymmetric elements)
ntens - size of the stress and strain component array (ntens = ndi + nshr)
noel - element number
npt - integration point number
props(nprops) - user-defined array of nprops material constants
time(2) - array of two time values
time(1) - value of step time at the beginning of the current increment.
time(2) - value of total time at the beginning of the current increment.
Note: If your simulation has only one step, these may be the same time.

1.4.2 Variables Passed Back to Abaqus

Tangent

DDSDDE(ntens,ntens) is the Jacobian matrix of the constitutive model, /. It is also referred to
as the tangent or elasticity tensor. Abaqus uses a tangent based on the Jaumann stress tensor. For more
information on the Abaqus tangent and its relation to other tangents, see the section Where do Tangents
Come From?.
It must be defined accurately if rapid convergence of the overall Newton scheme is to be achieved. In most
cases the accuracy of this definition is the most important factor governing the convergence rate. An incorrect
definition of the material Jacobian affects only the convergence rate; the results (if obtained) are unaffected.
The tangent is a fourth-order tensor stored as a ntens x ntens array (6x6 for fully 3D elements, 4x4 for
axisymmetric elements), taking advantage of symmetries.

Stress

STRESS(ntens) is the true (Cauchy) stress at the end of the increment. It is a second-order tensor stored
as a ntens x 1 Voigt tensor, taking advantage of symmetries.
CHAPTER 1. GENERAL INFORMATION 12

State Variables

statev(nstatev) are state variables, initialized by the subroutine SDVINI. They are passed from the previous
time step and passed to the next time step.

1.4.3 Stress and Strain Components

Because different types of elements have different number of stress and strain components, the UMAT should
be written to accomodate all the element types with which it will be used. For instance, the stress and tangent
should be defined in a loop from 1 to ntens. If it is necessary to hard-code the definition of the stress or
tangent, place elements beyond (4,4) in an extra if loop.

1.5 Abaqus Conventions

1.5.1 Voigt Notation

The Abaqus/Standard convention for ordering stress and strain components is:

11
22

33
v=
12

13
23

so that the full matrix equivalent is:


v1 v4 v5
= v4 v2 v6
v5 v6 v3
Note that this is a different convention from FEAP and Abaqus/Explicit, and it may differ from other
programs as well.
Fourth-order tensors with minor symmetries can be written in Voigt notation and are stored as 6x6 arrays,
numbered:
D1111 D1122 D1133 D1112 D1113 D1123
D2211 D2222 D2233 D2212 D2213 D2223

D3311 D3322 D3333 D3312 D3313 D3323

D1211 D1222 D1233 D1212 D1213 D1223

D1311 D1322 D1333 D1312 D1313 D1323
D2311 D2322 D2333 D2312 D2313 D2323
Fourth-order tensors with major symmetries appear symmetric in Voigt notation.
CHAPTER 1. GENERAL INFORMATION 13

1.5.2 Orientation

If a local orientation is used at the same point as user subroutine UMAT, the stress and strain components
will be in the local rotated system. This coordinate system, with basis vectors e0i is related to the original
coordinate system, with basis vectors ei , by the rotation tensor R, which is one of the components of the
polar decomposition of the deformation gradient, F = v R.

Basis Transformations

The relationship between the basis vectors of two coordinate systems, e0i and ei , is expressed by a rotation
tensor R,
ei = RT e0i = Rij e0j and e0i = R ei = Rji ej
where Rij are the i, j components of tensor R in a given basis. (See Holzapfel, 1.5 for more information,
where R = Q in their notation). Thus for a vector u, its components, ui and u0i , in the two bases, {ei } and
{e0i }, respectively, are related by
ui = u ei = u RT e0i = u Rij e0j = Rij u e0j = Rij u0j


u0i = u e0i = u R ei = u (Rji ej ) = Rji u ej = Rji uj


or
[u] = [R] [u0 ] and [u0 ] = [R]T [u]
but note that these equations describe the components of the same vector in two different bases, which is
different from the equations u = R u0 and u0 = RT u, which describe two different vectors, u and u0 .
Thus, a given vector can be represented in several different ways:
u = ui ei = u0i e0i

Similarly, tensors can also be represented in different coordinate systems:


A = Aij ei ej = A0ij e0i e0j
The tensorial transformation law is:
Aij = ei A ej = RT e0i A RT e0j = Rik e0k A Rjl e0l = Rik Rjl e0k A e0l = Rik Rjl A0kl
A0ij = e0i A e0j = R ei A R ej = Rki ek A Rlj el = Rki Rlj ek A el = Rki Rlj Akl
or
[A] = [R][A0 ][R]T and [A0 ] = [R]T [A][R]

Rotated Coordinate Systems in Abaqus

When a local orientation is used with a user subroutine UMAT, the stress and strain components will be in
the local rotated system, e0i . Vectors passed into the UMAT, however, will generally be defined in reference
to the original coordinate system. Therefore, they will have the components of the desired vector (ui ), but
because they are defined in the rotated coordinate system (e0i ), they will represent a different vector entirely,
w = ui e0i 6= u. The goal, then, is to calculate the components of the desired vector in the rotated coordinate
system (u0i , such that u = u0i e0i ).
Additionally, vectors have both material (reference, or undeformed) and spatial (current, or deformed)
configurations in continuum mechanics. These are generally represented in the same coordinate systems,
related by the deformation gradient, u = F U. Thus the complete set of relevant vectors and tensors in
Abaqus user subroutines with large deformation and local orientation is:
CHAPTER 1. GENERAL INFORMATION 14

U = Ui ei , undeformed vector in the original coordinate system


U = Ui0 e0i , undeformed vector in the rotated coordinate system
This is the reference vector to be used in the UMAT
W = Ui e0i , an entirely different vector with components of undeformed vector in the original coordinate
system, in the rotated coordinate system. This is the vector that gets passed into the UMAT.
u = ui ei , deformed vector in the original coordinate system.
u = u0i e0i , deformed vector in the rotated coordinate system.
This is the deformed vector to be used in the UMAT.
F = Fij ei ej , deformation gradient in the original coordinate system
F0 = Fij0 e0i e0j , deformation gradient in the rotated coordinate system.
This is the deformation tensor available within the UMAT.
R, rotation tensor between the original and rotated coordinate systems
v = vij ei ej , stretch tensor in the original coordinate system
v0 = vij
0 0
ei e0j , stretch tensor in the rotated coordinate system
where capital letters refer to vectors in the reference configuration, lower-case letters refer to vectors in the
current configuration, prime indicates the rotated coordinate system, and W is an entirely different vector.
We start with the relation u = F U. Because an equation that holds in one coordinate system holds in all
other coordinate systems, we can represent this as either

ui ei = Fkl (ek el ) Uj ej or u0a e0a = Fcd


0
(e0c e0d ) Ub0 e0b

Starting in the rotated coordinate system,

u =F U
u0i e0i =Fkl
0
(e0k e0l ) Uj0 e0j
u0i e0i = (Rmk Rnl Fmn ) (e0k e0l ) (Raj Ua ) e0j
u0i e0i =Rmk Rnl Raj Fmn Ua (e0k e0l ) e0j
u0i e0i =Rmk Rnl Raj vmp Rpn Ua e0k e0l e0j


u0i e0i =Rmk Rnj Raj vmp Rpn Ua e0k


u0i e0i =Rmk vmp Rpn Un e0k
u0i e0i =vkn
0
Un e0k

Or, ignoring the bases (as they are not changing), and dealing only with the components,

[u0 ] = [F0 ][U0 ] = [F0 ][R]T [U] = [v0 ][R][R]T [U] = [v0 ][U]

Essentially, this means that the vector passed in to the UMAT, purportedly the reference vector, has already
been rotated to the spatial configuration due to Abaqus use of the rotated coordinate system. To obtain
the deformed vector in the current configuration, it merely needs to be stretched by v0 .
To obtain the reference vector in the rotated coordinate system,

U = Ui0 e0i = Rji Uj e0i = Uj Rji e0i

or

[U0 ] = [R]T [U] = [F0 ]1 [v0 ] [U] = [F0 ]1 [u0 ]


CHAPTER 1. GENERAL INFORMATION 15

Rotating Vectors in UMAT

The polar decomposition of a tensor can be calculated via the principal value decomposition. Fortran has a
built-in subroutine, SPRIND, that returns the principal values and directions of a given tensor :
call SPRIND(tensor, values(3), directions(3,3), S, NDI, NSHR)
where
tensor(3,3) is the tensor to be decomposed;
values(3) is a vector for the output of principal values;
directions(3,3) is a tensor containing the output of principal directions, where directions(i,j) contains
the direction cosines of the principal direction corresponding to the i-th principal value;
S is an identifier equal to 1 if the tensor contains stresses and 2 if it contains strains;
NDI is the number of direct components (passed into the UMAT); and
NSHR is the number of shear components (passed into the UMAT)
The left, or spatial, stretch tensor, v, can then be calculated from the principal values and directions as
3
X
v= i ni ni
i=1

where 2i = values(i) and ni = directions(i, :).


CHAPTER 1. GENERAL INFORMATION 16

1.6 Abaqus Input Files


In order to test your user subroutine, you have to have an input file on which to test it. This is an important
step, as an incorrect input file will wreck your analysis!

1.6.1 Structure of an Input File

Heading

This is a good place to describe the input file or job in comments. Additionally, you can put important
information about the model after the Heading keyword, as it will be reprinted on the results.

* Heading
1 linear element pulled in the x - direction

Model data

This section contains model data and includes all the information required to define the structure being
analyzed.
creation of parts

* Part , name = Part -1

nodal positions

* Node
1, 1. , 1. , 1.

Format is: node number, x-coordinate, y-coordinate, z-coordinate.


elemental connectivity

* Element , type = C3D8


1, 5, 6, 8, 7, 1, 2, 4, 3

Element keyword has required parameter of element type. C3D8 is an 8-node linear brick. Format is:
element number, followed by node numbers in specified order (see information on each element type).
creation of sections
assembly and instancing
boundary conditions
material definition
CHAPTER 1. GENERAL INFORMATION 17

History Data

This section contains the data that define what happens to the model: the sequence of loading or events for
which the response of the structure is required.
step definition (may have multiple)

* Step , name = pressure , nlgeom = YES , inc =100000 , unsymm = YES


* Static
3 0.1 , 10.5 , 0.01 , 1.

The inc=100000 option overrides the default number of iterations allowed by Abaqus; complex jobs
will require this. Format of the Static option is initial time step, total step time, minimum time step,
maximum time step.
output requests

1.6.2 Input File Syntax

Abaqus input files have their own syntax. It can be very sensitive to spaces, lines, and punctuation, so copy
example code very closely. Some important points to be aware of:
keywords and options begin with an asterisk * and are often followed by parameters. Some parameters
are required, while others are optional. Keywords can be looked up in the Abaqus Keywords Reference
Manual in the Abaqus documentation.
some keywords are followed by option blocks that contain lists of data (nodal coordinates or connec-
tivity, etc.). Each value must be separated by a comma. If there is only one value in an option block,
it should end with a comma as well.
** at the beginning of line indicates a comment
lines are limited to 256 characters, or 8 parameters
Abaqus does not deal with units, so make sure youre using a consistent set of units. Examples include:
m, N, kg, s, Pa
mm, N, kg, s, kPa
lbf
ft, lbf, slug, s, f t2

1.6.3 Writing an Input File

It is possible to write a simple input file from scratch. It may be easier to start with an existing input file,
however, and make necessary changes - such as nodes, elements, materials, and loading.
It is also possible to create an input file by creating a model in the GUI to the desired level of completion,
creating a job associated with the model, and, in the Job Manager, selecting Write Input. This will create
an input file that, when run, recreates the contents of your model. This is convenient because the GUI makes
building complex geometries and meshing easier, while changing options and defining materials and loading
is often more efficient in the input file than navigating through windows and menus.
CHAPTER 1. GENERAL INFORMATION 18

1.7 A Brief Introduction to Fortran


Abaqus user subroutines use Fortan 90/95.

1.7.1 Case and Whitespace

Fortran is case-insenstive (dfgrd1 = DFGRD1). Whitespace (spaces) are also ignored beyond the significance
of the reserved colums (see below).
Consistently separating words by spaces became a general custom about the tenth century A.D.,
and lasted until about 1957, when FORTRAN abandoned the practice.
Sun FORTRAN Reference Manual .

1.7.2 Columns

A relic of Fortrans use on punch cards, the first 6 columns are reserved for special use.

Comments A c in column 1 results in a full line comment. To append a comment to the end of a line of
code, use a !

Line Continuation Any character in column 6 signifies that the line is a continuation of the previous
line.

1.7.3 Declaration and Initialization

Declaring Variables Variables should be declared, indicating their type and size, and initialized before
use. To disable implicit declarations, you should include the statement implicit none. Otherwise, mistyped
variables will be treated as new variables (with a random value) and no warning will be generated.
Examples of declarations:
character*80 string1 80-character long string
real*8 var1 double precision floating point number with 15 significant digits
integer int1 integer (of default 4-byte size)

Dimensioning Variables When an array is passed into a subroutine as an argument, what is really passed
is usually the memory address of the beginning of the array. For this reason, the dimension of each array
must also be specified. This is done using a dimension statement.
real x(*) x is an input vector, but no information is given about its dimensions. Note that this can
only be used for the last dimension of an array.
real x(3) x is an one-dimensional array (vector) of length 3
real x(3,2) x is a two-dimensional array with 3 rows and 2 columns
real x(m,n) x is a two-dimensional array with m rows and n columns

Initializing Variables Variables must be initialized, or given a value, before they are used. Fortran will
not necessarily throw an error if a variable is used uninitialized; instead it will use a junk value.
To initialize an array (1, 2, 3)
CHAPTER 1. GENERAL INFORMATION 19

real *8 examplearray (3)


2 data examplearray /1. d0 , 2. d0 , 3. d0 /

To initialize an array (2, 2, 2)

real *8 examplearray (3)


data examplearray /2. d0 , 2. d0 , 2. d0 /

or

real *8 examplearray (3)


data examplearray / 3 * 2. d0 /

The data command is only performed once, so initialize all needed vectors and tensors in a single command.
Additionally, in user subroutines, the data command is only executed at the beginning of the job, so data
initialization of this form should only be used for static variables.
Double precision numbers must be initialized as such to avoid rounding to a single precision number:
1.d0
3.1415926535d0

1.7.4 Producing Output

The simplest form of an I/O statement is


WRITE(*,*) item1, item2
where the first asterisk means that the input goes to the screen and the second asterisk means that the
computer determines the format of the output based on the type of the data.
The more general form of I/O allows data transfer to files, the terminal, printers, etc.
WRITE(unit #, format, options) item1, item2, . . .
where the unit number has an association with a particular device. Reserved unit numbers in Fortran include
5 - input from the keyboard (for READ statements)
6 - output to the screen (for WRITE statements)
while some Abaqus-specific unit numbers include:
6 - output to the printed output (.dat) file
7 - output to the message (.msg) file
Other files can be associated with a unit number with an OPEN statement:
OPEN(UNIT=n, FILE=filename, options ...)

1.7.5 Debugging

An easy way to debug Fortran programs is to use print statements.


print *, Hello, world!
print *, "The solution is ", x
Commas separate the items to be printed. Single or double quotes may be used.
CHAPTER 1. GENERAL INFORMATION 20

1.7.6 Subfunctions

The basic structure of a subfunction is:

subroutine SubroutineName ( arg1 , arg2 )


implicit none
3 real *8 arg1 , arg2 ! declaration

c ... subroutine code goes here

return
8 end

Subroutines in Fortran dont have explicit outputs; instead, the subroutine modifies some or all of its
variables, which are substituted back for the original variables in the main program.
Subroutines are called using call SubroutineName(arg1, arg2)

1.7.7 Miscellaneous

Fortran is case insensitive!


After column 6, Fortran does not recognize spaces; they only serve the purpose of making code more
readable

1.7.8 Other Resources

For more information on Fortran, see http://www.math.hawaii.edu/~hile/fortran/fortmain.htm


CHAPTER 1. GENERAL INFORMATION 21

1.8 Debugging
If debugging is the process of removing software bugs,
then programming must be the process of putting them in.

1.8.1 Abaqus Job Files

When Abaqus runs a job, it creates several files that contain valuable information about the job. When a
job exits with an error, the associated files can likely point you in the right direction as you try to solve the
problem.
.com: command file created by the Abaqus execution procedure. It lists all the options for the job, so
you can verify that youre running what you want to run.
.dat: printed output file. It contains:
the options processed from the input file (another way to check)
number of elements, nodes, and degrees of freedom
computing time and estimations of memory used
requested variable outputs FiXme Note:
what does this
.log: log file mean?
FiXme Note:
.msg: message file. This file often contains error message, so check here first usually. It also contains: what is useful in
this file?
information on time steps
convergence parameters
convergence information for every iteration of every increment of every step
total number of increments and computing time
.odb: output database. This file is written during analysis and is read by the Visualization module in
the GUI. It is the only file necessary for viewing results.
.sta: status file. Contains summaries of every increment, including:
number of attempts
iterations
step time

1.8.2 Some Tips

If the message file says that convergence is unlikely, there is most likely an error with the tangent.
If the job completes, but the deformed configuration doesnt display, there was likely an error somewhere
along the way that resulted in values of NaN, or Not a Number.
If there is a floating point error, there is probably a division by zero somewhere. Print any values that are
in denominators to make sure they are not zero!
CHAPTER 1. GENERAL INFORMATION 22

1.9 Verifying Subroutines


Before using a user-written subroutine, it should be verified on a one-element input file. First run tests -
uniaxial stretch, uniaxial with finite rotation, and finite shear - with all displacements prescribed to verify
the integration algorithm for stresses and state variables. Then run similar tests with prescribed loads to
verify the accuracy of the Jacobian.
Chapter 2

Continuum Mechanics References

2.1 General Continuum Mechanics

2.1.1 Indicial Notation


FiXme Note:
more here

[A B]ijkl = Aij Bkl (I I) : A = I : A = trA (A B) : C = A(B : C) C : (A B) = (C : A)B


[AB]ijkl = Aik Bjl (II) : A = I : A = A (AB) : C = ACBT C : (AB) = AT CB
[AB]ijkl = Ail Bjk (II) : A = IT : A = AT (AB) : C = ACT BT C : (AB) = BT CT A

Cauchy-Green Deformation Tensors

right Cauchy-Green deformation tensor left Cauchy-Green deformation tensor

CIJ = FaI FaJ bij = FiA FjA


C1
IJ = F1 1
Ia FJa b1
ij = F1 1
Ai FAj

2.1.2 Symmetry

Fourth-order tensors can have major


AIJKL = AKLIJ (2.1)
and/or minor symmetries:
AIJKL = AJIKL = AIJLK (2.2)
Fourth-order tensors with minor symmetries can be written in Voigt notation as second-order tensors. Ten-
sors that also have major symmetries appear symmetric in Voigt notation.

2.1.3 Identity Tensors

For convenience in coding, several identity tensors are defined.


second-order identity tensor in Voigt notation
 
xi = 1 1 1 0 0 0 (2.3)

23
CHAPTER 2. CONTINUUM MECHANICS REFERENCES 24

fourth-order symmetric identity tensor in Voigt notation



1 0 0 0 0 0
0 1 0 0 0 0

I

1 0 0 1 0 0 0
= [II + II] = IIII = 0 0 0
(2.4)
2 0.5 0 0

0 0 0 0 0.5 0
0 0 0 0 0 0.5

2.1.4 Tensor Derivatives

The derivative of a scalar-valued function with respect to a tensor is a tensor.


 
f (X) f (X)
= (2.5)
X IJ XIJ
It is defined as the tensor f,X that satisfies the expression
d
f (X + dX) = f,X : dX (2.6)

d =0

for all admissible variational tensors dX.


The derivative of a tensor-valued function with respect to a tensor is a fourth-order tensor.
 
F(X) FIJ (X)
= (2.7)
X IJKL XKL
It is defined as the tensor F,X that satisfies the expression
d
F (X + dX) = F,X : dX (2.8)

d =0

for all admissible variational tensors dX.

Symmetric Tensor Derivatives

The derivative of a scalar-valued function with respect to a symmetric tensor is defined as any tensor f,X
that satisfies the expression
d
f (X + dX) = f,X : dX (2.9)

d =0
for all symmetric variational tensors dX.
Thusly defined, the derivative is clearly not unique, because dX is symmetric and

S:W=0 (2.10)

for any symmetric tensor S and any skew-symmetric tensor W. Thus if a tensor A satisfies the equation,
:0

A : dX = Asym + Askew : dX = Asym : dX +  skew
: dX = Asym : dX

A  (2.11)

its symmetric part will also satisfy the equation by itself.


To make the definition unique, then, we impose a further restriction: we require that the derivative itself be
symmetric ({f,X }IJ = {f,X }JI . This eliminates the non-unique skew-symmetric parts. This is enforced by
the definition of the symmetric part of a tensor:
 
1 f (X) f (X)
{f,X }IJ = + (2.12)
2 XIJ XJI
CHAPTER 2. CONTINUUM MECHANICS REFERENCES 25

Similarly, the derivative of a tensor-valued function with respect to a tensor is a fourth-order tensor; in order
to make this definition unique, we further require that the derivative be symmetric in any and all slots in
which the tensors themselves are symmetric.
Thus, the derivative of a symmetric tensor with respect to itself is:
X 1
= (II + II) = I (2.13)
X 2
and the derivative of its inverse with respect to itself is:
X1 1
X1 X1 + X1 X1

= (2.14)
X 2
As expected, both expressions have all the major and minor symmetries.
A good reference on symmetric tensor functions is Tensor Analysis with Applications in Mechanics, by L.P.
Lebedev, p75.

2.1.5 Useful Tensor Derivatives

A Aij
= II = I = ik jl
A Akl
AT Aji
= II = IT = il jk
A Akl
A1 A1
= A1 AT ij
= A1 1
A ik Alj
Akl
AT
= AT A1 A1
ji
A = A1 1
li Ajk
Akl

trA
= I
A
J
= JFT
F
J J 1
= C
C 2
2
J 3 1 2
= J 3 C1
C 3
ln J 1 1
= C
C 2

2.2 Structural Tensors


Preferred directions for anisotropically growing materials are defined by unit vectors in the undeformed
configuration, such as the normal vector n0 . The deformed normal n is calculated from the undeformed
normal and the deformation gradient,
n = F n0 (2.15)
For coding purposes, the structural tensors of the undeformed (rr) and deformed elastic (rrt) normals are
also calculated:
N0 = n0 n0 (2.16)
N=nn (2.17)
Chapter 3

Where Do Tangents Come From?

The tangent relates the change in stress (or stress rate) to the change in strain (or strain rate).

3.1 Objectivity
Objectivity means that physical processes do not depend on the position of the observer. To satisfy the
requirements of objectivity, vectors must satisfy

u=Qu (3.1)

and second-order tensors must satisfy


A = Q A QT (3.2)
for any rotation Q.

Objective Cauchy stress , Piola-Kirchhoff stresses P and S (and S)x, rate of deformation d

Non-Objective Spin tensor w, spatial velocity gradient l.


All spatial fields are objective and Lie derivatives of spatial fields are generally objective, but the material
time derivatives of spatial fields are not usually objective. (The Lie derivative is the push forward of the
material time derivative of the pull back of a spatial field.) Instead, we use objective rates, which are
essentially modified time derivatives that satisfy the requirement of objectivity.

3.2 Deformation and Strain


For more information, see the Abaqus Theory Manual 1.4: Deformation, Strain, and Strain Rates.

3.2.1 Strain

Strain is a measure of relative motion in a body. There are many such measures of deformation, beginning
from the simple concept of stretch:

=NCN

26
CHAPTER 3. WHERE DO TANGENTS COME FROM? 27

Strain in one dimension

Other strain measures are a function of stretch,


 = f ()
By expanding a Taylor series around the unstrained state,
2
f 1 2 f
 = f (1) + ( 1) + ( 1) +
2 2
and requiring that f (1) = 0 (strain is zero in the unstretched state), f / = 1 when = 1 (so that small
strain is defined as the change in length per unit length), and f / > 0 for all , several common strain
measures can be derived:
Nominal (Biots) strain: f () = 1
Logarithmic strain: f () = ln
Greens strain: f () = 1/2 2 1


Strain in three dimensions

The basic concept of strain can be generalized to three dimensions by writing the strain matrix using the
principal strains:
 = i Ni
where  is again a function of stretch. Certain choices of the strain measure, including Greens strain make
calculation of strain possible directly from the deformation gradient, F.

3.2.2 Deformation Rates

Deformation rates show how tensor fields change with space. The spatial velocity gradient, for instance, tells
how the velocity varies over the spatial domain.
v(x, t) va
l(x, t) = = = FF1 (3.3)
x xb
It can be split into symmetric and non-symmetric parts.
l=d+w (3.4)
The symmetric part,
1
d= (l + lT ) (3.5)
2
is known as the rate of deformation tensor, while the non-symmetric part,
1
w= (l lT ) (3.6)
2
is known as the spin tensor and characterizes the rate of rotation. The rate of deformation d can be shown
to be the push forward of the time rate of change of the Green-Lagrange strain tensor E:
E = FT d F (3.7)

3.2.3 Other

shear strains are doubled


 = [11 , 22 , 33 , 212 , 213 , 223 ]
CHAPTER 3. WHERE DO TANGENTS COME FROM? 28

3.3 Stress Rates


For more information on stress rates, see Bonet & Wood, p152, or Holzapfel, p192.

3.3.1 Truesdell Stress Rates

The simplest objective stress rate is the Truesdell stress rate, , which is the Piola transformation (push
forward) of the time derivative of the second Piola-Kirchhoff stress.
h i
= J 1 F S FT (3.8)
" t #
 1 
= J 1 F JF FT FT
t
" #
1 1 T 1 T 1 T 1 T
= J F JF F + J (F ) F + JF () F + JF (F ) FT
t t t
Using the expressions
1 T
F=lF F = F1 l F = lT FT (3.9)
t t t
we can further simplify this to:
" #
1
= J F JF 1 T 1 T 1 T 1 T
F JF l F + JF F JF l F T
FT

= l + lT
J 1 J
Now we use the expressions
J = Jdivv divv = trv = trl (3.10)
to get
= l lT + (trl) (3.11)

The Truesdell rate of the Cauchy stress can also be interpreted as the Lie derivative of the Kirchhoff stress;
that is,
J = L [ ] (3.12)

Thus the Truesdell Kirchhoff stress is defined as


= J " #
 1 T

= F JF F FT
t
" #
1 T 1 T 1 T 1 T
= F JF F + J (F ) F + JF () F + JF (F ) FT
t t t
" #

= F JF 1 T 1 T 1 T 1 T
F JF l F + JF F JF l F T
FT

Jl + J J lT
= J
+ J Jl J lT
= J
| {z }

This is also

= l lT (3.13)
CHAPTER 3. WHERE DO TANGENTS COME FROM? 29

3.3.2 Jaumann Stress Rate

Another important objective stress rate is the Jaumann-Zaremba rate.

A = A w A + A w (3.14)

It is essentially a simplification of the Truesdell stress, assuming only rigid-body rotation (F = R); that is,
the Truesdell and Jaumann rates of a stress are equivalent if d = 0.

= w + w (3.15)

= w + w (3.16)

The Jaumann stress is used because it is easy to deal with, and leads to a symmetric tangent.

3.3.3 Truesdell and Jaumann Stress Rates

The Jaumann stress is related to the Truesdell stress by:

= l lT
T
= (d + w) (d + w)
= d w dT wT
= d w d + w
= w + w d d
| {z }

= d d (3.17)

The four stress rates introduced here are related by:



=

d=0
= L [] = l lT + (trl) = w + w

= J

= L [ ] = l lT = w + w

=
d=0
CHAPTER 3. WHERE DO TANGENTS COME FROM? 30

3.4 Elasticity Tensors

3.4.1 Lagrangian Elasticity Tensor

The tangent arises from the linearization of the stress.


 
DSIJ = SIJ E(u + u) |=0

SIJ
= EKL (u + u)|=0
EKL
SIJ
= DEKL (u)
EKL
= CIJKL DEKL (u) (3.18)

Thus we have the Lagrangian elasticity tensor,

CIJKL = E
SIJ
KL
=2
SIJ
CKL
(3.19)

3.4.2 Eulerian Elasticity Tensor

The spatial equivalent is intractable so instead the rate form is used. (Essentially, the terms S and E can
be linearized in the direction of v instead of u.) This is done using the fact that the time derivative of the
second Piola-Kirchhoff stress is the pull back of the Truesdell stress rate

S = F1 FT (3.20)

and the time derivative of the Green-Lagrange strain tensor is the pull back of the rate of deformation

E = FT d F (3.21)

SIJ = CIJKLEKL
F1 1
Ii ij FJj = CIJKLFkK dkl FlL
ij = CIJKLFiI{zFjJ FkK FlL} dkl
|
J cijkl

ij = J cijkl dkl
ij = cijkl dkl (3.22)

Thus the Eulerian elasticity tensor is defined as:

cijkl =
1
J
C IJKL FiI FjJ FkK FlL (3.23)

c =
1
J
C
[FF] : : FT FT
 
(3.24)
CHAPTER 3. WHERE DO TANGENTS COME FROM? 31

3.4.3 Jaumann Elasticity Tensor

The objective stress rate used by Abaqus is actually the Jaumann stress rate instead of the Truesdell stress
rate. From the Abaqus documentation (1.1.36 in the Abaqus User Subroutines Reference Manual),
If the material model allows large volume changes and geometric nonlinearity is considered, the
exact definition of the consistent Jacobian should be used to ensure rapid convergence...
For total-form constitutive laws, the exact consistent Jacobian CAbaqus is defined through the
variation in Kirchhoff stress:
(J) = J (C : D + W W ) (3.25)
FiXme Note:
What does this
For rate-form constitutive laws, the exact consistent Jacobian is given by: mean?

1 (J)
C Abaqus = (3.26)
J

The format of the elasticity tensor can be found using the relationship between the two stress rates.
= J :d c

d d = Jc : d
= Jc : d + d + d

= J [c : d + d + d]
We are seeking a tangent that will satisfy the equation
= J cAbaqus : d (3.27)
That is,
J cAbaqus : d = c
J [ : d + d + d]
cAbaqus : d = c:d+d+d
cAbaqus : d = [c + c0 ] : d
where c0 is some fourth-order tangent that satisfies
c0 : d = d + d (3.28)
Because the double contraction with a symmetric tensor is not unique (see the section on tensor derivatives
for an explanation), there are an infinite number of tensors that could satisfy this. We restrict this further
by requiring major and minor symmetries and find the form to be:

c0ijkl =
1
2
(ik jl + il jk + jk il + jl ik ) (3.29)

c0 =
1
2
(I + I + I + I) (3.30)

21 0 0 4 5 0
22 0 4 0 6

c0

23 0 5 6
= 1 1 1

2 (1 + 2 ) 2 6 2 5

1 1

sym. 2 (1 + 3 ) 2 4

1
2 (2 + 3 )

This extra term can be reduced to purely kinematic terms. For the logarithmic form of the Neo-Hookean
material model, this simplifies to:

c0 = J2 ( ln J ) I + 2J (Ib + Ib + bI + bI) (3.31)


CHAPTER 3. WHERE DO TANGENTS COME FROM? 32

Thus we have the Abaqus tangent:


cAbaqus = c + c0 (3.32)
which relates the volume-normalized Jaumann rate of the Kirchhoff stress to the symmetric rate of defor-
mation tensor:
1
J
c
= Abaqus : d (3.33)

This can be confirmed:

1
cAbaqus
ijkl =
J dkl
ij

1 ij + dim mj + im dmj

=
J dkl

1 ij 1 (dim mj ) 1 ( im dmj )
= + +
J dkl J dkl J dkl
1 ij 1 dim 1 dmj
= + mj + im
J dkl J dkl J dkl
ij dim dmj
= + mj + im
dkl dkl dkl
ij 1 1
= + (ik ml + il mk ) mj + im (mk jl + ml jk )
dkl 2 2
ij 1 1
= + (ik lj + il kj ) + (jl ik + jk il )
dkl 2 2
ij 1
= + (ik lj + il kj + jl ik + jk il ) (3.34)
dkl 2
= cijkl +
1
2
(ik lj + il kj + jl ik + jk il ) (3.35)

cAbaqus = c 1
+ (I + I + I + I)
2
(3.36)

For more information on this extra term, consult Prot, V., & Skallerud, B. (2009). Nonlinear solid finite el-
ement analysis of mitral valves with heterogeneous leaflet layers. Computational Mechanics, 43(3), 353368.
or section 8.4.5 of Allan Bowers Applied Mechanics of Solids.
Chapter 4

Neo-Hookean Constitutive Model

Hyperelastic materials are derived from a strain energy function (or free energy function) that represents the
energy density of a material as a function of strain (or temperature, etc.). One of the simplest hyperelastic
material models is the Neo-Hookean. There are many variations on the Neo-Hookean material model, but
we most commonly use

= ln2 J + (I1 3 2 ln J) (4.1)
2 2

4.1 Properties
This UMAT requires 2 material parameters:
1. lam - Lame constant (, or L)
2. mu - shear modulus ( or G)

4.2 Stress
Abaqus uses the Cauchy or true stress, which corresponds to the force per current area. To derive the

Cauchy stress, the definition of the Second Piola-Kirchoff stress (S = 2 C ) is used, where is the free
energy function.

S = 2 (4.2)
C
ln J I1
= 2 +2
ln J C I1 C
 
1 1
= 2 ( ln J ) C +2 I
2 2
S = ( ln J ) C1 + I (4.3)

This is then pushed forward into the spatial configuration to the Cauchy stress as required by Abaqus.
1
= F S FT (4.4)
J
1 h i
= F ( ln J ) C1 + I FT
J
1h i
= ( ln J ) I + b (4.5)
J

33
CHAPTER 4. NEO-HOOKEAN CONSTITUTIVE MODEL 34

4.3 Tangent
The Lagrangian tangent, C, is defined as

C =
S
2
C
(4.6)
S ln J S C1
= + :
ln J C C1 C
1 1 1 C1
= 2C C + 2 ( ln J )
2 C
C = C1 C1 ( ln J ) C1 C1 + C1 C1

(4.7)

This is then pushed forward to the spatial domain

c =
1
J
C
[FF] : : FT FT
 
(4.8)

cijkl =
1
J
CIJKL FiI FjJ FkK FlL (4.9)
1 h 1 1 i
= CIJ CKL ( ln J ) C1 1 1 1
IK CJL + CIL CJK FiI FjJ FkK FlL
J
c 1
I
h i
= I I 2 ( ln J ) (4.10)
J

The tangent required by Abaqus (for more information, see Where do Tangents Come From?) is

cAbaqus = c + c0 (4.11)

where

c0ijkl =
1
2
(ik jl + il jk + jk il + jl ik ) (4.12)
1
= (I + I + I + I) (4.13)
2
This extra term can be reduced to purely kinematic terms:

c0 = J2 ( ln J ) I + 2J (Ib + Ib + bI + bI) (4.14)

Thus the total tangent is

cAbaqus =

J
II
2
J
I
2
( ln J ) + ( ln J ) +
J

2J
I
(Ib + Ib + bI + bI)

= II+ (Ib + Ib + bI + bI) (4.15)
J 2J
CHAPTER 4. NEO-HOOKEAN CONSTITUTIVE MODEL 35

4.4 Abaqus Neo-Hookean Constitutive Model


Abaqus uses a different formulation of the Neo-Hookean constitutive model, with the free energy function:
2 
= D1 (J 1) + C10 I 1 3 (4.16)
where
1 3 + 2
D1 = = and C10 = (4.17)
2 2 3 2
and quantities with an overbar (like I 1 ) indicate the isochoric, or volume preserving part. This is based on
the definition of the isochoric deformation gradient,
F = J 1/3 F (4.18)
which leads to the defintion of the Right Cauchy Green deformation tensor with volume change removed:
T
C = F F = J 2/3 C (4.19)

For more information, consult Section 4.6.1 in the Abaqus Theory Manual.

4.4.1 Stress

The Second Piola-Kirchhoff stress is derived from the free energy function:

S = 2 (4.20)
C
 2 
= 2 D1 (J 1) + C10 I 1 3
C
2 
= 2D1 (J 1) + 2C10 I1 3
C C
J I 1
= 4D1 (J 1) + 2C10
C C
J 1 I 1 C
= 4D1 (J 1) C + 2C10 :
2 C C
J 2/3 CKL

1
SIJ = 2D1 (J 1) JCIJ + 2C10 KL :
CIJ
J 2/3 J
 
2/3 CKL
= 2D1 (J 1) JC1IJ + 2C10 KL J + CKL
CIJ J CIJ
 
1
= 2D1 (J 1) JC1IJ + 2C10 J 2/3
IJ J 2/3
CKK C 1
IJ
3
 
3 + 2 1
S = (J 1) JC1 + J 2/3 I I1 C1 (4.21)
3 3

This is then pushed forward into the spatial configuration to the Cauchy stress, which is the stress required
by Abaqus.
1
= F S FT (4.22)
J   
1 3 + 2 1
= F (J 1) JC1 + J 2/3 I I1 C1 FT
J 3 3
  
1 3 + 2 1
= (J 1) JF C1 FT + J 2/3 F I FT I1 F C1 FT
J 3 3
 
3 + 2 1
= (J 1) I + J 5/3 b I1 I (4.23)
3 3
CHAPTER 4. NEO-HOOKEAN CONSTITUTIVE MODEL 36

4.4.2 Tangent

The Lagrangian tangent, C, is defined as

C =
S
2
C
(4.24)
 !
3 + 2 1
= 2 (J 1) JC1 + J 2/3 I I1 C1
C 3 3
 !
3 + 2  2  1  2/3 1 1
= 2 J J C + 2 J I I1 C
3 C C 3
! !
1 1
CIJKL

3 + 2 J 2 J 2/3
 
C J 1 1 I1 C
C1 2 IJ
IJ I1 C1 J 2/3 IJ

= 2 IJ + J J + 2 IJ
3 CKL CKL CKL 3 3 CKL
 !
3 + 2 J 2 J J 1 2
1 1 1 1 1

= 2 C J J CIK CJL + CIL CJK
3 J CKL IJ 2
" #!
1
J 2/3 J
 
1 1 C I 1
+2 IJ I1 C1 IJ J 2/3 I1 IJ
+ C1
J CKL 3 3 CKL CKL IJ
!
3 + 2 J 1 1 2
1 1 1 1 1

= 2 (2J 1) CKL CIJ J J CIK CJL + CIL CJK
3 2 2
  " #!
2 5/3 J 1 1 1 1
IJ I1 C1 J 2/3 I1 C1 1 1 1 1

+2 J C IK CJL + CIL CJK + KL CIJ
3 2 KL 3 IJ
3 2
!
3 + 2 1 1 2
 1 1 1 1

= (2J 1) JCIJ CKL J J CIK CJL + CIL CJK
3
!
1 2/3 1 1 2/3 1 1 1 1 1 1 1 1 1
I1 CIJ CKL + J 2/3 I1 CIK CJL + CIL CJK + J 2/3 KL CIJ

2 J CKL IJ J
3 9 6 3
!
CIJKL =
3 + 2
3
J (2J 1) C1 1 1 1
IJ CKL (J 1) CIK CJL + CIL CJK
1 1


 !
2 2/3 1 1 1 1 1 1 1 1 1 1 1
J IJ CKL + CIJ KL I1 C C + C C + C C (4.25)
3 3 IJ KL 2 IK JL 2 IL JK
CHAPTER 4. NEO-HOOKEAN CONSTITUTIVE MODEL 37

This is then pushed forward to the spatial domain

c =
1
J
C
[FF] : : FT FT
 
(4.26)

cijkl =
1
J
CIJKL FiI FjJ FkK FlL
!
1 3 + 2 1 1 1 1 1 1

= J (2J 1) CIJ CKL (J 1) CIK CJL + CIL CJK FiI FjJ FkK FlL
J 3
 !
1 2 2/3 1 1 1 1 1 1 1 1 1 1 1
J IJ CKL + CIJ KL I1 C C + C C + C C FiI FjJ FkK FlL
J3 3 IJ KL 2 IK JL 2 IL JK
!
3 + 2
= (2J 1) im jm kn ln (J 1) (im km jn ln + im lm jn kn )
3
 !
2 5/3 1 1 1
J IJ FiI FjJ km lm + im jm FkK FlL KL I1 im jm kn ln + im km jn ln + im lm jn kn
3 3 2 2
!
3 + 2
= (2J 1) ij kl (J 1) (ik jl + il jk )
3
 !
2 5/3 1 1 1
J bij kl + ij bkl I1 ij kl + ik jl + il jk
3 3 2 2
! !
c I I

3 + 2 2 5/3 1
= (2J 1) I I 2 (J 1) J b I + I b I1 II+ (4.27)
3 3 3

c I
   
2 2 2  
= (2J 1) + I1 J 5/3 I I + I1 J 5/3 2 (J 1) J 5/3 b I + I b (4.28)
9 3 3

The tangent required by Abaqus (for more information, see Where do Tangents Come From?) is

cAbaqus = c + c0 (4.29)

where

c0ijkl =
1
2
(ik jl + il jk + jk il + jl ik ) (4.30)
1
= (I + I + I + I) (4.31)
2
This extra term can be reduced to purely kinematic terms:

c I
 
0 2 35 1 5
 
= 2(J 1) I1 J + J 3 Ib + Ib + bI + bI
3 2

Thus the total tangent is

c
 
2 5/3
1 1 1 1 2 2 
Abaqus
= (2J 1) + I1 J II+J 5/3 Ib+ Ib+ bI+ bI bI Ib (4.32)
9 2 2 2 2 3 3
Chapter 5

Mechanics of Growth

5.1 The Three Configurations of Growth


The components of the deformation gradient are related by the multiplicative decomposition of the defor-
mation gradient into a reversible elastic part (Fe ) that gives rise to stress and an irreversible growth part
(Fg ) that changes the stress-free configuration.

F = Fe Fg (5.1)

B0 (reference) B (deformed)

Fg Fe

B (intermediate)

38
CHAPTER 5. MECHANICS OF GROWTH 39

5.1.1 Mass, Volume, and Density

Because growth involves the addition of mass, the relationships between mass, volume, and density in the
three configurations is not straightforward. A fundamental assumption of growth as modeled here is that
the added material has the same intrinsic properties as the original material

0 = (5.2)

although the quantity is changing

M = J g M0 (5.3)
g
V = J V0 (5.4)

The elastic deformation, on the other hand, does not add mass

M =m (5.5)

but (for a compressible material) the loading may change the volume and density
1 1
= = e 0 (5.6)
Je J
v = J e V = JV0 (5.7)

5.1.2 Strain Energy Density

The strain energy density, , is defined per unit volume. For completeness, it is sometimes convenient to
write it in terms of unit mass, 0 , and separate out the mass density.

= 0 0 (5.8)

Because the mass density is the same in the reference and grown configurations 5.2, the strain energy density
is equivalent in both configurations.

= 0 0 (C, Fg ) = 0 (C, Fg ) (5.9)

5.1.3 Pushing Forward and Pulling Back

Pushing forward is an operation that converts a quantity from the reference to the deformed configuration,
while pulling back is its opposite - an operation that reverts a quantity from the deformed to the reference
configuration. As shown in the figure above, the push forward generally uses the deformation gradient; to
pull back, then, it is intuitive that the inverse of the deformation gradient is used.
Push forwards and pull backs are also used to move between the three configurations of a growing material.
Thus, Fg is used to move from the reference to the intermediate configuration, Fe is used to move from the
intermediate to deformed configurations, and their inverses are then used to move in the opposite direction.
Note: this is a general rule of thumb or quick check, but is not intended as a formula. Exact forms of the
push forward and pull back must be derived for each quantity.
CHAPTER 5. MECHANICS OF GROWTH 40

5.1.4 Incompressibility

Incompressibility imposes a constraint of no volume change on the elastic deformation - that is, detFe = 1.
Incompressibility can be formulated exactly with a Lagrange multiplier or approximately using a penalty
method (choosing a bulk modulus significantly larger than the shear modulus, >> ). The Poissons ratio
is a measure of compressibility; incompressible materials have a Poissons ratio of 0.5. The ratio between
bulk and shear modulus, n = /, is related to Poissons ratio by:
n 2
= n= (5.10)
2(n + 1) 1 2

Nearly incompressible materials may have a ratio on the order of n 106 (in which case = 0.499995).

5.1.5 Notation

To distinguish between the three configurations, we define a reference or material quantity with an uppercase
letter and subscript nought (X0 ), intermediate or grown quantity with an uppercase letter and bar (X), and
deformed or spatial quantity with a lowercase letter (x).
Similarly, the subscripts in the reference configuration are capital letters (XIJ ), while the subscripts in the
deformed configuration are lower-case letters (xij ). For diagonal growth tensors (including all growth models
presented here), the intermediate configuration preserves the directions (but not the lengths) of the reference
configuration, so capital letters are also used for tensors in the intermediate configuration (XIJ ).
A more general treatment of growth should carefully distinguish between unit vectors and indices in the
reference and intermediate configurations, for instance:
g
FiK = Feij FjK (5.11)

5.2 Growth Kinetics


In growth problems, stress is determined by the elastic deformation, which is the part of the total deformation
that is not caused by growth. The first step to calculating the stress, therefore, is determining the amount
of growth. Growth kinetics generally fall into one of three groups:
morphogenetic
stretch-driven
stress-driven

5.2.1 Morphogenetic Growth

In morphogenetic growth, growth is caused by signaling molecules or morphogens. This is represented


mathematically by an equation for the growth that has no mechanical dependencies:

g = f (t) or g = f (c) (5.12)

where t is the time and c is some concentration.


Morphogenetic growth is straightforward to program because the growth variable is calculated directly and
then used for the calculations of the stress and tangent.
CHAPTER 5. MECHANICS OF GROWTH 41

5.2.2 Mechanically-Driven Growth

Stretch- and stress-driven growth, on the other hand, have mechanical causes. They are often represented
mathematically by an evolution equation, which dictates the growth rate in response to a certain mechanical
stimulus:
g = k g (g ) g (g , , C) (5.13)
In this form, k g is the rate equation and g is the growth criterion function. Common forms of the rate
equation include exponential 
max g

g
k = (5.14)
max 1
or linear
kg = (5.15)
The mechanics-dependency is contained in the growth criterion function; common choices include fiber-
stretch-driven
g = e crit (5.16)
and Mandel-stress-driven crit
g = trM trM

(5.17)

Mechanically-driven growth is more difficult to program because the evolution equations are generally non-
linear, and it is not easy to solve for gn+1 . For stability, we use implicit Euler discretization

gn+1 gn
g = k g g (5.18)
t
R gn+1 gn k g g t (5.19)

and then solve the resulting equation by using a Newton-Rhapson iteration to drive the residual to zero.

k g g g
 
R g
K= = 1 + k t (5.20)
gn+1 gn+1 gn+1

After each iteration, the trial value is updated

gn+1 gn+1 R/K (5.21)

For stress-driven growth, the stress has to be recalculated at each iteration before evaluating the growth
criterion function.
CHAPTER 5. MECHANICS OF GROWTH 42

5.3 Thermodynamics
The dissipation inequality takes the form of
1
D=S: C S0 0 (5.22)
2
It can be evaluated

1
D = S : C : C : Fg S0 0 (5.23)
2 C g Fg
F C
!
1 Ce Fe
= S2 : C : : : Fg S0
C g 2 Ce Fe Fg

F C
!
1 CeIJ FekL g
= SIJ 2 CIJ F S0
CIJ g 2 CeIJ FekL FgP Q P Q

F C
 
! g1
1 e e
(FaI FaJ ) F kM F ML

g
= SIJ 2 CIJ e e g FP Q S0
CIJ g 2 CIJ FkL FP Q


F ! C
e e
Fg1
 
1 1 FaI e e FaJ ML g
= SIJ 2 CIJ SIJ F + F F kM F S0
CIJ g 2 2 FekL aJ aI
FekL FgP Q P Q

F
!
1 1 h i  
= SIJ 2 CIJ SIJ ak IL FeaJ + FeaI ak JL FkM Fg1 g1 g
M P LQ FP Q S0
F
CIJ g 2 2

F !
1 1h i
= SIJ 2 CIJ + SIJ ak IL FeaJ + SIJ FeaI ak JL FekP Fg1 g
LQ FP Q S0
CIJ g 2 2

F !
1 1h i
= SIJ 2 CIJ + SLJ FekJ FekP + SIL FekI FekP Fg1 g
LQ FP Q S0
CIJ g 2 2

F !
1 1h i
= SIJ 2 CIJ + SLJ CeJP + SIL CeIP LgP L S0
CIJ g 2 2

F !
1
= SIJ 2 CIJ + CeP J SJL LgP L S0
CIJ g 2

F !
1
= SIJ 2 CIJ + MP L LgP L S0
CIJ g 2

F

yielding the expression !


1
D= S2 : C + M : Lg S0 0 (5.24)
C 2

Fg
to yield the definition of the second Piola-Kirchhoff stress:

S=2 (5.25)
C Fg

CHAPTER 5. MECHANICS OF GROWTH 43

Note: The following derivations are true for all growth models that use an isotropic Neo-Hookean baseline
material with the strain energy density function
2 e e
(C, Fg ) = ln J + (I1 3 2 ln J e ) (5.26)
2 2
and have a symmetric growth tensor Fg . FiXme Note: I
would like this
section to hold,
except otherwise
5.4 Stress noted, for all
symmetric Fg

The definition of the second Piola-Kirchhoff stress comes from the dissipation equality, as derived previously.

(C, Fg )
S=2 (5.27)
C
g
F

Abaqus uses the Cauchy or true stress, which corresponds to the force per current area. The definition of
the Cauchy stress is from the relationship between the reference and spatial configurations:
1
= F S FT (5.28)
J

The second Piola-Kirchhoff stress can be evaluated directly by rewriting all elastic components in terms of the
total and growth components. Alternately, because the total, growth, and elastic deformations are mutually
dependent, changing the total deformation while holding the growth deformation constant is equivalent to
changing the elastic deformation.

(C, Fg ) (Ce ) Ce
2 g =2 : (5.29)
C Ce C Fg

F
CHAPTER 5. MECHANICS OF GROWTH 44

This leads to a more convenient derivation using the chain rule:


1
= F S FT (5.30)
J  
1
= F 2 FT
J C Fg

Ce
 
1
= F 2 : FT
J Ce C Fg

!
1 (FeaK FeaL )
= FiI 2 FJj
J CeKL CIJ

g
F
 
g1 g1
1 F aM F M K F aN F N L

= FiI 2 FJj

J CeKL CIJ

g
F
 
1 (FaM FaN ) g1 g1
= FiI 2 FM K FN L FJj
J CeKL CIJ
 
1 CM N g1 g1
= FiI 2 F F FJj
J CeKL CIJ M K N L
 
1
= FiI 2 IM N J Fg1 g1
M K FN L FJj
J CeKL
 
1
= FiI 2 Fg1 Fg1 FJj
J CeKL IK JL
1
= F Fg1 2 FgT FT
J Ce
1
= F Fg1 2 FgT FT
J Ce
1 e
= F 2 FeT (5.31)
J Ce

For convenience, a term is often introduced to include the derivative /Ce . This can be done in multiple
ways, including at least two common options:
1
S=2 or S=2 (5.32)
Ce J g Ce
Depending on how you define this S, the relationship between S, S, and will change. For the definitions
above, the Second Piola-Kirchhoff stress is defined as
S = Fg1 S FgT or S = J g Fg S FgT (5.33)
and the Cauchy stress as
1 e 1 e
= F S FeT or = F S FeT (5.34)
J Je
FiXme Note: As
this is similar to
Thus, for the logarithmic Neo-Hookean material model, there are two possible equations for S the definition of
the stress in the
S=2 = ( ln J e ) Ce1 + I (5.35) reference
Ce configuration, it
1 1 h i
seems logical
S=2 g = ( ln J e ) Ce1 + I (5.36) that this could
J Ce J g
be interpreted as
the stress in the
but, regardless of which one is used, the equations for stress in the reference and spatial configurations are:
intermediate
1 configuration (or
S = ( ln J e ) C1 + FgT Fg (5.37) as something like
1h i the force per uni
= ( ln J e ) I + be (5.38) grown area) . . .
J
but what does
that mean,
because isnt the
intermediate
configuration
stress-free?
CHAPTER 5. MECHANICS OF GROWTH 45

The purpose of this section is to clarify that, for growth of new material with the same properties as
the original material, there is essentially no difference between the equations = J1e Fe S FeT and
= J1 Fe S FeT . The only difference is the definition of S, but the same equations for S and are
obtained.
CHAPTER 5. MECHANICS OF GROWTH 46

5.5 Tangent
For growth, the stress is dependent on both the overall deformation and the amount of growth that has
taken place,
S(C, Fg ) (5.39)
Thus the tangent consists of two terms - the elastic tangent, in which growth is held constant, and the
growth tangent, in which the total deformation is held constant. The Lagrangian tangent is derived from
the second Piola-Kirchhoff stress:
dS
C = 2 (5.40)
dC
S S g
= 2 +2 g
C g C
F C

S S Fg g
= 2 +2 g : g (5.41)
C g F C
F C
= Ce + Cg (5.42)

The tangent required by Abaqus is based on the Jaumann stress rate (for more information, see Where do
Tangents Come From?
Abaqus
c
= + 0 c c (5.43)
c
where is the Eulerian or spatial tangent, which is related to the Lagrangian tangent, C, by the push forward
operation

c =
1
J
C
[FF] : : FT FT
 
(5.44)

cijkl =
1
J
CIJKL FiI FjJ FkK FlL (5.45)

The terms can be pushed forward individually or as a whole.

5.5.1 Elastic Tangent

The elastic component of the tangent is dependent only on the free energy function; it remains the same for
all types of growth.

C S
e
= 2 (5.46)

C g

F

c e
=
1
J
[FF] : Ce : FT FT  (5.47)

These can be evaluated directly by rewriting any elastic components in terms of the total and growth
components. Similarly to stress, however, the Lagrangian tangent is more often derived using the chain rule

C
e

e S S C
=2 : : (5.48)

e
S C C g

F

The first and third terms are easily derived to be:



S 1 g1
F Fg1 + Fg1 Fg1

= (5.49)
2

S g
F

Ce
= FgT FgT (5.50)
C g

F
CHAPTER 5. MECHANICS OF GROWTH 47

while the second term is conveniently defined as Le, the elastic tangent in the intermediate configuration.

Le =2
S
Ce
(5.51)
Fg

Thus the Lagrangian elastic tangent can be rewritten in terms of the elastic tangent in the intermediate
configuration:

Ce =
1 g1
2
F Fg1 + Fg1 Fg1 :

Le : FgT FgT (5.52)

CeIJKL = L e g1 g1 g1 g1
M N P Q FIM FJN FKP FLQ (5.53)

This is obviously the pull back from the intermediate to the reference configuration.
The Lagrangian elastic tangent Ce is then pushed forward to the spatial domain to get the Eulerian elastic
tangent:
ceijkl = J1 CeIJKLFiI FjJ FkK FlL (5.54)

This is actually equivalent to pushing the intermediate elastic tangent forward directly from the intermediate
configuration:

ceijkl =
1 e
C
J IJKL
FiI FjJ FkK FlL (5.55)

L
1h e i
g1 g1 g1 g1
= M N P Q FIM FJN FKP FLQ FiI FjJ FkK FlL
J
= L
1 e
Fe Fe F e Fe
J M N P Q iM jN kP lQ
(5.56)

5.5.2 Growth Tangent

The growth tangent, cg , is highly dependent on the growth model. In the reference configuration, it is:

C g S Fg
=2 g :
F g


g
C
(5.57)
C
CHAPTER 5. MECHANICS OF GROWTH 48

The first term is dependent on the choice of free energy function and growth tensor Fg :
 
g1 g1
SIJ F IA SAB F JB

2 g = 2

g
FM N FM N


C C

g1
FIA g1 g1 SAB

g1 g1 Fg1
JB
= 2 g SAB FJB + 2FIA F + 2F S AB
FM N FgM N JB IA
FgM N

C
" #
g1 g1   e
FIA F S AB C
= 2 g SAB Fg1JB + F g1
IA SAB
JB
g + F g1
IA 2 CD
g F
g1
FM N FM N CeCD FM N JB
C
 
Fg1 C F g1

L
h i RC RS SD

= 2 Fg1 g1 g1 g1 g1 g1
IM FN A SAB FJB + FIA SAB FJM FN B + FIA FJB
g1 g1 e
ABCD g
FM N


!C
Fg1 Fg1
L
h i
= 2 Fg1 S
IM N J + S F
IN JM
g1
+ F g1 g1 e
F RC
C F
RS SD
g1
+ F g1
CRS
SD
IA JB ABCD
FgM N RC
FgM N

L
h i  
= 2 Fg1 IM S N J + S IN F g1
JM F g1 g1 e
IA F JB ABCD F g1 g1
F
RM N C C RS F g1
SD + F g1
RC C RS F g1 g1
F
SM N D

L
h i  
g1 g1 g1 g1 e g1 e g1
= 2 FIM SN J + SIN FJM FIA FJB ABCD FN C CM D + CeCM FN D

S
2 g
F

L
= 2 Fg1 S + SFg1 Fg1 Fg1 : e : FgT Ce + Ce FgT
    
(5.58)
C

The second term is completely dependent on the exact form of the growth tensor Fg , but the last one is
derived from residual of the local Newton iteration. For a growth evolution equation of the form

g = k g (g ) g (Fe ) (5.59)

the third term can be found to be:


R  g 
= n+1 gn gn+1 t
C C
g g
0 = t
"C C #
g g g g
= + t
C C g g C Fe

g g g
k g g g
 
g g
= k t + k + t
C C g g g C
g g
  g
g
 
k g
1 kg g + t = kg t
g C C g
g g
K = kg t
C Ce g
g k g t g
= (5.60)
C K C g

g
k
Note: the function k g can be changed easily, as only its derivative g is needed for the local Newton
g
g
iteration. , however, appears in the tangent as Ce , so more care must be taken when changing the
g
growth criterion function.
CHAPTER 5. MECHANICS OF GROWTH 49

The Lagrangian growth tangent Cg is then pushed forward to the spatial domain to get the Eulerian growth
tangent:

cgijkl =
1 g
C
J IJKL
FiI FjJ FkK FlL (5.61)
FgM N g

1 SIJ
= 2 g FiI FjJ FkK FlL
J FM N g CKL
!
1
LeABCD
h i  
= 2 Fg1 g1 g1 g1
IM SN J + SIN FJM FIA FJB Fg1 e
N C CM D + CeCM Fg1
ND
J
FgM N k g t g
FiI FjJ FkK FlL
g K CKL g
!
FgM N g
=
2k g t
JK
 e
FiM FjJ SN J e
 e e e e e
L 1 e
+ FiI SIN FjM + FiA FjB FnC FmD ABCD FN n FmM
g C g
FkK FlL

(5.62)

5.5.3 Geometric Tangent

The geometric tangent is

c0ijkl =
1
2
(ik jl + il jk + jk il + jl ik ) (5.63)
1
= (I + I + I + I) (5.64)
2

5.5.4 A Note on Symmetry

The elastic and geometric tangents have both major and minor symmetries in all configurations. The growth
tangent has minor symmetries, but generally does not have major symmetry (so it is not symmetric in Voigt
notation). Because of this, the user-defined material declaration of most growing materials must specify that
the Jacobian is unsymmetric:

* Material , name = SKIN_GROWTH


2 * Depvar
5,
* User Material , constants =9 , unsymm
0.577 , 0.0385 , 1.01 , 4. , 1. , 1.
* INITIAL CONDITIONS , TYPE = SOLUTION , USER

There is also an unsymmetric option in the step declaration,

* Step , name = pressure , nlgeom = YES , inc =100000 , unsymm = YES

but this is actually unnecessary. As detailed in the Matrix storage and solution scheme in Abaqus/Standard
part of section 6.1.2 in the Abaqus Analysis Users Manual, the use of a user-defined material model with
unsymmetric material stiffness matrices automatically triggers use of the unsymmetric matrix storage and
solution scheme.
Non-growing materials, as well as morphogenetic and explicit growing models, do not have a growth tangent
and therefore have all major and minor symmetrices. Mandel-stress-driven growth leads to a symmetric
growth tensor as well.
CHAPTER 5. MECHANICS OF GROWTH 50

5.6 A Note On Other Free Energy Functions


To derive the equations for a given free energy function based on the previous sections, it is necessary to
determine:
Second Piola-Kirchhoff stress in the intermediate configuration, S
elastic tangent in the intermediate configuration, Le
To write a UMAT, you will also need to decide on
shape of growth tensor Fg
evolution of growth variable g
and, for simple code, you will most likely also want to manually obtain
Cauchy stress
ce
elastic tangent in the spatial configuration,
growth tangent in the spatial configuration cg
While their exact formulation will change, the following equations from the previous sections will hold for
any free energy function and any symmetric growth tensor:

Stress


S = 2 (5.65)
Ce
1 e
= F S FeT (5.66)
J
S = Fg1 S FgT (5.67)

Tangent

Le =
S
2
Ce
(5.68)

CeIJKL = Fg1 g1 g1 g1 e
IM FJN FKP FLQ M N P Q L (5.69)

ceijkl =
1 e
C
J IJKL
1
FiI FjJ FkK FlL = LeIJKL FeiI FejJ FekK FelL
J
(5.70)
!
cgijkl =
2k g t  e
JK
FiM FjJ SN J + FiI SIN FejM + FeiA FejB FenC FemD

LeABCD F1 e
N n FmM

FgM N g
FkK FlL (5.71)
g C g
c0ijkl =
1
2
(ik jl + il jk + jk il + jl ik ) (5.72)
CHAPTER 5. MECHANICS OF GROWTH 51

5.7 Neo-Hookean Free Energy Function


The following can be derived using the previous sections for the logarithmic Neo-Hookean free energy func-
tion,

= ln2 J e + (I1e 3 2 ln J e ) (5.73)
2 2

Stress

S = ( ln J ) C1 + I (5.74)
1h i
= ( ln J ) I + b (5.75)
J

Tangent

LeIJKL = Ce1 e1 e e1 e1
IJ CKL ( ln J ) CIK CJL + CIL CJK
e1 e1

(5.76)
CeIJKL = C1 1 e 1 1 1 1
IJ CKL ( ln J ) CIK CJL + CIL CJK


ceijkl =
1h
J
I I 2 ln J 3
 i
I (5.77)
" #
cgijkl 2k g t  
= ij Fg1 g1 g1 g1 g1
N M + FiI FjJ FIM FJX + FIX FJM FN X
g1
JK
FgM N g
FkK FlL (5.78)
g C g
c0ijkl  
= ij jk + ik bjl + il bjk + bik jl + bil jk (5.79)
J 2J
Chapter 6

Morphogenetic Growth

This UMAT is used for materials that grow in time, regardless of stretch or stress.

6.1 Flowchart

create geometry

initialize SDVs

load define material properties

update growth factor

kinematics

constitutive relations

tangent

next time step

6.2 Growth Variable


Unlike the stretch- and stress-driven growth models, in the case of exponential growth the growth factor g
is only dependent on time. Because of this, the local Newton iteration is unnecessary. Instead, the growth
factor is calculated from the current time according to the equation:
  
g t
= (max 1) 1 exp +1 (6.1)

52
CHAPTER 6. MORPHOGENETIC GROWTH 53

or according to a simple linear equation:


g = 1 + g t (6.2)

6.3 Growth Tensor


For isotropic growth, the growth tensor is
Fgiso = g I (6.3)
For transversely isotropic growth in the plane normal to n, the growth tensor is

Fgarea = g I + (1 g )N0 (6.4)

For transversely isotropic growth in the direction of n, the growth tensor is

Fglength = I + (g 1)N0 (6.5)

The inverses of the above growth tensors are


1
Fg1
iso = I (6.6)
g
!
1 g 1
Fg1
area = I+ N0 (6.7)
g g
1 g
 
Fg1
length = I+ N0 (6.8)
g
(6.9)

6.4 Tangent
Because the growth part of the deformation tensor is dependent solely on time, there is no growth part in
the tangent. Thus the stress required by Abaqus is

cAbaqus = ce + c0 (6.10)
Chapter 7

Explicit Growth

In an explicit growth code, the evolution of the growth factor(s) is determined by the state of stress or stretch
at the previous time step. This results in an explicit code, which is extremely easy to derive and implement,
but suffers from time step limitations due to stability problems common to explicit formulations.

7.1 Properties
This UMAT requires 11 material parameters:
1. lam - Lame constant (, or L)
2. mu - shear modulus ( or G)
3. alpha = adaptation speed ( = 1 ). Increasing this value accelerates convergence towards equilibrium
but does not affect the final equilibrium state.
4. tcrit - tangential growth criterion (tcrit )
5. rcrit - radial growth criterion (rcrit )
6. xt(1) = x-component of tangential vector (in local coordinate system)
7. xt(2) = y-component of tangential vector (in local coordinate system)
8. xt(3) = z-component of tangential vector (in local coordinate system)
9. xr(1) = x-component of radial vector (in local coordinate system)
10. xr(2) = y-component of radial vector (in local coordinate system)
11. xr(3) = z-component of radial vector (in local coordinate system)
These properties must be assigned from the props field to the appropriate variables at the beginning of the
subroutine. The normal vector is also normalized, in case it was not already a unit vector.

54
CHAPTER 7. EXPLICIT GROWTH 55

7.2 Growth Variables


In this method, the evolution of the growth variables is dependent on the stress state at the previous time
step. One possible dependency is on the normal component of the Cauchy stress in the given direction.

x = g x xcrit

(7.1)

where q p
x = n0T 0
x nx = N0x : (7.2)

gn+1 = gn + g t (7.3)
Thus the growth tensor is fixed and does not factor into the tangent.

7.3 Growth Tensor


For independent growth in two directions (radial and tangential), the growth tensor is dependent on two
independent growth variables, r and t .

Fg = I + (r 1)r0 r0 + (t 1)t0 t0 (7.4)

The inverse is
1 r 1 t
   
g1
F =I+ r0 r0 + t0 t0 (7.5)
r t

7.4 Tangent
Because the growth part of the deformation tensor is dependent solely on time, there is no growth part in
the tangent. Thus the stress required by Abaqus is

cAbaqus = ce + c0 (7.6)
Chapter 8

Stretch-Driven Growth

These derivations are true for all stretch-driven formulations (for instance: fiber, area, or volume stretch).

8.0.1 Flowchart

create geometry

initialize SDVs

load define material properties

kinematics

stretch
< cr
cr

local Newton iteration

res > tol res tol

update SDVs

stress-dependent kinematics

constitutive relations

next time step tangent

56
CHAPTER 8. STRETCH-DRIVEN GROWTH 57

8.0.2 Elastic Stretch

After the desired stretch (fiber, length, or volume) is calculated, it is decomposed into an elastic stretch
component (e ) and a growth stretch component (g ), similar to the deformation gradient.

= e g (8.1)

Thus, the elastic stretch can be calculated from:



e = (8.2)
g
If this elastic stretch exceeds the value required for growth (tcr or crit ), growth will take place. This is
determined using the growth criterion function

= crit (8.3)
g
If is negative, growth will not take place. If it is positive, the local Newton iteration will be executed.

8.0.3 Local Newton Iteration

The evolution equation for the internal growth variable is chosen to be exponential:

max g

g = (8.4)
max 1
| {z }
kg

As laid out in the Common Growth Derivations, the residual and tangent operator of the local Newton
iteration are

R = g gn k g g t (8.5)
 g g

k g g
K = 1 + k t (8.6)
g g

where
(1)
k g (max g ) k
g
= = (8.7)
(max 1) max g
CHAPTER 8. STRETCH-DRIVEN GROWTH 58

8.1 Transversely Isotropic Area Growth


This UMAT is used for materials that exhibit anisotropic, stretch-driven area growth. A common example
of this is skin, which only grows in the plane.
For more information, see
Goktepe, S., Abilez, O. J., & Kuhl, E. (2010). A generic approach towards finite growth with examples
of athletes heart, cardiac dilation, and cardiac wall thickening.
Generic growth formulations, with volume, area, and fiber special cases
Buganza Tepole, A., Joseph Ploch, C., Wong, J., Gosain, A. K., & Kuhl, E. (2011). Growing skin:
A computational model for skin expansion in reconstructive surgery. Journal of the Mechanics and
Physics of Solids.
Lagrangian formulation
Zollner, A. M., Holland, M. A., Honda, K. S., Gosain, A. K., & Kuhl, E. (2013). Growth on demand:
Reviewing the mechanobiology of stretched skin. Journal of the Mechanical Behavior of Biomedical
Materials.
Eulerian formulation

8.1.1 Properties

This UMAT requires 9 material parameters:


1. lam - Lame constant (, or L)
2. mu - shear modulus ( or G)
3. tcr - growth criterion (crit or crit )
4. tmax - maximum allowable growth (max or max )
5. gam = growth exponent (). Decreasing the growth exponent accelerates convergence towards equilib-
rium but does not affect the final equilibrium state.
6. alpha = adaptation speed ( = 1 ). Increasing this value accelerates convergence towards equilibrium
but does not affect the final equilibrium state.
7. xr(1) = x-component of vector normal to the plane of growth (in local coordinate system)
8. xr(2) = y-component of vector normal to the plane of growth (in local coordinate system)
9. xr(3) = z-component of vector normal to the plane of growth (in local coordinate system)
These properties must be assigned from the props field to the appropriate variables at the beginning of the
subroutine. The normal vector is also normalized, in case it was not already a unit vector.

8.1.2 Kinematics

In this model, skin is idealized as a thin layer characterized by the unit normal in the reference configuration,
n0 , which is defined as a material parameter (xr).
The area stretch (the) is calculated from the deformation tensor and undeformed normal:

= ||JFT n0 || = J n0T C1 n0 = J N0 : C1 (8.8)
CHAPTER 8. STRETCH-DRIVEN GROWTH 59

8.1.3 Growth Kinetics

The growth criterion function is dependent on the elastic area stretch:

hg i = he criti (8.9)

g
   
1
= = g = g2 (8.10)
g g g g

8.1.4 Growth Tensor

After the growth multiplier has been determined from the local Newton iteration, the stress-dependent terms
can be determined.
Based on the assumptions of in-plane area growth, the response in the thickness direction (n0 ) is assumed
to be purely elastic, with all growth happening in the plane. Thus the growth tensor is:
h i
Fg = g I + 1 g N0 (8.11)

The explicit form of the inverse is:


 
g1 1 1
F = I+ 1 N0 (8.12)
g g

8.1.5 Tangent

The two terms dependent on the growth tensor are easily found to be:
Fg 1
= (I N0 ) (8.13)
g 2 g
and
g
 

=
C g C g g

1
=
g C
1  0 1

= J N : C
g C
!
1 J 0 N 0 : C1
= N : C1 + J
g C C

1 J 1 0 N0 : C1
 
1 + J
1
= C N : C
g 2 2 N0 : C1 C
1 1 J 2 0 C1
 
= C + N :
g 2 2 C
g 2
 
1 1 J 0 1 1

= C N : C C (8.14)
C g g 2 2

CHAPTER 8. STRETCH-DRIVEN GROWTH 60

The second term can be pushed forward by itself for convenience:

g J 2 0  1 1 
 
1 1
FkK FlL = C N CP K CQL FkK FlL
CKL g g 2 KL 2 P Q
J 2 0  1
 
1 1 1
= FkK CKL FlL N CP K FkK FlL CQL
2g PQ
J 2 0  1 1 
 
1
= kl N F F
2g PQ P k Ql

g J 2 1 0
 
1 1
g FkK FlL = kl F N F (8.15)
CKL 2g P k P Q Ql

The growth tangent in the Eulerian configuration for the logarithmic Neo-Hookean material model is:
" #
c k g t J 2 1 0

g g 1
= ij + (bij Nij ) kl F N F (8.16)
ijkl
JK g3 P k P Q Ql
" # 
c
g
J 2 T

g k t g 0 1
= I + (b N) I F N F (8.17)
JK g3
CHAPTER 8. STRETCH-DRIVEN GROWTH 61

8.2 Transversely Isotropic Fiber Growth (Eccentric)


This UMAT is used for materials that exhibit transversely isotropic, strain-driven growth. A common
example of this is eccentric muscle growth caused by volume overload.
For more information, see:
Goktepe, S., Abilez, O. J., & Kuhl, E. (2010). A generic approach towards finite growth with examples
of athletes heart, cardiac dilation, and cardiac wall thickening.
Generic growth formulations, with volume, area, and fiber special cases
Zollner, AM, Abilez OJ, Bol M, Kuhl E (2012) Stretching Skeletal Muscle: Chronic Muscle Lengthening
through Sarcomerogenesis.

8.2.1 Properties

This UMAT requires 9 material parameters:


1. lam - Lame constant (, , or L)
2. mu - shear modulus ( or G)
3. tcr - growth criterion (crit or crit )
4. tmax - maximum allowable growth (max or max )
5. gam = growth exponent (). Decreasing the growth exponent accelerates convergence towards equilib-
rium but does not affect the final equilibrium state.
6. alpha = adaptation speed ( = 1 ). Increasing this value accelerates convergence towards equilibrium
but does not affect the final equilibrium state.
7. xr(1) = x-component of fiber direction n0 (in local coordinate system)
8. xr(2) = y-component of fiber direction n0 (in local coordinate system)
9. xr(3) = z-component of fiber direction n0 (in local coordinate system)
These properties must be assigned from the props field to the appropriate variables at the beginning of the
subroutine.

8.2.2 Kinematics

In this model, muscle is treated as a fiber-reinforced material with fiber direction n0 , which is defined by a
material parameter (xr). The total muscle fiber stretch (the) is calculated from the length of the deformed
muscle fiber direction:
= n0 FT F n0 = N0 : C = n n (8.18)

8.2.3 Growth Kinetics

The growth criterion function is dependent on the elastic area stretch:

hg i = he criti (8.19)

g
   
1
= = = g2 (8.20)
g g g g g
CHAPTER 8. STRETCH-DRIVEN GROWTH 62

8.2.4 Growth Tensor

After the growth multiplier has been determined from the local Newton iteration, the stress-dependent terms
can be determined.
Based on the assumptions of transversely isotropic fiber growth, the response in the fiber direction is assumed
to be purely elastic, with growth happening only in the transverse direction. Thus the growth tensor is:

Fg = I + (g 1)N0 (8.21)

The explicit form of the inverse is:


1 g 0
Fg1 = I + N (8.22)
g

8.2.5 Tangent

The two terms dependent on the growth tensor are easily found to be:
Fg
= N0 (8.23)
g
and
g
 

=
C g C g g

1
=
g C  
N0 :C
1
=
g C 
1 1 N0 : C
=
g 2 N0 : C C
1 1 0 C
= N :
g 2 C
=
1 1 0
g 2
N :I
g
1 1 0
= N (8.24)
C g g 2

Note: the paper (Generic Approach...) has this equation wrong (no g in the denominator). This derivation
matches the FEAP growth codes.
The second term is pushed forward by itself for convenience:
g 1 1 0
FkK FlL = N FkK FlL
CKL g g 2 KL
1 1
= Nkl (8.25)
g 2

The growth tangent in the Eulerian configuration for the logarithmic Neo-Hookean material model is:
" #
c
g
g k t 2
ijkl = ij + g2 Nij Nkl (8.26)
JK g2
" #
g
c
=
k g t
JK g2
2
I + g2 N N

(8.27)
CHAPTER 8. STRETCH-DRIVEN GROWTH 63

8.3 Isotropic Volumetric Growth


This UMAT is used for materials that grow isotropically (the same in all directions).

8.3.1 Properties

This UMAT requires 9 material parameters:


1. lam - Lame constant (, or L)
2. mu - shear modulus ( or G)
3. tcr - growth criterion (crit or crit )
4. tmax - maximum allowable growth (max or max )
5. gam = growth exponent (). Decreasing the growth exponent accelerates convergence towards equilib-
rium but does not affect the final equilibrium state.
6. alpha = adaptation speed ( = 1 ). Increasing this value accelerates convergence towards equilibrium
but does not affect the final equilibrium state.
These properties must be assigned from the props field to the appropriate variables at the beginning of the
subroutine. The normal vector is also normalized, in case it was not already a unit vector.

8.3.2 Kinematics

In this model, the volumetric stretch (the) is calculated by the total volume change - that is, the Jacobian
or determinant of the deformation gradient.

= |F| = J (8.28)

8.3.3 Growth Tensor

After the growth multiplier has been determined from the local Newton iteration, the stress-dependent terms
can be determined.
Based on the assumptions of isotropic growth, the growth tensor is:

Fg = g I (8.29)

The explicit form of the inverse is:


1
Fg1 =
I (8.30)
g
The Jacobian, or determinant of the deformation tensor, is easily calculated to be
3
|Fg | = J g = g (8.31)

8.3.4 Growth Kinetics

The growth criterion function is dependent on the elastic volume stretch:

g = J e Jcrit
e
(8.32)
3
g g Je
 
J 4
= =J = 3Jg = 3 g (8.33)
g g Jg g
CHAPTER 8. STRETCH-DRIVEN GROWTH 64

8.3.5 Tangent

The two terms dependent on the growth tensor are easily found to be:
Fg
= I (8.34)
g
and
g
 

=
C g C g g

1 J
=
g3 C
1 J 1
= C
Jg 2
J e 1
= C (8.35)
2
The second term can be pushed forward by itself for convenience:
g J e 1 Je
g FkK FlL = CKL FkK FlL = kl (8.36)
CKL 2 2

The growth tangent in the Eulerian configuration for the logarithmic Neo-Hookean material model is:
" #
cg
ijkl
k g t
= g g 3ij + 2beij kl
J K
(8.37)
" #
c
g k g t
= g g 3I + 2b I
J K
e
CHAPTER 8. STRETCH-DRIVEN GROWTH 65

8.4 Transversely Isotropic Growth

8.4.1 Properties

This UMAT requires 11 material parameters:


1. lam - Lame constant (, , or L)
2. mu - shear modulus ( or G)
3. tcr - area growth criterion (crit )
4. lcr - fiber growth criterion (crit )
5. tmax - maximum allowable area growth (max )
6. lmax - maximum allowable fiber growth (max )
7. gam = growth exponent (). Decreasing the growth exponent accelerates convergence towards equilib-
rium but does not affect the final equilibrium state.
8. alpha = adaptation speed ( = 1 ). Increasing this value accelerates convergence towards equilibrium
but does not affect the final equilibrium state.
9. xn(1) = x-component of fiber direction n0 (in local coordinate system)
10. xn(2) = y-component of fiber direction n0 (in local coordinate system)
11. xn(3) = z-component of fiber direction n0 (in local coordinate system)
These properties must be assigned from the props field to the appropriate variables at the beginning of the
subroutine.

8.4.2 Growth Tensor

For independent growth in two directions (fiber and sheet), the growth tensor is dependent on two indepen-
dent growth variables - the area growth g and the fiber (or normal) growth g .

Fiber Stretch Fiber stretch (stretch in the direction of a vector n0 ) is found by:

l p
= = n0T Cn0 = N0 : C (8.38)
l0
It can be decomposed multiplicatively, so that

= e g (8.39)

Only elastic stretch triggers growth.

Area Stretch Area stretch (stretch in the area of the plane normal to the vector n0 ) is found by:

A
= = ||JFT n0 || (8.40)
A0
q
= (JFT n)T (JFT n0 )

= J 2 n0T F1 FT n0

= J n0T C1 n0

= J N0 : C1 (8.41)
CHAPTER 8. STRETCH-DRIVEN GROWTH 66

It can be decomposed multiplicatively, so that

= e g (8.42)

Only elastic stretch triggers growth.

Growth Tensor Thus, the growth tensor is



Fg = g I + (g g )N0 (8.43)

and its inverse is  


g1 1 1 1
F = I+ N0 (8.44)
g g g

If g is constrained to remain 1, this will result in only fiber growth. If g is constrained to be 1, this will
result in only area growth. This could be done by setting max or max equal to 1 or crit or crit to be
sufficiently large.

8.4.3 Growth Variables

The two growth variables can be written in vector:

g
 
= (8.45)
g

The evolution equations consist of two functions - a growth evolution part and a growth criterion part.
 g   
k
= = k = (8.46)
g k

where
 x
xmax x

kx = x (8.47)
xmax 1
J 0
= e crit = g crit = N : C1 crit (8.48)
g
1 0
= e crit = g crit = N : C crit (8.49)
g
CHAPTER 8. STRETCH-DRIVEN GROWTH 67

8.4.4 Local Newton Iteration

Because the evolution equations are nonlinear, the time advancement with implicit Euler requires a local
Newton iteration to find the roots of the equation

rn+1 = n+1 n n+1 t (8.50)

The local tangent is found by:


rn+1
K = (8.51)
n+1
n+1
= I t (8.52)
n+1
0
g g *


1 g
n+1
t  n+1
g
t

= n+1
0
 n+1
g g
*

 n+1
g
 t 1 g t n+1

n+1 
n+1


k
1 k g + g t 0
= 

k
0 1 k g + g t
 
K 0
= (8.53)
0 K

where the necessary derivatives are the same as those found in the previous sections:

k k
= (8.54)
g max g
k k
= (8.55)
g max g
e
= g (8.56)
g
e
= g (8.57)
g

The growth variables are then updated iteratively using the equation

= K1 r (8.58)

until desired convergence is achieved.


CHAPTER 8. STRETCH-DRIVEN GROWTH 68

8.4.5 Tangent

The growth tangent now contains contraction of two third-order tensors, which is easily handled by writing
the sum out explicitly:

C
g g g g
g S F S F S F g
=2 g : =2 g : + 2 : (8.59)

F C F g C Fg g C

C C C

Thus we have, essentially, two growth tangents:



C S Fg
= 2 g :
F

g
g
C
(8.60)
C
C
g
S F g
= 2 g : (8.61)
F g C
C

where
Fg 1
I N0

= (8.62)
g 2 g
Fg
= N0 (8.63)
g

g g
The derivation of the remaining terms, C and C , is more involved. It begins with the residual from the
local Newton iteration.

rn+1 = n+1 n n+1 t


" #
rn+1 n+1 n+1 n+1 n+1
= + t
C C C n+1 n+1 C Fe

n+1 n+1 n+1 n+1


0 = t t
C C n+1 n+1 C Fe

n+1 n+1 n+1 n+1


t = t
C n+1 C n+1 C Fe

" #
n+1 n+1
= I t
n+1 C
n+1
= K
C
n+1 n+1
K1 t = (8.64)
C n+1 C

where
1
 
1 K
0
K = 1
0 K
CHAPTER 8. STRETCH-DRIVEN GROWTH 69

For the logarithmic Neo-Hookean material model, the individual terms are found by

g X
= K11X t
CKL CKL
" #
g 0 g
= K111 + K1
*

t
CKL 12 CKL
1 g
= t
K CKL
1
= k t
K CKL
k t 1 1 J 2 0
 
1 1

= C N : C C (8.65)
K g 2 2

g X
= K12X t
CKL CKL
" #
0 g g
1
= K + K1 t
*

21 22
CKL CKL
1 g
= t
K CKL
1
= k t
K CKL
k t 1 1 0
= N (8.66)
K g 2
which are seen to be the same as the terms from area and fiber growth.
And in the Eulerian configuration, it is easy to see that the two tangents are equivalent to the growth
tangents of the area and fiber growth models.
" #
c k g t J 2 1 0

g 1
ijkl = L ij + (bij Nij ) kl F N F (8.67)
JK g3 P k P Q Ql
" #
c
ijkl =
k g t
JK g2
2
Lij + g2 Nij Nkl

(8.68)
CHAPTER 8. STRETCH-DRIVEN GROWTH 70

8.5 Fully Orthotropic Growth

8.5.1 Properties

This UMAT requires 11 material parameters:


1. lam - Lame constant (, , or L)
2. mu - shear modulus ( or G)
3. rcr - growth criterion in radial direction (rcrit )
4. scr - growth criterion in sheet direction (scrit )
5. tcr - growth criterion in tangential direction (tcrit )
6. rmax - maximum allowable growth in radial direction (rmax )
7. smax - maximum allowable growth in sheet direction (smax )
8. tmax - maximum allowable growth in tangential direction (tmax )
9. gam = growth exponent (). Decreasing the growth exponent accelerates convergence towards equilib-
rium but does not affect the final equilibrium state.
10. alpha = adaptation speed ( = 1 ). Increasing this value accelerates convergence towards equilibrium
but does not affect the final equilibrium state.
11. xr(1) = x-component of radial direction r0 (in local coordinate system)
12. xr(2) = y-component of radial direction r0 (in local coordinate system)
13. xr(3) = z-component of radial direction r0 (in local coordinate system)
14. xt(1) = x-component of tangential direction t0 (in local coordinate system)
15. xt(2) = y-component of tangential direction t0 (in local coordinate system)
16. xt(3) = z-component of tangential direction t0 (in local coordinate system)
These properties must be assigned from the props field to the appropriate variables at the beginning of the
subroutine.

8.5.2 Kinematics

The orthotropic model is defined by an orthonormal basis, made up of three orthonormal vectors in the
radial (r), sheet (s), and tangential (t) directions. These vectors can be formed into structural tensors:
R0 = r0 r0 S0 = s0 s0 T0 = t0 t0 (8.69)
Growth in each direction is driven by fiber stretch in that direction. These stretches are found as:

r = C : R0 s = C : S0 t = C : T0 (8.70)

8.5.3 Growth Tensor

For fully orthotropic growth, the growth tensor is defined by three growth variables, one in each predefined
[orthogonal] direction. Thus the growth tensor can be written as:
Fg = gr R0 + gs S0 + gt T0 (8.71)
and its inverse is
1 0 1 1
Fg1 = R + g S0 + g T0 (8.72)
gr s t
CHAPTER 8. STRETCH-DRIVEN GROWTH 71

8.5.4 Local Newton Iteration

Because the evolution equations are nonlinear, the time advancement with implicit Euler requires a local
Newton iteration to find the roots of the equation

rn+1 = n+1 n n+1 t (8.73)

The local tangent is found by:


rn+1
K = (8.74)
n+1

= I t (8.75)

0
g
g *0 g
>

1 rg t

 
r s g t
r
 g t
r
t
 0
0
=

g  *
 g g 
s
>

g
s
r
t 1 gss t  g t

 t

0 0 
g *

 g *

 g
g
t
r
t g
t
s
t 1 g tt
t
r
K 0 0
= 0 Ks 0 (8.76)
0 0 Kt

where the necessary derivatives are those found in the previous sections:
k x k x
g = max (8.77)
x x gx

and
x ex x
g = g = g2 (8.78)
x x x

Note: because the evolution equations are functions of stretch in each orthogonal direction, the equations
are uncoupled and the tangent matrix is diagonal. This would not be the case if the directions were not
orthogonal, if the growth were stress-driven, or if there were some coupling between different growth variables
(as in transversely isotropic area growth or isotropic volumetric growth).
The growth variables are then updated iteratively using the equation

= K1 r (8.79)

where
1

Kr 0 0
K1 = 0 1
Ks 0
1
0 0 Kt

until desired convergence is achieved.


CHAPTER 8. STRETCH-DRIVEN GROWTH 72

8.5.5 Tangent

The growth tangent now contains contraction of three third-order tensors, which is easily handled by writing
the sum out explicitly:

C
g
g S F
= 2 g :

F C
C
S F g
gr S Fg gs S Fg gt
= 2 g : + 2 : + 2 :
F gr C Fg gs C Fg gt C

C C C
= C +C +C
r t s
(8.80)

Thus we have, essentially, three growth tangents, where each is



C
g
x S F gx
=2 g : g (8.81)

F x C
C

with
Fg
= X0 (8.82)
gx
g
The derivation of the remaining terms, C ,
x
is more involved. It begins with the residual from the local
Newton iteration.

rn+1 = n+1 n n+1 t


" #
r
= + t
C C C C Fe


0 = t t
C C C Fe

t = e t
C "C #C F

= I t
C

= K
C

K1 t = (8.83)
C C

For the logarithmic Neo-Hookean material model, the individual terms are found by

gr X
= K1
rX t
CKL CKL
" #
g 0 g 0 g
1 r 1 s 1 t
= K11 +K *

+K*

t
CKL 12 CKL 13 CKL
1 gr
= t
K r CKL
1 r r
= k t
K r CKL
k r t 1 1 0
= R (8.84)
K r gr 2r
CHAPTER 8. STRETCH-DRIVEN GROWTH 73

or, more generally,


gx k x t
= X0 (8.85)
CKL 2K x gx x
which is seen to be the same as the term from fiber growth.
And in the Eulerian configuration, it is easy to see that the individual tangents are equivalent to the growth
tangent from the fiber growth models.
" #
c
x
x k t 2
ijkl = 2 Lij + g2 Xij Xkl (8.86)
JK x gx x x
Chapter 9

Stress-Driven Growth

These derivations are true for all stress-driven formulations.

9.0.1 Flowchart

create geometry

initialize SDVs

load define material properties

elastic kinematics

Me > Mecrit
calculate Me update

Me Mecrit

constitutive relations convergence?


res tol res > tol

next time step

In the stress-driven algorithm, all of the kinematics calculations take place within the local Newton iteration.
Then the desired stress quantity (for instance, trace of the Mandel stress or a component of the Cauchy
stress) is calculated. That stress quantity is used to determine if growth takes place and how much, and the
growth variable is updated before the loop repeats until no additional growth takes place.

74
CHAPTER 9. STRESS-DRIVEN GROWTH 75

9.1 Isotropic Volumetric Mandel Stress-Driven Growth


This UMAT is used for materials that exhibit isotropic volumetric strain-driven growth. A common example
of this is an athletes heart. This UMAT is formulated in the reference configuration.
For more information, see: Goktepe, S., Abilez, O. J., & Kuhl, E. (2010). A generic approach towards finite
growth with examples of athletes heart, cardiac dilation, and cardiac wall thickening.

9.1.1 Properties

This UMAT requires 9 material parameters:


1. lam - Lame constant (, , or L)
2. mu - shear modulus ( or G)
3. Mecr - growth criterion (crit or crit )
4. tmax - maximum allowable growth factor (max or max )
5. gmax = growth exponent (). Decreasing the growth exponent accelerates convergence towards equi-
librium but does not affect the final equilibrium state.
6. amax = adaptation speed ( = 1 ). Increasing this value accelerates convergence towards equilibrium
but does not affect the final equilibrium state.
7. tmin - minimum allowable growth factor (max or max )
8. gmin = growth exponent () for negative growth. Decreasing the growth exponent accelerates conver-
gence towards equilibrium but does not affect the final equilibrium state.
9. amin = adaptation speed ( = 1 ) for negative growth. Increasing this value accelerates convergence
towards equilibrium but does not affect the final equilibrium state.
To prevent negative growth from happening when negative stresses are experienced, set the last three material
properties (tmin, gmin, and amin) to zero.
These properties must be assigned from the props field to the appropriate variables at the beginning of the
subroutine.

9.1.2 Kinematics

For isotropic volumetric growth, the growth tensor takes the form of

Fg = g I (9.1)

and the elastic deformation tensor is:


1
Fe = F Fg1 = F (9.2)
g
Thus from the Right (C = FT F) and Left (b = FFT ) Cauchy-Green deformation tensors, the elastic Right
and Left Cauchy-Green deformation tensors are easily found:
1 1
Ce = FeT Fe = FT F = g 2 C (9.3)
(g )2 ( )
1 1
be = Fe FeT = g 2 F FT = g 2 b (9.4)
( ) ( )
CHAPTER 9. STRESS-DRIVEN GROWTH 76

9.1.3 Local Newton Iteration

The evolution equation for the internal growth variable is chosen to be exponential:

max g

g = g (9.5)
max 1
| {z }
kg

and the growth criterion function is chosen to be dependent on the trace of the elastic Mandel stress:

= trM trM crit (9.6)

The trace of the elastic Mandel stress is a good stress quantity because of its physical meaning and conve-
nience in derivations. The elastic Mandel stress is defined as:

M = Ce S (9.7)

and its trace,


tr(M) = tr Ce S = Ce : S = CeIJ SIJ = FekI FekJ SIJ = kk = tr

(9.8)
is equal to the trace of the Kirchhoff stress, which has a meaning similar to pressure.
As laid out in the Common Growth Derivations, the residual and tangent operator of the local Newton
iteration are

R = g gn k g g t (9.9)
 g g

k g g
K = 1 + k t (9.10)
g g

where
(1)
k g (max g ) k
= = (9.11)
g (max 1) max g
g 1
= (9 + 2trCe ) (9.12)
g g

9.1.4 Stress

The stress is calculated in each iteration of the local Newton-Rhapson iteration. As derived in the Common
Growth Derivations, the stresses are

S = ( ln J e ) Ce1 + I (9.13)
1
= [( ln J e ) I + be ] (9.14)
J
CHAPTER 9. STRESS-DRIVEN GROWTH 77

9.1.5 Tangent

The first term dependent on the growth tensor is easily found to be:
Fg
= I (9.15)
g

The second term depends on the trace of the elastic Mandel stress

tr(M) = tr(Ce S) (9.16)

and its derivative with respect to the right Cauchy Green deformation tensor is:

g tr Ce S
=
CKL g CKL g

CeAB SAB
=
CKL
g

e
SAB CeCD
 
CAB e
= SAB + CAB
CeCD CeCD CKL g

 
 1 C
I L

CD
e 1 e
2
g
= ABCD SAB + CAB

ABCD
2 CKL
g

L I
 
1 1
= SCD + CeAB eABCD g2 CDKL
2
=
2
1 
g 2 2SKL + CeAB eABKL

L (9.17)

For the logarithmic Neo-Hookean material model, the trace of the elastic Mandel stress is

tr(M) = 3 (lnJ e ) + tr (Ce ) (9.18)

and its derivative with respect to the right Cauchy Green deformation tensor is:
g 1 
3Ce1 + 2I

= g 2 (9.19)
C g 2

The second term is pushed forward by itself for convenience:


g 1  e1

FkK FlL = 2KL + 3CKL FkK FlL
CKL g 2g2
1  e1

= g 2 2FkK KL FlL + 3FkK CKL FlL FkK FlL
2
1 h g2
i
= 2b kl + 3 kl
2g2
g 1
g FkK FlL = [2bekl + 3kl ] (9.20)

CKL 2

For the logarithmic Neo-Hookean material model the growth tangent in the Eulerian configuration is

cgijkl =
k g t 
JK g
3ij + 2beij [3kl + 2bekl ]

(9.21)

cg =
k g t
JK g
[3I + 2be ] [3I + 2be ] (9.22)
List of Corrections

Note: alternate way of doing it? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9


Note: what does this mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Note: what is useful in this file? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Note: more here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Note: What does this mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Note: I would like this section to hold, except otherwise noted, for all symmetric Fg . . . . . . . . 43
Note: As this is similar to the definition of the stress in the reference configuration, it seems
logical that this could be interpreted as the stress in the intermediate configuration (or as
something like the force per unit grown area) . . . but what does that mean, because isnt
the intermediate configuration stress-free? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Note: Why???? Also, I was only able to test this for tensors that fit the Sherman-Morrison formula 85
Note: Im actually not sure where this breaks down for Mandel notation . . . . . . . . . . . . . . . 85

78
Chapter 10

Appendices

10.1 Other User Subroutines

10.1.1 HETVAL

The HETVAL subroutine can be used to define a heat flux due to internal heat generation in a material, via
dependence on solution-dependent state variables. The variables to be defined are FLUX(1), the heat flux,
with units of energy per time per volume; and FLUX(2), the rate of change of heat flux per temperature.
The solution-dependent state variables can be updated, but in a fully coupled temperature-displacement
analysis, UMAT is called before HETVAL.

10.2 Compressive Stress and Strain as a Function of Growth


The relationship between growth, compression, stress, and strain is not linear, but it is easy to derive.

For orthotropic growth, the growth tensor takes the form of


1 1 1
Fg = ga A + gb B + gc C , Fg1 = A+ B+ C , J g = ga gb gc (10.1)
ga gb gc
For compression, we assume an orthogonal deformation gradient of the form

F = A A + bB + C C , J = A b C

with imposed stretches of A and C and an unknown deformation in the unconstrained direction, b. When
combined with the multiplicative decomposition (Fe = F Fg1 ), the elastic component of deformation is
found to be:
 
1 1 1 A b C A b C
Fe = [A A + bB + C C] A+ B+ C = A+ B+ C, Je =
ga gb gc ga gb gc ga gb gc

The unknown parameter b is found by requiring that the surface normal to b on the top will be stress-free,
due to the lack of constraint in that direction.

79
CHAPTER 10. APPENDICES 80

10.2.1 Compressible Materials

The stress in a compressible neo-Hookean material is given by


1
= [( ln J e ) I + be ]
J     
1 A b C e eT
= ln I + F F
A b C ga gb gc
       
1 A b C A b C A b C
= ln I+ A+ B+ C A+ B+ C
A b C ga gb gc ga gb gc ga gb gc
 2
b2 2C
    
1 A b C A
= ln I+ A+ B + C
A b C ga gb gc ga2 gb2 gc2

For the stress in the directions of interest,


    2 
1 A b C A
A = : A = ln + 1
A b C ga gb gc g2
    2a 
1 A b C b
B = : B = ln + 1
A b C ga gb gc gb2
    2 
1 A b C C
C = : C = ln + 1
A b C ga gb gc gc2

The stress-free condition gives the relationship between the imposed stretches A and C , growth parameters
ga , gb , and gc , and the variable b:
    2 
1 A b C b
B = ln + 1
A b C ga gb gc gb2
b2
 
A b C
0 = ln + 2 1
ga gb gc gb

Given Lame parameters and , imposed stretches A and C , and growth parameters ga , gb , and gc , the
parameter b can be found using Newton-Rhapson iteration with

b2
 
A b C
R = ln + 2 1
ga gb gc gb
1 b
K= +2 2
b gb

10.2.2 Incompressible Materials

The stress in an incompressible neo-Hookean material is given by


1
= [pI + be ]
J
1
pI + Fe FeT
 
=
A b C
    
1 A b C A b C
= pI + A+ B+ C A+ B+ C
A b C ga gb gc ga gb gc
 2
b2 2C
 
1 A
= pI + A+ B + C
A b C ga2 gb2 gc2
CHAPTER 10. APPENDICES 81

Applying the condition of incompressibility to the elastic deformation, the deformation in the unconstrained
direction is found to be

Je = 1
A b C
=1
ga gb gc
ga gb gc
b=
A C
So the stress can be rewritten in terms of the loading parameters and pressure as
 2
1 ga2 gb2 gc2 2C
 
1 A C A
= pI + A + B + C
A C ga gb gc ga2 gb2 2A 2C gc2
 2
g2 g2 2
 
1 A
= pI + 2
A + 2a c2 B + C2 C
ga gb gc ga A C gc

The stress-free condition gives the relationship between the imposed stretches A and C , growth parameters
ga , gb , and gc , and the pressure p:

B = : B
g2 g2
 
1
0= p + 2a c2
ga gb gc A C
ga2 gc2
p=
2A 2C

The stress, given in terms only of the loading parameters, is now:

g2 g2
 2
ga2 gc2 2C
 
1 A
= 2a c2 I + A + B + C
ga gb gc ga2 2A 2C gc2
 2 A C 2 2
2C ga2 gc2
 
A ga gc
= A+ 2 B+ 2 C 2 I
ga gb gc ga2 A 2C gc A 2C

For the stress in the directions of interest,


 2
ga2 gc2

A
A = : A =
ga gb gc ga2 2 2
 2 2 A C2 2 
ga gc g g
B = : B = 2a c2 = 0
ga gb gc 2A 2C A C
 2
ga2 gc2

C
C = : C = 2
ga gb gc gc2 A 2C
CHAPTER 10. APPENDICES 82

10.2.3 Calculating Uniaxial Compression Loading for a Given Stress

The uniaxial compressive loading that will produce a given axial stress, S, can be calculated for an incom-
pressible material.
 
2 1
S = A 2
A
S 1
= 2A 2
A
S
0 = 1 + 2A 4A

v s 
u
2
1 utS S
A = + +4
2
v s 
u
uS 2
S
A = + +1
t
2 2
CHAPTER 10. APPENDICES 83

10.3 Tensor Operations in Voigt and Mandel Notation


When utilizing the symmetry of tensors to reduce their order, several notations can be used. This is necessary
because certain elements appear twice in the original tensors, but only once in the reduced-order versions;
thus a factor of 2 must be employed at some point to take this change into account.
In Abaqus, the factor of 2 is placed in the strain vector:

11 C1111 C1122 C1133 C1112 C1113 C1123 11
22 C2211 C2222 C2233 C2212 C2213 C2223 22

33 C3311 C3322 C3333 C3312 C3313 C3323 33
12 = C1211 C1222 C1233 C1212 (10.2)

C1213 C1223
212

13 C1311 C1322 C1333 C1312 C1313 C1323 213
23 C2311 C2322 C2333 C2312 C2313 C2323 223

An alternate formulation (sometimes called Mandel notation) is:



11 C1111 C1122 C1133 2C1112 2C1113 2C1123 11
22 C2211 C C
2222 2233 2C2212 2C2213 2C2223 22


33 C3311 C 3322 C 2C3312 2C3313 2C3323 33
3333

12 = 2C1211 (10.3)

2C 1222 2C1233 2C1212 2C1213 2C1223 12
13 2C1311 2C1322 2C1333

2C1312 2C1313 2C1323 13

23 2C2311 2C2322 2C2333 2C2312 2C2313 2C2323 23

The relationship between higher-order tensors and their lower-order counterparts in Voigt notation is of
considerable interest. For instance, if operations are performed on both, will their answers match? Here we
will examine several common operations and assess their equivalence.

10.3.1 Dyadic Products

Given two tensors in Voigt notation,


AV = a11 a22 a33 a12 , BV =
   
a13 a23 b11 b22 b33 b12 b13 b23 (10.4)
their dyadic product,

a11 b11 a11 b22 a11 b33 a11 b12 a11 b13 a11 b23

a22 b11 a22 b22 a22 b33 a22 b12 a22 b13 a22 b23

V V
a33 b11 a33 b22 a33 b33 a33 b12 a33 b13 a33 b23
A B = (10.5)

a12 b11 a12 b22 a12 b33 a12 b12 a12 b13 a12 b23

a13 b11 a13 b22 a13 b33 a13 b12 a13 b13 a13 b23
a23 b11 a23 b22 a23 b33 a23 b12 a23 b13 a23 b23
is the same as the Voigt notation of the dyadic product of the full tensors.
Given two tensors in Mandel notation,

AM = a11 a22 a33 , BM =
   
2a12 2a13 2a23 b11 b22 b33 2b12 2b13 2b23
(10.6)
their dyadic product,

a11 b11 a11 b22 a11 b33 2a11 b12 2a11 b13 2a11 b23

a22 b11 a22 b22 a22 b33 2a22 b12 2a22 b13 2a22 b23


AM BM a33 b11 a33 b22 a33 b33 2a33 b12 2a33 b13 2a33 b23

= (10.7)
2a12 b11 2a12 b22 2a12 b33 2a12 b12 2a12 b13 2a12 b23


2a13 b11 2a13 b22 2a13 b33 2a13 b12 2a13 b13 2a13 b23

2a23 b11 2a23 b22 2a23 b33 2a23 b12 2a23 b13 2a23 b23
is also the same as the Mandel notation of the dyadic product of the full tensors.
CHAPTER 10. APPENDICES 84

10.3.2 Double Contraction

The double contraction of two second-order tensors yields a scalar:

c = A:B
= a11 b11 + a22 b22 + a33 b33 + a12 b12 + a13 b13 + a23 b23 + a21 b21 + a31 b31 + a32 b32 (10.8)

which, when accounting for symmetry, yields

c = a11 b11 + a22 b22 + a33 b33 + 2a12 b12 + 2a13 b13 + 2a23 b23 (10.9)

Given two tensors in Voigt notation 10.4, their product

c = AV BV
= a11 b11 + a22 b22 + a33 b33 + a12 b12 + a13 b13 + a23 + b23 (10.10)

Given two tensors in Mandel notation 10.6, their product

c = AM BM
= a11 b11 + a22 b22 + a33 b33 + 2a12 b12 + 2a13 b13 + 2a23 + b23 (10.11)

Thus, the double contraction of two symmetric second-order tensors is equivalent to the inner (or scalar)
product of their first-order counterparts in Mandel notation, but not Voigt notation.

10.3.3 Invariants

First Invariant

The first invariant, the trace, can be expressed in tensor form as:

trA = I : A = A : I (10.12)

Using Voigt notation for both the tensor A and the identity tensor,

AV = a11 a22 a33 a12 a13 a23 , Iv = 1


   
1 1 0 0 0 (10.13)

and the reduced-order equation


trAV = IV AV = AV IV (10.14)
we calculate the trace of A to be
trA = a11 + a22 + a33 (10.15)
which matches the full-order result.
Using Mandel notation for both the tensor A and the identity tensor,

AM = a11 a22 a33 2a23 , Iv = 1
   
2a12 2a13 1 1 0 0 0 (10.16)

the same answer is obtained.


Thus, while the first invariant uses a double contraction operation, it represents a special case where both
Voigt and Mandel notation preserve the result.
CHAPTER 10. APPENDICES 85

10.3.4 Inverses

Inverses of Fourth-Order Tensors

The definition of the inverse of a fourth-order tensor is a tensor that, when double contracted with the
original tensor, yields the fourth-order identity tensor.

A : A1 = II = I (10.17)

Because the double contraction of two fourth-order tensors is equivalent to the multiplication of their second-
order Mandel counterparts, it should be expected that

AM A1,M = I (10.18)

while this would not be true of Voigt notation. Instead, the opposite happens . . . FiXme Note:
Why???? Also, I
Another question is, is the inverse operation on a Voigt or Mandel tensor equivalent to the inverse operation was only able to
on their full-order counterpart? The answer appears to be yes for Mandel notation, but not in Voigt notation. test this for
That is, tensors that fit
the Sherman-
Morrison
Voigt notation
formula
4th order tensor 2nd order tensor

4th order inverse 2nd order inverse


Voigt notation

Mandel notation
4th order tensor 2nd order tensor

4th order inverse 2nd order inverse


Mandel notation FiXme Note: Im
actually not sure
. where this break
down for Mandel
notation
CHAPTER 10. APPENDICES 86

10.4 Growth and Plasticity


Similarities:
multiplicative decomposition
somewhat similar concept of yield surface (for some types of growth. Well, or some types of growth
have a point for a yield surface
material properties do not change?)
Questions:
intermediate configuration incompatible in plasticity?
is intermediate configuration stress-free? Rodriguez says yes.
hardening?
how is 3d independent growth/slip handled?
Is Fp symmetric? Fg is (because rotation is not allowed)
Differences:
plastic deformation is isochoric (only shear); growth changes volume
growth adds mass
physical cause - dislocations, slip vs. addition of mass
rate-dependent plasticity - different than the evolution function, right?
flow plasticity theory?
impossible for a material to have stress states outside its yield surface for plasticity, but its jjust
undesired for growth
yield surface is 1D for growth, 2D for plasticity

Das könnte Ihnen auch gefallen