Effective mass

Queries about input and output files, running specific calculations, etc.


Moderators: Global Moderator, Moderator

Post Reply
Message
Author
ashima29
Newbie
Newbie
Posts: 6
Joined: Mon May 15, 2017 8:05 am
License Nr.: 52ffc2158a7aad0ddad4

Effective mass

#1 Post by ashima29 » Thu Nov 02, 2017 8:05 am

Hi everyone!! Can anyone help me to calculate Effective mass of charge carriers in vasp ?? Thanks in advance.

mwistey
Newbie
Newbie
Posts: 12
Joined: Fri Sep 26, 2014 2:22 am
License Nr.: 5-1877

Re: Effective mass

#2 Post by mwistey » Tue Dec 05, 2017 7:46 am

First calculate band structure using one of these techniques:
http://cms.mpi.univie.ac.at/wiki/index. ... dstructure
Plot it with p4v. When plot appears, pick the 4 relevant E-k points using shift key, in order: G->L, G, G->X, VB. Export them and copy them to variable "Ek" in Matlab, then run the Matlab script below.


% eigenval2mass
% Extract effective mass from EIGENVAL file.
% Run this file in same directory as EIGENVAL. When plot appears, pick
% the 4 relevant E-k points using shift key, in order: G->L, G, G->X, VB.
% Requires import_eigenval() from vasplab. See
% See http://www.mathworks.com/matlabcentral/ ... eigenval.m
%
deltakL = 0.024541; % L to Gamma in 39 steps (1 to 40)
deltakX = 0.028337; % X to Gamma in 39 steps (41 to 80)
q = 1.602*10^-19; % Coulomb
hbar_eV = 6.58E-16; % eV*sec
hbar_J = 1.05E-34; % J*sec
m0_kg = 9.11E-31; % kg

%[eig,kp,nelec]=import_eigenval('/path/to/EIGENVAL');
[eig,kp,nelec]=import_eigenval;
%[m1,i1]=max(e1,[],2);
%plot(eig)
plot(eig(:,250:265))
display('Pick 4 points in order, with shift key: G->L, G, G->X, VBmax')
display('Export them to Ek, then press enter to continue.')
pause
Ek.Position
ev=Ek(1).Position; % L side of Gamma
ex=Ek(2).Position; % Gamma
eg=Ek(3).Position; % X side of Gamma
el=Ek(4).Position; % Valence band
mel=hbar_eV*hbar_J*deltakL^2/2/(el(2)-eg(2))*10^20/m0_kg;
mex=hbar_eV*hbar_J*deltakL^2/2/(ex(2)-eg(2))*10^20/m0_kg;
Eg=eg(2)-ev(2);

display(pwd)
display(sprintf('G->L \tGamma \tG->X \tVB'))
display(sprintf('%f\t%f\t%f\t%f',el(2),eg(2),ex(2),ev(2)))
display(sprintf('mG->L = %f\tmG->X = %f\tEg(eV) = %f',mel,mex,Eg))

ashima29
Newbie
Newbie
Posts: 6
Joined: Mon May 15, 2017 8:05 am
License Nr.: 52ffc2158a7aad0ddad4

Re: Effective mass

#3 Post by ashima29 » Fri Dec 22, 2017 10:12 am

Thanks a lot sir ; Can you please elaborate this line i.e "plot(eig(:,250:265))" what points are you considering ??

Post Reply