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
54
Issues
54
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
536795a2
Commit
536795a2
authored
Sep 12, 2017
by
Daniel Wortmann
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of fleur-git:fleur into develop
parents
7b2fe908
0398f39b
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
34 additions
and
22 deletions
+34
-22
hybrid/exchange_val_hf.F90
hybrid/exchange_val_hf.F90
+3
-3
hybrid/hf_setup.F90
hybrid/hf_setup.F90
+17
-9
hybrid/hybrid.F90
hybrid/hybrid.F90
+1
-1
init/initParallelProcesses.F90
init/initParallelProcesses.F90
+1
-3
io/eig66_mpi.F90
io/eig66_mpi.F90
+1
-0
main/fleur.F90
main/fleur.F90
+1
-1
main/vgen.F90
main/vgen.F90
+2
-0
mpi/mpi_bc_all.F90
mpi/mpi_bc_all.F90
+8
-5
No files found.
hybrid/exchange_val_hf.F90
View file @
536795a2
...
...
@@ -64,7 +64,7 @@
USE
m_olap
USE
m_spmvec
USE
m_hsefunctional
,
ONLY
:
dynamic_hse_adjustment
#if
def CPP_MPI
#if
defined(CPP_MPI)&&defined(CPP_NEVER)
USE
m_mpi_work_dist
USE
m_mpi_tags
#endif
...
...
@@ -139,7 +139,7 @@
COMPLEX
::
dcprod
(
hybrid
%
nbands
(
nk
),
hybrid
%
nbands
(
nk
),
3
)
COMPLEX
(
8
)
::
exch_vv
(
hybrid
%
nbands
(
nk
),
hybrid
%
nbands
(
nk
))
#if
def CPP_MPI
#if
defined(CPP_MPI)&&defined(CPP_NEVER)
COMPLEX
(
8
)
::
buf_vv
(
hybrid
%
nbands
(
nk
),
nbands
(
nk
))
#endif
COMPLEX
::
hessian
(
3
,
3
)
...
...
@@ -176,7 +176,7 @@
#endif
LOGICAL
::
occup
(
dimension
%
neigd
)
#if
def CPP_MPI
#if
defined(CPP_MPI)&&defined(CPP_NEVER)
INCLUDE
"mpif.h"
INTEGER
::
ierr
,
ierr2
,
length
,
rank
CHARACTER
(
LEN
=
MPI_MAX_ERROR_STRING
)
::
errmsg
...
...
hybrid/hf_setup.F90
View file @
536795a2
...
...
@@ -31,7 +31,7 @@ CONTAINS
REAL
,
ALLOCATABLE
,
INTENT
(
OUT
)::
eig_irr
(:,:)
INTEGER
::
ok
,
nk
,
nrec1
,
i
,
j
,
ll
,
l1
,
l2
,
ng
,
itype
,
n
,
l
,
n1
,
n2
,
nn
INTEGER
::
ok
,
nk
,
nrec1
,
i
,
j
,
ll
,
l1
,
l2
,
ng
,
itype
,
n
,
l
,
n1
,
n2
,
nn
TYPE
(
t_zmat
),
ALLOCATABLE
::
zmat
(:)
...
...
@@ -43,6 +43,14 @@ CONTAINS
LOGICAL
::
skip_kpt
(
kpts
%
nkpt
)
REAL
::
g
(
3
)
#if defined(CPP_MPI)&&defined(CPP_NEVER)
INTEGER
::
sndreqd
,
rcvreqd
,
rcvreq
(
kpts
%
nkpt
)
INTEGER
(
KIND
=
MPI_ADDRESS_KIND
)
::
addr
INTEGER
::
ierr
(
3
)
INCLUDE
'mpif.h'
#endif
skip_kpt
=
.FALSE.
IF
(
hybrid
%
l_calhf
)
THEN
...
...
@@ -63,10 +71,10 @@ CONTAINS
zmat
(:)
%
l_real
=
l_real
! Reading the eig file
DO
nk
=
1
,
kpts
%
nkpt
#
ifdef CPP_MPI
#
if defined(CPP_MPI)&&defined(CPP_NEVER)
! jump to next k-point if this process is not present in communicator
IF
(
skip_kpt
(
nk
)
)
CYCLE
#
endif
#endif
nrec1
=
kpts
%
nkpt
*
(
jsp
-1
)
+
nk
zmat
(
nk
)
%
nbasfcn
=
dimension
%
nbasfcn
zmat
(
nk
)
%
nbands
=
dimension
%
neigd2
...
...
@@ -105,10 +113,10 @@ CONTAINS
degenerat
=
1
hybrid
%
nobd
=
0
DO
nk
=
1
,
kpts
%
nkpt
#
ifdef CPP_MPI
#
if defined(CPP_MPI)&&defined(CPP_NEVER)
! jump to next k-point if this k-point is not treated at this process
IF
(
skip_kpt
(
nk
)
)
CYCLE
#
endif
#endif
DO
i
=
1
,
hybrid
%
ne_eig
(
nk
)
DO
j
=
i
+1
,
hybrid
%
ne_eig
(
nk
)
IF
(
ABS
(
eig_irr
(
i
,
nk
)
-
eig_irr
(
j
,
nk
))
<
1E-07
)
THEN
!0.015
...
...
@@ -153,7 +161,7 @@ CONTAINS
PRINT
*
,
"bands:"
,
nk
,
hybrid
%
nobd
(
nk
),
hybrid
%
nbands
(
nk
),
hybrid
%
ne_eig
(
nk
)
END
DO
#
ifdef CPP_MPI
#
if defined(CPP_MPI)&&defined(CPP_NEVER)
! send results for occupied bands to all processes
sndreqd
=
0
;
rcvreqd
=
0
DO
nk
=
1
,
kpts
%
nkpt
...
...
@@ -175,7 +183,7 @@ CONTAINS
CALL
MPI_GET_ADDRESS
(
hybrid
%
nobd
,
addr
,
ierr
(
1
)
)
rcvreqd
=
0
#
endif
#endif
! spread hybrid%nobd from IBZ to whole BZ
DO
nk
=
1
,
kpts
%
nkptf
...
...
@@ -202,10 +210,10 @@ CONTAINS
&
hybdat
%
lmaxcd
,
hybdat
%
maxindxc
,
mpi
,&
&
hybdat
%
lmaxc
,
hybdat
%
nindxc
,
hybdat
%
core1
,
hybdat
%
core2
,
hybdat
%
eig_c
)
#
ifdef CPP_MPI
#
if defined(CPP_MPI)&&defined(CPP_NEVER)
! wait until all files are written in gen_wavf
CALL
MPI_BARRIER
(
mpi
%
mpi_comm
,
ierr
)
#
endif
#endif
!
! check olap between core-basis/core-valence/basis-basis
...
...
hybrid/hybrid.F90
View file @
536795a2
...
...
@@ -59,7 +59,7 @@ CONTAINS
RETURN
ENDIF
!Check if we are converged well enough to calculate a new potential
#if
def CPP_MPI
#if
defined(CPP_MPI)&&defined(CPP_NEVER)
CALL
judft_error
(
"Hybrid functionals do not work in parallel version yet"
)
CALL
MPI_BCAST
(
results
%
last_distance
....
#endif
...
...
init/initParallelProcesses.F90
View file @
536795a2
...
...
@@ -189,8 +189,7 @@ SUBROUTINE initParallelProcesses(atoms,vacuum,input,stars,sliceplot,banddos,&
ALLOCATE
(
hybrid
%
nindx
(
0
:
atoms
%
lmaxd
,
atoms
%
ntype
))
ALLOCATE
(
hybrid
%
select1
(
4
,
atoms
%
ntype
),
hybrid
%
lcutm1
(
atoms
%
ntype
))
ALLOCATE
(
hybrid
%
select2
(
4
,
atoms
%
ntype
),
hybrid
%
lcutm2
(
atoms
%
ntype
),
hybrid
%
lcutwf
(
atoms
%
ntype
))
ALLOCATE
(
hybrid
%
ddist
(
dimension
%
jspd
))
ALLOCATE
(
hybrid
%
lcutwf
(
atoms
%
ntype
))
IF
(
xcpot
%
igrd
.NE.
0
)
THEN
ALLOCATE
(
stars
%
ft2_gfx
(
0
:
dimension
%
nn2d
-1
),
stars
%
ft2_gfy
(
0
:
dimension
%
nn2d
-1
))
...
...
@@ -222,7 +221,6 @@ SUBROUTINE initParallelProcesses(atoms,vacuum,input,stars,sliceplot,banddos,&
jij
%
nmagn
=
1
jij
%
mtypes
=
1
jij
%
phnd
=
1
hybrid
%
ddist
=
1.0
stars
%
sk2
(:)
=
0.0
stars
%
phi2
(:)
=
0.0
END
IF
...
...
io/eig66_mpi.F90
View file @
536795a2
...
...
@@ -446,6 +446,7 @@ CONTAINS
IF
(
PRESENT
(
eig
)
.OR.
PRESENT
(
w_iks
))
THEN
ALLOCATE
(
tmp_real
(
d
%
size_eig
))
tmp_real
=
1E99
n3
=
1
if
(
PRESENT
(
EIG
))
THEN
n1
=
1
;
n3
=
1
IF
(
PRESENT
(
n_rank
))
n1
=
n_rank
+1
...
...
main/fleur.F90
View file @
536795a2
...
...
@@ -103,7 +103,7 @@ CONTAINS
! .. Local Scalars ..
INTEGER
::
eig_id
INTEGER
::
it
,
ithf
,
pc
INTEGER
::
n
,
it
,
ithf
,
pc
LOGICAL
::
stop80
,
reap
,
l_endit
,
l_opti
,
l_cont
!--- J<
INTEGER
::
phn
...
...
main/vgen.F90
View file @
536795a2
...
...
@@ -586,7 +586,9 @@ CONTAINS
! ------------------------------------------
! ----> muffin tin spheres region
IF
(
mpi
%
irank
==
0
)
THEN
CALL
timestart
(
"Vxc in MT"
)
END
IF
#ifdef CPP_MPI
CALL
MPI_BCAST
(
atoms
%
vr0
,
atoms
%
ntype
,
MPI_DOUBLE_PRECISION
,
0
,
mpi
%
mpi_comm
,
ierr
)
CALL
MPI_BCAST
(
input
%
efield
%
vslope
,
1
,
MPI_DOUBLE_COMPLEX
,
0
,
mpi
%
mpi_comm
,
ierr
)
...
...
mpi/mpi_bc_all.F90
View file @
536795a2
...
...
@@ -65,9 +65,10 @@ CONTAINS
r
(
19
)
=
cell
%
volint
;
r
(
20
)
=
hybrid
%
gcutm1
;
r
(
21
)
=
hybrid
%
tolerance1
;
r
(
22
)
=
0.0
r
(
23
)
=
0.0
;
r
(
24
)
=
input
%
delgau
;
r
(
25
)
=
input
%
tkb
;
r
(
26
)
=
input
%
efield
%
vslope
r
(
27
)
=
aMix_VHSE
()
;
r
(
28
)
=
omega_VHSE
()
;
r
(
29
)
=
input
%
minDistance
;
r
(
30
)
=
obsolete
%
chng
l
(
1
)
=
input
%
eonly
;
l
(
2
)
=
input
%
l_useapw
;
l
(
3
)
=
input
%
secvar
;
l
(
4
)
=
sym
%
zrfs
;
l
(
5
)
=
input
%
film
l
(
6
)
=
sym
%
invs
;
l
(
7
)
=
sym
%
invs2
;
l
(
8
)
=
input
%
l_bmt
;
l
(
9
)
=
input
%
l_f
;
l
(
10
)
=
input
%
cdinf
l
(
11
)
=
banddos
%
dos
;
l
(
13
)
=
banddos
%
vacdos
;
l
(
14
)
=
input
%
integ
;
l
(
15
)
=
sliceplot
%
iplot
l
(
11
)
=
banddos
%
dos
;
l
(
1
2
)
=
hybrid
%
l_hybrid
;
l
(
1
3
)
=
banddos
%
vacdos
;
l
(
14
)
=
input
%
integ
;
l
(
15
)
=
sliceplot
%
iplot
l
(
16
)
=
input
%
strho
;
l
(
17
)
=
input
%
swsp
;
l
(
18
)
=
input
%
lflip
;
l
(
19
)
=
obsolete
%
l_f2u
;
l
(
20
)
=
obsolete
%
l_u2f
l
(
21
)
=
input
%
pallst
;
l
(
22
)
=
sliceplot
%
slice
;
l
(
23
)
=
noco
%
l_soc
;
l
(
24
)
=
vacuum
%
starcoeff
l
(
25
)
=
noco
%
l_noco
;
l
(
26
)
=
noco
%
l_ss
;
l
(
27
)
=
noco
%
l_mperp
;
l
(
28
)
=
noco
%
l_constr
...
...
@@ -108,7 +109,7 @@ CONTAINS
noco
%
l_noco
=
l
(
25
)
;
noco
%
l_ss
=
l
(
26
)
;
noco
%
l_mperp
=
l
(
27
)
;
noco
%
l_constr
=
l
(
28
)
input
%
pallst
=
l
(
21
)
;
sliceplot
%
slice
=
l
(
22
)
;
noco
%
l_soc
=
l
(
23
)
;
vacuum
%
starcoeff
=
l
(
24
)
input
%
strho
=
l
(
16
)
;
input
%
swsp
=
l
(
17
)
;
input
%
lflip
=
l
(
18
)
;
obsolete
%
l_f2u
=
l
(
19
)
;
obsolete
%
l_u2f
=
l
(
20
)
banddos
%
dos
=
l
(
11
)
;
banddos
%
vacdos
=
l
(
13
)
;
banddos
%
l_orb
=
l
(
33
)
;
banddos
%
l_mcd
=
l
(
34
)
banddos
%
dos
=
l
(
11
)
;
hybrid
%
l_hybrid
=
l
(
12
)
;
banddos
%
vacdos
=
l
(
13
)
;
banddos
%
l_orb
=
l
(
33
)
;
banddos
%
l_mcd
=
l
(
34
)
input
%
integ
=
l
(
14
)
;
sliceplot
%
iplot
=
l
(
15
)
sym
%
invs
=
l
(
6
)
;
sym
%
invs2
=
l
(
7
)
;
input
%
l_bmt
=
l
(
8
)
;
input
%
l_f
=
l
(
9
)
;
input
%
cdinf
=
l
(
10
)
input
%
eonly
=
l
(
1
)
;
input
%
secvar
=
l
(
3
)
;
sym
%
zrfs
=
l
(
4
)
;
input
%
film
=
l
(
5
)
...
...
@@ -258,10 +259,12 @@ CONTAINS
ENDIF
!--- J>
!--- HF<
CALL
MPI_BCAST
(
hybrid
%
lcutwf
,
atoms
%
ntype
,
MPI_INTEGER
,
0
,
mpi
%
mpi_comm
,
ierr
)
CALL
MPI_BCAST
(
kpts
%
nkpt3
,
3
,
MPI_INTEGER
,
0
,
mpi
%
mpi_comm
,
ierr
)
IF
(
hybrid
%
l_hybrid
)
THEN
CALL
MPI_BCAST
(
hybrid
%
lcutwf
,
atoms
%
ntype
,
MPI_INTEGER
,
0
,
mpi
%
mpi_comm
,
ierr
)
CALL
MPI_BCAST
(
hybrid
%
select1
,
4
*
atoms
%
ntype
,
MPI_INTEGER
,
0
,
mpi
%
mpi_comm
,
ierr
)
CALL
MPI_BCAST
(
hybrid
%
lcutm1
,
atoms
%
ntype
,
MPI_INTEGER
,
0
,
mpi
%
mpi_comm
,
ierr
)
END
IF
!--- HF>
CALL
MPI_BCAST
(
atoms
%
relcor
,
atoms
%
ntype
,
MPI_LOGICAL
,
0
,
mpi
%
mpi_comm
,
ierr
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment