download as script · edit page

Plastic deformation in a crystal is carried by dislocations moving through its regular atomic lattice. A dislocation is a line defect rather than a microscopic displacement by itself.

Two vectors describe its geometry. The Burgers vector \(\mathbf b\) gives the lattice translation accumulated around the defect. The line vector \(\mathbf l\) gives the direction of the defect line.

MTEX represents a pure edge or screw geometry with a dislocationSystem. This page constructs both types and then prepares the systems used to estimate geometrically necessary dislocations from an EBSD map.

import matplotlib.pyplot as plt
import numpy as np
from mtex import *

Edge dislocations

In a pure edge dislocation, the Burgers vector is perpendicular to the line vector. Start with a cubic crystal frame and two crystal directions.

cs = crystalFrame('432')
bEdge = Miller(1, 1, 0, cs, 'uvw')
bEdge
vector3d (432)
  u  v  w
  1  1  0
lEdge = Miller(1, -1, -2, cs, 'uvw')
lEdge
vector3d (432)
  u   v   w
  1  -1  -2

The constructor checks that the two vectors are perpendicular or parallel. A general mixed dislocation cannot be entered with this constructor.

dSEdge = dislocationSystem(bEdge, lEdge)
dSEdge
dislocationSystem
  symmetry         : 432
  edge dislocations: 1
  Burgers vector  line vector  energy  length
       [1  1  0]  [1  -1  -2]       2    1.41

The grey arrow is the line vector, along which the defect runs. The red arrow is the Burgers vector, which gives the lattice shift across it.

arrow3d(1.3 * normalize(vector3d(lEdge)), faceColor=[0.45, 0.45, 0.45])
hold(True)
arrow3d(0.9 * normalize(vector3d(bEdge)), faceColor='red')
plt.axis('off')
hold(False)

Notice that the two arrows meet at a right angle. This orthogonality is the defining geometric feature of the edge system.

Screw dislocations

In a pure screw dislocation, the Burgers vector and line vector are parallel. The same Burgers vector can therefore serve as both inputs.

bScrew = Miller(1, 1, 0, cs, 'uvw')
bScrew
vector3d (432)
  u  v  w
  1  1  0
lScrew = Miller(1, 1, 0, cs, 'uvw')
lScrew
vector3d (432)
  u  v  w
  1  1  0
dSScrew = dislocationSystem(bScrew, lScrew)
dSScrew
dislocationSystem
  symmetry          : 432
  screw dislocations: 1
  Burgers vector  energy  length
       [1  1  0]     1.4    1.41

Draw the line vector longer so that both arrows remain visible when they lie on top of one another.

arrow3d(1.3 * normalize(vector3d(lScrew)), faceColor=[0.45, 0.45, 0.45])
hold(True)
arrow3d(0.9 * normalize(vector3d(bScrew)), faceColor='red')
plt.axis('off')
hold(False)

The coincident arrows show that the lattice shift is along the direction in which the defect runs. This parallelism distinguishes the screw system.

Build systems from slip systems

A slip system supplies a Burgers vector and a slip-plane normal. MTEX converts each slip system into an edge system with a line direction in the slip plane, and also adds the distinct screw systems.

Here the 12 geometrically distinct FCC slip systems produce 12 edge and 6 screw systems. The 'antipodal' option identifies opposite shear senses before the conversion.

sSFcc = symmetrise(slipSystem.fcc(cs), antipodal=True)
dSFcc = dislocationSystem(sSFcc)
[sum(dSFcc.isEdge), sum(dSFcc.isScrew)]
[12, 6]

The named constructor performs the corresponding conversion for the standard BCC family. It is a shortcut for constructing and symmetrising slipSystem.bcc(cs), not for the FCC lines above.

dSBcc = dislocationSystem.bcc(cs)
[sum(dSBcc.isEdge), sum(dSBcc.isScrew)]
[48, 4]

MTEX uses one half of the cubic slip direction as the Burgers vector during this conversion. A hexagonal slip direction is the Burgers vector itself: the direction \([11\bar{2}0]\) of MTEX has length \(a\). For other lattices the physical scale is ambiguous and the conversion is refused.

The dislocation tensor

A dislocation system contributes the dyadic tensor \(\mathbf b\otimes\hat{\mathbf l}\), where the hat denotes a unit line vector. This tensor is sometimes described informally as a deformation matrix. In MTEX it is a basis tensor for the dislocation-density tensor used on the next page.

