Questaal Home
Navigation

Symmetry Line Files

Usage Instructions


This document explains automatic and semi-automatic ways to generate information about symmetry lines to which to create energy bands in the Brillouin zone for any crystal structure.

A number of codes in the Questaal suite ( lmf, lm, tbe, lmfgws, lmgf), can generate energy bands or (for the latter two programs) spectral functions along special lines of k. This information is supplied in a symmetry lines file, in symmetry line mode, which consists of a set of starting and ending k points, and the number of points on the line.

Table of Contents

Drawing energy bands

To plot energy band structures along symmetry lines, you need a symmetry lines file formatted in symmetry lines mode.

Run a code that can draw energy bands with the --band switch, e.g.

  lmf ctrl.co --band~fn=syml

if the symmetry lines file is named syml.ext.

This tutorial generates and plots energy bands with lmf; this one draws bands using the ASA code lm.

When you know what k points you need : the --syml switch

If you already know what k points you want, the lmchk utility enables you to conveniently write the information in a Questaal-readable format. Invoke lmchk as follows:

lmchk --syml~text

The full syntax for --syml is defined below; this section explains the switch through an example.

text is a string that can contain switches in addition to list of k points. It must contain q=#1,#2,#3,… : at least 6 numbers for at least two k points (three elements per point). Supply a vector with as many triplets of real numbers as you need. Triplets 1 and 2 form the first symmetry line, triplets 2 and 3 form the second line, and so on.

By default the points in q=… refer to Cartesian coordinates, in units of 2π/a. But if text contains option ~mq, lmchk interprets the k points you supply as fractions of the reciprocal lattice vectors.

For example, the test

~/lm/testing/test.ovlp 9

copies ctrl.co to your working directory and generates file syml.co with two symmetry lines for Co, an hcp metal. These are the M-Γ line and the Γ-A line. This test performs something similar to the following:

lmchk ctrl.co --syml~n=21~mq~q=-.5,.5,0,0,0,0,0,0,1

~n=21 is optional; it specifies the number of divisions for a line of unit length. If you omit it a default value of 31 is taken. syml.co is written with the contents shown below:

# generated from text ~n=21~mq~q=-.5,.5,0,0,0,0,0,0,1
  12    0.2886751   0.5000000   0.0000000     0.0000000   0.0000000   0.0000000
  13    0.0000000   0.0000000   0.0000000     0.0000000   0.0000000   0.6123724

Note:: you can include text in the ctrl file (through tag BZ_SYML:) and invoke lmchk with --syml (no string following the switch). This is what test.ovlp 9 does.

Syntax of the --syml switch

The minimum syntax is --syml~q=#0x,#0y,#0z,#1x,#1y,#1z which specifies the Cartesian components of the first two k points q0 and q1 (one line). The number of lines can be extended as desired by apppending ,#2x,#2y,#2z ....

The full syntax shown in the box, followed by an example for the hexagonal structure:

   --syml[~n=ndiv][~lbl=KGLMGA][~mq][~wmq]~q=#0x,#0y,#0z,...
   --syml~n=41~wmq~mq~lbl=KGLMGA~q=1/3,1/3,0,0,0,0,1/2,0,1/2,1/2,0,0,0,0,0,0,0,1/2
  • ~n=#    specifies ndiv.
  • ~lbl=strn   specifies labels for each of the k.
  • ~mq   tells lmchk to rotate the k points you supply to to Cartesian coordinates
  • ~wmq    tells lmchk to rotate the k points written to syml.ext to Cartesian coordinates.

Note:: the combined use of ~mq~wmq does not transform the k points, but it does affect the length used to compute the number of divisions on the line.

When you need assistance identifying appropriate symmetry lines

Standard symmetry lines for all crystal lattices are given below. They were taken from Computational Materials Science 49, 299 (2010). You can refer to that paper, which specifies reciprocal lattice vectors and high-symmetry points for each crystal system in units of reciprocal lattice vectors, and use it to create syml.ext using the --syml switch as described above

Alternatively, peruse the Table of Contents and find the lattice appropriate to your structure. Once you identify the appropriate structure, and cut and paste the contents of appropriate file to a temporary file, e.g. tmp.txt.
To create a symmetry lines file, invoke rdfile with variables defining the shape of your unit cell, e.g.

rdfile -va=#1 -vb=#2 -vc=#3 tmp.txt > qp.ext

and edit qp.txt to taste. rdfile is documented here.

To create energy bands, run a band program such as lmf with switch --band~mq~... .

Cubic (CUB) Lattice

# The simple cubic lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires no special variables:
# rdfile tmp.txt > qp.ext
#
% vec G[3] 0   0   0                # G
% vec M[3] 1/2   1/2 0              # M
% vec R[3] 1/2 1/2 1/2              # R
% vec X[3] 0   1/2  0               # X

