Skip to content



grain_mat {grain_id x i j k y i j k z i j k}
  • i, j, k = real number


grain_mat {1 x -1. 1. -2. y 1. 1. 0. z 1. -1. -1.}
grain_mat {1 x 1. 1. 0. y -1. 1. 2. z 1. -1. 1.} {2 x 1. 1. 0. y -1. 1. -2. z -1. 1. 1.}


This command sets the crystallographic orientations in each grain, along the x, y, and z directions, respectively. Note that the curly brackets { and } in the syntax/examples are to separate different grains, the number of which is grain_number; all brackets should not be included in preparing

Any two sets of vector must be normal to each other, i.e.,

\mathbf{x} \cdot \mathbf{y} = 0
\mathbf{y} \cdot \mathbf{z} = 0
\mathbf{x} \cdot \mathbf{z} = 0

The right hand rule must also be obeyed, i.e.,

\mathbf{x} \times \mathbf{y} \parallel \mathbf{z}
\mathbf{y} \times \mathbf{z} \parallel \mathbf{x}
\mathbf{z} \times \mathbf{x} \parallel \mathbf{y}

The user will get an error message followed by the termination of the program if any of these requirements is not satisfied.

The maximum grain_id must be larger than or equal to grain_number. All information related to grain_id that is larger than grain_number is discarded.

The number of grain is specified in the grain_num command.

This command becomes irrelevant when boolean_restart = t, in which case there is no need for the crystallographic orientations information.



grain_mat 1 x 1. 0. 0. y 0. 1. 0. z 0. 0. 1.