How to Calculate Hopping Parameters and Plot Band Structure in MATLAB?

In summary, to write the program, you will need to create a loop to calculate the phase for each contribution to the hopping parameter, multiply it with the corresponding contribution, and keep track of the total hopping parameter. Then, you can create the Hamiltonian matrix using the provided matrix elements and plot the eigenvalues to obtain the full band structure.
  • #1
anahita
39
0
Who can help me in writing the following program:

phase(i) = exp(1i*dot(k(:,index),R(:,i)))

This gives you the phase you're going to multiply with the hopping parameter. You'd have to write a loop that runs from i = 1:3 in order to multiply each contribution to the hopping parameter such that the product of all 3 would get you the total hopping parameter. k and R here are matrices that contain generated wavevectors and the coordinates for the atoms, respectively.

Es = -4.2;
Ep = 1.715;
orbitals = [Es Ep Ep Ep];
Vpp_sigma = 2.72;
Vpp_pii = -0.72;
Vss_sigma = -2.08;
Vsp_sigma = 2.48;

a = 3.86;
a1 = (a/2) * [sqrt(3), -1, 0];
a2 = (a/2) * [sqrt(3), 1, 0];

coordinates = [4.45714 0 0; %B
2.22857 0 0.46152]; %A

R1 = coordinates(2, :)-coordinates(1,:);
R2 = R1 + a1;
R3 = R1 + a2;
R = [R1' R2' R3'];

n = dot(R,[ 0 0 1])/norm(R); %direction cosine
l = dot(R,[1 0 0])/norm(R);
m = dot(R, [0 1 0])/norm(R);
tss = Vss_sigma;
txs = l*Vss_sigma;
tys = m*Vss_sigma;
tzs = n*Vss_sigma;
txy = l*m*Vpp_sigma - l*m*Vpp_pii;
txz = l*n*Vpp_sigma - l*n*Vpp_pii;
tyz = m*n*Vpp_sigma - m*n*Vpp_pii;
tzz = n^2 *Vpp_sigma+(1-n^2)*Vpp_pii;
txx = l^2 *Vpp_sigma+(1-l^2)*Vpp_pii;
tyy = m^2 *Vpp_sigma+(1-m^2)*Vpp_pii;

These will be your matrix elements that you'll want. Since the Hamiltonian matrix takes a block-diagonal form, you can create an A block and B block and set the Hamiltonian equal to [A B; B A]. Once you run the loop to get all the hopping parameters correct you can simply plot the eigenvalues of the full Hamiltonian matrix across the desired path to obtain the full band structure.
 
Physics news on Phys.org
  • #2


Hi there,

I can definitely help you with writing this program. Let's start by breaking down the steps you'll need to take in order to get the total hopping parameter:

1. Create a loop that runs from i = 1:3. This will allow you to loop through each contribution to the hopping parameter.

2. Within the loop, use the formula provided to calculate the phase for each contribution. This will involve using the exp() and dot() functions, as well as the k and R matrices.

3. Multiply the phase with the corresponding contribution to the hopping parameter. This can be done using the * operator.

4. Keep track of the total hopping parameter by adding each contribution to a sum variable.

5. Once the loop has completed, the sum variable will contain the total hopping parameter.

As for creating the Hamiltonian matrix and plotting the eigenvalues, here are some steps you can follow:

1. Create two matrices, A and B, with dimensions of 2x2. These will represent the A and B blocks of the Hamiltonian matrix.

2. Use the matrix elements provided in the code snippet to fill in the corresponding entries in the A and B matrices.

3. Use the MATLAB function diag() to create a diagonal matrix with the total hopping parameter as the diagonal entries.

4. Use the MATLAB function blkdiag() to create the full Hamiltonian matrix by combining the A and B matrices with the diagonal matrix.

5. Use the MATLAB function eig() to calculate the eigenvalues of the Hamiltonian matrix.

6. Plot the eigenvalues across the desired path to obtain the full band structure.

I hope this helps! Let me know if you have any further questions or need clarification on any of the steps. Good luck with your program!
 

Related to How to Calculate Hopping Parameters and Plot Band Structure in MATLAB?

1. What is band structure?

Band structure refers to the distribution of energy levels (or bands) of electrons in a solid material. It shows how the energy of electrons varies with their momentum, and is an important concept in the study of solid state physics.

2. Why is plotting the band structure important?

Plotting the band structure allows us to understand the electronic properties of a material. It can reveal information about the conductivity, insulating behavior, and other important characteristics of a material.

3. How is the band structure plotted?

The band structure is typically plotted using a mathematical model called the Bloch theory. This theory takes into account the periodic nature of the crystal lattice and allows us to calculate the energy of electrons at different points in the Brillouin zone.

4. What do the different bands represent in a band structure plot?

The bands in a band structure plot represent the allowed energy states for electrons in a material. The lower bands represent the occupied states, while the higher bands represent the unoccupied states. The band gap between the two indicates the energy required for an electron to move from the lower to the higher band.

5. How can band structure plots be used in materials research?

Band structure plots are a valuable tool in materials research as they can help predict the electronic and optical properties of a material. They can also be used to design new materials with specific electronic properties, such as semiconductors for use in electronic devices.

Similar threads

  • Advanced Physics Homework Help
Replies
6
Views
263
  • Atomic and Condensed Matter
Replies
1
Views
1K
Replies
2
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
3K
  • Atomic and Condensed Matter
Replies
3
Views
947
  • Atomic and Condensed Matter
Replies
2
Views
2K
Replies
1
Views
1K
Replies
25
Views
3K
  • Atomic and Condensed Matter
Replies
3
Views
12K
Replies
3
Views
776
Back
Top