# Sequence G-X-M-G-R-X-R
11 {G}  {X}      G to X
11 {X}  {M}      X to M
11 {M}  {G}      M to G
11 {G}  {R}      G to R
11 {R}  {X}      R to X
11 {X}  {R}      X to R

Face-centered Cubic (FCC) Lattice

# The fcc lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires no special variables:
# rdfile tmp.txt > qp.ext
#
% vec G[3] 0   0   0                # G
% vec M[3] 1/2   1/2 0              # M
% vec R[3] 1/2 1/2 1/2              # R
% vec X[3] 0   1/2  0               # X

# Sequence G-X-M-G-R-X-R
11 {G}  {X}      G to X
11 {X}  {M}      X to M
11 {M}  {G}      M to G
11 {G}  {R}      G to R
11 {R}  {X}      R to X
11 {X}  {R}      X to R

Body-centered Cubic (BCC) Lattice

# The bcc lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires no special variables:
# rdfile tmp.txt > qp.ext
#
% vec G[3] 0   0   0               # G
% vec H[3] 1/2 -1/2 1/2            # H
% vec P[3] 1/4 1/4 1/4             # P
% vec N[3] 0   0  1/2              # N

# Sequence G-H-N-G-P-H-N
11 {G}  {H}      G to H
11 {H}  {N}      H to N
11 {N}  {G}      N to G
11 {G}  {P}      G to P
11 {P}  {H}      P to H
11 {H}  {N}      H to N

Tetragonal (TET) Lattice

# The tetragonal lattice is taken from Computational Materials Science 49, 299 (2010)
# R.S. Lattice vectors are: (units of a)
#  a  0  0     P1
#  0  a  0     P2
#  0  0  c     P3
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires no special variables:
# rdfile tmp.txt > qp.ext
#
% vec G[3] 0   0   0               # G
% vec A[3] 1/2 1/2 1/2             # A
% vec M[3] 1/2 1/2 0               # M
% vec R[3] 0   1/2  1/2            # R
% vec X[3] 0   1/2 0               # X
% vec Z[3] 0   0  1/2              # Z

# Sequence G-X-M-G-Z-R-A-X-R-A
11 {G}  {X}      G to X
11 {X}  {M}      X to M
11 {M}  {G}      M to G
11 {G}  {Z}      G to Z
11 {Z}  {R}      Z to R
11 {R}  {A}      R to A
11 {A}  {X}      A to X
11 {X}  {R}      X to R
11 {R}  {A}      R to A

Body-centered Tetragonal 1 (BCT1) Lattice

# The bct1 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variables, c/a:
# rdfile -vcbya=# tmp.txt > qp.ext
#
# R.S. Lattice vectors are: (units of a)
# -1/2  1/2  1/2*cbya         P1
#  1/2 -1/2  1/2*cbya         P2
#  1/2  1/2 -1/2*cbya         P3
% const eta=(1+cbya*cbya)/4
% vec G[3] 0   0   0               # G
% vec M[3] -1/2 1/2 1/2            # M
% vec N[3] 0   1/2   0             # N
% vec P[3] 1/4   1/4   1/4         # P
% vec X[3] 0   0  1/2              # X
% vec Z[3] {eta} {eta} -{eta}      # Z
% vec Z1[3] -{eta} 1-{eta} {eta}   # Z1

# Sequence G-X-M-G-Z-P-N-Z1-X-P
11 {Z}  {G}      Z to G
11 {G}  {X}      G to X
11 {X}  {M}      X to M
11 {M}  {G}      M to G
11 {G}  {Z}      G to Z
11 {Z}  {P}      Z to P
11 {P}  {N}      P to N
11 {N}  {Z1}     N to Z1
11 {Z1}  {X}     Z1 to X
11 {X}  {P}      X to P

Body-centered Tetragonal 2 (BCT2) Lattice

# The bct2 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variables, c/a:
# rdfile -vcbya=# tmp.txt > qp.ext
#
# R.S. Lattice vectors are: (units of a)
# -1/2  1/2  1/2*cbya         P1
#  1/2 -1/2  1/2*cbya         P2
#  1/2  1/2 -1/2*cbya         P3
% const eta=(1+1/cbya/cbya)/4 zeta=1/2/cbya/cbya
% vec G[3] 0   0   0               # G
% vec N[3] 0   1/2 0               # N
% vec P[3] 1/4 1/4 1/4             # P
% vec X[3] 0   0   1/2             # X
% vec S[3] -{eta} {eta} {eta}      # Sigma
% vec q[3] {eta} {1-eta} {-eta}    # Sigma1
% vec Y[3] -{zeta} {zeta} 1/2      # Y
% vec Z[3] 1/2 1/2 -1/2            # Z

