MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas...

34
MODULE 3: DISLOCATION DYNAMICS Principles and Theory

Transcript of MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas...

Page 1: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

MODULE 3: DISLOCATION DYNAMICS

Principles and Theory

Page 2: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

I. Introduction

2

Page 3: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

http://www.lbl.gov/CS/html/exascale4energy/nuclear.html

You are here

3

Page 4: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

What is dislocation dynamics?A (predictive?) guide to the evolution of materials microstructureAn experiment on a computerA simulation of the “classical” dynamics of dislocations

4http://llnl.gov http://dierk-raabe.com

Page 5: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Why is it useful?By simulating dislocation motion, interaction, and growth, we can gain mesoscale insight into dislocation structure

Advanced experimental techniques (TEM, high-energy X-ray diffraction) can resolve dislocation structure, but not dynamics

We can predict and understand dislocation behavior and compare / interpret experimental observations

Total control of dislocation interactions and initial conditions

Nanomechanical measurement approaches scale of DD

5

Page 6: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

What is it used for?Bridge from atomistic to mesoscale- dislocation behavior and interaction scale up

Understanding strain hardening- dislocation density growth with strain &

importance of interaction mechanisms

Examining small-scale plasticity- micro- and nano pillars show unusual

plastic behavior due to dislocations

Parameterizing larger-scale models- dislocation-density-based crystal plasticity

6http://llnl.gov http://icams.de

Page 7: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Dislocations and plastic deformation 7

Peach-Kohler force Orowan equation

applied stress plastic strain

force on dislocations dislocation motion

dislocation mobility Peierls stress

dislocation/obstacle interaction

Page 8: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

II. History

8

Page 9: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

First DDD simulationsRobert Amodeo and Nasr Ghoniem (1997-1998) start direct numerical simulations of interacting dislocations to understand cell formationRange of efforts worldwide:

Cai/Bulatov/ArsenlisDevincreGhoniem/Al Ezab...

In addition, there are other approaches that attempt to model dislocations as entities:

Phase-field methodsLevel-set methods

All of the discrete dislocation dynamics methods benefit heavily from parallelization

9

Page 10: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

III. Basic Principles

10

Page 11: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

DDD simulates dislocation motion using overdamped dynamics: similar to MD, but with a mobility law not mass.

Running a simulation is like cooking - just follow the recipe!

Three ingredients:

1. An initial system configuration: dislocations2. Interaction between dislocations: Peach-Kohler3. Evolving dislocation geometry: mobility + remeshing

The fundamental idea

11

Page 12: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Represent dislocation curves

Unlike MD, dislocations areone-dimensional objects: hence,discretizationDifferent approaches:

Dislocation as line segmentsDislocation as cubic splineDislocation as connected arcsDislocation as “rastered” pure edge and screw segments

Dislocation intersections have to be considered as wellTypically use Frank-Read or one-armed sources

Ingredient 1: Initial configuration

12

A short course on DDLab and ParaDiS

Wei Cai*, Jie Deng** and Keonwook Kang* *Department of Mechanical Engineering, Stanford University, Stanford, CA, 94305-4040

**Department of Mechanical Engineering, Florida State University, Tallahassee, FL, 32310

May 23, 2005 1 Introduction of DDLab and ParaDiS DDLab and ParaDiS are dislocation dynamics simulation codes. They use the same algorithm for the calculation of node force, node velocity and topological changes, etc. The difference between them is that DDLab is a MATLAB code which is mainly used in simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable for large systems. DDLab was initially written as a development and debug tool for ParaDiS. The purpose of this course is to help users understand the basic theory behind the code, how to set up the simulation and how to run the code. The users may then become better prepared for more complex cases in the future. This course consists of 10 sections, section 2 describes how to represent a dislocation loop in the code, section 3 shows the flow chart of the code. Sections 4 and 5 discuss how to calculate the node force and the node velocity, and section 6 describes the topological changes. Sections 7 to 10 give examples of how to use DDLab and ParaDiS to simulate FR source and junction. 2 How to represent a dislocation structure

Page 13: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Ingredient 1: Frank-Read source

13www.wikipedia.org

Page 14: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Ingredient 2: Interaction forcesThe net force acting on each dislocation in the system is a result of its interactions with all other dislocations + applied stress

The underlying physical form is well-established: Peach-Kohler force

14

Page 15: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

• Dislocation line: separates “slipped” from “unslipped” parts of crystal • Sweeping out area displaces top part of crystal • Force on top area times displacement = −work done on dislocation

Dislocation motion under stress 15

slip plane

t

b

dr

dt

