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
- The --syml switch
- High symmetry points for all crystal lattices
- Cubic (CUB) Lattice
- Face-centered Cubic (FCC) Lattice
- Body-centered Cubic (BCC) Lattice
- Tetragonal (TET) Lattice
- Body-centered Tetragonal (BCT) Lattice
- The BCT1 lattice : when c < a
- The BCT2 lattice : when c > a
- Orthorhombic (ORC) Lattice
- Face-centered Orthorhombic 1 (ORCF1) Lattice
- Face-centered Orthorhombic 2 (ORCF2) Lattice
- Face-centered Orthorhombic 3 (ORCF3) Lattice
- Body-centered Orthorhombic (ORCI) Lattice
- C-centered Orthorhombic (ORCC) Lattice
- Hexagonal (HEX) Lattice
- Rhombohedral 1 (RHL1) Lattice
- Rhombohedral 2 (RHL2) Lattice
- Monoclinic (MCL) Lattice
- C-centered Monoclinic Lattices
- C-centered Monoclinic 1 (MCLC1) Lattice
- C-centered Monoclinic 2 (MCLC2) Lattice
- C-centered Monoclinic 3 (MCLC3) Lattice
- C-centered Monoclinic 4 (MCLC4) Lattice
- C-centered Monoclinic 5 (MCLC5) Lattice
- Triclinic 1a(/2a) (TRI1a) Lattice
- Triclinic 1b(/2b) (TRI1b) Lattice
- References
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:
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.)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.
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.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.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:
andlbl=
are both required.
In the sequence followinglbl=
, 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).