# Sequence Z-G-X-P-G-N
11 {Z}  {G}      Z to G
11 {G}  {X}      G to X
11 {X}  {P}      X to P
11 {P}  {G}      P to G
11 {G}  {N}      G to N

Orthorhombic (ORC) Lattice

# The orc lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires no special variables
# rdfile tmp.txt > qp.ext
#
% vec G[3] 0   0   0               # G
% vec R[3] 1/2 1/2 1/2             # R
% vec S[3] 1/2 1/2   0             # S
% vec T[3] 0  1/2   1/2            # T
% vec U[3] 1/2   0  1/2            # U
% vec X[3] 1/2   0  0              # X
% vec Y[3] 0   1/2  0              # Y
% vec Z[3] 0   0    1/2            # Z

# Sequence G-X-S-Y-G-Z-U-R-T-Y-U-S-R
11 {G}  {X}      G to X
11 {X}  {S}      X to S
11 {S}  {Y}      S to Y
11 {Y}  {G}      Y to G
11 {G}  {Z}      G to Z
11 {Z}  {U}      Z to U
11 {U}  {R}      U to R
11 {R}  {T}      R to T
11 {T}  {Y}      T to Y
11 {Y}  {U}      Y to U
11 {U}  {S}      U to S
11 {S}  {R}      S to R

Face-centered Orthorhombic 1 (ORCF1) Lattice

# The orcf1 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires two special variables, b/a and c/a:
# rdfile -vbbya=# -vcbya=# tmp.txt > qp.ext
#
% const eta=(1+1/cbya/cbya+1/bbya/bbya)/4 zeta=(1+1/bbya/bbya-1/cbya/cbya)/4
% vec G[3] 0   0   0               # G
% vec A[3] 1/2 1/2+zeta zeta       # A
% vec A1[3] 1/2 1/2-zeta 1-zeta    # A1
% vec L[3] 1/2  1/2   1/2          # L
% vec T[3] 1    1/2   1/2          # T
% vec X[3] 0    eta   eta          # X
% vec X1[3] 1   1-eta  1-eta       # X1
% vec Y[3] 1/2   0    1/2          # Y
% vec Z[3] 1/2   1/2    0          # Z

# Sequence G-Y-T-Z-G-X-A1-T-X-A-L-G
11 {G}  {Y}      G to Y
11 {Y}  {T}      Y to T
11 {T}  {Z}      T to Z
11 {Z}  {G}      Z to G
11 {G}  {X}      G to X
11 {X}  {A1}     X to A1
11 {A1}  {T}     A1 to T
11 {T}  {X}      T to X
11 {X}  {A}      X to A
11 {A}  {L}      A to L
11 {L}  {G}      L to G

Face-centered Orthorhombic 2 (ORCF2) Lattice

# The orcf2 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires two special variables, b/a and c/a:
# rdfile -vbbya=# -vcbya=# tmp.txt > qp.ext
#
% const cbyb=cbya/bbya
% const eta=(1+1/bbya/bbya-1/cbya/cbya)/4 delta=(1+bbya*bbya-1/cbyb/cbyb)/4 theta=(1+cbyb*cbyb-cbya*cbya)/4
% vec G[3] 0   0   0                   # G
% vec C[3] 1/2 1/2-eta 1-eta           # C
% vec C1[3] 1/2 1/2+eta eta            # C1
% vec D[3] 1/2-delta  1/2   1-delta    # D
% vec D1[3] 1/2+delta    1/2   delta   # D1
% vec L[3] 1/2    1/2   1/2            # L
% vec H[3] 1-theta   1/2-theta  1/2    # H
% vec H1[3] theta   1/2+theta  1/2     # H1
% vec X[3] 0   1/2    1/2              # X
% vec Y[3] 1/2   0    1/2              # Y
% vec Z[3] 1/2   1/2    0              # Z

# Sequence G-Y-C-D-X-G-Z-D1-H-C1-X-H-L-G
11 {G}  {Y}      G to Y
11 {Y}  {C}      Y to C
11 {C}  {D}      T to D
11 {D}  {X}      Z to X
11 {X}  {G}      G to G
11 {G}  {Z}     X to Z
11 {Z}  {D1}     A1 to D1
11 {D1}  {H}      T to H
11 {H}  {C1}      X to C1
11 {C1}  {X}      A to X
11 {X}  {H}      L to H
11 {H}  {L}      A to L
11 {L}  {G}      L to G

Face-centered Orthorhombic 3 (ORCF3) Lattice