dTBcc = dSBcc.tensor()
dTBcc
dislocationDensityTensor (432)
  unit: au
  rank: 2 (3 × 3)
  size: 52

The tensor has the same length unit as the unit-cell axes because the line vector is normalized. MTEX labels this unit au; for a lattice specified in Angstrom, its entries are therefore in Angstrom.

The Burgers-vector norm sets the scale of each basis tensor. For the unit cubic cell used here, a BCC \(\langle111\rangle/2\) Burgers vector has length \(\sqrt{3}/2\).

a = cs.aAxis.norm()
np.array([dSBcc[0].b.norm()[0], dSBcc[-1].b.norm()[0], np.sqrt(3) / 2 * a])
array([0.866, 0.866, 0.866])

The earlier statement that both BCC and FCC Burgers vectors have length \(\sqrt{3}a/2\) is not generally correct. An FCC \(\langle110\rangle/2\) Burgers vector has length \(a/\sqrt{2}\), as this check shows.

np.array([dSFcc[0].b.norm()[0], a / np.sqrt(2)])
array([0.7071, 0.7071])

Set relative line energies

The property u stores the relative line energy used when MTEX chooses a non-negative combination of systems. By default it is \(b^2\) for an edge and \(0.7\,b^2\) for a screw system, in the squared length unit of the unit cell.

Hull and Bacon give the elastic line energies

\[U_{\mathrm{screw}} = \frac{G b^2}{4\pi} \ln\left(\frac{R}{r_0}\right),\] \[U_{\mathrm{edge}} = \frac{1}{1-\nu} U_{\mathrm{screw}},\]

where \(G\) is the shear modulus, \(b\) is the Burgers-vector length, \(\nu\) is Poisson’s ratio, \(R\) is the outer cut-off radius, and \(r_0\) is the dislocation-core radius.

The default sets the factors all systems share to one and takes \(\nu=0.3\). Relative to the shortest Burgers vector \(b_{\min}\) the line energies are \((b/b_{\min})^2\) for an edge system and \((1-\nu)\,(b/b_{\min})^2\) for a screw system, which keeps the weights independent of the length unit and lets you choose \(\nu\).

nu = 0.3
dSBcc.u = (dSBcc.b.norm() / dSBcc.b.norm().min()) ** 2 * (1 - nu * dSBcc.isScrew)
[dSBcc.u[0], dSBcc.u[-1]]
[1.0000000000000004, 0.7]

All BCC Burgers vectors have the same length, which leaves 1 for the edge and \(1-\nu\) for the screw systems. Where families with different Burgers vectors act together the length matters: the \(\langle c+a\rangle\) systems of titanium are about 3.5 times as costly as its \(\langle a\rangle\) systems.

There is no single accepted way to set these weights. The shear modulus and the cut-off radii may differ between families, and a model may account for them. Choose u for the material and model being compared rather than treating an MTEX default as a measured energy.

References

  • D. Hull and D. J. Bacon, Introduction to Dislocations, fifth edition, Butterworth-Heinemann, 2011, derives the edge and screw line energies used to motivate the relative weights above.

Next

Continue with Geometrically Necessary Dislocations to turn an EBSD orientation gradient into densities of the systems defined here.

Citing this page. This page is part of the documentation of MTEX, a free and open source MATLAB toolbox for analyzing and modeling crystallographic textures. It was written by The MTEX Developers and is published at https://mtex-toolbox.github.io/DislocationSystems_py.html. If you use MTEX, or reuse text or figures from this page, in your research, please cite

F. Bachmann, R. Hielscher, H. Schaeben: Texture Analysis with MTEX - Free and Open Source Software Toolbox, Solid State Phenomena 160 (2010), 63-68. 10.4028/www.scientific.net/SSP.160.63

BibTeX
@article{bachmann2010mtex,
  author  = {F. Bachmann and R. Hielscher and H. Schaeben},
  title   = {Texture Analysis with MTEX - Free and Open Source Software Toolbox},
  journal = {Solid State Phenomena},
  volume  = {160},
  pages   = {63-68},
  year    = {2010},
  doi     = {10.4028/www.scientific.net/SSP.160.63},
  url     = {https://doi.org/10.4028/www.scientific.net/SSP.160.63}
}

Other papers describing specific MTEX methods are listed under Publications — please cite the one that best fits your application. The MTEX source code is licensed under the GNU General Public License v2.0; the text and figures of this documentation are licensed under CC BY 4.0, which permits reuse — including by automated systems — provided The MTEX Developers and this page are credited.