ICME 2017 HW3

Revision as of 12:31, 27 March 2017 by Huddleston (Talk | contribs)

Jump to: navigation, search

< Back to ICME 2017 Course Overview



In this homework, we will bridge information from the microscale to the mesoscale. You will 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 homework.

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 homework.

Dislocation Forest Hardening

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

Homework 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.

For either software, you will need the input files for CPFEM in an aluminum material found here. If you are using a bcc material, you will also need the bcc slip system file here.

Crystal Plasticity

Step 1

  • Navigate to this page and locate the section for crystal plasticity finite element method (CPFEM) for aluminum.
  • Copy the all the files listed to a new directory.

Step 2

  • In the repository, download the single element input file "tension.inp" for ABAQUS standard. Save the file to the same directory.

Step 3

  • Set up inputs for a single grain simulation
    • In the UMAT file the following line needs to be edited
      data  filePath
      &    /'/cavs/cmd/data1/users/qma/abaqus_xtalplas/oneelement/'/
    • Replace the file path with the path to the directory that all the crystal plasticity files are saved in.
    • In the texture input file, the number of grains needs to be changed
      0    0
      101.98      145.03      249.44
      131.73       86.26      229.29
      13.58      153.68      314.40
      88.98      124.12      115.16
      132.81      105.72      180.69
      238.51       61.10      158.50
      346.98       88.58      325.61
      82.38      144.74      207.65
      329.83       45.23      169.92
    • The top number (number of grains) needs to be changed to 1 (for 1 grain)
    • Remove all but one set of Euler angles (for the one grain) and set the last number (seed number) to any value greater than the number of grains.
    • Lastly, in the test.xtali input file
      1    500                                 / crystalID (1:FCC, 2:BCC, 3:HCP), numgrn/
      fcc.sx                                  / single crystal input file
      1                                   / ODF code (fODFCode) /
      20                                      / multiples of inc to output texture (fODFOutInc) /
      texture                                 / filename for I/O texture /
    • The second number in the top most line needs to be changed to the number of grains. If when the texture file was changed (see above), it was given a new name, that new name needs to in the last line shown in place of "texture".
  • If you are running the calculation on Raptor
    • In the ABAQUS input file the material definition needs to be edited
      ** MATERIALS
      *Material, name=Material-1
      *User Material, constants=2
    • Change the number of dependent variable to NUMBER_OF_GRAINS * 70
      • For a single grain Depvar: 1*70=70. For 200 grains Depvar: 200*70=14000

Step 4

  • Change the FCC data to match that of nickel
    • In the fcc.sx file the following lines need to be edited
108.2e3  61.3e3  28.5e3                 / c11(c1), c12(c2), c44(c3) / # These numbers should match c11, c12, and c44 for nickel
2.e-5                                / bdrag / # This should match the drag coefficient obtained in HW2
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

Running the Calculation

  • The finite element simulation can be run either on Raptor or locally (very short simulation)

Change the permissions

  • As with previous assignments, to avoid errors, open permission on all the files with:
    chmod 755 *

Run on Raptor

  • Enter the following software setup command in a terminal
    swsetup abaqus
  • Use a PBS script to submit to Raptor or enter this command into a local terminal:
     abaqus job=tension user=umat_xtal.f

Run Locally

Abaqus must be setup to run with Intel Fortran libraries for this method to work!

  • Open Abaqus CAE and click Open Database
  • Navigate to the cpfem_decks folder and open oneelement.cae -- You will be prompted to covert the database; click Yes
  • For the single grain case a new material will need to be made that has a Depvar = 70 and a User Material with Mechanical Constants 1 = 1, 2 = 1
  • For the multiple grain cases a new material will need to be made that has a Depvar = (70*# of grains) and a User Material with Mechanical Constants 1 = 1, 2 = 1
  • Do not forget to apply this material to the Section
  • Under jobs there are four (4) jobs that have already been created -- To run any of these you will need to edit the job; Under the General tab point the Scratch Directory to a temp folder and the User subroutine file to umat_xtal.for (BE SURE THAT THE UMAT EXTENSION IS .for)
  • You are now able to submit the job and work with the data to produce a stress-strain curve


  • 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.

Room for Improvement

As with the previous homeworks, improve the tutorial(s) by adding/modifying the ICME website for:

1. Dislocation dynamics (MDDP)
2. Crystal Plasticity
Personal tools

Material Models