Questaal Home
Navigation

Symmetry Line Files

Usage Instructions


This document describes automatic and semi-automatic ways to specify lines in k space for which to create energy bands. Energy bands are typically depicted as quasiparticle levels as a function of k, on a line connecting two high-symmetry points. When more than one line is of interest (the typical case), bands are drawn in panels, one panel for each line.

For Questaal, information for each panel is supplied in a symmetry lines file. Several executables in the Questaal suite (lmf, lm, tbe), will generate bands on these lines when you supply the --band switch in symmetry line mode. Two other executables (lmfgws, lmgf) can draw the interacting analog (spectral functions) along these lines.

If you select the endpoints by hand, simply construct a symmetry lines file and run the executable with --band~fn=syml (assuming you name the symmetry lines file syml.ext).

The present page documents high-symmetry points for all crystal structures (adapted from Computational Materials Science 49, 299 (2010)), and it also explains how to generate syml.ext fully automatically, or partially automatically, depending on your preference.

Note on units of k: k points are internally stored, and typically read, in Cartesian coordinates, in units 2π/a where a is the lattice constant (read through eg. ALAT in the input file). However, the --band switch permits you to read k points in crystal coordinates instead (--band~mq). This example shows how to make the conversion using the mcx calculator.

Moreover the --syml switch permits you to supply k points in crystal coordinates — that is the usual way they are supplied in the literature (--syml~mq). Additionally --syml switch permits you to write the file syml.ext in crystal coordinates (--syml~wmq). Note that ~mq and ~wmq are independent.

Hazard: You must make sure to invoke a bands calculation (--band) the units corresponding to the contents of syml.ext. Users have found this to be a source of confusion and it advised that you stick with Cartesian coordinates unless you are confident in what you are doing.

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.

The --syml switch

lmchk has a special mode that will construct syml.ext, which is invoked by the --syml switch. It is used in one of two contexts:

  1. You want lmchk to pick the connecting lines for you. For this option, just do lmchk --syml.
    Hazard: this fully automatic mode requires that spglib be linked into your executable. (It is not difficult to do, but you must download the library and the appropriate link to the library included in flags.mk.)

  2. You know the points and connecting lines you want (see e.g. below) and want lmchk to generate syml.ext using them. Invoke lmchk as lmchk --syml~text. The syntax is documented below; this section explains the switch through an example.

Syntax of the --syml switch

