mirror of
https://github.com/c-sooyoung/fold_slice.git
synced 2026-09-18 00:09:10 +09:00
initial commit
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
% Calculate ZincBlende Bandstructure from Walter Harrison's book with an
|
||||
% added extra s* state for the Conduction band (labelled as t since * inside
|
||||
% variable names is not allowed) as in Vogl's paper
|
||||
|
||||
%Onsite energies are given for cation then anion (same for elemental)
|
||||
% e.g. ecs is energy for cation s, eap is energy for anion p.
|
||||
|
||||
hm = 7.62; % hbar^2/m in eV.A^2
|
||||
|
||||
% Cubic lattice constant
|
||||
alat = 5.65; % GaAs lattice constant
|
||||
|
||||
% GaAs
|
||||
% Onsite Matrix elements (in eV)
|
||||
eas = -8.3431;
|
||||
eap = 1.0414;
|
||||
eat = 8.5914;
|
||||
|
||||
ecs = -2.6569;
|
||||
ecp = 3.6686;
|
||||
ect = 6.7386;
|
||||
|
||||
|
||||
%vectors to neighboring cations
|
||||
d1 = alat/4 * [1 1 1];
|
||||
d2 = alat/4 * [1 -1 -1];
|
||||
d3 = alat/4 * [-1 1 -1];
|
||||
d4 = alat/4 * [-1 -1 1];
|
||||
d = [d1; d2; d3; d4];
|
||||
|
||||
%phase factors
|
||||
g0 = inline('exp(i*k*transpose(d(1,:)))+exp(i*k*transpose(d(2,:)))+exp(i*k*transpose(d(3,:)))+exp(i*k*transpose(d(4,:)))','k','d');
|
||||
g1 = inline('exp(i*k*transpose(d(1,:)))+exp(i*k*transpose(d(2,:)))-exp(i*k*transpose(d(3,:)))-exp(i*k*transpose(d(4,:)))','k','d');
|
||||
g2 = inline('exp(i*k*transpose(d(1,:)))-exp(i*k*transpose(d(2,:)))+exp(i*k*transpose(d(3,:)))-exp(i*k*transpose(d(4,:)))','k','d');
|
||||
g3 = inline('exp(i*k*transpose(d(1,:)))-exp(i*k*transpose(d(2,:)))-exp(i*k*transpose(d(3,:)))+exp(i*k*transpose(d(4,:)))','k','d');
|
||||
|
||||
%Interatomic Matrix Elements (eV) using Harrison's universal parameters
|
||||
dn = norm(d1);
|
||||
|
||||
% Composite Matrix elements
|
||||
Ess = -1.4054* hm/dn^2;
|
||||
Esp = 1.0392*(hm/dn^2);
|
||||
Exx = 0.3111*(hm/dn^2);
|
||||
Exy = 0.8298*(hm/dn^2);
|
||||
Etp = 0.9549* hm/dn^2; % Harrison parameter for s*ps from Vtps*dn^2/hm
|
||||
Ett = 0; % In Dow's model no coupling between s* states on adjacent atoms is allowed
|
||||
|
||||
|
||||
% Zone boundary and number of k points
|
||||
qbz = 2*pi/alat;
|
||||
nk=20;
|
||||
j=1;
|
||||
|
||||
E=1;clear E;
|
||||
kx=1; clear kx;
|
||||
for q=0:qbz/nk:qbz,
|
||||
k = [q 0 0];
|
||||
|
||||
%LCAO hamiltonian for the zincblende structure
|
||||
% Calculate Upper Half of the LCAO Hamiltonian Matrix and use its
|
||||
% Hermiticity to get lower half
|
||||
Hu = [[ ecs/2 Ess *g0(k,d) 0 0 0 Esp*g1(k,d) Esp * g2(k,d) Esp* g3(k,d) 0 0];
|
||||
[ 0 eas/2 -Esp * conj(g1(k,d)) -Esp * conj(g2(k,d)) -Esp * conj(g3(k,d)) 0 0 0 0 0];
|
||||
[ 0 0 ecp/2 0 0 Exx * g0(k,d) Exy * g3(k,d) Exy * g2(k,d) 0 -Etp * g1(k,d)];
|
||||
[ 0 0 0 ecp/2 0 Exy * g3(k,d) Exx * g0(k,d) Exy * g1(k,d) 0 -Etp * g2(k,d) ];
|
||||
[ 0 0 0 0 ecp/2 Exy * g2(k,d) Exy * g1(k,d) Exx * g0(k,d) 0 -Etp * g3(k,d)];
|
||||
[ 0 0 0 0 0 eap/2 0 0 Etp * g1(k,d) 0 ];
|
||||
[ 0 0 0 0 0 0 eap/2 0 Etp * g2(k,d) 0 ];
|
||||
[ 0 0 0 0 0 0 0 eap/2 Etp * g3(k,d) 0 ];
|
||||
[ 0 0 0 0 0 0 0 0 eat/2 Ett *g0(k,d) ];
|
||||
[ 0 0 0 0 0 0 0 0 0 eat/2];
|
||||
];
|
||||
|
||||
%Its adjoint
|
||||
Hd = (Hu)';
|
||||
|
||||
%The full Hermitian Matrix
|
||||
H = Hu+Hd;
|
||||
|
||||
%Calculate Eigenvalues
|
||||
E(j,:) = eig(H)';
|
||||
kx(j)=q;
|
||||
j=j+1;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
plot(kx,E,'k');
|
||||
ylabel('Energy (eV)');
|
||||
|
||||
Reference in New Issue
Block a user