Integrated Computational Materials Engineering (ICME)

Task 3 - Dislocations to Crystal Plasticity

In this task, we will bridge information from the microscale to the mesoscale. You will perform dislocation dynamics simulations with multiple Frank Read sources to determine parameters for a hardening rule which will be used in a crystal plasticity code (CPFEM). Thus, there are two parts to this assignment:

  • Dislocation Dynamics (DD) using Multiscale Dislocation Dynamics Plasticity (MDDP)
  • Crystal Plasticity (CPFEM) implemented as a user material routine in ABAQUS or Calculix
This exercise uses the hardening law parameters obtained from DD calculations. The hardening law for slip systems is a critical aspect of crystal plasticity models and contains material related parameters which are difficult to obtain from experiments. Thus, DD serves as a "virtual experiment" from which the hardening parameters can be determined.

All necessary input files and scripts are available through the website. Save these files to your own directory (and make a backup copy) before trying to perform any simulations.

Use /scratch/"Your Directory" for best results.

Write a full report that follows a journal article manuscript format (include figures and tables in the text). Please double-space your document)

Upon completion, submit via email a .pdf and .doc(x) file of your report. Be sure to also include the requested files and plots from each section of the task.

Part 1 - Dislocation Dynamics Virtual Experiment


This exercise uses dislocation dynamics calculations to determine the parameters of the hardening law used in crystal plasticity. The hardening law for the slip systems is a critical aspect of crystal plasticity models and contains material related parameters that are hard to obtain from experiments. Dislocation dynamics can serve as a “virtual experiment” from which the hardening parameters can be determine using a fitting procedure.

Environment Setup

The setup for MDDP is the same as in the previous task.

Dislocation Forest Hardening

The steps to run and post-process the results from MDDP will be the same as in the previous task. However, this time you need to create a DDinput file that includes multiple Frank-Read sources (FRS).

If you are using an FCC material, you can use the data and DDinput files in the "Examples/MFRS" folder of the MDDP zip file. Remember to edit these files with your material parameters.

You can also create a structure yourself with the FCC or BCC pre-processor. Keep in mind that the more FRS's you have, the longer the simulation will take to run, as the more nodes it will have to simulate. However, if there are too few, the simulation may not be representative of the real material. Try to aim for an initial dislocation density (plotted from the MDDP out files) of 1.E+11 to 1.E+12.

You can use a time step with the preprocessor of about 1 - but for the BCC preprocessor, you will need to manually edit the timestep in DDinput file. Modify the fourth value in the second section:
2: timenow totalstrn stress deltt   dbt   load_type
   0.00000000       0.00000000       0.00000000       1.0   1.00000001E-07           0

You will need to make one additional change to your data file, to change the kind of boundaries in the simulations cell. Change the relevant line to:
4: npolorder,   ncell, ifree (0,1 or 3), nsface1(3),    nsface2(3)
    1            0           1         1 1 1      1 1 1

Task Assignment

  1. Using the three stress-strain curves from dislocation dynamics and by assuming a linear fit to the work hardening (post-yield portion of stress-strain curve), estimate the slope of the linear hardening regime. How does uncertainty affect the linear assumption? Is there a better assumption than linearity?

  2. Fit dislocation density results to the Voce Hardening Law (Equation 9.9 in ICME textbook).

  3. Report on your results

Part 2 - Upscale Dislocation Forest Hardening to Crystal Plasticity


  • Run a one-element finite element simulation using the Voce hardening law with one crystal orientation.

  • Plot a stress strain curve for each set of hardening constants.

  • Report on your results.

Environment Setup

This part of the assignment can be completed in either ABAQUS on a Mississippi State computer, or any other fully licensed Abaqus, or on Calculix, a free, open-source FEA solver. You can find a tutorial for the ABAQUS CPFEM setup and use here.

For either software, you will need all of the input files for CPFEM in an aluminum material found here. If you are using a bcc material, save this file as and use it instead of

