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
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Anoop Chandran
fleur
Commits
0730def7
Commit
0730def7
authored
Mar 19, 2019
by
Daniel Wortmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added code for mini-app, made depencencies more explicit in many places..
parent
d2f28e92
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
116 additions
and
41 deletions
+116
-41
cmake/Files_and_Targets.txt
cmake/Files_and_Targets.txt
+6
-6
diagonalization/CMakeLists.txt
diagonalization/CMakeLists.txt
+17
-11
diagonalization/chase_diag.F90
diagonalization/chase_diag.F90
+6
-5
diagonalization/cusolver_diag.F90
diagonalization/cusolver_diag.F90
+2
-2
diagonalization/diag_test.F90
diagonalization/diag_test.F90
+72
-0
diagonalization/eigen_diag.F90
diagonalization/eigen_diag.F90
+3
-3
diagonalization/elpa.F90
diagonalization/elpa.F90
+1
-1
diagonalization/elpa_20180525_onenode.F90
diagonalization/elpa_20180525_onenode.F90
+0
-1
diagonalization/lapack_diag.F90
diagonalization/lapack_diag.F90
+1
-1
diagonalization/magma.F90
diagonalization/magma.F90
+1
-1
diagonalization/scalapack.F90
diagonalization/scalapack.F90
+1
-1
diagonalization/writeout.F90
diagonalization/writeout.F90
+1
-1
io/io_matrix.F90
io/io_matrix.F90
+2
-3
io/iomatrix_hdf.F90
io/iomatrix_hdf.F90
+2
-4
juDFT/CMakeLists.txt
juDFT/CMakeLists.txt
+1
-1
No files found.
cmake/Files_and_Targets.txt
View file @
0730def7
...
...
@@ -55,14 +55,13 @@ io/calculator.f global/ss_sym.f global/soc_sym.f math/inv3.f io/rw_symfile.f
kpoints/kptgen_hybrid.f kpoints/od_kptsgen.f kpoints/bravais.f kpoints/divi.f kpoints/brzone.f
kpoints/kptmop.f kpoints/kpttet.f init/bandstr1.F kpoints/ordstar.f kpoints/fulstar.f kpoints/kprep.f
kpoints/tetcon.f kpoints/kvecon.f init/boxdim.f global/radsra.f global/differ.f math/inwint.f
math/outint.f math/grule.f
)
math/outint.f math/grule.f )
set(inpgen_F90 ${inpgen_F90} global/constants.f90 io/xsf_io.f90
eigen/orthoglo.F90
juDFT/usage_data.F90
math/ylm4.F90 mpi/mpi_bc_tool.F90
global/sort.f90 global/chkmt.f90 inpgen/inpgen.f90 inpgen/set_inp.f90 inpgen/inpgen_help.f90 io/rw_inp.f90
juDFT/juDFT.F90
global/find_enpara.f90
eigen/orthoglo.F90 math/ylm4.F90 mpi/mpi_bc_tool.F90
global/sort.f90 global/chkmt.f90 inpgen/inpgen.f90 inpgen/set_inp.f90 inpgen/inpgen_help.f90 io/rw_inp.f90 global/find_enpara.f90
inpgen/closure.f90 inpgen/inpgen_arguments.F90 math/intgr.F90
juDFT/info.F90 juDFT/stop.F90 juDFT/args.F90 juDFT/time.F90 juDFT/init.F90 juDFT/sysinfo.F90 juDFT/string.f90
io/w_inpXML.f90 kpoints/julia.f90 global/utility.F90
io/w_inpXML.f90 kpoints/julia.f90 global/utility.F90
init/compile_descr.F90 kpoints/kpoints.f90 io/xmlOutput.F90 kpoints/brzone2.f90 cdn/slab_dim.f90 cdn/slabgeom.f90 dos/nstm3.f90 cdn/int_21.f90
cdn/int_21lo.f90 cdn_mt/rhomt21.f90 cdn_mt/rhonmt21.f90 force/force_a21.F90 force/force_a21_lo.f90 force/force_a21_U.f90 force/force_a12.f90
eigen/tlmplm_store.F90 xc-pot/gaunt.f90 kpoints/unfoldBandKPTS.f90)
...
...
@@ -85,7 +84,8 @@ if (${FLEUR_USE_SERIAL})
add_executable(inpgen ${inpgen_F77} ${inpgen_F90} ${juDFT_SRC_F90} ${c_filesInpgen})
target_compile_definitions(inpgen PUBLIC ${FLEUR_DEFINITIONS})
target_link_libraries(inpgen ${FLEUR_LIBRARIES})
set_target_properties(inpgen PROPERTIES Fortran_MODULE_DIRECTORY inpgen_modules COMPILE_OPTIONS -Iinpgen_modules)
target_link_libraries(inpgen juDFT)
set_target_properties(inpgen PROPERTIES Fortran_MODULE_DIRECTORY inpgen_modules COMPILE_OPTIONS "-IjuDFT_modules -Iinpgen_modules")
endif()
#parallel executables
if(${FLEUR_USE_MPI})
...
...
diagonalization/CMakeLists.txt
View file @
0730def7
...
...
@@ -13,31 +13,37 @@ diagonalization/available_solvers.F90
diagonalization/writeout.F90
diagonalization/elpa_20180525_onenode.F90
)
if
(
FLEUR_USE_ELPA_20180525
)
set
(
fleur_F90
${
fleur_F90
}
diagonalization/elpa_20180525.F90
)
set
(
fleur_F90
${
fleur_F90
}
diagonalization/elpa_20180525.F90
)
set
(
diag_test_files diagonalization/elpa_20180525.F90
)
else
()
set
(
fleur_F90
${
fleur_F90
}
diagonalization/elpa.F90
)
set
(
fleur_F90
${
fleur_F90
}
diagonalization/elpa.F90
)
set
(
diag_test_files diagonalization/elpa.F90
)
endif
()
set
(
diag_test_files
${
diag_test_files
}
diagonalization/diag_test.F90
diagonalization/eigen_diag.F90
diagonalization/lapack_diag.F90
diagonalization/magma.F90
diagonalization/scalapack.F90
diagonalization/chase_diag.F90
diagonalization/symmetrize_matrix.f90
#
diagonalization/chase_diag.F90
#
diagonalization/symmetrize_matrix.f90
diagonalization/cusolver_diag.F90
diagonalization/elemental.F90
diagonalization/available_solvers.F90
diagonalization/writeout.F90
diagonalization/elpa_20180525_onenode.F90
)
diagonalization/elpa_20180525_onenode.F90
types/types_mat.F90
types/types_mpimat.F90
types/types_gpumat.F90
types/types_setup.F90
io/io_matrix.F90
io/iomatrix_hdf.F90
)
add_executable
(
diag_test
${
diag_test_files
}
)
target_compile_definitions
(
diag_test PUBLIC
${
FLEUR_DEFINITIONS
}
)
target_link_libraries
(
diag_test
${
FLEUR_LIBRARIES
}
)
set_target_properties
(
diag_test PROPERTIES Fortran_MODULE_DIRECTORY diag_test_modules COMPILE_OPTIONS -Idiag_test_modules
)
target_link_libraries
(
diag_test juDFT
)
set_target_properties
(
diag_test PROPERTIES Fortran_MODULE_DIRECTORY diag_test_modules COMPILE_OPTIONS
"-IjuDFT_modules -Idiag_test_modules"
)
diagonalization/chase_diag.F90
View file @
0730def7
...
...
@@ -90,7 +90,7 @@ CONTAINS
#ifdef CPP_CHASE
SUBROUTINE
init_chase
(
mpi
,
DIMENSION
,
input
,
atoms
,
kpts
,
noco
,
l_real
)
USE
m_types_mpimat
USE
m_types
USE
m_types
_setup
USE
m_types_mpi
USE
m_judft
USE
m_eig66_io
...
...
@@ -125,8 +125,8 @@ CONTAINS
#endif
SUBROUTINE
chase_diag
(
hmat
,
smat
,
ikpt
,
jsp
,
iter
,
ne
,
eig
,
zmat
)
USE
m_types_mpimat
USE
m_types
USE
m_types_mpimat
USE
m_types
_mat
USE
m_judft
USE
iso_c_binding
USE
m_eig66_io
...
...
@@ -164,7 +164,7 @@ CONTAINS
#ifdef CPP_CHASE
SUBROUTINE
chase_diag_noMPI
(
hmat
,
smat
,
ikpt
,
jsp
,
iter
,
ne
,
eig
,
zmat
)
USE
m_types
USE
m_types
_mat
USE
m_judft
USE
iso_c_binding
USE
m_eig66_io
...
...
@@ -312,7 +312,7 @@ CONTAINS
SUBROUTINE
chase_diag_MPI
(
hmat
,
smat
,
ikpt
,
jsp
,
iter
,
ne
,
eig
,
zmat
)
use
m_types_mpimat
USE
m_types
USE
m_types
_mat
USE
m_judft
USE
iso_c_binding
USE
m_eig66_io
...
...
@@ -455,6 +455,7 @@ CONTAINS
SUBROUTINE
priv_init_chasempimat
(
hmat
,
mat
,
nev
,
nex
)
USE
m_types_mpimat
USE
m_types_mat
IMPLICIT
NONE
TYPE
(
t_mpimat
),
INTENT
(
INOUT
)::
hmat
,
mat
INTEGER
,
INTENT
(
IN
)
::
nev
,
nex
...
...
diagonalization/cusolver_diag.F90
View file @
0730def7
...
...
@@ -4,7 +4,8 @@
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE
m_cusolver_diag
USE
m_types
USE
m_types_mat
USE
m_types_mpimat
USE
m_judft
#ifdef CPP_GPU
USE
m_types_gpumat
...
...
@@ -39,7 +40,6 @@ MODULE m_cusolver_diag
CONTAINS
SUBROUTINE
cusolver_diag
(
hmat
,
smat
,
ne
,
eig
,
zmat
)
!Simple driver to solve Generalized Eigenvalue Problem using CuSolverDN
USE
m_types
IMPLICIT
NONE
CLASS
(
t_mat
),
INTENT
(
INOUT
)
::
hmat
,
smat
INTEGER
,
INTENT
(
INOUT
)
::
ne
...
...
diagonalization/diag_test.F90
0 → 100644
View file @
0730def7
!--------------------------------------------------------------------------------
! Copyright (c) 2019 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.
!--------------------------------------------------------------------------------
PROGRAM
diag_test
USE
m_judft
USE
m_types_mat
USE
m_types_mpimat
USE
m_eigen_diag
USE
m_io_matrix
IMPLICIT
NONE
INTEGER
::
matsize
,
ne
,
mode
,
fid
INTEGER
::
err
,
isize
CHARACTER
(
len
=
50
)
::
filename
CLASS
(
t_mat
),
ALLOCATABLE
::
hmat
,
smat
,
ev
REAL
,
ALLOCATABLE
::
eig
(:)
LOGICAL
::
l_exist
,
l_real
REAL
::
t1
,
t2
#ifdef CPP_MPI
Include
'mpif.h'
CALL
MPI_COMM_SIZE
(
MPI_COMM_WORLD
,
isize
,
err
)
IF
(
isize
>
1
)
THEN
ALLOCATE
(
t_mpimat
::
hmat
)
ALLOCATE
(
t_mpimat
::
smat
)
hmat
%
blacsdata
%
mpi_comm
=
MPI_COMM_WORLD
smat
%
blacsdata
%
mpi_comm
=
MPI_COMM_WORLD
END
IF
#endif
IF
(
.NOT.
ALLOCATED
(
hmat
))
THEN
ALLOCATE
(
t_mat
::
hmat
)
ALLOCATE
(
t_mat
::
smat
)
ENDIF
! get mode
filename
=
judft_string_for_argument
(
"-mode"
)
READ
(
filename
,
*
)
mode
! get filename
filename
=
judft_string_for_argument
(
"-file"
)
INQUIRE
(
file
=
filename
,
exist
=
l_exist
)
IF
(
.NOT.
l_exist
)
CALL
judft_error
(
"File specified does not exist"
)
!matsize is actually only needed if file is created
fid
=
open_matrix
(
l_real
,
matsize
,
2
,
2
,
filename
)
CALL
read_matrix
(
hmat
,
1
,
fid
)
CALL
read_matrix
(
smat
,
2
,
fid
)
SELECT
TYPE
(
hmat
)
TYPE
is
(
t_mpimat
)
ne
=
0.15
*
hmat
%
global_size1
ALLOCATE
(
eig
(
hmat
%
global_size1
))
CLASS
default
ne
=
0.15
*
hmat
%
matsize1
ALLOCATE
(
eig
(
hmat
%
matsize1
))
END
SELECT
CALL
cpu_TIME
(
t1
)
CALL
eigen_diag
(
mode
,
hmat
,
smat
,
ne
,
eig
,
ev
)
CALL
cpu_TIME
(
t2
)
PRINT
*
,
"No of eigenvalues:"
,
ne
PRINT
*
,
eig
(:
ne
)
PRINT
*
,
"Time used:"
,
t1
-
t2
CALL
close_matrix
(
fid
)
END
PROGRAM
diag_test
diagonalization/eigen_diag.F90
View file @
0730def7
...
...
@@ -20,10 +20,10 @@ CONTAINS
USE
m_elpa_onenode
USE
m_scalapack
USE
m_elemental
USE
m_chase_diag
!
USE m_chase_diag
USE
m_types_mpimat
USE
m_types_gpumat
USE
m_matrix_copy
!
USE m_matrix_copy
USE
m_cusolver_diag
USE
m_judft_usage
USE
m_writeout
...
...
@@ -71,7 +71,7 @@ CONTAINS
CALL
lapack_diag
(
hmat
,
smat
,
ne
,
eig
,
ev
)
CASE
(
diag_chase
)
IF
(
.NOT.
(
PRESENT
(
ikpt
)
.AND.
PRESENT
(
jsp
)
.AND.
PRESENT
(
iter
)))
CALL
judft_error
(
"Optional arguments must be present for chase in eigen_diag"
)
CALL
chase_diag
(
hmat
,
smat
,
ikpt
,
jsp
,
iter
,
ne
,
eig
,
ev
)
!
CALL chase_diag(hmat,smat,ikpt,jsp,iter,ne,eig,ev)
CASE
(
diag_debugout
)
CALL
diag_writeout
(
smat
,
hmat
)
CASE
default
...
...
diagonalization/elpa.F90
View file @
0730def7
...
...
@@ -26,7 +26,7 @@ CONTAINS
#include"cpp_double.h"
USE
m_juDFT
USE
m_types_mpimat
USE
m_types
USE
m_types
_mat
#ifdef CPP_ELPA
USE
elpa1
#ifdef CPP_ELPA2
...
...
diagonalization/elpa_20180525_onenode.F90
View file @
0730def7
...
...
@@ -25,7 +25,6 @@ CONTAINS
!----------------------------------------------------
USE
m_juDFT
USE
m_types_mat
USE
m_types
#ifdef CPP_ELPA_ONENODE
USE
elpa
#endif
...
...
diagonalization/lapack_diag.F90
View file @
0730def7
...
...
@@ -4,7 +4,7 @@
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE
m_lapack_diag
USE
m_types
USE
m_types
_mat
USE
m_judft
IMPLICIT
NONE
CONTAINS
...
...
diagonalization/magma.F90
View file @
0730def7
...
...
@@ -16,7 +16,7 @@ CONTAINS
#ifdef CPP_MAGMA
use
magma
#endif
use
m_types
use
m_types
_mat
IMPLICIT
NONE
! ... Arguments ...
...
...
diagonalization/scalapack.F90
View file @
0730def7
...
...
@@ -25,7 +25,7 @@ CONTAINS
#include"cpp_double.h"
USE
m_juDFT
USE
m_types_mpimat
USE
m_types
USE
m_types
_mat
IMPLICIT
NONE
CLASS
(
t_mat
),
INTENT
(
INOUT
)
::
hmat
,
smat
CLASS
(
t_mat
),
ALLOCATABLE
,
INTENT
(
OUT
)::
ev
...
...
diagonalization/writeout.F90
View file @
0730def7
...
...
@@ -2,7 +2,7 @@ MODULE m_writeout
CONTAINS
SUBROUTINE
diag_writeout
(
smat
,
hmat
)
USE
m_types
USE
m_types
_mat
USE
m_judft
USE
m_io_matrix
USE
m_types_mpimat
...
...
io/io_matrix.F90
View file @
0730def7
...
...
@@ -5,7 +5,8 @@
!--------------------------------------------------------------------------------
MODULE
m_io_matrix
USE
m_types
USE
m_types_mat
USE
m_types_mpimat
USE
m_judft
USE
m_iomatrix_hdf
#ifdef CPP_HDF
...
...
@@ -46,7 +47,6 @@ CONTAINS
END
FUNCTION
OPEN_MATRIX
SUBROUTINE
read_matrix
(
mat
,
rec
,
id
)
USE
m_types_mpimat
CLASS
(
t_Mat
),
INTENT
(
INOUT
)
::
mat
INTEGER
,
INTENT
(
IN
)
::
rec
,
id
...
...
@@ -67,7 +67,6 @@ CONTAINS
END
SUBROUTINE
read_matrix
SUBROUTINE
write_matrix
(
mat
,
rec
,
id
)
USE
m_types_mpimat
CLASS
(
t_Mat
),
INTENT
(
IN
)
::
mat
INTEGER
,
INTENT
(
IN
)
::
rec
,
id
...
...
io/iomatrix_hdf.F90
View file @
0730def7
...
...
@@ -2,14 +2,14 @@ MODULE m_iomatrix_hdf
USE
m_judft
USE
hdf5
USE
m_hdf_tools
USE
m_types_mat
USE
m_types_mpimat
IMPLICIT
NONE
PRIVATE
PUBLIC
iomatrix_hdf_close
,
iomatrix_hdf_open
,
iomatrix_hdf_write
,
iomatrix_hdf_read
CONTAINS
SUBROUTINE
iomatrix_hdf_read
(
mat
,
nrec
,
did
)
USE
m_types
USE
m_types_mpimat
CLASS
(
t_Mat
),
INTENT
(
INOUT
)
::
mat
INTEGER
,
INTENT
(
IN
)
::
nrec
INTEGER
(
HID_t
),
INTENT
(
in
)
::
did
...
...
@@ -58,8 +58,6 @@ CONTAINS
END
SUBROUTINE
iomatrix_hdf_read
SUBROUTINE
iomatrix_hdf_write
(
mat
,
rec
,
did
)
USE
m_types
USE
m_types_mpimat
CLASS
(
t_Mat
),
INTENT
(
IN
)
::
mat
INTEGER
,
INTENT
(
IN
)
::
rec
INTEGER
(
HID_t
),
INTENT
(
in
)::
did
...
...
juDFT/CMakeLists.txt
View file @
0730def7
...
...
@@ -23,7 +23,7 @@ juDFT/string.f90
juDFT/time.F90
juDFT/args.F90
juDFT/sysinfo.F90
main
/fleur_arguments.F90
juDFT
/fleur_arguments.F90
juDFT/xmlOutput.F90
)
target_compile_definitions
(
juDFT PUBLIC
${
FLEUR_DEFINITIONS
}
)
...
...
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