[Wien] fold2bloch: problem with K - path in hexagonal lattice
Peter Blaha
pblaha at theochem.tuwien.ac.at
Tue Nov 24 08:00:27 CET 2020
Sorry, your mail is too large for the mailing list. You have to send
your graphics directly to Oleg or other people upon request or put it on
some webserver for download.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dear Oleg,
Thank you for your quick response! It was very helpful, but I still
didn't resolve the issue. You are right, the path in my email has
mistakes, but it was just me being sloppy when writing the email. The
path in .klist_band and Octave script are the same. The problem can be
reproduced with just the M-K section, so I will focus on that. As I do
not know Matlab/Octave very well I modified the script to save data to a
file, and then I use my favourite plotting tool:
%Save results
energy = (ENE-Ef)*ry2ev;
matrix = [L, energy, WGHTRS];
save myfile.mat matrix;
BTW, I did mentioned before but I had some trouble getting
ubs_dots_w2k_octave.m and ubs_dots.m scripts working (actually I didn't
find the way to make the second one work), maybe here is the source of
the problems:
1. Octave version 3.8.2 crashes with ubs_dots_w2k_octave.m script:
octave:1> ubs_dots_w2k_octave.m
panic: Segmentation fault -- stopping myself...
attempting to save variables to 'octave-workspace'...
save to 'octave-workspace' complete
Segmentation fault
2. Octave version 5.2.0 makes the plot, but it is almost unreadable and
there are some warning messages which look for me like from Gnuplot. I
don't know how these two are related to each other.
octave:1> ubs_dots_w2k_octave
multiplot> et termoption dashed
^
line 0: invalid command
3. When I wanted to test the Matlab script it fails with the following
error:
Index in position 1 exceeds array bounds (must not exceed 2).
Error in ubs_dots>coordTransform (line 146)
W(i,:) = G(1,:)*V(i,1) + G(2,:)*V(i,2) + G(3,:)*V(i,3);
Error in ubs_dots (line 53)
KPATH = coordTransform(KPATH,G);
For the Matlab script I used the following settings (only M-K):
%% Init. parameters
KPATH = [1/2 0 0;
1/3 1/3 0]; % k-point path
FOLDS = [2 2 2]; % multiplicity in the corresponding directions used
when constructing the super-cell
KLABEL = {'M'; 'K'};
finpt = 'LaBr3_superCell.f2b'; % input file name
Ef = 0.1686176787; % Fermi energy (Ry)
ERANGE = [Ef-0.2 Ef+0.4]; % energy range for plot (Ry)
ry2ev = 13.605698066; % Ry -> eV conversion factor
pwr = 1/1; % power for result plotting
% 1 - linear scale, 1/2 - sqrt, etc.
% 0 - folded bands (needs wth = 0)
msz = 10; % marker size for plot
lwdth = 0.5; % plot line width
PLTSZ = [1 1 600/1.5 300/1.5]; % plot size
wth = 0.05; % threshold weight
clrmp = jet; % flipud(gray)
% flipud(pink)
% flipud(hot)
% flipud(autumn)
% cool
% flipud(bone)
% flipud(jet)
% jet
G = [ 0.038328 0.019164 0.000000;
0.000000 0.033193 0.000000;
0.000000 0.000000 0.058517]; % Reciprocal latt. vect. from
*.outputkgen
I'm using Matlab R2020a.
I'm not good with paper, but I'm much better with computer graphics. As
you advised I made a visualisation of the desired path, see attached
"M-K_path_supercell_vs_primitive.jpg". Primitive lattice is shown with
black lines, supercell (2x2) with red lines. Correct me if I'm wrong,
but in my opinion the desired path M(1/2,0)->K(1/3,1/3) in the primitive
lattice is going to be GAMMA(0,0) -> K(-1/3,2/3) in the supercell
lattice (dashed arrows). And this seems to be the path generated with
fold.m (see k-path_M-K1.pdf), however, this results in a
discontinuous plot (see LaBr3_M-K_band.pdf, black lines correspond to
the conduction band of LaBr3 calculated with primitive lattice and
XCrysDen generated M->K k-path, points corresponds to 2x2x2 supercell
with the symmetry broken by moving one La atom by 0.01A and a k-path
generated with fold.m path). I also have the impression that the k
vector values generated by ubs_dots_w2k_octave.m for the band plot does
not correspond to values in *.agr generated by x spaghetti, so
overlaying these two plots doesn't work well. Or maybe it's a hint that
I made some mistake here.
Which versions of Octave/Matlab have been tested with the script? Maybe
the newest are not compatible with plotting scripts.
Thank you in advance!
Best regards,
Weronika
--
Weronika Wiktoria Wolszczak
Postdoctoral researcher
TU Delft/Wake Forest University
More information about the Wien
mailing list