For Calculix, also download the additional umat files and compile as described here.

Single Crystal CPFEM Simulation

Step 1

Create the input file.

(Hint: Calculix and Abaqus can take the same input files.)
  1. Create a cube

  2. Constrain the cube so that all rigid body displacements and rotations are constrained.
    1. Constrain one corner of the cube to be fixed in all directions
    2. Constrain two adjacent nodes to be fixed in the direction of loading. Make sure that these 3 nodes are all in a plane which is perpendicular to the direction of loading.
    3. Constrain one of these two adjacent nodes to be fixed in a second direction, such that this node cannot rotate about the fixed corner of the cube.

  3. Mesh the cube such that only a single element is created.

  4. Add a displacement to the face opposite of the constrained face, such that a large strain is applied to the cube.

  5. Create a material section and apply it to the cube.

  6. Add a material to the cube (in Calculix, name it XTAL)
    1. Set the number of dependent variables (*DEPVAR) equal to the number of grains times 70.
    2. Set the material to be a user material with two mechanical constants: #1 = 1; #2 = 1.
    3. Do not forget to apply this material to the Section
An example Calculix input file can be found here. Make sure you save the file with a *.inp extension NOT a *.txt extension.

In this file, the displacement can be controlled from the following lines:
*Boundary, Amplitude=Stretch
Ndisp, 3,3, 0.75

Change 3,3 to control the direction of displacement, where 1 = x, 2 = y, 3 = z. Change 0.75 to control the magnitude and direction (+/-) of the displacement.

Step 2

Set up the CPFEM input files.

In the umat_xtal.f file, edit the line
data  filePath
&    /'/cavs/cmd/data1/users/qma/abaqus_xtalplas/oneelement/'/
to be the directory where your crystal plasticity inputs are stored.

(FOR CALCULIX) Comment out the line
include 'ABA_PARAM.INC'
by adding a "c" to the beginning of the line.

Edit the texture.txti file to include only a single crystal.
  • Change the first line to 1
  • Leave the second line!
  • Leave only one of the lines containing the Euler angles for the crystal orientations.
In the test.xtali input file, change the second number on the first line to 1, for the number of grains.

Make sure the line with                                  / single crystal input file
is updated to reflect the crystal structure of your material.

Step 3

Change the single crystal input file ( or to match that of your material The following lines need to be edited with the single crystal elastic constants of your material:

108.2e3  61.3e3  28.5e3                 / c11(c1), c12(c2), c44(c3) / # These numbers should match c11, c12, and c44 for your material

Then, for each slip system in use, edit these lines with the values calculated from Task 2, or Part 1 of this task.

2.e-5                                / bdrag / # This should match the drag coefficient obtained in Task 2
35.5  39.5  1.85  0.0-4  5.0e10    / h0, tausi, taus0, xms, gamss0 / # The first three should match the values obtained in Part 1

Step 4

Run the simulation

The finite element simulation can be run locally, as it is a very small simulation.

For Abaqus, run the job with
abaqus job=<YOUR_INPUTFILE_NAME> user=umat_xtal.f

If you wish to increase the number of CPUs to process the job faster, insert "cpus=12" at the end of the above command. The max number of CPUs raptor allows a single user is 12.

Similarly, for Calculix, run the job with

For both, make sure to enter the job name without the ".inp" extension.

Step 5

Access the results
  • ABAQUS simulation output is stored in an output database file with extension ".odb". ODB files can be visualized and post processed in ABAQUS CAE or ABAQUS VIEWER.

  • Calculix output can be found in the ".dat" files. You can use this script to convert it to an element averaged stress-strain.

Task Assignment

  1. Plot the single crystal stress-strain curves from the single element simulation for tension, compression, and torsion (simple shear).

Room for Improvement

As with the previous tasks, improve the tutorial(s) by adding/modifying the ICME website for:
  • Dislocation dynamics (MDDP)
  • Crystal Plasticity