Thanks a lot Gavin and Oleg. Following is the ubs_dots.m file which I downloaded and ran in Matlab and got the error. To understand the unfolding/folding concepts and be able to use it, it seems I need more of knowledge. Will come back to you when I can frame the question much more precisely.
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function ubs_dots % Plot undolded band structure % % modified 21 Jan 2016 %% Init. parameters KPATH = [1/2 0 0; ... 0 0 0; ... 1/2 1/2 0]; % k-point path FOLDS = [1 2 3]; % multiplicity in the corresponding directions used when constructing the super-cell KLABEL = {'L'; 'G'; 'X'}; finpt = '6-atom2D.f2b'; % input file name Ef = 0.372141; % Fermi energy (Ry) ERANGE = [Ef-0.1 Ef+0.15]; % 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.038904 -0.012968 -0.012968; 0.000000 0.036679 -0.018340; 0.000000 0.000000 0.031765]; % Reciprocal latt. vect. from *.outputkgen %% INITIALIZATION [KEIG, EIG, W] = readinput(finpt); % read input data from file % EIG - energy eigenvalues % KEIG - k-list for eigenvalues % W - list of characters %% MAIN L = []; ENE = []; WGHT = []; for i=1 : 3 G(i,:)=G(i,:)*FOLDS(i); % rescale reciprocal lattice vectors end % from supercell to primitive cell dl = 0; % cumulative length of the path KPATH = coordTransform(KPATH,G); KEIG = coordTransform(KEIG,G); XTICKS = [0]; for ikp = 1 : size(KPATH,1)-1 B = KPATH(ikp,:) - KPATH(ikp+1,:); dk = sqrt(dot(B,B)); XTICKS = [XTICKS; XTICKS(ikp)+dk]; for j = 1 : length(EIG) if EIG(j) > ERANGE(1) && EIG(j) < ERANGE(2) && W(j) >= wth dist = dp2l( KEIG(j,:) , KPATH(ikp,:) , KPATH(ikp+1,:) ); if dist < eps % k-point is on the path A = KPATH(ikp,:) - KEIG(j,:); x = dot(A,B)/dk; if x > 0 && x-dk < eps % k-point is within the path range L = [L; x+dl]; % append k-point coordinate along the path ENE = [ENE; EIG(j)]; % append energy list WGHT = [WGHT; W(j)]; end end end end dl = dl + dk; end %% Plot results hFig = figure(1); % Fig 1(a) subplot(1,2,1); set(hFig, 'Position', PLTSZ, 'PaperPositionMode','auto') map = colormap(clrmp); WGHTRS = rescale(WGHT,pwr); scatter(L,(ENE-Ef)*ry2ev, WGHTRS*msz, WGHTRS,'LineWidth',lwdth); hold on; axis([0 max(L) min((ENE-Ef)*ry2ev) max((ENE-Ef)*ry2ev)]) yticks = get(gca,'ytick'); set(gca,'YTick',yticks); for i = 1 : length(yticks) newYTick{i} = sprintf('%1.1f',yticks(i)); end set(gca,'YTickLabel',newYTick); hline = plot([0 XTICKS(end)],[0 0]); % Fermi level set(hline,'Color','k','LineStyle','--'); set(gca,'XTick',XTICKS); set(gca,'XTickLabel',KLABEL); set(gca,'XGrid','on', 'GridLineStyle','-'); caxis([0 1]); % normalize intensities to 1 xlabel('Wave vector') ylabel('Energy (eV)') axis([0 max(L) min((ENE-Ef)*ry2ev) max((ENE-Ef)*ry2ev)]) box on hold off % Fig 1(b) subplot(1,2,2); DAT = linspace(0,1,10); DATX = ones(size(DAT)); DATRS = rescale(DAT,pwr); scatter(DATX,DAT, DATRS*msz, DATRS,'LineWidth',lwdth); caxis([0 1]) ylabel('Spectral weight') % SAVE plot as *.eps print( [finpt '.eps'], '-depsc') % ------------------------------------------------------------------------- function W = coordTransform(V,G) % transform vector V(:,3) in G(3,3) coord. system -> W(:,3) in Cartesian coordinates % G vector elements are in columns! W = zeros(size(V)); G = G'; % transform G for i = 1:length(V) W(i,:) = G(1,:)*V(i,1) + G(2,:)*V(i,2) + G(3,:)*V(i,3); end; % ------------------------------------------------------------------------- function WRESCL = rescale(W,pwr) % rescale weights using a power functio W^pwr WRESCL=W.^(pwr); % rescale if needed to enhance WRESCL = WRESCL + eps; % need eps to make plot "heapy" % ------------------------------------------------------------------------- function [KEIG, EIG, W] = readinput(filename) % read input data DATA = importdata(filename); KEIG = DATA(:,1:3); EIG = DATA(:,4); W = DATA(:,5); % ------------------------------------------------------------------------- function RES = dp2l(X0,X1,X2) % distance from point {X0} to line {X1}-{X2} % see http://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html denom = X2 - X1; denomabs = sqrt(dot(denom,denom)); if denomabs < eps display(X1); display(X2); error('X1 = X2'); end; numer = cross( X0-X1 , X0-X2 ); numerabs = sqrt(dot(numer,numer)); RES = numerabs/denomabs; % ------------------------------------------------------------------------- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Best regards Sanjeev ---------------------------------------------------------------- Dr. Sanjeev Kumar Srivastava Associate Professor Department of Physics Indian Institute of Technology Kharagpur Kharagpur 721302 India Ph.: 0091-3222-283854 (Office) 0091-3222-283855 (Residence) Mobile: 0091-9735444091 ------------------------------------------------------------------ ----- Original Message ----- From: "Oleg Rubel" <oru...@lakeheadu.ca> To: "A Mailing list for WIEN2k users" <wien@zeus.theochem.tuwien.ac.at> Sent: Tuesday, May 17, 2016 8:37:10 PM Subject: Re: [Wien] fold2Bloch installation problem. In addition to Dr. Abo suggestions: Generation of the k-path for unfolding can be tricky. It is generated keeping in mind the k-path you aim for the plot after unfolding + k-points that are not explicitly on the path, but can contribute there after unfolding. For instance, is you aim for the path (0,0,0)-(0,0,1/2) to plot with Matlab script, the *.klist_band should include points between (0,0,-1/2)-(0,0,1/2). More complex paths need much more thinking, though. Maciej Polak from Wroclaw is working on a code to assist with the *.klist_band generation for unfolding. As far as I know he is ready to release it. You might have the first opportunity to test :) As to the Matlab error, it might be useful to share the script in full. Oleg > On May 17, 2016, at 08:38, Gavin Abo <gs...@crimson.ua.edu> wrote: > > Regarding the matlab error, that is probably something Dr. Rubel would need > to look into. It might have something to do with the eps variable that is > used (on line 60). I don't see it defined in a preceding line. > > The .klist_band should be created just like before a band structure > calculation, either using XCrySDen, the WIEN2k templates, or by hand. It > looks like the .unfolded was replaced by .f2b. The .f2b file is created by > fold2Bloch. > > On 5/16/2016 10:35 PM, Dr. Sanjeev Kumar Srivastava wrote: >> Dear Oleg/Gavin/Wien2K users >> >> I am trying to follow the instructions. However, I am getting the following >> error in MatLab: >> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >>>> ubs_dots >> ??? Error using ==> axis>LocSetLimits >> Vector must have 4, 6, or 8 elements. >> >> Error in ==> axis at 96 >> LocSetLimits(ax(j),cur_arg); >> >> Error in ==> ubs_dots at 84 >> axis([0 max(L) min((ENE-Ef)*ry2ev) max((ENE-Ef)*ry2ev)]) >> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >> >> Certainly, I need your help here. >> >> Further, the Tutorial directories contain case.klist_band, case.struct and >> case.unfolded files. They must have come from a previous calculation. >> case.struct is clear, but which are the files from the previous run that >> should be copied as .klist_band (perhaps generated after a bandstructure >> calculation) and .unfolded in a new directory for fold2Bloch calculations? I >> hope I am able to express myself properly. >> >> Best regards >> >> Sanjeev >> >> >> >> ---------------------------------------------------------------- >> Dr. Sanjeev Kumar Srivastava >> Associate Professor >> Department of Physics >> Indian Institute of Technology Kharagpur >> Kharagpur 721302 >> India >> >> Ph.: 0091-3222-283854 (Office) >> 0091-3222-283855 (Residence) >> Mobile: 0091-9735444091 >> ------------------------------------------------------------------ >> >> ----- Original Message ----- >> From: "Oleg Rubel" <oru...@lakeheadu.ca> >> To: "A Mailing list for WIEN2k users" <wien@zeus.theochem.tuwien.ac.at> >> Sent: Monday, May 16, 2016 4:47:10 PM >> Subject: Re: [Wien] fold2Bloch installation problem. >> >> Please check fold2Bloch/Utils/ubs_dots.m >> It is a matlab script. Variables in “Init. parameters” section should be >> modified for your individual structure. >> If I recall correctly, matlab R2014a was the latest version that creates >> “petty” dot plots. Mathworks modified their plot engine later and >> acknowledged that this broke some features. >> >> Oleg >> >>> On May 16, 2016, at 2:36 AM, Dr. Sanjeev Kumar Srivastava >>> <sanj...@iitkgp.ac.in> wrote: >>> >>> Dear Gavin/Wien2K users >>> >>> Can I get the next set of instructions - how to plot the bandstructure >>> after the unfolding? >>> >>> Best regards >>> >>> Sanjeev >>> >>> ---------------------------------------------------------------- >>> Dr. Sanjeev Kumar Srivastava >>> Associate Professor >>> Department of Physics >>> Indian Institute of Technology Kharagpur >>> Kharagpur 721302 >>> India >>> >>> Ph.: 0091-3222-283854 (Office) >>> 0091-3222-283855 (Residence) >>> Mobile: 0091-9735444091 >>> ------------------------------------------------------------------ > _______________________________________________ > Wien mailing list > Wien@zeus.theochem.tuwien.ac.at > http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien > SEARCH the MAILING-LIST at: > http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html _______________________________________________ Wien mailing list Wien@zeus.theochem.tuwien.ac.at http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien SEARCH the MAILING-LIST at: http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html _______________________________________________ Wien mailing list Wien@zeus.theochem.tuwien.ac.at http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien SEARCH the MAILING-LIST at: http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html