lmchk’s --syml can accept several formats.

  1. The minimum syntax of the fully automatic mode is simply --syml .
    In this mode, syml.ext is generated fully automatically using utilities adapted from spglib and taking the points and suggested paths from 10.1016/j.commatsci.2016.10.015, which was written to synchronize with spglib.

  2. Minimally specify n endpoints (3n numbers). The syntax for the simple mode 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 first line connects q0 to q1, the second q1 to q2, and so on.

  3. Semiautomatic mode: You name a list of high-symmetry points by associating each with one-character label (~lblq:). You specify one or more lines by stringing together several (two or more) labels (lbl=). A string of n labels supplies n−1 lines. The full syntax (followed by an example for the hexagonal structure) is

       --syml[~n=#][~mq][~wmq]~lblq:L=#,#,#,L'=#,#,#,...~lbl=LL'..
       --syml~n=41~mq~wmq~lblq:G=0,0,0,A=0,0,1/2,L=1/2,0,1/2,K=1/3,1/3,0,M=1/2,0,0~lbl=KGLMGA
    

    ~n, ~mq and ~wmq are all optional; ~lblq: and lbl= are both required.

    In the sequence following lbl=, each label (except the first and last) serves both as the final point for one panel, and the starting point for another. You can insert a comma between two labels (e.g. XY → X,Y), lmchk will interpret it as a break, so that the line connecting X and Y will be omitted.

  • ~n=#     # specifies the number of points on the line for a connecting vector of unit length. The number of points is scaled by the length of the connecting vector.
  • ~mq     tells lmchk endpoints you supply are in crystal coordinates.
  • ~wmq   tells lmchk to write endpoints to syml.ext in crystal coordinates.
Additional notes concerning the automatic mode
  • Switches ~n, and ~wmq also apply to this mode (~mq has no meaning in this mode). The full syntax is:
    --syml[~n=#][~wmq]
    

    Hazard: When generating energy bands generated by --syml~wmq, be sure to generate bands with --band~mq. Users have found this to be a source of confusion and it advised that you stick with Cartesian coordinates unless you are confident in what you are doing.

  • The automatic mode also generates a template --syml instruction, in the semiautomatic mode style, mode 3 above. You can use it to make syml.ext to your taste, e.g. with a different density of k points, or different arrangement of lines.

  • If you supply lattice vectors with limited precision, the fuzz in the k points can reflect that limited precision. Thus a high-symmetry point that should be 0.5 may come out 0.4999995. spglib can find symmetry operations when crystal information supplied with limited precision, but there is an inherent ambiguity in definition of any point.

  • The automatic mode must translate from the k points referenced to the standard crystallographic lattice vectors it keeps internally, to the lattice vectors in your input file. The two quite frequently differ by a rotation, permutation of axes, or they use a different triplet of G vectors as the primitive vectors. (This can be an endless source of confusion when making reference to the literature). As a consequence, a point in the standard crystallographic lattice vectors (for concreteness, M=(1/2,0,0) for the hexagonal lattice) may get permuted (and become e.g. M=(0,1/2,0)). spglib’s internal operations may also map it to another (symmetry equivalent) point. For example the standard test in written to checks/ovlp_9.d in your Questaal build directory puts M at (-1/2,1/2,0). Note input file includes small rotation around z of 0.01 radian. If you remove the rotation rerun lmchk --syml, M becomes (0,1/2,0). (Note that for the hexagonal lattice (-1/2,1/2,0) and (0,1/2,0) are symmetry-equivalent.) Thus, be aware that as you change the lattice vectors parameterically the endpoints may change in a discontinuous way. You can verify this starting from your build directory and run
    ./testrun.sh ./checks/ovlp_9.d 1 ./testing/test.ovlp --quiet

High symmetry points for all crystal lattices

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 lmchk --syml... 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

Primitive lattice vectors are (in units of a)

  1  0  0   P1
  0  1  0   P2
  0  0  1   P3

Quick generation of syml.ext

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,R=1/2,1/2,1/2,X=0,0,1/2,M=0,1/2,1/2~lbl=XGMRG

(Substitute any number for 51, depending on how smooth a band plot you want).

# 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

Primitive lattice vectors are (in units of a)

  0    1/2  1/2   P1
  1/2  0    1/2   P2
  1/2  1/2  0     P3

Quick generation of syml.ext

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,L=1/2,1/2,1/2,X=0,1/2,1/2,W=1/4,1/2,3/4,K=3/8,3/8,3/4~lbl=LGXWGK

(Substitute any number for 51, depending on how smooth a band plot you want).

# 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 1/2 # L
% vec X[3]  0   1/2 1/2 # X
% vec W[3]  1/2 1/4 3/4 # W
% vec U[3]  5/8 1/4 5/8 # U
% vec K[3]  3/8 3/8 3/4 # K

# Sequence L-G-X-W-G-K
11 {L}  {G}      L to G
11 {G}  {X}      G to X
11 {X}  {W}      X to W
11 {W}  {G}      W to G
11 {G}  {K}      G to K

Body-centered Cubic (BCC) Lattice

Primitive lattice vectors are (in units of a)

 -1/2  1/2  1/2       P1
  1/2 -1/2  1/2       P2
  1/2  1/2 -1/2       P3

Quick generation of syml.ext

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,H=1/2,-1/2,1/2,N=0,0,1/2,P=1/4,1/4,1/4~lbl=GHNGPHN

(Substitute any number for 51, depending on how smooth a band plot you want).

# 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

Primitive lattice vectors are (in units of a)

  1  0  0       P1
  0  1  0       P2
  0  0  c/a     P3

Quick generation of syml.ext

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,A=1/2,1/2,1/2,M=1/2,1/2,0,R=0,1/2,1/2,X=0,1/2,0,Z=0,0,1/2~lbl=GXMGZRAXRA

(Substitute any number for 51, depending on how smooth a band plot you want).

If the lattice is rotated e.g. by 45°, the symmetry points remain unchanged when expressed as multiples of P1, P2, P3, as is done in the preceding line.

# 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 (BCT) Lattice

The BCT lattice has real- and reciprocal lattice vectors (units of a and 2π/a, respectively). a and c are the lattice vectors in the basal plane and normal to it; cbya is the ratio.

         Plat             Qlat
 -1/2  1/2  cbya/2      0  1  1/cbya
  1/2 -1/2  cbya/2      1  0  1/cbya
  1/2  1/2 -cbya/2      1  1  0

Alternatively the BCT lattice can be represented with these lattice vectors:

         Plat             Qlat
  1    0    0           1  0  -1/cbya
  0    1    0           0  1  -1/cbya
  1/2  1/2  cbya/2      1  1   2/cbya

A second alternative is:

         Plat             Qlat
  1    0    0           1  0   1/cbya
  0    1    0           0  1   1/cbya
 -1/2 -1/2  cbya/2      1  1   2/cbya

The BCT1 lattice : when c < a

Quick generation of syml.ext

lmchk -vcbya=... -v'eta=(1+cbya^2)/4' ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,Z=eta,eta,-eta,X=0,0,1/2,N=0,1/2,0,P=1/4,1/4,1/4,M=-1/2,1/2,1/2~lbl=GXPZGM

(Substitute any number for 51, depending on how smooth a band plot you want).

# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, 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

The BCT2 lattice : when c > a

Quick generation of syml.ext (Note : the proper label for Q is Σ, and for Q, is Σ1)

lmchk ctrl.ext -v'eta=(1+cbya^2)/4' --syml~n=51~mq~lblq:G=0,0,0,N=0,1/2,0,P=1/4,1/4,1/4,X=0,0,1/2,Z=1/2,1/2,-1/2,Q=-eta,eta,eta,S=eta,1-eta,-eta~R=1/2,1/2,0~lbl=RZGXPNGQ

(Substitute any number for 51, depending on how smooth a band plot you want).

Note that M and R are not zone boundary points. The corresponding (most similar) points are Σ = ( − η, η, η) and Y1 = (1/2, 1/2,  − η) with η = (1 + a2/c2)/4 and ζ = a2/(2c2)

If you are using the alternative lattice vectors noted above, use the following to generate the symmetry lines file:

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,N=1/2,0,1/2,P=1/2,1/2,3/4,X=1/2,1/2,1/2,Z=0,0,1/2,M=1,0,1/2,R=1/2,1/2,1~lbl=RZGXPNGM

For the second alternative lattice vectors noted above, use the following to generate the symmetry lines file:

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,N=1/2,0,0/2,P=1/2,1/2,-1/4,X=1/2,1/2,-1/2,Z=0,0,1/2,M=1,0,-1/2,R=1/2,1/2,0~lbl=RZGXPNGM

(Substitute any number for 51, depending on how smooth a band plot you want).

# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# This structure requires one special variable, 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

Primitive lattice vectors are (in units of lattice constant a), with a<b<c :

  1  0    0    P1
  0  b/a  0    P2
  0  0    c/a  P3

Quick generation of syml.ext

lmchk ctrl.ext --syml~n=51~mq~wmq~lblq:G=0,0,0,R=1/2,1/2,1/2,S=1/2,1/2,0,T=0,1/2,1/2,U=1/2,0,1/2,X=1/2,0,0,Y=0,1/2,0,Z=0,0,1/2,~lbl=GXSYGZURT

If a and b are exchanged:

lmchk ctrl.ext --syml~n=51~mq~wmq~lblq:G=0,0,0,R=1/2,1/2,1/2,S=1/2,1/2,0,T=1/2,0,1/2,U=0,1/2,1/2,X=0,1/2,0,Y=1/2,0,0,Z=0,0,1/2~lbl=GXSYGZURT

# 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

# 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

# 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

# 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 has real- and reciprocal lattice vectors (units of a and 2π/a, respectively)

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

The lattice vectors be written in this alternate form

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

To convert from the alternate form to the conventional one, do : lmscell --plx~m~-1,0,1,0,-1,1,1,1,-1
To convert from the conventional form to the alternate one, do : lmscell --plx~m~0,1,1,1,0,1,1,1,1

Quick generation of syml.ext :

lmchk -va=# -vb=# -vc=# -vx='(1+a^2/c^2)/4' -vy='(1+b^2/c^2)/4' ctrl.ext --syml~n=51~mq~wmq~lblq:G=0,0,0,R=0/2,1/2,0,S=1/2,0,0,T=0,0,1/2,Z=1/2,1/2,-1/2,X=-x,x,x,Y=y,-y,y~lbl=TGRSZG

Note: These symbols are not universal. This paper, PRB 100, 134502 defines X=(π/a,0,0), Y=(0,π/b,0) U=(π/a,0,π/c) R=(π/a,π/b,π/c) S=(π/a,π/b,0) which in units of the lattice vectors are:

X=-1/4,1/4,1/4,Y=1/4,-1/4,1/4,U=0,1/2,0,R=1/4,1/4,1/4,S=0,0,1/2

# 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 zeta=(1+abyc*abyc)/4 eta=(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

The ORCC lattice has real- and reciprocal lattice vectors (units of a and 2π/a, respectively)

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

Common high symmetry points in this structure require one special variable, a/b.

These vectors can be written in an alternate form

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

To convert from the alternate form to the conventional one, do : lmscell --plx~m~1,-1,0,0,1,0,0,0,1
To convert from the conventional form to the alternate one, do : lmscell --plx~m~1,1,0,0,1,0,0,0,1

Quick generation of syml.ext :

lmchk -vabyb=# '-vz=(1+abyb*abyb)/4' -vh=1/2 ctrl.ext --syml~n=51~mq~wmq~lblq:G=0,0,0,X=z,z,0,A=z,z,h,R=0,h,h,S=0,h,0,T=-h,h,h,Y=-h,h,0,Z=0,0,h~lbl=GXSRZGY

Same lines with alternate form of lattice vectors:

lmchk -vabyb=# '-vz=(1+abyb*abyb)/4' -vh=1/2 ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,X=z+z,z,0,A=z+z,z,h,R=h,h,h,S=h,h,0,T=0,h,h,Y=0,h,0,Z=0,0,h~lbl=GXSRZGY

These symbols are not universal: for example A is called M in Phys. Rev. Lett. 124, 197601.

# Cut and paste the contents of this file to a temporary file, e.g. tmp.txt.
# 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

Standard choice of lattice vectors:

          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

Lattice vectors rotated by 60 degrees:

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

Quick generation of syml.ext

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,A=0,0,1/2,H=1/3,1/3,1/2,K=1/3,1/3,0,M=1/2,0,0,L=1/2,0,1/2~lbl=MGALGK

(Substitute any number for 51, depending on how smooth a band plot you want).

Mirror image :

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

Quick generation of syml.ext

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,A=0,0,1/2,H=1/3,-1/3,1/2,K=1/3,-1/3,0,M=1/2,0,0,L=1/2,0,1/2~lbl=MGALGK

If x and y are swapped:

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,A=0,0,1/2,H=-1/3,1/3,1/2,K=-1/3,1/3,0,M=0,1/2,0,L=0,1/2,1/2,Q=1,1/2,0~lbl=MGALGK

# 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

Standard choice of lattice vectors (in units of a). Let x=sqrt(1-cos(alp)^2/cos(alp/2)^2)

                      Plat                                     Qlat
cos(alp/2)          -sin(alp/2)    0       1/cos(alp/2)   -1/sin(alp/2)  -cos(alp)/(cos(alp/2)^2*x)
cos(alp/2)           sin(alp/2)    0       1/cos(alp/2)    1/sin(alp/2)  -cos(alp)/(cos(alp/2)^2*x)
cos(alp)/cos(alp/2)  0             x       0               0              2/x
# 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

# 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

Standard choice of lattice vectors:

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

Quick generation of syml.ext :

lmchk -vabyc=# -vbbyc=# -vcpbyc=# '-veta=1/2*(1-bbyc*cpbyc)/(1-cpbyc^2) '-vnu=(1/2-eta*cpbyc/bbyc)' --syml~n=51~mq~lblq:G=0,0,0,A=1/2,-1/2,0,X=0,1/2,0,Y=0,0,1/2,Z=1/2,0,0~lbl=A,X,G,Y,Z,G

(Substitute any number for 51, depending on how smooth a band plot you want).

See Fig 16 in Computational Materials Science 49, 299 (2010).

The Materials Science paper uses for . Their expression for can be written as:

# 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=# -vabyc=# -vbbyc=# tmp.txt > qp.ext
# Note: this file has not been checked
#
% const eta=(1-bbyc*cos(alpha)/(2*sin(alpha)*sin(alpha))
% const nu=(1/2-eta/bbyc*cos(alpha))

% 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

Quick generation of syml.ext

lmchk ctrl.ext --syml~n=51~mq~lblq:G=0,0,0,Z=0,0,1/2,L=1/2,1/2,1/2,Y=1/2,1/2,0,N=1/2,0,0,M=1/2,0,1/2~lbl=ZGNYGM

(Substitute any number for 51, depending on how smooth a band plot you want).

See Fig 17 in 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, angle a/c, b/c, angle alfa
# rdfile -vabyc=# -vbbyc=# -valfa=# tmp.txt > qp.ext
#
% const zeta=(2-bbyc*cos(alfa))/(4*sin(alfa)*sin(alfa))
% const eta=1/2+2*zeta/bbyc*cos(alfa)
% const psi=3/4-abyc/bbyc/(4*sin(alfa)*sin(alfa))
% const phi=(psi+(3/4-psi)*bbyc*cos(alfa))
# Use with caution!  Variables zeta, eta, psi, phi have not been checked.
% 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 Z-G-N-Y-G-M (none of these points depend on variables abyc, bbyc, valfa)
11 {Z} {G} Z-G
11 {G} {N} G-N
11 {N} {Y} N-Y
11 {Y} {G} Y-G
11 {G} {M} G-M

C-centered Monoclinic 2 (MCLC2) Lattice

# 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

# 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

# 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

# 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

# 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

# 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 lattice vectors and points were adapted from Computational Materials Science 49, 299 (2010).