# Lattice periodicity length

The length of periodicity of the lattice is the minimum distance at which the lattice repeats itself. For example, the lattice constant a_0 in cubic crystal systems is the lattice periodicity length along the \left<100\right> directions.

Once the crystallographic orientations are set, e.g., the x axis in the first grain has an orientation of [abc], the lattice will repeat itself at every \sqrt{a^2 + b^2 + c^2}a_0 distance along the x direction. In the simple cubic system, this distance is likely the smallest lattice periodicity length. But in the face-centered cubic (FCC) and body-centered cubic (BCC) systems, this may not be the case. For example, in FCC, when [abc] = [112], \sqrt{a^2 + b^2 + c^2}a_0 = \sqrt{6}a_0, yet the smallest lattice periodicity length l_0 = (\sqrt{6}/2)a_0. Another example is in BCC, when [abc] = [111], \sqrt{a^2 + b^2 + c^2}a_0 = \sqrt{3}a_0, yet l_0 = (\sqrt{3}/2)a_0.

Since each grain has its own crystallographic orientations, each grain has its own \vec{l}_0. The length vector along each direction that is the largest in magnitude among all grains is the lattice periodicity length for the simulation cell, \vec{l'}_0. The largest component in the \vec{l'}_0 vector is the maximum lattice periodicity length for the simulation cell, l'_\mathrm{max}.

\vec{l'}_0 and l'_\mathrm{max} are the length units in four commands: fix, grain_dir, group, and modify. A question arises regarding how the lengths in these four commands are usually determined. For example, to build a stationary edge dislocation, one needs to determine the position of the dislocation, i.e., using the `modify_centroid_x`

, `modify_centroid_y`

, and `modify_centroid_z`

variables in the modify command. In the input file, there is one line

```
modify modify_1 dislocation 1 3 13. 39. 17.333 90. 0.33
```

in which `plane_axis`

= *3* means that the slip plane is normal to the *z* direction. As a result, the `modify_centroid_z`

decides the *z*-coordinate of the intersection between the slip plane and the *z* axis. Since there is only one dislocation, one usually wants to let the slip plane be within the mid-*z* plane, but how is the value of `modify_centroid_z`

, which equals *17.333* here, determined?

In the log file, there are four lines:

```
The boundaries of grain 1 prior to modification are (Angstrom)
x from -0.413351394094665 to 128.552283563439630 length is 128.965634957534292
y from -0.715945615951370 to 222.659086560878961 length is 223.375032176830331
z from -29.228357377724798 to 213.951576004945480 length is 243.179933382670271
```

where the last number `243.179933382670271`

is the edge length of the simulation cell along the *z* direction, prior to modification. Note that it is important to use the edge lengths of the grain `prior to modification`

instead of those under `The box boundaries/lengths are (Angstrom)`

because the former are used to build dislocations in the code. Another two lines in the log file are

```
The lattice_space_max are
x 4.960216729135929 y 2.863782463805506 z 7.014805770653949
```

where the last number `7.014805770653949`

is the maximum lattice periodicity length for the simulation cell along the *z* direction, l'_\mathrm{max}, which is indeed the length unit of `modify_centroid_z`

. Thus, if one wants to let the slip plane be within the mid-*z* plane, the value of `modify_centroid_z`

is

```
243.179933382670271 / 7.014805770653949 / 2 = 17.333
```