lprojpbs: When .TRUE. the projected band structure (PBS) is calculated if nkz > 1 otherwise it is read from file. Usually this variable is .TRUE.. Set it to .FALSE. if you do not want to see the PBS, or if you want to see the bands of a bulk projected on the surface Brillouin zone without the PBS. Default: logical .TRUE. (forced to .FALSE. if what is not 'scf_2d_bands') nkz: The number of k_z values used for the PBS plot. If lprojpbs is .FALSE. a plot of the bulk bands projected on the surface Brillouin zone is produced. Default: integer 4 (forced to 1 if what is not 'scf_2d_bands'). gap_thr: minimum size (in eV) of the gaps in the PBS Default: real 0.1 eV sym_divide: When .TRUE. the bands belonging to different irreducible representations are plotted in different panels. This option can be controlled by variables specified in the path (see below) Default : logical .FALSE. identify_sur: When .TRUE. the surface bands are searched and identified on the surface band structure. Default : logical .FALSE. dump_states: If .TRUE. and identify_sur is .TRUE. dump on the file 'dump/state_k_#' the planar averages of the density (and in the noncollinear case also of the magnetization density) of each state. One file for each k point is produced and # is the number of the k points. (Use with a small number of k points or it might create quite large files). Default: logical .FALSE. sur_layers: The number of surface layers on which we add the charge density of each state to check if it is a surface state. Default : integer 2 sur_thr: the threshold (in percentage) of the charge density that must be on the surface layers to identify a state as a surface state. Default: calculated from the actual charge density values of the states. sp_min : minimum distance between layers. Two atoms form different layers only if their distance along z is larger than this number. Should be smaller than the interplanar distance (in a.u.) written by the tool gener_3d_slab. Default : real 2.0 a.u. subtract_vacuum: if .TRUE. the charge density of each state on vacuum is subtracted (to remove the vacuum states that are confused with surface states) Default : .TRUE. force_bands: when .TRUE. the bands are plotted in any case. Used to plot the bulk bands on top of the PBS, mainly for debugging. Default: logical .FALSE. only_bands_plot: if the files with the bands, the representations, the pbs and the projections are already on files, this option allows to change the parameters of the plot (such as the maximum energy or sur_thr) and do another plot without any additional calculation. If the files are missing and this variable is .TRUE. an error occurs. Default: logical .FALSE. flpbs: the name of the file that contains the information on the projected band structure. Default: character(len=*) 'output_pbs' flprojlayer: the name of the file that contains the information of the projection of the charge density of each state on each layer. Calculated only when identify_sur is .TRUE.. Default: character(len=*) 'output_projlayer'The bands and the gnuplot scripts are saved on the same files that would be used with the option what='scf_bands'.
By default the symmetry separation is not carried out. The code plots the
bands of the slab on the same panel with a different color for each
representation as in the bulk band structure plot (color refer to the
representations of the slab point co-group of k).
In order to plot in different panels the different representations
the user can specify sym_divide= .TRUE..
By default this option is disabled and its use is rather tricky.
In order to use it you must indicate explicitly the
path on the two dimensional Brillouin zone using the option
q_in_band_form=.TRUE.. Close to the
starting point of a given line you indicate the number of
representations for that line (0 means all representations) and which ones.
For instance for a (111) surface of an fcc metal in the direction
-
you may
want to plot separately the states even or odd with respect to the mirror
plane perpendicular to the surface that contains the
-
line.
In order to do so you can specify the path as follows:
5 gG 30 0 K 30 0 M 30 1 1 gG 30 1 2 M 1 0The representations to plot are indicated by their numbers (in this case 1 or 2). The number of the representation and the point co-group of each k-point can be found in the output of thermo_pw. These representation numbers refer to the point co-group of each k-point in the slab when you plot the slab band structures and to the point co-group of each k-point in the bulk when you plot a PBS. Some particular values of kz, such as kz = 0 might have a point co-group in the bulk different from the point co-group of a point with a generic kz but in this case the representations are transformed into those of the smaller group using the group-subgroup relationships and the symmetry descent of the irreducible representations (only when sym_divide=.TRUE.). The representations of the smaller point co-group have to be used in the PBS input.
In general, the point co-group of a k-point
= (
, kz) with component
parallel to the surface
and a generic kz in the bulk is different
from the point co-group of a k-point
= (
, 0)
in the slab. Moreover, experimentally one cannot consider symmetries
of the slab that exchange the two surfaces, and therefore the
point co-group a k-point
= (
, 0) on the surface
is a subgroup of the point co-group of
= (
, 0)
on the slab. The point co-group
= (
, kz)
in the bulk does not contain operations that exchange kz
with - kz
but it might be larger than the point co-group of
= (
, 0) on the surface because
it might contain symmetries of the bulk that require fractional translations
perpendicular to the surface that are not symmetries neither of the slab nor of
the surface.
The point co-group of a given k-point
= (
, 0)
on the surface can be found by removing from the corresponding slab
point co-group the
operations that exchange the two surfaces. It is also the group formed
from the intersection of the point co-group of
= (
, 0) in the slab and of the point
= (
, kz) in the bulk.
It is the user responsibility to specify the same number of panels
for the PBS and for the slab calculation and to assure that the
representations plotted in each panel correspond to each other.
Returning to the example of the (111) surface of an fcc, in the direction
-
the slab has C2 symmetry about the x-axis, a symmetry
that the surface has not. Therefore you can plot with two different colors
the bands that belong to the A or B representations of the slab,
(states even or odd with respect to a 180o rotation about
the x axis, an operation that exchanges the two surfaces)
but you cannot separate the PBS into even or odd states with respect to
the C2 symmetry. You might specify two different panels with the
A or B bands in each, but the PBS in the two panels will be the same.
On the contrary, for a k-point along the
-
direction,
the point co-group has the Cs symmetry both for the slab and for
the surface, so you can separate both the PBS
and the surface states in two different panels.
There is no input variable to control or change the colors or style of the plot. To change the defaults you can modify directly the gnuplot script, it is written in such a way that a change to a few variables can control the entire plot.