# The orcf3 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires two special variables, b/a and c/a:
# rdfile -vbbya=# -vcbya=# tmp.txt > qp.ext
#
% const eta=(1+1/cbya/cbya+1/bbya/bbya)/4 zeta=(1+1/bbya/bbya-1/cbya/cbya)/4
% vec G[3] 0   0   0                   # G
% vec A[3] 1/2 1/2+zeta zeta           # A
% vec A1[3] 1/2 1/2-zeta 1-zeta        # A1
% vec L[3] 1/2  1/2   1/2              # L
% vec T[3] 1    1/2   1/2              # T
% vec X[3] 0    eta   eta              # X
% vec X1[3] 1   1-eta  1-eta           # X1
% vec Y[3] 1/2   0    1/2              # Y
% vec Z[3] 1/2   1/2    0              # Z

# Sequence G-Y-T-Z-G-X-A1-X-A-L-G
11 {G}  {Y}      G to Y
11 {Y}  {T}      Y to T
11 {T}  {Z}      T to Z
11 {Z}  {G}      Z to G
11 {G}  {X}      G to X
11 {X}  {A1}     X to A1
11 {A1}  {X}     A1 to X
11 {X}  {A}      X to A
11 {A}  {L}      A to L
11 {L}  {G}      L to G

Body-centered Orthorhombic (ORCI) Lattice

# The orci lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires three special variables, b/a and c/a:
# rdfile -va=# -vb=# -vc=# > qp.ext
#
% const abyc=a/c bbyc=b/c
% const eta=(1+abyc*abyc)/4 zeta=(1+bbyc*bbyc)/4 delta=(b*b-a*a)/(c*c)/4 mu=(a*a+b*b)/(c*c)/4
% vec G[3] 0   0   0                    # G
% vec L[3] -mu  mu  1/2-delta           # L
% vec L1[3] mu  -mu  1/2+delta          # L1
% vec L2[3] 1/2-delta 1/2+delta -mu     # L2
% vec R[3] 0     1/2   0                # R
% vec S[3] 1/2   0    0                 # S
% vec T[3] 0     0   1/2                # T
% vec W[3] 1/4  1/4  1/4                # W
% vec X[3] -zeta  zeta  zeta            # X
% vec X1[3] zeta  1-zeta  -zeta         # X1
% vec Y[3] eta  -eta  eta               # Y
% vec Y1[3] 1-eta  eta  -eta            # Y1
% vec Z[3] 1/2  1/2  -1/2               # Z

# Sequence G-X-L-T-W-R-X1-Z-G-Y-S-L1-Y1-Z
11 {G}  {X}      G to X
11 {X}  {L}      X to L
11 {L}  {T}      L to T
11 {T}  {W}      T to W
11 {W}  {R}      W to R
11 {R}  {X1}     R to X1
11 {X1}  {Z}     X1 to Z
11 {Z}  {G}      Z to G
11 {G}  {Y}      G to Y
11 {Y}  {S}      Y to S
11 {S}  {L1}     S to L1
11 {L1}  {Y1}    L1 to Y1
11 {Y1}  {Z}     YL to Z

C-centered Orthorhombic (ORCC) Lattice

      Plat            Qlat
1/2  -b/a/2  0      1 -a/b  0
1/2   b/a/2  0      1  a/b  0
0     0      c/a    0  0    a/c

# The orcc lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variables, b/a
# rdfile -vbbya=# tmp.txt > qp.ext
# For symmetry lines in Cartesian coordinates: copy QLAT from lmchk to 'qlat' and do e.g.
# symlinepoints -qlat=qlat -nk=21 qp.ext  > syml.ext
#
% const abyb=1/bbya zeta=(1+abyb*abyb)/4
% vec G[3] 0   0   0                  # G
% vec A[3] zeta  zeta  1/2            # A
% vec A1[3] -zeta  1-zeta  1/2        # A1
% vec R[3] 0  1/2  1/2                # R
% vec S[3] 0  1/2  0                  # S
% vec T[3] -1/2  1/2  1/2             # T
% vec X[3] zeta  zeta  0              # X
% vec X1[3] -zeta  1-zeta  0          # X1
% vec Y[3] -1/2   1/2    0            # Y
% vec Z[3] 0   0   1/2                # Z

# Sequence G-X-S-R-A-Z-G-Y-X1-A1-T-Z-T
11 {G}  {X}      G to X
11 {X}  {S}      X to S
11 {S}  {R}      S to R
11 {R}  {A}      R to A
11 {A}  {Z}      A to Z
11 {Z}  {G}      Z to G
11 {G}  {Y}      G to Y
11 {Y}  {X1}     Y to X1
11 {X1}  {A1}    X1 to A1
11 {A1}  {T}     A1 to T
11 {T}  {Z}      T to Z
11 {Z}  {T}      Z to G