dW = �(force) · (displacement)

= �(stress · area) · (displacement)

= (� · da) · b = da · � · b= (dr ⇥ dt) · � · b= �(dt ⇥ dr) · (� · b)

= �h(� · b) ⇥ dt

i· dr

= �dF · drdF = (� · b) ⇥ dt

Force/length on a dislocation

Page 16: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

• Force per length (“Peach-Kohler force”) • Always perpendicular to dislocation line • Force in slip plane: glide force • Force normal to slip plane: climb force (edge) or cross-slip (screw)

Dislocation motion under stress 16

b

n

v=b×n

t = v cos θ + b sin θ

θ

dF = (� · b) ⇥ dt

=

0BBBBBB@

�vv �vb �vn�vb �bb �bn�vn �bn �nn

1CCCCCCA ·0BBBBBB@

0

b0

1CCCCCCA ⇥0BBBBBB@

cos✓sin✓

0

1CCCCCCA dt

=

0BBBBBB@

�bvb�bbb�bnb

1CCCCCCA ⇥0BBBBBB@

cos✓sin✓

0

1CCCCCCA dt

=

��������

v b n�bvb �bbb �bnbcos✓ sin✓ 0

��������dt

= �bnb(�v sin✓ + b cos✓)

+ �bvb sin✓n � �bbb cos✓n

glide force

cross-slip force

climb force

Page 17: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

• Force per length (“Peach-Kohler force”) • Always perpendicular to dislocation line • Force in slip plane: glide force • Force normal to slip plane: climb force (edge) or cross-slip (screw)

Force on an edge and screw dislocation 17

b

n

v=b×n

t = v cos θ + b sin θ

θ

glide force

cross-slip force

climb force

dF = �bnb(�v sin✓ + b cos✓)

+ �bvb sin✓n � �bbb cos✓ndF

edge

= �bnbb � �bbbndF

screw

= ��bnbv + �bvbn

Page 18: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

To use, we need to need to be able to calculate stress at each point, and translate force on a dislocation segment onto the dislocation “degrees of freedom” (nodes)For elastically isotropic materials (with a core “cutoff ”)

Stress and force

18

�↵�(x) =µ

8⇡

I

C

@i

@p

@p

R

a

hb

m

✏im↵dx

0� + b

m

✏im�dx

0↵

i

4⇡(1 � ⌫)

I

C

b

m

✏ink

h@

i

@↵@�Ra

� �↵�@i

@p

@p

R

a

idx

0k

R = kx � x

0kRa =

pkx � x

0k2 + a2

Page 19: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

� =b

2⇡r �xz

= �zx

= � Gb

2⇡r

sin✓

�yz

= �zy

=Gb

2⇡r

cos✓�z✓ = �✓z =Gb2⇡r

Screw dislocation: stress field 19

Page 20: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Edge dislocation: stress field 20

Page 21: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

�rr = �✓✓ =

� Gb2⇡(1 � ⌫)

sin✓r

�r✓ =Gb

2⇡(1 � ⌫)cos✓

r

Edge dislocation: stress field 21

Page 22: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

�rr = �✓✓ =

� Gb2⇡(1 � ⌫)

sin✓r

�r✓ =Gb

2⇡(1 � ⌫)cos✓

r

xx

�xy

�xy

�yy

!=

cos✓ � sin✓sin✓ cos✓

! �

rr

�r✓

�r✓ �✓✓

! cos✓ sin✓� sin✓ cos✓

!

=Gb

2⇡(1 � ⌫)r

cos✓ � sin✓sin✓ cos✓

! � sin✓ cos✓cos✓ � sin✓

! cos✓ sin✓� sin✓ cos✓

!

=Gb

2⇡(1 � ⌫)r

cos✓ � sin✓sin✓ cos✓

! �2 sin✓ cos✓ � sin

2 ✓ + cos

2 ✓1 0

!

=Gb

2⇡(1 � ⌫)r

� sin✓(1 + cos

2 ✓) cos✓ cos 2✓cos✓ cos 2✓ � sin✓ cos 2✓

!

=Gb

2⇡(1 � ⌫)r

� sin✓(2 + cos 2✓) cos✓ cos 2✓

cos✓ cos 2✓ � sin✓ cos 2✓

!

✓cart,polar

=

cos✓ � sin✓sin✓ cos✓

!

Edge dislocation: stress field 22

Page 23: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

−yy

+yy+xy

−xy

+xx+yy

−xx−yy+xy

−xy

−xx−yy−xy

+xx

−xx+yy−xy

+xx+yy+xy

−yy+xy

+xx

−xx

Edge dislocation: stress field 23

