Commit 0b0d3fb6 authored by Gregor Michalicek's avatar Gregor Michalicek

Introduced alternative construction of IBZ.

Since the routine brzone featured many bugs that occured in special
cases I now reprogrammed the functionality of the routine in the
new subroutine brzone2. The new algorithm is simpler and should
be less vulnerable to the mentioned special cases. It also is slightly
slower. The new routine takes about 2 seconds.

By commenting the new routine out and the old one in both algorithms
can directly be interchanged.
parent e0eefd71
......@@ -50,7 +50,7 @@ init/tetcon.f init/kvecon.f
set(inpgen_F90 io/xsf_io.f90
global/types.F90 global/enpara.f90 global/chkmt.f90 inpgen/inpgen.f90 inpgen/set_inp.f90 io/rw_inp.f90 juDFT/juDFT.F90
juDFT/stop.F90 juDFT/args.F90 juDFT/time.F90 juDFT/init.F90 io/w_inpXML.f90 init/julia.f90 global/utility.F90
init/compile_descr.F90 io/xmlOutput.F90)
init/compile_descr.F90 io/xmlOutput.F90 init/brzone2.f90)
set(fleur_SRC ${fleur_F90} ${fleur_F77})
......
......@@ -50,5 +50,6 @@ init/setlomap.F90
init/setup.f90
init/stepf.F90
init/strgn.f90
init/brzone2.f90
init/initParallelProcesses.F90
)
This diff is collapsed.
......@@ -21,6 +21,7 @@
USE m_bravais
USE m_divi
USE m_brzone
USE m_brzone2
USE m_kptmop
USE m_kpttet
USE m_bandstr1
......@@ -247,15 +248,26 @@
ENDIF
!
! This subroutine finds the corner-points, the edges, and the
! brzone and brzone2 find the corner-points, the edges, and the
! faces of the irreducible wedge of the brillouin zone (IBZ).
!
CALL brzone(&
! In these subroutines many special cases can occur. Due to this the very
! sophisticated old routine brzone had a few bugs. The new routine
! brzone2 was written with a different algorithm that is slightly slower
! but should be more stable. To make comparisons possible the old
! routine is only commented out. Both routines are directly
! interchangable. GM, 2016.
! CALL brzone(&
! & rltv,sym%nsym,ccr,mface,nbsz,nv48,&
! & cpoint,&
! & xvec,ncorn,nedge,nface,fnorm,fdist)
CALL brzone2(&
& rltv,sym%nsym,ccr,mface,nbsz,nv48,&
& cpoint,&
& xvec,ncorn,nedge,nface,fnorm,fdist)
IF ( input%tria.AND.random ) THEN
!
! Calculate the points for tetrahedron method
......
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