Hexagonal (HEX) Lattice

          Plat                     Qlat
a/2  -a(sqrt(3)/2  0       1/a  -1/a/sqrt(3)  0
a/2   a(sqrt(3)/2  0       1/a   1/a/sqrt(3)  0
0     0            c       0     0            1/c

# The hex lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires no special variables
# rdfile tmp.txt > qp.ext
#
% vec G[3] 0   0   0               # G
% vec A[3] 0   0   1/2             # A
% vec H[3] 1/3  1/3  1/2           # H
% vec K[3] 1/3  1/3  0             # K
% vec L[3] 1/2  0    1/2           # L
% vec M[3] 1/2  0    0             # M

# Sequence G-M-K-G-A-L-H-L-K-H
11 {G}  {M}      G to M
11 {M}  {K}      X to S
11 {K}  {G}      S to R
11 {G}  {A}      R to A
11 {A}  {L}      A to Z
11 {L}  {H}      Z to G
11 {H}  {L}      G to Y
11 {L}  {K}      Y to X1
11 {K}  {H}      X1 to A1

Rhombohedral 1 (RHL1) Lattice

# The rhl1 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variables, angle alpha
# rdfile -valpha=# tmp.txt > qp.ext
#
% const eta=(1+4*cos(alpha))/(2+4*cos(alpha))
% const nu=(3/4-eta/2)
% vec G[3] 0   0   0               # G
% vec B[3] eta    1/2    1-eta     # B
% vec B1[3] 1/2   1-eta   eta-1    # B1
% vec F[3] 1/2   1/2   0           # F
% vec L[3] 1/2  0    0             # L
% vec L1[3] 0   0   -1/2           # L1
% vec P[3] eta   nu   nu           # P
% vec P1[3] 1-nu   1-nu   1-eta    # P1
% vec P2[3] nu   nu   eta-1        # P2
% vec Q[3] 1-nu   nu   0           # Q
% vec X[3] nu   0   -nu            # X
% vec Z[3] 1/2   1/2   1/2         # Z

# Sequence G-L-B-Z-G-Q-F-P1-L-P
11 {G}  {L}      G to L
11 {L}  {B}      L to B
11 {B}  {Z}      B to Z
11 {Z}  {G}      Z to G
11 {G}  {Q}      G to Q
11 {Q}  {F}      Q to F
11 {F}  {P1}     F to P1
11 {P1}  {L}     P1 to L
11 {L}  {P}      L to P

Rhombohedral 2 (RHL2) Lattice

# The rhl2 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, angle alpha
# rdfile -valpha=# tmp.txt > qp.ext
#
% const eta=1/(2*tan(alpha/2)*tan(alpha/2))
% const nu=(3/4-eta/2)
% vec G[3] 0   0   0               # G
% vec F[3] 1/2   -1/2   0          # F
% vec L[3] 1/2   0   0             # L
% vec P[3] 1-nu   -nu   1-nu       # P
% vec P1[3] nu   nu-1   nu-1       # P1
% vec Q[3] eta   eta   eta         # Q
% vec Q1[3] 1-eta   -eta   -eta    # Q1
% vec Z[3] 1/2   -1/2   1/2        # Z

# Sequence G-P-Z-Q-G-F-P1-Q1-L-Z
11 {G}  {P}      G to L
11 {P}  {Z}      P to Z
11 {Z}  {Q}      Z to Q
11 {Q}  {G}      Q to G
11 {G}  {F}      G to F
11 {F}  {P1}      F to P1
11 {P1}  {Q1}     P1 to Q1
11 {Q1}  {L}     Q1 to L
11 {L}  {Z}      L to Z

Monoclinic (MCL) Lattice

# The mcl lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, angle alpha
# rdfile -valpha=# tmp.txt > qp.ext
# Note: this file is incorrect
#
% const eta=(1-b*cos(alphabyc))/(2*sin(alpha)*sin(alpha))
% const nu=(1/2-eta*c*cos(alphabyb))
% vec G[3] 0   0   0               # G
% vec A[3] 1/2   -1/2   0          # A
% vec C[3] 0  1/2  1/2             # C
% vec D[3] 1/2  0  1/2             # D
% vec D1[3] 1/2  0  -1/2           # D1
% vec E[3] 1/2  1/2  1/2           # E
% vec H[3] 0  eta  1-nu            # H
% vec H1[3] 0  1-eta  nu           # H1
% vec H2[3] 0  eta  -nu            # H2
% vec M[3] 1/2  eta  1-nu          # M
% vec M1[3] 1/2  1-eta  nu         # M1
% vec M2[3] 1/2  eta  -nu          # M2
% vec X[3] 0  1/2  0               # X
% vec Y[3] 0  0  1/2               # Y
% vec Y1[3] 0  0  -1/2             # Y1
% vec Z[3] 1/2  0  0               # Z

# Sequence G-Y-H-C-E-M1-A-X-M-D-Y-D
11 {G}  {Y}      G to Y
11 {Y}  {H}      Y to H
11 {H}  {C}      H to C
11 {C}  {E}      C to E
11 {E}  {M1}     E to M1
11 {M1}  {A}     M1 to A
11 {A}  {X}      A to X
11 {X}  {M}      X to M
11 {M}  {D}      M to D
11 {D}  {Y}      D to Y
11 {Y}  {D}      Y to D

C-centered Monoclinic Lattices

There are a family of lattices depending on angles between vectors. The Conventional and Primitive cells for all the lattices are

 (a, 0, 0)                 ( a/2, b/2, 0)
 (0, b, 0)                 (-a/2, b/2, 0)
 (0, c cos α, c sin α)     (0, c cos α, c sin α)

C-centered Monoclinic 1 (MCLC1) Lattice

# The mcl lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, angle alpha
# rdfile -valpha=# tmp.txt > qp.ext
# Note: this file is incorrect
#
% const zeta=(2-b*cos(alphabyc))/(4*sin(alpha)*sin(alpha))
% const eta=(1/2+2*zeta*c*cos(alphabyb))
% const psi=(3/4-(1/4)*abyb*abyb*(1/sin(alpha))*(1/sin(alpha)))
% const phi=(psi+(3/4-psi)*b*cos(alphabyc))
% vec G[3] 0   0   0                 # G
% vec N[3] 1/2   0   0               # N
% vec N1[3] 0  -1/2  0               # N1
% vec F[3] 1-zeta  1-zeta  1-eta     # F
% vec F1[3] zeta  zeta  eta          # F1
% vec F2[3] -zeta  -zeta  1-eta      # F2
% vec F3[3] 1-zeta  -zeta  1-eta     # F3
% vec I[3] phi  1-phi  1/2           # I
% vec I1[3] 1-phi  phi-1  1/2        # I1
% vec L[3] 1/2  1/2  1/2             # L
% vec M[3] 1/2  0  1/2               # M
% vec X[3] 1-psi  psi-1  0           # X
% vec X1[3] psi  1-psi  0            # X1
% vec X2[3] psi-1  -psi  0           # X2
% vec Y[3] 1/2  1/2  0               # Y
% vec Y1[3] -1/2  -1/2  0            # Y1
% vec Z[3] 0  0  1/2                 # Z

# Sequence G-Y-F-L-I1-Z-H-H1-Y1-X-G-M-G
11 {G}  {Y}      G to Y
11 {Y}  {F}      Y to F
11 {F}  {L}      F to L
11 {L}  {I1}      L to I1
11 {I1}  {Z}     I1 to Z
11 {Z}  {H}     Z to H
11 {H}  {H1}      H to H1
11 {H1}  {Y1}      H1 to Y1
11 {Y1}  {X}      Y1 to X
11 {X}  {G}      X to G
11 {G}  {M}      G to M
11 {M}  {G}      M to G

C-centered Monoclinic 2 (MCLC2) Lattice

# The mclc2 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, angle alpha
# rdfile -valpha=# tmp.txt > qp.ext
# Note: this file is incorrect
#
% const zeta=(2-b*cos(alphabyc))/(4*sin(alpha)*sin(alpha))
% const eta=(1/2+2*zeta*c*cos(alphabyb))
% const psi=(3/4-(1/4)*abyb*abyb*(1/sin(alpha))*(1/sin(alpha)))
% const phi=(psi+(3/4-psi)*b*cos(alphabyc))
% vec G[3] 0   0   0                 # G
% vec N[3] 1/2   0   0                # N
% vec N1[3] 0  -1/2  0                # N1
% vec F[3] 1-zeta  1-zeta  1-eta     # F
% vec F1[3] zeta  zeta  eta          # F1
% vec F2[3] -zeta  -zeta  1-eta      # F2
% vec F3[3] 1-zeta  -zeta  1-eta     # F3
% vec I[3] phi  1-phi  1/2           # I
% vec I1[3] 1-phi  phi-1  1/2        # I1
% vec L[3] 1/2  1/2  1/2             # L
% vec M[3] 1/2  0  1/2               # M
% vec X[3] 1-psi  psi-1  0           # X
% vec X1[3] psi  1-psi  0            # X1
% vec X2[3] psi-1  -psi  0           # X2
% vec Y[3] 1/2  1/2  0               # Y
% vec Y1[3] -1/2  -1/2  0            # Y1
% vec Z[3] 0  0  1/2                 # Z

# Sequence G-Y-F-L-I1-Z-N-G-M
11 {G}  {Y}      G to Y
11 {Y}  {F}      Y to F
11 {F}  {L}      F to L
11 {L}  {I1}      L to I1
11 {I1}  {Z}     I1 to Z
11 {Z}  {N}     Z to N
11 {N}  {G}      N to G
11 {G}  {M}      G to M

C-centered Monoclinic 3 (MCLC3) Lattice

# The mclc3 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, angle alpha
# rdfile -valpha=# tmp.txt > qp.ext
# Note: this file is incorrect
#
% const mu=(1+bbya*bbya)/4
% const delta=(b*c*cos(alpha*(1/2)*(1/a)*(1/a)))
% const zeta=(mu-1/4+(1-b*cos(alphabyc))/(4*sin(alpha)*sin(alpha)))
% const eta=(1/2+2*zeta*c*cos(alphabyb))
% const phi=(1+zeta-2*mu)
% const psi=(eta-2*delta)
% vec G[3] 0   0   0                 # G
% vec F[3] 1-phi   1-phi  1-psi      # F
% vec F1[3] phi  phi-1  psi          # F1
% vec F2[3] 1-phi  -phi  1-psi       # F2
% vec H[3] zeta  zeta  eta           # H
% vec H1[3] 1-zeta  -zeta  1-eta     # H1
% vec H2[3] -zeta  -zeta  1-eta      # H2
% vec I[3] 1/2  -1/2  1/2            # I
% vec M[3] 1/2  0  1/2               # M
% vec N[3] 1/2  0  0                 # N
% vec N1[3] 0  -1/2  0               # N1
% vec X[3] 1/2  -1/2  0              # X
% vec Y[3] mu  mu  delta             # Y
% vec Y1[3] 1-mu  -mu  -delta        # Y1
% vec Y2[3] -mu  -mu  -deta          # Y2
% vec Y3[3] mu  mu-1  delta          # Y3
% vec Z[3] 0  0  1/2                 # Z

# Sequence G-Y-F-H-Z-I-H1-Y1-X-G-M-G
11 {G}  {Y}      G to Y
11 {Y}  {F}      Y to F
11 {F}  {H}      F to H
11 {H}  {Z}      H to Z
11 {Z}  {I}      Z to I
11 {I}  {H1}     I to H1
11 {H1}  {Y1}    H1 to Y1
11 {Y1}  {X}     Y1 to X
11 {X}  {G}      X to G
11 {G}  {M}      G to M
11 {M}  {G}      M to G

C-centered Monoclinic 4 (MCLC4) Lattice

# The mclc4 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, angle alpha
# rdfile -valpha=# tmp.txt > qp.ext
# Note: this file is incorrect
#
% const mu=(1+bbya*bbya)/4
% const delta=(b*c*cos(alpha*(1/2)*(1/a)*(1/a)))
% const zeta=(mu-1/4+(1-b*cos(alphabyc))/(4*sin(alpha)*sin(alpha)))
% const eta=(1/2+2*zeta*c*cos(alphabyb))
% const phi=(1+zeta-2*mu)
% const psi=(eta-2*delta)
% vec G[3] 0   0   0                 # G
% vec F[3] 1-phi   1-phi  1-psi      # F
% vec F1[3] phi  phi-1  psi          # F1
% vec F2[3] 1-phi  -phi  1-psi       # F2
% vec H[3] zeta  zeta  eta           # H
% vec H1[3] 1-zeta  -zeta  1-eta     # H1
% vec H2[3] -zeta  -zeta  1-eta      # H2
% vec I[3] 1/2  -1/2  1/2            # I
% vec M[3] 1/2  0  1/2               # M
% vec N[3] 1/2  0  0                 # N
% vec N1[3] 0  -1/2  0               # N1
% vec X[3] 1/2  -1/2  0              # X
% vec Y[3] mu  mu  delta             # Y
% vec Y1[3] 1-mu  -mu  -delta        # Y1
% vec Y2[3] -mu  -mu  -deta          # Y2
% vec Y3[3] mu  mu-1  delta          # Y3
% vec Z[3] 0  0  1/2                 # Z

# Sequence G-Y-F-H-Z-H1-Y1-X-G-M-G
11 {G}  {Y}      G to Y
11 {Y}  {F}      Y to F
11 {F}  {H}      F to H
11 {H}  {Z}      H to Z
11 {Z}  {H1}      Z to H1
11 {H1}  {Y1}    H1 to Y1
11 {Y1}  {X}     Y1 to X
11 {X}  {G}      X to G
11 {G}  {M}      G to M
11 {M}  {G}      M to G

C-centered Monoclinic 5 (MCLC5) Lattice

# The mclc5 lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, angle alpha
# rdfile -valpha=# tmp.txt > qp.ext
# Note: this file is incorrect
#
% const zeta=(bbya*bbya+(1-b*cos(alphabyc))/(sin(alpha)*sin(alpha)))/4
% const eta=(1/2+2*zeta*c*cos(alphabyb))
% const mu=(eta/2+(1/4)*bbya*bbya-b*c*cos(alphabya*(1/2)*(1/a)))
% const nu=(2*mu-zeta)
% const rho=(1-zeta*abyb*abyb)
% const eta=(1/2+2*zeta*c*cos(alphabyb))
% const omega=((4*nu-1-b*b*sin(alphabya*(1/a))*sin(alphabya*(1/a)))*c/(2*b*cos(alpha)))
% const delta=(zeta*c*cos(alphabyb)+omega/2-1/4)
% vec G[3] 0   0   0                 # G
% vec F[3] nu  nu  omega             # F
% vec F1[3] 1-nu  1-nu  1-omega      # F1
% vec F2[3] nu  nu-1  omega          # F2
% vec H[3] zeta  zeta  eta           # H
% vec H1[3] 1-zeta  -zeta  1-eta     # H1
% vec H2[3] -zeta  -zeta  1-eta      # H2
% vec I[3] rho  1-rho  1/2           # I
% vec I1[3] 1-rho  rho-1  1/2        # I1
% vec L[3] 1/2  1/2  1/2             # L
% vec M[3] 1/2  0  1/2               # M
% vec N[3] 1/2  0  0                 # N
% vec N1[3] 0  -1/2  0               # N1
% vec X[3] 1/2  -1/2  0              # X
% vec Y[3] mu  mu  delta             # Y
% vec Y1[3] 1-mu  -mu  -delta        # Y1
% vec Y2[3] -mu  -mu  -deta          # Y2
% vec Y3[3] mu  mu-1  delta          # Y3
% vec Z[3] 0  0  1/2                 # Z

# Sequence G-Y-F-L-I1-Z-H-H1-Y1-X-G-M-G
11 {G}  {Y}      G to Y
11 {Y}  {F}      Y to F
11 {F}  {L}      F to L
11 {L}  {H}      L to H
11 {H}  {Z}      H to Z
11 {Z}  {H}    Z to H
11 {H}  {H1}     H to H1
11 {H1}  {Y1}      H1 to Y1
11 {Y1}  {X}      Y1 to X
11 {X}  {G}      X to G
11 {G}  {M}     G to M
11 {M}  {G}      M to G

Triclinic 1a(/2a) (TRI1a) Lattice

# The tri1a lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires no special variables
# rdfile tmp.txt > qp.ext
#
% vec G[3] 0   0   0               # G
% vec L[3] 1/2  1/2  0             # L
% vec M[3] 0  1/2  1/2             # M
% vec N[3] 1/2  0  1/2             # N
% vec R[3] 1/2  1/2  1/2           # R
% vec X[3] 1/2  0  0               # X
% vec Y[3] 0  1/2  0               # Y
% vec Z[3] 0  0  1/2               # Z

# Sequence X-G-L-G-N-G-R-G
11 {X}  {G}      X to G
11 {G}  {L}      G to L
11 {L}  {G}      L to G
11 {G}  {N}      G to N
11 {N}  {G}      N to G
11 {G}  {R}      G to R
11 {R}  {G}      R to G

Triclinic 1b(/2b) (TRI1b) Lattice

# The tri1b lattice is taken from Computational Materials Science 49, 299 (2010)
# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires no special variables
# rdfile tmp.txt > qp.ext
#
% vec G[3] 0   0   0                 # G
% vec L[3] 1/2  -1/2  0              # L
% vec M[3] 0  0  1/2                 # M
% vec N[3] -1/2  -1/2  1/2           # N
% vec R[3] 0  -1/2  1/2              # R
% vec X[3] 0  -1/2  0                # X
% vec Y[3] 1/2  0  0                 # Y
% vec Z[3] -1/2  0  1/2              # Z

# Sequence X-G-L-G-N-G-R-G
11 {X}  {G}      X to G
11 {G}  {L}      G to L
11 {L}  {G}      L to G
11 {G}  {N}      G to N
11 {N}  {G}      N to G
11 {G}  {R}      G to R
11 {R}  {G}      R to G

References


The contents of this page are found in Computational Materials Science 49, 299 (2010).

Questions or Comments


If this page has any errors, there is something you think is missing or unclear, or for any other issues, you can create a post here letting us know.