Commit 3d8da6b0 authored by Gregor Michalicek's avatar Gregor Michalicek
Browse files

Specification of k-point density in precision profiles

parent 33f8a119
&profile name="fast" kmax=4.0 kGmaxFactor=3.0 rmtFactor=0.95 lmaxFactor=1.0 addLOSetup="addHDLOs_noSC" fermiSmearing=0.001 atomSetup="default2" /
&profile name="moderate" kmax=4.5 kGmaxFactor=3.0 rmtFactor=0.95 lmaxFactor=1.0 addLOSetup="addHDLOs_noSC" fermiSmearing=0.001 atomSetup="default2" /
&profile name="precise" kmax=5.0 kGmaxFactor=5.0 rmtFactor=0.95 lmaxFactor=1.0 addLOSetup="addHDLOs_noSC" fermiSmearing=0.0001 atomSetup="default2" /
&profile name="precise" kmax=5.0 kGmaxFactor=5.0 rmtFactor=0.95 lmaxFactor=1.0 addLOSetup="addHDLOs_noSC" fermiSmearing=0.0003 atomSetup="default2" kPDen=30.0 /
&profile name="oxides_validation" kmax=5.0 kGmaxFactor=5.0 rmtFactor=0.95 lmaxFactor=1.0 addLOSetup="addHDLOs_noSC" fermiSmearing=0.00225 atomSetup="oxides_validation" /
......@@ -176,6 +176,15 @@ CONTAINS
ENDIF
ENDIF
END DO readloop
IF ((ikpts.EQ.0).AND.(profile%kPDen.GT.0.0)) THEN
iKpts = iKpts + 1
line = ''
WRITE(line,'(a,f12.4,a,f15.10,a)') '&kpt gamma=T den=', profile%kPDen, ' tkb=', profile%fermiSmearing, ' /'
WRITE(*,*) 'kPDen: ', profile%kPDen
WRITE(*,'(a)') TRIM(line)
CALL process_kpts(line,kpts_str(iKpts),kptsName(iKpts),kptsPath(iKpts),kptsBZintegration(iKpts),kptsGamma(ikpts),input%tkb)
END IF
IF (.NOT.ALLOCATED(atom_pos).OR.SUM(ABS(a1))==0.0) CALL judft_error("input not complete")
......
MODULE m_types_profile
TYPE :: t_profile
REAL :: kmax
REAL :: kGmaxFactor
REAL :: rmtFactor
REAL :: lmaxFactor
REAL :: fermiSmearing
REAL :: kmax ! This is K_max
REAL :: kGmaxFactor ! G_max = G_maxXC = K_max * kGmaxFactor
REAL :: rmtFactor ! This is a postprocessing factor to reduce the MT radii after their initial calculation
REAL :: lmaxFactor ! lmax = Kmax * R_MT * lmaxfactor
REAL :: fermiSmearing ! The Fermi smearing energy
REAL :: kPDen ! The k-Point density
CHARACTER(LEN=20) :: profileName
CHARACTER(LEN=50) :: addLOSetup
......@@ -35,6 +36,7 @@ MODULE m_types_profile
this%fermiSmearing = 0.001
this%addLOSetup = ""
this%atomSetup = ""
this%kPDen = -1.0
END SUBROUTINE initProfile
......@@ -48,7 +50,7 @@ MODULE m_types_profile
INTEGER :: io_stat
REAL :: kmax, kGmaxFactor, rmtFactor, lmaxFactor, fermiSmearing
REAL :: kmax, kGmaxFactor, rmtFactor, lmaxFactor, fermiSmearing, kPDen
LOGICAL :: l_exist, l_found
CHARACTER(LEN=20) :: name
......@@ -57,7 +59,7 @@ MODULE m_types_profile
CHARACTER(len=8) :: str
CHARACTER(LEN=20) :: atomSetup
NAMELIST /profile/ name,kmax,rmtFactor,lmaxFactor,addLOSetup,fermiSmearing,atomSetup,kGmaxFactor
NAMELIST /profile/ name,kmax,rmtFactor,lmaxFactor,addLOSetup,fermiSmearing,atomSetup,kGmaxFactor,kPDen
filename = "profile.config"
......@@ -82,6 +84,7 @@ MODULE m_types_profile
lmaxFactor = 1.0
addLOSetup = ""
fermiSmearing = 0.001
kPDen = -1.0
atomSetup = ""
READ(558,profile,iostat=io_stat)
IF (io_stat.EQ.0) THEN
......@@ -93,6 +96,7 @@ MODULE m_types_profile
this%lmaxFactor = lmaxFactor
this%addLOSetup = TRIM(ADJUSTL(addLOSetup))
this%fermiSmearing = fermiSmearing
this%kPDen = kPDen
this%atomSetup = TRIM(ADJUSTL(atomSetup))
l_found = .TRUE.
END IF
......
Supports Markdown
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