quantum-espresso/KS_Solvers/CMakeLists.txt

117 lines
2.6 KiB
CMake

set(src_davidson
Davidson_RCI/david_rci.f90
Davidson/cegterg.f90
Davidson/regterg.f90
# GPU
Davidson/regterg_gpu.f90
Davidson/cegterg_gpu.f90)
qe_enable_cuda_fortran("${src_davidson}")
set(src_davidson_rci
Davidson_RCI/david_rci.f90)
set(src_cg
CG/ccgdiagg.f90
CG/rcgdiagg.f90
# GPU
CG/rcgdiagg_gpu.f90
CG/ccgdiagg_gpu.f90)
qe_enable_cuda_fortran("${src_cg}")
set(src_ppcg
PPCG/ppcg_gamma.f90
PPCG/ppcg_k.f90
# GPU
PPCG/ppcg_gamma_gpu.f90
PPCG/ppcg_k_gpu.f90
PPCG/generic_cublas.f90)
qe_enable_cuda_fortran("${src_ppcg}")
set(src_dense
DENSE/rotate_HSpsi_gamma.f90
DENSE/rotate_HSpsi_k.f90
DENSE/rotate_wfc_gamma.f90
DENSE/rotate_wfc_k.f90
# GPU
DENSE/rotate_HSpsi_gamma_gpu.f90
DENSE/rotate_HSpsi_k_gpu.f90
DENSE/rotate_wfc_gamma_gpu.f90
DENSE/rotate_wfc_k_gpu.f90)
qe_enable_cuda_fortran("${src_dense}")
set(src_paro
ParO/bpcg_gamma.f90
ParO/bpcg_k.f90
ParO/paro_gamma.f90
ParO/pcg_gamma.f90
ParO/paro_k.f90
ParO/pcg_k.f90
ParO/paro_gamma_new.f90
ParO/paro_k_new.f90
# GPU
ParO/bpcg_gamma_gpu.f90
ParO/bpcg_k_gpu.f90
ParO/paro_gamma_new_gpu.f90
ParO/paro_k_new_gpu.f90)
qe_enable_cuda_fortran("${src_paro}")
qe_add_library(qe_kssolver_davidson ${src_davidson})
target_link_libraries(qe_kssolver_davidson
PRIVATE
qe_openmp_fortran
qe_lax
qe_utilx
qe_mpi_fortran
qe_devxlib)
qe_add_library(qe_kssolver_davidsonrci ${src_davidson_rci})
target_link_libraries(qe_kssolver_davidsonrci
PRIVATE
qe_lax
qe_utilx
qe_mpi_fortran)
qe_add_library(qe_kssolver_cg ${src_cg})
target_link_libraries(qe_kssolver_cg
PRIVATE
qe_lax
qe_utilx
qe_mpi_fortran
qe_devxlib)
qe_add_library(qe_kssolver_ppcg ${src_ppcg})
target_link_libraries(qe_kssolver_ppcg
PRIVATE
qe_scalapack
qe_openmp_fortran
qe_lax
qe_lapack
qe_utilx
qe_mpi_fortran)
qe_add_library(qe_kssolver_dense ${src_dense})
target_link_libraries(qe_kssolver_dense
PRIVATE
qe_lax
qe_utilx
qe_mpi_fortran
qe_devxlib)
qe_add_library(qe_kssolver_paro ${src_paro})
target_link_libraries(qe_kssolver_paro
PRIVATE
qe_kssolver_dense
qe_lax
qe_utilx
qe_mpi_fortran)
###########################################################
qe_install_targets(
qe_kssolver_davidson
qe_kssolver_davidsonrci
qe_kssolver_cg
qe_kssolver_ppcg
qe_kssolver_paro
qe_kssolver_dense)