Beruflich Dokumente
Kultur Dokumente
Saeid Poorasadion
Ph.D. Candidate
Mechanical Engineering Department
Sharif University of Technology
Email: saied_poorasadion@mech.sharif.ir, saeid.poor@gmail.com
Winter 2015
Contents
Introduction
User Subroutines
UMAT
Writing UMAT
Examples
1D Elastic
Isotropic Hardening Plasticity
Neo-Hookean Hyperelasticity
VUMAT
S.Poorasadion
Winter 2015
Introduction
Introduction
Finite Element Software Packages
ANSYS
Which Software??
ABAQUS
LS-DYNA
S.Poorasadion
Winter 2015
Introduction
Understanding the fundamental concepts of nonlinear
finite element analysis:
Selecting the best solution procedure and good
strategy for developing a reasonable model
Selecting appropriate element and BCs
Winter 2015
Introduction
Finite Element Method
Initial Displacements
Implicit method
Calculate Strain
< Tol
Calculate Stress
Calculate Internal
Force & Compare with
External Force
Using Constitutive Model
Solution
Complete
Modify
Displacements
(Newton method)
Calculate Tangent
Matrix
Calculate Tangent
Stiffness Matrix
S.Poorasadion
Winter 2015
Introduction
Main Problem
Creating a software to simulate a specific
application:
Simulating shape memory alloys
Creating a new element (B- spline element)
Winter 2015
User Subroutines
User Subroutines
ABAQUS/Standard 6.10: 51 subroutines
ABAQUS/Explicit 6.10: 20 subroutines
FORTRAN code (.for)
Some popular user subroutines in ABAQUS/Standard
DLOAD
VDLOAD
UMAT
VUMAT
UEL
VUEL
UHYPER
S.Poorasadion
Winter 2015
User Subroutines
Where User Subroutines Fit into ABAQUS/Standard
S.Poorasadion
Winter 2015
10
User Subroutines
Where User Subroutines Fit into ABAQUS/Standard
S.Poorasadion
Winter 2015
11
User Subroutines
Where User Subroutines Fit into ABAQUS/Standard
S.Poorasadion
Winter 2015
12
User Subroutines
Where User Subroutines Fit into ABAQUS/Standard
User Subroutines
& Scripting Interface??
S.Poorasadion
Winter 2015
13
Programming
To include user subroutines in an analysis:
Through ABAQUS execution command
abaqus job=my_analysis user=my_subroutine
Through ABAQUS/CAE
Job Module > General Tab>Address to User Subroutine
file
S.Poorasadion
Winter 2015
14
Programming
To include user subroutines in an analysis:
Through ABAQUS execution command
abaqus job=my_analysis user=my_subroutine
Through ABAQUS/CAE
Job Module > General Tab>Address to User Subroutine
file
S.Poorasadion
Winter 2015
15
Programming
Compiling and Linking User Subroutines
A correct compile and link commands should be
used automatically
Microsoft Visual Studio
Intel Visual Fortran Compiler
S.Poorasadion
Winter 2015
16
Programming
Subroutine Argument Lists
Variables to be defined
Variables that can be defined
Variables passed in for information
Naming Conventions
Subroutines or COMMON blocks should
begin with the letter K
S.Poorasadion
Winter 2015
17
UMAT
User-defined Material
18
UMAT
FEM
1.Initial Displacements For increment i
Pre-Processing
(Boundary Condition
Geometry, Mesh
External Nodal Force)
Define B matrix
UMAT
Calculate Stress
Calculate Tangent Moduli
Post-Processing
(Stress
Displacement
Internal Nodal Force)
Winter 2015
19
UMAT
S.Poorasadion
Winter 2015
20
UMAT
S.Poorasadion
Winter 2015
21
UMAT
Allows you to implement general constitutive
equation
Define any constitutive model of arbitrary complexity
User-defined material models can be used with any
ABAQUS structural element type
Multiple user materials can be implemented in a
single UMAT routine and can be used together
S.Poorasadion
Winter 2015
22
UMAT Interface
S.Poorasadion
Winter 2015
23
UMAT Interface
S.Poorasadion
Winter 2015
24
S.Poorasadion
Winter 2015
25
UMAT Variables
Variables to be defined
DDSDDE(NTENS,NTENS)
STRESS(NTENS)
1 J
C
STATEV(NSTATV)
SSE, SPD and SCD
Elastic strain energy, plastic dissipation, and creep
dissipation.
No effect on the solution and using for energy output
Winter 2015
26
UMAT Variables
Variables that can be defined
PNEWDT
Ratio of suggested new time increment to the time
increment being used
TIME, DTIME
TEMP, DTEMP
PREDEF, DPRED
S.Poorasadion
Winter 2015
27
UMAT Variables
Variables passed in for information (continued)
CMNAME
NDI, NSHR, NTENS
Number of direct, shear, total stress components
NSTATV
PROPS(NPROPS), NPROPS
COORDS
DROT(3,3)
Rotation increment matrix
CELENT
Characteristic element length
S.Poorasadion
Winter 2015
28
UMAT Variables
Variables passed in for information (continued)
DFGRD0(3,3), DFGRD1(3,3)
NOEL, NPT
Element, integration point numbers
LAYER, KSPT
Layer, section point numbers
KSTEP, KINC
Step, increment numbers
S.Poorasadion
Winter 2015
29
Running UMAT
S.Poorasadion
Winter 2015
30
Running UMAT
Variable:
PROPS
S.Poorasadion
Winter 2015
31
Running UMAT
S.Poorasadion
Winter 2015
32
Running UMAT
S.Poorasadion
Winter 2015
33
Running UMAT
S.Poorasadion
Winter 2015
34
Writing UMAT
35
Writing UMAT
Write a code in MATLAB (Debugging in MATLAB
is fast and easy)
Check MATLAB code with benchmark problems
(for example uniaxial test)
Strain,
Information
MATLAB Code
Stress, DS/De
Winter 2015
36
MATLAB
FORTRAN
S.Poorasadion
Winter 2015
37
Debugging
When assigning a value to a double precision
variable, D-scientific notation should be used.
Output
Fortran Code
S.Poorasadion
Winter 2015
38
Debugging
Which is correct?
S.Poorasadion
Winter 2015
39
Debugging
Error: Problem during compilation
Winter 2015
40
Debugging
Divide by zero
5/0.d0
a/b when b is zero in first time (STRAN and DSTRAN
are zero in first time)
S.Poorasadion
Winter 2015
41
Debugging
Write or print a parameter in Data File tab
write (6,*) 'tt , KINC,
S.Poorasadion
Winter 2015
42
Example 1: 1D Elastic
S.Poorasadion
Winter 2015
43
Winter 2015
44
Winter 2015
45
W I i
C
I i C
W
S
2
4
C
CC
CE
Fim Fjn Fkp FlqC mnpq
S2
CCE
C ijkl
K
S.Poorasadion
B T C BdV
c JC : D
1 J
T dV
Winter 2015
46
Examples
47
2
1
1
U C 10
3
J 1
2
D1
J 3
S 2
2
C
J C
I 1 C
I 1 1
2
2
2/3
1
C 10J
I
J
J
1
C
D
J
3
2
1
2
C 10 B tr B I
J 1 I
D1
J
3
S.Poorasadion
C 10
2
K
D1
2
I 1
ij
C
J
J C 1
C
B
Winter 2015
1
J
2/ 3
B
48
CSE
C ijkl
2U
S
4
2
CC
C
SE
Fim Fjn Fkp FlqC mnpq
1
2
C ijkl C 10 ij B jl Bik jl il B jk Bil jk
2
J
2
2
2
2
ij Bkl Bij kl ij kl Bmm
2J 1 ij kl
3
3
9
D1
S.Poorasadion
Winter 2015
49
Main Box
S.Poorasadion
Winter 2015
50
Calculate Material
Parameter
Calculate J and
Distortion Tensor
S.Poorasadion
Winter 2015
51
B FFT
Calculate Cauchy
Stress
2
1
C 10 B tr B I
J
3
2
J 1 I
D1
S.Poorasadion
Winter 2015
52
Calculate material
Jacobian
S.Poorasadion
Winter 2015
53
Hyperelastic Materials
Derivation of consistent Jacobian is difficult
CSE
C ijkl
S.Poorasadion
2U
S
4
2
CC
C
SE
Fim Fjn Fkp FlqC mnpq
Winter 2015
54
Hyperelastic Materials
Derivation of consistent Jacobian is difficult
CSE
C ijkl
2U
S
4
2
CC
C
SE
Fim Fjn Fkp FlqC mnpq
Winter 2015
55
el
ij ij kk
2 ijel
Yield function:
3
S ij S ij Y pl
2
S ij
1
ij ij kk
3
pl
pl dt , pl
2 pl pl
ij ij
3
3 S ij pl
2 Y
User Subroutines in ABAQUS
Winter 2015
56
ij ij kk
ij
S.Poorasadion
S ijpr
pr
h
*
2 ij
3 ij kl kl
1 h / 3
Y
pr
d Y
2 *
, k , h
3
d pl
*
Winter 2015
57
ij ij kk
ij
S.Poorasadion
S ijpr
pr
h
*
2 ij
3 ij kl kl
1 h / 3
Y
pr
d Y
2 *
, k , h
3
d pl
*
Winter 2015
58
S.Poorasadion
Winter 2015
59
S.Poorasadion
Winter 2015
60
ijpl
3 pl S ij
2 ijpl
Y
Rotate Forward
ijpl
n 1
ijpl n
S.Poorasadion
3 S ij pl
2 Y
Winter 2015
61
F > Tol
No F > 0
S.Poorasadion
Winter 2015
62
S.Poorasadion
Winter 2015
63
S.Poorasadion
Winter 2015
64
S.Poorasadion
Winter 2015
65
VUMAT
In ABAQUS/Explicit the user-defined material model
is implemented in user subroutine VUMAT
The material Jacobian does not need to be defined in
VUMAT
UMAT or VUMAT???
S.Poorasadion
Winter 2015
66