Commit edb1e4bb authored by Daniel Wortmann's avatar Daniel Wortmann

Merge branch 'develop' of iffgit.fz-juelich.de:fleur/fleur into develop

parents 42c9cf05 cf07e41e
......@@ -40,6 +40,8 @@ CONTAINS
USE m_mpi_bc_potden
#endif
USE m_symmetrize_matrix
USE m_unfold_band_kpts !used for unfolding bands
USE m_types_mpimat
IMPLICIT NONE
......@@ -91,6 +93,7 @@ CONTAINS
TYPE(t_lapw) :: lapw
CLASS(t_mat), ALLOCATABLE :: zMat
CLASS(t_mat), ALLOCATABLE :: hmat,smat
CLASS(t_mat), ALLOCATABLE :: smat_unfold !used for unfolding bandstructure
! Variables for HF or hybrid functional calculation
INTEGER :: comm(kpts%nkpt),irank2(kpts%nkpt),isize2(kpts%nkpt)
......@@ -163,6 +166,23 @@ CONTAINS
!Try to symmetrize matrix
CALL symmetrize_matrix(mpi,noco,kpts,nk,hmat,smat)
IF (banddos%unfoldband) THEN
select type(smat)
type is (t_mat)
allocate(t_mat::smat_unfold)
select type(smat_unfold)
type is (t_mat)
smat_unfold=smat
end select
type is (t_mpimat)
allocate(t_mpimat::smat_unfold)
select type(smat_unfold)
type is (t_mpimat)
smat_unfold=smat
end select
end select
END IF
CALL eigen_diag(hmat,smat,nk,jsp,iter,ne_all,eig,zMat)
DEALLOCATE(hmat,smat)
......@@ -187,6 +207,12 @@ CONTAINS
CALL MPI_BARRIER(mpi%MPI_COMM,ierr)
#endif
CALL timestop("EV output")
IF (banddos%unfoldband) THEN
CALL calculate_plot_w_n(banddos,cell,kpts,smat_unfold,zMat,lapw,nk,jsp,eig,results)
DEALLOCATE(smat_unfold)
END IF
END DO k_loop
END DO ! spin loop ends
......
......@@ -7,12 +7,12 @@
MODULE m_bandstr1
use m_juDFT
USE m_types
use m_unfold_band_kpts
!----------------------------------------------------------------------
!----------------------------------------------------------------------
CONTAINS
SUBROUTINE bandstr1(
> idsyst,idtype,bmat,kpts,input,l_fillArrays)
> idsyst,idtype,bmat,kpts,input,l_fillArrays,banddos)
IMPLICIT NONE
TYPE(t_input),INTENT(IN) :: input
......@@ -21,6 +21,7 @@
INTEGER, INTENT (IN) :: idsyst,idtype
REAL, INTENT (IN) :: bmat(3,3)
LOGICAL, INTENT (IN) :: l_fillArrays
TYPE(t_banddos),INTENT(IN) :: banddos
REAL, POINTER :: syp(:,:)
CHARACTER(len=1), POINTER :: ssy(:)
......@@ -110,9 +111,13 @@
CLOSE (41)
END IF
CALL write_gnu(
IF (banddos%unfoldband) THEN
CALL write_gnu_sc(
> nosyp,d,ssy,input)
ELSE
CALL write_gnu(
> nosyp,d,ssy,input)
END IF
DEALLOCATE ( rsyp,syp,del,nk,ssy,d,bkTemp )
END SUBROUTINE bandstr1
......
......@@ -154,7 +154,7 @@
!-------------------- Want to make a Bandstructure ? --------
!
IF (banddos%ndir == -4) THEN
CALL bandstr1(idsyst,idtype,cell%bmat,kpts,input,l_fillArrays)
CALL bandstr1(idsyst,idtype,cell%bmat,kpts,input,l_fillArrays,banddos)
RETURN
ENDIF
!
......
......@@ -64,10 +64,12 @@ contains
END IF
!Rescale weights and kpoints
kpts%wtkpt(:) = kpts%wtkpt(:) / sum(kpts%wtkpt)
kpts%bk(:,:) = kpts%bk(:,:) / kpts%posScale
kpts%posScale = 1.0
IF (kpts%nkpt3(3).EQ.0) kpts%nkpt3(3) = 1
IF (.not.banddos%unfoldband) THEN
kpts%wtkpt(:) = kpts%wtkpt(:) / sum(kpts%wtkpt)
END IF
kpts%bk(:,:) = kpts%bk(:,:) / kpts%posScale
kpts%posScale = 1.0
IF (kpts%nkpt3(3).EQ.0) kpts%nkpt3(3) = 1
END IF
end subroutine kpoints
......
!--------------------------------------------------------------------------------
! Copyright (c) 2018 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_unfold_band_kpts
CONTAINS
SUBROUTINE unfold_band_kpts(banddos,p_cell,cell,p_kpts,kpts)
SUBROUTINE build_primitive_cell(banddos,p_cell,cell)
USE m_types
USE m_inv3
USE m_constants, ONLY : tpi_const
implicit none
TYPE(t_banddos),INTENT(IN) :: banddos
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_cell),INTENT(INOUT) :: p_cell
TYPE(t_kpts),INTENT(INOUT) :: p_kpts
TYPE(t_kpts),INTENT(INOUT) :: kpts
INTEGER :: i
DO i =1,3
p_cell%amat(1,i)=cell%amat(1,i)/banddos%s_cell_x
......@@ -24,31 +26,50 @@ CONTAINS
CALL inv3(p_cell%amat,p_cell%bmat,p_cell%omtil)
p_cell%bmat=p_cell%bmat*tpi_const
p_cell%latnam=cell%latnam
END SUBROUTINE build_primitive_cell
SUBROUTINE unfold_band_kpts(banddos,p_cell,cell,p_kpts,kpts)
USE m_types
USE m_inv3
USE m_constants, ONLY : tpi_const
implicit none
TYPE(t_banddos),INTENT(IN) :: banddos
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_cell),INTENT(INOUT) :: p_cell
TYPE(t_kpts),INTENT(INOUT) :: p_kpts
TYPE(t_kpts),INTENT(INOUT) :: kpts
CALL build_primitive_cell(banddos,p_cell,cell)
p_kpts=kpts
write(1088,*) 'banddos%unfoldband: ', banddos%unfoldband
write(1088,*) 'brav. matrix: '
write(1088,'(3f15.8)') cell%amat
write(1088,'(f15.8,f15.8,f15.8)') cell%amat(1,1), cell%amat(1,2), cell%amat(1,3)
write(1088,'(f15.8,f15.8,f15.8)') cell%amat(2,1), cell%amat(2,2), cell%amat(2,3)
write(1088,'(f15.8,f15.8,f15.8)') cell%amat(3,1), cell%amat(3,2), cell%amat(3,3)
write(1088,*) 'brav. rez. matrix: '
write(1088,'(3f15.8)') cell%bmat
write(1088,'(f15.8,f15.8,f15.8)') cell%bmat(1,1), cell%bmat(1,2), cell%bmat(1,3)
write(1088,'(f15.8,f15.8,f15.8)') cell%bmat(2,1), cell%bmat(2,2), cell%bmat(2,3)
write(1088,'(f15.8,f15.8,f15.8)') cell%bmat(3,1), cell%bmat(3,2), cell%bmat(3,3)
write(1088,*) ' primitive brav. matrix: '
write(1088,'(3f15.8)') p_cell%amat
write(1088,*)'written as normal matrix (zeile, spalte)'
write(1088,'(f15.8,f15.8,f15.8)') p_cell%amat(1,1), p_cell%amat(1,2), p_cell%amat(1,3)
write(1088,'(f15.8,f15.8,f15.8)') p_cell%amat(2,1), p_cell%amat(2,2), p_cell%amat(2,3)
write(1088,'(f15.8,f15.8,f15.8)') p_cell%amat(3,1), p_cell%amat(3,2), p_cell%amat(3,3)
write(1088,*) 'primitive brav. rez. matrix: '
write(89,'(3f15.8)') p_cell%bmat
write(1088,'(3f15.8)') p_cell%bmat
write(1088,'(f15.8,f15.8,f15.8)') p_cell%bmat(1,1), p_cell%bmat(1,2), p_cell%bmat(1,3)
write(1088,'(f15.8,f15.8,f15.8)') p_cell%bmat(2,1), p_cell%bmat(2,2), p_cell%bmat(2,3)
write(1088,'(f15.8,f15.8,f15.8)') p_cell%bmat(3,1), p_cell%bmat(3,2), p_cell%bmat(3,3)
write(1088,'(a,i7,a,i7)') 'kpts%nkpt',kpts%nkpt,' p_kpts%nkpt',p_kpts%nkpt
write(1088,*) kpts%specialPoints
END SUBROUTINE unfold_band_kpts
SUBROUTINE find_supercell_kpts(banddos,p_cell,cell,p_kpts,kpts)
USE m_types
USE m_juDFT
USE m_inv3
implicit none
TYPE(t_banddos),INTENT(IN) :: banddos
......@@ -58,51 +79,224 @@ CONTAINS
TYPE(t_kpts),INTENT(INOUT) :: kpts
INTEGER :: i,m1,m2,m3
REAL :: rez_inv_to_internal(3,3)
REAL :: rez_inv_det
REAL :: list(9,p_kpts%nkpt) !cartesion coordinates for k,K,m
REAL :: pc_kpoint_i(3) !primitive cell kpoint internal
REAL :: sc_kpoint_i(3) !super cell kpoint internal
REAL :: pc_kpoint_c(3) !primitive cell kpoint cartesian
REAL :: sc_kpoint_c(3) !super cell kpoint cartesian
REAL :: eps(3)
LOGICAL :: representation_found
write(1088,'(a,i7,a,i7)') 'kpts%nkpt',kpts%nkpt,' p_kpts%nkpt',p_kpts%nkpt
write(1088,'(3f15.8)') p_kpts%specialPoints
write(88,'(3f15.8)') p_kpts%bk
OPEN (679,file='bands_sc.1',status='unknown') !This is kind of my birthday 6 july 1992 (S.R.)
eps = 1.0e-10
CALL inv3(cell%bmat,rez_inv_to_internal,rez_inv_det)
write(1088,*) p_kpts%specialPoints
write(333,'(3f15.8)')p_kpts%bk
DO i= 1,size(list,2)
pc_kpoint_c(1)=p_kpts%bk(1,i)*p_cell%bmat(1,1)+p_kpts%bk(2,i)*p_cell%bmat(1,2)+p_kpts%bk(3,i)*p_cell%bmat(1,3)
pc_kpoint_c(2)=p_kpts%bk(2,i)*p_cell%bmat(2,1)+p_kpts%bk(2,i)*p_cell%bmat(2,2)+p_kpts%bk(3,i)*p_cell%bmat(2,3)
pc_kpoint_c(3)=p_kpts%bk(3,i)*p_cell%bmat(3,1)+p_kpts%bk(2,i)*p_cell%bmat(3,2)+p_kpts%bk(3,i)*p_cell%bmat(3,3)
pc_kpoint_c(2)=p_kpts%bk(1,i)*p_cell%bmat(2,1)+p_kpts%bk(2,i)*p_cell%bmat(2,2)+p_kpts%bk(3,i)*p_cell%bmat(2,3)
pc_kpoint_c(3)=p_kpts%bk(1,i)*p_cell%bmat(3,1)+p_kpts%bk(2,i)*p_cell%bmat(3,2)+p_kpts%bk(3,i)*p_cell%bmat(3,3)
list(1,i)=pc_kpoint_c(1)
list(2,i)=pc_kpoint_c(2)
list(3,i)=pc_kpoint_c(3)
representation_found=.false.
m_loop: DO m1= -banddos%s_cell_x,banddos%s_cell_x
DO m2= -banddos%s_cell_y,banddos%s_cell_y
DO m3= -banddos%s_cell_z,banddos%s_cell_z
pc_kpoint_c(1)=list(1,i)-m1*cell%bmat(1,1)-m2*cell%bmat(1,2)-m3*cell%bmat(1,3)
pc_kpoint_c(2)=list(2,i)-m1*cell%bmat(2,1)-m2*cell%bmat(2,2)-m3*cell%bmat(2,3)
pc_kpoint_c(3)=list(3,i)-m1*cell%bmat(3,1)-m2*cell%bmat(3,2)-m3*cell%bmat(3,3)
IF ((dot_product(pc_kpoint_c(:), cell%bmat(:,1)) >= 0).AND.(dot_product(pc_kpoint_c(:), cell%bmat(:,1)) < dot_product(cell%bmat(:,1), cell%bmat(:,1))) &
& .AND. (dot_product(pc_kpoint_c(:), cell%bmat(:,2)) >= 0).AND.(dot_product(pc_kpoint_c(:), cell%bmat(:,2)) < dot_product(cell%bmat(:,2), cell%bmat(:,2))) &
& .AND. (dot_product(pc_kpoint_c(:), cell%bmat(:,3)) >= 0).AND.(dot_product(pc_kpoint_c(:), cell%bmat(:,3)) < dot_product(cell%bmat(:,3), cell%bmat(:,3)))) THEN
list(4,i)=pc_kpoint_c(1)
list(5,i)=pc_kpoint_c(2)
list(6,i)=pc_kpoint_c(3)
list(7,i)=-m1
list(8,i)=-m2
list(9,i)=-m3
representation_found=.true.
END IF
IF (representation_found) EXIT m_loop
END DO
END DO
END DO m_loop
IF (.not.representation_found) THEN
write(*,'(a,f15.8,f15.8,f15.8)') 'No representation found for the following kpoint:',list(1,i),list(2,i),list(3,i)
END IF
! representation_found=.false.
!m_loop: DO m1= -banddos%s_cell_x,banddos%s_cell_x
! DO m2= -banddos%s_cell_y,banddos%s_cell_y
! DO m3= -banddos%s_cell_z,banddos%s_cell_z
! pc_kpoint_c(1)=list(1,i)-m1*cell%bmat(1,1)-m2*cell%bmat(1,2)-m3*cell%bmat(1,3)
! pc_kpoint_c(2)=list(2,i)-m1*cell%bmat(2,1)-m2*cell%bmat(2,2)-m3*cell%bmat(2,3)
! pc_kpoint_c(3)=list(3,i)-m1*cell%bmat(3,1)-m2*cell%bmat(3,2)-m3*cell%bmat(3,3)
!! IF ( (dot_product(pc_kpoint_c(:)+eps(:), cell%bmat(:,1)) >= 0).AND.((dot_product(pc_kpoint_c(:)+eps(:), cell%bmat(:,1)) < dot_product(cell%bmat(:,1), cell%bmat(:,1)))) &
!! & .AND. (dot_product(pc_kpoint_c(:)+eps(:), cell%bmat(:,2)) >= 0).AND.((dot_product(pc_kpoint_c(:)+eps(:), cell%bmat(:,2)) < dot_product(cell%bmat(:,2), cell%bmat(:,2)))) &
!! & .AND. (dot_product(pc_kpoint_c(:)+eps(:), cell%bmat(:,3)) >= 0).AND.((dot_product(pc_kpoint_c(:)+eps(:), cell%bmat(:,3)) < dot_product(cell%bmat(:,3), cell%bmat(:,3))))) THEN
! IF (all((matmul(rez_inv_to_internal,pc_kpoint_c)+eps(:))>=0).and.all((matmul(rez_inv_to_internal,pc_kpoint_c)+eps(:))<1)) THEN
! list(4,i)=pc_kpoint_c(1)
! list(5,i)=pc_kpoint_c(2)
! list(6,i)=pc_kpoint_c(3)
! list(7,i)=-m1
! list(8,i)=-m2
! list(9,i)=-m3
! representation_found=.true.
! END IF
! IF (representation_found) EXIT m_loop
! END DO
! END DO
! END DO m_loop
! IF (.not.representation_found) THEN
! write(*,'(a,f15.8,f15.8,f15.8)') 'No representation found for the following kpoint:',list(1,i),list(2,i),list(3,i)
! END IF
kpts%bk(:,i)=matmul(rez_inv_to_internal,pc_kpoint_c)
END DO
write(90,'(9f15.8)') list
CALL juDFT_error('Not yet implemented', calledby='find_supercell_kpts')
write(91,'(3f15.8)') kpts%bk
write(92,*) kpts%wtkpt
ALLOCATE (kpts%sc_list(9,p_kpts%nkpt))
kpts%sc_list=list
write(90,'(9f15.8)') kpts%sc_list
END SUBROUTINE find_supercell_kpts
SUBROUTINE calculate_plot_w_n(banddos,cell,kpts,smat_unfold,zMat,lapw,i_kpt,jsp,eig,results)
USE m_types
USE m_juDFT
USE m_inv3
USE m_types_mpimat
USE m_constants
implicit none
TYPE(t_banddos),INTENT(IN) :: banddos
TYPE(t_results),INTENT(IN) :: results
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_kpts),INTENT(IN) :: kpts
CLASS(t_mat),INTENT(INOUT) :: smat_unfold
CLASS(t_mat),INTENT(IN) :: zMat
TYPE(t_lapw),INTENT(IN) :: lapw
TYPE(t_cell) :: p_cell
INTEGER, INTENT(IN) :: i_kpt,jsp
REAL, INTENT(IN) :: eig(:)
INTEGER :: i,j,k
REAL, ALLOCATABLE ::w_n(:)
REAL ::kpt_dist=0
CALL build_primitive_cell(banddos,p_cell,cell)
DO j = 1, lapw%nv(jsp)
DO i = 1, j-1
IF(smat_unfold%l_real) THEN
smat_unfold%data_r(j,i) = smat_unfold%data_r(i,j)
ELSE
smat_unfold%data_c(j,i) = CONJG(smat_unfold%data_c(i,j))
END IF
END DO
END DO
IF (i_kpt>1) THEN
kpt_dist=kpt_dist+sqrt(dot_product(kpts%sc_list(1:3,i_kpt)-kpts%sc_list(1:3,i_kpt-1),kpts%sc_list(1:3,i_kpt)-kpts%sc_list(1:3,i_kpt-1)))
END IF
! write(*,*) 'real zmat size dim 1:', size(zMat%data_r,1), 'dim2:', size(zMat%data_r,2)
! write(*,*) 'smat dim1', size(smat_unfold%data_r,1), 'dim2', size(smat_unfold%data_r,2),'data',smat_unfold%data_r(2,2)
! write(222,'(234f15.8)') zMat%data_r
! write(223,'(234f15.8)') smat_unfold%data_r
ALLOCATE(w_n(zMat%matsize2))
w_n = 0.0
! write(345,'(3I6)') lapw%gvec(:,:,jsp)
DO i=1,zMat%matsize2
DO j=1,lapw%nv(jsp)
IF ((modulo(lapw%gvec(1,j,jsp),banddos%s_cell_x)==0).AND.&
&(modulo(lapw%gvec(2,j,jsp),banddos%s_cell_y)==0).AND.&
&(modulo(lapw%gvec(3,j,jsp),banddos%s_cell_z)==0)) THEN
DO k=1,lapw%nv(jsp)
IF (zmat%l_real) THEN
w_n(i)=w_n(i)+zMat%data_r(j,i)*zMat%data_r(k,i)*smat_unfold%data_r(j,k)
ELSE
w_n(i)=w_n(i)+CONJG(zMat%data_c(j,i))*zMat%data_c(k,i)*smat_unfold%data_c(j,k)
END IF
END DO
END IF
END DO
write(679,'(3f15.8)') kpt_dist, (eig(i)*hartree_to_ev_const),w_n(i)
END DO
! write (1099,'(f15.8)') w_n
IF (i_kpt==kpts%nkpt) THEN
CALL juDFT_error('Unfolded Bandstructure created succesfully - use band_sc.gnu to plot', calledby='calculate_plot_w_n')
END IF
! CALL juDFT_error('Unfolded Bandstructure created succesfully - use band_sc.gnu to plot', calledby='calculate_plot_w_n')
END SUBROUTINE
SUBROUTINE write_gnu_sc(nosyp,d,ssy,input)
USE m_types
USE m_juDFT
IMPLICIT NONE
TYPE(t_input),INTENT(IN) :: input
INTEGER, INTENT (IN) :: nosyp
REAL, INTENT (IN) :: d(nosyp)
CHARACTER(len=1), INTENT (IN) :: ssy(nosyp)
INTEGER n,aoff,adel
CHARACTER(LEN=200) tempTitle
aoff = iachar('a')-1
adel = iachar('a')-iachar('A')
!write(*,*) aoff,adel
OPEN (27,file='band_sc.gnu',status='unknown')
WRITE (27,*) 'reset'
WRITE (27,900)
WRITE (27,901)
WRITE (27,902)
WRITE (27,903)
WRITE(tempTitle,'(10a)') input%comment
IF(TRIM(ADJUSTL(tempTitle)).EQ.'') THEN
tempTitle = "Fleur Bandstructure"
END IF
WRITE (27,904) TRIM(ADJUSTL(tempTitle))
DO n = 1, nosyp
WRITE (27,905) d(n),d(n)
ENDDO
WRITE (27,906) d(1),d(nosyp)
!
! nomal labels
!
IF (iachar(ssy(1)) < aoff ) THEN
WRITE (27,907) ssy(1),d(1),achar(92)
ELSE
WRITE (27,907) " ",d(1),achar(92)
ENDIF
DO n = 2, nosyp-1
IF (iachar(ssy(n)) < aoff ) THEN
WRITE (27,908) ssy(n),d(n),achar(92)
ELSE
WRITE (27,908) " ",d(n),achar(92)
ENDIF
ENDDO
IF (iachar(ssy(nosyp)) < aoff ) THEN
WRITE (27,909) ssy(nosyp),d(nosyp)
ELSE
WRITE (27,909) " ",d(nosyp)
ENDIF
!
! greek labels
!
DO n = 1, nosyp
IF (iachar(ssy(n)) > aoff ) THEN
WRITE (27,914) achar(iachar(ssy(n))-adel),d(n)
ENDIF
ENDDO
!
! now write the rest
!
WRITE (27,910)
WRITE (27,*) 'set palette model RGB'
WRITE (27,*) 'set palette defined (-2 "black", -1 "white" ,0 "white",',achar(92)
WRITE (27,*) '0.67 "light-blue",1 "blue")'
WRITE (27,*) 'set cbrange [-2:1]'
WRITE (27,*) 'unset colorbox'
WRITE (27,*) 'size1(x)=0.9*x**(0.4)'
WRITE (27,*) 'color1(x)=0.3+x/2.4'
WRITE (27,*) 'size2(x)=0.35*(1-x**(0.01))'
WRITE (27,*) 'color2(x)=1.15*(x-1)'
WRITE (27,911) d(nosyp)+0.00001,achar(92)
IF (input%jspins == 2) WRITE (27,912) achar(92)
WRITE (27,913) achar(92)
WRITE (27,915)
CLOSE (27)
900 FORMAT ('set terminal postscript enhanced color "Times-Roman" 20')
901 FORMAT ('set xlabel ""')
902 FORMAT ('set ylabel "E - E_F (eV)"')
903 FORMAT ('set nokey')
904 FORMAT ('set title "',a,'"')
905 FORMAT ('set arrow from',f9.5,', -9.0 to',f9.5,', 5.0 nohead')
906 FORMAT ('set arrow from',f9.5,', 0.0 to',f9.5,', 0.0 nohead lt 3')
907 FORMAT ('set xtics ("',a1,'"',f9.5,', ',a)
908 FORMAT (' "',a1,'"',f9.5,', ',a)
909 FORMAT (' "',a1,'"',f9.5,' )')
910 FORMAT ('set ytics -8,2,4')
911 FORMAT ('plot [0:',f9.5,'] [-9:5] ',a)
912 FORMAT ('"bands_sc.2" using 1:($2-6.00):(size1($3)):(color1($3)) w p pt 7 ps variable lc palette, "bands_sc.2" using 1:($2-6.00):(size2($3)):(color2($3)) w p pt 7 ps variable lc palette,',a)
913 FORMAT ('"bands_sc.1" using 1:($2-6.00):(size1($3)):(color1($3)) w p pt 7 ps variable lc palette, ',a)
915 FORMAT ('"bands_sc.1" using 1:($2-6.00):(size2($3)):(color2($3)) w p pt 7 ps variable lc palette')
914 FORMAT ('set label "',a1,'" at ',f9.5,', -9.65 center font "Symbol,20"')
END SUBROUTINE write_gnu_sc
END MODULE m_unfold_band_kpts
......@@ -29,6 +29,7 @@ MODULE m_types_kpts
REAL ,ALLOCATABLE :: specialPoints(:,:)
INTEGER,ALLOCATABLE :: ntetra(:,:)
REAL ,ALLOCATABLE :: voltet(:)
REAL ,ALLOCATABLE :: sc_list(:,:) !list for all information about folding of bandstructure (need for unfoldBandKPTS)((k(x,y,z),K(x,y,z),m(g1,g2,g3)),(nkpt))
ENDTYPE t_kpts
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment