Documentation Abaq
Documentation Abaq
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
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
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.
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
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.
return
end
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
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.
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
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.
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.
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.
The Abaqus/Standard convention for ordering stress and strain components is:
11
22
33
v=
12
13
23
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
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 =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
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,
or
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
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
nodal positions
* Node
1, 1. , 1. , 1.
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)
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
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
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
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.
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
or
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.5 Debugging
1.7.6 Subfunctions
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
1.8 Debugging
If debugging is the process of removing software bugs,
then programming must be the process of putting them in.
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
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
2.1.2 Symmetry
23
CHAPTER 2. CONTINUUM MECHANICS REFERENCES 24
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
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)
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.
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
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)
Objective Cauchy stress , Piola-Kirchhoff stresses P and S (and S)x, rate of deformation d
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
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.
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
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)
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
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.
= l lT
T
= (d + w) (d + w)
= d w dT wT
= d w d + w
= w + w d d
| {z }
= d d (3.17)
= J
= L [ ] = l lT = w + w
=
d=0
CHAPTER 3. WHERE DO TANGENTS COME FROM? 30
CIJKL = E
SIJ
KL
=2
SIJ
CKL
(3.19)
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)
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
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:
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
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)
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:
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
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
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
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
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
F = Fe Fg (5.1)
B0 (reference) B (deformed)
Fg Fe
B (intermediate)
38
CHAPTER 5. MECHANICS OF GROWTH 39
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)
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)
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.
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)
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
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
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
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 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
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)
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)
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)
c0ijkl =
1
2
(ik jl + il jk + jk il + jl ik ) (5.63)
1
= (I + I + I + I) (5.64)
2
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:
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
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
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
kinematics
constitutive relations
tangent
52
CHAPTER 6. MORPHOGENETIC GROWTH 53
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
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.
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
kinematics
stretch
< cr
cr
update SDVs
stress-dependent kinematics
constitutive relations
56
CHAPTER 8. STRETCH-DRIVEN GROWTH 57
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)
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.1 Properties
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
hg i = he criti (8.9)
g
1
= = g = g2 (8.10)
g g g g
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)
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
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.1 Properties
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)
hg i = he criti (8.19)
g
1
= = = g2 (8.20)
g g g g g
CHAPTER 8. STRETCH-DRIVEN GROWTH 62
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)
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.1 Properties
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)
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)
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.1 Properties
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)
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
= e g (8.42)
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.
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
Because the evolution equations are nonlinear, the time advancement with implicit Euler requires a local
Newton iteration to find the roots of the equation
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)
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
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.
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.1 Properties
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)
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
Because the evolution equations are nonlinear, the time advancement with implicit Euler requires a local
Newton iteration to find the roots of the equation
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
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)
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.
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
Stress-Driven Growth
9.0.1 Flowchart
create geometry
initialize SDVs
elastic kinematics
Me > Mecrit
calculate Me update
Me Mecrit
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.1 Properties
9.1.2 Kinematics
For isotropic volumetric growth, the growth tensor takes the form of
Fg = g I (9.1)
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)
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
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
and its derivative with respect to the right Cauchy Green deformation tensor is:
g 1
3Ce1 + 2I
= g 2 (9.19)
C g 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
78
Chapter 10
Appendices
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.
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
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
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
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
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
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.
c = A:B
= a11 b11 + a22 b22 + a33 b33 + a12 b12 + a13 b13 + a23 b23 + a21 b21 + a31 b31 + a32 b32 (10.8)
c = a11 b11 + a22 b22 + a33 b33 + 2a12 b12 + 2a13 b13 + 2a23 b23 (10.9)
c = AV BV
= a11 b11 + a22 b22 + a33 b33 + a12 b12 + a13 b13 + a23 + b23 (10.10)
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,
10.3.4 Inverses
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
Mandel notation
4th order tensor 2nd order tensor