mirror of https://gitlab.com/QEF/q-e.git
493 lines
13 KiB
CMake
493 lines
13 KiB
CMake
set(src_ph
|
|
PH/acfdtest.f90
|
|
PH/add_dkmds.f90
|
|
PH/add_for_charges.f90
|
|
PH/add_zstar_ue.f90
|
|
PH/add_zstar_ue_us.f90
|
|
PH/addcore.f90
|
|
PH/addnlcc.f90
|
|
PH/addnlcc_zstar_eu_us.f90
|
|
PH/addusddens.f90
|
|
PH/addusddense.f90
|
|
PH/addusdynmat.f90
|
|
PH/allocate_part.f90
|
|
PH/allocate_pert.f90
|
|
PH/allocate_phq.f90
|
|
PH/yambo.f90
|
|
PH/bcast_ph_input.f90
|
|
PH/cch_psi_all.f90
|
|
PH/check_if_partial_dyn.f90
|
|
PH/check_initial_status.f90
|
|
PH/check_restart_recover.f90
|
|
PH/clean_pw_ph.f90
|
|
PH/clinear.f90
|
|
PH/close_phq.f90
|
|
PH/compute_alphasum.f90
|
|
PH/compute_becalp.f90
|
|
PH/compute_becsum_ph.f90
|
|
PH/compute_drhous.f90
|
|
PH/compute_drhous_nc.f90
|
|
PH/compute_dvloc.f90
|
|
PH/compute_nldyn.f90
|
|
PH/compute_weight.f90
|
|
PH/deallocate_part.f90
|
|
PH/deallocate_phq.f90
|
|
PH/d2ionq.f90
|
|
PH/d2ionq_disp.f90
|
|
PH/d2nsq_bare.f90
|
|
PH/dnsq_bare.f90
|
|
PH/dnsq_orth.f90
|
|
PH/dnsq_scf.f90
|
|
PH/davcio_drho.f90
|
|
PH/dfile_autoname.f90
|
|
PH/dfile_star.f90
|
|
PH/dielec.f90
|
|
PH/do_phonon.f90
|
|
PH/do_q2r.f90
|
|
PH/drho.f90
|
|
PH/drhodv.f90
|
|
PH/drhodvloc.f90
|
|
PH/drhodvnl.f90
|
|
PH/drhodvus.f90
|
|
PH/dvanqq.f90
|
|
PH/dvkb3.f90
|
|
PH/dvpsi_e.f90
|
|
PH/dvqpsi_us.f90
|
|
PH/dvqpsi_us_only.f90
|
|
PH/dyndia.f90
|
|
PH/dynmat0.f90
|
|
PH/dynmat_us.f90
|
|
PH/dynmatcc.f90
|
|
PH/dynmatrix.f90
|
|
PH/dynmat_hub_bare.f90
|
|
PH/dynmat_hub_scf.f90
|
|
PH/dwfc.f90
|
|
PH/dvqhub_barepsi_us.f90
|
|
PH/dvqhub_barepsi_us2.f90
|
|
PH/delta_sphi.f90
|
|
PH/dpsi_orth.f90
|
|
PH/ep_matrix_element_wannier.f90
|
|
PH/elph.f90
|
|
PH/el_ph_collect.f90
|
|
PH/elphon.f90
|
|
PH/elph_scdft_mod.f90
|
|
PH/elph_tetra_mod.f90
|
|
PH/find_equiv_sites.f90
|
|
PH/find_mode_sym.f90
|
|
PH/find_irrep.f90
|
|
PH/generate_dynamical_matrix_c.f90
|
|
PH/generate_effective_charges_c.f90
|
|
PH/gmressolve_all.f90
|
|
PH/incdrhous.f90
|
|
PH/incdrhous_nc.f90
|
|
PH/initialize_ph.f90
|
|
PH/init_representations.f90
|
|
PH/io_dyn_mat.f90
|
|
PH/io_dyn_mat_old.f90
|
|
PH/io_pattern.f90
|
|
PH/obsolete.f90
|
|
PH/openfilq.f90
|
|
PH/phcom.f90
|
|
PH/ph_restart.f90
|
|
PH/phescf.f90
|
|
PH/phq_init.f90
|
|
PH/phq_readin.f90
|
|
PH/phq_recover.f90
|
|
PH/phq_setup.f90
|
|
PH/phq_summary.f90
|
|
PH/phqscf.f90
|
|
PH/polariz.f90
|
|
PH/print_clock_ph.f90
|
|
PH/prepare_q.f90
|
|
PH/prepare_sym_analysis.f90
|
|
PH/psidspsi.f90
|
|
PH/psymdvscf.f90
|
|
PH/psyme.f90
|
|
PH/psym_dmag.f90
|
|
PH/psym_dmage.f90
|
|
PH/punch_plot_e.f90
|
|
PH/q_points.f90
|
|
PH/q_points_wannier.f90
|
|
PH/q2qstar_ph.f90
|
|
PH/random_matrix.f90
|
|
PH/read_wfc_rspace_and_fwfft.f90
|
|
PH/rigid.f90
|
|
PH/rotate_dvscf_star.f90
|
|
PH/rotate_and_add_dyn.f90
|
|
PH/rotate_pattern_add.f90
|
|
PH/run_nscf.f90
|
|
PH/save_ph_input.f90
|
|
PH/set_asr_c.f90
|
|
PH/set_drhoc.f90
|
|
PH/set_int12_nc.f90
|
|
PH/set_irr.f90
|
|
PH/set_irr_nosym.f90
|
|
PH/set_irr_sym.f90
|
|
PH/setlocq.f90
|
|
PH/solve_e.f90
|
|
PH/solve_e_fpol.f90
|
|
PH/solve_linter.f90
|
|
PH/stop_ph.f90
|
|
PH/summarize.f90
|
|
PH/sym_and_write_zue.f90
|
|
PH/sym_def.f90
|
|
PH/sym_dmag.f90
|
|
PH/sym_dmage.f90
|
|
PH/symdvscf.f90
|
|
PH/symdyn_munu.f90
|
|
PH/symdynph_gq.f90
|
|
PH/syme.f90
|
|
PH/symm.f90
|
|
PH/symmorphic_or_nzb.f90
|
|
PH/swfc.f90
|
|
PH/syme_dns.f90
|
|
PH/sym_dns.f90
|
|
PH/sym_dns_wrapper.f90
|
|
PH/transform_int_so.f90
|
|
PH/transform_int_nc.f90
|
|
PH/transform_alphasum_nc.f90
|
|
PH/transform_alphasum_so.f90
|
|
PH/tra_write_matrix.f90
|
|
PH/trntnsc.f90
|
|
PH/write_epsilon_and_zeu.f90
|
|
PH/write_qplot_data.f90
|
|
PH/write_matrix.f90
|
|
PH/write_modes.f90
|
|
PH/write_rec.f90
|
|
PH/write_hub.f90
|
|
PH/zstar_eu.f90
|
|
PH/zstar_eu_us.f90
|
|
# Raman
|
|
PH/psyme2.f90
|
|
PH/chi_test.f90
|
|
PH/dielec_test.f90
|
|
PH/dvpsi_e2.f90
|
|
PH/el_opt.f90
|
|
PH/hdiag.f90
|
|
PH/pcgreen.f90
|
|
PH/ramanm.f90
|
|
PH/syme2.f90
|
|
PH/solve_e2.f90
|
|
PH/solve_e_nscf.f90
|
|
PH/write_ramtns.f90
|
|
PH/d2mxc.f90
|
|
PH/raman_mat.f90
|
|
PH/raman.f90
|
|
PH/dhdrhopsi.f90
|
|
PH/set_dvscf.f90
|
|
PH/dvscf_interpolate.f90
|
|
PH/ahc.f90)
|
|
qe_enable_cuda_fortran("${src_ph}")
|
|
|
|
set(src_phaux
|
|
PH/write_eigenvectors.f90)
|
|
|
|
set(src_gamma
|
|
Gamma/a_h.f90
|
|
Gamma/cg_readin.f90
|
|
Gamma/cg_setup.f90
|
|
Gamma/cgcom.f90
|
|
Gamma/cgsolve.f90
|
|
Gamma/d2ion.f90
|
|
Gamma/dgradcorr.f90
|
|
Gamma/dielec.f90
|
|
Gamma/drhodv.f90
|
|
Gamma/dvb_cc.f90
|
|
Gamma/dvpsi_e.f90
|
|
Gamma/dvpsi_kb.f90
|
|
Gamma/dyndiar.f90
|
|
Gamma/dynmat_init.f90
|
|
Gamma/dynmatcc.f90
|
|
Gamma/find_equiv_sites.f90
|
|
Gamma/generate_dynamical_matrix.f90
|
|
Gamma/generate_effective_charges.f90
|
|
Gamma/h_h.f90
|
|
Gamma/macro.f90
|
|
Gamma/rhod2vkb.f90
|
|
Gamma/solve_e.f90
|
|
Gamma/solve_ph.f90
|
|
Gamma/writedyn.f90)
|
|
qe_enable_cuda_fortran("${src_gamma}")
|
|
|
|
set(src_fd
|
|
FD/stop_pp.f90)
|
|
|
|
qe_add_library(qe_phonon_ph ${src_ph})
|
|
target_link_libraries(qe_phonon_ph
|
|
PRIVATE
|
|
qe_hdf5_fortran
|
|
qe_openmp_fortran
|
|
qe_openacc_fortran
|
|
qe_mpi_fortran
|
|
qe_pw
|
|
qe_modules
|
|
qe_lr_modules
|
|
qe_upflib
|
|
qe_fftx
|
|
qe_dftd3
|
|
qe_fox
|
|
qe_xclib)
|
|
|
|
qe_add_library(qe_phonon_phaux ${src_phaux})
|
|
target_link_libraries(qe_phonon_phaux
|
|
PRIVATE
|
|
qe_modules
|
|
qe_lr_modules)
|
|
|
|
qe_add_library(qe_phonon_gamma ${src_gamma})
|
|
target_link_libraries(qe_phonon_gamma
|
|
PRIVATE
|
|
qe_pw
|
|
qe_modules
|
|
qe_lr_modules
|
|
qe_upflib
|
|
qe_fftx
|
|
qe_lax
|
|
qe_xclib)
|
|
|
|
qe_add_library(qe_phonon_fd ${src_fd})
|
|
target_link_libraries(qe_phonon_fd
|
|
PRIVATE
|
|
qe_pw
|
|
qe_modules
|
|
qe_lr_modules)
|
|
|
|
if(QE_ENABLE_CUDA)
|
|
target_link_libraries(qe_modules
|
|
PRIVATE
|
|
CUDA::cublas)
|
|
endif()
|
|
|
|
###########################################################
|
|
# ph.x
|
|
###########################################################
|
|
set(src_phonon_x PH/phonon.f90)
|
|
qe_enable_cuda_fortran("${src_phonon_x}")
|
|
qe_add_executable(qe_phonon_ph_exe ${src_phonon_x})
|
|
set_target_properties(qe_phonon_ph_exe PROPERTIES OUTPUT_NAME ph.x)
|
|
target_link_libraries(qe_phonon_ph_exe
|
|
PRIVATE
|
|
qe_openacc_fortran
|
|
qe_openmp_fortran
|
|
qe_mpi_fortran
|
|
qe_pw
|
|
qe_lax
|
|
qe_modules
|
|
qe_phonon_ph)
|
|
|
|
###########################################################
|
|
# dynmat.x
|
|
###########################################################
|
|
set(src_dynmat_x PH/dynmat.f90)
|
|
qe_add_executable(qe_phonon_dynmat_exe ${src_dynmat_x})
|
|
set_target_properties(qe_phonon_dynmat_exe PROPERTIES OUTPUT_NAME dynmat.x)
|
|
target_link_libraries(qe_phonon_dynmat_exe
|
|
PRIVATE
|
|
qe_lr_modules
|
|
qe_modules
|
|
qe_phonon_ph
|
|
qe_phonon_phaux
|
|
qe_fox)
|
|
|
|
###########################################################
|
|
# q2r.x
|
|
###########################################################
|
|
set(src_q2r_x PH/q2r.f90)
|
|
qe_add_executable(qe_phonon_q2r_exe ${src_q2r_x})
|
|
set_target_properties(qe_phonon_q2r_exe PROPERTIES OUTPUT_NAME q2r.x)
|
|
target_link_libraries(qe_phonon_q2r_exe
|
|
PRIVATE
|
|
qe_modules
|
|
qe_phonon_ph)
|
|
|
|
###########################################################
|
|
# dvscf_q2r.x
|
|
###########################################################
|
|
set(src_dvscf_q2r_x PH/dvscf_q2r.f90)
|
|
qe_add_executable(qe_phonon_dvscf_q2r_exe ${src_dvscf_q2r_x})
|
|
set_target_properties(qe_phonon_dvscf_q2r_exe PROPERTIES OUTPUT_NAME dvscf_q2r.x)
|
|
target_link_libraries(qe_phonon_dvscf_q2r_exe
|
|
PRIVATE
|
|
qe_pw
|
|
qe_lr_modules
|
|
qe_modules
|
|
qe_fftx
|
|
qe_lapack
|
|
qe_phonon_ph)
|
|
|
|
##################################################################
|
|
# matdyn.x
|
|
##################################################################
|
|
set(src_matdyn_x PH/matdyn.f90)
|
|
qe_add_executable(qe_phonon_matdyn_exe ${src_matdyn_x})
|
|
set_target_properties(qe_phonon_matdyn_exe PROPERTIES OUTPUT_NAME matdyn.x)
|
|
target_link_libraries(qe_phonon_matdyn_exe
|
|
PRIVATE
|
|
qe_modules
|
|
qe_pw
|
|
qe_phonon_ph
|
|
qe_phonon_phaux
|
|
qe_lr_modules)
|
|
|
|
###########################################################
|
|
# q2qstar.x
|
|
###########################################################
|
|
set(src_q2qstar_x PH/q2qstar.f90)
|
|
qe_add_executable(qe_phonon_q2qstar_exe ${src_q2qstar_x})
|
|
set_target_properties(qe_phonon_q2qstar_exe PROPERTIES OUTPUT_NAME q2qstar.x)
|
|
target_link_libraries(qe_phonon_q2qstar_exe
|
|
PRIVATE
|
|
qe_pw
|
|
qe_lr_modules
|
|
qe_modules
|
|
qe_phonon_ph)
|
|
|
|
###########################################################
|
|
# lambda.x
|
|
###########################################################
|
|
set(src_lambda_x PH/lambda.f90)
|
|
qe_add_executable(qe_phonon_lambda_exe ${src_lambda_x})
|
|
set_target_properties(qe_phonon_lambda_exe PROPERTIES OUTPUT_NAME lambda.x)
|
|
target_link_libraries(qe_phonon_lambda_exe
|
|
PRIVATE
|
|
qe_modules
|
|
qe_phonon_ph)
|
|
|
|
###########################################################
|
|
# alpha2f.x
|
|
###########################################################
|
|
set(src_alpha2f_x PH/alpha2f.f90)
|
|
qe_add_executable(qe_phonon_alpha2f_exe ${src_alpha2f_x})
|
|
set_target_properties(qe_phonon_alpha2f_exe PROPERTIES OUTPUT_NAME alpha2f.x)
|
|
target_link_libraries(qe_phonon_alpha2f_exe
|
|
PRIVATE
|
|
qe_openacc_fortran
|
|
qe_pw
|
|
qe_modules
|
|
qe_phonon_ph)
|
|
|
|
###########################################################
|
|
# epa.x
|
|
###########################################################
|
|
set(src_epa_x PH/epa.f90)
|
|
qe_add_executable(qe_phonon_epa_exe ${src_epa_x})
|
|
set_target_properties(qe_phonon_epa_exe PROPERTIES OUTPUT_NAME epa.x)
|
|
target_link_libraries(qe_phonon_epa_exe
|
|
PRIVATE
|
|
qe_modules
|
|
qe_phonon_ph)
|
|
|
|
###########################################################
|
|
# fqha.x
|
|
###########################################################
|
|
set(src_fqha_x PH/fqha.f90)
|
|
qe_add_executable(qe_phonon_fqha_exe ${src_fqha_x})
|
|
set_target_properties(qe_phonon_fqha_exe PROPERTIES OUTPUT_NAME fqha.x)
|
|
target_link_libraries(qe_phonon_fqha_exe
|
|
PRIVATE
|
|
qe_utilx
|
|
qe_phonon_ph)
|
|
|
|
###########################################################
|
|
# postahc.x
|
|
###########################################################
|
|
set(src_postahc_x PH/postahc.f90)
|
|
qe_add_executable(qe_phonon_postahc_exe ${src_postahc_x})
|
|
set_target_properties(qe_phonon_postahc_exe PROPERTIES OUTPUT_NAME postahc.x)
|
|
target_link_libraries(qe_phonon_postahc_exe
|
|
PRIVATE
|
|
qe_modules
|
|
qe_phonon_ph)
|
|
|
|
###########################################################
|
|
# phcg.x
|
|
###########################################################
|
|
set(src_phonon_phcg_x Gamma/phcg.f90)
|
|
qe_enable_cuda_fortran("${src_phonon_phcg_x}")
|
|
qe_add_executable(qe_phonon_phcg_exe ${src_phonon_phcg_x})
|
|
set_target_properties(qe_phonon_phcg_exe PROPERTIES OUTPUT_NAME phcg.x)
|
|
target_link_libraries(qe_phonon_phcg_exe
|
|
PRIVATE
|
|
qe_pw
|
|
qe_fftx
|
|
qe_xclib
|
|
qe_lr_modules
|
|
qe_phonon_gamma
|
|
qe_modules)
|
|
|
|
###########################################################
|
|
# fd.x
|
|
###########################################################
|
|
set(src_fd_x FD/fd.f90)
|
|
qe_add_executable(qe_phonon_fd_exe ${src_fd_x})
|
|
set_target_properties(qe_phonon_fd_exe PROPERTIES OUTPUT_NAME fd.x)
|
|
target_link_libraries(qe_phonon_fd_exe
|
|
PRIVATE
|
|
qe_pw
|
|
qe_modules
|
|
qe_phonon_fd
|
|
qe_phonon_ph
|
|
qe_fftx)
|
|
|
|
###########################################################
|
|
# fd_ef.x
|
|
###########################################################
|
|
set(src_fd_ef_x FD/fd_ef.f90)
|
|
qe_add_executable(qe_phonon_fdef_exe ${src_fd_ef_x})
|
|
set_target_properties(qe_phonon_fdef_exe PROPERTIES OUTPUT_NAME fd_ef.x)
|
|
target_link_libraries(qe_phonon_fdef_exe
|
|
PRIVATE
|
|
qe_pw
|
|
qe_modules
|
|
qe_phonon_fd
|
|
qe_phonon_ph
|
|
qe_fftx)
|
|
|
|
###########################################################
|
|
# fd_ifc.x
|
|
###########################################################
|
|
set(src_fd_ifc_x FD/fd_ifc.f90)
|
|
qe_add_executable(qe_phonon_fdifc_exe ${src_fd_ifc_x})
|
|
set_target_properties(qe_phonon_fdifc_exe PROPERTIES OUTPUT_NAME fd_ifc.x)
|
|
target_link_libraries(qe_phonon_fdifc_exe
|
|
PRIVATE
|
|
qe_pw
|
|
qe_modules
|
|
qe_phonon_fd
|
|
qe_phonon_ph
|
|
qe_fftx)
|
|
|
|
###########################################################
|
|
|
|
set(PH_EXE_TARGETS
|
|
qe_phonon_ph_exe
|
|
qe_phonon_phcg_exe
|
|
qe_phonon_dynmat_exe
|
|
qe_phonon_q2r_exe
|
|
qe_phonon_dvscf_q2r_exe
|
|
qe_phonon_matdyn_exe
|
|
qe_phonon_q2qstar_exe
|
|
qe_phonon_lambda_exe
|
|
qe_phonon_alpha2f_exe
|
|
qe_phonon_epa_exe
|
|
qe_phonon_fqha_exe
|
|
qe_phonon_fd_exe
|
|
qe_phonon_fdef_exe
|
|
qe_phonon_fdifc_exe
|
|
qe_phonon_postahc_exe)
|
|
|
|
qe_install_targets(
|
|
# Libraries
|
|
qe_phonon_ph
|
|
qe_phonon_phaux
|
|
qe_phonon_gamma
|
|
qe_phonon_fd
|
|
# Executables
|
|
${PH_EXE_TARGETS})
|
|
|
|
add_custom_target(ph
|
|
DEPENDS
|
|
${PH_EXE_TARGETS}
|
|
COMMENT
|
|
"phonon code, Gamma-only and third-order derivatives")
|