Page 24: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

−yy

+yy+xy

−xy

+xx+yy

−xx−yy+xy

−xy

−xx−yy−xy

+xx

−xx+yy−xy

+xx+yy+xy

−yy+xy

+xx

−xx

�xx

= � Gb

2⇡r(1 � ⌫) sin✓(2 + cos 2✓)

�yy

=Gb

2⇡r(1 � ⌫) sin✓ cos 2✓

�zz

= ⌫(�xx

+ �yy

)

⌧xy

=Gb

2⇡r(1 � ⌫) cos✓ cos 2✓

Edge dislocation: stress field 24

Page 25: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

To use, we need to need to be able to calculate stress at each point, and translate force on a dislocation segment onto the dislocation “degrees of freedom” (nodes)For elastically isotropic materials (with a core “cutoff ”)

Stress and force

25

�↵�(x) =µ

8⇡

I

C

@i

@p

@p

R

a

hb

m

✏im↵dx

0� + b

m

✏im�dx

0↵

i

4⇡(1 � ⌫)

I

C

b

m

✏ink

h@

i

@↵@�Ra

� �↵�@i

@p

@p

R

a

idx

0k

to node i. Suppose x lies on segment ij, then

(8) i. e. , Ni(x) goes linearly from zero at node j to 1 at node i, as illustrated in Figure 2. Based on shape function and PK force, the elastic force on node i is:

(9) From Eq.(9) we know that the nodal force are weighted averages of the PK force along the segments connected to the node.

Figure 2: The shape function N2(x) for node 2 varies linearly from 1 at node 2 to 0 at its two neighbors: node 1 and node 3. Notice that the PK force is proportional to the local stress field, which is the superposition of stress fields from all dislocation segments in the system. In both DDLab and ParaDiS, we use the second approach, Eq.(9), to compute nodal force. The detailed description of nodal force can be found in Ref. 1.

Q: What does integral along C mean if it is not a loop? A: If C is not a loop, then the integral along C is evaluated over a set of directed paths that traverse the entire network visiting every point on it exactly once. Q: Do we need to compute stress field along the entire line C to obtain the force on one node from Eq.(9)? A: No. Because the shape function is only nonzero at the segments connected to the node, the integrand vanishes on the segments which do not connect to the node and do not need to be evaluated.

R = kx � x

0kRa =

pkx � x

0k2 + a2

For line segments, map force to nodes by integrating a linear “shape function” along connected segments

Page 26: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Ingredient 3: Evolution of dislocationsInitial dislocation geometry + forces on dislocation:How to evolve? F=ma?

Dislocations aren't “objects” with mass; instead, they experience an overdamped dynamics where velocity is proportional to force: mobility.

26

Page 27: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

LiF crystal

Fe-3.25%Si crystal

Dislocation velocity: thermal activation 27

Page 28: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Ingredient 3: Evolution of dislocationsInitial dislocation geometry + forces on dislocation:How to evolve? F=ma?

Dislocations aren't “objects” with mass; instead, they experience an overdamped dynamics where velocity is proportional to force: mobility.

Mobility can be anisotropicIn plane: edge dislocations vs. screw dislocationsOut-of-plane: cross-slip (screw) vs. climb (edge)

28

Page 29: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Ingredient 3: Evolution of dislocationsGiven velocity on nodes, integrate nodes forward in time

Euler forward / backward schemes

Newton-Krylov, other sophisticated integratorsRemeshing:

Too few nodes to represent the curvature?Introduce new nodes (split)Too many nodes in a small area of space?Eliminate extra nodes (merge)

Dislocation annihilation reactions: elimination of dislocation segments with opposite Burgers vector

29

Forward: x(t + �t) = x(t) + �t x(t)Backward: x(t + �t) = x(t) + �t x(t + �t)

Page 30: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Dislocation dynamics flowchart

30

calculate force on each node

calculate velocity of each node

calculate new position of each node

split / merge nodes

Page 31: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

IV. Advanced Topics

31

Page 32: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

Boundary conditionsInteraction between dislocations (calculated via stress) depends on the boundary conditions:

Most simulations assume periodic boundary conditionsSimulations of finite systems involves image stresses

Interaction calculation can be accelerated with Fast Multipole Methods (similar to charged interactions)

32

Page 33: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

V. Dislocation Dynamics Packages

33

Page 34: MODULE 3: DISLOCATION DYNAMICS · simulations with a small number of dislocation segments, whereas ParaDiS is a C code which can perform well on massively parallel computers and suitable

DDD software

34

ParaDiSParaDiShttp://paradis.stanford.edu/