Abaqus-Standard subroutine based on the Discrete Fibers Dispersion (DFD) model in finite strains (Ehret et al., 2010; Li et al., 2018) for fibre-reinforced soft biological materials. Features of the model:
- isotropic ground matrix with neo-Hookean model;
- anisotropic fibre contribution with multiple fiber families and independent in-plane and out-of-plane fiber dispersion;
- exponential fibre strain energy;
- fiber families principal basis {
$\mathrm{M}_i$ ,$\mathrm{M}_{\mathrm{ip}i}$ ,$\mathrm{M}_{\mathrm{op}i}$ } definable relative to:- global basis {
$\mathrm{G}_1$ ,$\mathrm{G}_2$ ,$\mathrm{G}_3$ }; - local basis {
$\mathrm{E}_1$ ,$\mathrm{E}_2$ ,$\mathrm{E}_3$ };
- global basis {
- discrete integration:
- Lebedev quadrature (built-in);
- integration points from external file;
- volumetric behavior formulations:
- incompressible (2D plane stress, 3D hybrid formulation);
- nearly incompressible (3D hybrid total Lagrange multiplier formulation);
- nearly incompressible (3D decoupled deviatoric and volumetric strain-energies);
- uniform prestress field
$\sigma_0$ applicable to all elements in the model (the components of the relative deformation gradient$\mathrm{F}_0$ must be provided through a dedicated prestretch text file).
The model is implemented applying the rotation correction to the deformation gradient
Includes the subroutine for the Lebedev integration points computation (Lebedev & Laikov, 1999).
Special functions subroutines are also included under Shanjie Zhang and Jianming Jin permission (Zhang & Jin, 1996).
The subroutine uses global arrays to store the integration points of each defined DFD material. The arrays can be read from any thread at any time during the analysis by means of pointers.
To ensure the subroutine compiles correctly, open the environment file abaqus_v6.env
in the Abaqus installation folder and add the following flags to the Fortran compiler settings:
- Linux platform (GCC compiler):
-fcray-pointer
;- For example
compile_fortran = (fortCmd + " -free" + " -fcray-pointer" + " -c -fPIC -I%I")
- For example
- Windows platform (Intel Fortran Compiler): no action needed.
The subroutine includes the Fortran interface files SMAAspUserArrays.hdr
and SMAAspUserUtilities.hdr
required to create and access the pointers (see 2.1.23 Allocatable arrays, Abaqus User Subroutines Reference Guide).
For the older versions of Abaqus, e.g. Abaqus 6.14, these files are located in %AbqInstall%\Abaqus\6.14-1\code\include
.
In Abaqus 2019, these files are located in %AbqInstall%\SimulationServices\V6R2019x\win_b64\code\include
, but contain an incorrect #
character. To make them work properly, open them with a text editor, remove the extra #
and save.
The subroutine UMAT_DFD_LEB.for
supports up to 100 different DFD materials defined at the same time during the analysis.
To define a DFD material add the following lines to the Abaqus input file:
*MATERIAL, NAME=MATNAME
*USER MATERIAL, TYPE=MECHANICAL, CONSTANTS=N
bulk, νg, μ, c1, c2, νf1, α1, β1,
γ1, a1, b1, ..., ..., ..., ..., ...,
νfm, αm, βm, γm, am, bm, rint, nint,
thrp, csw, elem, ori, θ1, θ2, θ3
where MATNAME
is the material name to be defined according to Material name and volumetric behavior section, and N
is the total number of parameters defined.
Parameters must be provided 8 per line.
See *USER MATERIAL, Abaqus Keywords Reference Guide for further information.
The material name MATNAME
must be max 80 characters long, and must be defined as DFD_XX-custom_material_name
where XX
defines the volumetric behavior.
Available options are:
IN
for incompressible formulaton;NI
for nearly incompressible hybrid total Lagrange multiplier formulation.HB
nearly incompressible formulation with decoupled deviatoric and volumetric strain-energies. The deviatoric fiber strain-energy (DFD model) is implemented using the full deformation gradient according to Helfenstein et al. (2010) and Nolan et al. (2014).
The DFD model is implemented using the objective fourth-order tangent stiffness tensor relative to the Jaumann rate of the Kirchhoff stress. This stiffness tensor is intended to work in conjunction with Solid (Continuum) elements (see Table 1.5.3–1, 1.5.3 Stress rates, Abaqus Theory Guide), but Structural elements can also be used with some limitations (Membranes only). Elements are supported in full integration only, and can be selected depending on the volumetric behavior as follows:
IN
:- 2D plane stress (Continuum) elements
CPS3
,CPS4
,CPS6
,CPS8
; - 2D membrane (Structural) elements
M3D3
,M3D4
,M3D6
,M3D8
,M3D9
; - 3D hybrid (Continuum) elements
C3D4H
,C3D6H
,C3D8H
,3D10H
,C3D15H
,C3D20H
. Add the optionHYBRID FORMULATION=INCOMPRESSIBLE
to*USER MATERIAL
to activate the hybrid formulation;
- 2D plane stress (Continuum) elements
NI
:- 3D hybrid (Continuum) elements
C3D4H
,C3D6H
,C3D8H
,C3D10H
,C3D15H
,C3D20H
. Add the optionHYBRID FORMULATION=TOTAL
to*USER MATERIAL
to activate the hybrid formulation;
- 3D hybrid (Continuum) elements
HB
:- 3D (Continuum) elements
C3D4
,C3D6
,C3D8
,C3D10
,C3D15
,C3D20
.
- 3D (Continuum) elements
Parameters must be given in the following order:
no. | Parameter | Unit | Description |
---|---|---|---|
bulk |
Pa, kPa, ... | Bulk modulus (ignored in incompressible formulation, IN ). |
|
νg |
- | Ground matrix volume fraction. | |
μ |
Pa, kPa, ... | Ground matrix shear modulus. | |
c1 |
Pa, kPa, ... | Fibers stiffness-like parameter. | |
c2 |
- | Fibers stiffeneing parameter. | |
νf1 |
- | Fiber family's volume fraction. | |
α1 |
deg | Azimuth angle of the fiber family's principal basis { |
|
β1 |
deg | Elevation angle of the fiber family's principal basis { |
|
γ1 |
deg | Rotation of the fiber family's principal basis { |
|
a1 |
- | In-plane von Mises distribution concentration parameter, rint is 999 ). |
|
b1 |
- | Out-of-plane von Mises distribution concentration parameter, rint is 999 ). |
|
... | Add |
||
rint |
Integration scheme flag. Set 0 to use implemented Lebedev quadrature, or 999 to read points from external file(s). |
||
nint |
Target number of Lebedev integration points on the unit sphere per fiber family (ignored if rint is 999 ). The analysis will be performed using the set containing the number of points closer to nint . Then, only the points on the top hemisphere will be used. |
||
thr |
Threshold value for integration points retention. Points with integrand value lower than thr will be discarded. Set 1e-6 for best performance/integration accuracy, 0 to keep all positive integration points, or else for custom computation. Warning: discarding too much points with excessively high threshold produces inaccurate results. |
||
csw |
Fibers compression switch flag. Set 1 to exclude compressed fibers, or 0 to include all fibers. |
||
elem |
Element type. Set 1 for Continuum elements, or 2 for Structural elements. |
||
ori |
Type of active orientation. Set 0 if global orientation is used, {1 if local orientation is used, { |
||
θ1 |
deg | Rotation of {ori is 0 ). |
|
θ2 |
deg | Rotation of {ori is 0 ). |
|
θ3 |
deg | Rotation of {ori is 0 ). |
Notes:
- Stiffness parameters must be expressed in the unit consistent with the force-area units used in the model.
- The material must include at least one fiber family (
$n=1$ ); - The sum of all the fiber families volume fractions
νfi
should be equal to 1; - Parameters
elem
andori
are essential for addressing the rotation correction of the deformation gradient$\mathrm{F}$ (Nolan et al., 2022); - The rotation angles
θ1
,θ2
,θ3
of the local basis {$\mathrm{E}_1$ ,$\mathrm{E}_2$ ,$\mathrm{E}_3$ } are used to print the components of the deformation gradient$\mathrm{F}$ and the Cauchy stress tensor$\sigma$ relative to the global basis {$\mathrm{G}_1$ ,$\mathrm{G}_2$ ,$\mathrm{G}_3$ } on a.chy
file in the analysis' folder. The target element and the relative Gauss point number must be specified in thekpars_umat.for
source file.
When the integration scheme flag is rint
is 999
, the integration points must be given on differet files for each fiber family using the material name MATNAME
as file name, and the progrssive file extension .intp[i]
to identify the ith family.
For example, a material named DFD_IN-example_material
with N
fiber families must be provided with the following files in the analysis' folder:
DFD_IN-example_material.intp1
for the 1st fiber family;DFD_IN-example_material.intp2
for the 2nd fiber family;- ...
DFD_IN-example_material.intpN
for the Nth fiber family;
Examples of .intp[i]
files are provied in the input files folders 00_single_element_tests and 05_further_examples.
Prestress is supported ONLY when the following two conditions are met:
- prestress is uniformly applied to all the elements in the model;
- only one DFD material is defined.
Prestress applied to a subset of elements or applied in presence of more than one DFD material is NOT supported.
To define a uniform prestress field add the following lines to the Abaqus input file:
*INITIAL CONDITIONS, TYPE=STRESS
ALL_ELEMENTS_SET, σ11, σ22, σ12,
where σ11
, σ22
, σ12
are the components of the initial stress field
To allow the correct computation of the tangent stiffness matrix, the initial deformation gradient INPUTFILENAME.F0
included in the analysis' folder, where INPUTFILENAME
must be the same as the analysis input file.
The components must be formatted as exponential with 16 positions and 6 decimal digits (fortran format E16.6
), and organized as a matrix on three rows and columns. For example, for a uniaxial prestress field along
8.560503E-01 0.000000E+00 0.000000E+00
0.000000E+00 1.169145E+00 0.000000E+00
0.000000E+00 0.000000E+00 9.991537E-01
Use the following command line to launch the job from terminal:
abaqus job=input_file_name user=main_sub cpus=j
where main_sub
is the main subroutine main_sub.for
including UMAT_DFD_LEB.for
and all the subroutines required for the analysis. The subroutine supports parallel computing. Replace j
with the desired number of cores (default is 1
by omitting cpus
option).
See 3.2.2 Abaqus/Standard execution, Abaqus Analysis User's Guide for further details.
Ehret, A. E., M. Itskov, and H. Schmid. “Numerical Integration on the Sphere and Its Effect on the Material Symmetry of Constitutive Equations-A Comparative Study.” International Journal for Numerical Methods in Engineering 81, no. 2 (January 8, 2010): 189–206. https://doi.org/10.1002/nme.2688.
Helfenstein, J., M. Jabareen, E. Mazza, and S. Govindjee. “On Non-Physical Response in Models for Fiber-Reinforced Hyperelastic Materials.” International Journal of Solids and Structures 47, no. 16 (August 1, 2010): 2056–61. https://doi.org/10.1016/j.ijsolstr.2010.04.005.
Lebedev, Vyacheslav Ivanovich, and Dmitri Laikov. “A Quadrature Formula for the Sphere of the 131st Algebraic Order of Accuracy.” In Doklady Mathematics, 59:477–81. Pleiades Publishing, Ltd., 1999.
Li, Kewei, Ray W. Ogden, and Gerhard A. Holzapfel. “A Discrete Fibre Dispersion Method for Excluding Fibres under Compression in the Modelling of Fibrous Tissues.” Journal of The Royal Society Interface 15, no. 138 (January 31, 2018): 20170766. https://doi.org/10.1098/rsif.2017.0766.
Nolan, D.R., A.L. Gower, M. Destrade, R.W. Ogden, and J.P. McGarry. “A Robust Anisotropic Hyperelastic Formulation for the Modelling of Soft Tissue.” Journal of the Mechanical Behavior of Biomedical Materials 39 (November 2014): 48–60. https://doi.org/10.1016/j.jmbbm.2014.06.016.
Nolan, D.R., C. Lally, and J.P. McGarry. “Understanding the Deformation Gradient in Abaqus and Key Guidelines for Anisotropic Hyperelastic User Material Subroutines (UMATs).” Journal of the Mechanical Behavior of Biomedical Materials 126 (February 1, 2022): 104940. https://doi.org/10.1016/j.jmbbm.2021.104940.
Zhang, Shanjie, and Jianming Jin. Computation of Special Functions. Wiley, 1996., ISBN 0-471-11963-6, LC QA351.C45.