Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
fleur
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
51
Issues
51
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
fleur
fleur
Commits
90330e62
Commit
90330e62
authored
Jan 03, 2020
by
Matthias Redies
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rename hybrid => hybinp
parent
3ac4539e
Changes
65
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
65 changed files
with
1203 additions
and
1203 deletions
+1203
-1203
docs/removed_files/inpgen/set_inp.f90
docs/removed_files/inpgen/set_inp.f90
+13
-13
docs/removed_files/old/fleur_init_old.F90
docs/removed_files/old/fleur_init_old.F90
+7
-7
docs/removed_files/old/initParallelProcesses.F90
docs/removed_files/old/initParallelProcesses.F90
+2
-2
docs/removed_files/old/init_hybrid.f90
docs/removed_files/old/init_hybrid.f90
+7
-7
docs/removed_files/old/r_inpXML.F90
docs/removed_files/old/r_inpXML.F90
+17
-17
docs/removed_files/old/types_hybrid.f90
docs/removed_files/old/types_hybrid.f90
+2
-2
eigen/eigen.F90
eigen/eigen.F90
+15
-15
eigen/eigen_hssetup.F90
eigen/eigen_hssetup.F90
+2
-2
fleurinput/CMakeLists.txt
fleurinput/CMakeLists.txt
+1
-1
fleurinput/fleurinput_mpi_bc.f90
fleurinput/fleurinput_mpi_bc.f90
+3
-3
fleurinput/fleurinput_read_xml.f90
fleurinput/fleurinput_read_xml.f90
+3
-3
fleurinput/types_fleurinput.f90
fleurinput/types_fleurinput.f90
+3
-3
fleurinput/types_hybinp.f90
fleurinput/types_hybinp.f90
+13
-13
fleurinput/types_sym.f90
fleurinput/types_sym.f90
+1
-1
hybrid/HF_init.F90
hybrid/HF_init.F90
+9
-9
hybrid/add_Vnonlocal.F90
hybrid/add_Vnonlocal.F90
+9
-9
hybrid/checkolap.F90
hybrid/checkolap.F90
+13
-13
hybrid/coulombmatrix.F90
hybrid/coulombmatrix.F90
+146
-146
hybrid/exchange_core.F90
hybrid/exchange_core.F90
+10
-10
hybrid/exchange_val_hf.F90
hybrid/exchange_val_hf.F90
+57
-57
hybrid/gen_wavf.F90
hybrid/gen_wavf.F90
+12
-12
hybrid/hf_setup.F90
hybrid/hf_setup.F90
+41
-41
hybrid/hsefunctional.F90
hybrid/hsefunctional.F90
+2
-2
hybrid/hsfock.F90
hybrid/hsfock.F90
+13
-13
hybrid/hyb_abcrot.F90
hybrid/hyb_abcrot.F90
+7
-7
hybrid/hybrid.F90
hybrid/hybrid.F90
+40
-40
hybrid/hybrid_core.f90
hybrid/hybrid_core.f90
+2
-2
hybrid/kp_perturbation.F90
hybrid/kp_perturbation.F90
+35
-35
hybrid/mixedbasis.F90
hybrid/mixedbasis.F90
+35
-35
hybrid/plot_coulombmatrix.F90
hybrid/plot_coulombmatrix.F90
+13
-13
hybrid/spmvec.F90
hybrid/spmvec.F90
+46
-46
hybrid/subvxc.F90
hybrid/subvxc.F90
+5
-5
hybrid/symm_hf.F90
hybrid/symm_hf.F90
+26
-26
hybrid/trafo.F90
hybrid/trafo.F90
+31
-31
hybrid/wavefproducts.F90
hybrid/wavefproducts.F90
+204
-204
hybrid/wavefproducts_inv.f90
hybrid/wavefproducts_inv.f90
+23
-23
hybrid/wavefproducts_noinv.f90
hybrid/wavefproducts_noinv.f90
+18
-18
init/gen_map.f90
init/gen_map.f90
+6
-6
inpgen2/inpgen.f90
inpgen2/inpgen.f90
+8
-8
inpgen2/make_defaults.f90
inpgen2/make_defaults.f90
+15
-15
inpgen2/make_kpoints.f90
inpgen2/make_kpoints.f90
+4
-4
inpgen2/old_inp/dimen7.F90
inpgen2/old_inp/dimen7.F90
+9
-9
inpgen2/old_inp/dimens.F90
inpgen2/old_inp/dimens.F90
+4
-4
inpgen2/old_inp/fleur_init_old.F90
inpgen2/old_inp/fleur_init_old.F90
+7
-7
inpgen2/old_inp/inped.F90
inpgen2/old_inp/inped.F90
+4
-4
inpgen2/old_inp/rw_inp.f90
inpgen2/old_inp/rw_inp.f90
+24
-24
inpgen2/read_inpgen_input.f90
inpgen2/read_inpgen_input.f90
+7
-7
inpgen2/read_old_inp.f90
inpgen2/read_old_inp.f90
+4
-4
inpgen2/struct_input.f90
inpgen2/struct_input.f90
+4
-4
io/CMakeLists.txt
io/CMakeLists.txt
+1
-1
io/broyd_io.F90
io/broyd_io.F90
+42
-42
io/io_hybinp.F90
io/io_hybinp.F90
+16
-16
io/w_inpXML.f90
io/w_inpXML.f90
+9
-9
io/writeOutParameters.f90
io/writeOutParameters.f90
+2
-2
main/fleur.F90
main/fleur.F90
+19
-19
main/fleur_init.F90
main/fleur_init.F90
+19
-19
main/totale.f90
main/totale.f90
+6
-6
main/vgen.F90
main/vgen.F90
+3
-3
mpi/mpi_bc_all.F90
mpi/mpi_bc_all.F90
+11
-11
rdmft/rdmft.F90
rdmft/rdmft.F90
+27
-27
types/types.F90
types/types.F90
+1
-1
types/types_mpdata.f90
types/types_mpdata.f90
+21
-21
types/types_xcpot_inbuild_nofunction.F90
types/types_xcpot_inbuild_nofunction.F90
+5
-5
types/types_xcpot_libxc.F90
types/types_xcpot_libxc.F90
+35
-35
vgen/vgen_xcpot.F90
vgen/vgen_xcpot.F90
+4
-4
No files found.
docs/removed_files/inpgen/set_inp.f90
View file @
90330e62
...
...
@@ -298,25 +298,25 @@
mpbasis
%
g_cutoff
=
input
%
rkmax
-
0.5
mpbasis
%
linear_dep_tol
=
1e-4
taual_hyb
=
atoms
%
taual
ALLOCATE
(
hyb
rid
%
lcutwf
(
atoms
%
ntype
))
ALLOCATE
(
hyb
rid
%
lcutm1
(
atoms
%
ntype
))
ALLOCATE
(
hyb
rid
%
select1
(
4
,
atoms
%
ntype
))
hyb
rid
%
lcutwf
=
atoms
%
lmax
-
atoms
%
lmax
/
10
hyb
rid
%
ewaldlambda
=
3
hyb
rid
%
lexp
=
16
hyb
rid
%
lcutm1
=
4
hyb
rid
%
select1
(
1
,:)
=
4
hyb
rid
%
select1
(
2
,:)
=
0
hyb
rid
%
select1
(
3
,:)
=
4
hyb
rid
%
select1
(
4
,:)
=
2
ALLOCATE
(
hyb
inp
%
lcutwf
(
atoms
%
ntype
))
ALLOCATE
(
hyb
inp
%
lcutm1
(
atoms
%
ntype
))
ALLOCATE
(
hyb
inp
%
select1
(
4
,
atoms
%
ntype
))
hyb
inp
%
lcutwf
=
atoms
%
lmax
-
atoms
%
lmax
/
10
hyb
inp
%
ewaldlambda
=
3
hyb
inp
%
lexp
=
16
hyb
inp
%
lcutm1
=
4
hyb
inp
%
select1
(
1
,:)
=
4
hyb
inp
%
select1
(
2
,:)
=
0
hyb
inp
%
select1
(
3
,:)
=
4
hyb
inp
%
select1
(
4
,:)
=
2
bands
=
max
(
nint
(
input
%
zelec
)
*
10
,
60
)
l_gamma
=
.false.
hyb
rid
%
l_hybrid
=
l_hyb
hyb
inp
%
l_hybrid
=
l_hyb
IF
(
l_hyb
)
THEN
input
%
ellow
=
input
%
ellow
-
2.0
input
%
elup
=
input
%
elup
+
10.0
input
%
gw_neigd
=
bands
hyb
rid
%
bands1
=
ceiling
(
0.75
*
bands
)
hyb
inp
%
bands1
=
ceiling
(
0.75
*
bands
)
l_gamma
=
.true.
input
%
minDistance
=
1.0e-5
ELSE
...
...
docs/removed_files/old/fleur_init_old.F90
View file @
90330e62
...
...
@@ -233,7 +233,7 @@ CONTAINS
ALLOCATE
(
noel
(
atoms
%
ntype
),
atomTypeSpecies
(
atoms
%
ntype
),
speciesRepAtomType
(
atoms
%
ntype
))
ALLOCATE
(
xmlElectronStates
(
29
,
atoms
%
ntype
),
xmlPrintCoreStates
(
29
,
atoms
%
ntype
))
ALLOCATE
(
xmlCoreOccs
(
1
,
1
,
1
),
atoms
%
label
(
atoms
%
nat
))
ALLOCATE
(
hyb
rid
%
lcutm1
(
atoms
%
ntype
),
hybrid
%
lcutwf
(
atoms
%
ntype
),
hybrid
%
select1
(
4
,
atoms
%
ntype
))
ALLOCATE
(
hyb
inp
%
lcutm1
(
atoms
%
ntype
),
hybinp
%
lcutwf
(
atoms
%
ntype
),
hybinp
%
select1
(
4
,
atoms
%
ntype
))
filename
=
'inpConverted.xml'
xmlElectronStates
=
noState_const
xmlPrintCoreStates
=
.FALSE.
...
...
@@ -245,15 +245,15 @@ CONTAINS
atomTypeSpecies
(
iType
)
=
iType
speciesRepAtomType
(
iType
)
=
iType
hyb
rid
%
lcutm1
(
iType
)
=
4
hyb
rid
%
lcutwf
(
iType
)
=
atoms
%
lmax
(
iType
)
-
atoms
%
lmax
(
iType
)
/
10
hyb
rid
%
select1
(:,
iType
)
=
(/
4
,
0
,
4
,
2
/)
hyb
inp
%
lcutm1
(
iType
)
=
4
hyb
inp
%
lcutwf
(
iType
)
=
atoms
%
lmax
(
iType
)
-
atoms
%
lmax
(
iType
)
/
10
hyb
inp
%
select1
(:,
iType
)
=
(/
4
,
0
,
4
,
2
/)
END
DO
mpbasis
%
g_cutoff
=
input
%
rkmax
-
0.5
mpbasis
%
linear_dep_tol
=
1.0e-4
hyb
rid
%
ewaldlambda
=
3
hyb
rid
%
lexp
=
16
hyb
rid
%
bands1
=
max
(
nint
(
input
%
zelec
)
*
10
,
60
)
hyb
inp
%
ewaldlambda
=
3
hyb
inp
%
lexp
=
16
hyb
inp
%
bands1
=
max
(
nint
(
input
%
zelec
)
*
10
,
60
)
numSpecies
=
SIZE
(
speciesRepAtomType
)
ALLOCATE
(
atoms
%
speciesName
(
numSpecies
))
...
...
docs/removed_files/old/initParallelProcesses.F90
View file @
90330e62
...
...
@@ -169,8 +169,8 @@ SUBROUTINE initParallelProcesses(atoms,vacuum,input,stars,sliceplot,banddos,&
ALLOCATE
(
oneD
%
igfft1
(
0
:
oneD
%
odd
%
nn2d
-1
,
2
),
oneD
%
pgfft1
(
0
:
oneD
%
odd
%
nn2d
-1
))
ALLOCATE
(
mpbasis
%
num_radfun_per_l
(
0
:
atoms
%
lmaxd
,
atoms
%
ntype
))
ALLOCATE
(
hyb
rid
%
select1
(
4
,
atoms
%
ntype
),
hybrid
%
lcutm1
(
atoms
%
ntype
))
ALLOCATE
(
hyb
rid
%
lcutwf
(
atoms
%
ntype
))
ALLOCATE
(
hyb
inp
%
select1
(
4
,
atoms
%
ntype
),
hybinp
%
lcutm1
(
atoms
%
ntype
))
ALLOCATE
(
hyb
inp
%
lcutwf
(
atoms
%
ntype
))
IF
(
xcpot
%
needs_grad
())
THEN
ALLOCATE
(
stars
%
ft2_gfx
(
0
:
stars
%
kimax2
),
stars
%
ft2_gfy
(
0
:
stars
%
kimax2
))
...
...
docs/removed_files/old/init_hybrid.f90
View file @
90330e62
...
...
@@ -17,20 +17,20 @@
!
! calculate d_wgn
!
ALLOCATE
(
hyb
rid
%
d_wgn2
(
-
atoms
%
lmaxd
:
atoms
%
lmaxd
,
-
atoms
%
lmaxd
:
atoms
%
lmaxd
,
0
:
atoms
%
lmaxd
,
sym
%
nsym
))
CALL
d_wigner
(
sym
%
nop
,
sym
%
mrot
,
cell
%
bmat
,
atoms
%
lmaxd
,
hyb
rid
%
d_wgn2
(:,:,
1
:,:
sym
%
nop
))
hyb
rid
%
d_wgn2
(:,:,
0
,:)
=
1
ALLOCATE
(
hyb
inp
%
d_wgn2
(
-
atoms
%
lmaxd
:
atoms
%
lmaxd
,
-
atoms
%
lmaxd
:
atoms
%
lmaxd
,
0
:
atoms
%
lmaxd
,
sym
%
nsym
))
CALL
d_wigner
(
sym
%
nop
,
sym
%
mrot
,
cell
%
bmat
,
atoms
%
lmaxd
,
hyb
inp
%
d_wgn2
(:,:,
1
:,:
sym
%
nop
))
hyb
inp
%
d_wgn2
(:,:,
0
,:)
=
1
DO
isym
=
sym
%
nop
+1
,
sym
%
nsym
iisym
=
isym
-
sym
%
nop
DO
l
=
0
,
atoms
%
lmaxd
DO
m2
=
-
l
,
l
DO
m1
=
-
l
,
-1
cdum
=
hyb
rid
%
d_wgn2
(
m1
,
m2
,
l
,
iisym
)
hyb
rid
%
d_wgn2
(
m1
,
m2
,
l
,
isym
)
=
hybrid
%
d_wgn2
(
-
m1
,
m2
,
l
,
iisym
)
*
(
-1
)
**
m1
hyb
rid
%
d_wgn2
(
-
m1
,
m2
,
l
,
isym
)
=
cdum
*
(
-1
)
**
m1
cdum
=
hyb
inp
%
d_wgn2
(
m1
,
m2
,
l
,
iisym
)
hyb
inp
%
d_wgn2
(
m1
,
m2
,
l
,
isym
)
=
hybinp
%
d_wgn2
(
-
m1
,
m2
,
l
,
iisym
)
*
(
-1
)
**
m1
hyb
inp
%
d_wgn2
(
-
m1
,
m2
,
l
,
isym
)
=
cdum
*
(
-1
)
**
m1
END
DO
hyb
rid
%
d_wgn2
(
0
,
m2
,
l
,
isym
)
=
hybrid
%
d_wgn2
(
0
,
m2
,
l
,
iisym
)
hyb
inp
%
d_wgn2
(
0
,
m2
,
l
,
isym
)
=
hybinp
%
d_wgn2
(
0
,
m2
,
l
,
iisym
)
END
DO
END
DO
END
DO
docs/removed_files/old/r_inpXML.F90
View file @
90330e62
...
...
@@ -812,9 +812,9 @@ CONTAINS
IF
(
numberNodes
.EQ.
1
)
THEN
xcpot
%
gmaxxc
=
evaluateFirstOnly
(
xmlGetAttributeValue
(
xPathA
))
END
IF
hyb
rid
%
l_hybrid
=
xcpot
%
is_hybrid
()
hyb
inp
%
l_hybrid
=
xcpot
%
is_hybrid
()
ALLOCATE
(
hyb
rid
%
lcutm1
(
atoms
%
ntype
),
hybrid
%
lcutwf
(
atoms
%
ntype
),
hybrid
%
select1
(
4
,
atoms
%
ntype
))
ALLOCATE
(
hyb
inp
%
lcutm1
(
atoms
%
ntype
),
hybinp
%
lcutwf
(
atoms
%
ntype
),
hybinp
%
select1
(
4
,
atoms
%
ntype
))
obsolete
%
lwb
=
.FALSE.
IF
(
xcpot
%
needs_grad
())
THEN
...
...
@@ -828,19 +828,19 @@ CONTAINS
mpbasis
%
g_cutoff
=
input
%
rkmax
-
0.5
mpbasis
%
linear_dep_tol
=
1.0e-4
hyb
rid
%
ewaldlambda
=
3
hyb
rid
%
lexp
=
16
hyb
rid
%
bands1
=
DIMENSION
%
neigd
hyb
inp
%
ewaldlambda
=
3
hyb
inp
%
lexp
=
16
hyb
inp
%
bands1
=
DIMENSION
%
neigd
numberNodes
=
xmlGetNumberOfNodes
(
'/fleurInput/calculationSetup/prodBasis'
)
IF
(
numberNodes
==
0
)
THEN
IF
(
hyb
rid
%
l_hybrid
)
CALL
judft_error
(
"Mixed product basis input missing in inp.xml"
)
IF
(
hyb
inp
%
l_hybrid
)
CALL
judft_error
(
"Mixed product basis input missing in inp.xml"
)
ELSE
mpbasis
%
g_cutoff
=
evaluateFirstOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/prodBasis/@gcutm'
))
mpbasis
%
linear_dep_tol
=
evaluateFirstOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/prodBasis/@tolerance'
))
hyb
rid
%
ewaldlambda
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/prodBasis/@ewaldlambda'
))
hyb
rid
%
lexp
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/prodBasis/@lexp'
))
hyb
rid
%
bands1
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/prodBasis/@bands'
))
hyb
inp
%
ewaldlambda
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/prodBasis/@ewaldlambda'
))
hyb
inp
%
lexp
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/prodBasis/@lexp'
))
hyb
inp
%
bands1
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/prodBasis/@bands'
))
ENDIF
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...
...
@@ -1152,7 +1152,7 @@ CONTAINS
speciesEParams
(
3
)
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
))//
'/energyParameters/@f'
))
! Parameters for hybrid functionals
IF
(
hyb
rid
%
l_hybrid
)
THEN
IF
(
hyb
inp
%
l_hybrid
)
THEN
WRITE
(
xPathA
,
*
)
'/fleurInput/atomSpecies/species['
,
iSpecies
,
']/prodBasis'
numberNodes
=
xmlGetNumberOfNodes
(
TRIM
(
ADJUSTL
(
xPathA
)))
IF
(
numberNodes
.NE.
1
)
CALL
judft_error
(
"Parameters for mixed basis are missing for some specified"
)
...
...
@@ -1375,13 +1375,13 @@ CONTAINS
END
DO
END
DO
!Hybrid functional stuff
hyb
rid
%
lcutm1
(
iType
)
=
4
hyb
rid
%
lcutwf
(
iType
)
=
atoms
%
lmax
(
iType
)
-
atoms
%
lmax
(
iType
)
/
10
hyb
rid
%
select1
(:,
iType
)
=
(/
4
,
0
,
4
,
2
/)
IF
(
hyb
rid
%
l_hybrid
)
THEN
hyb
rid
%
lcutm1
(
iType
)
=
lcutm
hyb
rid
%
lcutwf
(
iType
)
=
lcutwf
hyb
rid
%
select1
(:,
iType
)
=
hybSelect
hyb
inp
%
lcutm1
(
iType
)
=
4
hyb
inp
%
lcutwf
(
iType
)
=
atoms
%
lmax
(
iType
)
-
atoms
%
lmax
(
iType
)
/
10
hyb
inp
%
select1
(:,
iType
)
=
(/
4
,
0
,
4
,
2
/)
IF
(
hyb
inp
%
l_hybrid
)
THEN
hyb
inp
%
lcutm1
(
iType
)
=
lcutm
hyb
inp
%
lcutwf
(
iType
)
=
lcutwf
hyb
inp
%
select1
(:,
iType
)
=
hybSelect
ENDIF
! Explicit xc functional
SELECT
TYPE
(
xcpot
)
...
...
docs/removed_files/old/types_hybrid.f90
View file @
90330e62
MODULE
m_types_hyb
rid
MODULE
m_types_hyb
inp
IMPLICIT
NONE
...
...
@@ -104,4 +104,4 @@ contains
END
FUNCTION
gptnorm
END
MODULE
m_types_hyb
rid
END
MODULE
m_types_hyb
inp
eigen/eigen.F90
View file @
90330e62
...
...
@@ -19,7 +19,7 @@ CONTAINS
!> The matrices generated and diagonalized here are of type m_mat as defined in m_types_mat.
!>@author D. Wortmann
SUBROUTINE
eigen
(
mpi
,
stars
,
sphhar
,
atoms
,
xcpot
,
sym
,
kpts
,
vacuum
,
input
,&
cell
,
enpara
,
banddos
,
noco
,
oneD
,
mpdata
,
hyb
rid
,
iter
,
eig_id
,
results
,
inden
,
v
,
vx
,
hub1
)
cell
,
enpara
,
banddos
,
noco
,
oneD
,
mpdata
,
hyb
inp
,
iter
,
eig_id
,
results
,
inden
,
v
,
vx
,
hub1
)
#include"cpp_double.h"
USE
m_types
...
...
@@ -31,7 +31,7 @@ CONTAINS
!USE m_hsefunctional
USE
m_mt_setup
USE
m_util
USE
m_io_hyb
rid
USE
m_io_hyb
inp
!USE m_icorrkeys
USE
m_eig66_io
,
ONLY
:
open_eig
,
write_eig
,
close_eig
,
read_eig
USE
m_xmlOutput
...
...
@@ -49,7 +49,7 @@ CONTAINS
TYPE
(
t_oneD
),
INTENT
(
IN
)
::
oneD
TYPE
(
t_mpdata
),
intent
(
inout
)
::
mpdata
TYPE
(
t_hyb
rid
),
INTENT
(
INOUT
)
::
hybrid
TYPE
(
t_hyb
inp
),
INTENT
(
INOUT
)
::
hybinp
TYPE
(
t_enpara
),
INTENT
(
INOUT
)
::
enpara
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_vacuum
),
INTENT
(
IN
)
::
vacuum
...
...
@@ -101,7 +101,7 @@ CONTAINS
CLASS
(
t_mat
),
ALLOCATABLE
::
hmat
,
smat
CLASS
(
t_mat
),
ALLOCATABLE
::
smat_unfold
!used for unfolding bandstructure
! Variables for HF or hyb
rid
functional calculation
! Variables for HF or hyb
inp
functional calculation
INTEGER
::
comm
(
kpts
%
nkpt
),
irank2
(
kpts
%
nkpt
),
isize2
(
kpts
%
nkpt
),
dealloc_stat
character
(
len
=
300
)
::
errmsg
...
...
@@ -143,27 +143,27 @@ CONTAINS
! Set up lapw list
CALL
lapw
%
init
(
input
,
noco
,
kpts
,
atoms
,
sym
,
nk
,
cell
,
l_zref
,
mpi
)
call
timestart
(
"Setup of H&S matrices"
)
CALL
eigen_hssetup
(
jsp
,
mpi
,
hyb
rid
,
enpara
,
input
,
vacuum
,
noco
,
sym
,&
CALL
eigen_hssetup
(
jsp
,
mpi
,
hyb
inp
,
enpara
,
input
,
vacuum
,
noco
,
sym
,&
stars
,
cell
,
sphhar
,
atoms
,
ud
,
td
,
v
,
lapw
,
l_real
,
smat
,
hmat
)
CALL
timestop
(
"Setup of H&S matrices"
)
nvBuffer
(
nk
,
jsp
)
=
lapw
%
nv
(
jsp
)
IF
(
hyb
rid
%
l_hybrid
.OR.
input
%
l_rdmft
)
THEN
IF
(
hyb
inp
%
l_hybrid
.OR.
input
%
l_rdmft
)
THEN
! Write overlap matrix smat to direct access file olap
! print *,"Wrong overlap matrix used, fix this later"
CALL
write_olap
(
smat
,(
jsp
-1
)
*
kpts
%
nkpt
+
nk
)
! Note: At this moment this only works without MPI parallelization
END
IF
! hyb
rid
%l_hybrid.OR.input%l_rdmft
END
IF
! hyb
inp
%l_hybrid.OR.input%l_rdmft
IF
(
hyb
rid
%
l_hybrid
)
THEN
IF
(
hyb
rid
%
l_addhf
)
CALL
add_Vnonlocal
(
nk
,
lapw
,
atoms
,
hybrid
,
input
,
kpts
,
jsp
,
results
,
xcpot
,
noco
,
hmat
)
IF
(
hyb
inp
%
l_hybrid
)
THEN
IF
(
hyb
inp
%
l_addhf
)
CALL
add_Vnonlocal
(
nk
,
lapw
,
atoms
,
hybinp
,
input
,
kpts
,
jsp
,
results
,
xcpot
,
noco
,
hmat
)
IF
(
hyb
rid
%
l_subvxc
)
THEN
CALL
subvxc
(
lapw
,
kpts
%
bk
(:,
nk
),
input
,
jsp
,
v
%
mt
(:,
0
,:,:),
atoms
,
ud
,
mpdata
,
hyb
rid
,
enpara
%
el0
,
enpara
%
ello0
,&
IF
(
hyb
inp
%
l_subvxc
)
THEN
CALL
subvxc
(
lapw
,
kpts
%
bk
(:,
nk
),
input
,
jsp
,
v
%
mt
(:,
0
,:,:),
atoms
,
ud
,
mpdata
,
hyb
inp
,
enpara
%
el0
,
enpara
%
ello0
,&
sym
,
cell
,
sphhar
,
stars
,
xcpot
,
mpi
,
oneD
,
hmat
,
vx
)
END
IF
END
IF
! hyb
rid
%l_hybrid
END
IF
! hyb
inp
%l_hybrid
l_wu
=
.FALSE.
ne_all
=
input
%
neig
...
...
@@ -277,11 +277,11 @@ CONTAINS
END
DO
END
IF
!IF (hyb
rid%l_hybrid.OR.hybrid
%l_calhf) CALL close_eig(eig_id)
!IF (hyb
inp%l_hybrid.OR.hybinp
%l_calhf) CALL close_eig(eig_id)
IF
(
input
%
jspins
.EQ.
1
.AND.
hyb
rid
%
l_hybrid
)
THEN
IF
(
input
%
jspins
.EQ.
1
.AND.
hyb
inp
%
l_hybrid
)
THEN
results
%
te_hfex
%
valence
=
2
*
results
%
te_hfex
%
valence
IF
(
hyb
rid
%
l_calhf
)
results
%
te_hfex
%
core
=
2
*
results
%
te_hfex
%
core
IF
(
hyb
inp
%
l_calhf
)
results
%
te_hfex
%
core
=
2
*
results
%
te_hfex
%
core
END
IF
enpara
%
epara_min
=
MINVAL
(
enpara
%
el0
)
enpara
%
epara_min
=
MIN
(
MINVAL
(
enpara
%
ello0
),
enpara
%
epara_min
)
...
...
eigen/eigen_hssetup.F90
View file @
90330e62
...
...
@@ -15,7 +15,7 @@ CONTAINS
!! 4. The vacuum part is added (in hsvac())
!! 5. The matrices are copied to the final matrix, in the noco-case the full matrix is constructed from the 4-parts.
SUBROUTINE
eigen_hssetup
(
isp
,
mpi
,
hyb
rid
,
enpara
,
input
,
vacuum
,
noco
,
sym
,&
SUBROUTINE
eigen_hssetup
(
isp
,
mpi
,
hyb
inp
,
enpara
,
input
,
vacuum
,
noco
,
sym
,&
stars
,
cell
,
sphhar
,
atoms
,
ud
,
td
,
v
,
lapw
,
l_real
,
smat_final
,
hmat_final
)
USE
m_types
USE
m_types_mpimat
...
...
@@ -29,7 +29,7 @@ CONTAINS
INTEGER
,
INTENT
(
IN
)
::
isp
TYPE
(
t_mpi
),
INTENT
(
IN
)
::
mpi
TYPE
(
t_hyb
rid
),
INTENT
(
IN
)
::
hybrid
TYPE
(
t_hyb
inp
),
INTENT
(
IN
)
::
hybinp
TYPE
(
t_enpara
),
INTENT
(
IN
)
::
enpara
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_vacuum
),
INTENT
(
IN
)
::
vacuum
...
...
fleurinput/CMakeLists.txt
View file @
90330e62
...
...
@@ -8,7 +8,7 @@ include("../cmake/Generate_Schema.cmake")
add_library
(
fleurinput STATIC
fleurinput_read_xml.f90 fleurinput_mpi_bc.f90
types_fleurinput_base.f90 types_input.f90 types_oneD.f90
types_coreSpecInput.f90 types_hyb
rid
.f90 types_noco.f90
types_coreSpecInput.f90 types_hyb
inp
.f90 types_noco.f90
types_vacuum.f90 types_banddos.f90 types_wannier.f90
types_cell.f90 types_kpts.f90 types_fleurinput.f90
types_sliceplot.f90 types_sym.f90 types_atoms.F90
...
...
fleurinput/fleurinput_mpi_bc.f90
View file @
90330e62
...
...
@@ -3,7 +3,7 @@ MODULE m_fleurinput_mpi_bc
IMPLICIT
NONE
CONTAINS
SUBROUTINE
fleurinput_mpi_bc
(
cell
,
sym
,
atoms
,
input
,
noco
,
vacuum
,
field
,&
sliceplot
,
banddos
,
hyb
rid
,
oneD
,
coreSpecInput
,
wann
,&
sliceplot
,
banddos
,
hyb
inp
,
oneD
,
coreSpecInput
,
wann
,&
xcpot
,
forcetheo_data
,
kpts
,
enparaXML
,
mpi_comm
,
rank
)
USE
m_types_xml
...
...
@@ -16,7 +16,7 @@ CONTAINS
TYPE
(
t_field
),
INTENT
(
INOUT
)::
field
TYPE
(
t_sliceplot
),
INTENT
(
INOUT
)::
sliceplot
TYPE
(
t_banddos
),
INTENT
(
INOUT
)::
banddos
TYPE
(
t_hyb
rid
),
INTENT
(
INOUT
)::
hybrid
TYPE
(
t_hyb
inp
),
INTENT
(
INOUT
)::
hybinp
TYPE
(
t_oneD
),
INTENT
(
INOUT
)::
oneD
TYPE
(
t_coreSpecInput
),
INTENT
(
INOUT
)::
coreSpecInput
TYPE
(
t_wann
),
INTENT
(
INOUT
)::
wann
...
...
@@ -37,7 +37,7 @@ CONTAINS
CALL
field
%
mpi_bc
(
mpi_comm
,
rank
)
CALL
sliceplot
%
mpi_bc
(
mpi_comm
,
rank
)
CALL
banddos
%
mpi_bc
(
mpi_comm
,
rank
)
CALL
hyb
rid
%
mpi_bc
(
mpi_comm
,
rank
)
CALL
hyb
inp
%
mpi_bc
(
mpi_comm
,
rank
)
CALL
oneD
%
mpi_bc
(
mpi_comm
,
rank
)
CALL
coreSpecInput
%
mpi_bc
(
mpi_comm
,
rank
)
CALL
wann
%
mpi_bc
(
mpi_comm
,
rank
)
...
...
fleurinput/fleurinput_read_xml.f90
View file @
90330e62
...
...
@@ -3,7 +3,7 @@ MODULE m_fleurinput_read_xml
IMPLICIT
NONE
CONTAINS
SUBROUTINE
fleurinput_read_xml
(
cell
,
sym
,
atoms
,
input
,
noco
,
vacuum
,
field
,&
sliceplot
,
banddos
,
hyb
rid
,
oneD
,
coreSpecInput
,
wann
,&
sliceplot
,
banddos
,
hyb
inp
,
oneD
,
coreSpecInput
,
wann
,&
xcpot
,
forcetheo_data
,
kpts
,
enparaXML
)
USE
m_types_xml
...
...
@@ -16,7 +16,7 @@ CONTAINS
TYPE
(
t_field
),
INTENT
(
OUT
),
OPTIONAL
::
field
TYPE
(
t_sliceplot
),
INTENT
(
OUT
),
OPTIONAL
::
sliceplot
TYPE
(
t_banddos
),
INTENT
(
OUT
),
OPTIONAL
::
banddos
TYPE
(
t_hyb
rid
),
INTENT
(
OUT
),
OPTIONAL
::
hybrid
TYPE
(
t_hyb
inp
),
INTENT
(
OUT
),
OPTIONAL
::
hybinp
TYPE
(
t_oneD
),
INTENT
(
OUT
),
OPTIONAL
::
oneD
TYPE
(
t_coreSpecInput
),
INTENT
(
OUT
),
OPTIONAL
::
coreSpecInput
TYPE
(
t_wann
),
INTENT
(
OUT
),
OPTIONAL
::
wann
...
...
@@ -40,7 +40,7 @@ CONTAINS
if
(
present
(
field
))
call
field
%
read_xml
(
xml
)
if
(
present
(
sliceplot
))
call
sliceplot
%
read_xml
(
xml
)
if
(
present
(
banddos
))
call
banddos
%
read_xml
(
xml
)
if
(
present
(
hyb
rid
))
call
hybrid
%
read_xml
(
xml
)
if
(
present
(
hyb
inp
))
call
hybinp
%
read_xml
(
xml
)
if
(
present
(
oneD
))
call
oneD
%
read_xml
(
xml
)
if
(
present
(
coreSpecInput
))
call
coreSpecInput
%
read_xml
(
xml
)
if
(
present
(
wann
))
call
wann
%
read_xml
(
xml
)
...
...
fleurinput/types_fleurinput.f90
View file @
90330e62
...
...
@@ -15,7 +15,7 @@ MODULE m_types_fleurinput
USE
m_types_field
USE
m_types_sliceplot
USE
m_types_banddos
USE
m_types_hyb
rid
USE
m_types_hyb
inp
USE
m_types_oneD
USE
m_types_coreSpecInput
USE
m_types_wannier
...
...
@@ -28,7 +28,7 @@ MODULE m_types_fleurinput
CONTAINS
!Subroutine does nothing, only here for copy-paste code...
SUBROUTINE
dummy_subroutine_that_should_never_be_used
(
cell
,
sym
,
atoms
,
input
,
noco
,
vacuum
,
field
,&
sliceplot
,
banddos
,
hyb
rid
,
oneD
,
coreSpecInput
,
wann
,&
sliceplot
,
banddos
,
hyb
inp
,
oneD
,
coreSpecInput
,
wann
,&
xcpot
,
forcetheo_data
,
kpts
,
enparaXML
)
TYPE
(
t_cell
),
INTENT
(
IN
)::
cell
TYPE
(
t_sym
),
INTENT
(
IN
)::
sym
...
...
@@ -39,7 +39,7 @@ CONTAINS
TYPE
(
t_field
),
INTENT
(
IN
)::
field
TYPE
(
t_sliceplot
),
INTENT
(
IN
)::
sliceplot
TYPE
(
t_banddos
),
INTENT
(
IN
)::
banddos
TYPE
(
t_hyb
rid
),
INTENT
(
IN
)::
hybrid
TYPE
(
t_hyb
inp
),
INTENT
(
IN
)::
hybinp
TYPE
(
t_oneD
),
INTENT
(
IN
)::
oneD
TYPE
(
t_coreSpecInput
),
INTENT
(
IN
)::
coreSpecInput
TYPE
(
t_wann
),
INTENT
(
IN
)::
wann
...
...
fleurinput/types_hyb
rid
.f90
→
fleurinput/types_hyb
inp
.f90
View file @
90330e62
...
...
@@ -4,13 +4,13 @@
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE
m_types_hyb
rid
MODULE
m_types_hyb
inp
USE
m_judft
USE
m_types_fleurinput_base
IMPLICIT
NONE
PRIVATE
TYPE
,
EXTENDS
(
t_fleurinput_base
)::
t_hyb
rid
TYPE
,
EXTENDS
(
t_fleurinput_base
)::
t_hyb
inp
LOGICAL
::
l_hybrid
=
.false.
LOGICAL
::
l_subvxc
=
.false.
LOGICAL
::
l_calhf
=
.false.
...
...
@@ -35,16 +35,16 @@ MODULE m_types_hybrid
INTEGER
,
ALLOCATABLE
::
nobd
(:,
:)
REAL
,
ALLOCATABLE
::
div_vv
(:,
:,
:)
CONTAINS
PROCEDURE
::
read_xml
=>
read_xml_hyb
rid
PROCEDURE
::
mpi_bc
=>
mpi_bc_hyb
rid
END
TYPE
t_hyb
rid
PUBLIC
t_hyb
rid
PROCEDURE
::
read_xml
=>
read_xml_hyb
inp
PROCEDURE
::
mpi_bc
=>
mpi_bc_hyb
inp
END
TYPE
t_hyb
inp
PUBLIC
t_hyb
inp
CONTAINS
SUBROUTINE
mpi_bc_hyb
rid
(
this
,
mpi_comm
,
irank
)
SUBROUTINE
mpi_bc_hyb
inp
(
this
,
mpi_comm
,
irank
)
USE
m_mpi_bc_tool
CLASS
(
t_hyb
rid
),
INTENT
(
INOUT
)::
this
CLASS
(
t_hyb
inp
),
INTENT
(
INOUT
)::
this
INTEGER
,
INTENT
(
IN
)::
mpi_comm
INTEGER
,
INTENT
(
IN
),
OPTIONAL
::
irank
INTEGER
::
rank
...
...
@@ -93,10 +93,10 @@ CONTAINS
CALL
mpi_bc
(
this
%
nobd
,
rank
,
mpi_comm
)
CALL
mpi_bc
(
this
%
div_vv
,
rank
,
mpi_comm
)
END
SUBROUTINE
mpi_bc_hyb
rid
SUBROUTINE
read_xml_hyb
rid
(
this
,
xml
)
END
SUBROUTINE
mpi_bc_hyb
inp
SUBROUTINE
read_xml_hyb
inp
(
this
,
xml
)
USE
m_types_xml
CLASS
(
t_hyb
rid
),
INTENT
(
INout
)::
this
CLASS
(
t_hyb
inp
),
INTENT
(
INout
)::
this
TYPE
(
t_xml
),
INTENT
(
in
)
::
xml
INTEGER
::
numberNodes
,
ntype
,
itype
...
...
@@ -136,5 +136,5 @@ CONTAINS
else
this
%
l_hybrid
=
.False.
endif
END
SUBROUTINE
read_xml_hyb
rid
END
MODULE
m_types_hyb
rid
END
SUBROUTINE
read_xml_hyb
inp
END
MODULE
m_types_hyb
inp
fleurinput/types_sym.f90
View file @
90330e62
...
...
@@ -48,7 +48,7 @@ MODULE m_types_sym
INTEGER
,
ALLOCATABLE
::
invsat
(:)
!
!
Hybrid
specific stuff TODO
!
hybinp
specific stuff TODO
!
INTEGER
::
nsymt
INTEGER
::
nsym
...
...
hybrid/HF_init.F90
View file @
90330e62
MODULE
m_hf_init
!
! preparations for HF and hyb
rid
functional calculation
! preparations for HF and hyb
inp
functional calculation
!
CONTAINS
SUBROUTINE
hf_init
(
mpdata
,
hyb
rid
,
atoms
,
input
,
hybdat
)
SUBROUTINE
hf_init
(
mpdata
,
hyb
inp
,
atoms
,
input
,
hybdat
)
USE
m_types
USE
m_hyb
rid
_core
USE
m_hyb
inp
_core
USE
m_util
use
m_intgrf
USE
m_io_hyb
rid
USE
m_io_hyb
inp
USE
m_types_hybdat
IMPLICIT
NONE
TYPE
(
t_mpdata
),
intent
(
inout
)
::
mpdata
TYPE
(
t_hyb
rid
),
INTENT
(
INOUT
)
::
hybrid
TYPE
(
t_hyb
inp
),
INTENT
(
INOUT
)
::
hybinp
TYPE
(
t_atoms
),
INTENT
(
IN
)
::
atoms
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_hybdat
),
INTENT
(
OUT
)
::
hybdat
...
...
@@ -43,7 +43,7 @@ CONTAINS
! pre-calculate gaunt coefficients
hybdat
%
maxfac
=
max
(
2
*
atoms
%
lmaxd
+
maxval
(
hyb
rid
%
lcutm1
)
+
1
,
2
*
hybdat
%
lmaxcd
+
2
*
atoms
%
lmaxd
+
1
)
hybdat
%
maxfac
=
max
(
2
*
atoms
%
lmaxd
+
maxval
(
hyb
inp
%
lcutm1
)
+
1
,
2
*
hybdat
%
lmaxcd
+
2
*
atoms
%
lmaxd
+
1
)
allocate
(
hybdat
%
fac
(
0
:
hybdat
%
maxfac
),
hybdat
%
sfac
(
0
:
hybdat
%
maxfac
),
stat
=
ok
,
source
=
0.0
)
IF
(
ok
/
=
0
)
call
judft_error
(
'eigen_hf: failure allocation fac,hybdat%sfac'
)
hybdat
%
fac
(
0
)
=
1
...
...
@@ -53,14 +53,14 @@ CONTAINS
hybdat
%
sfac
(
i
)
=
hybdat
%
sfac
(
i
-
1
)
*
sqrt
(
i
*
1.0
)
! hybdat%sfac(i) = sqrt(i!)
END
DO
ALLOCATE
(
hybdat
%
gauntarr
(
2
,
0
:
atoms
%
lmaxd
,
0
:
atoms
%
lmaxd
,
0
:
maxval
(
hyb
rid
%
lcutm1
),&
-
atoms
%
lmaxd
:
atoms
%
lmaxd
,
-
maxval
(
hyb
rid
%
lcutm1
):
maxval
(
hybrid
%
lcutm1
)),&
ALLOCATE
(
hybdat
%
gauntarr
(
2
,
0
:
atoms
%
lmaxd
,
0
:
atoms
%
lmaxd
,
0
:
maxval
(
hyb
inp
%
lcutm1
),&
-
atoms
%
lmaxd
:
atoms
%
lmaxd
,
-
maxval
(
hyb
inp
%
lcutm1
):
maxval
(
hybinp
%
lcutm1
)),&
stat
=
ok
,
source
=
0.0
)
IF
(
ok
/
=
0
)
call
judft_error
(
'eigen: failure allocation hybdat%gauntarr'
)
DO
l2
=
0
,
atoms
%
lmaxd
DO
l1
=
0
,
atoms
%
lmaxd
DO
l
=
abs
(
l1
-
l2
),
min
(
l1
+
l2
,
maxval
(
hyb
rid
%
lcutm1
))
DO
l
=
abs
(
l1
-
l2
),
min
(
l1
+
l2
,
maxval
(
hyb
inp
%
lcutm1
))
DO
m
=
-
l
,
l
DO
m1
=
-
l1
,
l1
m2
=
m1
+
m
! Gaunt condition -m1+m2-m = 0
...
...
hybrid/add_Vnonlocal.F90
View file @
90330e62
...
...
@@ -42,7 +42,7 @@ MODULE m_add_vnonlocal
! c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
CONTAINS
SUBROUTINE
add_vnonlocal
(
nk
,
lapw
,
atoms
,
hyb
rid
,
input
,
kpts
,
jsp
,
results
,
xcpot
,
noco
,
hmat
)
SUBROUTINE
add_vnonlocal
(
nk
,
lapw
,
atoms
,
hyb
inp
,
input
,
kpts
,
jsp
,
results
,
xcpot
,
noco
,
hmat
)
USE
m_symm_hf
,
ONLY
:
symm_hf
USE
m_intgrf
,
ONLY
:
intgrf
,
intgrf_init
...
...
@@ -52,14 +52,14 @@ CONTAINS
USE
m_wrapper
USE
m_hsefunctional
,
ONLY
:
exchange_vccvHSE
,
exchange_ccccHSE
USE
m_types
USE
m_io_hyb
rid
USE
m_io_hyb
inp
IMPLICIT
NONE
TYPE
(
t_results
),
INTENT
(
INOUT
)
::
results
CLASS
(
t_xcpot
),
INTENT
(
IN
)
::
xcpot
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_hyb
rid
),
INTENT
(
INOUT
)
::
hybrid
TYPE
(
t_hyb
inp
),
INTENT
(
INOUT
)
::
hybinp
TYPE
(
t_kpts
),
INTENT
(
IN
)
::
kpts
TYPE
(
t_lapw
),
INTENT
(
IN
)
::
lapw
TYPE
(
t_atoms
),
INTENT
(
IN
)
::
atoms
...
...
@@ -95,7 +95,7 @@ CONTAINS
END
DO
END
DO
! calculate HF energy
IF
(
hyb
rid
%
l_calhf
)
THEN
IF
(
hyb
inp
%
l_calhf
)
THEN
WRITE
(
6
,
'(A)'
)
new_line
(
'n'
)//
new_line
(
'n'
)//
' ### '
//
' diagonal HF exchange elements (eV) ###'
WRITE
(
6
,
'(A)'
)
new_line
(
'n'
)//
' k-point '
//
'band tail pole total(valence+core)'
...
...
@@ -118,19 +118,19 @@ CONTAINS
CALL
v_x
%
multiply
(
z
,
tmp
)
DO
iband
=
1
,
hyb
rid
%
nbands
(
nk
)
DO
iband
=
1
,
hyb
inp
%
nbands
(
nk
)
IF
(
z
%
l_real
)
THEN
exch
(
iband
,
iband
)
=
dot_product
(
z
%
data_r
(:
z
%
matsize1
,
iband
),
tmp
%
data_r
(:,
iband
))
ELSE
exch
(
iband
,
iband
)
=
dot_product
(
z
%
data_c
(:
z
%
matsize1
,
iband
),
tmp
%
data_c
(:,
iband
))
END
IF
IF
(
iband
<=
hyb
rid
%
nobd
(
nk
,
jsp
))
THEN
IF
(
iband
<=
hyb
inp
%
nobd
(
nk
,
jsp
))
THEN
results
%
te_hfex
%
valence
=
results
%
te_hfex
%
valence
-
a_ex
*
results
%
w_iks
(
iband
,
nk
,
jsp
)
*
exch
(
iband
,
iband
)
END
IF
IF
(
hyb
rid
%
l_calhf
)
THEN
IF
(
hyb
inp
%
l_calhf
)
THEN
WRITE
(
6
,
'(
''
(
''
,F5.3,
''
,
''
,F5.3,
''
,
''
,F5.3,
''
)
''
,I4,4X,3F15.5)'
)
&
kpts
%
bkf
(:,
nk
),
iband
,
(
REAL
(
exch
(
iband
,
iband
))
-
hyb
rid
%
div_vv
(
iband
,
nk
,
jsp
))
*
(
-27.211608
),
&
hyb
rid
%
div_vv
(
iband
,
nk
,
jsp
)
*
(
-27.211608
),
REAL
(
exch
(
iband
,
iband
))
*
(
-27.211608
)
kpts
%
bkf
(:,
nk
),
iband
,
(
REAL
(
exch
(
iband
,
iband
))
-
hyb
inp
%
div_vv
(
iband
,
nk
,
jsp
))
*
(
-27.211608
),
&
hyb
inp
%
div_vv
(
iband
,
nk
,
jsp
)
*
(
-27.211608
),
REAL
(
exch
(
iband
,
iband
))
*
(
-27.211608
)