Posts: 10
| Last online: 01.18.2025
-
-
Dear Sir,
In the unfoldBandKPTS.f90 file, if one replaces the do i=1,3 p_cell%amat(:,i) = matmul(inv_unfold, cell%amat(:,i)) enddo with p_cell%amat = matmul(cell%amat, inv_unfold) then the primitive cell matrix comes to be correct. There is one more bug in inv3(unfold,inv_unfold,inv_unfold_det), inv_unfold_det value is actually the det of unfold, not the det of inv_unfold. Hence, I am hoping the bugs in the unfoldBandKPTS.f90 will be fixed in the next development version.
Thank you sir, With best regards, Dr. Venkateswara
-
-
Dear Sir,
I forgot to mention one point. The primitive vectors for hexagonal cell a1, a2, a3 are valid if a1 and a2 magnitudes are equal, when we convert from supercell vectors A1, A2 and A3. That is not satisfying the above case.
Thank you sir, With best regards, Dr. Venkateswara
-
Dear Sir,
I tried to debug the error in unfoldBandsKPTS.f90 file. banddos%unfoldTransMat, unfold, inv_unfold, inv_unfold_det, cell%amat(:, i) are fine. This one matmul(inv_unfold, cell%amat(:, i)) seems different as compared to python np.matmul. So, the tranformation matrix should be transpose due to different way of reading arrays in python and fortran. So, I corrected the transMat by its transpose in xml.
The problem, I figured out is that pcell%amat is not correct. The reason seems that the fluer is making hexagonal lattice vectors as (x,y,0), (x,-y,0) and (0,0,z), by some transformation. So, simply pcell%amat(:,i) = matmul(inv_unfold,cell%amat(:,i)) yielding error values. So, if one can correct here, I think the problem will be solved.
Thank you very much sir,
With best regards, Dr. Venkateswara
-
Dear Gregor, I followed the tutorial link that you shared. I am not getting the unfolded band structure. In the file bands_sc.1 the third column contains negative numbers as well. If you simply plot using gnuplot script, the one bands_sc.gnu, the band structure seems exactly same as the folded band structure.
In the second approach, I tried to generate supercell kpoints by reading the kpts.xml type='path' and saving back to kpts.xml by kPointList name differently. Then the calculated band structure seems gapped in xCoords or k, x-axis. This band structure also does not appear properly to me. I have used the following python script for conversion of primitive cell kpoints to supercell KPONTS, def find_K_from_k(k, M): ''' Get the K vector of the supercell onto which the k vector of the primitive cell folds. The unfolding vector G, which satisfies the following equation, is also returned:
k = K + G
where G is a reciprocal space vector of the supercell. ''' M = np.array(M) Kc = np.dot(k, M.T) G = np.array(np.round(Kc), dtype=int) KG = Kc - np.round(Kc)
return KG, G
Ofcouse one can use np.floor() to remove the G vectors (m1, m2, m3) from the estimated supercell Kpoint to bring it into the first Brillouin zone in the supercell. Here the transMat or M is M = np.array([[2,1,0],[-1,1,0],[0,0,1]],dtype=np.int32)
I highly appreciate your help in this regard.
Thank you very much.
With best regards, Dr. Venkateswara
-
-
Dear Gregor,
I am very grateful to you for the prompt reply. Yes, it helps my to solve my problem.
With best regards, Dr. Venkateswara
-
-
Dear Sir, I am sorry for the typo in the previous text/problem. The matrix is a non-diagonal integer elements and is invertible. Is there a way to feed this matrix into the inp.xml file in Fleur file for the band unfolding?
Thank you sir,
With best regards, Dr. Venkateswara
-
-
-
Dear Gregor,
I thank you very much for considering the issue to be solved.
With best regards, Venkateswara
-
-
Thank you very much sir for your quick response. Forgive me for my bad English in the original message.
With best regards Venkateswara
-
|
|