# Cohesive Element Modeling in Abaqus

## Introduction

Modeling the deformation and failure response of parts that are bonded together is one of the few FE topics that seem hard to do, but is in fact relatively simple to do one you know how to set it up. The “trick” is to use cohesive elements or cohesive surface contact.  This modeling approach has been around for many years but many people are still struggling to set it up properly. In this article I will try to demonstrate, by example, how this works in Abaqus.

I usually find the Abaqus user’s manuals to be excellent, but when it comes to cohesive elements and cohesive surface contact, the Abaqus docs are not as succinct as I would like. Here I will try to demonstrate my favorite Abaqus cohesive element settings by going through a number of short examples.

Before starting, remember that traction = stress, and separation = displacement. All results presented here were generated using Abaqus and plotted using MCalibration.

## Example 1 - Base Line (Tension) The bottom  surface of the bottom substrate is held fixed. The top surface of the top substrate is moved upwards 0.1 mm in 0.1 sec. The adhesive layer is 0.01 mm thick (very thin!), and the cross sectional area is 1 mm x 1 mm. Each substrate is one C3D8R element, and the adhesive is represented using one COH3D8 element. With this setup the applied force has the same numerical value as the (stress) traction (in MPa).

The predicted traction-separation response for the model below is shown in the figure. Notes:

• You can specify the normal and shear stiffnesses using the `*Elastic` command.
• Using `criterion=maxs` you can specify the traction values for the onset of damage accumulation for the normal and shear directions.
• Here I used a simple linear `*Damage Evolution` option. In most real cases you will need to use something better.
• This example was run using Abaqus/Standard.
```				```
*Material, name=mat
*Elastic, type=traction
4000.0,  700.0,  700.0
*Damage Initiation, criterion=maxs
90.0, 66.0, 66.0
*Damage Evolution, type=displacement, softening=linear
0.04

```
``` ## Example 2 - Base Line (Shear)

This is exactly the same as Example 1, but the loading mode is simple shear. The deformed shape looks a bit crazy, but note that this will not cause convergence issues due to element distortions. Cohesive elements are 1D and do not really distort! Very handy.

The cohesive material model definition is the same as in Example 1, and the predicted traction-separation response is shown below. This figure shows both the tension and shear predictions.  ## Example 3 - Cohesive Layer Thickness Cohesive elements are a bit odd in that their response are not specified in terms of stress-strain curves, but instead in terms of traction-separation curves. Due to this it becomes  important to properly define the initial cohesive thickness. In the first  2 examples I did not specify the cohesive thickness, and in this case Abaqus assumes a thickness of 1.0.  If I reduce the cohesive thickness in example 1 by 50% then I get the results shown in the following figure. This figure shows the response of both thicknesses.

The initial linear elastic response is clearly dependent on the cohesive layer thickness. This makes sense since the traction is given by the modulus multiplied by the cohesive layer strain, and the strain is obtained from the displacement divided by the initial thickness. My preferred way to deal with this is to assign the cohesive thickness to be 1.0, this way the cohesive strain becomes equal to the cohesive displacement. This is also the default behavior in Abaqus.

Also note that the response after damage initiation is defined in terms of the separation distance (not  strain). Also note that with this convention you will get the same force-displacement response of the cohesive layer independent of the size of the elements in the through-thickness direction. This should not be a problem since usually the adhesive layers are thin. If the adhesive layer is not thin, then it may be better to switch to continuum elements.

In the following examples I will use a cohesive thickness of 1.0.

```				```
** This example used a cohesive layer thickness of 0.5
*Cohesive Section, elset=adhesive, material=mat, response=traction separation
0.5

```
```

## Example 4 - Cohesive Contact Surfaces (Tension)

Here I will repeat Example 1 using cohesive contact surfaces instead of cohesive elements. Specifically, I will use the following Abaqus/Standard definitions. The results below the code show that in this case cohesive contact surfaces give exactly the same results as cohesive elements. Nice!

```				```
*Surface Interaction, name=coh
*Surface Behavior, pressure-overclosure=hard
*Cohesive Behavior, cohere=original contacts, type=uncoupled
** Knn, Kss, Ktt
4000.0, 700.0, 700.0
90.0, 66.0, 66.0
*Damage Evolution, type=displacement, softening=linear
0.04
**
*Contact Pair, interaction=coh
botBlock.top, topBlock.bot
```
```  ## Example 5 - Cohesive Contact Surfaces (Shear)

In this example I will repeat Example 2 using cohesive contact surfaces instead of cohesive elements.The results below show that in this case cohesive contact surfaces give exactly the same results as cohesive elements.  ## Example 6 - Tabular Damage Evolution

All examples so far have use a linear softening response after damage initiation. That is useful for demonstration purposes, but it is typically not sufficiently accurate for modeling real adhesives. My recommendation to overcome this issue is to use a tabular damage evolution model instead. In this case the elastic stiffness of the cohesive layer is multiplied by a scalar damage variable that is initially 0, and then starts to increase once the damage initiation condition has been reached. Final failure occurs once the damage variable reaches a value of 1.0. That is, the stress is multiplied by (1-D) to compensate for the damage accumulation. In abaqus this is specified by pairs of displacements and the corresponding damage value. The different lines in the figure below has multiple pairs of damage and displacement values. It is clear that many different responses can be obtained if the damage variable is selected properly.

