ICME 2017 HW3

From EVOCD
(Difference between revisions)
Jump to: navigation, search
(Objectives)
(Group 1 contribution: Fixed the numbering)
 
(25 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
=Overview=
 
=Overview=
In this homework, we will bridge information from the [[:Category:Microscale| microscale]] to the [[:Category:Mesoscale| 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:
+
In this homework, we will bridge information from the [[:Category:Microscale| microscale]] to the [[:Category:Mesoscale| 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)
 
* Dislocation Dynamics (DD) using Multiscale Dislocation Dynamics Plasticity (MDDP)
 
* Crystal Plasticity (CPFEM) implemented as a user material routine in <u>[[Code: ABAQUS FEM | ABAQUS]]</u> or <u>[[Code: CALCULIX | Calculix]]</u>
 
* Crystal Plasticity (CPFEM) implemented as a user material routine in <u>[[Code: ABAQUS FEM | ABAQUS]]</u> or <u>[[Code: CALCULIX | Calculix]]</u>
Line 15: Line 15:
  
 
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.
 
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=
 
=Part 1 - Dislocation Dynamics Virtual Experiment=
  
 
==Objectives==
 
==Objectives==
 
Using Equation 9.9 from the ICME textbook, determine a set of hardening constants (Kappa_s, H_0, Kappa_0) for the Voce equation from each of the work hardening estimates determined in part 3a.
 
 
  
 
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.
 
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.
Line 29: Line 24:
 
==Environment Setup==
 
==Environment Setup==
  
Setup MDDP as in HW2
+
The setup for MDDP is the same as in the [[ICME 2017 HW2|previous homework]].
  
 
==Dislocation Forest Hardening==
 
==Dislocation Forest Hardening==
  
Same as previous HW, but generate a DDinput file with multiple FRS.
+
The steps to run and post-process the results from MDDP will be the same as in the [[ICME 2017 HW2|previous homework]]. 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 <code>data</code> and <code>DDinput</code> files in the "<code>Examples/MFRS</code>" 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 <code>DDinput</code> file. Modify the fourth value in the second section:
 +
<pre>
 +
2: timenow totalstrn stress deltt  dbt  load_type
 +
  0.00000000      0.00000000      0.00000000      1.0  1.00000001E-07          0
 +
</pre>
 +
 
 +
You will need to make one additional change to your <code>data</code> file, to change the kind of boundaries in the simulations cell. Change the relevant line to:
 +
<pre>
 +
4: npolorder,  ncell, ifree (0,1 or 3), nsface1(3),    nsface2(3)
 +
    1            0          1        1 1 1      1 1 1
 +
</pre>
 +
 
  
 
===Homework Assignment===
 
===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?
 
: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 Equation 9.9 in ICME textbook.
+
:2. Fit dislocation density results to the Voce Hardening Law (Equation 9.9 in ICME textbook).
 
:3. Report on your results
 
:3. Report on your results
  
Line 48: Line 60:
  
 
==Environment Setup==
 
==Environment Setup==
 +
This part of the assignment can be completed in either <u>[[Code: ABAQUS FEM | ABAQUS]]</u> on a Mississippi State computer, or any other fully licensed Abaqus, or on <u>[[Code: CALCULIX | Calculix]]</u>, a free, open-source FEA solver. You can find a tutorial for the ABAQUS CPFEM setup and use [https://www.youtube.com/watch?v=_0uk_mdyMZY&t=1s here].
  
==Crystal Plasticity==
+
For either software, you will need all of the input files for CPFEM in an aluminum material found[[Code: ABAQUS CPFEM | here]]. If you are using a bcc material, save <u>[[Media:Bcc.txt|this]]</u> file as <code>bcc.sx</code> and use it instead of <code>fcc.sx</code>.
 +
 
 +
For Calculix, also download the additional umat files and compile as described [[CPFEM for Calculix|here]].
 +
 
 +
==Single Crystal CPFEM Simulation==
 
===Step 1===
 
===Step 1===
* Navigate to [[Code: ABAQUS CPFEM|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.
+
Create the input file.
 +
 
 +
''(Hint: Calculix and Abaqus can take the same input files.)''
 +
 
 +
# Create a cube
 +
# Constrain the cube so that all rigid body displacements and rotations are constrained.
 +
## Constrain one corner of the cube to be fixed in all directions
 +
## 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.
 +
## 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.
 +
# Mesh the cube such that only a single element is created.
 +
# Add a displacement to the face opposite of the constrained face, such that a large strain is applied to the cube.
 +
# Create a material section and apply it to the cube.
 +
# Add a material to the cube (in Calculix, name it XTAL)
 +
## Set the number of dependent variables (<code>*DEPVAR</code>) equal to the number of grains times 70.
 +
## Set the material to be a user material with two mechanical constants: #1 = 1; #2 = 1.
 +
## Do not forget to apply this material to the Section
 +
 
 +
An example Calculix input file can be found [[Media:Single-element.inp.txt|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:
 +
<pre>
 +
*Boundary, Amplitude=Stretch
 +
Ndisp, 3,3, 0.75
 +
</pre>
 +
 
 +
Change <code>3,3</code> to control the direction of displacement, where <code>1 = x, 2 = y, 3 = z</code>. Change <code>0.75</code> to control the magnitude and direction (+/-) of the displacement.
  
 
===Step 2===
 
===Step 2===
* In the repository, download the single element input file "tension.inp" for ABAQUS standard. Save the file to the same directory.
+
Set up the CPFEM input files.
 +
 
 +
*In the umat_xtal.f file, edit the line <pre>data  filePath&#10;&    /'/cavs/cmd/data1/users/qma/abaqus_xtalplas/oneelement/'/</pre> to be the directory where your crystal plasticity inputs are stored.
 +
**(FOR CALCULIX) Comment out the line <pre>include 'ABA_PARAM.INC'</pre> 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 <pre>fcc.sx                                  / single crystal input file</pre> is updated to reflect the crystal structure of your material.
  
 
===Step 3===
 
===Step 3===
* Set up inputs for a single grain simulation
+
Change the single crystal input file (fcc.sx or bcc.sx) to match that of your material
** In the UMAT file the following line needs to be edited <pre>data  filePath&#10;&    /'/cavs/cmd/data1/users/qma/abaqus_xtalplas/oneelement/'/</pre>
+
The following lines need to be edited with the single crystal elastic constants of your material:
** Replace the file path with the path to the directory that all the crystal plasticity files are saved in.
+
<pre>
**In the texture input file, the number of grains needs to be changed<pre> 500&#10;0    0&#10;101.98      145.03      249.44&#10;131.73      86.26      229.29&#10;13.58      153.68      314.40&#10;88.98      124.12      115.16&#10;132.81      105.72      180.69&#10;238.51      61.10      158.50&#10;346.98      88.58      325.61&#10;82.38      144.74      207.65&#10;329.83      45.23      169.92&#10;...&#10;...</pre>
+
108.2e3  61.3e3  28.5e3                / c11(c1), c12(c2), c44(c3) / # These numbers should match c11, c12, and c44 for your material
** The top number (number of grains) needs to be changed to 1 (for 1 grain)
+
</pre>
** LEAVE THE SECOND LINE IN PLACE
+
**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<pre>1    500                                / crystalID (1:FCC, 2:BCC, 3:HCP), numgrn/&#10;fcc.sx                                  / single crystal input file&#10;&#10;1                                  / ODF code (fODFCode) /&#10;20                                      / multiples of inc to output texture (fODFOutInc) /&#10;texture                                / filename for I/O texture /&#10;...&#10;...</pre>
+
** 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<pre>** MATERIALS&#10;**&#10;*Material, name=Material-1&#10;*Depvar&#10;    35000,&#10;*User Material, constants=2&#10;1.,1.</pre>
+
** 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===
+
Then, for each slip system in use, edit these lines with the values calculated from [[ICME 2017 HW2|Homework 2]], or Part 1 of this homework.
* Change the FCC data to match that of nickel
+
<pre>
** In the fcc.sx file the following lines need to be edited
+
2.e-5                                / bdrag / # This should match the drag coefficient obtained in Homework 2
<pre>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
 
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
.
 
.
 
 
</pre>
 
</pre>
  
==Running the Calculation==
+
===Step 4===
* The finite element simulation can be run either on Raptor or locally (very short simulation)
+
Run the simulation
  
===Change the permissions===
+
The finite element simulation can be run locally, as it is a very small simulation.
* As with previous assignments, to avoid errors, open permission on all the files with:<pre>chmod 755 *</pre>
+
  
===Run on Raptor===
+
For Abaqus, run the job with <pre>abaqus job=<YOUR_INPUTFILE_NAME> user=umat_xtal.f</pre>
* Enter the following software setup command in a terminal<pre>swsetup abaqus</pre>
+
* Use a PBS script to submit to Raptor or enter this command into a local terminal:<pre> abaqus job=tension user=umat_xtal.f</pre>
+
  
===Run Locally===
+
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.
'''Abaqus must be setup to run with Intel Fortran libraries for this method to work!'''
+
 
* Open Abaqus CAE and click Open Database
+
Similarly, for Calculix, run the job with <pre>ccx <YOUR_INPUTFILE_NAME></pre>
* 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 both, make sure to enter the job name without the ".inp" extension.
* 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
+
===Step 5===
* 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)
+
Access the results
* 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.
 +
* Calculix output can be found in the ".dat" files. You can use [[Media:Ccx reader.txt|this]] script to convert it to an element averaged stress-strain.
 +
 
 +
===Homework Assignment===
 +
:1. Plot the single crystal stress-strain curves from the single element simulation for tension, compression, and torsion (simple shear).
  
==Output==
 
* 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=
 
=Room for Improvement=

Latest revision as of 18:30, 19 April 2017

< Back to ICME 2017 Course Overview

Contents

[edit] Overview

In this homework, 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 homework.

[edit] Part 1 - Dislocation Dynamics Virtual Experiment

[edit] Objectives

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.

[edit] Environment Setup

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

[edit] 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 (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


[edit] 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

[edit] Part 2 - Upscale Dislocation Forest Hardening to Crystal Plasticity

[edit] Objectives

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

[edit] 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 bcc.sx and use it instead of fcc.sx.

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

[edit] Single Crystal CPFEM Simulation

[edit] 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.

[edit] 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
      fcc.sx                                  / single crystal input file
      is updated to reflect the crystal structure of your material.

[edit] Step 3

Change the single crystal input file (fcc.sx or bcc.sx) 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 Homework 2, or Part 1 of this homework.

2.e-5                                / bdrag / # This should match the drag coefficient obtained in Homework 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

[edit] 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
ccx <YOUR_INPUTFILE_NAME>

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

[edit] 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.

[edit] Homework Assignment

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


[edit] 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
Namespaces

Variants
Actions
home
Materials
Material Models
Design
Resources
Projects
Education
Toolbox