next up previous contents
Next: 3.8 what='scf_dos' Up: 3. Input variables Previous: 3.6 what='scf_bands'   Contents

3.7 what='scf_2d_bands'

With this option the code makes a self-consistent calculation followed by a band structure calculation as with the option what='scf_bands', but it assumes that the cell contains a slab with surfaces perpendicular to the z direction. Therefore the two-dimensional Bravais lattice of the surface is identified and the default path is chosen on the two-dimensional Brillouin zone. There are three options: Plot of the projected band structure (PBS); plot of the bands of the slab; plot of the bands of the slab above the projected band structure (the Fermi energies are aligned). In the first case the code computes several paths of k-points parallel to the surface (at different k z ) and does not plot the individual bands but selects the energy regions in which there are bulk states. The second case is similar to a standard band plot. The default path contains only k-points parallel to the surface (with k z = 0 ). The third case assumes that the projected band structure has been already calculated and the information to plot it can be found on the file flpbs. For the rest it is similar to case two. For each direction, bands belonging to different irreducible representations of the point co-group of k can be plotted in the same panel or on different panels.
This option is controlled by the following variables:

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'.
Number of tasks for this option: 1. Image parallelization is not useful with this option.

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 2#2 - 3#3 you may want to plot separately the states even or odd with respect to the mirror plane perpendicular to the surface that contains the 2#2 - 3#3 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  0

The 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 4#4 = (5#5, kz) with component 5#5 parallel to the surface and a generic kz in the bulk is different from the point co-group of a k-point 4#4 = (5#5, 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 4#4 = (5#5, 0) on the surface is a subgroup of the point co-group of 4#4 = (5#5, 0) on the slab. The point co-group 4#4 = (5#5, kz) in the bulk does not contain operations that exchange kz with - kz but it might be larger than the point co-group of 4#4 = (5#5, 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 4#4 = (5#5, 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 4#4 = (5#5, 0) in the slab and of the point 4#4 = (5#5, 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 2#2 - 6#6 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 2#2 - 3#3 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 of a few variables can control the entire plot.


next up previous contents
Next: 3.8 what='scf_dos' Up: 3. Input variables Previous: 3.6 what='scf_bands'   Contents
2024-02-14