```				```
*Material, name=mat
*Density
1.0e-9
*Elastic, type=traction
** Enn, Ess, Ett
4000.0,  700.0,  700.0
**
*Damage Initiation, criterion=maxs
** Snn, Sss, Stt
90.0, 66.0, 66.0,  2.0
**
*Damage Evolution, type=displacement, softening=tabular
** damage variable, total displacement
0.0, 0.00
0.8, 0.05
1.0, 0.20

```
``` ## Example 7 - Rate Dependence

Many aspects of the cohesive response can be made dependent on the applied deformation rate. This is obviously important since most polymer adhesives have a rate-dependent response! In this example I will show how to make the initial elastic response linear viscoelastic, and how to make the damage evolution rate-dependent.

According to the Abaqus manuals it should also be possible to make the damage initiation behavior rate-dependent, but I have experience odd behavior when activating this feature. So my current recommendation is to not use it. Instead you can achieve similar behavior by using a rate-dependent damage evolution specified in a tabular way (see code below).

```				```
*Material, name=mat
*Density
1.0e-9
*Elastic, type=traction
** Enn, Ess, Ett
4000.0,  700.0,  700.0
*Viscoelastic, time=prony
** gi, kappai, taui
0.7, 0.7, 1.0
0.1, 0.1, 2.0
**
*Damage Initiation, criterion=maxs, rate dependent
** Snn, Sss, Stt
90.0, 66.0, 66.0,  2.0
*Damage Evolution, type=displacement, softening=tabular,
rate dependent
** damage variable, total displacement, effective rate
0.0, 0.00, 1.0
0.8, 0.03, 1.0
1.0, 0.05, 1.0
**
0.0, 0.00, 2.0
0.4, 0.02, 2.0
1.0, 0.03, 2.0
```
```

## Example 8 - Mixed Mode with Rate-Dependence

In this final example I am using a rate-dependent cohesive response that is also dependent on the loading mode. More specifically, separate traction-separation behaviors in tension and shear are specified using the options `mixed mode behavior=tabular`, and `mode mix ratio=traction`. The p1 parameter specifies the type of load, p1=0 is tension, p1=1 is shear. In many industrial applications it may also be useful to include data in additional mixed mode configurations. I did not do that here to keep the code simple. More specifically, p1 = (2/pi) * atan(shear_traction/normal_traction).

In this example I also added a small amount of damage stabilization to illustrate how that can be done.

```				```
** Snn,  Sss,  Stt
45.0, 30.0, 30.0
*Damage Evolution, type=displacement, softening=tabular,
mixed mode behavior=tabular, mode mix ratio=traction,
rate dependent
** damage, total-disp, phi_1, phi_2, rate
** phi_2 = 1 => purely shear
** make phi_2=0 since isotropic shear
**
** phi_1 = p1 = 0 -> normal
** D, disp,  p1,  p2, rate
0.0, 0.00, 0.0, 0.0,  1.0
0.8, 0.03, 0.0, 0.0,  1.0
1.0, 0.05, 0.0, 0.0,  1.0
** phi_1 = p1 = 1 -> shear
** D, disp,  p1,  p2, rate
0.0, 0.00, 1.0, 0.0,  1.0
0.5, 0.05, 1.0, 0.0,  1.0
1.0, 0.06, 1.0, 0.0,  1.0
**
**
** D, disp,  p1,  p2, rate
0.0, 0.00, 0.0, 0.0,  2.0
0.8, 0.04, 0.0, 0.0,  2.0
1.0, 0.06, 0.0, 0.0,  2.0
** phi_1 = p1 = 1 -> shear
** D, disp,  p1,  p2, rate
0.0, 0.00, 1.0, 0.0,  2.0
0.6, 0.04, 1.0, 0.0,  2.0
1.0, 0.05, 1.0, 0.0,  2.0
*Damage stabilization
0.01
```
``` ## Summary

Abaqus contains some powerful and easy to use features to predict the deformation response (including failure) of adhesives and bonded interfaces. Many of the more advanced features shown here only work with Abaqus/Explicit.

The main topic that I did not show here is how you can use MCalibration to quickly and accurately determine the cohesive parameters from traction-separation experiments. That will be discussed in a separate tutorial. Finally, you can download the examples that I used from the following link.

### 2 thoughts on “Cohesive Element Modeling in Abaqus”

1. Chun Jen Hsueh

This is a great post on clarifying and validating Abaqus cohesive behavior. Really like it!

I have a quick question. In the figure of example 4, I don’t understand why we have the cohesive element and thick cohesive element curve and surprisingly both of them are having the same traction separation curve?

Jen

2. I want to let everyone know that I fixed an error in Example 5, and that I updated the zip-file that contains the abaqus inp-files. Let me know know if you find any other issues.
Thanks, Jorgen